用游戏求解器给 LLM 当"回合级老师":CAST 如何解决长程决策的信用分配难题

你有没有发现一个很反直觉的现象——那些动辄几千亿参数的闭源大模型,在推箱子(Sokoban)、扫雷(Minesweeper)这种经典小游戏上,表现居然还不如一个专门写好的搜索算法?

Figure 1: Overview

图1:左图展示多个闭源 LLM 在经典游戏上的成功率,即使是 Opus-4.6 也远未达到求解器 100% 的水平;右图对比 GRPO 和 CAST 的信号差异——GRPO 整条轨迹共享同一个 advantage 值,而 CAST 通过求解器给出每一步的精细信号

这不是模型不够聪明的问题。真正的问题是:当你用强化学习训练一个 LLM 智能体去玩长程游戏时,奖励信号太稀疏了。游戏结束才告诉你赢没赢,但中间几十步里哪步走对了、哪步走错了?完全不知道。这就是 RLVR(Reinforcement Learning with Verifiable Rewards)领域最核心的痛点——信用分配(credit assignment)

这篇论文(arXiv 2607.25308)提出了一个让我觉得"确实该这么做"的方案:既然游戏有现成的求解器能精确评估每个状态的价值,为什么不直接让求解器当老师,给每一步动作打分?


核心摘要

CAST(Credit Assignment from Solver Teachers)的核心思路一句话就能讲清楚:利用游戏求解器的状态价值函数,计算每一步动作带来的 cost-to-go 变化量,作为 turn-level 的 advantage 信号注入到 RLVR 训练中。作者还证明了一个漂亮的理论结果:在 soft-optimal solver 假设下,最大化这个 solver advantage 数学上等价于不需要 teacher logits 的 on-policy distillation(在线策略蒸馏)——一个标量就够了,不用知道求解器的完整动作分布。

效果上,CAST 在 Sokoban、Minesweeper、Rush Hour 三个游戏的 in-domain 和 unseen-difficulty 设置下全面超越所有 trained baseline(GRPO/GSPO/DAPO/GiGPO),平均 ID 成功率从 DAPO 的 44.7% 提升到 62.1%,涨了 17.4 个点。零样本迁移到 ALFWorld 和 WebShop 也拿到了最高分。训练效率提升 1.7-2.0 倍,求解器开销仅占训练总时间的 73 ppm(百万分之七十三),基本可以忽略不计。

我的判断:这是一篇工程直觉和理论优雅结合得很好的工作。它没有发明全新的算法框架,而是把一个显而易见但没人系统做好的想法——用求解器提供过程监督信号——做到了理论严谨、实验充分、工程实用。对做 Agent RL 训练的人来说,这个思路值得直接借鉴。


论文信息

项目 内容
标题 CAST: Game Solvers as Turn-Level Teachers for LLM Agents
作者 Yu Wang, Yi-Kai Zhang, Wentao Shi, Ziang Ye, Yuchun Miao, Yueqing Sun, Qi Gu, Xunliang Cai, Lan-Zhe Guo, Han-Jia Ye, Fuli Feng
日期 2026-07-28
链接 https://arxiv.org/abs/2607.25308
代码 https://github.com/Wloner0809/CAST

问题动机:RLVR 在长程游戏上的死穴

稀疏奖励的信用分配困境

先说清楚问题在哪。RLVR 的基本范式是:LLM 生成一条轨迹 → 环境返回 0/1 终端奖励 → 用 policy gradient 更新参数。这在单轮任务(比如数学题验证)上很好使,因为轨迹短、反馈即时。

但到了长程游戏就崩了。一局 Sokoban 可能要走 100 多步,中间每一步的 action 都影响最终胜负,但终端奖励只有一个标量——赢了是 1,输了是 0。GRPO 把这个标量均分到轨迹里的每一个 token 上,意味着:

无论你在第 3 步走了神来之笔还是昏招,只要最终赢了,所有步骤得到的 credit 完全一样。

这就像考试只看总分,不看你哪道题答对了。你根本不知道自己哪里进步了、哪里退步了。

现有方案的尴尬

论文梳理了几类试图缓解这个问题的思路:

  • 搜索增强(如 MCTS):计算开销大,每步都要跑一遍搜索
  • 学习 PRM(Process Reward Model):需要额外标注或训练一个过程奖励模型,本身就有冷启动和准确性问题
  • 跨轨迹比较(如 GiGPO):通过组内比较生成过程信号,但依赖同批次内的相对排序,信号质量不稳定

