超越排名: 为什么你的大模型应该关注奖励值的大小

如果你玩过 ChatGPT 或 Claude 这样的大语言模型 (LLM) ,你应该知道“对齐 (alignment) ”是其中的秘诀。一个基于互联网数据训练的基座模型只是一个混乱的文本补全引擎;它需要通过基于人类反馈的强化学习 (RLHF) 才能变成一个有用的助手。

很长一段时间以来,对齐的标准配方是近端策略优化 (PPO) 。但 PPO 复杂、不稳定且计算成本高昂。最近,该领域转向了更简单的“基于排序”的方法,如直接偏好优化 (DPO) 。这些方法查看两个答案——一个好的,一个坏的——并告诉模型: “偏好 A 胜过 B。”

但这种逻辑存在缺陷。如果 A 只是略微好于 B 呢?如果 A 好于 B 呢?基于排序的方法几乎以相同的方式处理这些情况。它们关心的是排名,而不是价值

在这篇文章中,我们将深入探讨研究论文 “Don’t Forget Your Reward Values: Language Model Alignment via Value-based Calibration” (别忘了你的奖励值: 通过基于价值的校准进行语言模型对齐) 。 我们将探讨为什么忽略奖励的幅度会导致模型次优,以及一种新方法——基于价值的校准 (Value-based CaliBration, VCB) ——是如何通过数学方法强制答案之间的概率差距与它们的质量差距相匹配来解决这个问题的。

问题所在: 当“更好”还不够时

让我们从直觉开始。想象一下你在教一个学生。

  1. 场景 1: 学生写了一篇得分为 90/100 的文章。他们之前的尝试是 89/100。
  2. 场景 2: 学生写了一篇得分为 90/100 的文章。他们之前的尝试是 10/100。

在这两种情况下,新文章都“更好”。如果你只是告诉学生“结果 2 > 结果 1”,你就忽略了关键信息。在场景 2 中,他们应该大幅度地将行为转向新文章的风格。而在场景 1 中,这种差异微不足道。

当前流行的对齐方法 (如 RRHF、SLiC 和 DPO) 都是基于排序 (Order-based) 的。它们在偏好对 \((y_w, y_l)\) 上进行操作,其中 \(y_w\) 是赢家,\(y_l\) 是输家。它们优化模型以增加赢家的概率并减少输家的概率。

研究人员在此强调了一个关键的局限性: 这些方法丢弃了实际的奖励值。

Order-based method Vs. Value-based method.

看看上面的 图 1

  • 奖励 (Rewards,蓝线) : 这是基本事实 (Ground truth) 。回复 \(y_3\) (0.9) 和 \(y_2\) (0.85) 都很好。回复 \(y_1\) (0.1) 很糟糕。
  • 排序校准 (Order Calibration,绿线) : 这代表了像 DPO 这样的方法。它们只关心 \(y_3 > y_2 > y_1\)。注意 \(y_2\) (中间的点) 的概率是如何被压得过低的吗?它将 \(y_3\) 和 \(y_2\) 之间的差距 (0.05 的差异) 与 \(y_2\) 和 \(y_1\) 之间的差距 (0.75 的差异) 同等对待。这导致了错位。
  • 价值校准 (Value Calibration,橙线) : 这就是本文提出的 VCB 方法。它确保概率分布实际上反映了奖励分布。由于 \(y_2\) 和 \(y_3\) 得分相似,它们获得了相似的概率。

统一旧方法

在构建新方法之前,我们需要理解为什么当前的方法会忽略数值。作者对 RRHF、SLiC 和 DPO 进行了精彩的理论统一。

事实证明,所有这些方法都源于同一个优化问题:

Equation 3 optimization problem

在这里,目标是最大化预期奖励 \(r(x,y)\) 加上一个“广义条件熵”项 \(H\)。

如果我们从理论上解决这个优化问题,我们会得到一个如下所示的最优策略 \(\pi_{opt}\):

Optimal policy equation

反派角色: 配分函数 (\(Z(x)\))

看到分母中的 \(Z(x)\) 了吗?那就是配分函数 (partition function) 。 它保证所有概率之和为 1。计算 \(Z(x)\) 需要对 LLM 可能生成的每一个句子进行求和,这在计算上是不可能的。

