概述
随着人工智能的快速发展,大规模语言模型已成为自然语言处理、自动内容生成、复杂决策系统和自主代理等不同领域创新的重要工具。这些模型在庞大的数据集上进行训练,可以生成与人类无异的自然答案。但是,如果数据集的完整性遭到破坏,模型的有效性和可靠性就会受到严重影响。
污染 "是这一领域的一个主要问题。这种污染包括 "数据污染 "和 “模型污染”。"数据污染 "是指由于在训练集中加入了评估数据集而导致评估结果失真,而 "模型污染 "则是指模型事先看到了评估数据集。这可能导致对模型性能的评估不准确,并可能造成偏差。此外,根据受污染的数据是只包含输入还是同时包含输入和标签,还可将其分为 "输入污染 "和 “输入+标签污染”。检测模型污染的方法可分为白盒检测和黑盒检测,前者可以完全访问本地模型,而后者只能访问 API。
污染不仅在技术准确性方面带来挑战,在道德和商业方面也是如此。在医疗诊断、法律咨询和金融服务等需要信任的领域,依赖受污染数据的风险尤其大。随着公司利用人工智能进行战略决策,保证数据的准确性至关重要。大规模语言模型输出的可靠性也会影响投资者的信心,而投资者的信心又与技术优势和财务前景有关。
这种情况要求对大规模语言模型中的污染检测进行全面调查和资源共享。本文阐明了污染的范围和性质,确定了污染的来源、类型和对模型性能的影响。本文还强调了降低污染风险战略的重要性,从而确保大规模语言模型的部署是公平和经济上可持续的。
论文介绍了与数据污染相关的方法和发现、模型污染问题、当前和未来的挑战、最佳实践,以及可共享污点检测方法的开源 Python 库 LLMSanitize。
数据污染审查
数据污染检测的目的是检查在给定训练数据集 D 和评估数据集 DE 的情况下,D ∩ DE 是否为空。这对于确保评估基准的性能不受污染数据的影响至关重要。
在一些大规模语言模型训练报告中,下游评估数据集和预训练集之间的污染程度是通过字符串匹配来评估的,这是最基本的数据污染评估技术。这种技术有以下优点。
- GPT-2(Radford 等人,2019 年)。
- 污染的计算方法是评估集中的 8 个语法在 WebText 训练集中所占的比例。一般语言模型数据集的测试集与 WebText 数据集的重叠率为 1-6%,平均重叠率为 3.2%。
- GPT-3(Brown 等人,2020 年)。
- 删除了普通爬行(C4)数据集和含有 13 个重复语法的数据点。发现了大规模数据污染,维基百科语言建模基准和 SQuAD 2.0 几乎完全被污染。
- 道奇等人(2021 年)。
- 对 C4 数据集进行了检查,以确定其在 NLP 任务训练和测试数据集的预训练语料库中的含量。污染程度从不到 2% 到超过 50% 不等。
- PaLM(Chowdhery 等人,2023 年)。
- 确定 10 个存在污染风险的评估数据集,并根据训练集中 8 个词组的比例是否超过 70%,将数据集分为清洁和污染子集 与 GPT-3 一样,清洁集和污染集之间的性能差距很小。
- GPT-4(Achiam 等人,2023 年)。
- 测量评估集和预培训数据之间的污染程度,方法是从评估数据点中随机提取的 50 个字符的子字符串,如果是培训集的子字符串,则视为重复。污染对零点测试结果的影响可以忽略不计。
- Llama-2(Touvron 等人,2023 年)。
- 在评估样本和训练集中出现 10 个或 10 个以上的词组 n-gram 时,即定义为污染。污染程度以受污染词块的百分比来衡量。
- 李(2023b)。
- 计算来自 CommonCrawl 的匹配页面与来自 Bing API 的查询之间的 METEOR 分数,并将高于 0.75 的视为污染。污染程度从 1% 到 47% 不等。
- Deng 等人(2023 年)。
- 从预训练数据集中检索出前 10 篇文档,将其分成 13 个语法块,并计算与评估数据点的语法块的重叠度。结果显示,TruthfulQA 与预训练数据集的重叠度很高。
简单的字符串匹配对转述样本无效。不过,计算嵌入之间的余弦相似度是一种更稳健的替代方法,可以抵御词性变化。针对这种方法,我们介绍了以下几种方法。
- 李等人(2023 年)。
- 移除与 Open-Platypus 数据集中的训练项目具有 80% 以上余弦相似度的测试问题,以防止污染。
- Phi-1(Gunasekar 等人,2023 年)。
- 证明基于嵌入的代码片段间搜索是有效的,而 n-gram 重复搜索则会失败。
- Riddell 等人(2024 年)。
- 提供了一种结合字符串匹配和嵌入式相似性的混合方法。表明广泛使用的代码生成基准受到预训练集的影响。
字符串匹配很难检测到大规模语言模型生成的合成训练数据,而使用嵌入的语义相似性搜索也很难选择适当的相似性阈值。因此,为了提高鲁棒性,我们提出了一种利用大规模语言模型本身来检测污染的方法。这种方法有以下几种。
- Yang et al. (2023b)。
- 重构样本的存在增加了污染检查的难度。使用嵌入式相似性搜索和大规模语言模型(GPT-4)组合进行检测。
- Zhu 等人(2023 年)。
- 采用基准 Clean-Eval 评估去污性能,显示 Clean-Eval 数据中 GPT-3.5 和 Llama-2 性能下降,证实了污染情况。
这些研究为检测数据污染提供了多种方法,是提高评估基准可靠性的重要一步。
模型污染审查
模型污染是指将在训练集 DM 上训练的模型 M 应用于评估数据集 DE,目的是检查DM∩DE 是否为空。在训练过程中接触评估数据可能会影响模型的泛化能力,人为地提高其性能。与数据污染相比,训练集取决于模型,可能是未知的,如在 GPT-3.5 和 GPT-4 中。
首先,它回顾了通过性能分析评估模型污染的研究,将 M 应用于具有不同时间戳的评估数据集,并包括在预训练期间不存在的数据集。这样可以防止污染。这些数据点的性能不佳就表明存在污染。
- 罗伯茨等人(2023 年)。
- 使用特定截止日期前后的数据集,比较分析 GPT-4 和 GPT-3.5-Turbo 对代码生成任务的影响;发现接触 Codeforces 和 Project Euler 等编码问题平台的可能性与测试用例通过率之间存在显著相关性发现接触 Codeforces 和 Project Euler 等编码问题平台的可能性与测试用例通过率之间存在明显的正相关。
- Li & Flanigan (2023)
- 本文介绍了在大规模语言模型中检测任务污染的四种创新方法。这些方法包括训练数据检查、任务示例提取、成员推断和时序分析。这些方法为提高大规模语言模型的可靠性提供了全面的工具包。
- Jiang 等人(2024b)。
- 利用各种公共数据集对语言模型预训练中的数据污染进行了全面评估。发现数据污染程度与模型性能之间存在 U 型关系,这表明现有的基于 n-gram 的污染定义是不够的。这凸显了对更强大的污染检测方法的需求。
在大型语言模型中检测模型污染的直观方法是在受控提示设置中仔细分析输出结果。受污染数据的输出可能与训练数据非常相似或完全一致,而且模型置信度可能非常高。
此外,在分析模型记忆时,研究人员会关注模型已完全记忆的训练数据,并以此来识别下游任务中的污染。
- Elangovan 等人(2021 年)。
- 注意到在 NLP 任务中常见的随机数据洗牌并没有考虑到训练集和测试集之间的重叠。这种重叠会导致数据泄露和性能指标被高估。采用词袋方法评估文本相似性,为识别和减少泄漏提供了基础方法。
- 李等人(2021 年)。
- 验证了重复数据集的显著优势,重复数据集可将完整数据存储的发生率降低 10 倍,减少训练和测试重叠,防止高估模型准确性。通过减少多达 19% 的数据量、提高训练效率以及保持或改善模型的窘迫性,快速实现高准确性。在不影响数据质量或模型性能的情况下,简化学习过程,促进环境和经济上可持续的模型开发。
- 马加尔和施瓦茨(2022 年)
- 它在多个基准中发现了污染的证据,并指出污染影响了 GPT-3 等模型的性能。量化污染影响的新方法包括在通用数据和特定任务数据的混合数据上训练模型,并通过比较可见实例和未见实例的性能来测量内存和利用率。该方法强调了内存和利用率之间的微妙关系,表明根据特定数据配置训练的大规模模型可能会对污染数据表现出不同的敏感性。
- 杰玛团队 谷歌 DeepMind (2024)
- 强调了完整性模型在背诵记忆训练数据以应对对抗性攻击时的脆弱性;使用类似于 Anil 等人(2023 年)的方法,分析了来自 Gemma 预学习模型语料库的 10,000 篇文档中的可发现记忆。分析区分了 "精确记忆 "和 “近似记忆”,"精确记忆 "是指模型生成的文本与源文件完全匹配,而 "近似记忆 "则以 10%的编辑距离阈值来衡量。分析表明,Gemma 模型的记忆率与 PaLM 和 PaLM-2 模型相似。
其他研究人员开发了精心设计的提示技术,以诱导大规模语言模型完成数据,如果输出结果与实际训练数据非常接近,则可能表明存在污染;由于大规模语言模型在 RLHF 过程中的一致性,标准的数据完成提示有时会失效(欧阳等人,2022b)。据报道,数据完成的标准提示有时会失效(欧阳等人,2022b)。
- 纳斯尔等人(2023 年)。
- 揭示了包括 ChatGPT 在内的大规模语言模型易受数据提取攻击的弱点,从而引发严重的隐私问题。通过对训练数据之外的输入进行提示,我们发现 ChatGPT 重现了部分训练数据,并包含个人层面的敏感信息。研究表明,即使是使用旨在减少存储数据传输的完整性技术训练的模型,也会泄露大量敏感信息,因此需要开发更强大的防御系统。这项研究影响深远,凸显了解决大规模语言模型部署过程中固有的隐私漏洞的重要性。
- Weller 等人(2023 年)。
- 通过有效的提示策略,突出了引导大规模语言模型生成更多事实内容的潜力。添加诸如 "根据 "之类的指示短语可提示从特定语料库中引文,通过引文信息准确性(QUIP)得分衡量,该方法提高了基础性。该方法证明了其在一系列领域和语料库中的通用性和有效性,以及利用大规模语言模型的存储知识生成更准确、更可靠的回答的潜力。
此外,基于似然法的方法利用了这样一个事实,即如果在训练过程中看到相关数据,模型往往会以更高的置信度做出下一个标记预测。
- Min-K% Prob(Shi 等人,2024 年)。
- 假设可以白盒访问大规模语言模型的 logit 或下一个标记概率分布。给定测试样本 X,该方法通过 X 的所有标记运行大规模语言模型,跟踪预测概率最低的 k% 标记。然后计算这些最低概率的平均值,如果平均值过高,则认为 X 已被污染。
- 奥伦等人(2023 年)。
- 分析评估数据集 DE 的大规模语言模型可能性的独特方法;对 DE 和 DE 的洗牌版本进行推理。如果大规模语言模型在非洗牌数据集上的对数概率与洗牌版本的对数概率在统计上不同,则表明存在污染。该方法基于以下假设:当评估数据集被纳入预训练集时,它们往往以相同的默认顺序存在。
- 李(2023a)
- 将基准样本的困惑度与记忆基线和干净基线进行比较。结果发现,在关键的阅读理解和摘要基准中,最近的模型有明显的记忆,但在多项选择基准中,污染的证据较少。这种方法为社区提供了严格的污染分析工具,使模型评估更加准确可靠。
- Dong 等人(2024 年)。
- CDD 通过观察大型语言模型输出分布中的峰值来检测数据污染,并以黑箱方式进行。CDD 通过观察大型语言模型输出分布的峰值来检测数据污染,并以黑箱方式执行。这代表了与现有方法相比的重大进步,在准确率、F1 分数和 AUC 指标方面提供了 21.8% 至 30.2% 的相对平均改进。TED 修改了大型语言模型的输出分布,以减少数据污染对评估指标的影响、TED 修改了大规模语言模型的输出分布,减少了数据污染对评估指标的影响,在各种情况和污染水平下显著降低了数据污染带来的性能提升。
大规模语言模型还建立了模型污染检测的新范式;Golchin 和 Surdeanu(2023b)提出了引导式提示。这不同于将数据完整输入大规模语言模型的标准提示,还包括数据集名称等附加信息。污染的评估标准是标准提示和引导式提示之间的平均性能差异,或者在引导式完成中,GPT-4 是否利用上下文学习找到了一个精确匹配或两个近似匹配。后一种方法在识别污染方面显示出极高的准确率(92%-100%)。此外,这项研究强调了污染在 AG News(Zhang 等人,2015 年)、WNLI(Levesque 等人,2012 年)和 XSum(Narayan 等人,2018 年)等数据集以及大规模语言建模应用中的普遍性凸显了解决数据完整性问题的必要性。
作者还提出了一个数据污染测验(DCQ)评估框架,用于检测黑盒大型语言模型的污染情况。接受调查的大规模语言模型有五个完成选项,包括原始数据集中的真实文本、GPT-4 中的三个转述和 "无 "选项。如果大规模语言模型选择了正确答案,则假定是由于记忆的原因,作者表明这种 DCQ 框架比引导提示法发现了更多的污染案例。
新的评估基准
为了提供无污染评估,引入了以下新的数据集
- LatestEval (Li et al., 2023b)
- 利用最新文本创建动态阅读评估基准。它包括三个步骤:收集最新文本、提取关键信息,以及使用模板嵌入和大规模语言模型根据这些信息创建问题。
- WIKIMIA(Shi 等人,2024 年)。
- 由 2023 年后创建的维基百科事件组成的动态基准,也引入了转述设置,利用 ChatGPT 创建转述示例进行评估,CleanEval 也采用了类似的方法(Zhu 等,2023 年)。
- KIEval(Yu 等人,2024 年)。
- 交互式评估框架将 "交互者 "与大规模语言模型结合起来。通过多轮对话和后续问题确保耐污染性评估。评估人员可确定模型的答案是简单地凭记忆回答,还是在更复杂的对话中展现了对知识应用的深刻理解。
- LiveCodeBench (Jain 等人,2024 年)
- 持续收集来自 LeetCode、AtCoder 和 CodeForces 的新问题,以及无污染代码生成基准。一些模型(如 DeepSeek)在 LeetCode 新问题上表现不佳,表明存在污染迹象。
- 白蚁(Ranaldi 等人,2024 年)。
- 一个新的文本到 SQL 数据集,其通过搜索引擎的公开访问被加密密钥锁定。由人工创建的数据库组成,每个数据库配对约五个查询,旨在与 Spider 数据集(Yu 等人,2018 年)的特征相匹配,但不幸的是,Spider 数据集在 GPT-3.5 时显示出高度污染的迹象。
此外,Alzahrani 等人(2024 年)指出,即使对现有基准进行微小的扰动,也会影响模型在排行榜上的排名,因此需要更好的评估基准。
未来的任务
鉴于机器学习研究的快速和不断变化,大规模语言模型污点检测的未来方向很可能包括广泛的方法和技术方面。本文指出了几个关键的焦点问题。
第一种是实时污染检测系统。实时数据污染检测系统可持续监控数据流,并在污染事件发生时向用户发出警报,这在金融(Fresard 等人,2011 年)和医疗保健(Gao 等人,2022 年)等领域尤为重要,因为这些领域的数据完整性至关重要,模型的可靠性也至关重要。这在以下领域尤为重要鉴于每天都有大量新数据上传到互联网,因此需要重大技术突破来解决这一难题。
其次是避免污染检测;Dekoninck 等人(2024 年)展示了一种非常有效的方法来避免一些现有的污染检测方法:Evasive Augmentation Learning (EAL),该方法使用 GPT-4 和 GPT-4,对基准进行解析。利用转述数据微调大规模语言模型的方法。
第三是伦理和法律数据框架。有必要建立一个全面的伦理和法律框架(Chang,2021 年),以规范用于研究大规模语言模型的数据的收集、使用和管理。这包括有关数据隐私、同意和使用的政策和协议,这些政策和协议有助于防止不法来源的污染数据和广泛使用的先验学习数据源(如 CommonCrawl)受到污染。在不损害个人隐私的情况下开发污染检测技术非常重要。
LLMSanitize 库
为了促进大规模语言模型污点检测的进展,我们建立并发布了一个开源 Python 库 LLMSanitize,它支持数据和模型污点用例、输入/标记污点。使用该库的最小伪代码结构如下
用户需要为数据污染指定训练和评估数据集,为模型污染指定大规模语言模型和评估数据集。数据集和大规模语言模型预计将在 HuggingFace Hub 中提供,特别是依靠转换器(Wolf 等人,2020 年)和数据集(Lhoest 等人,2021 年)库。
使用 vLLM 库(Kwon 等人,2023 年)可对基于模型的用例进行高效的大规模语言模型推理。其他需要控制的关键参数包括需要处理的评估数据点数量和每种污染检测方法特有的超参数。
此外,还对 LLMSanitise 进行了评估。上述三种最近流行的模型污染方法,即引导提示法(使用 ROUGE-L)、碎片似然法和 Min-K% Prob,被应用于四种广泛使用的 7B 大小的大规模语言模型(Llama2、Qwen-1.5、Mistral和 Gemma)。每个大规模语言模型的聊天机器人版本都被用于 HuggingFace OpenLLM Leaderboard、ARC(Clark 等人,2018 年)、HellaSwag(Zellers 等人,2019 年)、MMLU (Hendrycks 等人,2020 年)、TruthfulQA(Lin 等人,2021 年)、Winogrande(Sakaguchi 等人,2021 年)和GSM8K(Cobbe 等人,2021 年)来测量污染。每个测试集中抽取 100 个数据。
最后,以 2024 年 3 月的 BBC 新闻报道为对比,报告了基于似然法的未污染数据结果:引导提示(使用 ROUGE-L)、碎片似然法和 Min-K% Prob,结果依次如下。
特别是,HellaSwag 基准(Zellers 等人,2019 年)显示出强烈的污染迹象,与方法和 LLM 无关。因此,LLMSanitize 是一种强大的污染检测工具,有望在未来的研究和实践中得到应用。
安装
库用 python 3.9和 CUDA 11.8进行了设计和测试。首先已经要安装了 CUDA 11.8,然后创建一个 conda 环境:
conda create --name llmsanitize python=3.9
conda activate llmsanitize
pip install llmsanitize
总结
大规模语言模型发展迅速,用于训练的数据也越来越多,但其性能很容易受到数据污染的影响。本文详细研究了大规模语言模型污染检测的技术现状,并对其进行了系统整理。本文还介绍了一个新的 Python 库 LLMSanitise,这是一个用于快速检测各种模型和数据集污染的通用工具。
这项详细研究和拟议工具有望成为未来大规模语言模型的基础,以解决数据和模型污染问题。
论文地址:https://arxiv.org/pdf/2404.00699
源码地址:https://github.com/ntunlp/llmsanitize
原文地址:https://ai-scholar.tech/zh/articles/large-language-models/LLMSanitize