大模型对齐 Alignment

一、大模型对齐的核心概念

大模型对齐(Alignment) 的目标是让模型的输出与人类的价值观、偏好和指令保持一致(即“有用、无害、诚实”),解决模型“能力强但不听话”的问题。

对齐 vs 微调:核心区别

维度 微调(Fine-tuning) 对齐(Alignment)
目标 提升模型在特定任务上的能力(如问答、翻译) 让模型输出符合人类价值观/偏好(如避免有害内容、更有用)
数据类型 “指令-正确输出”的标注对 “人类偏好标注”(如“A 比 B 更好”“$y_1$>$y_2$>$y_3$”的排序)
方法 监督学习(直接拟合标注数据) 强化学习(PPO)、偏好优化(DPO/GRPO)等

二、主流对齐算法原理与计算过程

1. PPO(Proximal Policy Optimization,近端策略优化)

经典的强化学习对齐方案,通过“奖励模型”引导模型生成人类偏好的输出,同时用“近端约束”避免策略更新过大导致崩溃。

计算过程(三阶段):
  1. 监督微调(SFT)
    用标注的“指令-输出”数据训练初始模型,让模型具备基本的指令遵循能力。
  2. 训练奖励模型(RM)
    • 收集人类偏好数据:对同一 prompt,让模型生成多个输出(如 A、B),由人类标注“哪个更好”(如 A>B)。
    • 训练 RM:输入 prompt+ 输出,输出“人类偏好得分”(数值越高越符合偏好)。
  3. PPO 强化学习训练
    • 策略网络(当前模型)生成输出;
    • 奖励计算:RM 给输出打分,同时加入“KL 散度惩罚”(约束当前模型与 SFT 模型的差异,避免策略漂移);
    • 优势函数:$A_t = \text{奖励}_t – \text{基线}$(基线通常是价值网络的预测,用于降低方差);
    • 优化目标(PPO 核心损失函数):

    $$
    L^{\text{PPO}} = \mathbb{E}\left[\min\left(r_t(\theta)A_t, \text{clip}(r_t(\theta), 1-\varepsilon, 1+\varepsilon)A_t\right)\right]
    $$

    其中 $r_t(\theta) = \frac{\pi_\theta(y_t|x_t)}{\pi_{\theta_{\text{old}}}(y_t|x_t)}$ 是新旧策略的概率比,$\text{clip}$ 约束 $r_t$ 在 $[1-\varepsilon, 1+\varepsilon]$ 内(防止更新过大)。

优缺点:
  • ✅ 效果经典(早期 GPT-3、ChatGPT 用类似方案);
  • ❌ 训练复杂(三阶段)、不稳定(易策略崩溃)、计算成本高。

2. DPO(Direct Preference Optimization,直接偏好优化)

无强化学习的轻量级方案,直接用人类偏好数据优化模型,无需奖励模型,训练更稳定、计算更简单。

核心思路:

将偏好学习转化为“对比分类”问题:对于偏好对($x$=prompt,$y_w$=人类偏好的输出,$y_l$=不偏好的输出),让模型给 $y_w$ 的概率比 $y_l$ 高,通过最大似然优化。

计算过程:
  • 偏好数据:$(x, y_w, y_l)$(如“prompt:写首诗;$y_w$:人类喜欢的诗;$y_l$:人类不喜欢的诗”)。
  • 损失函数

$$
L^{\text{DPO}} = -\mathbb{E}\left[\log \sigma\left(\beta \left(\log \frac{\pi(y_w|x)}{\pi_{\text{ref}}(y_w|x)} – \log \frac{\pi(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right)\right)\right]
$$

其中:

  • $\pi$:当前模型;$\pi_{\text{ref}}$:参考模型(通常是 SFT 模型,约束模型不偏离初始能力);
  • $\beta$:温度系数(控制对参考模型的约束强度);
  • $\sigma$:sigmoid 函数(将“$y_w$ 相对 $y_l$ 的优势”转化为概率)。
  • 直观理解:让模型对 $y_w$ 的“相对概率(相对于参考模型)”比 $y_l$ 高,最大化这个概率的对数似然。
优缺点:
  • ✅ 训练简单(单阶段)、稳定、计算成本低;
  • ✅ 效果接近甚至超过 PPO(现在主流方案,如 Zephyr、Llama 3 对齐用 DPO);
  • ❌ 仅支持“两两偏好”数据,对复杂排序场景利用不充分。

3. GRPO(Group Relative Preference Optimization,组相对偏好优化)

DPO 的扩展方案,针对“组偏好”场景(一个 prompt 对应多个输出,人类给它们排序,如 $y_1>y_2>y_3$),更充分利用排序信息。

核心思路:

对“一组输出的排序”建模,而不是仅处理两两偏好,利用组内所有相对关系优化。

计算过程:
  • 组偏好数据:$(x, \{y_1, y_2, …, y_k\}, r)$,其中 $r$ 是组内排名($r=1$ 最好,$r=k$ 最差)。
  • 损失函数:对组内每对 $(y_i, y_j)$(若 $r_i < r_j$,即 $y_i$ 比 $y_j$ 好),计算类似 DPO 的损失,然后对所有组内对平均:

$$
L^{\text{GRPO}} = -\mathbb{E}\left[\frac{1}{C(k,2)} \sum_{i<j, r_i<r_j} \log \sigma\left(\beta \left(\log \frac{\pi(y_i|x)}{\pi_{\text{ref}}(y_i|x)} – \log \frac{\pi(y_j|x)}{\pi_{\text{ref}}(y_j|x)}\right)\right)\right]
$$

其中 $C(k,2)$ 是组内两两组合的数量。

优缺点:
  • ✅ 充分利用“组排序”信息,适合复杂偏好场景;
  • ✅ 效果比 DPO 在多输出排序任务上更好;
  • ❌ 数据标注成本更高(需要给多个输出排序)。

三、PPO vs DPO vs GRPO 对比总结

特性 PPO DPO GRPO
方法类型 强化学习(RL) 直接偏好优化(无 RL) 组相对偏好优化(扩展 DPO)
核心组件 SFT 模型 + 奖励模型 + PPO SFT 模型 + 两两偏好数据 SFT 模型 + 组排序数据
训练复杂度 高(三阶段,不稳定) 低(单阶段,稳定) 中(单阶段,处理组数据)
偏好数据 两两偏好(A 比 B 好) 两两偏好 组排序($y_1>y_2>…>y_k$)
计算成本
稳定性 低(易策略崩溃)
主流场景 早期对齐方案(如 GPT-3) 现在主流(如 Zephyr、Llama 3) 复杂偏好排序场景

四、总结

  • 对齐 ≠ 微调:对齐的核心是让模型符合人类价值观,而非仅提升任务能力;
  • DPO 是目前主流:简单、稳定、效果好,优先选择;
  • GRPO 适合复杂排序:如果有多个输出的组排序数据,用 GRPO 更充分;
  • PPO 是经典但复杂:现在逐渐被 DPO/GRPO 替代,仅在需要强化学习精细控制的场景使用。

参考链接:大模型对齐算法深度解析:PPO、DPO、GRPO、DAPO – 知乎

感谢你的阅读


欢迎评论交流


忽如一夜春风来,千树万树梨花开。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