Skip to content

AppWorld 训练相关

📅 发表于 2026/03/16
🔄 更新于 2026/03/16
👁️ -- 次访问
📝 0 字
0 分钟
Appworld-AgentRL
#GPVO
#Skill-Augmented GRPO
#AgentEvolver
#SALT
#ProST
#Leave-One-Out PPO

(2603) GROUP VERIFICATION-BASED POLICY OPTIMIZATION FOR INTERACTIVE CODING AGENTS

🌺 论文摘要

论文摘要

参考链接

核心方法

模型效果

重要结论

关键贡献

问题背景

​问题背景

问题背景

核心方法

📕核心方法

核心方法

实验设置

✍️实验设置

实验设置

基础模型

训练任务/数据

评测任务/数据

算法/策略

超参

关键结果

🍑关键结果

关键结果

模型效果

重要结论

关键贡献

未来方向

未来方向

未来方向

(2512) Reinforcement Learning for Self-Improving Agent with Skill Library

🌺 论文摘要

SAGE 论文摘要

参考链接

核心方法 (SAGE, Skill Augmented GRPO for Self-Evolution)

  • 技能库 + 持续学习 RL框架。

  • Sequential Rollout2任务链 训练,Task1生成技能Task2使用,实现持续学习

  • 结果奖励 + 技能生成/使用奖励。仅当技能被后续任务成功复用时才给予额外奖励

  • 训练流程Claude构造专家数据 -> SFT冷启动 -> SAGE RL训练

模型效果(Qwen2.5-32B, SFT+RL, AppWorld)

  • SAGE Test-Normal TGC 72SGC 60

  • 性能超过基线GRPO SGC 51.8GPT4o/Claude3.5 + ReactSGC 32.1SGC 41

  • SAGE比GRPO步数Tokens更少12.1 vs 16.4,1475 vs 3613

关键结论

  • 封装技能将复杂的API调用序列简化为单函数调用,提高准确率,大幅降低推理成本
    • SAGE 提升技能使用成功率,RL教会模型何时如何使用Skill
  • 必须做SFT+RL仅靠Prompt无法让开源模型用好技能库
    • 专家SFT数据提供格式先验RL进一步优化策略
  • 必须做SFT冷启动:(SGC指标) 直接RL 25.6SFT 41.7SFT+RL 60.7
  • AppWorld Query简单n-gram 检索SKill 效果就挺好
  • 3个任务链并未提升性能

关键贡献

  • 提出了 Tool-use AgentSAGE 框架,同场景序列学习 + Skill思想
  • 解决了 RL Agent 在新环境难以利用历史经验持续优化问题

问题背景(新场景难持续学习)

问题背景

持续学习+Skill Library 挑战

持续学习难题

  • 现有的RL Agent (如CodeAct, RLVR) 往往局限于特定场景
  • 新环境时,难通过积累经验持续自我提升

技能库 (Skill Library) 的挑战

  • 现有技能库方法主要依赖 LLM Prompting(如 Voyager, Agent Skill Induction)。
  • 缺点
    • 依赖基座模型能力:对指令遵循要求高,开源模型难以稳定生成/调用技能。
    • 格式不统一:通常将任务执行技能提炼分开,增加了上下文开销和推理延迟。
    • 缺乏针对性优化:没有专门针对生成高质量技能进行 RL 训练

Skill Library Agent

📕 核心方法

Skill Library Agent (技能库智能体)

统一的交互格式

  • 扩展自 CodeAct 框架。
  • Skill:模型在解决任务时,将常用的操作序列封装为 Python 函数 (Skill)。
  • 流程:定义函数 -> 存入库 -> 后续步骤/任务中调用函数
  • 优点:相比于事后总结技能,这种方式即时生效减少Token消耗

Skill-Augmented GRPO

SAGE (Skill Augmented GRPO for Self-Evolution)

1. Sequential Rollout

  • 利用 AppWorld 的 Scenario 结构(每个场景包含3个相似任务)。
  • 构建任务链 (q1,q2)
    • Agent 先解决 q1生成技能存入库 M
    • 使用更新后的技能库 M 去解决 q2
  • 目的:模拟真实场景下的持续学习,强制模型学习如何复用前一个任务的经验

2. Skill-Integrated Reward (技能集成奖励)

  • 奖励公式:R=Routcome+Rskill
  • Outcome 奖励: 任务成功1,失败0。
  • Skill 奖励:
    • 技能生成奖励:如果 q1 生成的技能帮助成功解决q2,则奖励 q1
    • 技能使用奖励:如果 q2 成功使用q1 的技能并完成任务,则奖励 q2
  • 惩罚:模型未生成代码 直接结束,给予 -1.0 惩罚

