(2506) ARPO
问题背景
❓问题背景
核心方法
📕核心方法
算法实验
实验设置
✍️实验设置
关键结果
🍑关键结果
未来方向
⛳未来方向
(2502) Leave-One-Out PPO
- Reinforcement Learning for Long-Horizon Interactive LLM Agents, LOOP 知乎, ml-loop
- 算法:
留一法计算优势+去掉std+PPO Off-Policy+PPO Clip+ Token级建模 。 - APPWorld上达到好效果,
TestN-TGC 71.3 达SOTA- 数据上:
去掉难度3数据、筛选留下仅24场景,Rollout6次。
- 数据上:
问题背景
❓问题背景
LLM Agent真实任务效果不行
LLM Agent处理真实任务效果不行
- AppWorld
- 单任务:agent和
python环境可能交互40轮、32k长度。 - 特点:
stateful、多领域、多app、环境API交互- 跨应用、长序列规划、动态适应、上下文长。
- 单任务:agent和
现有模型效果不好- 开源Qwen2.5仅40%,GPT4o 仅50%成功率。
RLOO 缺点
同策略算法,样本效率低。- Trajetory-Level 建模,但Token-Level 通常更稳定一些。
基础RL算法相关问题
RL建模
主流算法
- 策略梯度,优势决定更新方向。优势大于0,鼓励;优势小于0,抑制。
PPO:标准PPO,复杂有点贵。
异策略算法提升样本效率,重要性采样修正权重;Clip信任域 限制更新幅度,保证稳定。PPO 建模方式Per-Trajectory:把整个序列看成1个动作,计算1个总的重要性权重。Per-Token:把每个词看成1个动作,为每个词计算重要性权重。更稳定、平滑。
PPO Loss 计算方式Seq-Level-Loss:PPO Seq-level-Loss, GSPO Seq-Level-Loss
Token-Level-Loss:DAPO Token-Level-Loss
RLOO:
REINFORCE+留一法计算优势,无需Critic和Ref模型。GRPO:组内计算优势基线,无需Critic。
本文LOOP:
RLOO+异策略,具体引入PPO信任域,提升样本效率。其他非RL:迭代式SFT,通过
不断筛选好样本,来微调模型。
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个app,8个动作,每回合最多1个参数
AppWorld
- 场景:
多样化复杂逻辑,9个真实app,457个API调用,单API最多17个参数- 邮件、支付、音乐、购物、打电话、文件系统等。
- 难度:
1-3档。 - 每个任务有
一套单元测试,三个维度事情已完成:任务所要求的环境状态成功执行无副作用:没有对环境或APP造成额外的修改答案正确:agent最终答案和标准答案一致
- 数据量:
- 整体:250个场景,每个场景有3个任务,总计750个任务。
- 训练:
35个场景,105个任务。 - Dev:
20场景,60任务。 - Test-Normal:
56场景,168任务。 - Test-Challenge:139场景,417任务。复杂、新APP。
- 评估指标
- TGC:Task-Goal-Completion,
任务目标完成率 - SGC:Scenario-Goal-Completion,
场景目标完成率- 1场景有3任务,3个任务全部完成,才算场景完成。
- TGC:Task-Goal-Completion,
核心方法
部分可观测马尔可夫决策过程建模
状态
初始隐藏状态:Python REPL状态、模拟数据库等,
智能体看不见,上下文:
user prompt所有token序列:
大模型生成token+环境返回token,是agent可观察的历史信息。
动作
- Agent生成下一个token
状态转移
- 状态追加
LLM生成token+ 环境返回token
轨迹概率
- Token 概率乘积
- 指示函数I:轨迹和初始状态一致,则为1;否则为0。
优化目标
- 最大化累积期望奖励
Leave-One-Out PPO 算法
📕核心方法
PPO Off-Policy & PPO-Clip
Off-Policy策略,提高样本效率。多轮次训练:缓冲区数据,全部进行轮训练。 - 使用
重要性权重来做分布修正。
- 使用
小批量学习:把缓冲区数据随机打乱,分成多个mini-batch。PPO梯度更新:PPO目标函数更新参数,PPO-Clip限制更新幅度保证稳定。
- 如果
,则LOOP 退化成RLOO。
留一法优势估计
同一个prompt,采样k次,使用其余k-1次的平均值作为baseline
- LOOP vs GRPO
- GRPO:
除以标准差。 - LOOP:
不除以标准差。 - 标准差
- 在
不稳定的任务上,标准差大, 除以标准差,会削弱或抑制那些偶然成功的高奖励学习信号。
- 在
- LOOP实验
不归一化更好,能更有效地从不稳定的、探索性的行为中学习。
- GRPO:
PPo 裁剪粒度
per-trajectory:一条轨迹计算1个IS权重。
- 缺点:非常不稳定。
per-turn:为每个回合计算一个IS权重。
- 优点:
per-token:为每个token单独计算一个IS权重。
- 优点:最精细。

算法实验
实验设置
✍️实验设置
模型
- Qwen2.5-32B
算法
LOOP, LORA训练
任务-AppWorld
训练数据(AppWorld筛选)
去掉难度3,只用难度1和2:35 -> 30。使用难度3会降低性能。- 再
去掉6个场景:30 -> 24。 - 最终:
24个场景数据作为训练集,共72个任务。
评估数据
- AppWorld
Test-normal,Test-Challenge
- AppWorld
超参设置
- 交互最大轮次:
训练40轮,测试50轮。 - Rollout:6次。
- Batch:
40个任务、每次学习40*6=240条序列 - 固定学习率:5e-5
- Prompt:ReACT Prompt
- 长度:LLM单次
1500 token;环境单次:3000 token。 训练90轮,取最好的checkpoint。- 2*8H100,训练42小时。
奖励函数
- [0, 1],
单元测试通过比例。no sparse
关键结果
🍑关键结果
LOOP 在APPWorld 上达到SOTA
Test-N(TGC指标):LOOP > GPT-4o > Qwen2.5-32B,71.3> 61.9 > 39.2Test-C(TGC指标):LOOP > GPT-4o > Qwen2.5-32B,45.7> 36.7 > 21.0%SGC指标:均超过其他方法,Test-N 53.6,Test-C 26.6
关键消融实验
per-token > per-turn > per-traj,
71.3 > 64.1 > 53.3组内std归一化会降低9pt:71.3 -> 61.9移除KL惩罚有效果:Test-C TGC 从22.4 -> 26.6LOOP vs GRPO:
71.3 > 58,13pt- LOOP 非归一化 优于 GRPO 归一化,
LOOP vs PPO:
71.3 > 50.8- Critic 不好训啊,容易引入误差
涌现出优秀行为:
- 从
莽撞到谨慎:不必要代码执行减少6倍,避免了次优loop - 从
想当然到查文档:调用特定APP接口时,API文档查询增加60% - 从
瞎猜到求证:毫无根据的假设减少了30倍,虚构密码等重要位置减少了6倍 - 从
脆弱到坚韧:失败后放弃次数减少3倍
- 从


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