引言

我们正见证着大型语言模型 (LLMs) 的一次范式转变。我们正在从“聊天机器人” (回答单个查询的模型) 转向语言智能体 (Language Agents) 。 这些系统能够浏览网页购买产品、在模拟环境中进行科学实验,或管理复杂的工作流。

然而,训练这些智能体比训练标准聊天机器人要困难得多。聊天机器人只需要预测对下一个 token,而智能体必须采取一系列正确的动作来达成目标。如果一个智能体在 20 步流程的第 3 步犯了错,整个轨迹可能会失败。这引入了复合误差 (compounding errors) 的问题,即偏离最优路径的微小误差会像滚雪球一样导致彻底的失败。

为了使模型与人类意图对齐, 直接偏好优化 (Direct Preference Optimization, DPO) 最近已成为黄金标准。它允许我们使用“胜出”与“失败”的示例来训练模型,而无需复杂的强化学习 (RL) 循环。但这里有个问题: DPO 是为单轮交互 (赌博机设置) 在数学上推导出来的。当你试图将 DPO 强行应用于多轮智能体任务时,数学基础会崩溃,具体来说是关于概率归一化 (配分函数) 的部分。

在这篇文章中,我们将深入探讨论文 “Direct Multi-Turn Preference Optimization for Language Agents” 中提出的解决方案。研究人员介绍了 DMPO , 这是一种新颖的损失函数,它:

  1. 在严格的理论基础上将 DPO 扩展到了多轮设置。
  2. 消除了配分函数对当前状态的依赖。
  3. 引入了长度归一化来处理不同持续时间的轨迹。

DMPO 损失图解,它通过最大化偏好轨迹相对于非偏好轨迹的似然度来直接优化 RL 目标。

如图 1 所示,DMPO 接收指令和偏好数据 (一条“胜出”轨迹 vs 一条“失败”轨迹) ,并优化智能体以最大化胜出路径的似然度。读完这篇文章,你将理解使这一切成为可能的数学“技巧”,以及它为何对 AI 智能体的未来至关重要。

背景: 多轮智能体的挑战

要理解 DMPO,我们需要先了解当前智能体训练方法的局限性。

从聊天机器人到马尔可夫决策过程

在标准 LLM 设置中,模型根据提示 \(x\) 生成回复 \(y\)。在智能体设置中,问题被公式化为马尔可夫决策过程 (MDP)

  • 状态 (\(s_t\)) : 当前的上下文 (例如,智能体正在查看的网页,加上对话历史) 。
  • 动作 (\(a_t\)) : 智能体写的内容或做的事情 (例如,“点击 [立即购买]”或“搜索 [蓝色鞋子]”) 。
  • 转移: 环境对动作做出反应,给出新的状态 \(s_{t+1}\)。
  • 奖励: 智能体收到指示成功或失败的信号。

目标是最大化整个轨迹 \(\tau = (s_0, a_0, s_1, a_1, \dots)\) 的预期累积奖励。

行为克隆的失败

训练智能体最简单的方法是行为克隆 (Behavioral Cloning, BC) ——本质上就是监督微调 (SFT) 。你拿着专家轨迹告诉模型: “完全照着专家做的做。”

虽然易于实现,但 BC 会遭受协变量偏移 (covariate shift) 的困扰。如果训练好的智能体遇到了一个与它在训练数据中看到的略有不同的状态 (专家从未访问过的状态) ,它不知道如何恢复。

专家轨迹与在策略约束和状态-动作占用度量约束下学习到的轨迹的图解。

图 2 完美地说明了这一点。

  • 红色箭头 是专家路径。
  • 绿色箭头 代表使用标准策略约束 (如 BC) 训练的模型。在状态 \(S_2\),模型偏离了轨道 (到了 \(S_5\)) ,因为它只是盲目模仿策略,而不理解有效状态的分布。
  • 蓝色箭头 代表受 状态-动作占用度量 (SAOM) 约束的模型——这是 DMPO 中的一个核心概念,我们稍后会讨论。这种约束鼓励模型停留在专家访问过的状态分布内,如果智能体偏离,它能有效地将其拉回正轨。