3. 训练策略

  • 算法:GRPO (Group Relative Policy Optimization)。
  • 优势计算:基于任务链期望回报不使用 KL 惩罚

实验设置

✍️ 实验设置

实验设置

基础模型

  • Qwen2.5-32B-Instruct

数据集

  • AppWorld: 模拟9个日常APP (Amazon, Gmail等) 的复杂操作环境。
  • 训练集: Train Set (难度 1-2),未使用难度3数据24个场景
  • 评测集: Test-Normal (168任务), Test-Challenge (417任务,含未见过的APP)。
  • SFT数据构造: 1.1k 轨迹数据。
    • Claude 3.5 + Skill Agent,拒绝采样,筛选任务成功+有效利用技能的数据。

训练策略

  • SFT 冷启动:学会技能定义调用格式
  • SAGE RL: 基于SFT模型做RL训练,采样 2个任务 组成链做Sequential Rollout

评估指标

  • 效果指标:TGC,SGC,
  • Efficiency: 平均交互步数 (Steps) 和 Token 消耗。

训练参数

  • 每一步:384个rollout。

关键结果(Qwen2.5-32B, SFT+RL, AppWorld)

🍑 关键结果

关键结果

模型效果(Qwen2.5-32B, SFT+RL, AppWorld)

  • SAGE Test-Normal TGC 72SGC 60

    • Base GRPOTGC 69.2SGC 51.8
    • GPT-4o +ReAct: SGC 32.1
    • Claude 3.5 Sonnet +ReAct :SGC 41.1
  • SAGE比GRPO步数Tokens更少12.1 vs 16.4,1475 vs 3613

关键结论

  • 封装技能将复杂的API调用序列简化为单函数调用,提高准确率,大幅降低推理成本
    • SAGE 提升技能使用成功率,RL教会模型何时如何使用Skill
  • 必须做SFT+RL仅靠Prompt无法让开源模型用好技能库
    • 专家SFT数据提供格式先验RL进一步优化策略
  • 必须做SFT冷启动:(SGC指标) 直接RL 25.6SFT 41.7SFT+RL 60.7
  • 3个任务链并未提升性能

Skill 检索方式对比

  • 理想情况-Same Scenario: SGC 60.7%
  • Query N-gram 检索: SGC 60.1% (几乎无损)
  • Embedding 检索:SGC 59.5%
  • 简单的N-gram检索在AppWorld 这种指令相似度高的场景下非常有效

未来方向

未来方向

未来方向

技能检索增强

  • 当前:依赖同一场景简单检索
  • 未来:探索功能语义专用检索器,以应对跨场景的技能复用

任务链长度扩展

  • 3个任务链并未提升性能,可能因为奖励分配不均梯度方差变大等原因。
  • 解决长序列信用分配问题

更通用的技能库

  • 目前技能针对AppWorld-API
  • 探索SAGE应用到更开放Code AgentWeb Agent 场景。

(2511) (通义) AgentEvolver

🌺 论文摘要

AgentEvolver 论文摘要

参考链接

核心方法

  • AgentEvolver 框架:无需人工数据,通过环境交互实现自主进化
  • 三大核心机制
    • Self-Questioning (自提问)好奇心驱动探索环境 -> 合成任务 -> 任务筛选,解决数据匮乏
    • Self-Navigating (自导航):构建经验池 -> 检索经验 -> 混合Rollout,解决探索效率低
    • Self-Attributing (自归因)LLM Judge进行步骤级归因(Good/Bad) -> 细粒度奖励,解决奖励稀疏
  • 基础设施Context Manager (支持滑动窗口、自管理上下文等模板)。

模型效果 (Qwen2.5-14B-Instruct)

  • AppWorld (Test-Normal): TGC (Task Goal Completion) avg@8 达 48.7% (Base 18.0%),best@8 达 69.4%
  • BFCL v3: avg@8 达 66.5% (Base 41.6%)。
  • 样本效率:在AppWorld上,达到Baseline 90%性能所需的训练步数减少了 55% (40步 vs 90步)。

重要结论

  • Self-Questioning 贡献最大,解决了"学什么"的问题。
  • Self-Attributing 提供了密集的中间奖励,显著提升了样本效率
  • 经验内化 (Implicit RL) 比单纯的 In-Context Learning 效果更好且上限更高。

