原文:https://zhuanlan.zhihu.com/p/710936230
最近有趋势是要扩大post-training规模,本文讨论的就是Llama3.1等开源大模型的技术报告里的post-training部分,已经有很多文章提到其中的细节要点了,这里更着重于比较大的层面。
DPO vs PPO
整个93页报告当然是很有份量的,很大程度的推进了领域内的发展,但令人失望的是,没有像在 Llama 2 中使用 PPO 那样对 SFT->DPO 进行彻底的分析。另外,本来以为会有很多关于 DPO 与 PPO 怎么选择的内容,但文章里面只说了“我们还探索了 PPO 等在线策略算法,但发现
DPO 对于大规模模型所需的计算更少,并且性能更好,尤其是在遵循 IFEval 等基准测试的指令方面
”。虽然学界已经有很多paper证实了PPO有更高的上限[1][2]和表现,但是几乎没有开源的大模型有具体实现PPO的细节,像Qwen,Llama用的是online DPO,而deepseek则是魔改PPO的GRPO,OA两家闭源大模型应该是有祖传的实施PPO的infra,既然有就直接用了。
但是不必太过纠结两者间的选择,个人感觉使用DPO也仅仅是出于它的简单实用性,更容易scale,而不是说DPO一定大于PPO。用DPO训练405B模型时,可能还会缓存reference model,这样再相比PPO的四个模型,会节省大量计算资源。况且在X上看到有人说Llama4会用PPO类的算法,那么有可能3更关注于各种合成数据pipeline的搭建,4可能会着重于架构和算法。但PPO确实太老了,希望能提出新的替代品。
Preference Data
虽然都说开源,但开源偏好数据集的机构也太少了,感觉与其说是开源更像免费使用的软件,不过也能理解,毕竟数据都是真金白银买的。值得一提的是,除了部分偏好数据需要人的参与外,其余llama3训练基本都采用的是synthetic data了,那么人的标注是否真的有用呢?只用LLM-as-a-judge(用LLM来判断哪个回答更好)或者RM输出哪个奖励更高可行吗?如果没用,meta应该也不会花这么多钱买吧。那么两者之间的差距有多少呢?人类偏好所带来的噪声是否更有助于提升大模型各方面的性能呢?希望有更多相关的研究。
Iteration
从llama2开始,RLHF就是一个迭代的过程。Llama 2 和 Nemotron 训练5轮,Llama 3是6轮,迭代的原因可能有2个。
1.数据是外面公司分批发放的,不可能等到发完再训。而且分批训练,从工程上有更多调整的空间,这样能保证每次效果都有提升。
2.防止reward hack,如果单轮训练,模型很容易过度优化,需要及时更新reward model。甚至如果没有RM,比如说最原始的DPO,也有这种现象[3]。
那么这种迭代是否有上限呢?是否只是因为时间限制所有才只有五六轮?那么怎么scale呢,是不是可以可以参照预训练里面加SFT数据,在预训练阶段加偏好数据呢,所以前段时间openAI才会提出mid-training?
Synthetic Data
整个llama3 report最让人印象深刻就是合成数据工作,里面大部分是关于数据管理的。未来的大模型训练工作会把数据分为多个domain,每个domain都有一套自己的数据搜集,合成,过滤的pipeline,这些数据会成为各家公司真正的护城河。值得一提的是,前些天登上nature封面的论文[4]是有夸大的成分,文章里面有几个违背实践的假设,比如说模型迭代过程中会丢弃以前的数据,数据集大小不变,数据中没有外部feedback等等,根据论文[5],模型崩溃是可以避免的。
Math and Reasoning
最近有很多工作是关于在post-training种提升大模型数学和推理能力的,总的来说就是
把结果的奖励信号传递到各个推理过程中或者说把结果导向的sparse reward分解成dense reward。
大致分为三种,一种是通过MCTS生成数据和value/reward model迭代提升,再用生成的数据SFT/step-DPO微调大模型,一种是精心训练好Process Reward Model,然后再用PPO类的算法优化,第三种是用lean形式化问题,然后再从它给出的反馈中学习。
第一种是很多论文的做法[6][7][8],llama3里也用了相似的方法生成数据,对于困难问题用MCTS和step-wise reward进行数据生成。
第二种是Qwen2-Math的做法,math上已经到了84,主要做法是用PRM进行reject sampling SFT,然后再用PPO的替代品GRPO, 也就是通过采样多个回答去掉了critic网络,类似想法的还有apple的大模型,发现clip起作用的时候也很少,且actor-critic一旦奖励模型不好会有累计误差,干脆回归reinforce,用计算advantage,然后再MDPO。
第三种有[9],还有最近很火的AlphaProof。
对比之前一直诟病的RLHF只是加了KL约束的bandit learning,根本没有planning或者reasoning,通过以上方法得到了一定程度的缓解。总的来说LLM+search是很有潜力的,repeated sample可以大幅提升模型正确率[10](感觉这一点被低估了,以后应该会有很多工作从这下手的),search可以看作更高效率的sample,这也说明模型本身是有能力的,但如何让它发挥出来呢,以上方法本质就是通过偏好优化让模型知道什么是对的错的从而提升能力。但前两种方法用不用MCTS没有很大差别,无论第一种直接用step-wise数据step-DPO模型[11],还是第二种在PRM基础上加MCTS[12],都没有很大差别,看来还需要继续在这方面优化啊。
Post-training的作用与展望
在GPT刚问世的时候,业界对于RLHF的作用还存在质疑。许多公司发现,仅仅使用SFT就足以满足他们的需求。甚至在Meta内部,对于是否应该使用RL技术也存在分歧。
但是随着DPO等算法的推出,以及开源社区更多经验的分享,业界逐渐接受了RLHF这一训练环节的重要性。学术界提出了各种XPO方法,而工业界也提出了多种PPO的替代算法。
逐渐认识到RLHF的价值:RLHF能够在各种评测榜单中显著提高模型分数(刷分利器),在定制化这块也很有前景,对聊天风格的转换这一点很重要,它使得OpenAI发布的mini小模型都能在Arena中排前三,这一点也许正是国内大模型欠缺的。
总结来说post-training的转变可以参照下图