十六:强化学习:DPO 与 ORPO自测题答案¶
来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484095&idx=1&sn=8636d3edbd342044d1933f7e69847616&chksm=f01eb1c6c76938d014e2f3caae470c12b6479a8180d3e972c52dc08fe9e5812e4bce9dc6941a#rd
参考资料¶
-
DPO 原论文:https://arxiv.org/abs/2305.18290
-
DPO 原理详解及公式推导:https://zhuanlan.zhihu.com/p/779691018
-
模型调优(RLHF/DPO/ORPO):https://zhuanlan.zhihu.com/p/692594519
-
ORPO 原论文:https://arxiv.org/abs/2403.07691
-
Hugging Face TRL DPOTrainer 文档:https://huggingface.co/docs/trl/dpo_trainer
评分标准¶
-
合格:能写出 DPO 数据格式、DPO loss、reference model 作用和 ORPO 基本结构。
-
良好:能解释 KL 约束 RLHF 到隐式 reward 的推导、Bradley-Terry、beta、sequence logp 和 mask。
-
优秀:能系统比较 SFT/DPO/ORPO/RLHF-PPO,并能指出长度偏置、噪声偏好、reference 选择和评估风险。
一、DPO 基础¶
1. DPO 的全称是什么?它主要解决 RLHF-PPO 中的什么问题?¶
DPO 是 Direct Preference Optimization。它把偏好优化写成直接的分类式损失,避免显式 reward model、PPO rollout、value head 和复杂 RL 调参。
2. DPO 使用的数据通常是什么格式?¶
通常是 (x, y_w, y_l),即 prompt、chosen response、rejected response。
3. chosen 和 rejected 分别表示什么?¶
chosen 是同一 prompt 下更受偏好的回答,rejected 是相对不受偏好的回答。
4. DPO 是否需要显式训练 reward model?为什么?¶
不需要。DPO 把 KL 约束 RLHF 的最优策略关系代入偏好模型,用 policy/reference 的 log ratio 直接构造隐式 reward 差。
5. DPO 是否需要 PPO rollout 和 value head?¶
不需要。DPO 使用离线偏好对做监督式优化,不做在线采样,也不需要 critic/value head。
6. DPO 为什么可以被看作一种离线偏好优化方法?¶
因为训练数据是固定偏好对,训练过程中不需要当前 policy 与环境交互生成新 response。
7. DPO 与 SFT 的核心区别是什么?¶
SFT 只最大化 chosen 的似然;DPO 同时比较 chosen 和 rejected,并相对 reference 调整二者概率。
8. DPO 与 RLHF-PPO 的核心区别是什么?¶
RLHF-PPO 先训练 reward model,再用 PPO 在线优化 policy。DPO 直接用偏好对优化 policy,不显式训练 reward model。
二、RLHF 目标与隐式奖励¶
9. 请写出带 KL 约束的 RLHF 目标。¶
10. RLHF 目标中的 reference policy 起什么作用?¶
它作为行为锚点,限制 policy 不要偏离 SFT/reference 模型太远。
11. beta 在 KL 约束目标中控制什么?¶
控制 reward 最大化和 KL 约束之间的权衡。它也影响 DPO loss 中偏好 logit 的尺度。
12. KL 约束 RLHF 目标的最优策略形式是什么?¶
13. 如何从最优策略形式反推出隐式 reward?¶
14. 为什么同一个 prompt 下的 partition function Z(x) 会在偏好比较中抵消?¶
偏好比较使用 r(x,y_w)-r(x,y_l),两个回答同属一个 x,因此 beta log Z(x) 相减为 0。
15. DPO 论文标题中“language model is secretly a reward model”是什么意思?¶
policy 相对 reference 的 log probability ratio 可以解释为隐式 reward,因此语言模型本身可参数化 reward difference。
16. DPO 学到的是绝对 reward 还是 reward difference?为什么?¶
主要是 reward difference。偏好模型只提供相对比较,且同 prompt 下常数项不可辨识。
三、Bradley-Terry 与 DPO Loss¶
17. Bradley-Terry 偏好模型如何表示两个回答的偏好概率?¶
18. 请写出 DPO 中 chosen 和 rejected 的 reward difference。¶
beta * [
log pi_theta(y_w|x) - log pi_ref(y_w|x)
- log pi_theta(y_l|x) + log pi_ref(y_l|x)
]
19. 请写出 DPO loss 的标准形式。¶
20. DPO loss 中 log pi_theta(y_w|x) - log pi_ref(y_w|x) 表示什么?¶
表示 policy 相对 reference 对 chosen 的偏移,也就是 chosen 的隐式 reward 主要项。
21. DPO loss 如何同时提高 chosen、压低 rejected?¶
它最大化 chosen 相对 reference 的 log ratio,并最小化 rejected 相对 reference 的 log ratio,使二者差值变大。
22. DPO 中 beta 变大或变小可能有什么影响?¶
beta 变大偏好 logit 放大,更新更激进;变小训练更保守。实际效果要结合实现和学习率观察。
23. DPO loss 为什么类似二分类 loss?¶
它用 sigmoid 判断 chosen 是否比 rejected 更优,本质上是偏好对上的二分类交叉熵。
24. DPO 中 reference model 为什么必须冻结?¶
reference 是固定锚点。如果 reference 也更新,log ratio 的约束含义会漂移,DPO 推导不成立。
25. 如果 reference model 和 policy tokenizer/template 不一致,会发生什么?¶
log probability 不可比较,ratio 失真,loss 方向错误。必须保证同一 prompt/response 模板和 tokenizer。
26. DPO 是否可以加入 SFT loss?加入后可能有什么作用?¶
可以。SFT loss 能保持 chosen 模仿能力和语言质量,但权重过大可能削弱偏好对比信号。
四、Sequence Log Probability 与实现¶
27. DPO 中 sequence log probability 如何计算?¶
通常只对 response token 求和。28. 为什么 DPO loss 只应计算 response token?¶
prompt 是输入条件,不是模型要优化生成的动作。把 prompt 加入 loss 会污染训练目标。
29. Prompt token 进入 DPO sequence logp 会造成什么问题?¶
模型会被错误优化去提高用户输入或模板 token 的概率,偏好差值也会被 prompt 长度影响。
30. Padding token 进入 DPO loss 会造成什么问题?¶
padding 没有语义,会污染 logp、长度和 batch loss,导致训练不稳定。
31. chosen/rejected 长度差异会给 DPO 带来什么风险?¶
序列 logp 会随长度累加,模型可能学到长短偏好,而不是真实质量偏好。
32. DPO 中是否应该做长度归一化?如何判断?¶
没有统一答案。经典 DPO 用序列 logp;如果任务有明显长度偏置,可实验平均 logp、长度惩罚或数据清洗,并用人工评估验证。
33. 使用 LoRA/QLoRA 做 DPO 时 reference model 可以如何实现?¶
可以加载一份冻结 base/reference,也可以在同一模型中临时禁用 adapter 计算 reference logp,节省显存。
34. DPO batch 中 chosen/rejected 应该如何拼接或编码?¶
通常同一 prompt 分别拼接 chosen/rejected,构造 response mask,分别计算 policy/ref logps,再组成 pairwise loss。
35. DPO 训练时显存主要花在哪里?¶
policy 前向/反向、reference 前向、长序列激活、chosen/rejected 双样本、优化器状态。PEFT/QLoRA 可降低开销。
36. DPO 中 label smoothing 或 conservative DPO 解决什么问题?¶
用于缓解偏好标签噪声,避免模型过度相信每个 chosen 一定优于 rejected。
五、DPO 优缺点与评估¶
37. DPO 的主要优点有哪些?¶
简单稳定、不需要 reward model 和 PPO、可离线训练、易结合 PEFT、工程成本低。
38. DPO 的主要局限有哪些?¶
依赖偏好数据质量,无在线探索,对长度/格式偏置敏感,reference 和 beta 选择重要。
39. 为什么 DPO 对偏好数据质量敏感?¶
偏好标签直接决定优化方向。错误偏好会让模型提高坏回答概率、降低好回答概率。
40. DPO 为什么可能学习到长度偏置?¶
如果 chosen 系统性更长或更短,模型可能把长度当作偏好信号。sequence logp 也天然受长度影响。
41. DPO 为什么可能过拟合偏好数据中的格式偏置?¶
如果 chosen 总有固定格式、口吻或模板,DPO 会强化这些表面特征。
42. DPO 和 PPO 谁更适合在线探索?为什么?¶
PPO 更适合在线探索,因为它可以让当前 policy 采样新 response 并基于 reward 更新。DPO 主要依赖离线偏好对。
43. DPO 训练中如果 chosen/rejected 区分太容易,会有什么问题?¶
梯度很快饱和,模型学到的新增信号有限,也可能只学会浅层特征。
44. DPO 训练中如果偏好标签噪声很大,会有什么问题?¶
loss 会推动相互矛盾的方向,导致对齐不稳定、泛化差。可用数据过滤、label smoothing、保守目标。
45. DPO 评估为什么不能只看训练 loss?¶
loss 降低只说明模型拟合偏好对,不代表真实帮助性、事实性、安全性提升。需要人评和 benchmark。
46. DPO 后模型回复变短或变长,可能由哪些因素导致?¶
偏好数据长度分布、sequence logp 累加方式、beta、参考模型行为、解码参数和格式偏置都可能导致。
六、ORPO 基础¶
47. ORPO 的全称是什么?¶
Odds Ratio Preference Optimization。
48. ORPO 为什么被称为 reference model-free?¶
它的偏好项不需要 frozen reference model,而是直接用当前模型的 odds ratio 对 chosen/rejected 建模。
49. ORPO 为什么被称为 monolithic preference optimization?¶
它把 SFT 和偏好优化放在一个统一 loss 中,而不是先 SFT 再单独偏好优化。
50. ORPO loss 通常由哪两部分组成?¶
SFT NLL 和 odds-ratio preference loss:
51. ORPO 中 SFT loss 的作用是什么?¶
让模型学习 chosen 的基本生成能力和指令遵循,保持语言建模质量。
52. ORPO 中 odds ratio preference loss 的作用是什么?¶
拉大 chosen 和 rejected 的相对偏好差,使 chosen 更可能、rejected 更不可能。
53. odds ratio 的直觉含义是什么?¶
表示某个回答发生概率相对不发生概率的比值,用来衡量模型对该回答的倾向强度。
54. 请写出 ORPO 偏好项的基本形式。¶
55. ORPO 中 lambda 控制什么?¶
控制偏好项相对 SFT 项的权重。太大可能牺牲语言质量,太小偏好对齐不足。
56. ORPO 与 DPO 在 reference model 上有什么区别?¶
DPO 需要 frozen reference model;ORPO 不需要 reference model。
七、DPO、ORPO 与其他方法对比¶
57. DPO 与 ORPO 的目标结构有什么区别?¶
DPO 是 reference log-ratio pairwise loss;ORPO 是 SFT NLL 加 odds-ratio pairwise loss。
58. DPO 与 ORPO 在训练阶段上有什么区别?¶
DPO 常用于 SFT 后偏好优化。ORPO 试图在一个阶段中同时完成 SFT 和偏好对齐。
59. DPO 与 ORPO 在工程成本上有什么区别?¶
ORPO 不需要 reference 前向,显存和计算更低。DPO 多一次 reference logp,但理论联系 KL-RLHF 更直接。
60. DPO 与 RLHF-PPO 在 reward model 上有什么区别?¶
DPO 不显式训练/调用 reward model;RLHF-PPO 通常需要 reward model 给生成回答打分。
61. DPO 与 RLHF-PPO 在数据来源上有什么区别?¶
DPO 使用离线偏好对。RLHF-PPO 使用 prompt 在线采样 response,再由 reward model 评分。
62. DPO 与 GRPO 在在线采样和偏好信号上有什么区别?¶
DPO 使用离线 chosen/rejected 偏好对。GRPO 对同 prompt 在线采样多回答,用 reward 组内相对优势优化。
63. ORPO 与 SFT 相比多了什么训练信号?¶
多了 rejected 反例和 chosen/rejected 的偏好对比信号。
64. DPO 与 IPO/KTO/SimPO 等偏好优化方法的共同思想是什么?¶
都试图绕开或简化 PPO-RLHF,用偏好数据直接构造可微训练目标。
八、综合设计与排错¶
65. 请设计一个从 SFT 模型到 DPO 模型的完整训练流程。¶
准备偏好对;加载 SFT policy 和 frozen reference;构造 prompt/chosen/rejected 模板;计算 policy/ref logps;用 DPO loss 训练;监控验证偏好准确率、长度、KL、人工评估;保存模型。
66. 如果 DPO 训练 loss 下降但人工评估变差,应该排查哪些问题?¶
排查偏好数据质量、长度偏置、模板错误、mask 错误、beta 过大、过拟合、reference 不合适、评估解码参数。
67. 如果 DPO 后模型拒答变多,可能是什么原因?¶
chosen 中安全拒答比例过高,rejected 中有正常回答被错标,或模型过度学习安全模板。
68. 如果 DPO 后模型事实性下降,可能是什么原因?¶
偏好数据更偏风格而非事实,chosen 中存在幻觉,reward/偏好标注偏向自信表达,SFT 能力被过度偏好优化破坏。
69. 如果要在 DPO 和 ORPO 中二选一,你会考虑哪些因素?¶
考虑是否已有 SFT 模型、是否能承担 reference 前向、是否希望单阶段训练、偏好数据质量、显存预算、是否重视 KL-RLHF 理论解释。
70. 请完整比较 SFT、DPO、ORPO、RLHF-PPO 的数据格式、目标函数、组件、优缺点和适用场景。¶
SFT 使用 (prompt, answer),最大化答案似然,简单稳定但没有反例偏好。DPO 使用 (prompt, chosen, rejected),优化 reference log-ratio 偏好 loss,不需要 reward/PPO,适合离线偏好对齐。ORPO 使用偏好对,loss 是 SFT NLL 加 odds-ratio 偏好项,不需要 reference,适合单阶段低成本对齐。RLHF-PPO 使用 prompts、policy samples、reward model,在线优化 reward-KL,探索能力强但工程复杂、成本高、稳定性风险大。
预览时标签不可点
<div class="