RLHF 中 Reference Model 不训练?
Reference Model 在 RLHF 中的角色与更新场景详解
原题:在基于人类反馈的强化学习(RLHF)中,Reference Model是否需要参与训练?如果不需要训练,它的作用是什么?在什么情况下可能会对Reference Model进行更新?
RLHF与对齐 · 虾皮真题
回答与解析
RLHF里要先区分三个模型。policy是正在更新的策略,reward model根据偏好给回答打分,reference model通常是策略优化开始前的SFT模型或一个固定基线。Reference不需要参与梯度更新,它的作用不是提供新答案,而是为当前策略偏离基线的程度提供可计算参照。
在PPO式RLHF中,常见目标会把reward与相对reference的KL惩罚结合,限制策略为了追逐奖励模型而大幅偏离原有语言能力。实现可以按token使用新旧log probability估计相关项,但具体形式要看算法。reference若在同一次优化中不断追随policy,比较基准也随之移动,KL约束的含义就会改变。
beta控制奖励收益与偏离基线之间的权衡,没有跨模型通用范围。它需要结合实际KL、任务奖励、语言质量、拒答和安全评测调节。KL突然上升可能来自学习率、奖励尺度、prompt分布或实现错误,不能只用一个阈值触发同步reference,更不能把自动同步写成标准RLHF机制。
在新的训练迭代中,团队可以选择把经过完整验收的新策略作为下一轮SFT或RLHF的起点,并重新冻结一个reference。也可以因为模型架构、tokenizer或目标分布变化而重新定义baseline。但这是版本级决策,要重新建立对照、评测回归和可追溯配置,不是在一个run中无条件更新。
DPO同样常使用固定reference策略来构造相对偏好目标,它不需要在线rollout,但reference的选择仍会影响优化。PPO里的old policy还用于重要性比率,它与长期固定的reference职责也不同,回答时不能把二者合并。
工程上我会保存policy、reward、reference各自的版本与hash,记录每批prompt的KL、reward分量、长度和安全指标,并在独立偏好集上比较。若确实要更换reference,就创建新实验而不是悄悄覆盖。这样可以解释性能变化来自策略学习、奖励变化还是基准移动。
口语版讲法(约4分钟)
- 区分policy、reward与reference
- 说明冻结reference的计算作用
- 解释KL约束与beta
- 限定何时可以更换reference
- 给出版本与验证要求
RLHF里要先区分三个模型。policy是正在更新的策略,reward model根据偏好给回答打分,reference model通常是策略优化开始前的SFT模型或一个固定基线。Reference不需要参与梯度更新,它的作用不是提供新答案,而是为当前策略偏离基线的程度提供可计算参照。
在PPO式RLHF中,常见目标会把reward与相对reference的KL惩罚结合,限制策略为了追逐奖励模型而大幅偏离原有语言能力。实现可以按token使用新旧log probability估计相关项,但具体形式要看算法。reference若在同一次优化中不断追随policy,比较基准也随之移动,KL约束的含义就会改变。
beta控制奖励收益与偏离基线之间的权衡,没有跨模型通用范围。它需要结合实际KL、任务奖励、语言质量、拒答和安全评测调节。KL突然上升可能来自学习率、奖励尺度、prompt分布或实现错误,不能只用一个阈值触发同步reference,更不能把自动同步写成标准RLHF机制。
在新的训练迭代中,团队可以选择把经过完整验收的新策略作为下一轮SFT或RLHF的起点,并重新冻结一个reference。也可以因为模型架构、tokenizer或目标分布变化而重新定义baseline。但这是版本级决策,要重新建立对照、评测回归和可追溯配置,不是在一个run中无条件更新。
DPO同样常使用固定reference策略来构造相对偏好目标,它不需要在线rollout,但reference的选择仍会影响优化。PPO里的old policy还用于重要性比率,它与长期固定的reference职责也不同,回答时不能把二者合并。
工程上我会保存policy、reward、reference各自的版本与hash,记录每批prompt的KL、reward分量、长度和安全指标,并在独立偏好集上比较。若确实要更换reference,就创建新实验而不是悄悄覆盖。这样可以解释性能变化来自策略学习、奖励变化还是基准移动。
部署和训练成本也要分开。reference通常只在训练中用于计算基准概率,不一定作为线上服务模型;但训练时仍可能占用额外显存或通过预计算log probability降低开销。选择预计算还是同时前向,要保证tokenization、mask和模型版本完全一致,否则KL日志会因实现差异失真。
reference与policy还应使用兼容的tokenizer、词表和序列mask,否则逐token概率没有可比意义。若架构变更导致无法直接比较,应该重新设计训练目标或建立新基线,而不是强行沿用旧KL。版本切换时先跑SFT与安全回归,再开始新的偏好优化。
关键一句:为何在单次优化中自动同步reference会改变KL约束本身的含义。
核验来源
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做电商客服的对话模型微调,用了RLHF。用户问“退款流程”,模型为了拿高分奖励开始瞎编政策,你怎么防止它胡说?有没有想过用个固定模型来约束它?
- 问法 2 · 层层追问
RLHF里你一般怎么防止模型训歪?……那个KL散度惩罚项你知道怎么算吗?……它依赖的Reference Model要不要一起梯度更新?如果不用,它到底起什么作用?……那什么情况下你会考虑动这个Reference Model?
- 问法 3 · 直球架构
RLHF中Reference Model是否参与训练?如果不训练,它的作用是什么?在什么场景下需要更新它?请从原理和实现角度讲清楚。