这些方法要么贵、要么不准、要么两者兼有。

论文的观察:求解器就在那里

说实话我第一反应是——这不就是 SFT on solver trajectory 吗?用求解器生成的专家轨迹做监督微调?

但作者指出了一个关键局限:SFT 只能让模型学到"专家会访问的状态"上的行为,一旦模型在交互中偏离了专家轨迹(这在 RL 探索中必然发生),SFT 就完全帮不上忙了。你需要的是一个on-policy 的信号——不管模型走到哪个状态,求解器都能告诉它"从这儿出发,你这步走得怎么样"。

而这个能力,恰好是任何完备的游戏求解器天然具备的。


方法核心:把求解器的价值变化变成 advantage

从 cost-to-go 到 solver advantage

CAST 的起点是一个简单的观察:求解器能完成从任意状态的通关,因此它能给每个状态赋予一个 cost-to-go 值 N(s)——从这个状态到胜利最少还需要多少"工作量"。对于不同的游戏,N(s) 的具体含义不同:

  • Sokoban / Rush Hour:最少还需多少步操作
  • Minesweeper:最少还需点开多少个安全格子

那么对于 LLM 在状态 s_t 下采取的动作 a_t,一个自然的评分就是:

\[\tilde{A}^{\pi_{\text{Solver}}}(s_t, a_t) = N(s_t) - \mathbb{E}_{s_{t+1}}[N(s_{t+1})]\]

这个式子的含义非常直观:如果这步动作让 cost-to-go 减少了,说明走对了;增加了说明走错了;不变说明白费功夫。最优动作减少 1 步,得 +1;无效动作得 0;有害动作得负分。进入无解死状态则惩罚 -N(s_t)。

两个关键的信号塑形步骤

原始的 solver advantage 直接拿来训练有两个问题:

  1. 重尾分布:绝大多数动作的 advantage 是 0 或 ±1,但偶尔出现的死状态惩罚可能高达几十,几个极端值就会主导梯度
  2. 跨游戏尺度不一致:简单棋盘的 cost-to-go 只有几位数,复杂的可能有几十

论文给了两个轻量级的解决方案:

asinh 压缩: $\(g(x) = \text{asinh}(x) = \ln(x + \sqrt{x^2 + 1})\)$ 选 asinh 而不是 log 是因为它在整个实数域都有定义且奇对称,完美保留了正/负/零的语义区分。小信号区域近似线性(保留分辨力),大信号区域对数压缩(抑制极端值)。

Batch-level RMS 归一化: $\(h(x) = \frac{g(x)}{\text{RMS}_{\mathcal{B}}(g) + \epsilon}\)$ 注意这里除以 RMS 但不减均值——这是故意的。均值不为零会破坏"零 = 无进展"的语义锚点,导致正负号信息丢失。

和 GRPO/DAPO 的融合

Figure 2: Method overview

图2:CAST 方法概览。上半部分是 GRPO 原有的 trajectory-level sparse signal 流程;下半部分新增了 Solver as Teacher 的 dense signal 路径——对轨迹 i 中每一步 t,查询求解器获取 Q^Solver 和 V^Solver,计算 shifted solver advantage,经 asinh + RMS 归一化后与 outcome advantage 加权融合

最终的 combined advantage 公式:

\[\hat{A}_{i,t} = \hat{A}_i^{\text{outcome}} + \alpha \cdot h(\tilde{A}^{\pi_{\text{Solver}}}_{i,t})\]

三个粒度在这里交汇: - \(\hat{A}^{\text{outcome}}\):trajectory-level,整条轨迹共享,锚定全局输赢 - \(h(\tilde{A}^{\pi_{\text{Solver}}})\):turn-level,逐步变化,细化内部信用分配 - 最终广播到 token-level,因为 GRPO 本身在 token 粒度优化

\(\alpha = 0.1\) 是默认权重,控制求解器信号的强度。

理论亮点:为什么不需要 teacher logits?

这是全文最让我觉得漂亮的部分。

传统蒸馏需要 teacher 的完整输出分布(logits),但经典求解器只返回最优动作或标量 cost-to-go,根本没有分布可言。那怎么蒸馏?

