去重
去重是指当训练数据中多次出现完全相同或几乎相同的文档、句子、图像时,只保留一份、过滤掉其余部分。在整理从互联网大量收集的 LLM 训练数据时,这尤其是必不可少的步骤。
工作原理
首先找出一字不差的完全重复。为每个文档计算哈希值(把内容转换成简短唯一编号的值),编号相同就视为同一文档,只保留一份。接下来是只有广告语或日期不同的近似重复。可以使用 MinHash 这类把文档切分成短字符片段后快速估算重叠程度的技术,或用嵌入查找语义相近文档的方法。设定标准(相似到什么程度算重复),在相似度超过该标准的一组文档中只保留一个代表。
过滤重复的步骤
为什么重要
互联网数据中有大量转载的同一篇文章、复制的代码和重复的用户协议。如果放任这些重复不管,模型会多次看到同一段文字,容易把这些句子整段记住并原样输出,可能引发个人信息或版权问题。训练算力也会浪费在相同的内容上。此外,如果评测用的基准题目混入训练数据,就会出现让能力被高估的数据污染;利用去重过滤掉训练数据与评测数据之间的重叠,也是一项重要用途。
注意事项
“相似到什么程度算重复”的标准定得太宽松,会把彼此不同的优质文档也删掉;定得太严格,又会残留重复。当数据规模达到数十亿条时,无法直接比较所有文档对,因此需要粗略而快速比较的近似技术。另外,有些数据中重复是自然的(法律条文、常用的代码惯用写法),因此不应一律删除,而要根据数据的性质来决定。在用于 RAG 的文档库中,整理重复内容也能减少检索结果被相同内容刷屏的情况。
示例
进行 LLM 预训练的团队会在把从网络收集的文档投入训练之前,在数据管道中设置去重步骤。他们会过滤掉同一条新闻刊登在多个网站上的情况和复制的代码文件,并剔除与基准题目重叠的文档,以防模型靠记住题目获得分数。用公司内部文档构建 RAG 时,也会整理只是版本不同的同一文档,以提高检索质量。