DPO 的局限性

为了解决 BC 的问题,我们通常转向强化学习 (RL) 。然而,RL 极其不稳定且难以调优 (需要单独的 Critic 模型、奖励模型等) 。

直接偏好优化 (DPO) 改变了游戏规则,它展示了可以通过对偏好对 (\(y_{win}\) vs \(y_{lose}\)) 使用分类损失来直接优化 RL 目标,跳过显式的奖励建模阶段。

DPO 的推导依赖于一个涉及 Bradley-Terry (BT) 模型 的数学技巧。在单轮 DPO 中,回复 \(y_1\) 优于 \(y_2\) 的概率取决于这些回复的隐式奖励。推导过程方便地消除了一个称为配分函数 (partition function, \(Z\)) 的项,它起归一化作用。

问题在于: 在单轮设置中,\(Z\) 取决于提示 \(x\),对于 \(y_1\) 和 \(y_2\) 来说 \(x\) 是常数。因此,它被抵消了。 在多轮设置中,“提示”在每一步都在变化 (状态在变化) 。配分函数 \(Z(s)\) 变得依赖于特定的状态序列。由于胜出和失败的轨迹访问的是不同的状态,\(Z(s)\) 无法抵消

将标准 DPO 应用于多轮任务忽略了这一数学事实,导致性能次优。DMPO 旨在修复这一特定的数学缺陷。

核心方法: 推导 DMPO

这部分是论文的核心。我们将逐步讲解作者如何推导出一个看起来像 DPO 但适用于长多步轨迹的损失函数。

第 1 步: 重新思考约束

在标准 RL 优化中,我们试图最大化奖励,同时保持训练后的策略 \(\pi_{\theta}\) 接近参考策略 \(\pi_{ref}\) (通常是预训练模型) ,以防止“模式坍塌”或生成胡言乱语。这通常通过对策略施加 KL 散度约束来实现:

显示带有策略 KL 散度约束的 RL 目标的方程。

上面的方程表示: 最大化预期奖励 (第一项) 减去我们的策略与参考策略之间的距离 (第二项) 。

作者提出了一个转变。我们不应该约束策略 (\(\pi(a|s)\)) ,而应该约束状态-动作占用度量 (SAOM) , 记为 \(d(s, a)\)。

什么是 SAOM?

SAOM,\(d^\pi(s, a)\),表示在轨迹过程中智能体处于状态 \(s\) 并采取动作 \(a\) 的概率。这是对“智能体把时间花在哪里”的全局视角。

定义折现状态-动作占用度量的方程。

为什么要进行这种转换?在模仿学习中,约束 SAOM 通常对复合误差具有更强的鲁棒性 (如图 2 中的蓝色箭头所示) 。但对于本文而言,更重要的是, 它修复了数学问题。

当我们把约束从策略变为SAOM时,RL 目标变为:

显示带有 SAOM KL 散度约束的 RL 目标的方程。

这看起来很相似,但 KL 项内的变量现在是 \(d(s,a)\)。这个特定目标的最佳解具有闭式形式:

显示最佳 SAOM 解的方程。

关键洞察: 看上面的方程。\(Z\) 是配分函数 (归一化常数) 。因为 \(d(s,a)\) 是整个 MDP 上的全局度量,对其进行归一化会导致配分函数 \(Z\) 独立于当前状态 。 \(Z\) 变成了任务的一个全局常数。

这意味着我们可以重新排列方程,用最佳占用度量来表示奖励 \(r(s,a)\):

重新排列最佳 SAOM 以解出奖励 r(s,a) 的方程。

因为 \(Z\) 现在是一个常数,当我们比较两条轨迹时,\(Z\) 最终会相互抵消!

第 2 步: 多轮 Bradley-Terry 模型

现在我们有了奖励的定义,我们需要将其代入偏好模型。我们假设“胜出”轨迹 (\(\tau^w\)) 优于“失败”轨迹 (\(\tau^l\)) 的概率遵循基于其奖励之和的 Bradley-Terry 模型。

显示基于总奖励的胜负概率方程。

