编者按:在大型语言模型(LLMs)领域,处理数据污染问题尤为复杂。虽然我们通常会告诉机器学习模型要把训练和测试的数据分开,但是LLMs有些独特的特点,让这个问题变得更难解决。LLMs使用的庞大数据集、智能的表现方式,以及测试问题的多样性,让我们传统的检测方法不再适用。 Ben Dickson 编撰的 “Why data contamination is a big issue for LLMs”(为什么数据污染对LLMs来说是个大问题)简单的为我们介绍了为了避免数据污染,我们需要做的一些改变。首先,我们需要更多的透明度和验证。我们希望能够更了解LLMs的训练数据。其次,我们需要更好的工具来检测测试数据和训练数据之间的相似性。重要的一点是,我们要认识到LLMs的智能方式与人类有些不同,传统的测试方法可能不太适合它们,我们需要不断地调整我们的方法,以更好地解决数据污染的问题。我们特将该内容编译出来和各位客户、合作伙伴朋友分享。如需转载,请联系我们(ID:15937102830)

自从ChatGPT发布以来,尤其是GPT-4发布以后,我已经看到了一个反复出现的模式,即炒作和失望。首先,有研究声称ChatGPT、GPT-4或其他大型语言模型(LLM)已经通过了或在某些人类设计的困难测试中表现出色:律师考试、数学考试、麻省理工学院考试、编程竞赛、理解力测试等等。然后,另一项研究驳斥了先前研究的结果。事实证明,当仔细检查时,模型提供了错误原因的正确答案。

科学和研究界仍在探索正确的方法来评估大型语言模型的能力。与此同时,我们正在发现初始结果在人类测试中的表现为何是误导性的。导致这些错误的主要原因之一是“数据污染”,这基本上意味着测试示例包含在模型的训练数据中。


(资料图片仅供参考)

数据污染在机器学习的所有领域中都很常见,机器学习工程师会非常小心地避免它。然而,当涉及到大型语言模型时,数据污染变得更加复杂、微妙且难以检测。以下是关于LLM数据污染以及如何避免它的相关信息。

01

机器学习中的数据污染

在训练机器学习模型时,机器学习工程师将数据集分为训练集和测试集(在许多情况下,还会添加验证数据集)。顾名思义,训练集通常占据数据集的主要部分,用于训练模型。随着训练的进行,模型对训练数据变得越来越敏感,其性能逐渐提高。

测试集确定了模型是否能够泛化到未见过的示例。如果模型在训练集和测试集上的表现存在差距,那么该模型很可能出现了过拟合(即,它记住了训练数据),需要进行修正。

这就是为什么确保训练集和测试集之间没有重叠非常重要。当训练样例出现在测试集中时,数据集就被称为受到污染。受污染的测试集会提供误导性的结果,因为它将在模型已经见过的示例上评估模型。这就好像是在考试时把答案连同试题一起给学生。他们可能会通过考试,但这并不意味着他们学会了这个主题。

(当有足够的数据时,机器学习工程师会添加一个验证集,用于比较不同版本的训练模型并配置超参数。使用单独的验证集和测试集有助于避免二次数据污染。当您在验证集上持续评估训练模型时,验证集中的数据最终会影响训练过程。)

数据集的分割方法取决于模型解决的问题类型。例如,如果您正在解决回归问题并且数据集中的不同示例之间没有依赖关系,那么您可以随机地分割它们。您只需确保一个示例不同时包含在训练集和测试集中。如果您正在解决一个简单的分类问题,除了随机分割外,您还必须确保训练集和测试集中的类别平衡。如果您正在解决时间序列问题,那么您必须根据事件发生的顺序来分割数据,并确保测试集中的示例都发生在训练集之后。

对于经典的机器学习问题,检测数据污染通常是直接的。您可以比较训练和测试样例、时间特征、类别平衡等。对于大型语言模型,事情变得复杂起来。

02

为什么大型语言模型的数据污染变得复杂

同样的基本原则,即分离训练集和测试集,也适用于大型语言模型。当您在基准数据集上评估您的大型语言模型时,必须注意不要将测试示例包含在模型的训练数据中。