关键贡献

  • 提出了一套完整的Agent自进化流程 (E -> Task -> Trajectory -> Policy),不再依赖昂贵的人工标注数据。

问题背景(AgentRL训练困境)

问题背景

现有Agent训练困境

成本高昂与效率低下

  • 依赖人工数据:现有Agent训练通常需要人工构建任务数据集(SFT数据)。
  • RL探索效率低:传统RL在复杂工具调用环境中依赖随机探索成功率低样本利用率差
  • 奖励稀疏:长程任务通常只有最终成败反馈,缺乏中间步骤信用分配

目标

  • 实现零人工干预的Agent能力提升。
  • 让Agent在未知环境自主发现任务积累经验自我优化

📕核心方法

自主任务生成 (Self-Questioning,学什么)

Self-Questioning: 学什么?

流程

  • 环境探索:基于环境Profile(实体、属性、操作)进行好奇心驱动的随机游走
  • 任务合成:将探索轨迹抽象为(Query, Reference Solution) Pair
  • 任务清洗
    • 实时过滤:词法去重。
    • 事后过滤:使用Agent重放验证可行性,剔除幻觉任务。

作用

  • 交互Sandbox(无任务环境)转化为Proxy Task Distribution(训练任务集)。
  • 提供了Reference Solution,用于后续的Reward计算。

经验辅助探索 (Self-Navigating,怎么探索)

Self-Navigating: 怎么探索?

经验获取 (Offline)

  • 从历史轨迹中提取成功失败的经验(What to do / What not to do)。
  • 构建经验池 (Experience Pool),形式为自然语言描述

经验混合 Rollout (Online)

  • 检索:根据当前Task检索Top-K经验
  • 混合策略η 比例的Rollout使用经验指导(Prompt中插入经验),其余为Vanilla Rollout
  • 目的:平衡利用(Exploitation,利用经验走捷径)与探索(Exploration,发现新路径)。

Mask 经验Loss

  • Mask 经验Token的Loss

细粒度归因奖励 (Self-Attributing,怎么学)

Self-Attributing: 怎么学?

双通道奖励设计

  • 结果奖励 (Rout):任务最终是否成功(0/1),进行标准化。
  • 过程归因奖励 (Rattr)
    • LLM Judge 对每一步做打分GOOD (+1) 或 BAD (-1)。
    • Trajectory-level 标准化,避免长轨迹方差过大

合成奖励

Rtotal=αR^attr+βR^out
  • 提供了Dense Reward显著加速收敛

实验设置

✍️实验设置

实验设置

基础模型

  • Policy: Qwen2.5-7B-Instruct, Qwen2.5-14B-Instruct
  • Judge: Qwen-Max / Qwen3-235B

评测基准

  • AppWorld: 复杂的API交互环境,指标为TGC (Task Goal Completion)。
  • BFCL v3: 工具调用基准。

算法配置

  • 训练算法:GRPO 变体。
  • 探索配置:Self-Questioning 生成任务;经验混合比例 η=0.5
  • 奖励权重:α (Attribution权重) 调优,最终选取 0.1~0.2

关键结果

🍑关键结果

关键结果

模型效果(AppWorld, Test-Normal TGC avg@8指标)

  • Qwen2.5-7B TGC 由 1.8 -> 32.4
  • Qwen2.5-14B TGC18.8 -> 48.7

模型效果(BFCL v3, avg@8指标)

  • Qwen2.5-7B 由 29.8 -> 57.9
  • Qwen2.5-14B 由 41.6 -> 66.5

消融实验 (14B)

  • Base: 18.0%
  • +Questioning (有任务了): 44.3% (提升最大,解决了冷启动)
  • +Navigating (有经验了): 45.4%
  • +Attributing (有细粒度奖励了): 48.7% (最终完整版)

样本效率

  • 引入Self-Attributing后,在 AppWorld 上仅需40步 即可达 90步 90%的性能
  • 证明了细粒度信用分配加速收敛的关键作用。

未来方向

未来方向

未来方向

上下文管理

  • 针对超长任务(百步),Context Manager 的不同模板(滑动窗口vs自主压缩)对性能影响大
  • 未来需探索更智能Memory管理机制

经验利用的权衡

  • 过度依赖检索经验:在推理时有效,但在训练时可能导致过拟合降低泛化探索能力
  • 需要平衡 GuidanceIntrinsic Reasoning

多Agent协同

  • 当前主要单Agent自我进化,未来可扩展到多角色(如Planner-Executor)的联合进化

(2510) SALT: Step-level Advantage Assignment for Long-horizon Agents via Trajectory Graph

