25年2月来自 Apple 的论文“Reinforcement Learning for Long-Horizon Interactive LLM Agents”。
交互式数字智体 (IDA) 利用状态数字环境的 API 来执行任务以响应用户请求。虽然由指令调整的大语言模型 (LLM) 驱动 IDA 可以对多步交换中接口调用的反馈做出反应,但它们尚未在各自的数字环境中进行训练。之前的方法在 AppWorld 等复杂基准测试中完成的任务不到一半。本文提出一种强化学习 (RL) 方法,可直接在目标环境中训练 IDA。这种训练形式化为部分可观察的马尔可夫决策过程,并派生出 LOOP,这是一种数据和内存高效的近端策略优化(PPO)变型。LOOP 不使用价值网络,并在内存中仅维护底层 LLM 的一个副本,使其实现简单且内存效率与微调单个 LLM 一样高。在 AppWorld 环境中使用 LOOP 训练的 320 亿参数智体,比规模大得多的 OpenAI o1 智体高出 9 个百分点(相对 15%)。
考虑一个交互式数字智体 (IDA) 面临如图所示的任务。该任务跨越多个软件应用程序,需要关于人类生活和语言的常识性知识。成功完成需要一系列信息收集和状态改变动作,以及根据在此过程中获得的信息进行潜在的重规划。最好的开放权重模型 (Yang,2024) 在这种任务中的成功率低于 40%,而顶级推理模型 (OpenAI,2024) 的成功率仅为 AppWorld 基准 (Trivedi,2024) 测量的一半多一点。这并不奇怪。解决一项任务可能需要智体和 Python 读取-估值-打印循环 (REPL) 之间最多 40 次交互,使用最多 32K 个tokens。AppWorld 环境状态包含最多 30M 个文本tokens,因此必须周到地管理上下文。
LLM 智体。经过预训练、指令调整的 LLM 已证明能够通过调用结构化 API 与外部软件环境交互,既可用于信息检索(Nakano,2021;Schick,2023),也可用于在状态外部环境中执行动作(Yao,2020;2022)。为了提高该领域的性能,进一步的研究引入结合推理、执行和反思步骤的结构化工作流(Yao,2023;Shinn,2024;Kim,2024),以及与代码解释器的交互(Wang,2024;Yang,2023)。其他人则对智体轨迹数据集应用监督微调 (Chen,2023;Qin,2024;Mitra,2024)。
LLM 的强化学习。RL 最初用于在从人类反馈 (RLHF) 的强化学习环境中训练 LLM (Ziegler,2019;Stiennon,2020;Ouyang,2022)。这些工作使用 PPO (Schulman,2017) 基于从人类偏好推断出的奖励模型来训练 LLM 策略。带有 PPO 的 RLHF 在训练期间使用最多四个独立的 LLM:奖励模型、训练策略、参考策略和批评模型。Ahmadian (2024) 表明,更简单的 REINFORCE Leave-One-Out (RLOO) 算法 (Kool et al., 2019) 具有竞争力。RLOO 使用在线策略更新,避免对参考 LLM 和批评 LLM 的需求,并使用来自同一查询的多个展开进行基于采样的优势估计,而不是学习的批评模型。
PPO 及其变型已用于训练 LLM 使用程序奖励函数执行推理和静态代码生成。GRPO (Shao et al., 2024; DeepSeek-AI, 2025) 用从同一查询的样本集合计算的基线,替换 PPO 中的批评模型。 VinePPO(Kazemnejad,2024)通过从训练展开的每个推理步分支出来的展开估计每步优势。用于训练推理 LLM 的其他 RL 算法,偏离策略梯度框架,在生成滤波展开的数据集和对这些数据集的监督训练之间交替(Singh,2024;Havrilla,2024;Yuan,2023)。
LLM 智体的强化学习。 RL 已用于训练基于文本游戏中的状态多轮智体(Narasimhan,2015;Yao,2020;Carta,2023)、网络购物和导航环境(Yao,2022)、移动设备控制(Bai,2024)和具身环境(Zhai,2024)。在 WebShop 中使用 RL 训练 LLM 策略的几个工作:Yao (2022)将 REINFORCE 用于学习的值基线,ArCHer(Zhou & Zanette,2024)使用结合离线策略和在线策略训练的分层方法,而 AgentQ(Putta,2024)将树搜索与直接策略优化 (DPO) 相结合。
本文证明强化学习 (RL) 是训练长范围交互式 LLM 智体的有效方法。其方法不需要昂贵的真实动作序列或大量的训练场景数据集。
自回归语言模型 (LM) p_θ 将token序列 x_1:t 映射到下一个token的概率分布 p_θ(x_t+1|x_1:t)。使用自回归 LM 进行生成时,通过对下一个 token x_t+1 ∼ p_θ(·|x_1:t) 进行采样,直到遇到停止 token ⊥。
语言生成可以看作是一个马尔可夫决策过程 (MDP)。MDP 的状态 [c, x_1:t] 是上下文 c 和迄今为止的生成 x_1:t。动作产生下一个 token x_t+1 ∼ p_θ(·|c, x_1:t),通过附加 token [c, x_1:t, x_t+1] 过渡到新状态。
MDP 优化的目标为
REINFORCE (Williams, 1992) 对上述目标 (1) 进行了基于采样的梯度估计:
其中 A(c, x) 是降低梯度估计方差的优势估计(Schulman,2016)。REINFORCE Leave-One-Out (RLOO) 生成 K 个独立样本 x_1,…,x_K ∼ p_θ(·|c),并使用所有其他样本来计算当前回报的一个基线,即
该目标的等效形式通过减去平均回报基线来估计优势(Kool,2019):
使用 LLM 的人工反馈强化学习 (RLHF) 通常使用 PPO,其设计目的是在每次训练迭代中执行多次梯度更新。PPO 是一种策略梯度算法,允许更新的策略在某个信任区域内偏离采样策略 (Schulman,2017)。
它依赖于 MDP 目标的重要性加权估计:
对于 MDP,PPO 源自策略改进理论(Kakade & Langford, 2002)使用逐动作的重要性权重:
用于交互式数字智体的 POMDP
IDA 与读取-求值-打印循环 (REPL) 环境交互,该环境使用与预定义 API 的变量绑定进行初始化。给定任务指令,智体与环境交互以完成任务,并在适用时调用 API 函数。每次交互都包括智体在环境中执行代码块并接收响应字符串。交互持续到智体指示完成(例如通过调用“complete task()”)。重要的是,环境是有状态的。在 AppWorld 中,环境的状态是 (i) 可以通过各种 API 函数查询或修改的关系数据库(例如发送消息或将文本附加到 SimpleNote note)和 (ii) REPL 本身的状态(例如智体定义的 Python 全局变量)。
将 IDA 任务制定为 POMDP。 POMDP 的状态 [s_0 , c, x_1:t ] 是环境 s_0(例如 Python REPL 和数据库)的初始状态、任务上下文 c(即用户提示)以及迄今为止的生成 x_1:t。动作会产生下一个 token x_t+1 ∼ p_θ (·|c, x_1:t )。大多数转换再次简单地附加一个token [s_0, c, x_1:t] → [s_0, c, x_1:t+1]。然而,某些转换(当智体发出停止 token 时)会触发环境执行代码。这些转换将生成的 token x_t+1 和 token 化的环境响应 x_t+2:t+1+k 附加到状态 [s_0, c, x_1:t+1+k]。在连续回合中,LLM 会观察到生成 x_1:t+1 和环境响应 x_t+2:t+1+k。如图描述这个过程。
令 a(x) ⊆ {1,…,T} 表示轨迹 x 中由 LLM 发出的 token x_t 子集(相对于环境响应的一部分)。令 I(s_0, x) ∈ {0, 1} 表示为初始状态 s_0 具有一致 API 响应的轨迹指标。轨迹上的分布为
智体 p_θ 的目标是最大化其预期回报:
当展开从 ρ_ψ 中采样时(即使用不同的 LLM p_ψ),PPO 的重要性权重降低到
Token-级 PPO 梯度简化为 LLM 生成的 token x_t 的总和。
Leave-one-out 近端策略优化
LOOP 将 PPO 与 Leave-one-out 优势估计相结合(Kool,2019)。该算法分为两个阶段:展开收集和策略更新。在展开收集期间,从数据集 D 中的每个初始状态和上下文对 (s_0, c) 的 POMDP 中抽取 K 个样本。然后,使用 Leave-one-out 估计器直接计算每个部署的优势。在更新期间,会迭代 N_epoch 个 epochs 所有收集的展开。每个 epoch 都会迭代随机小批量,以使用 PPO 目标更新策略。随机打乱轨迹,而不考虑它们的初始状态-上下文对 (s_0, c)。该过程总结在如下算法中:
带有 token、轨迹和轮回的 PPO。在上述算法的第 9 行中,尝试每个token、每个轨迹或每个轮回的重要性权重(如上图所示)。
LOOP 作为 REINFORCE Leave-One-Out(Ahmadian,2024)。如果 LOOP 纯粹按策略运行(N_epoch = 1,没有小批量),则该算法简化为 REINFORCE Leave-One-Out (RLOO),因为 PPO 中的策略更新简化为 REINFORCE。
LOOP 作为 GRPO(Shao,2024)。LOOP 和 GRPO 主要在优势估计方面有所不同。GRPO 使用 Leave-One-Out 估计,由回报的标准差归一化。这不成比例地有利于低-标准-差轨迹,LLM 可从中获得一致的回报。通过实验,放弃这种标准化是有益的。
AppWorld 基准测试(Trivedi,2024)代表用户测试 IDA 与九个模拟消费者应用程序(包括电子邮件、支付、音乐、购物、电话和文件系统)的 API 交互能力。智体与状态 Python 解释器交互,以完成不同难度的任务(难度等级 1 到 3)。每个任务包含一系列单元测试,以确保 (1) 成功完成对环境状态的请求更改,(2) 环境或应用程序状态没有多余的更改,以及 (3) 智体生成的最终答案与基本事实相符(如适用)。
AppWorld 总共包含 250 个任务模板或场景,每个场景有 3 个任务变型,总共 750 个任务。任务分为训练(35 个场景,105 个任务)、开发(20 个场景,60 个任务)、测试-正常(Test-N)(56 个场景,168 个任务)和测试-挑战(Test-C)(139 个场景,417 个任务)。Test-C 的任务需要更复杂的交互序列,并涉及训练期间未见过的新应用程序。计算任务目标完成率 (TGC) 和场景目标完成率 (SGC) 指标,即每个任务和每个场景的成功率。只有当所有相应任务都成功时,场景才被视为成功。
使用 Qwen2.5-32B-Instruct (Yang et al., 2024) 作为基础模型,并使用 LoRA (Hu et al., 2022) 进行微调。在所有难度为 1 和 2 的训练场景(30 个场景中的 24 个,列于附录 D.1)上进行训练,并将智体在训练期间的交互次数限制为 40 次,在评估期间的交互次数限制为 50 次。对每个任务使用 K = 6 次部署,奖励 R(s_0, c, x) ∈ [0, 1],对应于该任务通过的单元测试比例。