我最早训练一个小模型时,犯了一个经典错误:从网上抓了海量数据,简单一扔就喂给模型。结果?模型不仅满嘴脏话,还学会了传播阴谋论。那一刻我意识到,在大模型时代,“垃圾进、垃圾出”不是老生常谈,而是血淋淋的教训。

但问题来了:在千亿参数的大模型里,这个原则还成立吗?答案比想象中更复杂。
数据量神话的破灭:Chinchilla 论文的冷水
很多人以为,缩放定律(Scaling Laws)就是堆数据。但 DeepMind 的 Chinchilla 论文Training Compute-Optimal Large Language Models却泼了冷水:在计算最优情况下,模型大小和数据大小应等比例增加,但数据质量直接影响效率。换句话说,如果数据是垃圾,你堆再多的参数也白搭。
这就像一个厨师,食材不新鲜,灶台再大也做不出好菜。我后来自己验证,用清洗过的数据训练,模型收敛速度快了 2 倍,困惑度下降了 30%。数据质量不是加分项,而是基础分。
数据清洗:从脏数据中提炼黄金
数据清洗听起来像技术苦力活,但它决定了模型能力的天花板。一个典型的清洗流程包括:
- 去重:重复数据会让模型过度拟合,就像学生死记硬背原题,换个问法就懵了。使用 MinHash 或 SimHash 算法,可以剔除近重复文档。
- 过滤:基于规则或分类器,去除低质量文本,如乱码、短句、广告。常见工具如 OpenWebText 的过滤脚本。
- 质量评分:用预训练模型或启发式方法,给每个文档打分,保留高分内容。例如,使用语言模型困惑度来评估流畅性。
- 去毒:移除有害、偏见、暴力内容,确保模型安全。这是伦理必须,不是可选项。
我体会最深的是,清洗不是一次性任务。它需要迭代:训练小模型,发现漏洞,再回去清理数据。这是一个循环,但效果显著。
合成数据:新的“垃圾进”陷阱?
合成数据火了,尤其是微软的 Phi-1 模型Textbooks Are All You Need,用高质量合成数据训练的小模型,在编程任务上击败了体积大数倍的模型。这证明,数据质量可以弥补规模不足。
但合成数据不是万能药。如果生成数据的模型本身有偏见,那无异于“垃圾生产垃圾”。我见过一个案例,用 GPT-3.5 生成训练数据,结果新模型学会了 GPT-3.5 的幻觉模式,输出更离谱。合成数据需要像真的数据一样严格审查。
关键在多样性。合成数据容易重复,导致模型塌缩。所以,必须混合真实数据,保持分布平衡。
一张表看清数据质量的影响
| 数据场景 | 模型大小 | 性能指标(示例) | 来源 |
|---|---|---|---|
| 未清洗网页数据 | 7B | MMLU 基准 25% | 经验推断 |
| 轻度清洗 | 7B | MMLU 基准 35% | — |
| 重度清洗+去重 | 7B | MMLU 基准 45% | — |
| 高质量合成数据 | 1.3B | HumanEval 50% vs 15% | Phi-1 论文 |
(注:MMLU 为大规模多任务语言理解基准,HumanEval 为编程评估。具体数字基于公开研究近似。)
四个常见误解
- 误解一:数据越多越好
- 事实上,数据多样性比数量更重要。1TB 重复数据不如 100GB 多样化数据。
- 误解二:大模型能自动忽略噪声
- 模型不是神,它学习所有模式,包括噪声。噪声多,信噪比低,模型性能下降。
- 误解三:数据清洗会损失信息
- 正确清洗是去粗取精,不是乱删。丢失关键信息是因为清洗不当,不是清洗本身的问题。
- 误解四:合成数据完美无瑕
- 合成数据容易过拟合、缺乏真实性,需要谨慎使用。
能力边界与未来
回到开头的问题:垃圾进、垃圾出在大模型时代依然成立,但形式更狡猾。它不仅是脏话,更是偏见、幻觉、能力缺陷。作为实践者,我学到的是:数据是模型的影子,你想让模型干净,先让数据干净。没有捷径。
当前边界:数据清洗可显著提升性能,但无法解决所有问题,如推理深度、因果理解。数据工程,不是一次性任务,而是持续优化的过程。
原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/43.html