🌺 论文摘要

SALT 论文摘要

参考链接

核心方法

  • SALT 框架:基于轨迹图构建细粒度优势分配机制。
  • 核心思想:将多个生成的轨迹合并为轨迹图 (Trajectory Graph)。
    • 合并 (Merge):不同轨迹中相同状态和动作的节点合并。
    • 分支 (Diverge):不同动作导致路径分叉。
  • 优势重估:基于图结构计算每个Step的优势,而非简单广播整个轨迹的最终回报。
    • 共享步骤(出现在成功和失败中)-> 中性优势
    • 关键步骤(仅出现在成功轨迹中)-> 高优势
  • 轻量级插件:无缝集成至 GRPO/RLOO,无需额外Reward Model无需人工标注

模型效果 (Qwen2.5-1.5B/7B/32B)

  • ALFWorld: Qwen2.5-1.5B 上,GRPO 成功率从 69.0% 提升至 80.5% (+11.5%)。
  • WebShop: Qwen2.5-1.5B 上,GRPO 成功率从 64.6% 提升至 66.2%
  • AppWorld: Qwen2.5-32B 上,GRPO+SALT 在 Test-Normal SGC 指标上达 20.9% (Base GRPO 17.0%)。

重要结论

  • 细粒度信贷分配:解决了长程任务中好坏动作纠缠导致梯度冲突的问题。
  • 计算开销极低:相比Rollout和Update,SALT引入的开销可忽略不计。
  • 无需Critic模型:适用于 Group-Based RL (如 GRPO) 的纯 Policy 优化场景。

关键贡献

  • 提出了基于结果稀疏奖励进行Step-level 优势估计的通用方法 SALT。

问题背景

问题背景

现有 Group-based RL 的局限性

长程任务挑战

  • LLM Agent 在 WebShop、ALFWorld 等长程任务中,需要执行多步操作才能获得最终反馈。
  • 主流方法(如 GRPO)通常依赖稀疏的最终奖励 (Outcome-based rewards)。

粗粒度信用分配 (Coarse-grained Credit Assignment)

  • GRPO 将整条轨迹的最终回报直接广播给轨迹中的每一个 Step
  • 噪声问题
    • 成功轨迹中可能包含冗余/错误步骤(被错误奖励)。
    • 失败轨迹中可能包含正确步骤(被错误惩罚)。
  • 后果:导致训练不稳定策略更新存在梯度冲突难以收敛到最优解

核心方法(Step-level Advantage Assignment)

📕核心方法

SALT: Step-level Advantage Assignment

1. 轨迹图构建 (Trajectory Graph Construction)

  • 输入:对同一个 Prompt 采样的 G 条轨迹 (Rollouts)。
  • 操作
    • 定义状态 st 为包含过去 h 步的历史窗口。
    • Merge:如果两条轨迹在某一步的 历史状态当前动作 相同,则将它们视为图中的同一个节点。
    • Diverge:动作不同则产生分支。
  • 结果:将独立的线性轨迹转化为有向无环图 (DAG),揭示了哪些步骤是跨轨迹共享的,哪些是独有的。

2. 细粒度优势计算 (Step-level Advantage)

  • 直觉
    • 共享节点 (Shared Nodes):出现在多条轨迹(包括成功和失败)中,说明该步骤对结果区分度低,应给予平均/中性优势
    • 独有节点 (Distinct Nodes):仅出现在高分轨迹中的步骤可能是关键成功因素,应给予高优势
  • 计算
    • 每个节点的价值 V(s,a) 估计为经过该节点的所有轨迹回报的平均值。
    • 使用该节点价值替代原有的轨迹级回报来计算优势函数。

3. 轻量化与兼容性

  • Plug-and-Play:插入在 Advantage Computation 和 Policy Update 之间。
  • 零额外参数:不需要训练 Value Model 或 Process Reward Model (PRM)。

实验设置

✍️实验设置

实验设置

基础模型

  • Qwen2.5-Instruct 系列:1.5B, 7B, 32B

训练/评测任务

  • ALFWorld:具身智能推理任务 (6种类型)。
  • WebShop:网页购物模拟,涉及搜索、选择属性等。
  • AppWorld:复杂的日常API交互任务 (高难度长程)。

算法/策略

  • Baseline: RLOO, GRPO
  • Ours: RLOO+SALT, GRPO+SALT

超参配置

  • Group Size: 默认为 8 (消融实验测试了 4-16)。
  • State History (h): 默认为 3 (用于判断节点合并的上下文窗口)。
  • Rollout: Temperature=1.0。

