2、RLHF核心组件:奖励模型(RM)的设计原则、策略模型(PPO)的架构选择、参考模型的必要性。
聊到RLHF,很多人第一反应就是“用人类反馈来微调模型”。这话没错,但太笼统了。真正落地的时候,你会发现整个流程里藏着三个关键角色:奖励模型、策略模型、参考模型。它们各司其职,缺一不可。今天我就把这几个组件的设计门道和成本账,跟你好好捋一捋。
2.1 奖励模型(RM):给AI当“裁判”
奖励模型说白了,就是一个打分器。它的任务不是生成文字,而是判断一段输出好不好。我个人习惯把RM看作“人类偏好的代理”——你没法让真人给每一条数据打分,那就训练一个模型来模拟这个判断过程。
核心设计原则:
- 打分要连续,不要二值:别只给“好/坏”,要给出0.1到0.9这样的连续分数。这样PPO才能学到细微的差异。
- 模型不能太大:RM通常用1B-7B的参数量就够了。我在项目中试过用70B的模型做RM,效果没提升多少,训练成本却翻了十几倍,不划算。
- 和策略模型同源:RM最好从策略模型的checkpoint继续训练,而不是从零开始。这样两者的表征空间更接近,训练更稳定。
你可能会问:“RM怎么训练?”嗯,这里有个标准流程。先收集人类对比数据——给标注员看两个回答,让他选哪个更好。然后训练RM去预测这个偏好。损失函数用的是Bradley-Terry模型,说白了就是让RM学会给好的回答打高分,差的打低分。
# 伪代码:RM训练的核心逻辑
for (chosen, rejected) in batch:
reward_chosen = rm_model(chosen)
reward_rejected = rm_model(rejected)
loss = -log(sigmoid(reward_chosen - reward_rejected))
loss.backward()
避坑指南:我曾经在训练RM时犯过一个低级错误——把chosen和rejected的顺序搞反了。结果模型学会了给差回答打高分,整个PPO训练直接崩掉。所以,数据管道的验证环节一定要做扎实。
2.2 策略模型(PPO):在探索与利用间找平衡
策略模型就是那个真正生成回答的模型。PPO(Proximal Policy Optimization)是它的训练算法。你想想看,如果让模型随便乱试,它可能会生成一些离谱的内容。PPO的作用就是让模型在“尝试新东西”和“保持稳定”之间找到平衡。
架构选择上,我一般遵循这几个原则:
- 使用和SFT阶段相同的架构:不要中途换模型结构,否则之前的训练就白费了。
- 参数量要匹配任务:对话任务用7B-13B就够,代码生成可能需要34B以上。我见过有人用70B模型做简单问答,成本高得离谱,效果却没比7B好多少。
- 注意KL散度惩罚:PPO里有个超参数叫KL惩罚系数,控制模型偏离参考模型的程度。设太大,模型学不到新东西;设太小,模型容易跑偏。我一般从0.02开始调,效果不好再微调。
注意:PPO训练非常吃显存。你需要同时加载策略模型、参考模型、奖励模型,还有价值网络。如果显存不够,可以考虑用LoRA或者DeepSpeed ZeRO Stage 3来优化。
PPO的损失函数看起来复杂,其实核心就两部分:
- 策略梯度损失:让模型生成奖励高的回答。
- KL散度惩罚:防止模型偏离参考模型太远。
# PPO损失函数简化版
policy_loss = -min(ratio * advantage, clip(ratio, 0.8, 1.2) * advantage)
kl_loss = kl_divergence(policy_model, ref_model)
total_loss = policy_loss + kl_coef * kl_loss
2.3 参考模型:RLHF的“定海神针”
很多人不理解:为什么RLHF里要多个参考模型?直接训练策略模型不行吗?
答案是不行。参考模型的作用是提供一个“锚点”。没有它,策略模型在PPO训练中可能会逐渐退化——生成的内容越来越奇怪,语言质量越来越差。参考模型就像个老师傅,时刻提醒学生:“别走太远,基础不能丢。”
参考模型的设计要点:
- 冻结参数:参考模型在训练过程中完全不更新。它只用来计算KL散度。
- 和策略模型同源:通常直接用SFT阶段的模型作为参考模型。这样两者的初始分布一致。
- 可以复用:一个参考模型可以同时服务多个策略模型的训练。我在项目中就试过用一个7B的参考模型,同时训练三个不同任务的策略模型,效果都还不错。
成本效益分析:参考模型虽然不更新参数,但它需要和策略模型一起做前向推理。这意味着你的显存占用会翻倍。如果预算有限,可以考虑用更小的参考模型(比如策略模型是13B,参考模型用7B),效果损失不大,但成本能省30%以上。
2.4 三者的协作关系
这三个组件不是孤立的。它们像一支篮球队:策略模型是得分手,奖励模型是裁判,参考模型是教练。得分手要听裁判的反馈,同时不能偏离教练的战术安排。
下面这张图展示了它们的协作流程:
从图中你能看到,奖励模型和参考模型都在向策略模型传递信息。一个告诉它“往哪个方向走”,一个告诉它“别走太远”。两者缺一不可。
2.5 成本效益权衡
最后聊聊钱的问题。RLHF的成本大头在训练,尤其是PPO阶段。我整理了一个成本对比表:
| 组件 | 训练成本 | 推理成本 | 优化建议 |
|---|---|---|---|
| 奖励模型 | 低(只需少量数据) | 低(模型小) | 用1B-3B模型即可 |
| 策略模型 | 高(PPO迭代多) | 高(生成回答) | 使用LoRA或ZeRO优化 |
| 参考模型 | 无(冻结参数) | 中(需前向推理) | 可用更小模型替代 |
我的建议:如果预算有限,优先保证策略模型的质量。奖励模型和参考模型都可以适当“缩水”。我在一个实际项目中,用7B的策略模型搭配1B的奖励模型和3B的参考模型,效果和全尺寸版本相差不到5%,但成本节省了60%以上。
好了,关于RLHF的三个核心组件,我就讲到这里。记住一句话:奖励模型定方向,参考模型保底线,策略模型做执行。三者配合好了,RLHF才能真正发挥威力。