作者的洞察是:如果把求解器看作一个 soft-optimal 策略 \(\pi_{\text{Solver}}(a|s) \propto \exp(Q^{\pi_{\text{Solver}}}(s,a)/\tau)\),那么取 log 就得到:

\[A^{\pi_{\text{Solver}}}(s,a) = \tau \cdot \log \pi_{\text{Solver}}(a|s)\]

solver advantage 就是 teacher 对该动作的 log-preference! 一个标量已经编码了老师的全部偏好信息。

基于此,论文证明了 Theorem 2.1:CAST 的 policy gradient update 等价于同时最大化任务回报和最小化与求解器的交叉熵——这正是 OPD(On-Policy Distillation)的目标函数,只不过蒸馏项用的是 scalar advantage 而非 full logits。

更妙的是,这个等价性还解释了为什么学生可以超过老师:最优策略的形式是 \(\pi^*(a|s) \propto \pi_{\text{Solver}}(a|s) \exp(A^{\text{task}}_{\pi_\theta}(s,a)/\beta)\)——求解器分布作为先验,任务 advantage 作为修正项。当 \(\beta\) 有限时,任务回报高的地方允许偏离求解器,学生就能在特定场景下超越老师。


实验结果:全面领先,迁移也行

主实验:三个游戏的全维度碾压

实验在 Sokoban(长程规划)、Minesweeper(部分可观测推理)、Rush Hour(约束组合搜索)上进行,基础模型统一使用 Qwen3-4B-Instruct-2507。对比了三类 baseline:

  • 闭源模型 ReAct prompting:Gemini 2.5 Flash/Pro、Claude Sonnet/Opus 4.5/4.6
  • Outcome-only RLVR:GRPO、GSPO、DAPO(CAST 的 backbone)
  • Process-level:GiGPO(跨轨迹比较)
方法 Sokoban ID/Unseen Minesweeper ID/Unseen Rush Hour ID/Unseen 平均 ID / Unseen
ReAct (frozen) 44.3 / 16.8 4.5 / 0.4 1.1 / 0.5 16.6 / 5.9
GRPO 71.3 / 30.5 9.7 / 0.5 53.8 / 26.7 44.9 / 19.2
GSPO 72.6 / 28.3 28.2 / 5.0 24.8 / 11.5 41.9 / 14.9
DAPO 71.9 / 31.3 29.8 / 7.3 32.5 / 17.4 44.7 / 18.7
GiGPO 70.6 / 29.6 13.7 / 1.4 51.9 / 31.3 45.4 / 20.8
CAST (Ours) 77.0 / 34.8 44.7 / 11.0 64.7 / 39.5 62.1 / 28.4
Opus-4.6 (closed) 82.5 / 51.5 64.6 / 55.3 92.6 / 85.3 79.9 / 64.0

表1:主实验结果。Avg@4 成功率 (%),粗体为最佳,下划线为次佳。CAST 在所有 trained 方法中全面领先

几个值得关注的细节:

Minesweeper 的提升幅度最大:ID 从 DAPO 的 29.8% 飙到 44.7%,涨了 14.9 个点。这其实合理——Minesweeper 是部分可观测环境,信用分配最难,solver signal 的边际收益自然最大。

Unseen-Difficulty 还有很大空间:CAST 在更难关卡上的平均只有 28.4%,离闭源模型的 64% 差得远。这说明泛化到更高难度仍然是 open problem,不是光靠更好的信用分配就能解决的。

4B 模型超过了部分闭源的 ReAct 表现:CAST 在 ID 上的平均 62.1% 已经超过了 Gemini-2.5-Flash(58.7%)和 Claude-Sonnet-4.5(50.4%)的 ReAct 分数。这说明在这个设定下,合适的训练范式比单纯堆模型规模更有效

训练动态:又快又稳

Figure 3: Training dynamics

图3:三个游戏的训练曲线。上排为验证集 Avg@4,下排为训练 reward。虚线标注 DAPO 的峰值性能,竖线标注 CAST 和 DAPO 首次达到该峰值的步数。CAST 在 Sokoban/Minesweeper/Rush Hour 上分别只需 120/200/140 步即达到 DAPO 峰值,对应 1.7×/2.0×/1.7× 的加速