关键结果

🍑关键结果

关键结果

ALFWorld 显著提升

  • Qwen2.5-1.5B:
    • GRPO: 69.0% -> GRPO+SALT: 80.5%
    • RLOO: 68.4% -> RLOO+SALT: 76.6%
  • Qwen2.5-7B:
    • GRPO: 83.6% -> GRPO+SALT: 86.1%
  • 结论:在小模型上提升尤为显著,帮助小模型探索并锁定正确路径。

AppWorld 高难度任务突破

  • 使用 Qwen2.5-32B
  • Test-Normal (SGC): GRPO (17.0%) -> GRPO+SALT (20.9%)。
  • Test-Challenge (SGC): 在难度最高的D2子集上,成功率翻倍 (8.0% -> 18.6%)。
  • 结论:在需要极长推理链的任务中,SALT 能够有效识别关键步骤。

效率分析

  • 计算开销:在一次迭代中,Rollout 耗时 240s,SALT 仅耗时 0.15s。相比带来的性能提升,开销几乎可以忽略不计。

消融实验

  • Group Size:Group Size 越大 (如 16),轨迹图连接越丰富,SALT 带来的相对提升越大。
  • History Lengthh=3 效果最佳。太短(h=1)导致错误合并,太长(h=5)导致图退化为独立轨迹。

未来方向

未来方向

未来方向

局限性

  • 依赖 Group 多样性:如果采样的轨迹全部相同或完全不重叠,SALT 退化为标准 GRPO。需要保证一定的采样多样性 (Temperature > 0)。

潜在应用

  • 代码生成与数学推理:虽然本文关注 Agent 任务,但该思想同样适用于 Code/Math 的 Reasoning 过程优化,尤其是对于中间步骤的信贷分配。
  • 结合 PRM:SALT 是基于统计的无监督方法,未来可与显式的 Process Reward Model 结合,进一步校准优势估计。

(2509) ProST: Progressive Sub-task Training for Pareto-Optimal Multi-agent Systems Using Small Language Models

🌺 论文摘要

ProST: Progressive Sub-task Training 摘要

参考链接

核心方法

  • ProST: 多智能体课程学习微调策略,渐进式引入子任务。
  • 多智能体Orchestrator(规划)、Executor(执行/写代码)、Critic(反馈)。

模型效果(Qwen2.5-14B + ProSFT + 多角色)

  • Test-Normal TGC 达42.3SGC达26.8,Test-Challenge TGC 14.1, SGC 5.8

重要结论

  • ProST > SFT > Base:所有模型尺寸,ProST训练多智能体优于标准SFT

  • 14B-MA(ProST) 效果优于 32B-SA(Base),小模型组合可胜单体大模型,推理FLOPs更低。

  • 资源给规划者比较好:规划-执行-评估,14B-7B-7B 显著优于 7B-14B-14B

关键贡献

  • 个人感觉不是很ok,效果太差了。

问题背景(小模型在复杂场景效果不好)

问题背景

问题背景

小模型做复杂任务存在挑战

  • AppWorld 复杂+长交互:需要规划编码API调用错误恢复
  • GPT4效果好成本高。SLM小模型成本低,但效果不好

现有SFT存在局限性

  • 长轨迹学习困难:直接在完整轨迹上SFT难学会中间的子任务,易灾难性遗忘逻辑断层
  • 角色专业化不足:虽拆为多智能体,但单SLM难同时掌握角色细微差别长程依赖

效率与效果的权衡

  • 业界缺乏对多智能体计算成本任务完成率之间权衡的系统研究。

📕核心方法

ProST-渐进式子任务训练

ProST 训练策略

核心思想

  • 借鉴课程学习,让模型先学简单的/局部的再学复杂的/全局的
  • 训练早期,只暴露部分子任务
  • 随Epoch增加,逐步扩展输入上下文,直到覆盖完整轨迹。

训练流程

  • 数据构建:包含 N 个子任务的轨迹。
  • 渐进式掩码 (Progressive Masking)
    • Epoch 0:仅训练特定的子任务子集(例如子任务 2, 3),屏蔽其他
    • Epoch i:引入更多子任务(例如从子任务 2 扩展到 1-3)。
    • Final Epoch:训练包含所有子任务的完整轨迹
  • 优势
    • 避免模型在长序列中迷失。
    • 强制模型优先掌握核心逻辑,再处理长依赖。

Mask错误动作的Loss

  • 仅计算正确步骤自我修正成功步骤的Loss。
  • Mask错误步骤的Loss,避免模型学习错误的推理路径。
  • SWE-Lego Mask错误动作