为了绕过这个问题,像 DPO 这样的方法使用了一个聪明的数学技巧,称为重参数化 (reparameterization) 。 它们重新排列方程,用最优策略和 \(Z(x)\) 来定义奖励 \(r(x,y)\):

Rearranged reward equation

然后,它们将其代入排名损失函数中。例如,SLiC 使用边际损失 (margin loss) :

SLiC reward loss

当你将重参数化后的奖励代入此损失函数时,\(Z(x)\) 项相互抵消了! (因为 \(Z(x)\) 仅取决于提示词,而不取决于具体的回复 \(y\)) 。

SLiC final loss

效率的代价: 通过消除 \(Z(x)\),它们同时也有效地从方程中删除了绝对奖励项 \(r(x,y)\)。现在的损失函数只看模型的概率。实际的“分数” (例如 0.9 对比 0.1) 消失了。我们留下了一个干净的、可微的损失函数,但我们丢失了关于事物“好多少”的地图。

解决方案: 基于价值的校准 (VCB)

研究人员提出了一种方法,可以在消除无法计算的 \(Z(x)\) 的同时,删除奖励值。

第一步: 更好的熵

首先,他们选择了一种基于 KL 散度的特定熵形式。这可以防止模型偏离基础的有监督微调 (SFT) 模型太远 (这是对齐中的常见做法,以防止“奖励破解”或生成乱码) 。

Entropy definition using KL divergence

这导出了最优策略的一种特定形式:

Optimal policy with KL entropy

第二步: 差分法

这是关键的创新点。作者没有使用变量代换来隐藏 \(Z(x)\),而是使用了差分法 (difference method)

他们取针对两个不同回复 \(y_1\) 和 \(y_2\) 的最优策略的对数,并将它们相减。

Difference method derivation

当你从回复 2 的方程中减去回复 1 的方程时,对于两者都相同的 \(Z(x)\) 项就直接消失了。

Final difference equation

看看上面的方程。

  • 左侧: 优化后的模型与 SFT 模型之间“对数概率差距”的差值。
  • 右侧: 实际奖励的差值。

这意味着,如果 \(y_1\) 的奖励远高于 \(y_2\),那么模型对 \(y_1\) 的概率增幅应该按比例地更大。

第三步: VCB 损失函数

基于这个等式,作者定义了 基于价值的校准 (VCB) 损失。它试图最小化概率差距与奖励差距之间的平方误差。

VCB Loss Function

让我们分解一下这个损失函数的各个部分:

  1. \(\pi(y|x)\) : 模型分配给该回复的概率。
  2. \(\pi_{sft}(y|x)\) : 原始基座模型分配的概率。
  3. \(r(x,y)\) : 来自奖励模型的实际奖励分数。
  4. \(\sigma_{sft}^r(x)\) : 归一化项 (该提示词下奖励的标准差) 。这至关重要,因为有些提示词的答案质量本身方差就很大,而有些则不然。归一化使得训练更加稳定。

直观可视化

为了从几何角度理解这个损失函数实际上在做什么,请看 图 2 :

Illustration of deltas

  • \(\Delta^{\pi}_{y1}\): 模型为回复 \(y_1\) “学到了”多少 (概率移动了多少) 。
  • \(\Delta^{\pi}_{y2}\): 模型为回复 \(y_2\) 学到了多少。
  • \(\Delta^r_{y1, y2}\): 两者之间实际的质量差异 (奖励差距) 。

该损失函数强制学习的差异 (\(\Delta^{\pi}_{y1} - \Delta^{\pi}_{y2}\)) 等于质量的差异 (\(\Delta^r_{y1, y2}\))。

如果 \(y_1\) 远好于 \(y_2\),模型必须大幅增加 \(y_1\) 相对于 \(y_2\) 的概率。如果它们的质量几乎相同,概率的移动也应该几乎相同。

训练流程

这在实践中看起来如何?流程 (图 3) 是一个标准的三个步骤,与其他对齐工作流非常相似,但在最后使用了特定的 VCB 损失。

