为什么数据污染对LLM来说是一个大问题
2023年07月18日 由 Alex 发表
1002286
0
自从ChatGPT发布以来——甚至从GPT-4发布以来更是如此——我看到了一种反复出现的炒作和失望的模式。首先,一项研究声称,ChatGPT、GPT-4或[说出你的LLM]已经通过或取得了一些为人类设计的困难测试:律师考试、数学考试、麻省理工学院考试、编码竞赛、理解测试等。然后,另一项研究反驳了之前研究的结果。事实证明,当更仔细地检查时,该模型为错误的原因提供了正确的答案。
科学界和研究界仍在探索评估大型语言模型(LLM)能力的正确方法。与此同时,我们正在发现为什么LLM在人体试验中的初步结果具有误导性。这些错误的主要原因之一是“数据污染”,这基本上意味着测试示例包含在模型的训练数据中。
数据污染在机器学习的所有领域都很常见,机器学习工程师非常小心地避免它。然而,当涉及LLM时,数据污染更复杂、更微妙,也更难检测。以下是你需要了解的LLM数据污染以及如何避免它。
机器学习中的数据污染
在训练机器学习模型时,机器学习工程师将他们的数据集分成训练集和测试集(在许多情况下,他们还会添加验证数据集)。顾名思义,训练集通常占数据集的最大部分,用于训练模型。随着训练的进行,模型对训练数据越来越敏感,其性能也随之提高。
测试集决定模型是否可以推广到未见过的例子。如果模型在训练上的表现与测试集之间存在差距,那么模型可能已经过度拟合(即记忆了它的训练数据),需要进行修正。
这就是为什么确保训练集和测试集之间没有重叠是非常重要的。当训练样本进入测试集时,数据集就会被污染。受污染的测试集会提供误导性的结果,因为它会根据已经看到的示例来评估模型。这就像在考试的时候给学生答案一样。他们可能考得很好,但这并不意味着他们学会了这个话题。
分割数据集的方法取决于模型要解决的问题的类型。例如,如果你正在解决一个回归问题,并且数据集中不同的示例之间没有依赖关系,那么你可以随机拆分它们。你必须确保一个示例没有同时包含在训练集和测试集中。如果你正在解决一个简单的分类问题,除了随机分割之外,你还必须确保训练集和测试集中的类平衡。如果你正在解决时间序列问题,那么你必须根据发生的顺序拆分数据,并确保测试集中的示例都发生在训练集中之后。
对于经典的机器学习问题,检测数据污染通常很简单。你可以比较训练和测试示例、时间特征、类别平衡等。对于LLM来说,事情变得复杂了。
LLM数据污染为何如此复杂
分离训练集和测试集的基本规则也适用于大型语言模型。当你在基准数据集上评估你的LLM时,你必须注意不要将你的测试示例包含在模型的训练数据中。
然而,有几个原因使得LLM中的数据污染难以处理:
数据集大小:基础法学硕士在数千亿甚至数万亿的令牌上进行训练。数据来自许多来源,包括不同的语言、信息类型、任务等。要确保你的测试数据或测试数据的某个版本没有包含在数据集中是非常困难的。
提示错误:LLM可以执行少量学习,在提示中包含一些已解决的示例,以使模型能够执行新任务,而无需更新其参数。在一项研究中,研究人员开发了一个自动化系统,该系统使用相似性搜索来检索相关示例,从而为模型创建几次提示。在某些情况下,这些示例包括实际问题及其答案。在这种情况下,提示被答案污染了。
模型复杂性:LLM是具有数百亿或数千亿参数的巨大模型。但他们的数据集比参数大得多,这意味着他们不能完全记住数据。他们有时被称为“随机鹦鹉”。所以,他们重复的训练数据,但不是逐字逐句,有一些随机性。它们擅长生成有意义的符号序列,但它们也经常生成完全错误的响应。他们可以做复杂的数学,但他们也无法解决基本的问题。一些测试表明LLM可以进行推理,而另一些测试表明他们没有计划和推理的概念。所以除了训练数据的统计规律外,很难确切地说他们在训练中学到了什么。这一切都使得我们很难确定模型为问题提供了正确的答案,因为它知道答案还是因为它已经学会了如何解决问题。
问题混淆:LLM被训练用于下一个令牌预测,并被设计为可以解决许多不同类型问题的模型。但正如我上面提到的,检查数据污染在很大程度上取决于你要解决的问题类型。因此,对于LLM正在解决的数学、编码、文本生成、问题回答、计划和其他类型的问题,数据污染规则是不同的。
缺乏透明度:最后,该领域面临的最大问题之一是透明度降低。人工智能公司和研究实验室越来越倾向于对其模型的细节保密。最有影响力的LLM正变得越来越默默无闻。OpenAI没有提供GPT-4的架构和训练数据的细节。谷歌在PaLM 2上采取了类似的方法。我们对Claude和Bard等其他LLMs的培训数据了解不多。由于缺乏透明度,很难在独立测试中发现数据污染。
如何避免LLM数据污染
鉴于LLM的独特特征,其中一些我在上面提到过,我认为我们需要一种新的方法来检测和防止数据污染。
首先,我们必须从鼓励提高实地透明度和核查开始。这一领域需要回归知识共享的根源。应该可以访问训练数据或工具来验证是否在训练中使用了某些示例。
还应该有更好的工具来测试测试示例和训练数据的相似性。不同类型的任务,相似度的衡量标准也不同。正如一些科学家指出的那样,对人工智能系统能力的研究应该更细致地访问评估示例。
我们也应该承认,如果LLM是聪明的,他们的智力与我们的非常不同。正如一些科学家指出的那样,为测量人类智力而设计的测试并不适合评估LLM。人类的记忆和有意识的数据处理能力有限。他们在彼此的基础上建立自己的技能,并学会概括。
但深度学习系统可以在不学习先决技能的情况下找到解决方案的捷径。因此,我们需要设计测试来确保模型不会因为错误的原因而给出正确的答案。例如,测试可以更彻底,并评估在人类中被视为理所当然的构建块。另一种有用的技术是在同一问题的不同变体上测试模型。如果模型已经记住了问题和解决方案,它将在一个变体上成功,而在其他变体上失败。
随着语言模型的不断发展,我们设计、训练和测试它们的方式也在不断发展。数据污染仍将是一个问题。处理它的方式必须改变。
来源:https://bdtechtalks.com/2023/07/17/llm-data-contamination/