三角色架构与数据合成

架构设计

角色分工

  • Orchestrator (规划者)
    • 将用户Query拆解为子任务序列(ReAct模式)。
    • 处理执行失败动态调整计划
  • Executor (执行者)
    • 接收子任务编写Python代码调用AppWorld API。
    • 包含自我纠错循环
  • Critic (批评者)
    • Executor反复失败时介入,审查代码环境反馈,提供自然语言建议

数据合成Pipeline

  • 源数据:用 Llama-3.3-70B 生成高质量的单智能体轨迹(Rejection Sampling)。
  • 转换:用 Claude-3.7-Sonnet单智能体轨迹重写为多智能体训练数据
  • 验证:所有转换后的轨迹都在AppWorld环境中实际执行验证,确保正确性。

实验设置

✍️实验设置

实验设置

基础模型

  • Qwen-2.5-Coder (7B, 14B, 32B) —— 核心实验模型(代码能力强)。
  • Llama-3.1-8B, Phi-4 —— 验证泛化性(推理能力强)。

基准测试 (AppWorld)

  • 模拟9个日常APP(Amazon, Spotify, Venmo等),457个API。
  • Test-Normal (域内测试) 和 Test-Challenge (域外测试/OOD)。

评估指标

  • 效果指标:TGC (任务目标完成率), SGC (场景目标完成率)。
  • 效率指标:Inference FLOPs,推理时的浮点运算次数,用于衡量真实的计算开销

对比基线

  • Single Agent (SA): Base, SFT
  • Multi-Agent (MA): Base, SFT, ProST(Ours)

关键结果(Qwen2.5-14B+ProSFT+多角色)

🍑关键结果

关键结果

模型效果(Qwen2.5-14B + ProSFT + 多角色)

  • Test-Normal TGC 达42.3SGC达26.8,Test-Challenge TGC 14.1, SGC 5.8

关键结论

  • ProST > SFT > Base:所有模型尺寸,ProST训练多智能体优于标准SFT

  • 14B-MA(ProST) 效果优于 32B-SA(Base),小模型组合可胜单体大模型,推理FLOPs更低。

  • 资源给规划者比较好:规划-执行-评估,14B-7B-7B 显著优于 7B-14B-14B

未来方向

未来方向

未来方向

局限性

  • 显存开销:虽然FLOPs(时间成本)降低了,但同时加载3个模型对GPU显存要求很高。
  • 数据依赖严重依赖闭源模型(Claude 3.7)进行数据的多智能体转换

未来探索

  • OOD 泛化:Test-Challenget提升少,如何让Agent适应未见API是关键。
  • 动态资源分配根据任务难度动态选择不同大小的模型角色。
  • 更通用的课程:其他长周期Agent任务(如SWE-bench)上的ProST应用

(2502) Leave-One-Out PPO

🌺 论文摘要

LOOP 论文摘要

参考链接

核心方法

  • LOOP: 留一法算优势 + 去掉std + PPO Off-Policy + PPO Clip + Token级建模
  • AppWorld 训练数据筛选去掉难度3场景再去掉6场景

模型效果(Qwen2.5-32B-Inst, AppWorld)

  • TestNormal:TGC 达71.3分,SGC 达53.6分
  • TestChallenge:TGC 达45.7分,SGC达 26.6分。
  • 整体超过其他方法

重要结论

  • per-token > per-turn > per-traj71.3 > 64.1 > 53.3
  • 组内std归一化降低9pt:71.3 -> 61.9
  • 移除KL惩罚有效果:Test-C TGC 从 22.4 -> 26.6
  • Loop 优于 GRPO71.3 > 58。LOOP 非归一化 优于 GRPO 归一化 ?
  • Loop 优于 PPO71.3 > 50.8。Critic 不好训,易引入误差
  • 出现一些涌现行为。

关键贡献

  • AppWorld SOTA
  • 详细的各方法对比实验

问题背景

❓问题背景

LLM Agent真实任务效果不行

Agent真实效果不行 + RLOO存在缺点

LLM Agent处理真实任务效果不行

  • AppWorld
    • 单任务:agent和python环境可能交互40轮32k长度
    • 特点:
      • stateful多领域多app环境API交互
      • 跨应用、长序列规划、动态适应、上下文长。
  • 现有模型效果不好
    • 开源Qwen2.5仅40%,GPT4o 仅50%成功率。

RLOO 缺点

  • 同策略算法样本效率低
  • Trajetory-Level 建模,但Token-Level 通常更稳定一些。

