真实面经题目 · 原创解析

RLHF、DPO、PPO 或 GRPO 中 reference model 起什么作用?如果不能保留完整 reference,可以用哪些替代或近似约束?

这题考的是对齐训练里 reference model 的约束本质:它不是装饰性的第二个模型,而是定义“不要偏离初始策略太远”的行为锚点。在 PPO、DPO、GRPO 等方法中,reference 通过 KL、log probability ratio 或隐式 reward 基线抑制奖励黑客、语言退化和安全边界漂移;如果不能完整保留,也要知道哪些近似能替代、哪些只能部分约束。

出现于:阿里巴巴 · 算法

60 秒回答模板

reference model 的核心作用是给当前策略一个稳定参照,通常是 SFT 后冻结的初始模型。在 PPO 式 RLHF 中,reward model 可能鼓励模型过度优化某些表面特征,所以训练时会加上 policy 与 reference 的 KL 惩罚,限制回答风格、语言能力和安全边界不要偏离太远。在 DPO 中,reference 出现在 chosen/rejected 的 log probability ratio 里,它决定偏好优化相对于原始策略的改变幅度;没有 reference,目标就会从“在原模型基础上偏好 chosen”变得更容易无约束放大某些答案模式。在 GRPO 或类似 group-relative 方法中,即使 advantage 来自组内相对比较,也常需要 KL 到 reference 来避免策略漂移。不能保留完整 reference 时,替代方案可以分层:最好是用量化、CPU/offload、张量并行共享权重或 LoRA base 复用来低成本保留 reference;其次是预计算固定训练样本的 reference logprob 缓存;再其次是保存 top-k logits、蒸馏一个小 reference、周期性快照或 EMA teacher;更弱的替代包括对初始策略样本做 SFT replay、对参数或 LoRA 范数做约束、reward clipping、早停和红线评测。要强调这些近似不完全等价:缓存无法覆盖在线新采样,top-k KL 会漏掉尾部分布,参数 L2 不等于行为 KL,小模型 reference 会有偏差。所以选择时要看训练算法、是否在线生成、成本约束和可接受风险,并用 KL、win rate、困惑度、安全、格式和多样性评测监控漂移。

考点 reference 是行为锚点
难度 真实面经题
回答目标 让候选人能解释 reference model 在 PPO、DPO、GRPO 等对齐训练中的行为约束作用,并能按保真度从完整 reference、量化/offload、logprob 缓存、logits 近似、蒸馏 reference 到弱正则说明替代方案和风险。

深入解析

01

先讲 reference 的本质

reference model 通常是训练开始时冻结的 SFT policy 或 base policy,它定义了当前策略的行为锚点。对齐训练不是让模型无限追逐 reward,而是在提升偏好目标的同时保持语言能力、知识分布、回答风格、安全边界和多样性。reference 提供的正是“偏离多少算过度”的参照。

02

PPO 中是 KL 约束

在 PPO 式 RLHF 中,policy 根据 reward model 更新,但 reward model 不完美,可能被冗长、套话、自信语气或格式投机欺骗。reference model 用于计算当前 policy 与初始 policy 的 KL,作为惩罚项或自适应系数,防止 reward hacking、语言退化、重复输出和安全漂移。

03

DPO 中定义相对偏好

DPO 的目标里会比较 policy 对 chosen 和 rejected 的 log probability 差,同时减去 reference 的对应差值。这个 reference ratio 表示原始模型本来就有的偏好,训练优化的是相对于原策略的改变量。没有这个锚点,模型可能过度放大训练集偏好样式,而不是稳健地调整决策边界。

04

GRPO 中仍需防漂移

GRPO 这类组内相对优化方法可以用同一 prompt 下多候选的相对 reward 估计 advantage,减少或替代 critic 的需求。但这不代表不需要行为约束;如果只按组内 reward 推动 policy,仍可能出现模板化、过长、模式坍缩和安全边界移动,因此常见做法仍会加入到 reference 的 KL 或类似正则。

05

优先保留低成本 reference

