预训练数据清洗与质量控制


一句话总结

预训练数据的质量直接决定模型能力的上限,数据清洗包括去重、过滤低质量内容、去除有害信息和平衡数据配比等关键步骤。

核心概念

LLM预训练数据主要来自Common Crawl等互联网爬虫数据,原始数据充斥着噪声。清洗流程:(1)语言识别与过滤——剔除非目标语言内容;(2)启发式规则过滤——移除过短、过长、特殊符号过多、重复率高的文档;(3)去重——包括精确去重(MinHash/SimHash)和模糊去重(N-gram overlap),文档级和段落级都需要做;(4)质量分类器——训练分类器区分高质量(如Wikipedia)和低质量(如垃圾网页)内容;(5)安全过滤——移除有害、违法和隐私信息;(6)数据配比——调整不同来源(网页、书籍、代码、论文)的比例。研究表明,数据质量的提升对模型性能的影响甚至超过增加数据量。

为什么重要

Garbage In, Garbage Out在LLM领域尤为突出。高质量数据可以让小模型超过在低质量数据上训练的大模型。Phi系列模型的成功证明了’教科书级’数据的巨大价值。重复数据会导致模型记忆特定文本(而非学习模式),去重是最基本也最重要的清洗步骤。

实践要点

MinHash LSH是大规模去重的标准方案,可处理万亿Token级数据;质量分类器通常用小模型(如FastText)训练,以Wikipedia和教科书为正例;代码数据需要额外的清洗——去除自动生成的代码、测试数据和配置文件;数据配比需要通过小规模实验(ablation study)确定最优比例,如LLaMA的配比为67%网页+4.5%代码+4.5%Wikipedia等。

常见误区

误区一:数据越多越好——低质量数据不仅无益反而有害,会稀释高质量数据的信号。误区二:清洗一次就够了——需要多轮迭代清洗,每轮发现新的质量问题。误区三:去重只需要在文档级做——段落级甚至句子级的重复也会影响模型,但需要平衡清洗粒度和计算成本。