Midtrain用600B token训练,代码能力飙升但通用能力不降
后训练这玩意儿,我踩过的坑比写过的代码还多
你猜怎么着?我去年干过一件特别蠢的事。
先说个真事儿。
我调一个代码模型,预训练阶段砸了一万多张卡——对,你没看错,一万多张。烧的钱我自己都不敢算。结果呢?模型拉下来一测,写个快排都费劲!
我当时整个人都傻了。
我心想不对啊,它明明在训练数据里见过几亿段代码,几亿段!怎么可能连个排序都搞不定?
后来一查,问题出在三个字上——
“见过”和“会用”之间,隔着一个太平洋。
这事儿让我对后训练有了全新的理解。说到这儿,我得先给你泼盆冷水:你以为后训练就是SFT加RL?大错特错。
Midtrain不是SFT的平替,它是个完全不同的物种
很多团队把后训练理解成“SFT+RL”两板斧。你看DeepSeek-Coder-V2怎么干的?他们在通用基座上搞了600B token的代码+数学中间训练。结果呢?代码能力飙升的同时,通用能力几乎没掉。
这能是SFT能干的事?你想想,SFT那几万条数据搁这儿,跟往沙漠里洒水似的,杯水车薪啊!
Midtrain这个阶段的本质是什么?我做个类比你就懂了——
预训练,像是让你在北京城里走一圈,每条街每个胡同都看过,但你记不住。SFT呢,像是只告诉你“去天安门怎么走”——你学会了,换个别的地方立马迷路。
Midtrain是什么?是把你在一个区里按着每条路反复溜达,直到你闭着眼都能说清楚这片儿的每一条毛细血管。
数据量级是多少?数百B到数T。
这意味着什么?你没法逐条审核数据。我踩过这个坑:一开始直接拿GitHub上的代码数据去续训,结果模型学会了某位老哥写的一万行意大利面条式代码。
你懂我意思吧?那个代码写得,我看一眼都想当场离职。
所以我就想说一句:垃圾进,垃圾出?不,垃圾进,模型学会的就是制造垃圾。
数据质量筛选在Midtrain阶段比算法还重要——听我一句,真的。这句话你可以拿去贴在工位上。
SFT和RL:别把顺序搞反了,真的会出大事
说到SFT和RL,工业界的共识其实已经很清楚了——SFT是基座,RL是抛光。
但很多人把抛光的活,当成了雕刻的活。
我跟你讲一个我亲自测试过的流程:基座模型 → SFT → 直接PPO。结果RL阶段训了半天,loss死活降不下去。
后来我发现什么问题?SFT阶段数据脏了。模型根本就没学会稳定的回复格式。
RL它在干什么?它一边要学格式,一边要对齐偏好,两边打架——你说它能不崩吗?
正确的姿势是什么?SFT先把输出格式焊死,把“模型不会胡言乱语”这个底限稳住,RL再去提升上限。
先稳住下限,再追求上限——这个顺序,千万别搞反了。
再说数据。Qwen2、Llama3的技术报告我都啃过一遍——真的,我连他们参考文献都查了。它们构造偏好数据几乎都用了拒绝采样。
这事儿挺有意思:让模型自己多rollout几遍,挑好的用。不用手动写那么多标准答案,省事儿又管用。
我自己的实操经验——你记一下:一个模型在不同温度下采样几轮,拿LLM打分,选出最好的当golden,差的和好的构成偏好对。这比人工标注的稳定性强太多。
但有个坑——打分模型如果跟被评模型同源,会有很强的“自恋偏差”。它觉得跟自己像的就是好的。Llama3的做法值得参考:用了不同规模的模型来做evaluation。
你看,连踩坑都是有文化的。
说到强化学习,我站GRPO
说实话,PPO从2022年开始就有门槛。你得同时维护四个模型:Actor、Critic、Reference、Reward Model。
去年我在一个项目里搞这套,光是显存规划就让我失眠了半个月。真的,半个月。我老婆以为我在外面有人了。
现在回头看,Llama3和Qwen2都只用了改良版DPO而没有上PPO——确实有道理。PPO上限高,但门槛更高,小团队碰这个性价比太低了。
GRPO的出现解决了一个实际问题:不要Critic了,用组内奖励的统计量替代价值网络。
说白了就是——同一批prompt生成几个回复,对比着看谁更好。而不是靠一个单独的模型去估算“这个回复值多少分”。
我在一个72B模型上试过GRPO。效果跟PPO差不多,但工程复杂度下降了至少30%。
这不是算法上的革命,这是工程上的解放。
你想想,省下来的时间和算力,干点啥不好?
OPD:2025-2026年真正让我眼前一亮的东西
DeepSeek V4那篇技术报告我看了好几遍——不骗你,我连吃饭都在想。“先分后合”的思路,太对我胃口了。
他们的逻辑是:不要在同一个训练阶段里让模型学代码又学数学又学对话——目标之间会打架。
先每个方向单独训一个专家,再用OPD把这些专家的行为模式蒸馏到同一个模型里。
这事儿妙在哪儿?你听听。
传统的模型合并是参数层面的加权平均——但模型在参数空间的“均值”不等于“行为的均值”。OPD是在token级别的概率分布上做alignment,这才是真正的“行为合并”。
当时在群里跟同行讨论,有哥们儿问:“这不就是知识蒸馏吗?”
我说——是也不是。
OPD的关键在“on-policy”:学生自己先生成,老师再针对学生的生成给反馈。你不是在让学生背老师的答案,而是在纠正学生的解题过程。
这个区别决定了——模型是“理解”还是“模仿”。
你想想,背诵答案的学生,和理解了思路的学生,谁更牛?
我实测了一个小规模实验:用Qwen2-7B当基座,分别用SFT蒸馏和OPD蒸馏去学数学推理。同样数据量下,OPD的泛化能力强了一截——尤其是在没见过的题型上。
这事儿给我一个很现实的判断:如果资源允许,OPD应该替代掉传统RLHF流程中的PPO部分。
GRPO管对齐,OPD管能力融合,SFT管格式——这三板斧,够用了。
几个实操层面的血泪总结
说到这儿,我整理了几个真正有用的建议。都是拿代码和睡眠换来的,你记一下。
第一,数据处理的投入至少要跟算法持平。
我见过太多团队花三个月搭RL框架,结果数据随便抽了个开源数据集就跑。效果差了,又反过来怀疑算法有问题。
你去看Qwen2和Llama3,它们都把数据合成pipeline作为核心竞争力来打造——不是没道理的。
第二,长CoT数据一定要多epoch训练。
我做过对比实验:同样一批长推理链数据,训练1个epoch的效果远不如8个epoch。
模型的推理程序需要反复优化才能内化。欠拟合的风险,远大于过拟合。
第三,基座模型的底子决定成败。
Qwen3-14B能学会的泛化能力,换个更小的模型怎么都学不会。
参数规模不足的模型遇到长推理链,表现就是——疯狂输出废话,但逻辑链一步都没往前推。
第四,警惕模型合并的“虚假提升”。
Llama3、Gemma2、Baichuan2都用模型合并,但这是个操作技巧,不是银弹。
我合并过几个domain expert,结果基准测试涨了,真实场景崩了——因为合并损失了某些fine-grained的能力。
别只看benchmark。
我对未来的几个判断
说几个我敢下判断的事。
第一个,大概率会发生:数据合成pipeline会成为AI公司的核心壁垒。
谁家能把数据自动化搞得更高效、质量更高,谁就跑得更快。人工标注在这个阶段已经撑不住了。
第二个,我敢打包票:OPD会在未来两年内取代PPO,成为RLHF的标准范式。
不是因为OPD更“聪明”,而是因为它让训练流程解耦了——各domain独立优化再统一蒸馏。这对工程团队来说,太友好了。
第三个,你可能觉得我这人疯了——但我还是要说:后训练的重要性会超过预训练。
预训练已经卷到瓶颈了,各家基座差距在缩小。真正决定产品体验差距的,是后训练那几万到几十万条数据——怎么构造、怎么训、怎么对齐。
别不信。去翻翻Qwen2.5和DeepSeek V4的技术报告,后训练部分占的篇幅越来越大。
这事儿说明路线已经变了:以前是“谁家大谁牛”,现在是——
谁家会调教,谁牛。
我继续挖坑去了。你也别闲着。
读者评论 5