如果问题是显存或吞吐成本,最接近原算法的做法不是删除 reference,而是降低保留成本:reference 用 8-bit/4-bit 量化,只做前向不反传;放到 CPU 或低优先级 GPU offload;与 policy 共享 base 权重,只维护 LoRA delta;或用张量并行和 batch 调度复用计算。这样行为约束仍接近完整 reference。

06

固定数据可用 logprob 缓存

对于 DPO 或离线偏好数据,prompt、chosen、rejected 固定时,可以预先计算 reference logprob 并缓存,训练时不再跑 reference 前向。这是很实用的替代,但限制是只能覆盖固定样本;如果 PPO/GRPO 训练中会在线采样新 response,缓存就无法直接给新样本的 reference 概率。

07

近似 logits 和蒸馏有偏差

另一类方案是保存 reference 的 top-k logits、低精度 logits、分段压缩 logits,或训练一个小 reference/teacher 来近似原 reference。它们可以降低存储和计算,但会带来分布偏差,尤其在长尾 token、拒答边界和专业术语上可能不准。使用时需要监控近似 KL 与完整 reference KL 的误差。

08

弱约束只能兜底

如果完全没有 reference,只能用更弱的约束组合兜底,例如 SFT replay loss、参数 L2、LoRA 范数限制、reward clipping、学习率和更新步数限制、早停、固定红线评测和拒答边界测试。这些方法能降低失控风险,但它们约束的是参数或样本表现,不等价于全分布行为 KL。

09

用漂移指标验收

训练后要同时看偏好胜率和漂移风险:policy-reference KL、输出长度、重复率、困惑度、通用任务回归、安全和过拒、事实性、代码数学能力、多样性和人工 badcase。一个 reference 替代方案如果提升 reward 但带来大规模语言或安全退化,就不能算成功。

易错点

  • 把 reference model 误认为 reward model,混淆打分和约束的角色。
  • 只说 reference 用来算 KL,没有解释为什么需要防止策略漂移。
  • 认为 DPO 不需要 reference,忽略 log probability ratio 中的相对基线。
  • 把 GRPO 没有 critic 理解成不需要任何 reference 或 KL 约束。
  • 认为缓存 reference logprob 可以覆盖所有在线生成样本。
  • 用参数 L2 或 LoRA 范数替代行为 KL,却不说明这种近似的局限。
  • 只看 reward 或 win rate 提升,不监控安全、长度、重复、困惑度和通用能力退化。

面试官追问

reference model 和 reward model 有什么区别?

reward model 给当前输出打偏好分,告诉训练往哪个方向优化;reference model 不评价好坏,而是提供初始策略的概率分布,用来限制当前 policy 不要为了 reward 偏离太远。

DPO 一定需要在线跑 reference 吗?

不一定。如果偏好数据是固定的,可以提前计算 prompt、chosen、rejected 在 reference 下的 logprob 并缓存。训练中只要 tokenizer、模板、截断方式和 mask 不变,就可以直接读取缓存。

为什么参数 L2 不能完全替代 KL?

参数距离小不代表输出分布距离小,尤其是大模型中某些小参数变化可能显著改变关键 token 概率;反过来参数差异较大也可能行为相近。KL 直接约束行为分布,更贴近生成结果。

reference-free DPO 是否就不需要约束?

reference-free 变体可以减少对显式 reference 的依赖,但不代表无约束优化没有风险。实际仍需要通过隐式假设、正则、SFT replay、早停和评测红线控制漂移,且效果要和有 reference 的基线对比。

在线 RLHF 不能缓存 reference 时怎么办?

优先考虑量化 reference、异步/offload 前向、共享 base 权重、减少 reference 计算频率或只对关键 token/样本估计 KL。如果必须近似,要记录误差并用漂移指标和人工评测兜底。

KL 系数应该越大越安全吗?

不是。KL 系数太小会 reward hacking,太大则 policy 几乎不学习偏好,win rate 提升有限。通常需要自适应 KL 或 sweep,不同任务、模型阶段和 reward 噪声下最佳系数不同。