基础RL算法概览及其问题

RL建模llm token-level MDP

主流RL算法

1. REINFORCE算法

2. RLOO 算法

  • 参考笔记:RLOO

  • REINFORCE+留一法计算优势,无需Critic和Ref模型。

3. 本文LOOP 算法

  • RLOO + 异策略,具体引入PPO信任域,提升样本效率

4. GRPO 算法

5. PPO 算法

  • 参考笔记:PPO, PPO改进系列
  • 标准PPO,复杂有点贵
    • 异策略算法提升样本效率
    • 重要性采样修正权重;
    • Clip信任域 限制更新幅度,保证稳定。

6. 其他非RL

  • 迭代iSFT,通过不断筛选好样本,来微调模型。

PPO序列和Token两种建模Loss计算

PPO建模和Loss计算 (序列+token)

PPO 建模方式

  • Per-轨迹:把整个序列看成1个动作,计算1个总的重要性权重GSPO 序列级IS权重

    θJGSPO(θ)=ExD,{yi}i=1Gπθold(|x)[1Gi=1Gsi(θ)ISA^iθlogsi(θ)]
  • Per-Token:把每个词看成1个动作,为每个词 单独计算重要性权重更稳定、平滑

    θJGRPO(θ)=ExD,{yi}i=1Gπθold(|x)[1Gi=1G1|yi|t=1|yi|πθ(yi,t|x,yi,<t)πθold(yi,t|x,yi,<t)token重要性权重A^i,ttoken优势θlogπθ(yi,t|x,yi,<t)token梯度]

PPO Loss 计算方式

Lppo(θ)=1Gi=1G1|oi|t=1|ot|序列内平均min(πθ(oi,tq,oi,<t)πθold(oi,tq,oi,<t)A^i,t,clip(πθ(oi,tq,oi,<t)πθold(oi,tq,oi,<t),1ϵ,1+ϵ)A^i,t)LDAPO(θ)=1i=1G|oi|i=1Gt=1|ot|所有Token直接做平均min(πθ(oi,tq,oi,<t)πθold(oi,tq,oi,<t)A^i,t,clip(πθ(oi,tq,oi,<t)πθold(oi,tq,oi,<t),1ϵ,1+ϵ)A^i,t)

PPO CLIP 粒度

  • per-trajectory1条轨迹计算1个IS权重

    • 缺点:非常不稳定。
  • per-turn:为每个回合计算1个IS权重

    • 优点:
  • per-token:为每个token单独计算1个IS权重

    • 优点:最精细。

AppWorld 场景

相关场景
  • 相关:text-games(2015,2023), webshop(2022), 导航(2022), 手机控制(2024)
  • WebShop:
    • Yao(2022):REINFORCE + 可学习baseline
    • ArCHer(2024):结合off-policy + on-policy 训练
    • AgentQ(2024):DPO + Tree搜索
    • 场景:买东西1个app8个动作,每回合最多1个参数
AppWorld 场景

场景和任务

  • 多样化复杂逻辑:邮件、支付、音乐、购物、打电话、文件系统等。
  • 9个真实app457个API调用,单API最多17个参数
  • 250个场景每个场景3个任务,总计750个任务
  • 任务难度分1-3档

训练评测数据量

  • 训练35场景105个任务。Level 1-2-3:36, 36, 18

  • Dev20场景60任务。Level 1-2-3:30, 24, 3

    • Level1-36条,Level2-36条,Level3-18条
  • Test-Normal56场景168任务。Level 1-2-3:57, 48, 63

  • Test-Challenge139场景417任务复杂新APP。Level 1-2-3:72, 150, 195

评测维度

  • 每个任务有1套单元测试3个维度
    • 事情已完成:任务所要求的环境状态成功执行
    • 无副作用:没有对环境或APP造成额外的修改
    • 答案正确:agent最终答案和标准答案一致

评估指标

  • TGC:Task-Goal-Completion,任务目标完成率
  • SGC:Scenario-Goal-Completion,场景目标完成率
    • 1场景有3任务,3个任务全部完成,才算场景完成

部分可观测马尔可夫决策过程

POMDP

状态

  • 初始隐藏状态:Python REPL状态、模拟数据库等,智能体看不见

  • 上下文user prompt

  • 所有token序列大模型生成token + 环境返回token,是agent可观察的历史信息。

    [s0,c,x1:t]

动作

  • Agent生成下一个tokenpθ(c,x1:t)