然而,这里有个陷阱。“胜出”轨迹可能有 5 步长,而“失败”轨迹可能有 20 步长。简单地将奖励相加会引入基于长度的偏差。配分函数 \(Z\) (来自上一步) 将在胜者一方被加上 \(T_w\) 次,在败者一方被加上 \(T_l\) 次。如果 \(T_w \neq T_l\),\(Z\) 将无法抵消。

为了解决这个问题,作者引入了长度归一化 (Length Normalization) 。 他们通过轨迹的有效长度对累积奖励进行归一化。

显示添加了长度归一化的 Bradley-Terry 模型的方程。

通过归一化总和,常数 \(Z\) 的贡献在两边变得平衡,从而允许在数学上将其消除。这为长度归一化提供了理论依据,而在以前这只是作为一种启发式方法使用。

第 3 步: 最终的 DMPO 损失

现在我们拥有了所有要素:

  1. 奖励函数: 通过最佳 SAOM 与参考 SAOM 的比率定义 (公式 11) 。
  2. 偏好模型: 经过长度归一化的 Bradley-Terry 模型 (公式 13) 。

我们将奖励函数代入偏好模型。我们希望最大化偏好轨迹的似然度。

这导致了涉及占用度量的中间损失函数:

显示使用占用度量的中间 DMPO 损失的方程。

