Estimating Contamination via Perplexity: Quantifying Memorisation in Language Model Evaluation
https://arxiv.org/abs/2309.10677
通过困惑度估计污染:量化语言模型评估中的记忆
摘要
随着大型语言模型的大规模训练语料库经常无意中包含基准样本,模型评估中的数据污染变得越来越普遍。因此,污染分析已成为可靠模型评估不可或缺的一部分。然而,现有的污染分析方法需要访问完整的训练数据,这些数据对最近的模型通常是保密的。这阻止了社区对这些模型进行严格的审计,并对其能力进行准确的评估。在本文中,我们提出了一种新颖的方法,无需访问完整的训练集即可量化污染,通过困惑度来衡量污染的程度。我们的分析提供了近期基础模型在流行的阅读理解、摘要基准测试中显著记忆的证据,而多项选择似乎污染较少。
1 引言
近年来,在从网络抓取的大量文本语料库上预训练的语言模型取得了显著进展。然而,许多广泛使用的评估基准也是从类似的网络来源构建的,导致了一个令人担忧的问题,即测试集中的示例无意中包含在训练数据中。污染使模型能够通过记忆测试数据而不是展示真正的泛化来“作弊”(Marie,2023),这创造了进步的幻觉,扭曲了模型比较,并破坏了基准的效用(Jacovi等人,2023)。
最近的语言模型评估通常涉及对使用的基准进行详细的污染分析(Brown等人,2020;Chowdhery等人,2022;Touvron等人,2023a;OpenAI,2023)。这些污染报告通常包含两个步骤:1)通过测量测试集和训练数据之间的n-gram重叠来量化潜在的测试污染,2)比较模型在清洁与污染子集上的性能。这一程序对于确定评估程序的有效性和基准在评估模型性能方面的可信度至关重要。
然而,这种分析方法依赖于对完整训练语料库的访问,这些语料库对最近的封闭和开源基础模型通常是不可用的(OpenAI,2023;Touvron等人,2023b)。社区发布的许多微调语言模型也不包括可靠的污染报告,它们的微调数据集也不是公开的。这消除了社区对这些模型进行严格污染审计的可能性,从而阻止了可靠的评估和对其能力的准确评估。
此外,当前识别潜在测试污染的方法,即在测试集和训练数据之间寻找n-gram重叠,也是非常计算密集的,考虑到现代训练语料库的巨大规模。
在本文中,我们提出了一种新的方法,无需访问完整的训练数据即可量化语言模型评估基准中的潜在污染。我们不是识别训练和测试集之间的n-gram重叠,而是直接观察模型在测试实例上是否表现出记忆行为。Carlini等人(2021,2022)定义了模型的“记忆”,如果模型在该序列上的困惑度显著较小,则认为该序列被记忆。这个想法是,泄漏到训练数据中的序列将倾向于比模型从未见过的序列具有更低的困惑度(即,更高的可能性)。但仅仅计算评估基准的困惑度并不能告诉我们任何信息。我们将测试集的困惑度与两个基线进行比较:训练数据的材料作为记忆基线,以及完全未包含在训练数据中的材料作为清洁基线。
如果测试集的困惑度更接近记忆基线,那么我们就已经确定模型在测试集上表现出显著的记忆,反之亦然。
为了使困惑度的比较公平,我们确保基线与测试集具有相同的来源、格式和长度。例如,阅读理解基准测试如SQuAD、QuAD和BoolQ使用维基百科文章作为他们问题中的上下文。那么在量化上述基准的污染时,我们相应地使用维基百科作为我们的基线。在图1中,我们说明了困惑度如何反映模型在维基百科上的记忆程度。
我们提出的方法使得无需训练数据即可进行模型的污染分析,这使得社区能够进行污染分析并进行可信的评估。此外,它避免了在大规模训练语料库上计算n-gram重叠的计算。我们在第3节中阐述了我们的方法,并在第4节中展示了几种典型的语言模型评估基准的案例研究。我们的代码和数据可以在这里找到:https://github.com/liyucheng09/Contamination_Detector。
图1:三个阅读理解基准测试与记忆和清洁基线的困惑度比较。LLAMA-30B是这里的基础模型。