Skip to content

Agent-RL 相关算法

📅 发表于 2025/11/18
🔄 更新于 2025/11/18
👁️ -- 次访问
📝 0 字
0 分钟
agentrl
#agentrl
#LOOP

(2506) ARPO

问题背景

❓问题背景

问题背景

核心方法

📕核心方法

核心方法

算法实验

实验设置

✍️实验设置

实验设置

关键结果

🍑关键结果

关键结果

未来方向

⛳未来方向

未来方向

(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个任务
  • Dev20场景60任务
  • Test-Normal56场景168任务
  • Test-Challenge139场景417任务复杂新APP

评测维度

  • 每个任务有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
  • 训练90轮,取最好的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