这个方程在理论上是合理的,但在实践中很难应用。我们并不容易知道完整的占用度量 \(d^\pi(s,a)\),因为它取决于环境的转移动态 (\(P(s'|s,a)\)) ,这通常是未知的或复杂的 (比如网络浏览器的动态) 。

消除技巧: 占用度量 \(d^\pi\) 由策略 \(\pi\) 和环境转移 \(P\) 组成。 幸运的是,我们关注的是训练模型与参考模型之间的比率: \(\frac{d^{\pi_\theta}}{d^{\pi_{ref}}}\)。

由于无论执行哪种策略,环境动态 (\(P\)) 都是相同的,因此转移概率相互抵消了!

显示 SAOM 如何分解为策略和转移概率的方程。

当我们把这个分解代回损失函数时,未知的转移概率消失了,只剩下我们可以计算的策略项 \(\pi_\theta\) 和 \(\pi_{ref}\)。

这就产生了最终的 DMPO 损失函数 :

最终的 DMPO 损失方程。

解读公式

让我们仔细看看最终的方程 (上图中的公式 16) 。它类似于标准的 DPO 损失,但增加了一个关键部分: 项 \(\phi(t, T)\)。

  • 对数比 (Log-Ratio) : 我们将“奖励”表示为我们的策略与参考策略的对数比。如果我们的模型比参考模型更有可能采取胜出的动作,奖励就高。
  • 折扣函数 \(\phi(t, T)\): 这是新组件。它重新加权了长度为 \(T\) 的轨迹中每一步 \(t\) 的重要性。 \[ \phi(t,T) = \gamma^t \cdot \frac{1 - \gamma^{T-t}}{1 - \gamma^T} \] 这个函数意味着 DMPO 为序列中的不同步骤分配不同的权重。它不仅仅是平均;它考虑了折扣因子 \(\gamma\)。

有趣的性质:

  1. 早期步骤偏置: 梯度分析表明,DMPO 为轨迹早期步骤中的状态-动作对分配了更高的权重。这符合直觉: 如果你在第 1 步就犯了错,剩下的轨迹就注定失败。纠正早期动作至关重要。
  2. DPO 兼容性: 如果你设定 \(\gamma \to 0\) (本质上忽略未来) ,损失函数将退化回单轮 DPO 损失。

实验与结果

这种数学上的严谨性是否转化为更好的智能体?作者在三个复杂的基准测试上测试了 DMPO: WebShop (电子商务) 、ScienceWorld (科学实验) 和 ALFWorld (家庭任务) 。

他们在两种设置下将 DMPO 与标准 DPO 及其他基线进行了比较: 噪声 (Noisy)洁净 (Clean)

“噪声”设置 (鲁棒性测试)

在现实世界中,“失败”的轨迹并不总是糟糕透顶;它们可能只是稍微次优或带有噪声。为了模拟这一点,作者使用经过微调的模型生成“失败”轨迹,该模型偶尔会产生幻觉或重复动作。

表格比较了噪声设置下 DPO 和 DMPO 的结果。

表 2 显示了结果。

  • DMPO 胜出: 在几乎所有数据集 (WebShop, ScienceWorld, ALFWorld) 上,DMPO 都优于标准 DPO。
  • 原因? DPO 平等对待每一步,并且难以应对噪声轨迹的长度变化。DMPO 的长度归一化和折扣机制使其能够有效地过滤掉噪声。在 ScienceWorld (0.700 vs 0.708) 和 ALFWorld (0.883 vs 0.888) 的 Mistral-7B 实验中,性能差距尤为明显。

“洁净”设置 (性能上限)

在这里,“失败”轨迹是高质量的经过筛选的轨迹 (硬负例) 。这使我们能够看到该方法的最大潜力。

表格在洁净设置下将 DMPO 与 SFT、PPO 和 ETO 等基线进行比较。

表 3 将 DMPO 与众多基线进行了比较,包括 PPO (标准 RL) 、SFT (行为克隆) 和 ETO (另一种轨迹优化方法) 。

  • SOTA 性能: DMPO 取得了最高分。在 ScienceWorld 上,它达到了 0.724 , 大幅击败了 PPO (0.594)。这证实了直接优化偏好比 PPO 更稳定,而且使用正确的数学方法 (DMPO) 比单轮近似更好。
  • 优于 GPT-4: 在 WebShop 上,使用 DMPO 训练的 Llama-2-7B 模型 (0.701) 显著优于基础 GPT-4 (0.632)。

消融实验: 轨迹长度的影响

DMPO 的一个关键主张是它能更好地处理长度差异。作者通过按长度对轨迹进行分组验证了这一点。

柱状图显示轨迹长度对 DPO 与 DMPO 性能的影响。

图 4 非常能说明问题。

  • DPO (蓝色柱) : 随着轨迹长度增加 (从 50 到 200) ,DPO 的性能显著下降。配分函数误差累积,长度偏差伤害了模型。
  • DMPO (橙色柱) : 即使轨迹变长,性能也保持稳定。这在经验上验证了包含长度归一化的理论正确性。

消融实验: 折扣因子 \(\gamma\)

超参数 \(\gamma\) 控制模型在多大程度上关注未来奖励与即时动作。

折线图显示噪声和洁净设置下相对性能与 gamma 的关系。

图 3 揭示了一个有趣的动态:

  • 噪声设置 (红线) 中,较小 的 \(\gamma\) 通常更好。这实际上是告诉模型: “专注于眼前的下一步,遥远的未来噪声太大,不可信。”
  • 洁净设置 (橙线) 中,较大 的 \(\gamma\) 效果更好。模型可以信任长期的“失败”轨迹并学习战略规划。

结论

让大型语言模型适应智能体角色是 AI 最重要的前沿领域之一。虽然我们已经掌握了单轮聊天的艺术,但多步推理需要不同的工具。

论文 “Direct Multi-Turn Preference Optimization for Language Agents” 指出了将标准 DPO 应用于智能体任务时的一个微妙但关键的缺陷: 当轨迹的状态和长度发生变化时,配分函数无法抵消。

通过将优化约束从策略转移到 状态-动作占用度量 , DMPO 使配分函数成为全局常数。通过添加 长度归一化 , 它考虑到了 5 步成功与 20 步失败是不同的。

其结果是产生了一个在 MDP 理论上合理且在实验中实际上更优的损失函数。对于构建下一代智能体的学生和从业者来说,DMPO 提供了一个比 PPO 和标准 DPO 更稳健的替代方案,使智能体能够进行更长远的规划,更好地保持在正轨上,并处理现实世界的噪声。

关键要点:

  • 不要直接照搬: 为赌博机 (单步) 设计的算法 (如 DPO) 不能自动适用于 MDP (多步) 。
  • 数学很重要: DMPO 的推导表明,严格的数学基础 (修复 \(Z\) 项) 能带来切实的性能提升。
  • 归一化是关键: 在从智能体任务的偏好中学习时,处理轨迹长度差异至关重要。