The training pipeline of the proposed value-based calibration method.

  1. SFT 与奖励建模: 在好数据上训练标准的 SFT 模型。在偏好数据 (人类排名) 上训练奖励模型。
  2. 数据生成: 采用一个提示词 \(x\),使用 SFT 模型生成 \(n\) 个候选回复 (\(y_1...y_n\)),并用奖励模型对它们进行评分。
  3. 价值校准: 在这些已评分的回复上使用 VCB 损失函数训练最终策略。

最终的损失计算使用 LogSumExp 技巧 (由 \(\lambda\) 控制) 在生成的配对上进行迭代,以专注于“困难”样本——即模型当前的排名与奖励值偏差最大的配对。

Final Loss calculation

实验与结果

加入奖励幅度真的有帮助吗?研究人员在两个标准基准上测试了 VCB:

  1. Anthropic HH: 一个对话数据集 (有用且无害) 。
  2. Reddit TL;DR: 一个摘要数据集。

他们将 VCB 与重量级选手进行了比较: PPODPORRHFSLiCIPO

胜率 (GPT-4 评估)

他们使用 GPT-4 作为公正的裁判,将 VCB 的输出与基线进行比较。

GPT-4 evaluation results

图 4 中的结果非常鲜明:

  • Anthropic HH (左) : VCB 击败了所有基线。对抗 DPO (当前最先进的方法) ,VCB 在大多数情况下获胜或打平。
  • Reddit TL;DR (右) : 优势更加明显。VCB 碾压了 SFT 基线,并对 PPO 和 DPO 保持了稳固的领先优势。

奖励模型评估

如果目标是最大化奖励,那么根据奖励模型的分数,这些模型的表现如何?

Reward model evaluation results

表 2 显示了基于奖励模型分数的对抗基线的“胜率”。VCB 始终击败其他方法。例如,在 Reddit 数据集上,VCB 对抗 SFT 模型的胜率为 86.8%,而 DPO 在类似研究中通常较低。

对齐的“税”: KL 散度

在对齐中,总是存在权衡。你可以通过“破解”指标 (例如,重复奖励模型喜欢的词) 来获得更高的奖励,但这会破坏文本的流畅性。我们使用 KL 散度 来衡量这种偏差。你希望在低 KL 的情况下获得高奖励。

Expected reward vs KL divergence

图 5 绘制了奖励 (Y 轴) 与 KL 散度 (X 轴) 的关系。

  • 粉色 (PPO) : 生成高奖励,但付出了极高的 KL 代价 (最右侧) 。模型改变得太多了。
  • 绿色 (DPO) : 好一些,但仍然有显著的漂移。
  • 橙色 (VCB) : 这是最佳平衡点 (Sweet spot) 。VCB 实现了与 PPO/DPO 相当或更好的奖励,但与原始 SFT 模型保持得更近 (图的左侧) 。这意味着 VCB 在不破坏其自然语言能力的情况下有效地对齐了模型。

分布外泛化

最后,一个真正健壮的模型应该在它没见过的数据上也能工作。他们采用了在 Reddit 摘要上训练的模型,并在 CNN/DailyMail 新闻文章上进行了测试。

Out-of-distribution experimental results

表 5 所示,VCB 的泛化能力令人难以置信,在这个具有挑战性的分布外 (OOD) 设置中以 54.3% 的胜率击败了 DPO。这表明,通过学习价值而不仅仅是排名,模型对什么是“好”摘要有了更稳健的理解。

结论: 价值很重要

从 PPO 到 DPO 等方法的转变是 LLM 训练简化的一大飞跃。然而,这篇论文令人信服地指出,在我们追求简单性的过程中,我们把婴儿和洗澡水一起泼了出去: 我们丢掉了奖励值本身。

关键要点:

  1. 顺序不是一切: 知道 A > B 不如知道 A »> B 有用。
  2. 重参数化隐藏了价值: DPO/RRHF 的传统推导过程为了解决配分函数问题消除了奖励项。
  3. 差分法有效: VCB 使用基于差分的损失来移除配分函数,同时保留了绝对奖励信号。
  4. 更高的效率: VCB 实现了高对齐分数,同时与基座模型的偏差 (KL 散度) 更小。

随着我们继续微调更大的模型,效率和精度至关重要。VCB 提供了一种数学上可靠的方法,可以从我们的奖励模型中榨取更多信号,确保当 LLM 对齐时,它不仅知道什么更好——它还知道好多少