状态转移

  • 状态追加 LLM生成token xt+1 + 环境返回tokenxt+2:t+1+k[s0,c,x1:t][s0,c,x1:t+1+k]

轨迹概率

  • Token 概率乘积
  • 指示函数I:轨迹和初始状态一致,则为1;否则为0。
pθ(xs0,c)=I(s0,c)t=1Tpθ(xtc,x1:t1)

优化目标

  • 最大化累积期望奖励Lθ(s0,c)=Expθ(s0,c)[R(s0,c,x)]

Leave-One-Out PPO 算法

📕核心方法

使用 PPO Off-Policy和Clip策略

PPO Off-Policy 提高样本效率

  • 多轮次训练
    • Rollout数据使用 ppo_epochs轮,训练多轮。
    • 使用重要性权重来做分布修正
    • 如果ppo_epochs=1,则LOOP退化成RLOO
  • 小批量学习
    • train_batch分成多个mini-batch,进行多次梯度更新
ri=πθ(xs0,c)πθold(xs0,c)=t=1Tπθ(xtc,x<t)πθold(xtc,x<t)

PPO Clip 保证更新稳定

  • PPO-Clip 限制更新策略幅度 保证稳定
使用留一法做优势估计
  • 同1个prompt,采样k次,使用其余k-1次的平均值作为基线

  • 参考笔记:RLOO 留一法

    A(x,yi)=R(x,yi)1K1j=1,jiKR(x,yj)A(x,yi)=KK1(R(x,yi)1Kj=1KR(x,yj))
A(x,yi)R(x,yi)mean(R)
LOOP 不除以标准差

标准差

  • 不稳定的任务上,标准差大
  • 除以标准差,会削弱或抑制那些偶然成功的高奖励学习信号

差异

  • GRPO:除以标准差
  • LOOP:不除以标准差

LOOP 实验

  • LOOP实验不除以标准差好,能更有效地从不稳定的、探索性的行为中学习

相关算法

实验设置

✍️实验设置

RL超参

奖励函数

  • [0, 1],单元测试通过比例no sparse

训练数据

  • 从原始Train中,筛选出24场景共72任务。
  • 筛选逻辑
    • 先去掉难度3场景,只用难度1和2(35 -> 30)。
      • 使用难度3会降低性能。
    • 去掉6个场景:30 -> 24。

其他超参

  • 最大轮次:训练40轮测试50轮
  • Rollout:6次。
  • Batch:40个任务、每次学习40*6=240条序列
  • 固定学习率:5e-5
  • Prompt:ReACT Prompt
  • 长度:LLM单次 1500 token;环境单次:3000 token
  • 训练50epoch,取最好的checkpoint。
实验设置

基础模型

  • Qwen2.5-32B

训练任务/数据

  • AppWorld筛选后的训练数据24个场景,共72个任务

评测任务/数据

  • AppWorld Test-normal, Test-Challenge

算法/策略

  • LOOPLORA训练

超参

  • 2*8H100,训练42小时。
  • 其他超参见上文

关键结果(Qwen2.5-32B-Instruct)

🍑关键结果

关键结果

模型效果(Qwen2.5-32B-Inst, AppWorld)

  • TestNormal:TGC 达71.3分,SGC 达53.6分
  • TestChallenge:TGC 达45.7分,SGC达 26.6分。
  • 整体均超过其他方法。

重要结论

  • per-token > per-turn > per-traj71.3 > 64.1 > 53.3
  • 组内std归一化降低9pt:71.3 -> 61.9
  • 移除KL惩罚有效果:Test-C TGC 从 22.4 -> 26.6
  • Loop 优于 GRPO71.3 > 58。LOOP 非归一化 优于 GRPO 归一化 ?
  • Loop 优于 PPO71.3 > 50.8。Critic 不好训,易引入误差
  • 出现一些涌现行为。

关键贡献

  • SOTA
涌现出优秀行为
  • 莽撞到谨慎:不必要代码执行减少6倍,避免了次优loop
  • 想当然到查文档:调用特定APP接口时,API文档查询增加60%
  • 瞎猜到求证:毫无根据的假设减少了30倍,虚构密码等重要位置减少了6倍
  • 脆弱到坚韧:失败后放弃次数减少3倍

未来方向

⛳未来方向

未来方向
  • 性能还不够好,提升成功率。目前仅70%完成。
  • 环境太理想化,需提升真实复杂情况
    • 不确定性、暂时性故障、模棱两可的任务、对抗性场景、与用户主动交互、与真人其他agent交互等等。
  • 多模态能力:看懂网页截图、图表等。
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2026