之前大家做LLM,都盯着ScalingLaw使劲,往模型里塞更多数据、堆更大参数、用更多算力,觉得这样模型能力就能一直涨。
GPT-3、PaLM这些早期明星模型,确实靠这招打出了名气。
可后来情况变了,模型参数奔着百亿、千亿去之后,再按老办法加数据加算力,能带来的能力增益越来越少。
这时候业界才反应过来,光靠“堆量”走不通了,得换条路。
这条路就是后训练,现在不管是OpenAI的o系列,还是DeepSeek的R1,再或者Google的Gemini,只要是主打推理能力的模型,都靠后训练提水平。
本来想找本入门资料学学,后来发现Meta两位专家,HanFang和KarthikAbinavSankararaman写的《Post-training101》特别实用,里面把后训练的门道讲得很透。
为啥SFT是后训练的“打底子”活?
后训练里,SFT(监督微调)是第一步,相当于给模型“塑形”。
预训练模型虽然装了一肚子互联网知识,但目标是“预测下一个token”,真到实际用的时候,比如用户问个问题,它未必能答到点子上。
SFT就是解决这个问题的,给模型喂“指令-回答对”的语料,比如“用户问美国首都是哪”配“答案是华盛顿特区”,让模型学会跟着指令走。
SFT的效果全看语料质量,预训练语料多,有点噪声还能掩盖过去;SFT语料就一万到十万条,稍微有几条差的,模型就可能学错。
比如语料里有错误答案,或者推理过程有漏洞,模型输出的时候就会跟着错。
之前见过有些开源模型,就是因为没筛好SFT语料,生成的回答一会儿对一会儿错。
所以现在做SFT,都会反复过滤语料,用LLM当“裁判”查错,还会留一部分高质量语料监测模型会不会“跑偏”。
语料准备好,还得解决一个问题:GPU处理数据要固定长度。
有的“指令-回答对”短,只有十几个token;有的长,能有两百多个。
无奈之下,大家就把这些语料分组,按组里最长的那条算长度,短的就用特殊的PADtoken补上。
模型会通过“注意力掩码”忽略这些PADtoken,计算损失的时候只看真实内容。
这么做既能让GPU一起处理数据,又不会让无效信息影响模型学习。
RL算法哪家强?DPO为啥成了“省钱选手”?
SFT打好基础,后训练就得靠RL(强化学习)往上提能力了。
RL比SFT复杂,但效果也更明显,现在主流的RLHF、RLVR都属于这个范畴。
RL的核心是“奖励”,模型输出符合要求,就给个正面奖励,不符合就没有,慢慢让模型往好的方向调整。
RL里的奖励来源不一样,RLHF看人类偏好,比如给两个回答,让标注者选哪个更好,据此训练奖励模型;RLVR更直接,看结果能不能验证,比如算数学题对不对、代码能不能运行,对了就给高奖励。
DeepSeek的R1就是靠RLVR,推理和代码能力比之前的模型强不少。
不过给奖励的时候也不能太“任性”,还得用KL散度约束一下,防止模型为了拿奖励胡编乱造。
现在常用的RL算法有好几种,各有各的特点。
PPO是早期主流,稳定是稳定,但得单独搞个价值网络,占内存也费计算。
后来DeepSeek搞出GRPO,把价值网络省了,靠分组采样算优势,内存和计算成本都降了不少。
还有DPO,严格说不算RL算法,但特别火,不用训练奖励模型,直接用偏好语料训练,成本低还稳定。
小团队做后训练,选DPO的越来越多,毕竟省钱又好用。
不管是SFT还是RL,训练完都得评估模型好不好用。
自动评估很快,用MMLU测知识、IFEval测指令跟随,数据一跑就出结果。
但自动评估有局限,比如模型回答礼不礼貌、有没有创意,机器判不出来。
这时候就得靠人工评估,让标注者跟模型交互,给输出打分。
很显然,人工评估是“黄金标准”,但成本也高,一条评估就得好几分钟,还容易受标注者的偏见影响。
现在业界基本达成共识,后训练是LLM往高阶智能走的必经之路。
不用再死磕参数规模,靠高质量语料和合适的算法,就算是中小规模模型,也能在特定任务上有好表现。
如此看来,以后后训练的成本会越来越低,工具链也会更成熟,说不定很快就能看到更多靠后训练“逆袭”的LLM,在医疗、教育这些垂直领域发挥作用。