训练曲线透露出几个有意思的信息:

  • Minesweeper 和 Rush Hour 上 CAST 一骑绝尘:这两个游戏本身就难,solver signal 的帮助最明显
  • Sokoban 上 CAST 领先优势出现较晚:这可能是因为 Sokoban 相对简单,outcome-only 的 GRPO 类方法也能学到不错的策略,solver signal 的优势要在训练后期才体现出来
  • DAPO 和 GSPO 在后期都出现了 validation drop:这是 RL 训练中常见的 overfitting/reward hacking 现象,而 CAST 的曲线更平稳

零样本 OOD 迁移:意外之喜

方法 ALFWorld 平均 WebShop 平均 Overall
ReAct (frozen) 30.2 18.8 24.5
GRPO 27.2 17.5 22.4
GSPO 32.1 17.3 24.7
DAPO 30.4 16.6 23.5
GiGPO 30.9 17.9 24.4
CAST (Ours) 37.9 22.7 30.3

表2:零样本 OOD 迁移结果。CAST 在 ALFWorld 和 WebShop 上的平均分分别比最强 baseline 高 5.8 和 4.8 个点

这个结果挺让人意外的。CAST 只在三个经典游戏上训练过,完全没有见过 ALFWorld(具身智能任务)和 WebShop(网页购物任务),但迁移效果反而最好。

我的理解是:solver signal 让模型学到了更通用的"规划-执行-纠错"能力,而不是仅仅 memorize 特定游戏的走法。这种通用的决策能力恰好能迁移到其他需要多步推理的 Agent 任务上。

不过坦率讲,这里的绝对分数都不算高(ALFWorld 37.9%、WebShop 22.7%),距离实用还有不小差距。迁移的方向是对的,但幅度有限。


消融实验:每个设计选择都有道理

Solver advantage 权重 α

Figure 4a: Ablation on α

图4a:不同 α 值下的验证集 Avg@4 曲线(Sokoban)。α=0.1(红色)表现最优且稳定;α 太小退化为 outcome-only baseline;α 过大则 early peak 后下降,training reward 也变得不稳定

α 的消融结果非常符合直觉:

  • α=0.01:signal 太弱,跟没加差不多,收敛慢且 plateau 低
  • α=0.1:sweet spot,持续上升且稳定
  • α=0.3/0.5:前期冲得猛但提前见顶回落,training reward 后期震荡明显——solver signal 过强挤占了稀疏 outcome 目标的梯度份额

这说明 α 本质上是在"跟随老师"和"自主探索"之间做 trade-off,0.1 这个默认值在三个游戏上都 work 得不错。

asinh + RMS 归一化的作用

去掉 asinh 压缩后性能下降最明显——unbounded 的 extreme values 主导了梯度更新,训练既慢又低。去掉 RMS 归一化则前期匹配 full method 但后期 plateau 并开始下滑,training reward 噪声变大——这说明 per-batch rescaling 是保持训练稳定性的关键

两个组件各司其职:asinh 解决单样本内的极端值问题,RMS 解决跨 batch 的尺度一致性问题。缺一不可。


分析:求解器真的实用吗?

开销分析:几乎免费

Figure 6: Solver overhead

图6:求解器运行时间开销的三层分解。左:单个 training step(190s)中 rollout 占 60.7%;中:单条 trajectory(51.8s)中 LLM 生成占 99.9%;右:单个 env step(73.91ms)中求解器仅占 8.4%(6.23ms)。综合下来求解器仅占总训练时间的 73 ppm

这个数据相当震撼。求解器查询看起来每步都要跑一次,但实际上:

  • 单个 env step 里,求解器只占 8.4%
  • 而 env step 本身只占 trajectory 运行的 0.1%
  • trajectory 又只占 training step 的 60.7%

三层乘下来:73 ppm,也就是百万分之七十三。相对于 LLM 生成和策略更新,这点开销完全可以忽略。

学到的 value network 能替代精确求解器吗?

Figure 5: Learned value network

图5a:在 Rush Hour 上用 DQN 学到的 value network 替代精确求解器作为 process signal 来源。CAST+DQN(黑色星号线)全程紧贴 CAST exact-solver 版本(橙色菱形线),最终仅略低,且始终高于所有 baseline

