LLM训练数据的收集和清洗

大型语言模型(LLM)的强大能力源于它们所训练的数据。但这些数据从何而来,它们又是如何被清洗和准备的?在这篇文章中,我们将探索LLM训练数据的完整生命周期——从原始数据收集到最终准备就绪的数据集。

1、数据来源

LLM训练数据来自多种来源:

  • 互联网爬取:Common Crawl等数据集包含数十亿页的网页内容,涵盖几乎所有可以想象的主题
  • 书籍和学术论文:版权过期的书籍、arXiv论文和其他学术出版物提供高质量的长篇文本
  • 代码库:GitHub等平台上的开源代码帮助LLM学习编程语言和软件开发模式
  • 社交媒体和论坛:Reddit、Stack Exchange等平台提供对话式数据和问答对
  • 维基百科:结构化、经过事实核查的内容作为训练数据的锚点

2、数据清洗

原始数据不能直接用于训练。它需要经过几个清洗步骤:

  1. 去重:删除重复的文档和段落以防止模型记忆
  2. 语言过滤:仅保留目标语言(通常是英语)的内容
  3. 质量过滤:使用启发式方法和ML分类器移除低质量内容
  4. PII移除:删除或匿名化个人可识别信息
  5. 毒性过滤:移除有害、仇恨或不当内容
  6. 去重(文档级):在文档级别移除近似重复

3、数据预处理

清洗后,数据需要被预处理成模型可以使用的格式:

  • 分词:将文本转换为token(子词单元)
  • 分块:将文本分割成适当长度的序列
  • 格式转换:将数据转换为训练框架所需的格式

4、数据组成和平衡

并非所有数据都是平等的。LLM训练通常使用精心平衡的混合数据集:

  • 网络文本(~60-70%):广泛的知识覆盖
  • 书籍(~15-20%):深度、高质量的内容
  • 代码(~10-15%):编程知识和逻辑推理
  • 学术文本(~5-10%):专业知识和严谨推理

数据的组成对模型的性能有显著影响。过多的网络文本可能导致模型写得像互联网——信息丰富但缺乏深度。过多的书籍可能导致模型过于正式和学术化。

5、合成数据

最近的趋势是使用合成数据——由LLM本身生成的数据——来增强训练集。这可以包括:

  • 指令数据:由更强大的LLM生成的指令-响应对
  • 推理链:逐步推理的示例
  • 对比数据:展示好与不好回答的示例
  • 偏好数据:用于RLHF的人类偏好排名

合成数据是一个有争议但日益普遍的组成部分。在最好的情况下,它可以显著提高模型性能。在最坏的情况下,它可能导致模型崩溃——模型在其自身输出上训练时失去多样性。

6、关键考虑因素

  1. 数据质量胜过数量:1000个精心挑选的示例比100万个嘈杂示例更有价值
  2. 多样性至关重要:模型需要多样化的数据来良好泛化
  3. 数据组成影响行为:训练数据的分布决定模型的行为
  4. 数据是护城河:高质量、独特的数据集是AI公司的竞争优势
  5. 数据生成是一个迭代过程:随着模型的改进,训练数据也得到改进

理解LLM训练数据的生命周期对于任何从事AI工作或使用AI工具的人来说都至关重要。数据决策——收集、清洗、组成和生成——在很大程度上决定了最终模型的能力和局限性。


原文链接: LLMs explained (Part 2): How LLMs collect and clean training data

汇智网翻译整理,转载请标明出处