然而,以下几个原因使得在大型语言模型中处理数据污染变得复杂:

数据集规模:基础大型语言模型的训练数据包含数千亿甚至数万亿的标记。这些数据来自许多不同的来源,包括不同的语言、信息类型、任务等。确保您的测试数据或其版本尚未包含在数据集中非常困难。有几个例子显示,研究人员报告称大型语言模型可以解决复杂任务,但后来发现模型可以逐字地生成这些示例,这意味着它们已经包含在其训练数据中。

提示错误:大型语言模型可以进行少样本学习,即在提示中包含一些已解决的示例,以使模型能够在不更新其参数的情况下执行新任务。在一项研究中,研究人员开发了一个自动系统,使用相似性搜索来检索相关示例,以创建一个供模型使用的少样本提示。在某些情况下,这些示例包含了实际问题及其答案。在这种情况下,提示被答案污染。

模型复杂性:大型语言模型是具有数百亿甚至数千亿参数的巨大模型。但是,它们的数据集要比参数大小大得多,这意味着它们并不完全记忆数据。它们有时被称为“随机鹦鹉”。因此,它们会重复模仿它们的训练数据,但不是逐字复制,其中存在一些随机性。它们擅长生成大部分有意义的标记序列,但也经常生成完全错误的回应。它们可以进行复杂的数学计算,但在基本问题上也会失败。一些测试显示,大型语言模型可以进行推理,而其他测试则显示它们对规划和推理没有概念。因此,很难确切地说它们在训练过程中学到了什么,除了训练数据中的统计规律。所有这些都使得很难确定模型之所以提供正确答案是因为它知道答案,还是因为它已经学会了如何解决问题。

问题混淆:大型语言模型进行下一个标记预测的训练,并被设计为可以解决许多不同类型的问题。但正如我之前提到的,检测数据污染在很大程度上取决于您要解决的问题类型。因此,用于数学、编码、文本生成、问答、规划以及其他大型语言模型正在解决的问题类型的数据污染规则都会有所不同。

透明度缺失:最后,该领域面临的最大问题之一是逐渐减少的透明度。人工智能公司和研究实验室越来越有动机保守他们模型的详细信息。最强大的大型语言模型变得越来越难以理解。OpenAI没有提供有关GPT-4架构和训练数据的详细信息。Google在PaLM 2中采取了类似的方法。我们对其他大型语言模型(如Claude和Bard)的训练数据了解甚少。透明度的缺乏使得在独立测试中检测数据污染变得非常困难。

03

如何让避免大型语言模型的数据污染

鉴于大型语言模型的独特特点,其中一些我在上面提到过,我认为我们需要一种新的方法来检测和预防数据污染。

首先,我们必须从鼓励该领域中更多的透明度和验证开始。该领域需要回归到分享知识的初衷。要么应该有对训练数据的访问权限,要么应该有工具来验证某个示例是否在训练中使用过。

此外,应该有更好的工具来测试测试示例和训练数据之间的相似性。而且相似性度量在不同类型的任务中会有所不同。正如一些科学家所指出的,关于AI系统能力的研究应该提供更细粒度的评估示例访问权限。

我们还应该认识到,如果大型语言模型是智能的,它们的智能与我们的智能非常不同。正如一些科学家所指出的,用于测量人类智能的测试并不适用于评估大型语言模型。人类的记忆和有意识的数据处理能力有限。他们在彼此之上建立技能,并学会进行泛化。例如,在学习微积分之前,您必须掌握代数和基础数学。因此,如果您在微积分考试中获得高分(不作弊的情况下),则您应该具备所有这些基础技能。

但深度学习系统可以找到解决方案的捷径,而无需学习先决条件技能。因此,我们需要设计旨在确保模型不因错误的原因而给出正确答案的测试。例如,测试可以更加彻底,并评估人类默认为理所当然的基础构建模块。另一个有用的技术是在相同问题的不同变体上测试模型。如果模型已经记住了问题和解决方案,它将在一个变体上成功,在其他变体上失败。

随着语言模型不断发展,我们设计、训练和测试它们的方式也将不断改变。数据污染仍将是一个问题,解决它的方法必须发生变化。

推荐内容