这是一个很重要的实用性验证。不是所有场景都有现成的精确求解器。论文在 Rush Hour 上训练了一个 DQN-based value network(没用精确求解器的距离标签,靠 self-distillation + 几何先验精炼),然后用它的 state value 来构造 solver advantage。

结果显示:learned variant 全程紧跟 exact-solver 版本,最终仅略低,且始终高于 DAPO/GSPO 等 baseline。更重要的是,CAST+DQN 没有 DAPO 和 GSPO 那种后期的 validation drop 现象。

这意味着即使在没有精确求解器的场景下,用一个学到的 value function 也能保留 CAST 的大部分收益。这大大扩展了方法的适用范围。


我的判断

这篇论文做得好的地方

1. 动机干净,方案直觉

"求解器能评估状态价值 → 用价值变化量当 advantage" 这个 idea 说出来大家都觉得 obvious,但把它做到理论严谨(Theorem 2.1 的 OPD 等价性)、工程可行(asinh + RMS 塑形)、实验充分(3 游戏 × 2 设定 × OOD 迁移),就是另一回事了。很多好工作都是这样——idea 不复杂,但 execution 到位。

2. 理论和工程的平衡恰到好处

Theorem 2.1 不是那种"证明了但没什么用"的理论花瓶。它直接解释了两个实践问题:为什么不需要 teacher logits(scalar 够了),以及为什么学生可以超过老师(task advantage 作为修正项)。这种理论服务于设计的风格我很欣赏。

3. 实验设计扎实

消融做得干净(α 权重、asinh、RMS 三个维度独立控制),baseline 选得公平(同一 base model、同一 terminal reward),还考虑了 learned solver 的替代方案。Table 3 的 per-tier 细分(虽然我没展开)提供了更细粒度的对比视角。

值得商榷的地方

1. 游戏场景的局限性

三个经典游戏虽然覆盖了不同类型的推理挑战,但它们都是确定性、规则透明、有完备求解器的环境。真实世界的 Agent 任务(比如网页浏览、代码调试、工具调用)通常不具备这些特性。论文的 OOD 迁移实验展示了潜力,但 30% 左右的绝对成绩说明路还很长。

2. 与 OPD/ReOPD 等同期工作的定位

2025-2026 年涌现了一批 on-policy distillation 相关的工作(Lu & Lab 2024 的 OPD、ReOPD、PassTheBaton 等)。CAST 的独特之处在于"logit-free"这一点的理论贡献,但在实际效果上,很难剥离出"是因为 OPD 等价性好"还是"仅仅因为多了 dense signal就好"。如果能补充一个用真实 teacher logits 做 OPD 的对比,会更清楚地定位 CAST 的增量价值。

3. α=0.1 的通用性

论文只在 Sokoban 上做了 α 的 sweep,然后直接把这个值用到另外两个游戏。虽然结果都不错,但如果能在三个游戏上都报告 α sensitivity 会更有说服力。毕竟不同游戏的 solver signal 信噪比差异很大(Minesweeper 的 partial observability 意味着 solver value 本身就不完美)。

工程启发

如果你在做 Agent RL 训练,尤其是涉及长程决策的任务,CAST 的这几个思路可以直接拿去用:

  1. 任何能评估状态价值的来源都可以当 teacher——不一定是 game solver,value network、heuristic function、甚至另一个更强的 model 的 roll-out result 都行
  2. asinh + RMS(不减均值)这对组合值得记下来——处理 heavy-tailed 的 auxiliary signal 时非常好用
  3. α 权重从 0.1 开始调——太小没效果,太大挤占主目标,0.1 在多个设置下都是 reasonable starting point

收尾

CAST 告诉我们一件事:可靠的 state evaluation 是从 sparse outcome 到 fine-grained credit 最直接的桥梁。无论是精确求解器还是学到的 value function,只要能给状态打分,就能变成 turn-level 的教学信号。

这个 insight 的适用范围远不止游戏。任何有 verifier、有 evaluator、有 heuristic 的场景——数学证明、代码执行、工具调用结果——都可以用类似的思路构建 dense process signal。

当然,现实世界没有完美的求解器,partial observability、stochasticity、non-Markovian 这些 complication 都会让事情变复杂。但方向是对的:与其绞尽汁设计复杂的 credit assignment 启发式,不如问问自己——有没有什么东西已经能告诉我当前状态好不好?

如果有,那就让它当老师吧。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我