Feng, Lang, et al. “Group-in-group policy optimization for llm agent training.” NeurIPS 2025, arXiv:2505.10978 (2025).
在大语言模型(LLM)迈向通用智能体(Agent)的道路上,如何在多步交互任务中进行有效的强化学习(RL)训练是一个关键问题。当任务从单轮对话变为长达数十步的交互时,例如让智能体在模拟家庭中完成一项任务,或操作网页进行购物,一个核心挑战便浮现出来:信用分配问题(credit assignment)。
想象一下,一个智能体经过 20 步操作最终成功找到了钥匙,我们只在最后一步给予它一个“成功”的奖励信号。那么,我们该如何判断这 20 步中,哪一步是找到钥匙的关键,哪一步又是在浪费时间?现有的基于组的强化学习方法(group-based RL),如 GRPO,无法处理这类长视野、稀疏奖励的任务,因为它们只为整个任务轨迹提供一个整体的好坏评价,无法细化到每个具体动作。
针对这一核心难题,来自南洋理工大学的研究团队在论文《Group-in-Group Policy Optimization for LLM Agent Training》中提出了 GiGPO 算法,它在保留 group-based RL 高效稳定优点的同时,巧妙地引入了精细的步骤级信用分配,且计算开销几乎可以忽略不计。
文章目录
一、背景:长视野任务中的信用分配困境
我们首先明确任务设定。在多轮(multi-turn)任务中,LLM 智能体需要根据任务描述(例如,“加热一个鸡蛋并放在柜台上”),在多轮中与环境交互。每一步,智能体观察当前状态(如一段描述房间的文本),然后生成一个动作(如“去冰箱”)。环境会返回一个奖励(通常是稀疏的,只在任务成功或失败时给出)和下一个状态。
在这个 setting,先前 group-based RL 方法,如 GRPO 的工作流程是:对同一个任务,并行采样 N 条完整轨迹,然后计算每条轨迹的总回报,并通过组内归一化(例如减去均值、除以标准差)为每条轨迹计算一个优势(advantage)分数,从而评价这条整体轨迹相对于其他轨迹的相对好坏。
这种方法的问题在于“颗粒度太粗”。它只能告诉模型“这条轨迹是好的,那条是坏的”,但无法指出轨迹内部具体哪个 token 好、哪个 token 差。这就像只知道考试总分,却不知道每道题的得分,使得学习过程缺乏针对性。
二、GiGPO 的核心思想:双层优势估计
GiGPO 的动机非常直接:在保留 GRPO 宏观评估的同时,引入一个微观评估层。
其核心公式是一个简单的加权 advantage 计算:总优势 A A A = 回合级优势 A E A^E AE + w w w * 步骤级优势 A S A^S AS,其中 w w w 是一个权重超参数,论文中将其简单地设为 1。
2.1 回合级优势:继承 GRPO 的宏观视野
这部分计算 A E A^E AE,与 GRPO 完全一样。它给每个 token 分配 advantage,根据 token 所在的这条轨迹的 return 大小。这确保模型能从全局上区分成功与失败的策略,鼓励其追求整体的任务成功。
具体公式为:
A
E
(
τ
i
)
=
R
(
τ
i
)
−
μ
E
σ
E
A^E({\tau}_i) = \frac{R({\tau}_i) - \mu_E}{\sigma_E}
AE(τi)=σER(τi)−μE
其中,
μ
E
=
1
N
∑
j
=
1
N
R
(
τ
j
)
,
σ
E
=
std
(
{
R
(
τ
j
)
}
j
=
1
N
)
\mu_E = \frac{1}{N} \sum_{j=1}^{N} R({\tau}_j), \quad \sigma_E = \text{std}(\{R({\tau}_j)\}_{j=1}^{N})
μE=N1∑j=1NR(τj),σE=std({R(τj)}j=1N),或者,可以使用简单的
F
norm
=
1
F_{\text{norm}} = 1
Fnorm=1 来避免方差过小,导致训练不稳定的问题。
2.2 步骤级优势:GiGPO 的核心创新
这部分计算 A S A^S AS。关键洞察是:在从同一初始状态出发的一组轨迹中,许多相同的环境状态会重复出现。
例如,在 WebShop 中,多个轨迹都可能访问到同一个“商品搜索结果页”;在 ALFWorld 中,多个轨迹都可能进入同一个“厨房”状态。
GiGPO 将这些重复出现的状态称为 “锚状态”,并利用这些 anchor 状态实现细粒度的信用分配。
步骤 1:锚状态分组。GiGPO 在采样完一组轨迹后,会通过遍历本批次的所有轨迹,并使用简单的哈希表找到相同状态,将所有相同状态 group 到一起。现在,对于每一个唯一的锚状态,我们得到了一个步骤级组,它包含了所有轨迹中到达这个状态时 (1) 所执行的动作、(2) 后续的折扣回报,即:
G
S
(
s
~
)
=
{
(
a
t
(
i
)
,
R
t
(
i
)
)
|
s
t
(
i
)
=
s
~
}
,
R
t
(
i
)
=
∑
k
=
t
T
γ
k
−
t
r
k
(
i
)
,
γ
∈
(
0
,
1
]
G^S(\tilde{{s}}) = \left\{ \left( {a}_t^{(i)}, R_t^{(i)} \right) \middle| {s}_t^{(i)} = \tilde{{s}} \right\}, \quad R_t^{(i)} = \sum_{k=t}^{T} \gamma^{k-t} r_k^{(i)}, \; \gamma \in (0, 1]
GS(s~)={(at(i),Rt(i))
st(i)=s~},Rt(i)=k=t∑Tγk−trk(i),γ∈(0,1]
步骤 2:计算步骤级优势。在这个小组内部,仿照 GRPO 的方式,GiGPO 计算每个动作的相对优势:步骤级优势 = (动作的折扣回报 - 组内平均折扣回报) / 组内标准差,即:
A
S
(
a
t
(
i
)
)
=
R
t
(
i
)
−
μ
S
(
s
~
)
σ
S
(
s
~
)
A^S({a}_t^{(i)}) = \frac{R_t^{(i)} - \mu_S(\tilde{{s}})}{\sigma_S(\tilde{{s}})}
AS(at(i))=σS(s~)Rt(i)−μS(s~)
通过一个例子,我们可以清晰地理解其价值:假设在 WebShop 的某个搜索结果页(锚状态),轨迹 A 点击了“第一个商品”,并最终成功购买,而轨迹 B 点击了“下一页”,最终失败,轨迹 C 点击了“第二个商品”,也失败了。通过步骤级分组和优势计算,GiGPO 会给予“点击第一个商品”这个动作最高的正优势,而“点击下一页”则会得到明显的负优势。这样,模型就获得了比“整条轨迹成功”精细得多的学习信号。
步骤 3:加权组合优势。加权上述两个 advantage:
A
(
a
t
(
i
)
)
=
A
E
(
τ
i
)
+
ω
⋅
A
S
(
a
t
(
i
)
)
A({a}_t^{(i)}) = A^E({\tau}_i) + \omega \cdot A^S({a}_t^{(i)})
A(at(i))=AE(τi)+ω⋅AS(at(i))
其中
ω
\omega
ω 是超参数,通常设为 1。然后,我们写出 GiGPO 目标函数(带 PPO-style clipping):
J
GiGPO
(
θ
)
=
E
[
1
N
T
∑
i
=
1
N
∑
t
=
1
T
min
(
ρ
θ
(
a
t
(
i
)
)
A
(
a
t
(
i
)
)
,
clip
(
ρ
θ
(
a
t
(
i
)
)
,
1
−
ϵ
,
1
+
ϵ
)
A
(
a
t
(
i
)
)
)
]
−
β
D
KL
(
π
θ
∥
π
ref
)
J_{\text{GiGPO}}(\theta) = \mathbb{E} \left[ \frac{1}{NT} \sum_{i=1}^{N} \sum_{t=1}^{T} \min\left( \rho_\theta({a}_t^{(i)}) A({a}_t^{(i)}), \text{clip}(\rho_\theta({a}_t^{(i)}), 1-\epsilon, 1+\epsilon) A({a}_t^{(i)}) \right) \right] - \beta D_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}})
JGiGPO(θ)=E[NT1i=1∑Nt=1∑Tmin(ρθ(at(i))A(at(i)),clip(ρθ(at(i)),1−ϵ,1+ϵ)A(at(i)))]−βDKL(πθ∥πref)
其中,
ρ
θ
(
a
t
(
i
)
)
=
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
,
x
)
π
θ
o
l
d
(
a
t
(
i
)
∣
s
t
(
i
)
,
x
)
\rho_\theta({a}_t^{(i)}) = \frac{\pi_\theta({a}_t^{(i)} | {s}_t^{(i)}, x)}{\pi_{\theta_{old}}({a}_t^{(i)} | {s}_t^{(i)}, x)}
ρθ(at(i))=πθold(at(i)∣st(i),x)πθ(at(i)∣st(i),x) 是重要性采样比率,
ϵ
\epsilon
ϵ 是 clipping 参数,
β
\beta
β 是 KL 惩罚系数,
π
ref
\pi_{\text{ref}}
πref 是参考策略(例如 SFT 模型)。
三、实验设置与结果
为了全面评估 GiGPO,论文在三个具有代表性的基准上进行了测试:
- ALFWorld:文本化具身智能任务,要求 agent 在模拟家庭中完成拾取、清洁、加热等任务,最长可达 50 步。
- WebShop:网页交互任务,agent 需根据用户指令搜索、筛选并购买商品。
- 搜索增强 QA:多轮问答任务,需要 agent 决定何时及如何调用搜索引擎。
评价指标主要是任务成功率和得分。
同时,论文设置了严谨的 baseline 对比,包括:
- 闭源模型:如 GPT-4o、Gemini,仅通过提示(如 ReAct)完成任务,不进行训练。
- 提示方法:如 ReAct、Reflexion,同样不更新模型参数。
- RL 训练方法:包括需要价值网络的 PPO,以及无需价值网络的 group-based RL 方法 RLOO 和 GRPO。
实验结果显示,GiGPO 在所有这些任务和不同模型规模(1.5B, 3B, 7B)上均取得了显著提升。与 GRPO 相比,GiGPO 在 ALFWorld 取得了超过 12% 的性能提升,在 WebShop 上超过 9%,在搜索增强 QA 任务上超过领域内 baseline(Search-R1、ZeroSearch、StepSearch 等)达到最强性能。这证明了步骤级信用分配机制的有效性。
消融实验进一步巩固了结论:
- 消融研究表明,无论是移除轨迹级优势还是步骤级优势,性能都会大幅下降。
- 同时,论文研究了训练过程中步骤级组大小的变化:初期组很大,说明策略存在大量无效循环;后期组大小收敛,说明策略变得稳定高效。
- 计算成本分析显示,GiGPO 带来的所有额外操作(锚状态分组和步骤级优势计算)仅使每轮迭代时间增加了不到 0.002%,堪称“免费午餐”。
四、实现细节与技巧
GiGPO 的成功,离不开一系列精妙的工程 trick 与细节:
- 奖励设计:主要使用稀疏的二进制奖励(成功 = 10,失败 = 0),并对无效动作施加小惩罚(-0.1),以提供即时反馈。
- 历史上下文:在 ALFWorld 和 WebShop 中,仅将最近 2 步的历史作为输入,避免了上下文无限膨胀,极大地节省了计算成本。
- 优势归一化:发现对于困难任务,使用常数 1 代替标准差进行归一化,能带来更稳定的训练。否则,一个 group 内的性能都很低,导致方差很小,advantage 通过除以方差来计算,容易导致 advantage 的模长过大。
- 温度调度:训练时温度 = 1.0 以鼓励探索,验证时 = 0.4 以稳定输出。
- 基于相似度的 anchor state 分组:对于 state 很容易出现微小差异而不一样,或 state space 极大的任务,很容易出现无重复状态的情况(即 A S = 0 A^S = 0 AS=0),此时,GiGPO 退化为 GRPO。为了应对这种情况,GiGPO 提出哈希寻找相同状态的替代方案:如果两个状态的相似性(最长匹配子序列)超过 0.9 的阈值,则将两个状态放在同一个组。
- 关键超参数:组大小 N 通常为 8;折扣因子 γ = 0.95;步骤级优势权重 ω = 1(固定不变);KL 惩罚系数 β = 0.01,防止策略在优化过程中偏离初始语言模型太远。
- 计算资源:训练 1.5B 模型需 2 张 H100 GPU,7B 模型需 4-8 张 H100,训练 150-200 轮迭代。
五、总结
GiGPO 的成功在于它用一个简洁、低开销的“组中组”结构,优雅地解决了多步 LLM 训练中的信用分配难题。它增强了原有的 group-based RL 范式,使其能够同时从宏观轨迹和微观动作中学习。这项工作为构建更强大、更高效的 LLM 智能体提供了一个强大且实用的工具,其设计思想:利用策略探索中自然产生的冗余来进行自我改进,也颇具启发意义。

被折叠的 条评论
为什么被折叠?



