DPO vs PPO:两种AI对齐技术到底选哪个?我全试了一遍 整整一个月的实验四块4090烧了不知道多少电费。这不算什么真正让我崩溃的是——跑了三天的PPO训练在最后一刻因为reward model打分偏差炸了。那一刻我真的很想摔键盘。但后来换上DPO重新跑12小时搞定效果还更好。所以今天这篇我得好好聊聊这两个对齐技术。先说人话解释它俩是干嘛的你知道大模型训练分三步预训练、SFT微调、对齐Alignment。前面两步让模型会说话最后一步让模型说人话——就是让模型输出的东西符合人类的偏好不说假话、不跑偏、不被越狱。PPOProximal Policy Optimization和DPODirect Preference Optimization都是做对齐的。但路子完全不同PPO的路子训练一个裁判Reward Model让模型输出给裁判打分模型根据分数调整自己。DPO的路子把裁判和选手合二为一直接用偏好数据训练模型省掉Reward Model这个中间环节。听起来DPO好像更简单事实也确实如此。PPO效果好但真的难搞PPO的完整流程是这样的大量人工标注A回答 vs B回答哪个更好用这些偏好数据训练一个Reward Model打分器模型自己生成回答Reward Model打分PPO算法根据分数调整模型的参数还要加一个KL散度惩罚防止模型跑太偏听起来就复杂对不对实操起来更崩溃。我踩过的PPO坑首先是Reward Model本身的偏差。这玩意儿是另一个模型它也有自己的偏好。我遇到过RM对长回答天然高分结果模型学会了字数灌水。训练出来的模型回答越来越长但质量反而下降了。这个问题困扰了我一个多星期。后来查论文才发现这是PPO领域的已知问题——Reward Hacking。解决方法是在RM训练时做更精细的数据清洗但这是个脏活累活。第二个坑四个模型同时跑。PPO训练需要同时维护策略模型、参考模型、Reward Model、Value Model。四块4090刚好卡在显存边缘动不动就OOM。我那次三天炸掉就是因为显存泄漏。第三个坑超参数极其敏感。PPO对KL系数、学习率、clip范围都非常敏感。换一组数据同样的参数可能就不行了。调参的时间比训练本身还长。PPO的优点是什么说这么多缺点但为什么大厂还在用PPO因为上限高。在数据质量足够好、调参经验足够丰富的前提下PPO训练的模型往往比DPO更稳定。尤其是在需要细粒度控制的场景——比如医疗问答模型错误答案可能导致严重后果——PPO的稳定性优势就体现出来了。而且PPO有丰富的理论和工程积累。OpenAI的InstructGPT/ChatGPT系列都是用PPO技术成熟度最高。DPO真的能做到更简单、效果更好吗DPO是2023年斯坦福提出的技术上算是PPO的孙子辈。但它的思路太漂亮了——直接绕过Reward Model用偏好数据的数学关系指导模型更新。写代码就简单多了没有RM没有Value Model就两个模型策略模型和参考模型。DPO让我真香的地方我第一次跑DPO的情景同一批偏好数据之前PPO需要三个步骤训练RM PPO训练 调参搞了四天。换成DPO一个脚本跑完12小时出结果。而且效果呢人工评估了一下相差不大甚至在某几个维度上DPO更好。具体说几个让我惊喜的点对齐更直接。没有Reward Model这个中间环节模型直接学习了什么回答更好这个偏好训练目标更纯粹。更稳定。少了RM这个变量训练曲线平滑很多。不会再出现前一天跑的好好的今天换个随机种子就炸了的情况。显存占用小。少了两个模型同样的4090能训练更大的模型或者更大的batch size。DPO的坑也不少但我不能说DPO就是万能的。它也有自己的问题。最大的问题对数据质量要求更高。PPO的Reward Model可以平滑掉部分数据噪声——毕竟RM也是从大量数据学出来的。但DPO没有这层缓冲每条偏好数据直接作用于模型更新。一条标注错误的数据可能导致模型在某个维度上明显变差。我遇到过标注员把更好的回答标反了结果模型在这个主题上学会了输出更差的回答。排查了一个上午才发现是数据问题。第二个问题生成多样性下降。因为有参考模型的KL散度约束DPO有时候会让模型输出偏向保守多样性不如PPO。这对需要创造性的任务如文案生成不太友好。我的实操建议经过一个月的折腾我的结论是新手上路选DPO追求极致选PPO。具体来说选DPO的场景你刚开始做对齐团队没有RL经验算力有限只有几块消费级显卡偏好数据质量可靠已经经过多轮审核项目时间紧需要快速出效果任务偏生成创意类文案、对话选PPO的场景你是大厂团队有专门的RL工程团队偏好数据量大但质量参差不齐需要非常精细的控制医疗、金融、法律业务对输出稳定性要求极高不差钱有专门的算力集群我的个人做法我现在的工作流是先跑DPO快速出基线再用DPO产出的模型作为PPO的起点。这比随机初始化跑PPO更稳定而且能感受两种方法的差异。如果你有条件强烈建议试试这个组合。写在最后这段时间的折腾让我有一点很深的感触AI对齐这件事远没有论文里写的那么光鲜。论文里一个公式讲清楚的东西实操时要面对数据标注偏差、内存泄漏、训练不稳定、Reward Hacking…这些才是真正的工程现实。但话说回来当你自己训练出来的模型确实变得更懂事了那种成就感也是真的。我让模型回答我该怎么炒股它不再给出具体的投资建议而是说投资有风险建议咨询专业理财顾问——这就是对齐的价值。贴个简单的对比表维度PPODPO工程复杂度高4个模型 RM低2个模型训练稳定性中Reward Hacking风险高训练时间长多阶段短单阶段显存占用高低对数据质量要求中RM可缓冲噪声高每条数据直接作用输出多样性好略保守上线效果上限高有经验的团队中高这张表是我实操后的真实感受。别看PPO那么复杂在高手手里上限确实更高。但如果你是第一回做对齐DPO给你的惊喜会大得多。下次打算聊聊数据构建——如何从零开始搞一套高质量的偏好数据这才是对齐工作的地基。有兴趣的可以关注一下。参考资料Direct Preference Optimization: Your Language Model is Secretly a Reward ModelPPO原始论文RLHF的经典教程