大模型预训练数据策略:从“数据搬运”到“数据炼金”的工程实践
导语
大模型的发展正经历从“算力军备竞赛”向“数据效率竞赛”的拐点。Densing Law趋势揭示了一个关键事实:同等效果所需参数和算力正在急剧下降。Phi系列模型用不到Llama系列1/10的FLOPS达到了更好的效果,fineweb-edu仅用1/10的数据量就达到了C4全量训练的结果。这一切都指向一个核心——预训练数据策略必须从单纯追求数量,转向追求极致的质量与精选。本文将系统拆解预训练数据策略的四大核心环节:数据质量、数据配比、代码数据与数据合成,提供可直接落地的工程经验。
核心问题与挑战
在追求高质量预训练数据的过程中,工程团队往往面临以下反直觉的痛点:
- 激进去重反噬质量:盲目追求90%以上的去重率,导致保留的10%数据质量反而不如被删除的90%。全局去重不仅未能提升模型性能,反而破坏了有价值的数据分布。
- 传统“高质量”标准失效:大模型预训练中的“高质量”无法通过人类观察清晰定义,传统启发式规则不再适用。
- 评估指标失真:常用的PPL指标受文本长度影响极大,且无法区分是数据质量差还是模型未学会,更无法衡量数据的逻辑性。
- 粗粒度配比失灵:基于Domain(领域)粒度的数据配比过于粗糙,无法有效确定具体的知识比例,导致网络网页数据过度代表。
- Token级算力浪费:即使经过严格筛选的高质量数据集仍包含噪声,对所有Token一视同仁地计算损失,导致严重的算力浪费和模型潜力受限。
方案与实践
数据质量:去重与筛选的精细化
1. 桶内去重替代全局去重
大量重复内容确实影响性能,但只有海量重复才是真正的毒药。实践表明,桶内去重能有效去除大部分海量重复,同时为下游质量筛选保留充足的高质数据空间。去重策略必须与业务需求定制结合,激进去重不可取。
2. 从人工规则走向模型视角的动态筛选
- LLM+COT打分:摒弃fasttext、bert时代的旧范式,使用大模型结合思维链(COT)进行质量打分。Llama3报告也证实,用前代模型作为质量分类器效果显著。
- 引入因果分数:针对PPL无法衡量逻辑性的缺陷,引入因果分数来有效区分高质量逻辑数据与低质乱码数据。
3. 基于自我学习的Token级选择
- Self-Influence重加权:在训练过程中利用前向与反向传播的梯度特征,计算Self-Influence分数,实现数据重要性的自我选择与迭代更新(多前向少反向)。
- Token级损失差异选择:不再对整条数据一刀切,仅训练与参考模型损失差异大的Token,既过滤噪声,又节省计算。
4. 实验阶段选择
在涌现期和退火阶段进行数据实验,可以极低成本放大数据差异,用极少训练资源验证数据策略。
数据配比:知识分类与Scaling Law预测
1. 27大类知识分类体系
打破传统Domain粒度,参考世界知识体系分类,结合数据自身特征构建27个大类。按知识体系采样,能有效降低网页数据的过度代表,精准控制知识密度。
2. REGMIX:小模型回归预测大模型配比
如何确定最佳混合比例?通过训练多个使用不同数据配比的小模型,利用回归模型预测大模型在特定配比下的性能(Scaling Law for data mix),以极低成本逼近最优解。
代码数据:通用推理的催化剂
1. 代码不仅服务于代码
实证数据表明,加入代码数据不仅在代码评测集上提分,更在几乎所有通用评测集上取得更好效果。代码数据能促使通用能力更早涌现,是提升大模型逻辑推理的关键催化剂。
2. FIM与Repo级训练
在代码处理流水线中,除了常规的分桶去重与质量模型筛选,必须结合Fill-in-the-Middle (FIM) 训练目标与Repo级上下文训练,深度挖掘代码的逻辑结构价值。
数据合成:从捷径学习到旅程学习
1. 代码QA与多步生成
- QA互生:根据docstr生成代码,根据代码生成docstr,或根据代码生成问题,实现数据维度的自扩增。
- 多步生成:采用Think step by step方式合成代码,打破端到端的单一生成模式。
2. 长思维链与递归内省
针对类o1模型的推理需求,数据合成必须从只给结果的Shortcut Learning(捷径学习),转向包含推理过程的Journey Learning(旅程学习)。通过递归内省机制构建长思维链,让模型在合成数据中学习如何自我纠错与深度推理。
原则/方法论沉淀
- 质量绝对优先于数量:低质数据对模型的负面影响,远超高质数据重复带来的正收益。
- 去重与质量协同:去重策略需与质量筛选对齐,避免激进去重破坏数据分布,去重不是目的而是手段。
- 模型视角优于人类视角:数据筛选应结合模型自我学习特征(Self-Influence/Token损失),而非纯粹的人类直觉偏好。
- Scaling Law指导配比:利用小模型实验与回归预测指导大模型的数据配比决策,拒绝拍脑袋定比例。
- 代码是通用能力的推力:代码数据不仅服务于代码任务,更是触发模型通用推理能力涌现的核心引擎。
总结与行动建议
预训练数据策略已进入精耕细作时代。工程团队应立即采取以下行动:
- 审视去重流水线:停止对高去重率的盲目追求,切换至桶内去重,为质量筛选留出余量。
- 升级质量评估栈:引入LLM打分与因果分数,替换失效的PPL与规则过滤。
- 细化配比粒度:从Domain级别细化到知识分类级别,部署小模型回归实验寻找最优配比。
- 重估代码价值:在预训练早期即引入代码数据,并采用FIM与Repo级训练策略。
- 转变合成范式:从单步生成转向包含自我纠错的长思维链合成,为模型提供“旅程学习”的养料。
开放问题与延伸方向
- 因果分数和Self-Influence在万卡集群上的计算开销如何,能否支撑万亿级Token筛选?(关联质量筛选方案的工程落地可行性)
- 桶内去重虽保留高质数据,是否会导致桶间分布严重失衡进而引发过拟合?(关联去重策略的潜在副作用)
- 小模型回归预测配比的成功,是否意味着可用极低成本穷举甚至发现反直觉最优解?(关联配比优化的潜力空间)
- 用LLM+COT给数据打分,是否会造成“近亲繁殖”,扼杀数据多样性?(关联模型视角筛选的长期风险)
- 既然代码能促进通用推理,能否将自然语言逻辑任务强制转化为伪代码或AST进行训练?(关联代码数据范式的迁移可能)
- 长思维链合成中,若自我纠错包含错误中间推理,这种“伪旅程”是否让模型学到摇摆习惯?(关联合成数据的质量控制)
- 27大类知识分类的层级边界如何定义,如何保证不同标注者或模型分类的一致性?(关联配比方案的落地细节)
- 去重、质量筛选、配比预测的先后顺序是否固定,如何评估不同排序对最终效果的耦合影响?(关联数据流水线的系统性设计)
- Token级损失差异选择能否迁移到微调阶段,作为防灾难性遗忘或减轻对齐税的手段?(关联Token级选择的扩展应用)
- Densing Law趋势下,极致数据精选是否让中小团队在垂直领域弯道超车,商业价值是否比拼算力更大?(关联数据策略的商业战略意义)