Reverse Preference Optimization for Complex Instruction Following¶
会议: ACL 2025 arXiv: 2505.22172 代码: 未公开 领域: llm_alignment 关键词: 指令遵循, 偏好优化, DPO, 多约束对齐, 噪声消除
一句话总结¶
提出反向偏好优化(RPO),通过动态反转指令中未满足的约束将任意回复转化为"完美"chosen 样本,消除多约束偏好对中的噪声,在多轮复杂指令遵循任务上显著超越 DPO 基线。
研究背景与动机¶
- 领域现状: 指令遵循(IF)是 LLM 的核心能力,尤其在多轮对话、多约束场景中(如系统提示遵循),是下游 Agent 应用的关键。
- 现有痛点: 当指令包含多个约束时,基于总分差异构造偏好对会引入噪声——chosen 样本可能在某些约束上不如 rejected 样本,导致模型误认为那些约束不应被遵循。
- 核心矛盾: 获取完美回复(满足所有约束)非常困难,约束数量或难度增加时,采样完美回复的难度呈指数增长;而非完美的 chosen 样本必然带来噪声。
- 本文要解决什么: 如何在不依赖完美回复采样的前提下,消除多约束偏好对中的噪声,让 chosen 样本严格优于 rejected 样本。
- 切入角度: 观察到"学习一个约束与学习其反面本质相同"且"一个回复要么遵循约束要么不遵循",因此可以通过反转未满足的约束使回复变为完美。
- 核心 idea 一句话: 反转指令中 chosen 回复未满足的约束,使其自动变成完美回复,从而构造无噪声偏好对。
方法详解¶
整体框架¶
RPO 包含三部分:(1) 角色驱动的自我博弈数据构造——模拟用户和系统进行多轮对话;(2) 精细化约束评估——逐条评估回复对每个约束的遵循情况;(3) 反向偏好优化——反转约束以构造无噪声偏好对进行训练。
关键设计¶
模块 1: 反向约束机制(Reverse Constraint)
- 做什么: 对于两个在约束遵循上存在差异的回复,反转 chosen 回复未满足的约束,使其成为新指令下的完美回复。
- 核心思路: 例如约束 A="回复不超过 200 字",其反面 \(\overline{A}\) ="回复至少 200 字"。反转后 chosen 回复在所有约束上都满足,严格优于 rejected。
- 设计动机: (1) 消除噪声——chosen 在任何方面都不弱于 rejected;(2) 放大真实差距——从总分差 1 分可变为实际差 5 分;(3) 简单高效——反转约束比采样完美回复、自我修正或回译更容易。
模块 2: 差异度量(Difference Measurement)
- 做什么: 用两个回复在各约束上遵循状态的不同数量(而非总分差)来衡量差异。
- 核心思路: 即使总分相同的两个回复也可构成有效偏好对(只要它们在至少一个约束上不同)。
- 设计动机: 总分差低估了回复间的真实差异,例如两个回复各满足 3/6 个约束但完全不同的约束,实际差异为 6 而非 0。
模块 3: 自适应间距(Adaptive Margin)
- 做什么: 在 DPO 损失中引入自适应 margin \(\gamma g\),其中 \(g\) 为两回复的约束差异数。
- 核心思路: RPO 损失为 \(\mathcal{L}_{\text{RPO}} = -\mathbb{E}[\log\sigma(\beta\log\frac{\pi_\theta(y_i|x_{S_i})}{\pi_{ref}(y_i|x_{S_i})} - \beta\log\frac{\pi_\theta(y_j|x_{S_i})}{\pi_{ref}(y_j|x_{S_i})} - \gamma g)]\)
- 设计动机: 差异越大的偏好对应获得更大的优化信号,避免对不同差距的偏好对统一处理。
模块 4: 角色驱动自我博弈数据构造
- 做什么: 构造 SysBank(30K 系统提示)和多样化用户画像,通过自我博弈生成最多 5 轮对话。
- 核心思路: 从真实 GPT Store 数据中收集系统角色,扩展为包含约束的完整画像;用户侧通过 personas 扩展为详细画像。
- 设计动机: 现有数据从约束池采样拼接单轮指令,缺乏多样性且难以构造连贯多轮对话。
损失函数/训练策略¶
- 基于 Llama-Factory 框架,使用 LoRA + DeepSpeed
- SFT 学习率 5e-5,DPO/KTO/RPO 学习率 5e-4
- 每轮采样 5 次回复构造偏好对
- \(\gamma=0.05\),\(\beta=0.1\)
实验关键数据¶
主实验¶
在两个多轮复杂指令遵循基准上的结果:
| 方法 | SysBench CSR | SysBench ISR | SysBench SSR | SysBench Avg | Multi-IF Step1 | Multi-IF Step2 | Multi-IF Step3 | Multi-IF Avg |
|---|---|---|---|---|---|---|---|---|
| GPT-4o | 89.72 | 81.71 | 61.51 | 77.65 | 84.70 | 76.00 | 68.33 | 76.34 |
| Claude-3.5 Sonnet | 94.64 | 89.68 | 74.36 | 86.23 | 83.87 | 74.87 | 69.80 | 76.18 |
| Llama-3.1 8B DPO | 80.56 | 66.67 | 40.37 | 62.53 | 74.57 | 66.90 | 58.50 | 66.66 |
| Llama-3.1 8B RPO | 83.10 | 71.27 | 46.99 | 67.12 | 77.50 | 69.47 | 60.57 | 69.18 |
| Llama-3.1 70B DPO | 85.91 | 75.12 | 50.89 | 70.64 | 84.37 | 75.63 | 67.76 | 75.92 |
| Llama-3.1 70B RPO | 89.54 | 81.76 | 62.20 | 77.83 | 86.47 | 77.77 | 70.21 | 78.15 |
消融实验¶
不同模型系列上 RPO 相对 DPO 的提升:
| 模型 | SysBench Avg (DPO→RPO) | Multi-IF Avg (DPO→RPO) |
|---|---|---|
| Llama-3.1 8B | 62.53 → 67.12 (+4.59) | 66.66 → 69.18 (+2.52) |
| Llama-3.1 70B | 70.64 → 77.83 (+7.19) | 75.92 → 78.15 (+2.23) |
| Qwen-2.5 7B | 59.49 → 63.06 (+3.57) | 63.11 → 66.27 (+3.16) |
| Qwen-2.5 72B | 75.84 → 76.97 (+1.13) | 76.10 → 78.35 (+2.25) |
关键发现¶
- RPO 在 8B 模型上的 SysBench CSR/ISR/SSR 分别比 DPO 基线提升 2.5/4.6/6.6 分
- 70B RPO 模型在多数指标上超越 GPT-4o
- RPO 在训练过程中 chosen-rejected reward 差距增长更显著,说明其能更有效地区分正负样本
- 更大的约束差异分数(gap)确实有助于提升性能,验证了反转机制放大差距的设计合理性
- RPO 无需额外采样或过滤即可构造无噪声偏好对,工程实现简单
亮点与洞察¶
- 反转约束的思路极其简洁优雅——将数据质量问题转化为指令改写问题,完全消除了多约束场景下的偏好噪声
- 对多约束偏好对的噪声来源分析(6 种 case 分类)非常清晰,系统性地揭示了问题本质
- SysBank 数据集(30K 真实系统提示)为社区提供了有价值的多轮 IF 训练资源
- 方法的可扩展性好——从 8B 到 70B、从 Llama 到 Qwen 系列均一致有效
局限性/可改进方向¶
- 约束反转依赖 LLM 生成高质量的反面约束,对比较抽象或复杂的约束可能失败
- 多轮对话中约束间可能存在依赖关系,独立反转单个约束可能并不总是合理
- 评估仍依赖 LLM-as-judge 范式,逐条约束评估本身可能引入误差
- 未探索 RPO 与在线 DPO、自我博弈迭代训练等方法的结合
相关工作与启发¶
- IOPO (Zhang et al., 2024b): 将两条不同指令的完美回复互为 rejected,同时对齐输入输出偏好——与 RPO 思路互补
- SPAR (Cheng et al., 2024a): 通过树搜索自修正过程抑制噪声——更复杂但与 RPO 目标一致
- CRAB (Qi et al., 2024): 用回译从回复生成指令以提升数据质量——与 RPO 的指令改写方向类似
- 核心启发:在多偏好对齐中,优化数据质量比增加数据量更重要
评分¶
- 新颖性: ⭐⭐⭐⭐ — 反转约束的 idea 简洁有力,在多约束 IF 场景下具有原创性
- 实验充分度: ⭐⭐⭐⭐ — 覆盖两个基准、四种模型规模/系列、含训练动态分析
- 写作质量: ⭐⭐⭐⭐ — 问题分析透彻(6 种 case 分类图),方法表述清晰
- 价值: ⭐⭐⭐⭐ — 为多约束指令遵循的偏好学习提供了实用且可推广的解决方案