资讯动态

LLM预训练数据配比消融实验:去重、质量过滤与领域比例调参实战

发布时间:2026/10/8 3:47:40 来源:尧图企业网站定制
如果你手里正好有一份几亿文档规模的原始语料正准备做大模型预训练那你大概率躲不过一个问题LLM训练数据到底怎么配比去重做到什么强度质量过滤卡在哪一档代码、百科、对话、多语这些领域各占多少比例这些听起来都是选择题但每一项都会实实在在地改写最终模型的能力边界。这篇LLM Training Lab第17期我把自己在训练数据配比上做的去重强度、质量过滤与领域比例消融实验完整复盘一遍从实验设计、代理模型验证、评估陷阱到最终沉淀下来的生产配方一次性讲透。1. 为什么数据配比值得专门做一轮消融实验1.1 大家都在抄配比但同一个配比在不同语料上结果完全不同我先说一个很多人容易忽略的事实翻开源模型的技术报告你会发现大家都在报告训练数据的领域配比比如代码占多少、百科占多少、多语种占多少甚至精细到各种子集的重复采样次数。不少团队的做法是直接把这些公开配比搬过来套在自己的语料上然后开始预训练。我踩过一次很实在的坑当时为了快速出一版中规模模型我几乎照搬了一份公开的领域比例但我的语料来源里有大量论坛帖子和代码托管平台的自动生成文件兼容性极差最后模型在编程任务上的表现比预期低了接近四成。问题不在模型结构而在我的数据分布和那份公开配比的前提完全不匹配。所以说配比不是拿来即用的参数它是和你自己语料库的构成、清洗管线、甚至基座分词器强相关的变量。别人报告的数字是在别人的语料污染程度、去重阈值、质量筛选标准下成立的。你换了原料就必须自己重新标定一套配比。1.2 消融实验解决的是一类凭感觉的决策问题数据配比里的每个旋钮比如MinHash去重的阈值设0.8还是0.95质量分类器保留前40%还是前70%代码数据是占15%还是30%本质上都是高维搜索空间里的离散点。如果不做消融你只能凭经验和直觉拍板然后等到几十万卡时的全量预训练跑完才发现某个旋钮拧错了方向那代价就太大了。消融实验的意义就是把每个决策点单独拆出来保持其他条件不变只调节一个变量观察评估指标的变化曲线。这样你能得到一组清晰的因果证据去重强度从0.7提到0.85在下游任务上带来的收益是正还是负质量过滤从宽到严推理能力是否被伤到领域比例从自然分布改成上采样分布通用能力损耗了多少。这些证据沉淀下来不只是一次实验的结果它会成为你下一版数据管线的默认配置来源。1.3 什么样的消融设计才算有效先给结论一组有效的配比消融实验至少要同时满足四个条件。第一条是控制变量一次只动一个因子否则你分不清效果来自哪个改动。第二条是固定训练预算无论是token数还是FLOPs所有实验必须消耗大致相同的计算量因为配比实验的本质是在同一成本约束下找最优数据组合总训练量不同就没有可比性。第三条是使用代理模型一般用1B或3B左右的中小规模模型跑几十B token先看趋势再挑出头部配置去全量复现直接用7B或更大模型跑所有消融组时间和电费都撑不住。第四条是评估集要独立、多样且敏感既要有MMLU这类通用基准也要有自己的领域内部评测还要尽量避开与训练数据同源的web文本。我把这四条当成铁律后面所有实验都是在这个框架下跑的。顺便说一句代理模型不是万能有些配比效应要等模型规模够大才显现所以消融结论的价值是排序而不是绝对值这一点后面讲领域比例时还会再展开。2. 去重强度从不去重到重度去重的四档梯度实验2.1 去重方法的选型决定你消融的到底是什么开始设计去重强度消融前第一步得想清楚我用哪一层去重方法。不同方法对应的重复概念完全不同。文档级精确去重一般用hash指纹或Bloom filter只能去掉完全相同的文档MinHash近似去重能识别Jaccard相似度超过阈值的文档对抓的是转载、改写这类近似重复N-gram去重则是更细的粒度专门统计高频n-gram片段用于控制训练文本内部和跨文档的重复片段。我这一轮消融选择的是组合方案全局精确去重先清一遍完全重复然后在每批文档上用MinHash LSH算相似度按不同阈值分成不同实验组。之所以不用更重的方案是因为我想让去重强度这个变量尽量纯粹——阈值高低就是强度一旦混入段落级去重等于又引入了一个变量后面归因就麻烦了。顺带提一个工具层面的经验大几亿文档的MinHash计算非常吃CPU和内存我用的datasketch库做MinHash LSH单机并行会卡到怀疑人生最后拆成按shard并行处理每批算完再合并band索引。还有算MinHash之前一定要先做归一化包括转小写、规范Unicode、去掉无意义的URL参数否则相似文档容易被哈希扰动打散那去重阈值设计得再精细也白搭。2.2 四档去重强度的消融矩阵我设置了四档实验组不去重、轻度Jaccard阈值0.95、中度0.85、重度0.72。每档除了去重阈值不同其余质量过滤规则、领域配比、训练配置完全一致代理模型统一为1.5B训练token数统一为30B每组跑3个不同随机种子取均值。下表是这一轮实验的相对趋势示意具体数值依赖你的语料构成但相对关系在大多数web语料上都可复现。实验组去重阈值语料保留比例通用基准相对得分训练稳定性不去重无100%基准线最低损失波动大轻度0.95约82%3%左右稳定中度0.85约71%6%左右稳定重度0.72约58%4%左右稳定2.3 去重过度的隐性代价重度去重组给了我一个反直觉的教训去掉的重复并不全是垃圾。阈值收到0.72之后语料保留比例不到六成很多虽然相似但包含关键长尾事实的多版本文本被一并删除了。典型例子是知识类条目同一个事件在不同网站上有几十个版本各自补充了不同细节单纯按Jaccard相似度来看它们高度重复但它们合在一起拼出的完整事实链才是模型真正需要的知识密度。在比较专业的评估集上重度去重组比中度去重组低了两个点左右。这个差距主要出现在医学、法律这类对精确事实敏感的评测说明过度去重损失的是长尾知识的多样性。另外我还观察到一个更隐蔽的问题重度去重后的训练集在局部n-gram水平上依然存在大量重复片段那些完全相同的高频短语和句子根本没有被文档级MinHash清理掉。这导致模型在生成时更容易陷入重复循环也就是日常俗称的说车轱辘话。所以去重强度不是越高越好它会和多样性需求形成跷跷板。在这轮语料上0.85左右是一个甜点区既清掉了明显的批量转载又保留了版本间的微小差异。如果你的语料里百科和新闻来源占比很高这个阈值可能要再放宽一档因为这类语料的跨源改写相当普遍相似度天然偏高。2.4 别忘了去重和评估集泄漏的联动这是我后来才意识到的一个重要细节。去重实验如果不检查训练集和评估集的泄漏结论可能是假的。通用基准里的题目不少来自公开网站原始语料里极可能有同源文本或近似改写如果只用轻度去重评估时模型相当于见过答案分数虚高去重强度的真实收益就被掩盖了。我在每个去重实验组训练完成后都会额外做一个泄漏筛查把训练语料和评估集文本做一次MinHash查询计算最大相似度分布。如果某个评估子集和训练集的最大相似度超过0.8的样本比例高于1%就要慎重解读该子集的分数。后面讲评估搭建时会再细说处理办法这里只提醒一句先查泄漏再谈好坏。3. 质量过滤消融规则、分类器与人工标注的叠加效应3.1 质量信号本身是分层级的质量过滤的消融比去重复杂因为质量不是一个单一操作而是一整套信号叠加的管线。我在这轮实验里把质量信号分成了三个层级来评估。第一层是规则过滤包括长度阈值、标点符号密度、噪声符号比例、语言识别置信度、URL和广告模板匹配这类方法零成本、可解释能快速去掉机器生成的垃圾页、空文档和乱码文本。第二层是统计信号最常见的是困惑度PPL过滤用一个小的语言模型给每篇文档打分分数差到一定程度的文本直接淘汰这个方法的逻辑是高质量文本在语言模型下通常有较低的困惑度。第三层是分类器打分训练一个小型文本分类器用人工标注的优质/低质样本对全量语料打分再按分位点截断。我建议在消融实验前先把这三层分开因为它们解决的问题完全不同规则过滤处理的是格式问题PPL处理的是语言流畅性问题分类器处理的是写得好不好的语义质量问题。三层叠加在一起会非常有效但如果想搞清楚每一层各自贡献多少就必须单独做梯度实验。3.2 叠加梯度一层层加看边际收益我设计了这样一组实验原始清洗后语料作为基线然后依次添加规则过滤、语言置信度过滤、PPL过滤、分类器打分最后再单独加一组人工审核修正的top示例。每加一层记录语料保留比例和评估集平均分变化。下面是我这轮观察到的相对趋势比例和幅度都是示意性数据重点看方向。过滤层级语料保留比例通用基准相对基线观察无过滤仅基础去重100%基线训练损失高生成噪声多规则过滤约85%4%性价比最高的一层语言置信度约82%4.5%对多语混排有效PPL过滤约68%5.5%边际收益开始放缓分类器打分保留top70%约55%6.5%继续小幅提升分类器打分保留top40%约40%5%过度过滤得分反而下滑3.3 过度过滤的U型曲线分类器这层最有意思我把它单拎出来细说。一开始我以为质量分类器打分越高越好就做了一组保留top40%的实验结果通用基准反而比保留top70%低一个多点而且模型的写作风格明显变得干瘪。后来我去翻被过滤掉的那部分文档发现里面混杂着大量风格犀利但格式不规范的博客、技术讨论帖和问答社区内容。这些文本从传统质量信号来看分不高但恰恰是它们给模型提供了真实人类对话中的口语化表达、争论性逻辑和多角度观点。过度过滤等于把语言里的生命力部分洗掉了。从实验结果看分类器过滤的保留比例和最终得分之间是一条U型曲线在去掉bottom20%-30%低质量文本后收益最大继续往上收就会开始伤多样性。这是一个符合直觉又容易在实操中犯错的点特别是过滤规则严苛的团队往往不自觉地把U型曲线的拐点推到了错误方向。3.4 人工标注在这轮实验中的位置分类器本身需要标注数据我在消融里也做了一组对比用通用规则自动生成伪标签训练分类器对比人工精标5万条后训练的分类器。差异真实存在但幅度不到1%。额外的收益主要体现在细分类目上比如识别看似高质量但其实是SEO拼凑文这类情况人工标注明显更准。我的使用建议是人工标注成本高不要一上来就铺量先用小批量标注数据做错误分析把分类器最困惑的样本挑出来针对性补充标注效果会比盲目扩大标注集更好。这一轮消融跑下来我最终沉淀的过滤策略是规则过滤必做PPL过滤次之分类器保留top70%左右后面聊生产配方时会再说明为何不追求更高的过滤强度。4. 领域比例消融自然分布与目标引导之间的平衡木4.1 先定义清楚什么是自然分布领域比例的消融是所有配比实验里归因最复杂的一项因为领域之间的数据量天然不平衡而且各领域文本难度也不一样。自然分布指的是把清洗完的所有语料按原始数量比例混合比如web文本占了绝对大头代码可能只占个位数数学和百科更是少数派。直接用自然分布训练模型会高度偏向数据量大的领域在通用任务上往往不差但在代码、数学推理、多语能力等细分方向会严重偏科。所以几乎所有大模型训练都会做目标引导分布也就是把高价值但稀有的领域通过上采样往上抬。这轮消融要回答的问题就是在固定token预算下领域比例朝哪个方向调带来的综合收益最大损失又在哪里。4.2 固定token预算下的几组代表配比我做过的领域比例消融用的是七分类范畴通用web文本、代码、数学/科学、百科/知识、对话/问答、多语种、其他。语料总量按token预算归一化每组训练总量完全一致。这组实验是代理模型上跑的我对比了五种配比下面列出代表性的三组示意数据。配比方案通用web占比代码占比数学/科学占比多语占比通用基准相对代码评测相对数学推理相对自然分布82%5%3%7%基准基准基准平衡上采样55%18%12%10%-1%左右9%左右7%左右极端上采样35%30%25%8%-3%左右11%左右9%左右平衡上采样方案在代码和数学上收益明显而通用能力只小幅回落。极端上采样把代码和科学拉到过高占比后通用知识开始明显受损而且有意思的是数学推理并没有继续等比例提升说明模型的通用推理基底一旦被削弱专门的数学数据也弥补不回来。4.3 跷跷板效应与饱和点的判断领域比例消融里我学到的核心概念是跷跷板效应你把某一领域的占比和训练序列占比提上去该领域评估确实会涨但其他领域的损失曲线会整体上移。在消融曲线上看这个效应不是线性的。当代码数据占比从5%提到18%通用能力只掉了1个点左右这个代价很低但继续从18%提到30%代码能力涨幅收窄通用能力却加速下滑。换句话说每个领域都有一个上采样的饱和点超过了就是用多余的重复数据换取虚假的专业性提升。饱和度判断还有个辅助指标就是训练过程中的领域损失收敛曲线。如果某个上采样领域在一个epoch还没结束时就已明显过拟合表现为验证损失开始反弹说明配比给多了。这个信号比只看下游评估更早出现我一般用它做配比上线前的快速预警。4.4 上采样与重复epoch的纠缠做领域比例时容易忽略一个变量上采样两个倍率和直接多跑几个epoch不是一回事。提高某个领域的占比后该领域文本在总训练序列里出现的次数会变多如果数据总量有限上采样往往意味着同一批文本可能被模型看到多次。我在实验里观察到代码领域经过3-4次重复后表面分数还在涨但在更难的、需要多步推理的代码任务上反而出现退化。这是因为重复次数过高时模型学会的是对训练代码片段的表面记忆而不是泛化能力。所以领域配比消融里我额外记录每个领域子集在完整训练过程中的有效重复次数理想控制在上限附近不超过3遍。如果目标配比迫使某个高价值小数据集重复过多就该考虑补充新数据而不是继续堆占比。这个细节在论文里极少被写出来但实际作用不亚于配比本身。5. 消融实验的系统搭建与评估陷阱5.1 数据管线要做成可复现的一等公民配比消融能不能成立前提是数据管线可复现。我踩过的教训是早期用临时脚本切数据每次实验的预处理结果都不一样导致两组实验之间的差异混进了管线噪声根本无法归因。现在我的做法是把数据管线拆成一个个带版本号的stage每个stage输出带数据hash的中间产物。具体来说原始语料先做精确去重产出base版本然后按实验配置跑MinHash去重不同阈值的输出带不同的config签名接着做质量过滤同样每个参数组合生成独立版本最后按领域配比混料生成最终训练集同时记录各领域占比和token统计。整个过程用配置清单锁住任何一组实验都能追溯到它用的具体数据版本。数据版本hash通常用内容的抽样hash加配置参数的hash拼接这样即使文件名一样内容变了也能被追踪到。一个实操建议混料阶段要提前算好每个领域子集的采样比例而不是按文档数量等比例抽样。因为不同领域文档的平均长度差异巨大按文档占比混合token占比可能完全偏离预期。我统一按token数分配权重先统计每个子集的token总量再计算重采样系数。5.2 评估集要分层且必须做泄漏检测评估设计直接影响消融实验结论的可靠性。我在这轮实验里用的评估体系分三层第一层是领域内部评估也就是从每个数据子集划出一部分验证集单独算域内损失这个指标响应最灵敏能快速看出配比变动带来的方向性变化第二层是公开通用基准包括MMLU、GSM8K这类推理基准以及代码和通用知识的多项综合基准用它们衡量模型的通用能力迁移情况第三层是可控的合成任务集针对我们自己关心的产品场景构造一批模拟任务验证数据配比在实际应用方向上的表现。这三层缺一不可只盯域内损失容易被过拟合欺骗只盯公开基准又对配比的小幅变化不够敏感。泄漏检测在前面已经提过我再补充一个具体操作对每个评估子集都要和它对应的训练前置版本做最大相似度筛查比如MMLU里那些来自公开网页的题目原始语料里如果存在近似文本必须在混料前从训练集里剔除这部分。否则你的配比实验分数虚高而且虚高的幅度会随着去重阈值不同而变化干扰比想象中大得多。5.3 随机种子、重复实验与差异显著性配比消融的组间差距往往不大可能就一两个点的差异。如果不做多seed重复你看到的差异很可能是噪声。我在前面提过每组实验至少跑3个不同随机种子。这里还有两个细节一是不同seed的训练顺序必须由同一个数据管线的shuffle逻辑生成不能手动改顺序二是seed的影响在训练足够充分后会缩小但代理模型训练预算有限seed差异依然明显所以要报告均值加上方差范围而不是只报最好一次的结果。顺便说一个统计上的实用经验两组实验如果均值差小于方差范围别急着下结论这时候可以看更细分的评估子项的稳定性。比如虽然总体均分差不多但某一类任务在所有seed上都稳定占优那这个差异就是可信的。相反如果优势只出现在某个seed上基本可以判定为噪声。5.4 消融实验里的三个经典翻车点我把自己翻过车的地方集中整理一下给后来者排雷。第一个翻车点是代理模型和数据规模不匹配。用小模型跑出来的最优配比放大到大模型上不一定还是最优。原因在于大模型的学习容量更高能吸收更多重复和高难度数据上采样饱和点会往后移。折中办法是至少做一档中等规模确认实验比如把最优配比和次优配比都放到更大的模型上对比一次确认排序稳定。第二个翻车点是单点指标优化。最开始我只盯着通用基准的总分结果发现某组配比总分最高但代码能力崩了。后来改成按业务权重加权多个评估子项再按加权总分排序才避免被单一指标误导。第三个翻车点是忽略了训练过程中的动态差异。两个配比的最终评估差不多但如果一个在训练早期损失就低、另一个后期才追上后续在线继续训练时的表现会很不一样。我现在每次实验都会记录完整的训练loss曲线和领域分loss曲线配比决策时参考的不只是终点成绩还包括曲线的形状。6. 我在这轮配比消融里沉淀的几个反直觉结论6.1 中等配置往往打败极端配置一个反复出现的现象是每个维度上表现最好的都不是最激进的配置。去重强度不是越高越好质量过滤不是越干净越好领域上采样不是越多越好。三轮消融跑下来最优组合落在中度去重、规则加基础统计过滤、温和的领域再平衡这个区间极端配置都在某些评估子项上出现了被忽视的隐性损伤。这也提醒我那些在一篇论文里显得很漂亮的配比策略直接复制时如果没有结合自身语料特点做消融很容易翻车。数据的边际效应在所有维度都是递减的找到拐点比盲目拉满参数重要得多。6.2 质量分类器的边际贡献被高估了我这轮实验里规则过滤贡献了大部分质量提升PPL过滤次之分类器打分提供的增量在1个百分点以内。不是说分类器没用但它的价值更体现在处理边界情况和持续迭代上。如果团队预算有限先把规则和统计信号做到位再用分类器做最后一层精修这个顺序能最大化投入产出比。反过来一上来就堆人工标注、训练复杂分类器很可能在规则层还有大量低垂果实没摘。6.3 领域再平衡比想象中更依赖模型规模前面提过代理模型的局限性领域比例尤其明显。小模型在代码和数学领域上采样时很容易出现过拟合信号因为容量小、学不完多样化知识而大模型可以吸收更多重复数据上采样空间更大。这就导致一个现象用小模型消融得出的最优代码占比在大模型上往往偏保守。我现在的工作流是用代理模型确定排序和方向然后把排名前两到三的配比放到正式规模上做确认实验而不是直接把代理模型的最优点当生产配比。6.4 一套可直接落地的生产配比实验起点如果你没有时间完整复刻这一轮消融我建议从这套配置开始然后针对自己的语料做局部修正。去重阈值从0.85起步质量过滤用规则加语言置信度加分类器保留top70%领域配比先从自然分布出发然后按业务目标温和上采样每个目标领域的占比提升幅度控制在5到10个百分点以内总重复不超过3遍。评估时务必分层并用多seed验证重点观察领域损失曲线有没有过早反弹的信号。这套起点的逻辑是所有配置都待在甜点区不会出现灾难性退化在此基础上再做局部消融能快速找到属于你自己的最优组合。最后分享一个我在后续几轮实验中一直沿用的习惯每次数据配比调整都在实验记录里强制写下当时基于什么证据做了这个决定以及它的备选方案是什么。数据配比工作太容易被当成一次性工程但语料库会持续增长和变化上一轮的最优解可能在下一次语料更新后就失效了。把决策过程和实验证据沉淀下来配比调优才能从一个玄学问题变成一个可以持续迭代的工程体系。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