Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

博客导航 · 分类目录

欢迎来到 Jiahong 的技术博客

包含操作系统、机器学习、深度学习、强化学习、NLP 和 LLM 等 计算机/AI 领域的学习笔记与实践总结

⭐ 论文解读 & 穿插个人评论/理解;⭐ 基础公式推导 & 数学原理分析;⭐ 实践技术思考 & 汇总整理;

📊 共计 637 篇技术文章 | 🏷️ 51 个分类领域

2017
64 篇
2018
122 篇
2019
101 篇
2020
48 篇
2021
32 篇
2022
41 篇
2023
33 篇
2024
49 篇
2025
122 篇
2026
24+ 篇

人工智能 & 机器学习

📖
自然语言处理 (NLP)
📝 193 篇文章
LLM、BERT、Transformer、文本处理等
🧠
大语言模型 (LLM)
📝 173 篇文章
GPT、BERT、ChatGPT等大模型技术
🕸️
深度学习 (DL)
📝 91 篇文章
神经网络、CNN、RNN、Attention等
🎮 🌍
强化学习 (RL)
📝 123 篇文章
Q-Learning、PPO、TRPO、策略梯度等
🤖
机器学习 (ML)
📝 50 篇文章
传统算法、特征工程、模型评估等
🔥
PyTorch
📝 28 篇文章
PyTorch框架使用与实践
📊
TensorFlow
📝 9 篇文章
TensorFlow框架使用与实践
👁️
计算机视觉 (CV)
📝 10 篇文章
图像处理、目标检测、生成模型等

广告 & 推荐

📢
计算广告 (CA)
📝 23 篇文章
广告系统、CTR预估、竞价策略、出价优化等
🔨
拍卖机制 (Auction)
📝 14 篇文章
拍卖理论、机制设计、竞价策略等
💰
竞价与出价 (Bidding)
📝 9 篇文章
出价策略、自动出价、预算分配等
⭐
推荐系统 (RS)
📝 23 篇文章
协同过滤、深度推荐、排序策略等

编程语言

🐍
Python
📝 86 篇文章
Python语法、库使用、最佳实践
☕
Java
📝 4 篇文章
Java编程与开发
🦫
Go
📝 3 篇文章
Go语言学习与实践
🚀
Scala
📝 1 篇文章
Scala函数式编程
🐚
Shell
📝 1 篇文章
Shell脚本编程

系统 & 运维

🐧
Linux
📝 27 篇文章
Linux系统、命令行工具使用
🐳
Docker
📝 5 篇文章
容器技术、镜像管理
🍎
Mac
📝 3 篇文章
macOS使用技巧
🐧
Ubuntu
📝 9 篇文章
Ubuntu 相关技术笔记
🐧
Centos
📝 6 篇文章
Centos 相关技术笔记

数学

📐
数学
📝 25 篇文章
线性代数、概率论、优化理论等

开发工具

🌿
Git
📝 8 篇文章
版本控制、协作开发
📝
Hexo
📝 5 篇文章
博客搭建与维护
✍️
Markdown
📝 1 篇文章
Markdown语法与技巧

其他

📦
其他
📝 43 篇文章
杂项笔记与技术分享
📁
Regex
📝 1 篇文章
Regex 相关技术笔记
📁
Anaconda
📝 4 篇文章
Anaconda 相关技术笔记
📁
Numpy
📝 4 篇文章
Numpy 相关技术笔记
📁
Jupyter
📝 6 篇文章
Jupyter 相关技术笔记
📁
Ray
📝 2 篇文章
Ray 相关技术笔记
📁
Pandas
📝 2 篇文章
Pandas 相关技术笔记
📁
DataFrame
📝 1 篇文章
DataFrame 相关技术笔记
📁
ACM
📝 1 篇文章
ACM 相关技术笔记
📁
KG
📝 3 篇文章
KG 相关技术笔记
📁
Neo4j
📝 1 篇文章
Neo4j 相关技术笔记
📁
GR
📝 11 篇文章
GR 相关技术笔记
📁
GBDT
📝 8 篇文章
GBDT 相关技术笔记
📁
Sklearn
📝 3 篇文章
Sklearn 相关技术笔记
📁
Hadoop
📝 1 篇文章
Hadoop 相关技术笔记
📁
Hive
📝 1 篇文章
Hive 相关技术笔记
📁
MySQL
📝 4 篇文章
MySQL 相关技术笔记
📁
CPT
📝 5 篇文章
CPT 相关技术笔记
📁
AI-Infra
📝 18 篇文章
AI-Infra 相关技术笔记
📁
Megatron
📝 7 篇文章
Megatron 相关技术笔记
📁
Rubrics
📝 14 篇文章
Rubrics 相关技术笔记
📁
Rubric
📝 1 篇文章
Rubric 相关技术笔记
📁
Agent
📝 1 篇文章
Agent 相关技术笔记
📁
HuggingFace
📝 1 篇文章
HuggingFace 相关技术笔记
📁
Spark
📝 2 篇文章
Spark 相关技术笔记

💡 提示:点击任意卡片即可查看该分类下的所有文章

📧 联系方式:JoeZJiahong@Foxmail.com | 🔗 GitHub: @JoeZJH

NLP——LLM对齐微调-Rethinking-OPD

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(Rethinking-OPD)Rethinking On-Policy Distillation of Large Language Models: Phenomenology, Mechanism, and Recipe, THU, 20260414-20260415

Paper Summary

  • 整体说明:
    • 本文对 On-policy distillation(OPD) 进行了系统分析,OPD 的成功需要满足两个条件:
      • 思维模式一致性 (thinking-pattern consistency)
        • 理解:学生和教师应共享兼容的思维模式(thinking pattern)
      • 存在超越学生训练所见范围的真正新知识 (genuinely new knowledge)
        • 理解:即使思维模式一致且得分更高,教师也还必须提供学生在其训练中未曾见过的真正新能力
    • 当上述条件不满足时可以有一些补救措施:
      • Off-policy 冷启动
        • 注:附录 C.1 中证明了:SFT 冷启动导致了 student 和 teacher 之间更好、更稳定的匹配
      • 教师对齐的 Prompt 选择 (Teacher-aligned prompt selection)
        • 注意:这里的 Prompt 不是数据(Query),是 Prompt 模板
        • 从实验看,这里的 Prompt Template 对 OPD 的影响不小,详情见 6.2
    • 其他:OPD 在长轨迹上会发生奖励退化现象
      • 本文观点:OPD 中看似免费的密集 Token-level 奖励是有代价的,OPD 在长轨迹上会消失
      • 理解:教师遇到学生的长文时,是懵的,因为他自己不一定会生成这个前缀(没人考核他的这个能力),所以教师此时的信号对学生的可参考性不高,继续训练可能导致模型崩溃
        • 举例:学生做数学题时,如果已经写了很多错误的步骤了,老师可能也看不懂了,不知道怎么教导学生了
        • 注:这在长 CoT 和 多步 Agentic 场景中要尤为注意
      • Agentic 中的一个改进思路:
        • 推测:如果教师具备从错误步骤中恢复的能力(即不管从哪里续写都可以成功的教师),那么这种教师应该不太会受这种情况影响
        • 训练教师时就给教师一些从错误中恢复的能力,这样可以避免遇到错误的步骤,教师不知道怎么办
    • 本文的有趣实验:
      • 从弱到强的反向蒸馏实验:
        • 从学生视角看,同家族的 1.5B 和 7B 教师在分布上是不可区分的
        • 从 Token 层面看,成功的 OPD 的特点是在学生访问的状态上,高概率 Token 的渐进对齐,以及一个集中的共享 Token 集,该集合集中了绝大部分(97%-99%)的概率质量
  • 个人思考:
    • 可以考虑提出一种新的方法,针对不同长度的 Token 使用不同的 Advantage,比如前面的 Token 使用 OPD 的损失,后面的 Token 使用传统的 GRPO Advantage?

Introduction and Discussion

  • Qwen3 (2025)、MiMo (2026) 和 GLM-5 (2026) 等都在其后训练流程中采用了 OPD
  • Thinking Machines Lab (2025) 以极小的 RL 计算成本复现了 Qwen3 OPD 的配方,独立证实了同策略、密集的监督是一种实用高效的替代方案
  • OPD 的一个失败模式:
    • 一个更强的教师可能反而无法改进学生
    • 注:很少有研究探讨为什么教师的 Token-level 信号能将学生分布导向期望的方向,或者它失败的条件

Phenomenology,现象学

  • 本文第三节识别了 OPD 成功的关键因素:
    • (i) 思维模式一致性(thinking-pattern consistency) :
      • 学生和教师应共享一致的思维模式(例如,它们在 Top-\(k\) Token 分布上有更高的重叠率)
      • 即使教师获得了更高的基准分数,不匹配的思维模式会产生较低的重叠率,且训练无法完全恢复
    • (ii) 更高的分数 不等于 新知识 :
      • 即使思维模式一致且基准分数更高,教师也应提供学生尚未获得的知识
      • 当两个模型在相同的数据和配方上训练 时,它们会收敛到各自规模下的相似分布 ,导致 教师几乎没有可迁移的信号
      • 只有当教师拥有学生未曾见过的知识时,OPD 才能产生显著的收益
  • 本文通过反向蒸馏实验验证了这两个条件
    • 说明 OPD 学习的是思维模式,而不仅仅是受益于模式一致性,并且训练动态可以完全与基准分数解耦

Mechanism

  • 本文第四节进行了 Token-level 机制研究
  • 成功的 OPD 都表现出一个一致的特征(在所有研究的设置中):
    • 在学生访问的状态上,学生和教师的分布变得越来越相似
    • 高概率 Token 越来越多地重合(重叠率从 \(72%\) 上升到 \(91%\)),两个分布之间的熵差距缩小,且共享的 Top-\(k\) Token 集中了 \(97 - 99%\) 的组合概率质量
    • 成功模式的表现总结:重叠率稳步上升, Token-level 优势改善,熵差距缩小
  • 失败的运行从一开始就表现出停滞的重叠率和持续的熵不匹配
    • 将监督限制在重叠 Token 上就能匹配完整的 Top-\(k\) 性能,证实了重叠集是 OPD 梯度信号的主要作用点

Recipe

  • 第五节提出了两种互补的策略,可以在原本失败的配置中恢复 OPD:
    • (i) Off-policy 冷启动(off-policy cold start)
      • 在 OPD 之前,在教师生成的 Rollout 上进行一个预热 SFT 阶段,通过提高初始重叠率来弥合思维模式差距
      • 附录 C.1 中证明了:SFT 冷启动导致了 student 和 teacher 之间更好、更稳定的匹配
    • (ii) 与教师对齐的 Prompt 选择(teacher-aligned prompt selection)
      • 使用来自教师 Post-training 数据的 Prompt,以锐化高概率 Token 上的对齐
      • 注:但代价是学生熵显著降低,需要与分布外的 Prompt 混合使用
    • 在这两种情况下,恢复后的运行都表现出与 第四节 中自然成功的运行相同的动态特征:重叠率稳步上升, Token-level 优势改善,熵差距缩小

OPD 密集监督的代价

  • 奖励质量随着轨迹深度系统地下降,并且不稳定性起源于较后的 Token,然后反向传播到整个轨迹
  • 即使是失败的教师也能提供与 Rollout 正确性全局相关的奖励 ,这表明失败的原因不在于信号质量,而在于局部优化几何
  • 一个较大的教师可能诱导出一个在学生策略周围局部平坦的奖励景观,使得 Token-level 梯度无效(尽管存在一个信息丰富的全局信号)
  • 这些发现揭示了监督密度和监督可靠性之间的基本矛盾,并指出了当前 OPD 在长时程推理和 Agentic 设置中的局限性

Preliminaries

Notation

  • 令:
    • \(x = (x_{1},\ldots ,x_{n})\) 表示一个输入 Prompt
    • \(y = (y_{1},\ldots ,y_{m})\) 表示一个 Response
  • 将 \(y_{< t}\) 记为到第 \(t\) 步为止的前缀:
    $$ y_{< t}\triangleq (y_{1},\ldots ,y_{t - 1}) $$
  • 考虑两个 LLM:学生 \(\pi_{\theta}\) 和教师 \(\pi_{T}\)
    • 每个都定义了一个在词表 \(\mathcal{V}\) 上的下一个 Token 分布 \(\pi (\cdot \mid x,y_{< t})\)
  • 将 \(y\sim \pi_{\theta}(\cdot \mid x)\) 记为从学生自回归采样得到的一个 Response
    • \(\mathcal{D}\) 为 一个固定的,包含教师生成的输出的 Prompt-Response 对数据集 :
      $$\mathcal{D} = \{(x^{(i)},y^{(i)})\}_{i = 1}^{N}$$
      • 理解:\(y^{(i)}\) 是教师生成的
    • \(\mathcal{D}_x\) 为对应的 Prompt 集合:
      $$ \mathcal{D}_x\triangleq \{x^{(i)}\}_{i = 1}^{N} $$
  • 知识蒸馏(knowledge distillation,KD)通过最小化两个分布之间的散度来将知识从 \(\pi_{T}\) 转移到 \(\pi_{\theta}\)
    • 一个标准的选择是 Kullback-Leibler(KL)散度,对于 \(\mathcal{V}\) 上的两个分布 \(P\) 和 \(Q\),定义为
      $$ D_{\text{KL} }(P| Q) = \sum_{v\in \mathcal{V} }P(v)\log \frac{P(v)}{Q(v)} $$

On-Policy Distillation

  • OPD 在当前学生 \(\pi_{\theta}\) 采样的轨迹上计算监督
  • 给定一个 Prompt
    $$ x\sim \mathcal{D}_x$$
  • 学生采样一个 Response
    $$ \hat{y} = (\hat{y}_1,\ldots ,\hat{y}_T)\sim \pi_{\theta}(\cdot \mid x)$$
    • 其中 \(T\triangleq |\hat{y} |\) 表示 Rollout 长度
  • 然后在学生生成的前缀 \(\hat{y}_{< t}\) 上评估两个模型,在每个步骤 \(t\) 产生两个下一个 Token 分布:对于 \(\nu \in \mathcal{V}\),有
    $$
    p_t(\nu)\triangleq \pi_{\theta}(\nu \mid x,\hat{y}_{< t})\\
    q_t(\nu)\triangleq \pi_T(\nu \mid x,\hat{y}_{< t})
    $$
  • 一个标准的公式是在学生生成的轨迹上最小化序列级别的反向 KL:
    $$\mathcal{L}_{\text{OPD} }(\theta) = \mathbb{E}_{x\sim \mathcal{D}_x}\left[D_{\text{KL} }(\pi_{\theta}(\cdot \mid x)\parallel \pi_T(\cdot \mid x))\right] \tag {1}$$
  • 利用自回归分解,这个序列级别的目标允许精确的 Token-level 分解:
    $$\mathcal{L}_{\text{OPD} }(\theta) = \mathbb{E}_{x\sim \mathcal{D}_x,\hat{y}\sim \pi_{\theta}(\cdot |x)}\left[\sum_{t = 1}^{T}D_{\text{KL} }(p_t| q_t)\right] \tag {2}$$
  • 实践中不同的实现在如何计算这个精确的 Per-Token 反向 KL 上有所不同:
    • 全词表(Full-vocabulary) OPD 直接优化公式 (2)
    • Sampled-token OPD 使用 Per-Token-level KL 项的无偏蒙特卡洛估计
    • Top-\(k\) OPD 则用基于子集的近似替换全词表 KL
Sampled-Token OPD
  • 最轻量级的变体仅评估学生采样的 Token,也是先前同策略蒸馏工作中最常见的实现 (2025; 2026; 2026b)
  • 给定 \(\hat{y}_t\sim p_t\), Per-Token 的损失是
    $$ \ell_t^{\text{sample} }\triangleq \log p_t(\hat{y}_t) - \log q_t(\hat{y}_t)$$
  • 聚合为:
    $$\mathcal{L}_{\text{OPD} }^{\text{sample} }(\theta) = \mathbb{E}_{x\sim \mathcal{D}_x,\hat{y}\sim \pi_{\theta}(\cdot |x)}\left[\sum_{t = 1}^{T}\ell_t^{\text{sample} }\right] \tag {3} $$
  • 此时每个 \(\ell_t^{\text{sample} }\) 都是 Token-level 反向 KL 的一个无偏单样本估计量
    • 证明:
      $$ \mathbb{E}_{\hat{y}\sim p_t}[\ell_t^{\text{sample} }] = D_{\text{KL} }(p_t| q_t)$$
      • 注:这里的 \(p_t\) 就对应上述的 Student 模型 \(\pi_\theta(\cdot|x)\)
Full-Vocabulary OPD
  • Full-Vocabulary 在每个前缀上计算整个词表上的散度:
    $$\mathcal{L}_{\text{OPD} }^{\text{full} }(\theta) = \mathbb{E}_{x\sim \mathcal{D}_x,\hat{y}\sim \pi_{\theta}(\cdot |x)}\left[\sum_{t = 1}^{T}D_{\text{KL} }(p_t| q_t)\right] \tag {4} $$
    • 与 Sampled-Token OPD 相比,这产生了更密集的梯度,但代价是对于批次大小 \(B\)、序列长度 \(T\) 和词表大小 \(M = |\mathcal{V}|\),需要 \(O(BTM)\) 的内存
Top-\(k\) OPD
  • Top-\(k\) OPD 通过在子集 \(S_t\subseteq \mathcal{V}\) 上限制散度计算,提供了 Sampled-Token 和全词表 OPD 之间的中间设计
  • 这里关注学生 Top-\(k\) 变体,选择在学生下概率最高的 \(k\) 个 Token,即
    $$ S_t = \text{TopK}(p_t,k)$$
    • 注:(Revisiting-OPD)Revisiting On-Policy Distillation: Empirical Failure Modes and Simple Fixes, 20260326, CASIA(解读博客见:NLP——LLM对齐微调-Revisiting-OPD)中还消融了其他版本,最终结论是各有优劣:
      • Teacher top-K 具有竞争力
      • Student top-K 在几个单独的数据集上表现强劲(平均值优于 Teacher Top-K)
      • Teacher top-K 加上 Sampled-token 在比较中取得了最佳平均分
  • 定义在 \(S_t\) 上重新归一化的学生和教师分布为:
    $$\bar{p}_t^{(S_t)}(\nu) = \frac{p_t(\nu)\mathbf{1}[\nu\in S_t]}{\sum_{u\in S_t}p_t(u)},\qquad \bar{q}_t^{(S_t)}(\nu) = \frac{q_t(\nu)\mathbf{1}[\nu\in S_t]}{\sum_{u\in S_t}q_t(u)}。$$
  • 然后通过最小化子集 KL 散度 \(D_{\text{KL} }(\bar{p}_t^{(S_t)}| \bar{q}_t^{(S_t)})\) 来进行蒸馏,得到轨迹级别的目标:
    $$\mathcal{L}_{\text{OPD} }^{\text{top - k} }(\theta) = \mathbb{E}_{x\sim \mathcal{D}_x,\hat{y}\sim \pi_{\theta}(\cdot |x)}\left[\sum_{t = 1}^{T}D_{\text{KL} }(\bar{p}_t^{(S_t)}| \bar{q}_t^{(S_t)})\right] \tag {5} $$
    • 这个公式丢弃了 \(S_t\) 之外的质量,因此仍然是全词表反向 KL 的一个近似,但它显著降低了教师查询成本,同时保留了学生高概率区域上的多 Token 监督

Dynamic Metrics

  • 在第 \(t\) 步将学生和教师的 Top-\(k\) 集定义为 \(S_t^{(p)} = \text{TopK}(p_t,k)\) 和 \(S_t^{(q)} = \text{TopK}(q_t,k)\)
  • 在后续实验中将在整个 OPD 训练过程中监控以下指标
    • 重叠率(Overlap Ratio)
      • 量化学生和教师候选空间之间的对齐程度,定义为同时出现在学生和教师 Top-\(k\) 集中的 Token 的平均比例:
        $$\mathcal{M}_{\text{overlap} }\triangleq \mathbb{E}_t\left[\frac{|S_t^{(p)}\cap S_t^{(q)}|}{k}\right] \tag {6} $$
      • 低重叠率表明学生的概率质量集中在与教师不相交的 Token 集上,表明显著的政策差异或“模式不匹配”
      • 接近 1.0 的比率意味着学生已成功定位到教师支持的 Region
    • 重叠 Token 优势(Overlap-Token Advantage)
      • 为衡量重叠 Token 内的分布一致性,定义
        $$ A_{t}(\nu) \triangleq \bar{p}_{t}(\nu) (\log \bar{q}_{t}(\nu) - \log \bar{p}_{t}(\nu))$$
        • 其中 \(\bar{p}_{t}, \bar{q}_{t}\) 是在 \(S_{t}^{(p)} \cap S_{t}^{(q)}\) 上重新归一化的学生和教师分布
      • 该指标平均了这个量:
        $$\mathcal{M}_{\text{adv} }\triangleq \mathbb{E}_{t}\left[\frac{1}{|S_{t}^{(p)}\cap S_{t}^{(q)}|}\sum_{\nu \in S_{t}^{(p)}\cap S_{t}^{(q)} }A_{t}(\nu)\right] \tag {7} $$
      • 接近零的值表示高质量的对齐,即学生以适当的置信度将质量放在教师偏好的 Token 上
      • 大的负值表示在交集内,与教师相比学生过于自信(高 \(p_{t}\) 但较低的 \(q_{t}\))
    • Entropy and Entropy Gap
      • 为监控策略的分布特性,追踪学生的熵 \(H(p_{t})\) 和教师的熵 \(H(q_{t})\) 在学生 Rollout 上的情况,并定义熵差距为:
        $$\Delta H_{t} = |H(q_{t}) - H(p_{t})| \tag {8} $$
      • \(\Delta H_{t}\) 是模式对齐的一个特定状态指标
        • 大的差距表明在相同访问状态上,学生和教师在置信度和多样性方面存在显著的不匹配,而收敛到零表明学生已经匹配了其生成轨迹上教师的不确定性剖面

Phenomenology of On-Policy Distillation,OPD 的现象学

  • 在调查 OPD 的 Token-level 机制之前,本文首先提出一个更广泛的问题:
    • 什么条件决定了 OPD 的有效性?
    • 一个自然的假设是更强的教师应该总是产生更好的蒸馏结果,然而本文观察到一些配置中情况并非如此
  • Takeaways
    • 思维模式一致性
      • 学生和教师应共享兼容的思维模式
      • 即使教师获得了更高的基准分数,大的不匹配也会削弱 Token-level 蒸馏信号(第 3.1 节)
    • 更高的分数 不等于 新知识
      • 教师应提供学生在训练中未见过的知识
      • 即使思维模式一致且分数更高,教师也可能没有提供真正的新知识,使得 OPD 缺乏驱动信号(第 3.2 节)

Thinking-Pattern Consistency

  • 本节研究 OPD 是否要求学生和教师之间具有兼容的思维模式
    • 更强的教师并不能保证更好的蒸馏:推理模式上的巨大不匹配会削弱蒸馏信号,无论教师的基准优势如何
Setup
  • 使用 Qwen3-1.7B-Base (2025) 作为学生,并比较两个教师:
    • Qwen3-4B(Non-thinking) (2025)
    • GRPO 教师:Qwen3-4B-Base-GRPO (这是通过对 Qwen3-4B-Base 应用 Zero-RL(使用 GRPO (2024))获得的(详细的训练设置在附录 A.1 中提供)
      • 问题:这里所说的 Qwen3-1.7B-Base 和 Qwen3-4B-Base-GRPO 都是 Thinking 模型吗?推测不是使用 Thinking 模式?
  • 由于学生也是一个 Base 模型,这里期望其思维模式更接近经过 GRPO 训练的教师
  • 使用 DAPO-Math-17K 数据集 (2025) 进行了两个 OPD 实验,仅在教师模型的选择上有所不同
  • 所有实验都使用附录 A.2 中描述的默认超参数(另有不同的点会指明),并在 AIME 2024 (2024)、AIME 2025 (2025) 和 AMC 2023 (2024) 上进行评估
    • 每个问题采样 16 个 Rollout
    • 温度为 0.7
    • Top-\(p\) 为 0.95
    • 最大验证 Response 长度为 31,744 个 Token
    • 本文报告 16 个样本的平均准确率(avg@16)作为主要评估指标
Results
  • 如图 2 所示,来自 Qwen3-4B-Base-GRPO 的蒸馏始终优于来自 Qwen3-4B(Non-thinking)的蒸馏
    • 注:Qwen3-4B(Non-thinking)自身的 Accuracy 是高于 Qwen3-4B-Base-GRPO 的(图 2 左)
  • GRPO 教师在基准测试中表现不佳(图 2 左),但 GRPO 教师表现出更高的初始重叠率(图 2 右)
    • 表明 GRPO 教师 思维模式与学生更一致
    • 问题:这里 GRPO 教师思维模式与学生更一致的原因是两者都是 Base 模型吗?Qwen3-4B 是 Instruct 模型
  • 两个重叠曲线在训练后期趋于收敛(重叠率差异几乎消失),但性能差距持续存在
    • 表明早期思维模式的不匹配导致了蒸馏效益的损失,且无法在后期恢复
  • 附录 A.3 中分别报告了每个基准的验证准确率,相同的总体趋势在所有数据集中都成立

New Knowledge, Not Just Scale

  • 仅凭思维模式一致性并不能解释所有的观察结果
    • 即使教师得分更高且与学生共享一致的思维模式,OPD 仍然可能失败
Setup
  • 在不同模型家族中构建了两个受控比较
    • 在 DeepSeek 家族中,使用 DeepSeek-R1-Distill-Qwen-1.5B(R1-Distill-1.5B) (2025) 作为学生,并比较两个教师:
      • DeepSeek-R1-Distill-Qwen-7B(R1-Distill-7B) (2025)
      • Skywork-OR1-Math-7B (2025b)(通过对 R1-Distill-7B 应用 RL 后训练获得的)
    • 在 Qwen 家族中,使用 Qwen3-1.7B(Non-thinking) (2025) 作为学生,并比较两个教师:
      • Qwen3-4B(Non-thinking)
      • Qwen3-4B-Non-Thinking-RL-Math (2026b)(通过在 DeepMath (2025c) 的 57K 子集上对 Qwen3-4B(Non-thinking)应用 RL 获得的)
  • 在这两种设置中,关键对比在于来自相同训练流程的教师与通过进一步 RL 获得了额外能力的教师之间
    • 所有运行都使用与之前相同的数据集和训练配方
Results
  • 如图 4 所示,两个家族都表现出一致的模式
    • 相同流程的教师带来的改进有限, Post-trained 教师在所有基准测试中都产生了显著更强的收益
  • Post-trained 教师不仅取得了更高的绝对性能,而且通过差距恢复率衡量,恢复了更大比例的师生差距,其中差距恢复率定义如下:
    $$ (\text{Acc}_{\text{after OPD} } - \text{Acc}_{\text{before OPD} })/(\text{Acc}_{\text{teacher} } - \text{Acc}_{\text{before OPD} }) $$
  • 这表明:
    • 这些教师获得的额外能力通过 OPD 实现了迁移
  • 注:由于 Post-trained 教师源自相同的基础检查点,它们的思维模式仍然大致对齐(这也通过重叠率动态观察到),从而让学生学习到了教师通过 RL 获得的新能力

Validation via Reverse Distillation

  • 本文设计了一个反向蒸馏(reverse-distillation)实验作为同时验证这两个条件的比较,并揭示了对 OPD 本质的更深入见解
Setup
  • JustRL-DeepSeek-1.5B(JustRL-1.5B) (2025a) 是通过对 R1-Distill-1.5B 应用 RL 获得的
    • 本文现在反转这个方向,使用 JustRL-1.5B 作为学生,并从 R1-Distill-1.5B(其自身的 RL 前检查点)进行蒸馏
      • 理解:R1-Distill-1.5B 作为教师,JustRL-1.5B 作为学生,JustRL-1.5B 是 基于 R1-Distill-1.5B 训练的
    • 比较组:使用 R1-Distill-7B 作为教师进行比较
      • 注:R1-Distill-7B 的基准分数略高于 JustRL-1.5B,而 R1-Distill-1.5B 则明显更弱
Results
  • 图 5 揭示了两个惊人的现象
    • 第一:将 JustRL-1.5B 向其自身的 RL 前检查点 R1-Distill-1.5B 蒸馏,导致学生几乎完全回归到其 RL 前的性能,消除了通过 RL 获得的所有收益
    • 第二:当用 R1-Distill-7B(一个来自同一家族的规模明显更大甚至略强的模型)替换教师时,训练轨迹几乎无法区分:
      • 在基准测试中得分高于 JustRL-1.5B,但 R1-Distill-7B 却将学生驱动到与较弱的 1.5B 教师相同的回归水平
      • 注:从图 5 中可以看到,R1-Distill-7B 本身的性能非常高,(特别是在 AIME 2025 上比 JustRL-1.5B 还高,但是 JustRL-1.5B 无法从 R1-Distill-7B 上通过 OPD 学到知识)
        • 理解:我的推测是有两种情况:
          • 可能一:这里应该是短期内出现的坍缩现象,由于学生模型和教师模型差异过大,导致训练中途时,模型短期内被拉到了一个既不像学生,又不像教师的中间地带,只要学生的分布是不断接近教师的,继续训练下去,分数会逐渐回来(后续有资源可以考虑继续实验)
          • 可能二:学生模型在当前评测的这些指标上过拟合了,让他学习教师模型反而导致短期内的下降
    • 由于 OPD 在学生生成的轨迹上最小化反向 KL 散度,这种收敛意味着这两个教师在学生访问的状态上诱导出几乎相同的局部目标分布,尽管它们的规模不同
  • 这些结果得出几个结论:
    • 思维模式很重要,并且 OPD 从根本上学习思维模式
      • 从 R1-Distill-1.5B 蒸馏到 JustRL-1.5B 导致 JustRL-1.5B 回归到其 RL 前的性能
      • 这表明 OPD 主动获取教师的思维模式并覆盖学生自身的模式
      • 这正是思维模式一致性重要的原因:如果差距太大,学生可能无法有效学习
      • 问题:这里有点不好理解,只能说明 从 R1-Distill-1.5B 蒸馏到 JustRL-1.5B 导致 JustRL-1.5B 回归到其 RL 前的性能,并不能说明思维模式很重要啊!这里的思维模式定义是什么?应该是两者的 top-k Token 重叠率这样的指标吧
    • 基准性能不能预测 OPD 的结果
      • R1-Distill-7B 得分高于 JustRL-1.5B,但蒸馏没有产生改进,反而导致回归
      • 这表明 OPD 的训练动态可以完全独立于教师的基准性能,甚至可能向相反方向移动
      • 理解:这里可以理解为,如果教师和学生的思维模式(覆盖度)相差过大,那么朴素而鲁莽的把学生往教师的分布上拉动,收益可能是负的(学生会走到既不像自己,又不像教师的尴尬境地,至少在短时间内,学生没有完全学到教师的分布之前,下游评测分数应该是下降的)
        • 问题:这里 In-Domain 的分数应该是上涨的吧,OOD 的分数倒是应该是下降的?
    • 更高的分数并不意味着 OPD 的新知识
      • R1-Distill-7B 和 R1-Distill-1.5B 属于同一模型家族,仅在规模上有所不同
      • 这两个模型对学生产生无法区分的影响已经证实了:
        • (i) 更高的分数(R1-Distill-7B)可能仅仅反映了对相同数据的不同程度的拟合,而不是真正新颖的能力
          • 为了使 OPD 产生收益,教师应该拥有学生在其训练中尚未见过的知识
          • 问题:这里应该是因为 R1-Distill-7B 跟 学生 JustRL-1.5B 的思考模式差异过大?所以 没法用 R1-Distill-7B 作为教师教授学生 JustRL-1.5B
        • (ii) 规模不同,R1-Distill-7B 和 R1-Distill-1.5B 表现出相同的思维模式
      • 吐槽:这个结论 基准性能不能预测 OPD 的结果 的结论类似,都是想表明 R1-Distill-7B 的指标不错,但无法蒸馏到 JustRL-1.5B 上
  • 反向蒸馏实验以及第 3.1 和 3.2 节中的正向比较巩固了这两个条件
    • 思维模式一致性与更高的初始重叠率和更强的 OPD 结果相关
    • 新知识(例如来自进一步的后训练)即使在重叠率已经很高时也能实现更大的可迁移收益

Mechanism of On-Policy Distillation

  • 第 3 节确定了两个条件,即思维模式一致性和超出相同模型家族的新知识,它们决定了 OPD 的有效性
  • 本节研究在训练过程中这些条件得以体现的 Token-level 机制
    • 通过比较成功和失败的 OPD 运行,本文表明有效的蒸馏 是由高概率 Token 上的渐进对齐 驱动的
  • Takeaways
    • 渐进对齐 (Progressive alignment)
      • 在学生访问的状态下,学生和教师的高概率 top-\(k\) Token 之间的重叠在整个训练过程中稳步增加
      • 失败的运行从一开始就表现出停滞的重叠
    • 重叠充分性 (Overlap sufficiency)
      • 几乎所有优化的效果 都集中在共享的 top-\(k\) Token 上
      • 仅优化这些重叠 Token 就足以匹配标准的 OPD(即:非重叠 Token 的贡献很小)

Progressive Alignment of High-Probability Tokens,高概率 Token 的渐进对齐

  • 比较在相同设置下,从两个不同教师蒸馏同一个学生的动态,一个产生了明显的改进,而另一个没有产生任何改进
    • 发现:成功的 OPD 本质上是由学习学生和教师之间共享的高概率 Token 驱动的
Setup
  • 选择 R1-Distill-1.5B 作为学生,并比较两个教师:
    • JustRL-1.5B(在 R1-Distill-1.5B 进一步训练的模型)
    • R1-Distill-7B
    • 注:这两个教师表现出相当的数学性能,R1-Distill-7B 略强一些
  • 使用与之前相同的 DAPO-Math-17K 数据集和训练设置,并在训练期间监控三个动态指标
Results
  • 图 6 显示了截然不同的结果
    • 从 JustRL-1.5B 蒸馏带来了持续的收益,最终学生恢复了超过 \(80%\) 的与教师的性能差距
    • 从 R1-Distill-7B 蒸馏则未能带来任何改进(尽管教师整体上更强)
  • 训练动态(图 6,底部)揭示了潜在的差异
    • 在成功的运行中,重叠率稳步上升,重叠 Token 优势向零改善,熵差距缩小
      • 表明学生逐渐定位了教师的高概率区域,在该区域内校准其质量,并匹配了教师的局部置信度
    • 在失败的运行中,所有三个指标都停滞不前
      • 个人补充:熵差距还是缩小了一些的,但是会波动
  • 有两个观察值得强调
    • 第一:在整个训练过程中,重叠 Token 承载了两种模型总概率质量的 \(97% - 99%\)(见附录 B.1)
      • 因此不断上升的重叠反映了概率上占主导地位的 Token 上的对齐,而不仅仅是集合层面的重合
    • 第二:重叠 Token 优势的改善表明 OPD 的主要优化信号在于在重叠区域内重新分配概率,而不是在区域外的 Token 上
  • 附录 B.2 中报告了辅助优化指标(策略损失、梯度范数和极端优势 Token 概率差异),这些指标显示了一致的次要模式:
    • 成功的运行表现出递减的损失和持续的梯度幅度
    • 失败的运行则显示出微弱的梯度和持续的概率差异
  • 附录 B.3 中进一步验证了这些发现在不同的模型对之间具有普遍性
    • 使用 R1-Distill-7B 作为学生,在相同设置下使用两个不同的教师

Optimizing Shared Tokens Alone Suffice,仅优化共享 Token 就够

  • 上述分析表明,高概率 Token 对齐与 OPD 成功相关
  • 本节进一步研究这种相关性是否具有因果性:
    • 重叠区域是否不仅是对齐出现的地方,而且是驱动优化的区域
  • 本文设计了一个有针对性的消融实验,将 top-\(k\) 支持分解为其重叠和非重叠部分,并单独对每个部分进行训练
Setup
  • 使用第 4.1 节中成功的 OPD 设置 (JustRL-1.5B \(\rightarrow\) R1-Distill-1.5B),本文比较了三种变体,它们的区别仅在于蒸馏损失覆盖哪些 Token:
    • (i) Student Top-\(k\):在完整的 student top-\(k\) 支持 \(S_{t}^{(p)}\) 上进行优化
    • (ii) Overlap Top-\(k\):将优化限制在 student 和 teacher top-\(k\) 集合的交集 \(S_{t}^{(p)}\cap S_{t}^{(q)}\) 上
    • (iii) Non-Overlap Top-\(k\):将优化限制在它们的对称差集 \(S_{t}^{(p)}\Delta S_{t}^{(q)}\) 上(即 学生独有支持集)
  • 补充:将默认的 \(k\) 设置为 16
Results
  • 如图 7 所示,仅优化重叠区域就足以在所有三个基准测试上恢复标准 Student Top-\(k\) OPD 的几乎全部收益,而 Non-Overlap Top-\(k\) 则始终较弱
    • 这表明 OPD 的主要收益来自于共享高概率区域上的梯度,而不是非重叠 Token
    • 这也解释了为什么 Student Top-\(k\) 和 Overlap Top-\(k\) 表现得如此相似
      • 学生独有支持中的额外 Token 携带的概率质量非常少
    • Student Top-\(k\) 和 Overlap Top-\(k\) 的重叠 Token 优势曲线几乎无法区分,Non-Overlap Top-\(k\) 的幅度则小得多
      • 表明在重叠 Token 上的有效梯度要弱得多(更正错误:这里是 非重叠 Token 吧)
  • 重叠优化是自我强化的 (self-reinforcing)
    • Student Top-\(k\) 和 Overlap Top-\(k\) 都将重叠率从约 \(72%\) 稳步提高到 \(91%\) 以上
      • Non-Overlap Top-\(k\) 先下降,然后仅部分恢复(图 7,左下)
    • 这揭示了一种自我强化的动态:
      • 一旦一个 Token 进入共享的高概率区域并受到教师青睐,reverse-KL 更新就会将更多的质量集中在它上面,逐渐将竞争性的非重叠 Token 推出学生的 top-\(k\) 集合
      • 因此,重叠区域的扩大并非与优化过程相悖,反而正是优化所导致,由此形成一个良性循环,在整个训练过程中持续维持对齐。
  • 这些结果支持了 OPD 的一个统一机制:
    • OPD 主要效果是在学生访问的状态下,逐步优化学生在教师支持的高概率 Token 上的分布
    • 这种对齐既是 OPD 成功的标志,也是其操作的核心所在,其中仅优化重叠 Token 就足够了,而非重叠 Token 贡献很小
      • 当满足第 3 节中确定的条件时,这种自我强化的动态驱动着稳定的改进
      • 当不满足时,重叠停滞,训练无法取得进展

Practical Recipe

  • 第 3 节确定了成功进行 OPD 的两个条件
  • 拥有新知识是教师的内在属性,但教师和学生之间的思维模式差距可以通过训练设计来缩小
  • 本节提出了两种互补的策略,通过改善重叠动态来恢复在其他情况下会失败的 OPD 配置
  • Takeaways
    • Off-policy 冷启动
      • 在 OPD 之前,对学生在教师生成的 Rollout 上进行微调,可以弥合初始的思维模式差距,从而从一开始就获得更高的重叠率和持续更强的最终性能
    • 教师对齐的提示
      • 使用来自教师后训练数据的 Prompt 可以加强在高概率 Token 上的对齐
        • 注:单独使用教师后代价是学生熵显著降低,需要将此类 Prompt 应与分布外的 Prompt 混合使用,以防止熵崩溃

Off-Policy Distillation from Teacher Rollouts as Cold Start

  • 当学生和教师具有显著不同的思维模式时,纯粹的 OPD 可能无效,因为教师提供的 Token-level 监督信号难以被学生从其初始策略中利用
  • 为了减轻这种不匹配,本文提出可考虑一个两阶段框架:
    • 第一阶段:通过 SFT 学生在教师生成的 Rollout 上来进行 off-policy 蒸馏,使其更接近教师的思维模式
    • 第二阶段:使用标准 OPD 继续训练
Setup
  • 模型选择:使用 Qwen3-1.7B-Base 作为学生,Qwen3-4B (Non-thinking) 作为教师
  • 数据选择:使用 OpenThoughts3-1.2M (2025) 的数学领域子集作为 SFT 的 Prompt 来源
  • 具体做法:
    • 教师在此数据集的一个子集上生成 200K 个 Response,使用这些教师 Rollout 对学生进行 SFT 作为冷启动,得到 Qwen3-1.7B-SFT
    • 从该 SFT 初始化开始,使用在排除 SFT Prompt 子集 后剩余的 OpenThoughts Prompt(约 30K 个 Prompt)继续进行 OPD 训练
    • 对照组:一个纯 OPD 基线,该基线直接从 Qwen3-1.7B-Base 开始,使用相同的教师和 OPD Prompt 集,但在 OPD 之前不进行冷启动蒸馏
      • 详细的离线 Rollout 和 SFT 配置在附录 C.1 中提供
Results
  • 如图 8 所示,两阶段方法显著优于纯 OPD
  • 从 Qwen3-1.7B-SFT 开始始终比直接从 Qwen3-1.7B-Base 开始产生更好的验证性能
  • 性能差距在整个训练过程中持续存在,表明 off-policy 冷启动不仅改善了早期的优化,还提高了后续 OPD 的最终性能上限
    • 问题:
      • 看着图 8 中,各种指标都是 SFT 带来的,SFT 的样本太多了吧,导致整体效果其实在 SFT 后就收敛到 Teacher 上了,表现在 Overlap Ratio 其实一直处于收敛的情况(也就是说 Student 已经被 SFT 大幅拉倒 OPD 上了)
      • 而且 SFT 看到的数据,纯 OPD 看不到,也不够公平
  • 重叠动态支持了相同的结论:
    • SFT-initialized 学生开始时具有高得多的重叠率,并保持平滑、稳定的轨迹,而基础初始化的学生起点较低,并在逐渐恢复之前表现出明显的不稳定性
  • SFT-initialized 学生的熵差距也小得多
    • 表明从一开始 SFT-initialized 学生就与教师的置信度分布更匹配
  • 结论:
    • off-policy 蒸馏减少了初始的模式不匹配,使得一旦 OPD 开始,教师的 Token-level 监督信号就可以立即被利用
    • 附录 C.2 中对重叠质量动态进行了更详细的分析

Leveraging Teacher Post-Training Prompts

  • 由于教师的策略受到后训练期间所见 Prompt 的影响,在 OPD 期间使用与教师对齐的 Prompt 可以产生更有效的监督
Setup
  • 本文在两个粒度上进行实验:
    • 匹配 Prompt 模板是否重要
    • 匹配 Prompt 内容是否重要
Prompt template
  • 教师是 JustRL-1.5B,学生是 R1-Distill-1.5B

  • Prompt 集是 DAPO-Math-17K,仅 Prompt 模板不同

  • 原始模板是之前所有实验中使用的标准 DAPO 格式(除非另有说明),而与教师对齐的模板则与 JustRL 后训练期间使用的格式相匹配:

    • Original DAPO Template:

      1
      2
      3
      4
      Solve the following math problem step by step. The last line of your response should be of the form Answer: 
      $Answer (without quotes) where $Answer is the answer to the problem.
      {Question}
      Remember to put your answer on its own line after “Answer:”
    • Teacher-Aligned Template

      1
      {Question} Please reason step by step, and put your final answer within \boxed{}.
    • 两次运行(消融 Prompt 模板)包含相同的数学问题,但任务呈现给模型的方式不同

      • 这种设计隔离了 Prompt 模板与教师对齐的影响,同时保持底层问题内容不变
Prompt Content
  • 教师是第 3.1 节中介绍的 Qwen3-4B-Base-GRPO,学生是 Qwen3-1.7B-Base
  • 比较两个大小匹配的 Prompt 集:
    • DAPO-Math-17K(与教师的 RL 训练数据集对齐)
    • DeepMath 的一个子集(该子集与 DAPO-Math-17K 去重(见附录 C.3))
    • 此设计测试了 OPD 是否受益于使用与教师后训练数据完全相同的 Prompt,而不仅仅是领域内的 Prompt
Results
  • 图 9 中的 Prompt 模板设置显示,仅仅切换到与教师对齐的模板就能提高在所有三个基准测试上的验证性能
  • 重叠动态支持了这一结果:
    • 与教师对齐的模板运行开始时具有更高的重叠率,并收敛到更高的水平
    • 这表明即使是 Prompt 模板的微小变化,也能通过使学生生成的状态与教师更兼容,从而显著影响 OPD
    • 附录 C.4 中的基准测试详细分解显示了相同的趋势
  • 图 10 中的 Prompt 内容设置显示了类似的 downstream 优势,但有一个细微差别:
    • 与教师对齐的 Prompt 在整个训练过程中产生的重叠率较低
    • 但学生在重叠 Token 上的累积概率质量显著更高,表明学生将其质量集中在更少但共享程度更高的 Token 上
    • 即使重叠集更小,高概率 Token 上的有效对齐也更强
  • 观察:使用与教师对齐的 Prompt 会导致训练期间学生的熵显著降低
    • 这表明,仅在教师后训练期间见过的 Prompt 上进行 OPD 可能并不总是理想的,因为它会过度降低策略熵
    • 在实践中,一个更稳健的策略可能是将与教师对齐的 Prompt 与教师后训练数据之外的 Prompt 混合,以保持策略熵并维持学生的探索能力
  • 这些结果表明 OPD 不仅受益于合适的教师,还受益于匹配良好的 Prompt 集
    • 更接近教师后训练数据的 Prompt 可以提高下游性能,并加强在最重要的共享 Token 上的对齐,但应谨慎使用,以避免过度抑制学生的熵

Discussion

  • OPD 的吸引力在于其密集的监督信号,即 Per-Token 都从教师那里获得一个奖励信号
    • 这与 RL 中使用的稀疏的 Outcome-level 奖励形成对比
  • 但这种增加的监督密度是有代价的
    • 上述所有章节都隐含地依赖于教师在学生访问的状态下的 Token-level 奖励是可靠的,但本文已经看到这个假设可能会失效
    • 本节研究奖励信号本身,并考察其属性和局限性

Reward Quality Degrades with Trajectory Depth,奖励质量随轨迹深度退化

  • 本节研究教师的奖励质量如何随响应长度变化
响应长度存在一个最佳区间 (sweet spot)
  • 位置 \(t\) 的监督依赖于教师在学生生成的 Prefix \(y_{< t}\) 下的条件概率 \(\pi_{T}(y_{t} \mid x, y_{< t})\)
    • 而该 Prefix 可能会偏离教师自然产生的轨迹
  • 本文在六种最大响应长度下,针对 JustRL-1.5B 训练 R1-Distill-1.5B 200 步
  • 如图 11(a) 所示
    • 非常短的响应 (0.5K 和 1K) 提供的监督 Token 太少,无法进行样本高效的学习,而中等长度 (3K 和 7K) 产生了最强的结果
    • 超出此范围 (10K 和 15K),性能趋于平稳或下降
  • 图 12 中的训练动态证实
    • 中等长度产生平滑的重叠率增长,而 10K 和 15K 则表现出后期崩溃,重叠率急剧下降,同时伴随着学生熵和梯度范数的峰值
不稳定性源于较后的 Token (later tokens)
  • 这种崩溃从何开始?在 15K 设置中,分析整个训练步骤中作为输出位置函数的学生熵,揭示了一个清晰的从后向前的模式:
    • 如图 13 所示,高熵首先出现在响应的末端,并在训练过程中逐渐向前面的 Token 传播
    • 教师熵表现出类似的从后缀到前缀的趋势 (见附录 D.1)
      • 这与教师在较后位置遇到越来越不熟悉的 Prefix 并使产生的奖励噪声更大 ,进而破坏学生的稳定性 这一观点一致
教师延续 (teacher continuation) 能力随 Prefix 深度增加而下降
  • 本文通过测试当从学生生成的 Prefix 开始时,教师是否仍然能够改进学生的延续来进一步探究这一点
  • 从 DAPO-Math-17K 中采样 2K 个 Prompt,生成完整的学生 Rollout,并选择那些超过 16K Token 的 Rollout
    • 然后在多个位置截断每个 Rollout,并让教师从生成的 Prefix 继续生成
    • 图 11(b) 显示,教师的准确率优势单调下降,从 1K Prefix 处的 \(+0.37\) 下降到 16K Prefix 处的仅 \(+0.02\)
  • 这些结果揭示了 OPD 的 Token-level 监督中的一个基本权衡
    • 密集奖励在中等长度的推理轨迹上有效,但其可靠性随深度增加而下降,因为学生 Prefix 会进一步偏离教师熟悉的 States
    • 这表明 OPD 可能无法干净地扩展到更长 Horizon 的设置,例如扩展的 Chain-of-Thought 或 Agentic 多轮交互
  • 理解:教师遇到学生的长文时,是懵的,因为他自己不一定会生成这个前缀(没人考核他的这个能力),所以教师此时的信号对学生的可参考性不高,继续训练可能导致模型崩溃
    • 举例:学生做数学题时,如果已经写了很多错误的步骤了,老师可能也看不懂了,不知道怎么教导学生了

Globally Informative Reward Does Not Guarantee Local Exploitability,全局信息性奖励不能保证局部可利用性

  • 上一小节表明奖励质量随轨迹深度而下降
    • 一个自然的问题是:在失败的 OPD 配置中,奖励信号是根本无信息量的,还是失败的原因在于其他地方?
Setup
  • 重新审视第 4.1 节中的控制比较,以 R1-Distill-1.5B 为学生,两个教师:
    • JustRL-1.5B (成功 OPD)
    • R1-Distill-7B (失败 OPD)
  • 对于每个学生 Rollout \(y\),计算序列平均奖励 (基于 Sampled-Token OPD )
    $$\begin{array}{r}\bar{r} (y) = \frac{1}{T}\sum_{t = 1}^{T}\left[\log \pi_{T}(y_t\mid x,y_{< t}) - \log \pi_{\theta}(y_t\mid x,y_{< t})\right] \end{array}$$
    • 接下来比较正确和错误 Rollout 之间 \(\bar{r} (y)\) 的分布
    • 注:上述序列平均奖励仅仅是用来统计了对比的,不是损失函数
Global reward structure is preserved in both settings,全局奖励结构在两种设置中都得以保留
  • 图 14 显示
    • 对于两个教师,正确的 Rollout 始终获得比错误 Rollout 更高的序列平均奖励,具有可比的 AUROC 值 (JustRL-1.5B 为 0.73,R1-Distill-7B 为 0.75)
      • 理解:这说明对于两个教师,均有教师在正确 Rollout 上的输出概率比学生更高(符合预期)
    • 失败的 7B 教师并未产生更弱的全局信号,该信号与 Rollout 正确性的相关性同样高
      • 理解:
        • 这里的相关性是指:即使在失败的 7B 教师上,也能看到其在正确 Rollout 上的输出概率比学生更高
        • 这里的 全局信号是使用上述 Sequence 平均奖励来评估的

A hypothesis on local optimization geometry,关于局部优化几何的假设

  • 如果奖励在两种情况下都是全局信息性的,那么为什么 OPD 在 7B 教师时会失败?
    • 第 4.1 节的训练动态提供了一个线索
  • 如图 6 所示
    • 当 R1-Distill-7B 作为教师时,在训练的后期阶段,Overlap-Token Advantage 的幅度比 JustRL 教师时的更大,然而梯度范数仍然持续较小 (见附录 B.2)
      • 理解:图 6 中第二行第二列的图所示,这里的 幅度是偏离 0 的程度,看着图中是负的,所以深红色的线幅度更大
  • 一种可能的解释是:
    • 7B 教师 的 Per-Token 优势虽然个体较大,但在每个序列内的不同位置之间是各向异性的 (anisotropic)
      • 当这些异质信号聚合成一个梯度更新时,它们会部分抵消,导致尽管 Per-Token 的奖励很大,但有效的梯度却很小
      • 理解:说明部分 Token 被鼓励,部分 Token 被打压,且针对同一个参数也有不同的反馈信号,导致参数的有效梯度信号变小
    • 与学生具有兼容思维模式的 JustRL-1.5B ,可能将其优势集中在更连贯的 Token 子集上
      • 由此产生的梯度,虽然由更小的 Per-Token 信号组成,但指向一个一致的方向,反向 KL 可以通过其 Mode-seeking 行为放大该方向
      • 理解:比如一个序列上的每个 Token 都被鼓励,从而整体梯度方向也在提升,导致有效梯度信号相对较大
  • 注:本文尚未直接验证这个各向异性假设,这样做需要分析 Per-Token 梯度的方向结构,本文作者将这个问题留给未来的工作
    • 高 Per-Token 优势 与低梯度范数 同时出现是暗示性的,并指出了一个重要的区别:
      • 全局信息性奖励并不能保证局部可利用的奖励
    • 理解 OPD 奖励 landscape 的几何结构,以及开发能够利用各向异性奖励结构的目标函数,仍然是一个悬而未决的问题

Sampled-Token Reward Is Already Sufficient,Sampled-Token Reward 已经足够

  • 关于 OPD 的奖励,一个自然的问题是每个位置需要多少个 Token 来计算有用的梯度
  • Top-\(k\) OPD 将每个位置上 \(k\) 个最高概率 Token 的奖励聚合起来,人们可能期望更大的支持集总能带来更好或更稳定的学习
  • 通过改变 \(k\) 并将其与更简单的 Sampled-Token OPD 进行比较来研究这一点
    • 注:Sampled-Token OPD 在每个位置仅使用从学生分布中抽取的单个 Token
Setup
  • 本文使用 R1-Distill-1.5B 作为学生,JustRL-1.5B 作为教师,并将 Top-\(k\) OPD (\(k \in \{1, 4, 16, 64\}\)) 与 Sampled-Token OPD 进行比较,保持所有其他超参数固定
Results
  • 图 15 显示,在三个基准测试的平均值上, Sampled-Token OPD 实现了与 Top-\(k\) 设置相当的性能
    • 唯一明显更差的配置是 Top-1,其表现始终不佳
    • 将 \(k\) 增大到超过 4 会带来可忽略不计的额外收益,同时导致更大的计算开销
      • 理解:这里说的超过 4 是指,Top-8 和 Top-16 相对 Top-4 收益几乎可忽略(甚至微降)
      • 结论:Top-4 就够了
  • 图 16 显示了训练动态,并揭示了差异产生的地方
    • Top-1 表现出不稳定的重叠增长,伴随着熵和梯度范数的急剧峰值
    • Top-4 明显更稳定,但仍显示出后期下降
    • Top-16 和 Top-64 在整个过程中保持平滑
    • 结论:Top-K 的 K 越大,训练越稳定,上和梯度都没有峰值(注意:梯度范数和熵的 spike 趋势是一致的)
  • 这些结果表明,只要避免退化的 Top-1 设置,支持集大小可能不是 OPD 的关键设计选择
    • Sampled-Token OPD 之所以效果良好,尽管每个位置只使用一个 Token,是因为它按比例于学生自身的分布在每一步抽取一个不同的 Token,从而在训练过程中为高概率区域提供无偏覆盖
    • Top-1 则相反,它总是选择 ArgMax Token,从而将奖励集中在一个单一模式上
      • 小的策略变化可能会翻转哪个 Token 占据第一名(理解:比如第一第二名 Token 概率相近时),从而创建一个不稳定的奖励信号,该信号在训练过程中不会平均化
      • 理解:但这里的理解只是相对 Top-K 而言的,相对 Sampled-Token 而言,更多是下面的原因(Top-1 选择本身是有偏的估计,而 Sampled-Token 本身是无偏的估计)
    • Top-1 的失败不在于使用太少的 Token,而在于使用了一个有偏的、集中于单一模式的选择规则

Related Work

Knowledge Distillation

  • 知识蒸馏 (KD) (2015) 通过训练学生网络学习教师的软输出分布,将知识从大模型转移到小模型
  • 对于自回归序列模型,Kim 和 Rush (2016) 将其扩展到序列级蒸馏,通过在教师生成的输出上训练学生,建立了主导的 Off-policy 蒸馏基线 (2020;2019;2020)
  • SFT 已被直接应用于提高各种下游任务的性能 (2024;2021;2021)
  • 所有 Off-policy 方法共有的一个基本限制是训练-推理分布不匹配
  • 学生在教师生成或参考序列上被优化,但在推理时必须从其自身的分布生成,这是暴露偏差 (exposure bias) (2015) 的一个实例,会在长生成过程中累积错误
    • 这种不匹配促使将蒸馏转移到学生自己的 On-policy 分布上,这正是 On-policy 蒸馏的核心思想

On-Policy Distillation

  • MiniLLM (2023) 首次在反向 KL 目标下为 LLM 形式化了 OPD,该目标通过策略梯度进行优化,认为反向 KL 的 Mode-seeking 行为可以防止学生将概率质量分散到教师认为不太可能的区域
  • GKD (2024) 引入了一个统一框架,在多种散度上对 On-policy 和 Off-policy 数据进行插值,展示了相对于其他 KD 基线的一致改进
  • Yang 等 (2026b) 后来在理论上将 OPD 形式化为密集 KL 约束 RL 的一个特例,表明教师的 Per-Token 对数比率构成了一个隐式奖励,并且将此奖励扩展到其标准权重之外可以推动学生超越教师的性能边界
  • OPD 此后已被工业界采纳用于 Post-training 流程 (2026;2026;2026;2026;2025;2026;2025,2026b;2026),并扩展到可扩展的自蒸馏 (Ding,2026;2026;2026;2026;2026;2026;2026;2026a;2026a;2026a),其中单个模型通过以特权信息 (如 Ground-truth 解决方案或执行反馈) 为条件,充当自己的教师
  • 尽管这方面的工作越来越多,但现有研究主要集中在展示 OPD 的前景,例如密集奖励和缓解的暴露偏差,在不同的目标、任务和师生对上,而没有系统地分析 OPD 何时或为何失败

Capacity Gap and Distillability

  • 在知识蒸馏中,一个反复出现的观察是,较大的师生能力差距会降低甚至逆转蒸馏的益处
  • Cho 和 Hariharan (2019) 证明,当教师能力显著更强时,蒸馏可能会损害学生表现,Mirzadeh 等 (2020) 提出了一个中等规模的教师助手 (teacher assistant) 来弥合差距
  • Busbridge 等 (2025) 通过蒸馏缩放定律 (distillation scaling laws) 提供了定量处理,表明学生损失作为教师质量、学生规模和数据量的幂律函数,识别出一个 U 型能力区域,其中教师能力过强会降低蒸馏效率
  • 对于 LLM 推理,Li 等 (2025) 记录了一个“可学习性差距”,表明在来自强推理教师的长 Chain-of-Thought 轨迹上训练小模型始终不如更简单的方法,这表明教师输出的推理复杂性必须与学生能力相匹配。这些发现提醒人们对蒸馏的普适性持谨慎态度
  • 然而,现有的分析主要集中在 Off-policy 知识蒸馏上。特别是,能力差距和可蒸馏性在 OPD 中的问题仍未得到充分探索

Future Work

Beyond Mathematical Reasoning

  • 注:本工作的所有实验都是在数学基准上进行的
  • 后续开放问题:OPD 的相同条件和 Token-level 机制是否在代码和开放式设置等其他领域中也适用?

Impact of Pre-Training

  • “新知识”条件隐含地依赖于预训练语料库的差异,但隔离这个因素具有挑战性
  • 当前的研究主要依赖于跨家族蒸馏 (例如,Qwen \(\rightarrow\) LLaMA),这混淆了数据差异与 Tokenizer 不匹配和架构差异,而受控的预训练消融研究仍然代价高昂
  • 衡量预训练数据对 OPD 的影响仍然是一个悬而未决的问题

Self-Distillation Dynamics

  • 最近的工作越来越多地采用自蒸馏,其中单个模型在给定特权信息的情况下充当自己的教师
  • 将这些见解扩展到自蒸馏机制 (思维模式一致性得到保证,但知识新颖性源于特权访问而非单独的教师) 是顺理成章的下一步

Long-Horizon and Agentic Settings

  • 第 6 节提到的轨迹长度上限激励了混合方法,该方法将短段上的密集 Token-level 监督与更长 Horizon 的稀疏 Outcome-level 奖励相结合,以及在训练过程中逐步扩展监督 Horizon 的课程学习策略

附录 A:Details for Section 3

A.1. GRPO Training Details

  • Base Model :Qwen3-4B-Base

  • Training Dataset :使用处理后的 DAPO-Math-17K 数据集进行 GRPO 训练

    • 具体来说,每个问题都添加了以下指令:
      • GRPO dataset template
        1
        {Question} Please reason step by step, and put your final answer within \boxed{}.
  • Training and Evaluation Settings

    • 使用 GRPO 训练教师模型
    • 在训练期间,为每个 prompt 采样 \(n = 8\) 个 responses
    • 最大 prompt 长度和最大 response 长度分别设置为 1,024 和 7,168 个 tokens
    • 训练在 8 张 A800 80G GPU 上进行一个 epoch
    • 学习率为 \(1 \times 10^{- 6}\)
    • 将 student 采样温度和 teacher 温度都设置为 1.0
    • 重复惩罚设为 1.0
    • 禁用 KL 正则化
    • 采用 token-mean 损失聚合。主要超参数总结在表 1 中

A.2. Experimental Setup

  • 所有实验均使用表 2 中列出的默认 OPD 超参数(特殊说明除外)

A.3. Benchmark-wise breakdown of thinking-pattern compatibility,思维模式兼容性的基准逐项分解

  • 图 2 展示的是平均结果,这里图 17 展示了基准逐项的分解
  • 从 Qwen3-4B-Base-GRPO 进行蒸馏的优势在各个数据集上普遍存在(不是由单个基准驱动)
    • 在 AMC 2023 和 AIME 2024 上差距更明显,在 AIME 2025 上差距较小但仍普遍存在
    • 这种按基准划分的视图支持了以下解释:
      • 更好的早期思维模式兼容性会导致更好的下游蒸馏性能,而早期不匹配造成的损失在训练后期无法完全恢复

附录 B:Details for Section 4

B.1. Additional Analysis of Token Overlap Mass

  • 为量化每个模型分配给重叠 top-\(k\) 区域的概率质量,本文定义 \(\mathcal{M}_{\text{overlap-mass} }^{(p)}\) 为:
    $$\mathcal{M}_{\text{overlap-mass} }^{(p)} = \mathbb{E}_t\left[\sum_{\nu \in S_t^{(p)}\cap S_t^{(q)} }p_t(\nu)\right] \tag {9}$$
  • 定义 \(\mathcal{M}_{\text{overlap-mass} }^{(q)}\) 为:
    $$\mathcal{M}_{\text{overlap-mass} }^{(q)} = \mathbb{E}_t\left[\sum_{\nu \in S_t^{(p)}\cap S_t^{(q)} }q_t(\nu)\right] \tag {10}$$
  • 这衡量了 student 和 teacher 分别分配给其 top-\(k\) 集合中共享 token 的总概率质量的分数
    • 在本文实验中,如图 18 所示,在整个训练过程中,重叠 token 为两个模型承载了 \(97% -99%\) 的总概率质量

B.2. Auxiliary Optimization Dynamics,辅助优化动态

  • 本节补充第 4.1 节的分析,针对相同的对比设置报告了几个额外的优化诊断指标
  • 固定 student 为 R1-Distill-1.5B,并在相同的 Student Top-\(k\) OPD 训练方案下比较两个 teachers:
    • JustRL-1.5B(产生成功的运行)
    • R1-Distill-7B(在其它匹配条件下产生失败的运行)
    • 这些诊断指标并非主要证据,它们提供了关于成功和失败的 OPD 之间优化信号差异的补充视图
Diagnostics,诊断
  • 监测三个额外的量
    • 第一个是批次平均的 OPD 训练损失,在图 19 中表示为 PG Loss
    • 第二个是梯度范数,它衡量到达 student 的更新信号的整体幅度
    • 第三个是具有最大绝对优势的 token 上的概率差 \(p_t(v) - q_t(v)\)
      • 跟踪 student 是否能够减少在携带最强优化信号的 token 上与 teacher 最显著的局部不一致
  • 这些指标有助于区分成功和失败的 OPD:
    • 在成功 OPD 中,student 接收到可用的信号并逐步减少不匹配
    • 在失败 OPD 中,信号太弱或对齐太差,无法推动实质性改进
Results
  • 图 19 中的趋势与第 4.1 节的主要结论一致
  • 损失视角:
    • 成功 OPD:使用 JustRL-1.5B 的成功运行显示出训练损失在优化过程中显著减少
      • 从一个更大的初始不匹配开始,损失在训练的大部分时间里稳步下降,然后稳定在一个较低的值
    • 失败 OPD:使用 R1-Distill-7B 的失败运行开始时损失小得多,之后变化不大
      • 这种模式表明,失败运行中较小的损失并不表示优化更好
      • 较小的 损失反映了从一开始 teacher 诱导的训练信号就较弱,该信号仍然太小,无法推动显著的政策改进
  • 梯度范数视角:(梯度范数显示了两个运行之间更清晰的分离)
    • 成功 OPD:梯度范数初始很大,并在训练的很大一部分时间里保持较大
      • 表明 student 持续接收到有意义的修正信号
    • 失败 OPD:梯度范数始终小得多,随时间变化也有限
      • 即使在相同算法和训练预算下进行优化,针对 R1-Distill-7B 训练的 student 经历的更新信号要弱得多
    • 这一观察结果与以下发现一致:
      • 失败与高概率 token 上的对齐性差有关
      • 当 student 没有实质性地进入 teacher 支持的区域时,产生的梯度仍然很弱
  • 最大绝对优势的 Token 概率视角:
    • 成功 OPD:成功的运行稳步减少了具有最大绝对优势的 token 上的概率差异
      • 说明:当 OPD 成功时,student 逐步纠正了在 teacher 诱导的优势信号下最重要的局部错误
    • 失败 OPD:失败的运行在整个训练过程中保持了明显更大的差距
      • 说明:当 OPD 失败时,这些高优势的差异持续存在而未能解决
    • 这再次与以下解释一致:
      • OPD 中的决定性信号位于一小部分高概率、高优势的 token 上,当 student 无法有效利用该信号时就会发生失败
  • 以上这些辅助动态强化了第 4.1 节中提出的解释
    • 成功的 OPD 不仅以高概率 token 上的重叠增加为特征,而且还以训练机制为特征
      • 在该机制中,student 接收到足够幅度的梯度,以减少最重要的局部分布不匹配
    • 失败的 OPD 伴随着弱梯度、有限的损失减少以及在具有最强优势信号的 token 上持续存在的分歧
      • 虽然这些诊断指标是支持性的而非核心,但它们提供了一个优化层面的视图,该视图与以下观点完全一致:
        • OPD 有用的学习信号集中在 student 访问状态下的高概率 token 上,当该信号太弱或对齐太差而无法驱动有效更新时,训练就会退化

B.3. Cross-Model Validation of High-Probability-Token Alignment,高概率 Token 对齐的跨模型验证

  • 本节测试第 4.1 节中的现象是否能推广到另一对模型
  • 将 student 模型固定为 R1-Distill-7B,并选择 Skywork-OR1-Math-7B 和 DeepSeek-R1-Distill-Qwen-14B (R1-Distill-14B) 作为 teachers,使用与第 4.1 节相同的训练和评估设置
Results
  • 图 20 显示了与图 6 相同的模式
    • 以 Skywork-OR1-Math-7B 为 teacher,蒸馏提高了 student 的性能,并伴随着重叠率的稳步增加、重叠 token 优势趋近于零以及较小的熵差
    • 以 R1-Distill-14B 为 teacher,训练几乎没有改进,对齐指标仍然较差或不稳定
    • 这提供了额外的证据,表明成功的 OPD 始终与 student 访问状态下高概率 token 对齐的出现相吻合
      • 理解:图 20 中,成功的运行再次伴随着高概率 token 对齐的增加,而停滞的运行则没有

附录 C:Details for Section 5

C.1. Cold-Start Distillation Details

Offline teacher rollout
  • 为了构建冷启动 SFT 数据,本文从 OpenThoughts3-1.2M (2025) 的数学子集中采样了 20 万个数学 prompts,并使用 Qwen3-4B (Non-thinking) 为每个 prompt 生成一个离线 response

  • 对于每个 prompt,作者使用以下模板:

    • Teacher rollout template
      1
      {Question} Please reason step by step, and put your final answer within \boxed{boxed{} }
  • 解码超参:温度 0.7、top-\(p = 0.95\)、top-\(k = - 1\) 和最大生成长度 12,288 个 tokens 进行解码

  • 生成后,过滤掉不完整的 responses(例如,未正确完成的截断输出)和退化的重复 responses

    • 剩余的 prompt-response 对用作监督蒸馏语料库来训练 student
Student SFT
  • 从 Qwen3-1.7B-Base 开始,使用 LLaMA-Factory 框架 (2024) 在过滤后的 20 万个 teacher 生成的样本上进行全参数 SFT,产生 Qwen3-1.7B-SFT
  • 将详细的超参数总结在表 3 中

C.2. Additional Analysis of Overlap Mass,重叠质量的额外分析

  • 为了更好地理解为什么基础初始化的 student 有时会表现出相当甚至稍好的重叠 token 优势 (Overlap-Token Advantage),但整体表现仍不佳,本文进一步从 student 和 teacher 两方面检查重叠集覆盖的概率质量
  • 如图 21 所示
    • SFT-initialized student 在整个训练过程中始终保持 student 重叠质量和 teacher 重叠质量在较高水平
      • 这表明重叠 token 覆盖了 student 和 teacher 分布的大部分高概率区域,表明从 OPD 开始就存在强烈且稳定的对齐
    • 而基础初始化的 student 表现出显著较低且更不稳定的重叠质量,尤其是在训练早期阶段
  • 这种分析有助于解释为什么重叠 token 优势 (Overlap-Token Advantage) 有时可能具有误导性
    • 由于它仅在重叠 token 上平均,即使重叠集本身缺失了相当一部分 teacher 的高概率 token,它也可能看起来相对有利
    • 重叠质量通过揭示共享支持是否真正覆盖了两个分布最重要的部分来补充这一观点
  • 从这个角度来看,SFT 冷启动导致了 student 和 teacher 之间更好、更稳定的匹配

C.3. Deduplication Details for the DeepMath Subset,DeepMath 子集的去重细节

  • 对于跨规模设置,构建了一个与 DAPO-Math-17K 去重后的 DeepMath 子集,以便比较与 teacher 的 RL 后训练数据对齐的 prompts 和仅在领域内的 prompts
  • 本文的去重分两个阶段执行:精确匹配去重和语义去重
Question extraction
  • 对于 DAPO-Math-17K 和 DeepMath,提取问题内容并移除 prompt 中的指令后缀,以便仅基于问题文本进行去重
Stage 1: Exact-match deduplication
  • 将所有提取的 DAPO-Math-17K 问题收集到一个集合中,并移除其提取的问题与该 DAPO 问题精确匹配的任何 DeepMath 样本
Stage 2: Semantic deduplication
  • Stage 2 进一步移除近似重复的 prompts
    • 使用句子嵌入模型 all-mpnet-base-v2 (Reimers and Gurevych, 2019) 对 DAPO-Math-17K 和 DeepMath 的问题进行编码
    • 对嵌入进行 L2 归一化,并在 DAPO 嵌入上构建一个 FAISS 内积索引,使得内积对应于余弦相似度
  • 对于每个 DeepMath 问题
    • 在 DAPO-Math-17K 中检索其最接近的邻居
    • 如果与最近 DAPO 问题的余弦相似度至少为 0.6,将该 DeepMath 样本标记为语义重复并将其移除
Final retained subset
  • 移除任何被精确匹配或语义去重标记的 DeepMath 样本
  • 得到的子集在领域内,但与 DAPO-Math-17K 去重
    • 能够在与 teacher 后训练数据重叠的 prompts 和仅在领域内的 prompts 之间进行受控比较

C.4. Benchmark-wise breakdown of prompt-template alignment,Prompt 模板对齐的基准逐项分解

  • 图 9 中展示的是平均结果,图 22 展示了基准逐项的分解
    • teacher 对齐的模板在各个数据集上产生了一致的改进,在两个 AIME 集上增益更大,在 AMC 2023 上影响较小但仍是正向的
      • 使用 teacher 对齐的模板在三个基准上始终匹配或优于原始 DAPO 模板
    • *使用 teacher 对齐的模板 *还允许 student 恢复 teacher 性能的更大一部分,从大约 \(80%\) 增加到大约 \(85%\)
  • 结合第 5.2 节中的重叠率结果,这表明 prompt 模板对齐通过使 student 生成的状态与 teacher 更兼容来改进 OPD

附录 D:Details for Section 6

D.1. Teacher entropy by output position,按输出位置划分的 Teacher 熵

  • 为补充第 6.1 节中的 student 熵分析,本节可视化了在最大 response 长度为 \(15K\) 的设置下,训练步骤中作为输出位置函数的 teacher 熵(见图 23)
    • 与 student 类似,teacher 熵首先在较后的解码位置增加,然后随着训练的进行逐渐向前面的 token 传播
    • 理解:升高的熵首先出现在后缀部分,然后随着训练的进行逐渐向前面的输出位置传播,说明是后面的 Token 先出现问题(教师信号不置信,逐步引起前面的 Token 崩溃)

NLP——Rethinking-Generalization-In-Reasoning-SFT

注:本文包含 AI 辅助创作

  • 参考链接:
    • 相关论文:Rethinking Generalization in Reasoning SFT: A Conditional Analysis on Optimization, Data, and Model Capability, 20260408, SJTU & USTC
    • 相关博客:github.com/Nebularaid2000/rethink_sft_generalization

Paper Summary

  • 本文打破了传统对 SFT 的一些观点,有非常丰富的实践参考意义:
    • 传统观点:SFT 会记忆,而 RL 会泛化
    • 本文观点:SFT 在一定条件下也是可以泛化的,之前的失败案例是优化不足的产物
  • Reasoning SFT 中的跨领域泛化并非不存在,而是有条件的,取决于下面三个条件:
    • 1)优化的充分性:短周期检查点可能会低估最终的泛化增益
      • 表现:跨域性能先下降,然后在延长训练后恢复并提升(一种“下降-恢复(dip-and-recovery)”模式)
    • 2)数据的质量和结构:经过验证的、带有程序性推理模式的长 CoT 数据能产生更强的迁移
      • 表现:低质量的解决方案普遍损害泛化能力,而经过验证的长 CoT 轨迹则能带来一致的跨域收益
    • 3)基础模型的能力:能力更高的模型比主要模仿冗长表达的较弱模型更有效地内化这些模式
      • 表现:
        • 更强的模型能够内化可迁移的程序性模式(例如,回溯)(文中实验证明,即使是从一个玩具算术游戏(Countdown)中学习也可以迁移)
        • 较弱的模型则只会模仿表面的冗长
  • 注:本文主要关注 带有长 CoT 监督的推理 SFT,实验也主要集中在这些数据和场景上
  • 注:但是本文 SFT 实验也发现,这种泛化是不对称的:
    • 推理能力的提升始终伴随着安全性的下降(即训练过程中推理能力提升的同时,安全性会下降)
    • 理解:这里的不对称是指:在部分指标性能上泛化了,但是在安全性上没有泛化

Introduction and Discussion

  • 流行观点:SFT 能提升域内性能但容易导致记忆,而 RL 的泛化能力更好
    • 一些工作在合成任务上确立了具有影响力的“SFT 记忆,RL 泛化”的框架
    • 一些工作在更现实的场景(如数学推理)中也报告了类似的模式
  • 本文观察到,给出这些结论包含了大量的特定实验场景问题:
    • 部分训练没有使用长 CoT 监督
    • 部分训练 epoch 相对较短
    • 部分训练使用的数据 Response 质量不均
    • 部分训练使用了小型或早期的基础模型
    • 此外,还有一些点:
      • 许多 SFT 与 RL 的比较关注的是保留能力(即微调是否会降低现有能力),而不是获取新的泛化能力
      • 许多 SFT 和 RL 通常从指令微调模型开始,这使得对齐带来的混杂因素难以解耦
  • 这些在优化、数据、模型能力和起始检查点上的纠缠不清的差异,使得我们不清楚所报告的泛化失败是 SFT 固有的,还是仅仅是特定实验条件的产物
  • 这个问题对于推理 SFT 尤其紧迫,因为模型通常是在长 CoT 轨迹上训练的
    • 长 CoT 轨迹在数据结构上有所不同,比短形式的目标更难拟合,并且对模型能力要求更高
    • 推理 SFT 是一个优化、数据和模型因素至关重要且可以被更清晰研究的场景
  • 本文表明推理 SFT 中的泛化并非训练目标本身的内在属性,而是一个由优化动态、训练数据和模型能力共同塑造的条件性现象
    • 本文系统地改变每个因素,以确定推理 SFT 何时以及如何在跨域泛化,以及当它泛化时会产生哪些权衡
    • 注:本文采用仅在预训练基础模型上进行数学推理 SFT 作为测试平台
      • 这个设置提供了易于验证的 Response,并且可以与先前的研究直接比较
  • 本文评估了在域内数学推理、 OOD 推理(例如,代码、科学)、通用能力(例如,指令遵循)和安全性方面的泛化能力,整体发现如下:
    • 表观上的非泛化可能是优化不足的(under-optimization)产物
      • 在长 CoT SFT 过程中,泛化性能表现出一种“下降-恢复(dip-and-recovery)”模式:
        • 先下降,然后在延长训练后恢复并最终超越基础模型:
          • 这表明短训练检查点可能会系统地低估 SFT 的泛化潜力
        • 在匹配的计算预算下,长 CoT 数据从重复学习中比从单遍覆盖中受益更多 ,并且只有在激进的训练计划下才会出现明显的过拟合症状
        • 说明:在该场景下,优化不足可能比过优化更普遍
    • 训练数据对泛化至关重要
      • 数据质量:在低质量解决方案上进行 SFT 会广泛损害性能,而经过验证的长 CoT 轨迹则能带来一致的跨域收益
      • 数据结构:在强大的基础模型上,来自一个玩具算术游戏(Countdown)的长 CoT 轨迹可以提升在多个推理基准(例如,数学、代码、科学)上的性能,甚至可能优于包含多样化数学问题的无 CoT 数据集
      • 结论:长 CoT 轨迹中的程序性模式(例如回溯和验证) 可能是超越数学内容本身进行泛化的关键
        • 理解:也就是说,通过 SFT 来训练 CoT 数据时,CoT 中的类似回溯和验证的能力和模式可以被学到,从而实现能力的泛化
    • 泛化需要足够的模型能力
      • 给定相同的长 CoT 数据:
        • 更强的模型展现出广泛的跨域泛化能力,而较弱的模型则显示出边际或负面的收益(即使在域内数学任务上),并且倾向于产生冗长的 Response
        • 结论:较弱的模型可能只是模仿推理的表面形式(例如,冗长),而没有内化驱动跨域泛化的模式
    • 泛化是不对称的(asymmetric)
      • 尽管有广泛的收益,但长 CoT SFT 会削弱安全性,这与关于推理模型自我越狱(self-jailbreaking)的发现一致 (2025; 2025)
      • 训练后,模型在思考过程中会自我合理化(例如,“出于教育目的”),并最终生成有害内容
      • 在本文控制的对比中,使用 CoT 的安全性下降比不使用 CoT 时大得多
      • 结论:这种退化是由程序性模式而非领域内容驱动的
  • 以上的这些结果表明,“SFT 是否能泛化?”这个问题需要重新定义和思考
    • SFT 是否能泛化是与优化充分性、数据质量与结构以及基础模型能力有关的
    • 当这些因素中的任何一个缺失时(例如,评估早期检查点、在低质量数据上训练、或使用弱基础模型),得出的结论可能会将实验设置的产物误认为是 SFT 的固有局限性
  • 可以理解为:本文在尝试回答 “在什么条件下推理 SFT 会泛化?”

Experimental Setup

Model, dataset, and training protocol

  • 主要实验使用 Qwen3-14B-Base 和 Qwen3-8B-Base 作为基础模型
    • 注:跨模型家族的实验:使用 InternLM2.5-20B-Base (2024) 和 Qwen2.5 基础模型 (2024)
    • 注:所有模型都是指令微调之前的预训练检查点,这最大限度地减少了来自对齐或偏好优化的混杂影响
    • 注:后续章节还会考察更小的模型(例如,4B 和 1.7B)以研究模型能力的作用(第 5 节)
  • 默认训练数据集 Math-CoT-20k 包含 20,480 个带有长 CoT 的数学推理示例
    • Query 是从 OpenR1-Math-220k (2025) 的默认子集中采样得到的
    • Response 是由启用了思考功能的 Qwen3-32B 生成的
    • 每个 Response 包含一个思考过程,后跟逐步的最终总结和答案
    • 本文为每个 Query 生成多个 Response ,并使用 math-verify (2024) 仅保留答案正确的 Response
    • 最大 Response 长度设置为 16,384 个 Token
    • 完整的数据生成设置请参见附录 B.1
  • 所有模型均使用标准 SFT 目标进行训练
    • 最小化 Response Token 上的负对数似然
  • 基础实验默认配置:
    • 使用 AdamW 优化器
    • 学习率为 5e-5
    • 批量大小为 256
    • 余弦学习率调度
    • 8 个训练 Epoch

Evaluation suite

  • In-Domain (ID) 推理
    • MATH500 (2021) 和 AIME24 用于评估数学推理能力,与训练领域直接对齐
  • Out-Of-Domain (OOD) 推理
    • LiveCodeBench (LCB) v2 (2025) 用于评估编程能力,GPQA-Diamond (2024) 用于评估研究生级别的科学推理能力,MMLU-Pro (2024) 用于评估广泛的知识密集型推理能力
    • 这些任务需要的推理能力在训练数据中并未出现
  • 通用能力
    • IFEval (2023) 衡量指令遵循的准确性
    • AlpacaEval 2.0 (2023b; 2024) 衡量开放式 Response 的质量
    • HaluEval (2023a) 和 TruthfulQA (2022) 衡量真实性
    • 这些基准测试用于检验推理 SFT 是增强还是破坏了更广泛的行为
  • 安全性
    • HEX-PHI (2024) 通过攻击成功率(Attack Success Rate, ASR)和有害性评分来评估模型对有害 Query 的抵抗能力
  • 默认情况下,使用温度 0.6 和最大生成长度 32,768 个 Token 进行解码
    • 对于 IFEval、HaluEval 和 MMLU-Pro:报告 pass@1
    • 对于 MATH500、LiveCodeBench v2 和 GPQA-Diamond:报告 avg@3
    • 对于 AIME24:报告 avg@10
    • 对于 IFEval:使用严格的指令级准确率
    • 对于 AlpacaEval 2.0:报告来自 Llama-3.1-8B-Instruct-RM-RB2 奖励模型的平均奖励分数
    • 对于 TruthfulQA:使用官方评判模型来评估有益性和真实性
    • 对于 HEX-PHI:遵循原始论文,使用 GPT-4.1 作为评判模型
    • 作者将评分 5 视为一次成功的攻击
    • 所有模型均以零样本(Zero-shot)方式进行评估
    • 完整的评估细节在附录 B.3 中提供

Optimization Dynamics of Reasoning SFT

  • 先前研究的一个常见发现是,SFT 能提升域内性能,但不能很好地泛化到 OOD 任务,甚至可能降低 OOD 能力 (2025; 2025)
  • 本节表明这一结论有时是由于对训练轨迹的不完整观察导致的
    • 长 CoT 推理数据比短形式的目标更难内化,并且从基础模型到训练有素的推理模型的路径涉及 non-trivial 动态,这些动态很容易被误读

Apparent non-generalization may be an under-optimization artifact

Replication of previous findings,本节先复现之前文章的发现
  • 首先在相同的短 Epoch 协议下复现了先前关于推理 SFT 跨域泛化能力弱的发现 (2025):
    • 在 Math-CoT-20k 上训练 Qwen3-14B-Base 一个 Epoch
  • 如图 2 所示,域内数学性能大幅提升,而在某些 OOD 基准(例如,LCB v2, GPQA-D)上 OOD 收益有限,在其他基准(例如,IFEval, AlpacaEval)上甚至变为负收益
    • 这种弱泛化在使用更小的学习率时更为明显(附录 C.1)
Cross-domain generalization evolves non-monotonically,跨域泛化呈非单调演变
  • 将训练 Epoch 数扩展到 8(本文的默认设置),并跟踪了 Qwen3-14B/8B-Base 和 InternLM2.5-20B-Base 在整个训练过程中的基准性能
  • 图 3(顶部)显示了性能随训练步数的变化,展示了一种典型的“下降-恢复(dip-and-recovery)”模式
  • 在域内数学推理任务(MATH500, AIME24)上,性能在某些设置下出现了短暂的早期下降,随后迅速恢复(在 AIME24 上,由于基准测试规模小且难度高,早期波动更明显,但总体上升趋势保持一致)并呈现明显的上升趋势
  • 几个 OOD 基准(例如,LCB v2, GPQA, IFEval 和 AlpacaEval 2.0)也表现出类似的模式,通常下降更深,恢复更慢,并在延长训练后最终提升到超越基础模型的水平
  • 这种模式并非特定于某个教师模型
    • 使用 DeepSeek-R1 生成的 Response (相同的 20k 数学 Query )重复相同的设置,得到了类似的结果,仅在绝对分数上有适度差异(见附录 C.2)
    • 结论:先前报告的一些 SFT 泛化局限性可能是优化不足的产物,而非 SFT 本身的内在限制
      • 长 CoT 数据对优化具有挑战性,需要扩展训练并展现出微妙的动态

Response length as a diagnostic of optimization stage,Response 长度是优化阶段的诊断指标

  • 为了更好地理解“下降-恢复(dip-and-recovery)”动态,本文追踪了各检查点的 Response 长度,并将其与性能进行比较
  • 如图 3(底部)所示, Response 长度在训练初期急剧上升,然后逐渐下降
  • 这种上升-下降趋势通常与性能变化同时发生:
    • 最长的 Response 往往与最弱的性能同时出现,而随着性能恢复, Response 变得更简洁
Interpretation
  • 在长 CoT SFT 的早期,模型首先学习一个显著的表面模式 :
    • 它们会产生冗长的、类似思考 的痕迹,然后才能可靠地学习更精细的推理模式,如分解、回溯或自我评估(见附录 C.3 的示例)
    • 这个阶段以两种方式损害性能:
      • (1) 对长 CoT 的浅层模仿限制了即使在推理任务上的迁移
      • (2) 冗长的输出加上偶尔的格式错误(例如,缺少 </think> 标签)会影响指令遵循和对齐方面的结果
      • 随着持续优化,模型会学习到更多可迁移的程序性模式和更精细的语言风格,从而产生更短、更有针对性的输出和更强的跨域泛化能力
  • Response 长度可以作为长 CoT SFT 中优化进展的一个粗略但实用的诊断指标:
    • Response 长度仍在显著缩短的检查点通常尚未完全优化,即使域内性能看起来已经合理

Why longer training helps: repeated exposure or simply more steps?

  • 本节回答问题:为什么更长的训练有帮助:重复学习还是仅仅更多步数?
Setup
  • 拟合长 CoT 数据的难度引发了一个自然的问题:
    • 在小数据集上训练多个 Epoch,还是在更大的数据集上训练单个 Epoch 更有效?
    • 本文设计了三个设置的对照实验,均使用 Qwen3-14B-Base 并固定总梯度步数(640 步):
      • 设置 1:默认,20k 示例,批量大小 256,8 Epochs
      • 设置 2:2.5k 示例,批量大小 32,8 Epochs
      • 设置 3:20k 示例,批量大小 32,1 Epoch
    • 关键的比较是在设置 2 和设置 3 之间:它们的训练预算匹配,但数据暴露模式不同(8 次重复 vs. 1 次覆盖)
Repeated exposure is more effective,重复学习更有效
  • 表 1 显示:整体趋势是 设置 1 > 设置 2 > 设置 3
    • 在不同的基准上,设置 2 的表现都显著优于设置 3,这表明在相同的训练预算下,对于长 CoT 推理 SFT,重复学习比单次覆盖更有效
    • 当 Epoch 数和步数固定时,设置 1 进一步优于设置 2,这表明更大的数据多样性仍然能增加价值

From underfitting to overfitting: symptoms and regimes,从欠拟合到过拟合:症状与区间

Setup
  • 上述结果表明,在的默认长 CoT 设置中,欠拟合的信号比过拟合更明显
  • 为了闭环验证,在 Qwen3-14B-Base 上使用 Math-CoT-20k 对训练激进程度进行了压力测试,采用四种设置:
    • 设置 1(默认,LR 5e-5,8 Epochs,余弦 LR 调度)
    • 设置 2(LR 5e-5,16 Epochs,余弦 LR)
    • 设置 3(LR 5e-5,16 Epochs,恒定 LR)
    • 设置 4(LR 1e-4,16 Epochs,恒定 LR)
    • 这些设置将优化强度从温和增加到激进
Overfitting symptoms and regimes
  • 如图 4(顶部)所示
    • 在大多数基准上,设置 2 在整个训练过程中保持了稳定的性能或持续改进
    • 设置 3 开始在部分 OOD 套件上显示出后期性能下降
    • 设置 4 显示出最清晰的过拟合样模式:
      • OOD 性能普遍下降,甚至域内数学性能也下降,同时 Response 长度再次开始上升(图 4(底部))
  • 本文设置中,明显的过拟合症状主要出现在组合的激进计划下(高学习率、无 LR 衰减、长 Epochs) ,通常伴随着广泛的性能下降(包括域内数学)和 Response 长度的反弹

How Training Data Shapes Generalization,训练数据如何塑造泛化性能

  • 上一节表明,充分训练的推理 SFT 可以实现跨领域泛化
  • 本节将展示,这种泛化关键地依赖于训练数据的质量和结构

Setup

  • 在默认训练设置下比较了四种数据配置
  • 除了默认的 Math-CoT-20k 数据集外,引入了三个变体:
    • Math-NoCoT-20k:
      • Math-CoT-20k 移除了 <think>...</think> 部分,仅保留最终的逐步总结和答案
      • 理解:其实不太公平,因为原本就有 CoT 的数据,去掉 CoT 会出现一些问题,比如先给答案,再给推理过程
        • 所以后面补充了 NuminaMath-20k 这样自然的没有 CoT 的数据
    • NuminaMath-20k:
      • 20k 个示例,来源于 NuminaMath-1.5 (2024),使用与 Math-CoT-20k 相同的 Query ,但采用的是人工编写的解决方案,且没有长 CoT
      • 这些解决方案通常较短且质量参差不齐(例如,缺少步骤)
      • 这被先前关于 SFT 泛化的工作 (2026; 2026) 广泛使用
    • Countdown-CoT-20k:
      • 20k 个 Countdown (2025) 示例,带有由 Qwen3-32B 生成的 长 CoT Response
      • 这是一个需要试错的简单算术游戏

The role of long CoT traces

  • 比较 Math-CoT-20k 和 Math-NoCoT-20k 可以隔离长 CoT 轨迹的影响:
    • 这两个变体共享相同的 Query 和最终的逐步解决方案,而 Math-NoCoT-20k 省略了探索过程
  • 表 2 显示
    • 长 CoT 监督在推理密集型任务上产生了更强的泛化能力(特别是在数学推理方面)
    • 在 OOD 推理任务(LCB v2, GPQA-D, MMLU-Pro)上,对于较大的模型,相同的趋势仍然可见,而对于较小的 Qwen3-8B 模型,增益则较弱
    • 在 IFEval 和 AlpacaEval 2.0 上,Math-NoCoT-20k 的表现通常略优于 Math-CoT-20k,因为这些基准测试更强调指令遵循和对齐相关行为,而非长程推理

Data quality matters,数据质量至关重要

  • 在无长 CoT 的设置中,本文进一步比较了 Math-NoCoT-20k 和 NuminaMath-20k,以隔离数据质量的影响
  • 表 2 显示
    • Math-NoCoT-20k 的表现始终更好,而 NuminaMath-20k 表现出广泛的 OOD 性能下降,并且在领域内数学推理上几乎没有增益
  • 表 20 显示
    • NuminaMath 在第 3 节所述的“下降-恢复(dip-and-recovery)”动态中几乎没有表现出恢复
  • 结论:低质量数据会显著降低 SFT 的效用,而在低质量数据上训练可能会造成 SFT 不泛化的错误印象

Procedural generalization: evidence from Countdown

  • Countdown-CoT 数据集测试了长 CoT SFT 是否能迁移超越领域特定知识的抽象推理程序
    • Countdown-CoT 是一个算术游戏,模型必须使用基本运算 \( (+,- ,\times ,\div) \) 组合一组给定的数字以达到目标值
    • Countdown-CoT 中的 Response 轨迹包含结构化的探索性程序,如分解、回溯和验证,但没有明确的领域知识
  • 表 2 显示,对于两个 Qwen3 模型,Countdown-CoT-20k 在推理任务上相比基础模型都有所提升,甚至在数学任务上优于 Math-NoCoT-20k,尽管其算术范围狭窄
  • 这表明推理程序的结构,而非领域内容,可能是泛化的关键驱动因素
  • 但这并非普遍成立:
    • 对于 InternLM2.5-20B,Countdown-CoT 仅在数学上产生了边际增益
      • 这表明程序性泛化的有效性也依赖于基础模型的能力
      • 本文将在第 5 节研究这个因素
    • 而且,Countdown 并不能同样地泛化到所有任务
      • 比如 IFEval 分数可能会下降

How Model Capability Affects Generalization

Setup

  • 在相同的 Math-CoT-20k 数据和相同的训练协议下,训练了四个规模递增的 Qwen3 基础模型(1.7B, 4B, 8B, 14B)
  • 在这个受控设置中,泛化行为的差异可以归因于模型能力的差异

Higher-capability models generalize better,能力越高的模型泛化能力越好

  • 图 5 显示了在匹配的数据和训练设置下,一个清晰的能力依赖趋势
    • 14B 模型表现出显著的“下降-恢复(dip-and-recovery)”轨迹,并最终在多个领域获得广泛提升
    • 8B 和 4B 模型也显示出恢复阶段,但改进较小,而 1.7B 模型即使在后期检查点上,在所有基准测试上也仅显示出边际增益甚至负增益
    • 这种模式表明,仅凭优化和数据并不能保证泛化:
      • 能力越高的模型更有可能内化可迁移的推理模式,而能力较低的模型则倾向于模仿表面形式
      • 这些结果还表明,第 3.1 节中的“下降-恢复(dip-and-recovery)”动态本身也依赖于模型能力
      • 其余基准测试和 Qwen2.5 模型的结果见附录 C.5

Response length and model capability

  • 图 5 还显示,即使经过长时间训练,较小的模型仍保持较长的 Response 长度,而较大模型的 Response 长度收缩得更快,并稳定在较低的值
  • 如第 3.2 节所讨论的, Response 长度可以作为学习阶段的一个粗略诊断:
    • 停留在 “长 Response” 阶段的模型很可能尚未超越学习表面模式
    • 较小的模型更有可能停留在这个阶段,这表明从模仿长 Response 模式到内化真实推理模式的能力有限(案例研究和分析见附录 C.6 和 C.7)
    • 这一结果也与先前的观察一致:较小的蒸馏推理模型(例如,Deepseek-Distill-Qwen-1.5B)通常比较大的蒸馏模型(7B 和 14B)表现出更长的 Response 长度 (2025)

Asymmetric Generalization: Safety Under Long-CoT SFT,不对称泛化:长 CoT SFT 下的安全性

  • 前面章节已经说明:长 CoT 推理 SFT 会跨领域迁移
  • 本节说明,这种迁移是不对称的:相同的训练会持续削弱安全性和拒答能力
  • 一个有控制的 CoT 与无 CoT 的对比(使用匹配的 Query 和答案)进一步表明,这种性能下降源于长 CoT 轨迹中的程序性模式

Setup

  • 本文评估了三个模型(Qwen3-14B-Base, Qwen3-8B-Base 和 InternLM2.5-20B-Base)在 HEX-PHI 上的安全性表现如何变化
  • 具体细节:将基础模型与在 Math-CoT-20k 和 Math-NoCoT-20k 上训练的 SFT 检查点进行比较

Safety degradation under long-CoT SFT

  • 图 6 (a) 显示,使用长 CoT 数据(Math-CoT-20k)训练导致所有三个模型上的 ASR 大幅增加
  • 在无 CoT 数据(Math-NoCoT-20k)上训练导致的安全性下降要小得多
  • 由于 Math-CoT-20k 和 Math-NoCoT-20k 包含相同的 Query 和最终解决方案
    • 这表明观察到的安全性下降与长 CoT 轨迹中的程序性模式的关系比与数学内容本身的关系更密切

How long-CoT SFT changes refusal behavior: a case study,long-CoT SFT 改变拒答行为

  • 为了理解这种性能下降,本文比较了模型在长 CoT SFT 前后如何回答相同的有害 Query (图 6 (b))
    • 基础模型通常直接发出简短的拒答(这个拒答是正确的,不能回答有害的 Response)
  • 经过长 CoT SFT 后,模型以警告开始,然后在思考过程中自我合理化(例如,“出于教育目的”),并最终提供包裹在警告中的有害细节
    • 矛盾的是,这也可能是一种泛化形式
    • 理解:这种开始回答错误信息的可能
  • 本文推测,长 CoT SFT 强化了一个持续的问题解决先验:
    • 探索替代方案,寻找可行的路径,并坚持克服障碍
    • 对于有害 Query ,障碍变成了拒答策略本身,而扩展的推理为绕过安全护栏提供了空间

Related Work

  • 部分工作在合成任务上建立了有影响力的“SFT 记忆,RL 泛化”框架
    • 与本文工作最直接相关的是,
      • 部分工作评估了数学推理 SFT 的跨领域可迁移性,并发现了有限的增益(本文在相同的短训练协议下重复了这一发现,尽管更长的优化导致了性质不同的结果)
    • 一个密切相关的研究方向将 RL 的优势理解为减少了遗忘或恢复在 SFT 期间退化的能力 ,并将其归因于 on-policy 数据 (2025),向 KL-最小策略的模式寻求更新 (2024; 2026),通过奖励方差进行隐式正则化 (2026),以及保持权重空间结构 (2025; 2025)
    • 本文的工作是互补的:
      • 本文没有比较 SFT 和 RL,而是研究了推理 SFT 本身何时能跨领域迁移,并确定了对泛化至关重要的几个较少受到关注的因素
      • 与关注遗忘的先前工作不同,本文从预训练基础模型而非指令微调模型开始,以更好地区分新获得的泛化能力与现有能力的保留
  • 另一条工作路线试图修改 SFT 目标以改善泛化
    • 几项研究通过 RL 或分布匹配的视角重新解释了 SFT (2025; 2026),并提出了替代的加权策略 (2026; 2026; 2025; 2026)
    • 这些研究与本文的研究是正交的:
      • 本文保持标准的 SFT 目标不变,并表明泛化不是该目标的内在属性,而是共同依赖于优化的充分性、数据质量和结构以及模型能力
  • 有几项工作研究了与 SFT 泛化相关的个别因素
    • 部分研究表明,在微调过程中,记忆和泛化可以共存
    • 部分研究发现,Prompt 多样性和 CoT 监督可以改善 SFT 泛化(仅在合成任务中得到验证)
    • 部分研究 (2026) 揭示,在最终答案错误的长 CoT 轨迹上进行 SFT 仍然可以提高推理性能
    • 一项并发工作 (2026) 发现,在长 CoT SFT 中,数据重复比单次遍历扩展更有效,这与本文的第 3.3 节一致
    • 部分研究 (2025) 表明,循环在较小模型中更为常见 ,这与本文关于模型能力的观察结果相呼应
  • 本文没有单独研究个别因素,而是系统地变化优化、数据和模型能力,同时保持其他因素不变,描述了它们如何共同塑造推理 SFT 中的泛化
    • 本文的受控设置还揭示了新的现象,例如跨领域性能的“下降-恢复(dip-and-recovery)”动态及其对数据质量和模型能力的依赖性
  • 先前的其他工作还表明,扩展推理可能诱导自我越狱并降低安全性 (2025; 2025)
    • 本文从泛化的角度出发,并在匹配的 Query 和答案下对 CoT 和无 CoT 监督进行了有控制的比较,将安全性下降因果地归因于程序性模式

NLP——LLM对齐微调-Revisiting-OPD

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(Revisiting-OPD)Revisiting On-Policy Distillation: Empirical Failure Modes and Simple Fixes, 20260326, CASIA
    • 原始 OPD 博客:On-Policy Distillation, Thinking Machines Lab, 20251027

Paper Summary

  • 前置问题:Token-level OPD 跟 Sampled-Token Comparison(Sampled-Token OPD) 本身是不等价的
    • Sampled-Token OPD 强调的是:
      • 在估计每个位置的 KL 散度时,只使用学生实际采样出来的那一个 Token ,而不是对整个词表做求和或期望
      • 这是一种估计方式的刻画
      • Sampled-Token OPD 的反面是对全词表求和
    • Token-level OPD 强调的是:
      • 在计算当前 Token \( y_t \) 的梯度时,只使用当前位置的即时奖励 \( r_t \) ,而不使用未来的奖励信号 \( r_{t+1}, r_{t+2}, \dots \)
      • 这是一种梯度结构的刻画
      • Token-level OPD 的反面是计算当前 Token 梯度时,考虑未来的奖励
    • 这两个概念在逻辑上是正交的,但本文中似乎认为 Token-level OPD 中包含了 Sampled-Token OPD
    • 在最早的 OPD 博客中(或者说传统的 OPD)既是 Sampled-Token OPD,也是 Token-level OPD
      • 因为传统的 OPD 仅不考虑未来 Token 的奖励,且仅仅针对 Sampled-Token 计算梯度(估计 KL 时不考虑词表中的其他 Token)
  • 本文的中心是:长 horizon 后训练中的 OPD
  • 在长 horizon 设定下,常见的 Sampled-token OPD 变体非常脆弱:
    • Sampled-token OPD 变体将分布匹配简化为单 Token 信号
    • 当 Rollout 偏离 Teacher 经常访问的前缀时,会变得愈发不可靠
      • 理解:这里其实没有问题吧,无论如何,我们的目标都是让 Student 的分布更贴近 Teacher 的分布,并不一定要 Rollout 是 Teacher 会经常访问的
  • Insight:
    • 理论上, Token-level OPD 相对于 Sequence-level 反向 KL 是有偏的,但其最坏情况下的方差界要紧得多
      • 实验证明:更强的未来奖励耦合会产生更高的梯度方差和更不稳定的学习
    • 实验上,本文识别出 Sampled-token OPD 的三种失效模式:
      • 不平衡的单 Token 信号
      • 在 Student 生成的前缀上不可靠的 Teacher 指导
      • 由 Tokenizer 或 Special-Token 不匹配导致的失真
  • 本文通过 Teacher Top-K 局部支持匹配(teacher top-K local support matching)来解决这些问题
    • Teacher Top-K 局部支持匹配方法通过 Top-\(p\) Rollout 采样和 Special-Token 掩码实现为截断的反向 KL
    • 在单任务数学推理和多任务 Agentic-plus-math 训练中,该目标函数比 Sampled-token OPD 产生了更稳定的优化和更好的下游性能

Introduction and Discussion

  • On-policy distillation (OPD) 在由 Student 自身的 Rollout 上进行训练,同时使用更强的 Teacher 模型评估局部反馈
    • OPD 在长 horizon 推理和 Agentic 后训练中颇具吸引力,因为在这些场景中 Student 很快会到达在固定 Teacher 轨迹中罕见或缺失的前缀 (2024; 2024)
      • 理解:这里是说 OPD 本身是从 Student 自身采样的轨迹中学习的,相对于固定的 Teacher(类似 SFT)的场景,更不容易陷入
    • 实际的问题不在于原则上 On-policy Teacher 监督是否有用,而在于训练由 Student 生成的轨迹驱动时,Teacher 监督目标函数仍然是可靠的
      • 理解:这里是说在 On-policy 采样轨迹下,使用 Teacher 的监督信号是有效的
  • 目前 LLM 中的 OPD 通常实现为 Sampled-token Comparison:
    • 在每个解码步骤, Student 仅通过其 Sampled-token 上的对数比率进行更新
    • 理解:Sampled-token Comparison 表示这里本质是一种比较,而不是一种估计
  • 这种近似计算成本低,但至少存在下面三个问题(导致训练变得脆弱)
    • Sampled-token OPD 将分布级别的差异变成了一个高度不平衡的单 Token 信号
    • Sampled-token OPD 可能在 Student 常见但 Teacher 不常见的前缀上过度信任 Teacher
    • Sampled-token 很容易因 Tokenizer 或 Special-Token 不匹配而失真
  • 存在一个相应的估计器权衡:
    • 一个更序列耦合的目标函数可以恢复 Token-level OPD 丢弃的信息,但更强的奖励耦合也可能使优化变得嘈杂得多
  • 本文首先在估计器层面研究这种权衡
    • Sequence-level 反向 KL 将每个 Token 的更新与未来的奖励耦合起来
      • Token-level OPD 则丢弃了这些项
    • Token-level OPD 相对于 Sequence-level 目标是有偏的,但它具有更紧的最坏情况方差界
  • 本文实验展示了相同的模式:
    • 随着未来奖励耦合的增加,梯度方差上升,优化变得不那么稳定
    • 这为长 horizon 后训练提出了一个简单的设计目标:保持足够的局部监督以控制方差,同时使局部比较比单 Token 点估计更不脆弱
  • 本文用 Teacher Top-K 局部支持匹配 取代了 Sampled-token 监督
    • 在每个前缀处,在 Teacher 局部合理的支持集上 比较 Teacher 和 Student 的分布(不是仅仅是采样的 Token 上给出奖励)
    • 本文将此目标函数实现为带有 Top-\(p\) Rollout 采样和 Special-Token 掩码的截断反向 KL
    • 得到的更新仍然是局部且简洁的,但比 Sampled-token OPD 对特异的采样续接和 Tokenization 伪影更不敏感
  • 贡献总结:
    • 分析了 OPD 中的估计器权衡:
      • Token-level OPD 相对于 Sequence-level OPD 是有偏的,但其最坏情况方差随序列长度的增长要慢得多,这在长 horizon LLM 后训练中很重要
    • 识别了 Sampled-token OPD 的三种实践失效模式:
      • 不平衡的单 Token 信号
      • 在 Student 生成的前缀上不可靠的 Teacher 指导
      • 由 Tokenizer 或 Special-Token 不匹配导致的失真
    • 提出了 Teacher Top-K 局部支持匹配,实现为带有 Top-\(p\) Rollout 和 Special-Token 掩码的截断反向 KL
      • 在单任务数学推理和多任务 Agentic-plus-math 训练中展示了比 Sampled-token OPD 更强的优化行为和下游性能

Related Work(待后续补充)


Understanding Sampled-token OPD: Tradeoffs and Failure Modes,Sampled-token OPD 的 Tradeoffs 与失效模式

From reverse-KL to token-level OPD

  • 从 OPD 背后的 Sequence-level 目标开始
  • 对于一个 Prompt \(x\),反向 KL 目标函数为
    $$J_{\text{OPD} }(\theta) = \mathbb{E}_{x\sim D}[D_{\text{KL} }(\pi_{\theta}(\cdot \mid x)| q(\cdot \mid x))] $$
    • \(\pi_{\theta}\) 表示 Student 模型
    • \(q\) 表示 Teacher 模型
  • 使用得分函数恒等式,其梯度可以写为
    $$\nabla_{\theta}J_{\text{OPD} }(\theta) = \mathbb{E}_{x,y\sim \pi_{\theta}(\cdot |x)}\left[\left(\log \pi_{\theta}(y\mid x) - \log q(y\mid x)\right)\nabla_{\theta}\log \pi_{\theta}(y\mid x)\right] $$
  • 对于每个解码步骤 \(t\),定义前缀上下文 \(c_t\)、梯度 \(g_t\) 和奖励 \(r_t\):
    $$
    \begin{align}
    c_{t} &= (x, y_{ < t}) \\
    g_{t} &= \nabla_{\theta}\log \pi_{\theta}(y_{t}\mid c_{t}) \\
    r_{t} &= \log \frac{\pi_{\theta}(y_{t}\mid c_{t})}{q(y_{t}\mid c_{t})}
    \end{align}
    $$
  • 使用自回归分解可得:
    $$\begin{align}
    \log \pi_{\theta}(y\mid x) - \log q(y\mid x) &= \sum_{t^{\prime} = 1}^{T}r_{t^{\prime} }\\
    \nabla_{\theta}\log \pi_{\theta}(y\mid x) &= \sum_{t = 1}^{T}g_{t}
    \end{align}$$
  • 得到 Sequence-level 估计器(梯度估计器,\(\hat{g}_{\text{seq} }\) 中的 hat 标签表示蒙特卡罗估计)
    $$\hat{g}_{\text{seq} } = \sum_{t = 1}^{T}\left(\sum_{t^{\prime} = 1}^{T}r_{t^{\prime} }\right)g_{t} \tag {1}$$
    • 注:为便于理解,这里展开完整的形式是
      $$
      \begin{align}
      \nabla_{\theta}J_{\text{OPD} }(\theta) &\approx \hat{g}_{\text{seq} } \\
      &= \sum_{t = 1}^{T}\left(\sum_{t^{\prime} = 1}^{T}\log \frac{\pi_{\theta}(y_{t^\prime}\mid c_{t^\prime})}{q(y_{t^\prime}\mid c_{t^\prime})}\right)\nabla_{\theta}\log \pi_{\theta}(y_{t}\mid c_{t})
      \end{align}
      $$
  • 在上式中,对于 \(t^{\prime}< t\),有
    $$\mathbb{E}[r_{t^{\prime} }g_{t}] = 0$$
    • 注:这里不太规范,没有明确期望 \(\mathbb{E}\) 是在什么策略下采样的,但根据上下文可以推导得到函数是:
      $$ \mathbb{E}_{x,y \sim \pi_\theta(\cdot|x)}[\cdot]$$
    • 因为 \(r_{t^{\prime} }\) 仅依赖于步骤 \(t\) 之前的前缀,而
      $$\mathbb{E}[g_t\mid x,y_{ < t}] = \sum_{y_t}\pi_\theta (y_t\mid c_t)\nabla_\theta \log \pi_\theta (y_t\mid c_t) = 0 $$
      • 注:这里为 0 的原因是得分函数的性质,证明可参考 NLP——LLM对齐微调-Rethinking-KL-Regularization
  • 相同的梯度也可以写成因果的 return-to-go 形式:
    $$\mathbb{E}[\hat{g}_{\text{seq} }] = \mathbb{E}\left[\sum_{t = 1}^{T}\left(\sum_{t^{\prime} = t}^{T}r_{t^{\prime} }\right)g_{t}\right] $$
  • LLM 训练中一个常见的近似是在每个位置仅保留即时项:
    $$\hat{g}_{\text{tok} } = \sum_{t = 1}^{T}r_{t}g_{t} \tag {2}$$
    • 这里将 (2) 称为 Token-level OPD(注意:上述公式隐含了使用蒙特卡洛估计来估计梯度,所以本身是 Sampled-Token OPD)
    • 这种近似去除了未来奖励耦合(其实之前的奖励耦合也去除了,但是因为之前的奖励下值梯度值为 0,所以不用关注)
      • 因此 Token \(y_{t}\) 的更新仅依赖于其即时奖励
      • 理解:这里相当于移除了 Sequence-level OPD 中的未来奖励部分对当前的梯度加权
    • Token-level 的梯度估计相对于 Sequence-level 反向 KL 估计器是有偏的
      • 但在长 horizon 设定中具有更低的方差
      • 这种差异反映在它们的方差缩放上:
        • 在有界奖励和有界得分函数梯度的条件下, Token-level OPD 的最坏情况方差上界缩放为 \(O(T^{2})\),而 Sequence-level 估计器的缩放为 \(O(T^{4})\)
        • 附录 B 中提供了详细的推导
  • 为了在这两个极端之间进行插值,本文考虑折扣 return-to-go 估计器
    $$\hat{g}_{\gamma} = \sum_{t = 1}^{T}\left(\sum_{t^{\prime} = t}^{T}\gamma^{t^{\prime} - t}r_{t^{\prime} }\right)g_{t},\qquad \gamma \in [0,1] \tag {3}$$
    • \(\gamma = 0\) 的情况恢复了 Token-level OPD
    • \(\gamma = 1\) 则恢复了因果 Sequence-level 估计器
    • 进行了一个双任务的 Toy 实验,观察到:增加 \(\gamma\) 会导致显著更高的梯度方差和更不稳定的优化
      • 见图 1 的图示和附录 C 的额外实验细节
  • 图 1: 实验中增加 \(\gamma\) 的效果
    • 更大的 \(\gamma\) 会产生更高且更持久的方差区间,并且在 Sequence-level 极限下,状态空间中的策略会漂移

Why Sampled-token OPD is brittle in practice,Sampled-token OPD 的问题

  • 从偏差-方差的角度来看,Token-level OPD 很有吸引力,但 Sampled-token 的比较在实践中可能很脆弱
    • 问题:Token-level OPD 跟 Sampled-Token Comparison(Sampled-Token OPD) 本身是不等价的
      • Sampled-Token OPD 强调的是:
        • 在估计每个位置的 KL 散度时,只使用学生实际采样出来的那一个 Token ,而不是对整个词表做求和或期望
        • 这是一种估计方式的刻画
        • Sampled-Token OPD 的反面是对全词表求和
      • Token-level OPD 强调的是:
        • 在计算当前 Token \( y_t \) 的梯度时,只使用当前位置的即时奖励 \( r_t \) ,而不使用未来的奖励信号 \( r_{t+1}, r_{t+2}, \dots \)
        • 这是一种梯度结构的刻画
        • Token-level OPD 的反面是计算当前 Token 梯度时,考虑未来的奖励
      • 这两个概念在逻辑上是正交的,但本文中似乎认为 Token-level OPD 中包含了 Sampled-Token OPD
  • 本文分离出三个不同的问题:
    • (1) 蒸馏信号高度不平衡
    • (2) Teacher 信号在 Student 生成的前缀上变得不太可靠
    • (3) Tokenizer 和 Special-Token 的不匹配会进一步扭曲单 Token 的比较
A highly imbalanced sampled-token signal
  • 在 Sampled-token OPD 中,步骤 \(t\) 的更新由单个 Sampled-token 上的对数比率驱动:
    $$\log q(y_t|c_t) - \log \pi_\theta (y_t|c_t) $$
    • 当 Student 给一个 Sampled-token 赋予比 Teacher 更高的概率时,就会产生负奖励
  • 如图 2 所示,大多数采样的 Token 获得负奖励,而正向的学习信号则集中在少数具有正优势的 Token 子集上
    • 结果是一个不平衡的训练信号,其中优化不成比例地由少数局部有利的 Token 驱动
    • 训练可能随后对 Teacher 局部偏好的短续接变得敏感,例如填充词或犹豫标记,即使这些 Token 对整体轨迹质量的贡献很小
    • 理解:产生这个问题的原因是因为 轨迹是由 Student 采样的,Student 采样时倾向于采样自身高概率的 Token(而这些 Token 在 Teacher 上的概率不一定大)
  • 图 2: Token 概率的散点图 ( Student vs. Teacher )
    • 在 Qwen2.5-7B-It (2025) 上的第一次训练迭代时,使用 OpenThinker3-7B (2025) 作为 Teacher 模型的 Sampled-token OPD
    • Sampled-token 信号严重偏向于惩罚当前的 Student Token,而不是提供平衡的奖励
The teacher signal can become unreliable on student-generated prefixes
  • 这一点可以描述为:Teacher 信号在 Student 生成的前缀(不是 Teacher 生成的前缀)上可能变得不可靠
  • Sampled-token OPD 隐含地假设 Teacher 对 Student 生成 Token 赋予的概率是其轨迹质量的有用代理
    • 当 Rollout 进入 Student 常见但 Teacher 不常见 的前缀时,这个假设会减弱
    • 在这样的前缀上, Teacher 可能给看似合理的 Token 赋予高概率,而此时轨迹已经偏离了期望的方向
      • 在本文实验的日志中,这种行为与诸如重复循环、自重置推理和格式错误的续接等模式相关联
  • 问题:这个点真的算是问题吗?可能是问题
    • 首先:简单理解下,不论前缀为何,假设 Teacher 认为这个前缀上后续生成的 Token 都应该近似输出某个特定 Token,那 Student 就应该被学到这个 Teacher 的知识,这和前缀在 Teacher 中是否常见没有关系
    • 实际上:如果 Teacher 甚至没有训练过这个 Prefix,那么确实可能会有问题,因为 Teacher 可能会输出乱码(此时 Teacher 出现类似 OOD 错误),此时 Teacher 确实无法胜任奖励信号的角色
  • 图 3 和 附录 D 的观察表明存在一个目标层面的不匹配:
    • OPD 鼓励 Token-level 上与 Teacher 达成一致,但这种代理并不一定对应于轨迹级别的质量,尤其是在 Teacher 分布外 (out-of-distribution) 的前缀上
    • 本文推测有两个因素放大了这个问题
      • 第一:Teacher 分布通常很尖锐,因此即使 Student 和 Teacher 之间稍有分歧,也可能产生很大的对数比率值
      • 第二:Teacher 的生成模式与 Student 的生成模式之间的差异使得 Student 的前缀更可能落在 Teacher 的典型上下文之外
    • 同样的失效也体现在 Teacher 信号随位置变化的方式上
      • 图 4 显示了跨 Token 位置的 Teacher-Student 对数概率差距的分布
        • 在早期位置相对集中,并在序列的后期逐渐变宽,在长 Rollout 上出现更极端的值
  • 图 3: Student 陷入重复循环
    • 但Teacher 模型在重复的 Token 上与 Student 模型保持高度一致,表明对此类行为缺乏适当的惩罚 (注:无色的 Token 多,说明两者输出的概率几乎一致)
  • 图 4: 跨 Token 位置的 Teacher-Student 对数概率差距的分布
    • 较后的位置显示出更宽的分布和更极端的值 ,表明在长的 Student 生成 Rollout 上 Teacher 信号更嘈杂
    • 问题:为什么单数长度的 Token 位置方差明显小于双数长度的 Token(比如 15k 相比 16k 长度,差异很大,但 15k 相对 0k 差异很小)
Tokenizer and special-token mismatch
  • Sampled-token OPD 使用 Teacher 的分布来比较 Student 生成的确切 Token
  • 当两个模型使用不同的 Tokenization 时,相同的原始文本可能被分割成不同的方式,因此 Student 生成的 Token 在 Teacher 的 Token 体系下可能不对应于一个自然的 Token
    • 例如,Student 可能将 <think> 生成为 <, think, >,而 Teacher 期望的是 <th, ink, >
    • 那么 Token < 从 Teacher 那里获得低概率,即使两个模型产生了相同的语义内容
  • 类似的 mismatch 也会出现在 Special-Token 上,例如序列结束标记
    • 在这种情况下,单 Token 的比较会将语义分歧与 Tokenizer 不匹配混淆起来
  • 本节的以上这些观察激发了超越单 Token 监督的动机:
    • 在每个前缀处,我们不仅仅比较采样的 Token,而是在一组合理的 Next-Token Continuations 上比较 Teacher 和 Student ,同时保留 Token-level 更新以保证稳定性
  • 图 5: Token-level 比较可能因 Tokenizer 不匹配而惩罚语义正确的输出
    • 理解:图中,因为 Token 是按照 Student 的 Tokenizer 来划分的,所以部分 Special Token 是 Student 和 Teacher 不同的,这些 Token 下,按照 Student 划分后,Teacher 出现这些 Token 的概率很低(按照 Teacher 的 Tokenizer 划分则出现概率很高)
      • 这个现象本质上是一种 Special-Token mismatch

Method

  • 本文的方法保留了 Token-level OPD,但在每个前缀上用一个基于 Teacher 选择的 support 集合的分布级比较取代了单 token 监督
    • 产生一个截断的 reverse-KL 目标,在保持计算效率的同时改善了训练信号的平衡

Teacher top-K local support matching,Teacher top-K 局部 support 匹配

  • 本文的方法不是在单个 Sampled-token 上比较 Teacher 和 Student ,而是在一个 Teacher 定义的局部 support 上对它们进行比较
  • 一个自然的起点是在前缀 \(c_{t}\) 处的全词表 reverse-KL:
    $$\mathcal{L}_{\text{full} }(c_t) = \sum_{v\in \mathcal{V} }\pi_\theta (v|c_t)\log \frac{\pi_\theta(v|c_t)}{q(v|c_t)} \tag {4}$$
  • Sampled-token OPD 可以被视为对这个量的单样本 Monte Carlo 近似:
    $$\mathcal{L}_{\text{sample} }(c_t,y_t) = \log \frac{\pi_\theta(y_t|c_t)}{q(y_t|c_t)},\qquad y_t\sim \pi_\theta (\cdot |c_t) \tag {5}$$
    • 这种近似在计算上很有吸引力,但将整个更新集中在一个采样的 token 上
  • 本文做法:在每个前缀上,在一个 Teacher 支持的 token 集合上比较 Teacher 和 Student
    • 对于每个 prompt \(x\),使用 Student 推理策略采样一组输出
      $$\{o_i\}_{i = 1}^G$$
    • 令为输出 \(o_{i}\) 在位置 \(t\) 处的前缀为:
      $$ c_{i,t} = (x,y_{i, < t}) $$
    • 定义 Teacher support 集合
      $$S(c_{i,t}) = \text{TopK}_q(c_{i,t}) \tag {6}$$
      • 这包含了在该前缀下 Teacher 认为(Next-token 候选)概率最高的 \(K\) 个 token
  • 本文在这个局部 support 内部对 Teacher 和 Student 的分布进行重新归一化:
    $$\begin{align}
    \hat{\pi}_{\theta}(v\mid c_{i,t}) &= \frac{\pi_{\theta}(v\mid c_{i,t})}{\sum_{u\in S(c_{i,t})}\pi_{\theta}(u\mid c_{i,t})}\\
    \hat{q} (v\mid c_{i,t}) &= \frac{q(v\mid c_{i,t})}{\sum_{u\in S(c_{i,t})}q(u\mid c_{i,t})}
    \end{align}
    \tag {7}$$
  • 训练目标是对所有 Rollout 位置的平均截断 reverse-KL:
    $$\mathcal{L}_{\text{LSM} } = \mathbb{E}_{x,\{o_i\} \sim \pi_{\theta ,\text{infer} } }\left[\frac{1}{\sum_{i = 1}^{G}|o_i|}\sum_{i = 1}^{G}\sum_{v\in S(c_{i,t})}\hat{\pi}_{\theta}(v\mid c_{i,t})\log \frac{\hat{\pi}_{\theta}(v\mid c_{i,t})}{\hat{q}(v\mid c_{i,t})}\right] \tag {8}$$
    • 相对于 Sampled-token OPD,这个目标在 Teacher 支持的局部区域内进行分布级比较,而不是仅仅奖励或惩罚一个采样的 token
    • 由此产生的更新将正向和负向调整重新分配到前缀中所有 Teacher 支持的候选 token 上,产生了一个更平衡的训练信号,同时仍然比全词表 KL Cheap 得多
  • 问题:为什么是 Teacher 的 Top 概率子集,不是 Student 的 Top-K 候选 Token?
    • 推测使用 Student 的 Top 概率子集会更好,因为这里是为了扩展采样到的 Token
    • 而且,采样到的 Token 理论上一定包含在 Student 的 Top-K 候选 Token 中,却不一定包含在 Teacher 的 Top-K 候选 Token 中(毕竟轨迹是从 Student 采样得到的)
    • 补充:下文中会有消融实验,两者在不同领域上收益有胜有负,另外,针对 Teacher 的 Top-K 候选 Token 可能不包含 Sampled Token 的情况,可以强行将 Sampled Token 添加到 Teacher 的 Top-K 候选 Token 集合中

Practical stabilization choices,实际生产中选择的稳定化选择

Support-set renormalization
  • 重新归一化是必要的,因为目标是在截断的 support 上而非完整词汇上进行评估
  • 没有重新归一化,优化可能会变得不稳定,因为 support 内部的 Teacher 和 Student 概率质量无法直接比较
    • 理解:不归一化时,两者的子集上的分布和(对应归一化分母)是不一样的
    • 问题:这种归一化改变了原始的 Teacher 和 Student 的 Token 概率(本身似乎有问题)
Top-\(p\) rollout sampling
  • 使用 top-\(p\) 采样生成 Rollout
  • 无约束采样偶尔会产生极低概率的 token,这反过来会 Create 一些前缀,在这些前缀上 Teacher 分布的信息量较少,而 Student 分布已经在恶化
    • 理解:一些极低概率的 Token 确实会导致生成的轨迹变得极端(无约束时有一定概率采样到极低概率的 Token)
  • Top-\(p\) 采样使轨迹更接近典型的延续,并使 Teacher 信号更可靠
Special-token masking
  • 屏蔽有问题的 Special-Token ,以减少由不兼容的分词约定引起的假阴性
    • 注意:这里不是修正,而是直接屏蔽
    • 理解:这里所谓 有问题的 Special-Token 是指 Teacher 和 Student Tokenization 方式不一致的 Token
  • 这是一个正交的工程修复:
    • 在本文的实验中,这个修复实质性地帮助了 Sampled-token OPD 基线,而局部 support 目标对其敏感度要低得多
  • In Principle,也可以合并多 token marker 变体或对等效的分词进行平均,但本文在此不采用这些特定于分词器的补救措施,因为掩码是最简单的与模型无关的修正
    • 理解:这里是指一些底层的 Token 修复方式了

Experiments

Setup

  • 本文在现有的 OPD 训练流程之上实现了局部 support 匹配,使用 Qwen2.5-7B-Instruct (2025) 作为 Student
  • 考虑两种 Setting:
    • (1) 一个单任务数学推理 Setting
      • OpenThinker3-7B (2025) 作为 Teacher
      • 训练使用 DAPO-Math-17K (2025) 的英文部分
      • 最大上下文长度为 16K
    • (2) 一个多任务 Setting
      • 在数学推理和基于 ALFWorld (2021) 的多轮 Agentic 任务之间交替进行
      • 数学任务使用 OpenThinker3-7B (2025) 作为 Teacher
      • Agentic 任务使用发布的 GiGPO-Qwen2.5-7B-Instruct-ALFWorld checkpoint (2025) 作为 Teacher
  • 所有运行默认使用:
    • batch size 128
    • mini-batch size 64
    • 学习率 \(2\times 10^{- 6}\)
    • 温度 1
    • Rollout 使用 top-\(p = 0.9\) 进行采样
  • 指标:
    • 在数学基准测试上报告 pass@1,在 ALFWorld 上报告成功率
    • 少数情况下还会为数学评估额外报告 average@32

Single-task math reasoning

  • 表 1 显示,在单任务数学推理中,局部 support 匹配相比 Sampled-token OPD 有所改进
    • Sampled-token OPD 已将平均分从 28.2 提高到 36.4
      • 注:但仍远落后于 Teacher
    • 在 Sampled-token OPD 上,仅使用 Special-Token 掩码就将采样式基线进一步改进到 40.7
      • 表明分词伪影是该问题的重要组成部分
    • 本文的完整方法达到 41.5
    • 掩码对本文方法影响不大 (41.0 对比 41.5),这与分布级 support 匹配 对分词器不匹配的敏感度低于单 token 监督 的结论一致

Multi-task agentic-plus-math training, Agentic 加数学联合

  • 表 2 显示了交替多任务训练中一个更不对称的模式
    • Sampled-token OPD 基线在 ALFWorld 上已经很强,主要的改进空间在于数学方面
  • 本文方法的无掩码版本将 Math500 从 76.0(Sampled-token OPD w/ mask)提高到 82.0,并将数学平均分从 36.6 提高到 41.7,同时在 ALFWorld 上保持竞争力
  • 带掩码的版本取得了最佳的 ALFWorld 结果 97.7,但牺牲了一部分数学增益
    • 理解:说明两个领域存在一些冲突,有一个 trade-off 的过程
  • 这些结果表明:
    • 局部 support 匹配在长 horizon Token-level 监督最脆弱的领域帮助最大,同时保留了强大的 Agentic 性能
    • 理解:这里的 长 horizon Token-level 监督最脆弱的领域 主要指的是数学领域上

Training dynamics and alignment,训练动态与对齐

  • 图 6、7 和 8 提供了优化动态的更详细视图
    • 注:图 6 的评测结果和 表 1 结果对不齐
    • 注:从 图 6 - 图 8 的整个评估分数看来,同一个方案训练过程中波动较大,实际上继续训练下去,结论可能回又不一样
Better learning curves
  • 在数学推理上,本文的方法在整个训练过程中都提高了训练奖励和评估性能,而不仅仅是在最后的 checkpoint
    • 这种模式在单任务设置和交替多任务设置中都成立
More stable optimization
  • 本文的方法产生了更小的梯度范数和更低的裁剪边界比例,同时保持了足够的策略熵,这表明优化更加稳定
  • 可以观察到, Special-Token 掩码在训练早期和中期显著降低了 Sampled-token OPD 的裁剪边界比例,而对本文的方法影响很小
Improved teacher-student alignment
  • 在 Sampled-token 上的 Teacher-Student 对数概率差距也变小了
    • 这表明截断的局部 support 目标即使在使用基线的采样式 token 诊断指标下,也改善了对齐性

Ablations

  • 表 3 和图 9 表明,本文方法拿到的这些增益源于多个设计选择,而非任何单一修改
  • 仅靠 Teacher top-K 比较是不够的:
    • Rollout 策略也必须保持在一个稳定区域,添加 top-p 采样将一个初始较弱的 top-K 变体变成了一个更强的配置
    • 在截断的 support 内部进行重新归一化是必不可少的,移除它会导致快速崩溃
    • 当 support 空间 \(K\) 足够大时,性能对确切的 support 大小并不特别敏感
    • 当 support 空间 \(K\) 太小或 Rollout 完全不受约束时,训练会变得不稳定
Top-K support variants
  • 本文的主要实验在 Teacher 的 top-K support 上定义了截断期望
    • 一个自然的问题是,这个选择本身是否关键,或者相近的 support 定义是否表现类似
  • 本文比较了三种变体:
    • Teacher top-K(主要结果中使用)
    • Student top-K
    • Teacher top-K 加上 Student 采样的 token
  • 表 4 表明,这种益处在不同相近的 support 定义下都相当稳健
    • 没有哪个单一选择在所有基准测试中占主导地位:
      • Teacher top-K 仍然具有竞争力
      • Student top-K 在几个单独的数据集上表现强劲(平均值优于 Teacher Top-K)
      • Teacher top-K 加上 Sampled-token 在这个初步比较中取得了最佳平均分
    • 这表明主要益处来自于用局部分布级匹配取代单 token 比较
      • 暂时没有唯一最优的 support 集合选择
    • 注:这个比较仍然是初步的,因此对 support 集合设计进行更系统的端到端研究仍然是重要的未来工作

Discussion and Limitations

  • 当前的目标仍然是一个截断的代理
    • 本文的局部 support 损失是在一个受限的 token 子集上,以及在由诸如 top-\(p\) 采样等 Rollout 策略生成的前缀上进行评估的
    • 这并不等同于全词表 reverse-KL,也没有明确校正产生训练前缀的采样过程
    • 这个局限性在本文的研究中仍未充分探索的两个地方最为重要:
      • 如何在扩充 Teacher top-\(K\) support 时纳入采样的 token
      • 当 Rollout 策略和训练策略不同时是否需要重要性加权式的校正
    • 作者将当前的公式视为一个实际的设计方案,而不是关于 support 集合构建的最终答案
  • Reward Hacking 的解释仍然是一个机制性假设
    • 本文的定性案例使失败模式具体化,但它们并未分离出一个完整的因果机制
    • 特别地,关于尖锐的 Teacher 分布和分布外前缀共同产生误导性局部奖励的假设,应被视为一个有证据支持的可能解释,而非一个完全确定的因果说明
  • Teacher 匹配仍然是任务成功的一个不完美代理
    • 即使 OPD 被明确定义为 Teacher 匹配目标,由此产生的奖励仍然可能与潜在的成功行为概念存在差异
    • 本文的 Reward Hacking 案例具体化了这种差距:
      • 局部上 Teacher 偏好的延续即使在整个轨迹已经无益甚至有害时,仍然可以获得奖励
      • 在本文的实验中,与 Teacher 之间仍存在显著差距,这表明更好的局部监督只是蒸馏问题的一部分,尤其是在 Teacher 和 Student 差异显著时
      • 缩小这一差距可能需要更强的 Rollout 控制、更好地处理分布偏移、更好地利用 Teacher 的不确定性,以及与可验证结果的奖励相结合

附录 A:Future Directions

OPD versus RL in multi-task transfer,OPD 与 RL 比较

  • 本文的多任务结果激励了对 OPD 和 RL 作为迁移机制进行更直接的比较
    • 在 RL 中,正迁移或负迁移可以直接从跨任务的环境奖励中读取
    • 在 OPD 中,优化目标仍然是 Teacher 派生的,因此迁移是通过 Teacher 认为是局部偏好的行为来过滤的
  • 这种区别可能有助于解释为什么本文的多任务增益在数学方面最强,以及为什么在此设置中附近的支持集定义变得不那么统一
    • OPD 和 RL 之间的任务匹配、计算匹配的比较将有助于阐明 Teacher 引导的迁移何时能跟踪环境级别的泛化,以及 Teacher 奖励差距何时成为瓶颈

Continual learning as a testbed,测试平台

  • 持续学习是 OPD 的另一个自然 Setting
  • Teacher 引导的 On-Policy 目标可以作为一种保留机制,同时 Student 适应新任务,但这种机制也将正好承受本文所揭示的问题:
    • 分布偏移、Teacher 过时以及在长适应视界上近似误差的累积
  • 建议测试 OPD 探究局部支持匹配是否能减轻遗忘,还可探究 Student 不断远离 Teacher 的原始领域时,基于 Teacher 的目标是否仍然有用

Relation to other stabilization directions,与其他稳定化方向的关系

  • 本文方法与下面方向是互补的:
    • Reward-Hacking 缓解
    • 使用 EMA 锚定和 Top-K KL (2026)
    • 基于扰动的 Off-Policy 校正 (2026)
    • Teacher 和 Student Rollout 之间的 Logit 级融合 (2026)
  • 这些方法解决了同一更广泛问题的不同部分:
    • 当 Teacher 和 Student 策略开始出现分歧,如何保持 Teacher 派生的学习信号有用
    • 将局部支持匹配视为该更大工具箱中的一个组成部分,而不是那些稳定化策略的替代品

附录 B: Bias and variance analysis of token-level versus sequence-level OPD,Token-level 与 Sequence-level OPD 的偏差和方差分析

B.1 Bias of the token-level estimator

  • 回顾因果 Return-to-go 形式的 Sequence-level 估计器
    $$\hat{\delta}_{\text{seq} } = \sum_{t = 1}^{T}\left(\sum_{t^{\prime} = t}^{T}r_{t^{\prime} }\right)g_{t} $$
  • 展开内部和得到
    $$\hat{\delta}_{\text{seq} } = \sum_{t = 1}^{T}r_{t}g_{t} + \sum_{t = 1}^{T}\sum_{t^{\prime} = t + 1}^{T}r_{t^{\prime} }g_{t} $$
  • 由于 Token-level 估计器只保留第一项,
    $$\hat{\delta}_{\text{tok} } = \sum_{t = 1}^{T}r_{t}g_{t} $$
  • 它们的期望差距是
    $$\mathbb{E}[\hat{\delta}_{\text{seq} }] - \mathbb{E}[\hat{\delta}_{\text{tok} }] = \mathbb{E}\left[\sum_{t = 1}^{T}\sum_{t^{\prime} = t + 1}^{T}r_{t^{\prime} }g_{t}\right] $$
  • 这明确表明 Token-level OPD 移除了未来奖励耦合项,因此通常相对于 Sequence-level 目标是有偏差的

B.2 Worst-case variance upper bounds,最坏情况方差上界

  • 假设存在常数 \(B_{r},B_{g} > 0\) 使得对所有 \(t\) 有
    $$|r_t|\leq B_r,\qquad | g_t| \leq B_g\quad \text{for all }t $$
  • 对于 Token-level 估计器,
    $$| \hat{g}_{\text{tok} }| \leq \sum_{t = 1}^{T}|r_t|| g_t| \leq TB_rB_g$$
    • 于是有:
      $$\mathbb{E}| \hat{g}_{\text{tok} }| ^2\leq T^2 B_r^2 B_g^2$$
    • 使用 \(\operatorname {Var}(X)\leq \mathbb{E}| X| ^2\) 可得到
      $$\operatorname {Var}(\hat{g}_{\text{tok} }) = O(T^2)$$
  • 对于 Sequence-level 估计器,定义
    $$R = \sum_{t = 1}^{T}r_{t},\qquad G = \sum_{t = 1}^{T}g_{t},\qquad \hat{g}_{\text{seq} } = RG $$
    • 于是又:
      $$|R|\leq TB_r,\qquad | G| \leq TB_g $$
    • 进一步有:
      $$| \hat{g}_{\text{seq} }| \leq T^2 B_rB_g,\qquad \mathbb{E}| \hat{g}_{\text{seq} }| ^2\leq T^4 B_r^2 B_g^2 $$
    • 最终有:
      $$\operatorname {Var}(\hat{g}_{\text{seq} }) = O(T^4) $$
  • 两者核心区别在于是否包含未来的所有奖励(包含时方差会变大)

B.3 Discussion

  • Sequence-level 估计器更接近精确的轨迹级目标
    • 但它将每个 Score 项与许多未来奖励耦合在一起
  • 在最坏情况下的缩放中,这将方差增长从序列长度的二次方改变为四次方
    • 这个论证是有意保守的,但它说明了为什么更强的奖励耦合在长视界后训练中可能成为问题

附录 C:Toy experiment details

C.1 Environment

  • 使用一个双任务一维连续控制环境来可视化更强的奖励耦合如何改变 OPD 优化
  • Student 策略是一个三层 MLP,大约有 4K 个参数
  • 输入是一个三维向量,包含任务标识、当前位置和归一化时间步长
  • 该策略输出高斯动作分布的均值和标准差,状态转移为
    $$s_{t + 1} = s_t + \delta ,\qquad \delta \sim \mathcal{N}(\mu ,\sigma) $$
  • 这两个任务是彼此的镜像:
    • 左任务从 \(+2\) 开始,目标是 \(-3\)
    • 右任务从 \(-2\) 开始,目标是 \(+3\)
  • 本文首先使用 REINFORCE 训练独立的 Teacher,然后通过交替任务 OPD 将它们蒸馏到一个共享的 Student 中

C.2 Gradient variance estimation

  • 在每个训练步骤,将一批 \(B = 64\) 条轨迹分成 \(M = 8\) 个 Micro-batch
  • 对于每个 Micro-batch \(m\),计算损失 \(\mathcal{L}_{m}\) 和输出层参数上对应的梯度向量 \(\mathbf{g}_{m}\)
  • 通过下式估计梯度方差
    $$\operatorname {Var}(\mathbf{g}) = \frac{1}{M}\sum_{m = 1}^{M}| \mathbf{g}_m - \bar{\mathbf{g} }| ^2,\qquad \bar{\mathbf{g} } = \frac{1}{M}\sum_{m = 1}^{M}\mathbf{g}_m $$
  • 仅将此量用作一个定性指标,但比较不同 \(\gamma\) 设置下的相对方差已经足够

C.3 Toy Additional Results of Toy Experiments

  • 图 A1、A2 和 A3 报告了不同 OPD 估计器 (\(\gamma \in \{0.0, 0.25, 0.5, 0.75, 1.0\}\)) 在三个随机种子下的梯度方差曲线和相应的状态访问热图
    • 尽管具体数值因种子而异,但定性模式是一致的
    • 所有 Setting 在优化初期都表现出较大的方差峰值,并且较大的 \(\gamma\) 通常在训练后期保持在较高的方差水平
    • 在几次运行中,\(\gamma = 0.75\) 或 \(\gamma = 1.0\) 下的方差比较小 \(\gamma\) 值下的方差保持高出一到几个数量级
    • 在所有运行中, Token-level OPD (\(\gamma = 0\)) 始终能学习到向两个任务的目标状态移动的轨迹
    • \(\gamma\) 的中间值在性质上保持相似,但变得更加分散
    • 当 \(\gamma\) 接近 Sequence-level 情况 (\(\gamma = 1.0\)) 时,学习到的轨迹常常偏离期望的方向,并在状态空间的次优区域附近稳定下来

附录 D:Qualitative OPD reward-hacking case study,定性研究

  • 为了补充正文中的代表性失败案例,这里总结一个来自 Sampled-token OPD 下多任务训练的较长轨迹
  • 按时间顺序阅读,该案例以几种形式表现出相同的模式:
    • 模型在已经有答案后仍然继续分析,陷入重复循环(例如“wait”),漂移到格式错误的延续中,并且仍然在这些 Token 上获得高的局部 Teacher 概率
  • 1)失败首先表现为过度延续
    • 即使在答案已经有效可用之后,局部信号仍然将大量质量放在通用的推理填充词和连接 Token 上,鼓励模型继续生成而不是干净地停止
    • 同样的模式稍后出现在诸如 “confirm” 这样的前缀上,局部信号仍然偏好额外的验证而不是终止
    • 这种行为的一部分也可能反映了 Teacher 自身的输出习惯
    • 图 A4 展示了几个代表性案例
  • 2)轨迹发展为犹豫循环和低信息延续
    • 重复的 “wait” Token、大量标点符号的延续以及其他语义薄弱的填充词可能保持局部可奖励,即使整个轨迹已经变得无益
    • 这与第 3.2 节中关于重复循环的讨论一致
    • 图 A5 中提供了两个类似的案例
  • 3)当 Student 进一步漂移到分布外,局部信号可能保持误导性的正向而不是自我纠正
    • 在案例研究中,这表现为退化和乱码输出,然而许多 Token 仍然获得高的 Teacher 概率
    • 图 A6 展示了一个例子

NLP——Why-Self-Distillation-Fails-in-Reasoning

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(Why-Self-Distillation-Fails-in-Reasoning)Why Does Self-Distillation (Sometimes) Degrade the Reasoning Capability of LLMs?, Microsoft, 20260325

Paper Summary

  • 整体总结:
    • 本文从信息论的视角看 Self-Distillation
    • 分析表名:Self-Distillation 的有效性 取决于信息如何提供给模型 ,以及模型如何将不确定性纳入其推理过程
    • Self-Distillation 通过鼓励模型产生更高置信度的答案 来重塑模型的推理行为
      • 这种效应能够实现更紧凑的推理,并在任务覆盖有限时快速提高领域内性能
      • 当任务覆盖范围广时,它会变得不那么有效,甚至可能损害 OOD 性能
  • 背景 & 问题提出:
    • 背景:Self-Distillation 是 LLM 的一种有效的后训练范式
      • 特点:通常在缩短推理轨迹的同时提升性能
    • 问题提出:
      • 在数学推理中,Self-Distillation 会减少响应长度,同时降低性能
    • 本文将这种性能下降归因于 Epistemic Verbalization (epistemic verbalization) 的抑制
      • 即对模型在推理过程中表达不确定性的行为的抑制
  • 实验 Insight:
    • 让 Teacher 依赖于丰富的信息会抑制不确定性表达
      • 这能够在有限的任务覆盖度下实现快速的领域内优化,但会损害 OOD 性能
      • 因为未见过的(unseen)问题往往受益于表达不确定性并进行相应调整
    • 在 Qwen3-8B、DeepSeek-Distill-Qwen-7B 和 Olmo3-7B-Instruct 上,性能下降高达 40%
  • 结论:暴露适当水平的不确定性对于稳健的推理至关重要 ,并强调了优化推理行为的重要性 ,而不仅仅是强化正确的答案轨迹

Introduction and Discussion

  • Self-Distillation 的定义:
    • (2022) 使用同一模型的两个实例:
      • 实例1:依赖于真实解决方案作为 Teacher
      • 实例2:无法访问解决方案的实例
    • Teacher 为 无法访问解决方案的实例 生成的响应提供信息丰富的奖励信号
  • Self-Distillation 与 RLVR 等后训练方法相结合,可以实现高效的性能提升 (2025; 2026;)
    • 在诸如代理环境 (agentic environments) 和科学推理等领域显示出尤为显著的改进,特别是在 In-domain 评估 Setting 下
    • 先前工作的实验观察:性能随着响应长度的减少而提高,这表明 Self-Distillation 促进了更简洁和有效的推理
  • 问题提出:
    • Self-Distillation 方法应用于数学推理任务时,发生了显著不同的现象
    • 图 1 比较了代表性 Self-Distillation 算法 SDPO 在化学领域 (a) 和数学领域 (b) 的效果
      • 在化学领域,与 GRPO 相比, Self-Distillation 显著减少了响应长度,同时快速提高了性能
      • 在数学领域,尽管响应长度随着训练进行而持续减少,但性能却显著下降,这与之前的发现相反
    • 这引出了一个问题:“为什么即使模型被训练成朝着正确答案移动,性能有时反而会下降?”

      ”Why does performance sometimes degrade despite the model being trained to move toward the correct answer?”

  • 本文分析结论:
    • 提供给 Teacher 的上下文信息越丰富,其生成的推理就越简洁和自信,不确定性表达显著减少,尤其是在数学推理中,性能会下降
    • 作者将这种影响归因于 Epistemic Verbalization (2026) 的抑制
      • 即对 模型明确地表达并将不确定性纳入其推理过程 的能力的抑制
      • 理解:本文的 Epistemic Verbalization 含义可以理解为是不确定性 Token
    • 像 DeepSeek-R1 (2025b) 这样强大的推理模型经常使用像“Wait”或“Hmm”这样的 Token 来表达不确定性
      • 这些表达可能不会直接推进推理,但移除它们会丢弃推理路径可能有缺陷的重要信号,导致显著的性能下降 (2026)
  • Self-Distillation 何时以及为何会抑制 Epistemic Verbalization ?
    • 本文确定了两个关键因素: 信息丰富度 和 任务覆盖度
    • 信息丰富度:
      • 当 Teacher 依赖于更丰富的信息(如正确的解决方案)时,它产生的推理轨迹几乎不表达不确定性
        • 从而鼓励学生模型 (student) 模仿一种自信的推理风格,这种风格预设了在推理时无法获得的信息
    • 任务覆盖度:
      • 任务覆盖度有限时,这种压缩使得能够快速进行领域内优化
      • 随着覆盖度的增加,训练中对 Epistemic Verbalization 的消除会干扰跨多样化任务的优化,从而在更具挑战性或之前未见过的(unseen)问题上降低性能
  • 结果表明:
    • 即使训练目标忠实地引导模型走向正确的推理轨迹,所产生的推理风格也可能会悄然转变,从而损害泛化能力
      • 标准目标不会惩罚对 Epistemic Verbalization 的抑制,但会对 OOD 性能产生负面影响
    • 这表明:
      • 后训练目标不仅要考虑答案的正确性 ,还要考虑激发和保留具有不确定性意识的推理行为

Preliminaries

Self-Distillation

  • 定义:
    • \(x\in \mathcal{X}\) 表示一个输入
    • \(y = (y_{1},\ldots ,y_{T})\) 表示由语言模型 \(\pi_{\theta}\) 生成的一个序列
  • 该模型定义了一个自回归分布
    $$ \pi_{\theta}(y|x) = \prod_{t = 1}^{T}\pi_{\theta}(y_{t}\mid x,y_{< t})$$
  • 在 Self-Distillation 中,同一个模型在不同的条件上下文下既充当学生又充当教师
    • 学生首先生成一个序列 \(y\sim \pi_{\theta}(\cdot \mid x)\)
    • 教师策略是通过让模型依赖于一个更丰富的上下文 \(c\) 来获得的,该上下文提供了关于输入的额外信息(例如,解决方案、环境反馈或其他辅助信号):
      $$ \pi_{\theta}^{T}(\cdot \mid x,c) = \pi_{\theta}(\cdot \mid x,c) $$
  • 训练过程最小化学生和教师下一个 Token 分布之间的散度:
    $$\mathcal{L}_{\text{SD} }(\theta) = \sum_{t}\text{KL}(\pi_{\theta}(\cdot \mid x,y_{< t})\parallel \text{stopgrad}(\pi_{\theta}(\cdot \mid x,c,y_{< t}))) \tag {1}$$
    • 这个目标鼓励学生匹配教师在更丰富上下文下的预测,使模型能够通过提炼训练时可用的信息来改进,而无需外部教师
    • 理解:
      • 这里主要强调目标,通过对上述目标求导可证明,上述目标的梯度本质等价于 On-Policy Distillation(RL)形式
        • 但在实现时 RL 仅针对当前采样到的 Token 进行更新,OPD 则会针对每个 Token 位置上,全词表上(或 Student Top-\(K\) 的)候选 Token 进行更新
      • 也就是说,这个目标可以被解释为 密集奖励策略梯度 :
        $$
        r_n = \log p_T(\hat{y}_n) - \log p_S(\hat{y}_n)
        $$
        • 简单理解:将原始目标设置为 KL 散度,然后按照当前策略采样并展开成对数相减形式即可看到 Thinking Machines 的 OPD 博客中给出的形式
        • 详细证明见 (SDPO)Reinforcement Learning via Self-Distillation, 20260128 & 20260216, ETH Zurich & Max Planck Institute for Intelligent Systems & MIT & Stanford 的附录 B.1 部分(本人解读博客:NLP——LLM对齐微调-SDPO)

Key Characteristics of Math Reasoning

  • 在 LLM 中,数学推理可以被视为一种自我贝叶斯推理 (self-Bayesian reasoning)
    • 其中每一步都仅基于问题和之前生成的 Token 进行生成,模型迭代地更新其对中间假设的信念(belief) (2026)
  • 数学推理涵盖了算术、代数、几何、文字题和逻辑模式识别等多种任务,使得评估基准常常因组合和推理深度的变化而相对于训练数据属于 OOD
  • 关于任务覆盖度、其对性能的影响以及这如何将数学与其他领域区分开来的更深入讨论,请参见第 6 节
  • 在这个过程中,对 \(y\) 的语言化不确定性(称为 Epistemic Verbalization (epistemic verbalization) (2026))可以作为一种信息丰富的信号,而不仅仅是风格上的冗余
    • 如图 2(a) 所示,没有这种信号的推理可能导致模型过早地固守错误的假设,且纠正机会有限,而 Epistemic Verbalization 则有助于维持替代假设并支持逐步减少不确定性
  • 在 Self-Distillation 中, Teacher 可以访问更丰富的上下文 \(c\),使其能够生成带有强提示和最小化不确定性表达的推理轨迹
    • 这会带来更简洁的响应 ,但可能会阻碍学生模型执行具有不确定性意识的推理的能力
    • 因此,激进的长度约束和过度自信的推理风格 有可能不仅消除了不必要的冗长内容 ,也消除了有价值的认知信号 (尤其是在参数知识有限的小模型中 )
  • 关键的挑战是:
    • 过滤掉非信息性内容,同时保留能够实现迭代信念修正的认知表达 ,而不是盲目地压缩推理过程

LLM Reasoning Behavior Under Richer Information,更丰富信息下的 LLM 推理行为

  • 为了形式化条件上下文的信息量,本文将 \(c\) 提供的关于目标序列 \(y\) 的信息定义为条件互信息
    $$I(y;c\mid x) = H(y\mid x) - H(y\mid x,c), \tag {2}$$
    • 条件互信息 \(I(y;c\mid x)\) 捕捉了在给定额外上下文 \(c\) 后,关于 \(y\) 的不确定性的减少量
  • 使用 DAPO-Math-17k 数据集 (2025) 和 DeepSeek-R1-Distill-Qwen-7B (2025b) 基础模型
    • 选择 100 个问题,在这些问题上,基础模型在 8 次 Rollout 中的准确率介于 0.125 和 0.5 之间
  • 定义:
    • \(s\) 表示完整解决方案(包括在 <think> 标签中的思维链)
    • \(s_{\text{th} }\) 表示移除了 <think> 内容的解决方案
    • \(\tilde{y}\) 表示之前在全解决方案指导下生成的响应
  • 本文比较了模型在四种条件信息递增的生成设置下的响应:
    • (1) 无引导生成 (Unguided generation):
      $$ c = \emptyset $$
      • 此时 \(I(y;c\mid x) = 0\)
    • (2) 解决方案引导生成 (Solution-guided generation):
      $$ c = s $$
      • 提供最大引导,并产生最大的 \(I(y;c\mid x)\)
    • (3) 解决方案引导生成(无 think 内容)(Solution-guided generation (without think contents)):
      $$c = s_{\text{\think} }$$
      • 由于 \(s_{\text{\think} }\) 是 \(s\) 的一个严格信息子集,于是有
        $$ I(y;s_{\text{\think} }\mid x)\leq I(y;s\mid x) $$
    • (4) 重生成条件生成 (Regeneration-conditioned generation):
      $$ c = \tilde{y} $$
      • 其中 \(\tilde{y}\) 是在设置 (2) 下生成的,于是有:
        $$ I(y;\tilde{y}\mid x)\leq I(y;s\mid x) $$
        • 理解:文章中没有非常明确这里的 \(\tilde{y}\) 具体是如何生成的,但这里应该是基于 Setting 2 中的完整方案,再让模型重新生成一次得到的结果,目前推测这个结果应该是也包含 Thinking 信息的
  • 这些设置引出了以下关于条件互信息的排序:
    $$\underbrace{I(y;c\mid x)}_{(1)} = 0< \underbrace{I(y;s_{\text{\think} }\mid x)}_{(3)}\leq \underbrace{I(y;\tilde{y}\mid x)}_{(4)}\leq \underbrace{I(y;s\mid x)}_{(2)} \tag {3}$$

Prompts

  • Prompts 用于无引导和解决方案引导设置的提示词如下

  • 对于重生成,本文使用了与 Hübottter 等 (2026) 相同的提示词

    • Prompt for unguided generation:

      1
      2
      {question}
      Please reason step by step, and put your final answer within \boxed{}.
    • Regeneration prompt (followed the prompt in Hübottter et al. (2026))

      1
      2
      3
      4
      {question}
      Please reason step by step, and put your final answer within \boxed{}.
      Correctsolution: {previously correct solution}
      Correctly solve the original question.
      • 理解:Regeneration 时,给出标准答案,再让模型解决问题

Epistemic tokens, Epistemic Token

  • Following Kim 等 (2026),本文作者定义了一组 10 个认知性标记(Epistemic Markers)作为不确定性外化可能发生区域的实用指标:
    $$ \mathcal{T} = \{\text{wait, hmm, perhaps, maybe, actually, alternatively, seems, might, likely, check}\} $$
  • 本文测量一个响应 \(y\) 的 Epistemic Token 数量为
    $$ E(y) = \sum_{t \in \mathcal{T} } \text{count}(t, y) $$

Results

  • 分析不同形式的解决方案引导如何影响模型的推理行为
    • 比较四种设置下的平均响应长度 \(\mathbb{E}[L(y)]\)、模型分数和 Epistemic Token 数量 \(\mathbb{E}[E(y)]\)
  • 如表 1 所示,这两个量都随着 \(I(y; c \mid x)\) 的增加而单调递减:
    $$\mathbb{E}[L(y)]\Big|_{(1)} > \mathbb{E}[L(y)]\Big|_{(3)} > \mathbb{E}[L(y)]\Big|_{(4)} > \mathbb{E}[L(y)]\Big|_{(2)}, \tag {4}$$
    • 并且对于 \(\mathbb{E}[E(y)]\) 也是如此
    • 证实了更丰富的条件信息会导致更简洁和自信的推理
  • 无引导生成 \((c = \emptyset)\) 产生了明显更长的响应和最高的 Epistemic Token 数量
  • 当在 (2) 中提供完整解决方案 \(s\) 时,模型以高置信度遵循给定的推理轨迹,其简洁输出可以看作是 \(s\) 中基本推理的压缩表示
  • 在 (3) 中,移除 <think> 部分仅保留 \(s_{\backslash \text{\think} }\) (13,054 个响应 Token 中的 640 个)
    • \(\mathbb{E}[L(y)]\) 和 \(\mathbb{E}[E(y)]\) 都再次向无引导水平增加,反映了显著的信息损失
  • (4) 依赖于重生成的响应 \(\tilde{y}\),产生了中间值(低于 (3) 但高于 (2))
    • 表明 \(\tilde{y}\) 保留了完整解决方案的大部分信息结构
  • 详细的每个 Token 的分解见附录 A.1.1
Takeaway 1: Information Richness and Epistemic Verbalization
  • 随着条件上下文 \(c\) 变得越来越信息丰富且直接有用,LLM 生成的答案更加自信,并且认知性不确定性表达更少

Supervised Finetuning with Self-Distillation,使用 Self-Distillation 进行 SFT

  • 问题提出:在高 \(I(y; c \mid x)\) 下对 Epistemic Verbalization 的抑制仅仅是风格上的变化,还是对推理能力有切实的影响
  • 为了验证这一点,本文使用 DeepSeek-R1-Distill-Qwen-7B (2025a) 在两个数据集上进行了 Off-policy Self-Distillation(即 SFT)
    • 每个数据集包含 800 个正确响应:
      • \(\mathcal{D}_{\text{ug} }\):无引导响应 \((c = \emptyset)\),具有高 \(\mathbb{E}[E(y)]\) 和 \(\mathbb{E}[L(y)] \approx 12k\) Token
      • \(\mathcal{D}_{\text{sg} }\):解决方案引导响应 \((c = s)\),具有低 \(\mathbb{E}[E(y)]\) 和 \(\mathbb{E}[L(y)] \approx 2k\) Token
  • 两个数据集都由完全正确的轨迹组成;关键区别在于训练信号的认知密度
    • 本文在多个数学基准上评估了得到的检查点(每个数据集的示例在作者的博客:Why Does Self-Distillation (Sometimes) Degrade the Reasoning Capability of LLMs? 中展示)
  • 如表 2 所示,数据集由正确答案组成
    • 在 \(\mathcal{D}_{\text{sg} }\) 上训练导致了所有基准上的显著性能下降
    • 在 \(\mathcal{D}_{\text{ug} }\) 上训练则没有产生显著的性能变化
    • 这种不对称性产生的原因是
      • 解决方案引导的响应之所以简洁,正是因为外部上下文 \(s\) 的存在
      • 在没有 \(s\) 的情况下将它们用作 SFT 目标,迫使模型模仿一种预设了推理时无法获得的信息的推理风格,从而有效地抑制了支持自主探索和错误修正的 Epistemic Token
    • 这些结果与 Kim 等 (2026) 一致,该研究表明抑制 Epistemic Verbalization 会显著降低推理性能

Epistemic Suppression and Reasoning Performance

  • 即使在正确的轨迹上进行训练,过度抑制 Epistemic Verbalization 也可能严重损害推理性能

On-Policy Self-Distillation

  • On-Policy Self-Distillation (2026;) 中,模型从自教师提供的奖励信号中学习,该教师可以访问正确的解决方案,并基于当前策略的响应
  • 具体做法:
    • 在 DAPO-Math-17k 数据集 (2025) 上,使用 Qwen3-8B (2025) 和 DeepSeek-R1-Distill-Qwen-7B (2025b) 作为基础模型,比较了 GRPO 和基于 Self-Distillation 的强化学习 (Reinforcement Learning via Self-Distillation, SDPO) (Hü2026)
      • 关于 Olmo-3-7B-Instruct (2025) 的附加结果见附录 D.2
    • 对于每个模型,跟踪训练得分和响应长度,以及在两个标准数学基准 AIME24 和 AMC23 上的 OOD 性能
      • 将教师策略固定为初始策略,而不是使用移动目标 ,因为这能获得更好的性能 (关于比较见第 5.4 节)
  • On-Policy Self-Distillation 的行为取决于两个因素:
    • (i) 基础模型已经表现出的认知口头化程度
    • (ii) 条件上下文 \(c\) 的丰富程度
  • 为了厘清这些因素,本文在两种设置下比较了 GRPO 和 SDPO:
    • \(c = s\)(完整解决方案)
    • \(c = s_{\text{\think} }\)(去除 <think> 内容的解决方案)

DeepSeek-R1-Distill-Qwen-7B

  • DeepSeek-R1-Distill-Qwen-7B 是一个代表性的高推理能力模型
    • DeepSeek-R1-Distill-Qwen-7B 以其在 <think> 标签内生成大量 Epistemic Verbalization 和产生长响应而闻名,实现了强大的推理性能
Training Performance
  • 如图 4a 所示
    • GRPO 训练略微增加了 \(\mathbb{E}[L(y)]\),同时得分略有提高
    • 采用 \(c = s\) 的 SDPO
      • \(\mathbb{E}[L(y)]\) 和得分都出现急剧的初始下降,然后性能逐渐恢复
      • 但在整个训练过程中仍低于 GRPO
    • 采用 \(c = s_{\text{\think} }\) 的 SDPO
      • \(\mathbb{E}[L(y)]\) 的下降幅度减弱,得分轨迹接近 GRPO
      • 这与第 3 节讨论的 \(I(y; c \mid x)\) 与认知抑制之间的关系一致
OOD Evaluation - AIME24, AMC23
  • 与训练趋势一致:
    • GRPO 在两个 OOD 基准测试上都取得了适度的提升(图 3b 和 3c),同时 \(\mathbb{E}[L(y)]\) 略有增加
      • AIME24: \(54.7 \rightarrow 56.0\)
      • AMC23: \(89.3 \rightarrow 91.1\)
    • 采用 \(c = s\) 的 SDPO 显著降低了性能
      • AIME24 上约 \(40%\)
      • AMC23 上约 \(15%\)
    • 采用 \(c = s_{\backslash \text{\think} }\) 的 SDPO 缓解了性能下降
      • 但性能仍低于基础模型
Reasoning Pattern
  • 图 3d 展示了训练后模型的 Epistemic Token 计数
  • GRPO 增加了 \(\mathbb{E}[E(y)]\),而 SDPO 则更激进地抑制了它,这与作者在整个分析中观察到的认知抑制与性能下降之间的相关性一致
    • 回顾 \(\mathbb{E}[E(y)]\) 是 Epistemic Token Count

Qwen3-8B (Thinking Mode: ON)

  • 启用思考模式后,Qwen3-8B 最初生成的响应非常长,甚至比 DeepSeek-R1-Distill-Qwen-7B 还要长,同时伴随着大量的 Epistemic Token
  • 详情见附录 A.1.2 所示
Training Performance
  • 如图 4a 所示
    • 在 GRPO 和 SDPO 下,\(\mathbb{E}[L(y)]\) 均有所下降
      • 其中 SDPO 表现出更大的下降幅度和相应的更大性能下降
        • Notably,\(\mathbb{E}[L(y)]\) 首先急剧下降,然后略有上升
        • 由于教师策略被固定为参考策略,将响应缩短约 \(900\) 个 Token 会降低 \(c\) 的信息量,即减小 \(I(y; c \mid x)\)
          • 随着上下文信息量减少,模型通过增加 Epistemic Verbalization 来补偿,导致长度部分恢复
          • 问题:这里的教师策略是参考策略的话,训练过程中教师策略应该是不变的,这时候为什么 \(c\) 的信息量会减小?大约减少 900 个 Token 的数字是从哪里看出来的(图 4 中给出的长度降幅都远远高于 900 个 Token)?
OOD Evaluation - AIME24, AMC23
  • 这种差距在 OOD 基准测试上变得更加明显:
    • GRPO 在 \(\mathbb{E}[L(y)]\) 逐渐下降的同时保持了基本稳定的性能
    • SDPO 则降至基础模型以下,尤其是在 \(c = s\) 的情况下
  • GRPO 和采用 \(c = s_{\backslash \text{\think} }\) 的 SDPO 达到了相当的训练性能
    • 但它们的 OOD 结果却出现分歧,尤其是在更具挑战性的 AIME24 上(AIME23 上还好)
    • 采用 \(c = s_{\backslash \text{\think} }\) 的 SDPO 随着训练的进行表现出逐渐的性能下降
Reasoning Pattern
  • GRPO 和 SDPO 两种方法相对于基础模型都降低了 \(\mathbb{E}[E(y)]\),但 SDPO 更为激进
  • 这表明 Qwen3-8B 最初产生的 Epistemic Verbalization 比必要的更多
  • 虽然两种方法都减轻了这种冗余,但过于激进的抑制可能会移除携带有用推理信息的认知信号

Qwen3-8B (Thinking Mode: OFF)

  • 当 Qwen3-8B 在不使用思考模式的情况下使用时,<think> 标签不存在,只比较 \(c = s\)
    • Qwen3-8B 最初产生的响应要短得多,并且表现出显著降低的性能
    • GRPO 通过促进 Epistemic Verbalization (如附录 D.1 所示)迅速增加了 \(\mathbb{E}[L(y)]\),快速达到了高训练得分
    • SDPO 减少了 \(\mathbb{E}[L(y)]\) 并且改进速度慢得多
      • 如图 5b 所示,训练得分略有增加,但 AIME24 上的测试性能略有下降 \((0.25 \rightarrow 0.23)\)
      • 这进一步说明了 Self-Distillation 下认知抑制的代价
Takeaway 3: Epistemic Verbalization Changes and Performance in On-Policy Self-Distillation
  • 随着教师上下文 \(c\) 变得信息更丰富, On-Policy Self-Distillation 会减少 Epistemic Verbalization 并缩短响应
  • 这种效应因基础模型最初表达的不确定性水平而异
    • 理解(初始模型的长度和 Epistemic Verbalization 等决定了使用 不同算法训练时观察到的 现象):
      • 如原始 Qwen3-8B (Thinking Mode: ON) 生成的响应非常长,且包含大量的 Epistemic Token
        • 此时训练 GRPO/SDPO 都会缩短长度,且 GRPO 和 采用 \(c = s_{\backslash \text{\think} }\) 的 SDPO 的分数差不多
      • Qwen3-8B (Thinking Mode: OFF) 则回答很短
        • 此时训练 GRPO 会提升长度,而 采用 \(c = s_{\backslash \text{\think} }\) 的 SDPO 则会降低长度

Ablation Study: Fixed vs. Moving Target Teacher,固定 Teacher 模型 or 滑动 Teacher 模型

  • 在朴素的 On-Policy Self-Distillation 中,教师和学生共享一个持续更新的策略
    • 此时教师是一个移动目标,可能引入训练不稳定性 (2026; 2026)
  • 为了缓解这个问题,SDPO 使用 EMA 平滑的教师(EMA 率:0.05)
    • 进一步的实验发现,将 EMA 率设置为 0.0(即固定教师为初始策略)能获得更好的性能(注:第 5 节遵循此设置)
  • 图 6: DeepSeek-R1-Distill-Qwen-7B 的固定教师与移动目标教师对比
    • 即使缓慢的 EMA 更新(率 0.05)也会通过反馈循环放大认知抑制,导致比固定教师更严重的性能下降
  • 图 6a 显示了在训练期间更新教师时的额外比较结果
    • 即使是缓慢的更新(例如,率 0.05)也会导致响应长度更急剧的减少,从而导致更大的性能下降
    • 这可以解释为 Self-Distillation 中的一个反馈循环:
      • 模型被训练产生越来越自信的输出,当使用同一个模型的 checkpoint 作为教师时,它会产生更自信的响应 ,从而在迭代中放大这种效应
        • 个人理解1:这个理解应该不对,个人理解应该是这样的:
          • 模型训练过程中本来就是越来越自信的,这个现象其实说明收敛快,并不一定是坏事
        • 个人理解2:从另一个视角看,持续变化的 Teacher 会导致目标(Teacher)一直在变化,不利于模型(Student)收敛,这类似 DQN 中最早面临的问题(使用的 Target Q 可缓解这个问题),所以 OPSD 中 实验发现这一设置有助于稳定训练
        • 个人理解3:使用初始的策略作为 Teacher,能隐式起到正则化作用,防止模型过度偏离初始策略 (观点来自 OPSD 中)
    • 问题(推测):如果 Teacher 不随着 Student 策略变化,那么 Teacher 的上限太明显了
      • 建议考虑以一定的间隔或较小的 EMA 更新参数(比如间隔 100 步或 EMA 系数=0.01 等),类似 DQN 中 Target Q 的实现,这样才能打开 Teacher 的上限
      • 但需要特别注意训练稳定性以及对原始策略的偏离程度(比如加一个 KL 散度来缓解,或者第一步更新前的策略给与固定高权重?)
  • 关于学习率和 top-k logits 的进一步消融研究见附录 E

Relationship Between Task Coverage, Epistemic Verbalization and Generalization Ability,任务覆盖 & Epistemic Verbalization 与泛化能力的关系

  • 上述分析可知,不论 Off-policy 还是 On-policy Setting
    • Self-Distillation 都会一致地产生更自信的响应,并降低了 \(\mathbb{E}[E(y)]\)
      • 问题:Off-policy 的 Self-Distillation 是什么?
      • 回答:是第 4 节开头提到的 SFT,在 SFT 上,也观察到了类似 \(\mathbb{E}[E(y)]\) 降低的现象
    • 这与 Hübottter 等 (2026) 的发现一致,该报告指出 SDPO 学会了简洁地推理:
      • 在科学问答(化学、物理、生物学和材料科学)(2024)、工具使用 (2023) 和 LiveCodeBench v6 (2025) 上,SDPO 在产生更短输出、更少认知标记的同时,实现了比 GRPO 更高的准确率
  • 在这些领域中, Self-Distillation 抑制了 Epistemic Verbalization ,同时提高了性能
  • 关键问题提出:为什么相同的机制在数学聚焦 Setting 中会导致性能下降?
    • 本文作者推测答案在于训练分布和评估分布之间任务覆盖的差异

Comparison of Task Coverage

  • 为了验证这个 hypothesis,作者比较了 SDPO 优于 GRPO 的设置与本文实验设置的数据集特征
  • 如表 3 所示
    • 化学数据集虽然规模庞大,但仅来自六种主要问题类型
      • 这些类型主要在表面细节上有所不同,而非底层结构
    • LiveCodeBench v6 包含多样化的问题,但总共只有 131 个
      • 在训练期间使用相同的训练/评估划分进行重复暴露
    • DAPO-Math-17k 让模型接触到 14,000 个不同的问题
      • 由于重复采样,在 100 步中抽取到 25,600 个样本中的 78%
        • 问题:如何理解这里的 重复采样和 78%?
      • 涵盖了广泛且不重叠的问题类型,并且评估是在未见过的的问题类型上进行的

Relationship Between Task Coverage and Learning Performance

  • 为了进一步研究任务覆盖与泛化之间的相互作用,本文改变了来自 DAPO-Math-17k 的训练问题数量
    $$|\mathcal{D}| \in \{1, 8, 64, 128, 512\}$$
    • 并使用 GRPO 和 SDPO 进行训练
  • 所有实验均使用 Qwen3-8B(Thinking Mode OFF)
Training Logs
  • GRPO 和 SDPO 随着 \(|\mathcal{D}|\) 的变化展现出不同的训练动态
    • SDPO
      • 当 \(|\mathcal{D}|\leq 128\) 时 ,SDPO 在减少 \(\mathbb{E}[L(y)]\) 的同时快速达到高分
        • 表明在小型任务集上 SDPO 具有更高的训练效率
      • 当 \(|\mathcal{D}| = 512\) 时 ,相对于 GRPO,\(\mathbb{E}[L(y)]\) 的进一步减少开始损害训练得分 ,(图 7 左数第三个图))
    • GRPO 的 \(\mathbb{E}[L(y)]\) 则随着 \(|\mathcal{D}|\) 的增加而逐渐增加
  • 这种差异可以通过任务覆盖来解释
    • 随着 \(|\mathcal{D}|\) 的增长,模型必须适应更广泛的推理模式
    • GRPO 通过增加 \(\mathbb{E}[E(y)]\) 来解决这个问题,使模型能够表达更大的不确定性并相应地调整其推理
    • SDPO 则鼓励自信、简洁的响应——这在任务覆盖较小时有效,但当问题集变得更大、更多样化时则会受限
OOD Evaluation - AIME24, MATH500
  • GRPO 和 SDPO 之间的区别在 OOD 基准测试(图 8)上变得更加明显
    • 在 GRPO 下,性能随 \(|\mathcal{D}|\) 的增大而稳定提升:
      • \(|\mathcal{D}| = 1\) 时收敛迅速但很快停止改进
      • 较大的 \(|\mathcal{D}|\) 则产生逐渐更高的最终得分
      • 伴随着 \(\mathbb{E}[L(y)]\) 的增加
    • 在 SDPO 下:
      • 较小的 \(|\mathcal{D}|\) 导致更严重的 OOD 性能下降
      • 即使在最大的 \(|\mathcal{D}|\)(DAPO Setting)下,SDPO 的性能仍然低于基础模型
        • 理解:图中的 SDPO DAPO 实验组即全量数据的场景
  • 示例推理模式见附录 A.2
Takeaway 4: Epistemic Verbalization Depends on Task Generalization
  • Epistemic Verbalization 的价值随泛化需求的增加而增加:
    • 对于熟悉、重复的任务(小 \(|\mathcal{D}|\)),Epistemic Verbalization 在很大程度上是多余的,可以为了效率而移除
    • 随着任务多样性的增长,Epistemic Verbalization 变得越来越重要

附录 A:Additional Analysis of Epistemic Tokens Count

A.1 LLM Reasoning Behavior Under Richer Information,更丰富信息下的 LLM 推理行为

A.1.1 Per-Token Analysis of Epistemic Verbalization,Epistemic Verbalization 的逐 Token 分析
  • 在第 3 节的表 1 中,本文比较了每个 Response 中十个 Epistemic Token 的平均数量
  • 图 9 进一步扩展了这一分析,展示了在不同程度的条件信息下,每个单独 Token 的平均每 Response 计数如何变化
    • 当检查每个 Token 的计数时,所有 Token 都表现出一致的趋势:
      $$
      \mathbb{E}[E(y)]\bigg|_{(1)} > \mathbb{E}[E(y)]\bigg|_{(3)} > \mathbb{E}[E(y)]\bigg|_{(4)} > \mathbb{E}[E(y)]\bigg|_{(2)},
      $$
      • 其中像 wait、maybe 和 perhaps 这样的 Token 尤其突出
  • 图 9: 四种生成设置下 Epistemic Token 使用情况的逐 Token 细分
    • 每个条形图表示每个 Response 中单个 Epistemic Token 的平均出现次数
    • 所有 Token 都遵循与总体趋势相同的顺序,其中 wait、maybe 和 perhaps 在不同设置下表现出最大的变化
A.1.2 Comparison of Epistemic Token Usage Across Models,不同模型间 Epistemic Token 使用情况的比较
  • 继第 3 节中对 DeepSeek-R1-Distill-Qwen-7B (DeepSeek-Distill-7B) 的分析之后
    • 这里进一步比较了三种设置下的 Epistemic Token 使用情况:
      • DeepSeek-Distill-7B
      • 启用思考模式的 Qwen3-8B
      • 禁用思考模式的 Qwen3-8B
  • 如图 10 所示
    • DeepSeek-Distill-7B 和启用思考模式的 Qwen3-8B 产生的 Epistemic Token 数量都远多于禁用思考模式的 Qwen3-8B
    • 虽然这两个启用思考的模型在表达不确定性方面有相似的趋势,但它们在偏好的 Epistemic Token 上有所不同
      • 例如:
        • DeepSeek-Distill-7B 经常使用 wait,并且使用 perhaps 和 maybe 的频率相当
        • Qwen3-8B 使用 perhaps 相对较少,更倾向于使用 maybe
        • Qwen3-8B 使用 alternatively 和 check 的频率远高于 DeepSeek-Distill-7B,并且总体上在其推理中嵌入了更多的不确定性
  • Extending 第 3 节的讨论,还可观察到
    • 在 Solution-Guided 生成下,Qwen3-8B 生成的 Epistemic Token 远少于 Unguided 生成
    • 在所有三种设置中 Epistemic Token 数量从大到小依次为:
      • 启用思考模式的 Qwen3-8B 产生的 Epistemic Token 最多
      • 其次是 DeepSeek-Distill-7B
      • 最后是禁用思考模式的 Qwen3-8B
Relationship Between Task Coverage and Learning Performance, 任务覆盖与学习性能之间的关系
  • 为了对第 6.2 节图 8 中的结果进行更深入的分析,本文比较了六种训练配置下 AIME24 上相对于基础模型的 Epistemic Token 计数的变化:
    • 交叉供 6 种:GRPO 和 SDPO,每种配置下 \(|D| \in \{1, 64, 512\}\)
  • 图 11 显示
    • GRPO:Epistemic Token 使用量 在增加
      • \(|D|\) 越大,Epistemic Token 使用量增加越多
    • SDPO:Epistemic Token 使用量 在减少
      • \(|D|\) 越大,Epistemic Token 使用量减少越少
  • 问题:相对之前的 图 3 ,为什么 图 11 这里 SDPO Epistemic Token 使用量减少的幅度这么小?

附录 B:Experimental Details

Training

  • 对于 GRPO 和 SDPO 训练

    • 本文在 SDPO 实现 github.com/lasgroup/SDPO 的基础上进行了构建,并额外加入了 DAPO-Math-17k 数据集
  • 原始的 DAPO-Math-17k 数据集使用以下 Prompt 格式:

    1
    Solve the following math problem step by step. The last line of your response should be of the form Answer: $Answer (without quotes) where $Answer is the answer to the problem. \n\n{question}\nRemember to put your answer on its own line after "Answer:".
  • 本文将其替换为更简单的格式(因为观察到这种格式能持续获得更高的评估性能):

    1
    {question}\nPlease reason step by step, and put your final answer within \boxed{boxed}.
  • 对于奖励验证,使用了 vert 框架中的评分函数,该函数从 \boxed{} 表达式中提取答案,并通过精确匹配和数学等价性检查(使用 math-verify,改编自 EleutherAI 的 lmevaluation-harness (2024))来验证其正确性

  • GRPO 和 SDPO 训练的超参数列在表 4、5 和 6 中

    • 对于图 8 中关于任务覆盖与学习性能之间关系的实验,由于使用了更小的训练问题集,本文将问题批次大小减少到了 64
  • 表 4: GRPO 和 SDPO 共享的通用超参数

  • 表 5: GRPO 特定超参数

  • 表 6: SDPO 特定超参数,从表 6 的超参数可以看出,训练时:

    • 训练的损失是 Jensen-Shannon 距离,且仅使用了 Top-100 Token 计算距离
    • 同时 EMA 为 0 表示 Teacher 模型固定不动

Evaluation

  • 使用表 7 中列出的超参数评估所有模型,这些设置遵循了每个模型官方文档中的推荐设置

Chat Templates for Different Model Series

  • 这里总结了几种开源权重语言模型家族使用的 Chat Template 格式

    • 每个模型系列使用不同的特殊 Token 和结构来区分用户和 Assistant 的对话轮次
    • 在整个过程中,本文使用相同的数学问题作为示例 Prompt
  • DeepSeek-R1-Distill-7B

    1
    2
    <begin_of_sentence></User>Find the largest possible real part of [(75 + 117)z + \text{frac}(96 + 144i)(z)] where z is a complex number with |z| = 4 
    Please reason step by step, and put your final answer within \boxed{}.<|Assistant|><think>
  • Qwen3-8B (Thinking Mode: ON)

    1
    2
    3
    4
    <|im_start|>user 
    Find the largest possible real part of [((75 + 117)z + \text{frac}(96 + 144i)(z)] where $z$ is a complex number with $|z| = 4$
    Please reason step by step, and put your final answer within \boxed{}.<|im_end|>
    <|im_start|>assistant
  • Qwen3-8B (Thinking Mode: OFF)

    1
    2
    3
    4
    5
    6
    <|im_start|>user 
    Find the largest possible real part of [((75 + 117)z + \text{frac}(96 + 144i)(z)] where $z$ is a complex number with $|z| = 4$
    Please reason step by step, and put your final answer within \boxed{}.<|im_end|>
    <|im_start|>assistant
    <think>
    </think>
    • 注:这是 Qwen3 的创新设计,使用 <think>\n</think> 来表示这里没有任何思考内容
  • OLMo-3-7B-Instruct

    1
    2
    3
    4
    5
    6
    <|im_start|>system
    You are a helpful function-calling AI assistant. You do not currently have access to any functions.<functions></functions><|im_end|>
    <|im_start|>user
    Find the largest possible real part of \[((75 + 117)z + \text{frac}(96 + 144i)(z)\] where $z$ is a complex number with $|z| = 4$
    Please reason step by step, and put your final answer within \\boxed{}.<|im_end|>
    <|im_start|>assistant

附录 C:Comparison with OPSD

  • 最近,OPSD (2026) 展示了通过 Self-Distillation 在数学推理中的性能提升,特别是在 Qwen3 系列上
  • 差异一:模型 Setting 差异
    • 本文的 Setting :学生和教师都启用或都禁用 思考模式
    • OPSD 的 Setting :采用了一种混合配置,其中 学生禁用思考模式 ,教师启用思考模式
    • 正如本文的实验也证实的那样
      • 启用思考模式会产生更长且带有更多 Epistemic Token 的 Response,这使得这种混合设置的功能更类似于传统的教师-学生蒸馏,尽管使用的是同一个底层模型
      • 注:这种配置本质上仅限于像 Qwen3 这样支持切换思考模式的模型家族,其他的模型并不支持(其实已经不能算是同一个模型了)
  • 差异二:训练 Token 差异
    • (为了训练效率)OPSD 并不在整个学生 Response 上进行训练
      • OPSD 只关注一个前缀(默认为 1024 个 Token)
      • 注:OPSD 中(附录 B 中),不是只关注 1024 的前缀,而是在生成时就特意只生成了 1024 个
        • 理解:传统的 RL 中不能这样做(这是 OPD 专有的优点)
          • 在 OPD 场景中,不需要 Rollout 结束就可以有奖励(来源于 Teacher)
          • 在传统 RL 场景,一般是需要 Rollout 结束才能得到 Reward 反馈的
    • 本文使用的 SDPO 则是所有 Response 上都训练的
  • 差异三:微调方式
    • 本文 SDPO:基于 verl (2024) 执行全量微调
    • OPSD:使用基于 trl (2020) 的 LoRA 微调
  • 差异四:其他超参数差异
    • 本文 SDPO:Batch Size 256,学习率 1e-5
    • OPSD:Batch Size 32,学习率 1e-6
    • OPSD 有更高的训练效率(BS 更小),但每一步的参数更新更小
      • 注:学习率本该是全量微调上更小的,这里更多是与 BS 有关
  • 图 12: Qwen3-1.7B 中 OPSD 混合蒸馏与本文同质 Chat Template 设置的训练动态
    • (a) 在混合(Hybrid)设置下
      • 启用思考的教师最初提高了学生性能,但随着时间的推移收益发生逆转
      • 同质设置显示出持续下降的趋势
    • (b) 同质(Homogeneous)设置中的 Response 长度和 Epistemic Token 使用情况
  • 在 Qwen3-1.7B 的混合设置和前缀学习下,如图 12a(橙色线)所示
    • 观察到一个有趣的训练动态:
      • 在早期阶段,启用思考的教师驱动学生生成更长的 Response,并提高了性能,展示了混合蒸馏在训练早期的有效性
      • 但随着训练的进行,Response 长度逐渐减少,同时伴随着性能的相应下降
    • 在本文的同质设置(如图 12b 所示,学生和教师都启用了思考模式)下,性能持续下降
      • Response 长度和 Epistemic Token 计数也稳步下降,这与本文之前的分析一致
  • 问题遗留:
    • 这种针对 Qwen3 系列的混合蒸馏设置代表了一个有趣的研究方向,具有其独特的训练动态
      • 例如,为什么性能会先提升后下降,以及这是否源于推理行为的变化或 Chat Template 的不匹配
    • 深入探究这个现象超出了本工作的范围,留待未来探索

附录 D:More On-Policy Self-Distillation Results

D.1 Qwen3-8B (Thinking Mode: OFF)

  • 作为第 5.3 节图 5 的扩展,本节额外比较了 AMC23 的评估分数和 AIME24 上 Epistemic Token 使用量的变化
  • 如图 13 所示
    • GRPO 显著增加了 Response 长度,并在两个基准测试上都带来了显著的性能提升
    • SDPO 表现出不同的趋势:
      • 在 AMC23 上,acc@16 从 0.67 增加到 0.73,同时 Response 长度减少约一半
      • 在 AIME24 上,acc@16 从 0.25 略微下降到 0.23,pass@16 下降更显著
    • 在 AMC23 上,SDPO 以更短的 Response 实现了约 6 个百分点的提升,而 GRPO 则以更长的 Response 为代价获得了约 36 个百分点的更大提升
      • 在保持合理 Response 长度的同时实现大的性能提升仍然是一个开放的挑战

D.2 Olmo-3-7B-Instruct

  • 除了 DeepSeek-R1-Distill-Qwen-7B 和 Qwen3-8B,本文进一步在另一个模型家族 OLMo-3-7B-Instruct 上评估了 On-Policy Self-Distillation
  • 如图 14 所示,与本文之前的分析一致,SDPO 也降低该模型上的推理性能,OOD 评估分数降至基础模型之下
    • 证实了作者的发现并非模型依赖的,反映了跨不同模型家族的推理行为的稳健特征

D.3 Pass@16 Score

  • 除了图 3b、3c、4b 和 4c 中显示的 DeepSeek-Distill-7B 和 Qwen3-8B(thinking mode enabled)的 acc@16 分数外
    • 本文还在图 15 中报告了 pass@16 分数
  • GRPO 和 SDPO 在 pass@16 上的差距:
    • DeepSeek-Distill-7B 大于 Qwen3-8B
    • 并且在更难的基准测试(AIME24)上比 AMC23 上更为明显
  • 问题:如何理解 GRPO 和 SDPO 在 pass@16 上的差距,DeepSeek-Distill-7B 大于 Qwen3-8B 这件事情?
    • 简单理解:
      • 模型方面,一个理解是 DeepSeek-Distill-7B 的不确定性更低一些,长度更短一些,受 SDPO 的影响也更小?
      • 难度方面,一方面是越难的题目可能对 Epistemic Token 的数量要求就更高些,另一方面也可能更多是 OOD 导致的?

附录 E:More Ablation Study

  • 为了检查各种训练超参数对 Self-Distillation 行为的影响,本文通过改变 top-\(k\) 蒸馏参数和学习率进行了额外的实验
    • 问题:这里的 top-\(k\) 参数是什么?
  • 如图 16a 所示
    • 将 top-\(k\) 从 100 增加到 256 在训练动态或最终性能上没有产生显著差异
  • 如图 16b 所示
    • 将学习率从 1e-5 降低到 1e-6 仅仅是减缓了性能下降的速度
  • 模型最终收敛到相同的推理行为

AGI——林俊旸博客-From-Reasoning-Thinking2Agentic-Thinking

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始博客链接:From Reasoning “Thinking” to Agentic “Thinking”, 20260326, 林俊旸
    • 注:博客原始发布于 X 上

博客核心观点总结

从 Reasoning “Thinking” 到 Agentic “Thinking” 的范式转移

  • 本文的观点更像是回顾
    • 虽然本文核心观点在这个时间点已经不算是很新了,从 Claude 4 到 DeepSeek-V3.2 等来看,基本是大家的共识了
    • 但是本文带着 Qwen 团队当年的一些尝试和思考,仍然是值得一读的
  • 过去两年模型评估的重点正从 “让模型思考更长” 转向 “让模型为了行动而思考”
    • “让模型为了行动而思考” 即在与环境互动中持续更新计划、采取行动
  • 注:原文其实有点没有明确,这里的 Agentic “Thinking” 可能是指下面两种可能:
    • 目标视角:强调 让模型为了行动而思考(Thinking)这个目标
    • 过程视角:强调 在 Thinking 时进行 Agentic 行为(比如 工具调用)这个过程
    • 这两个方式并不耦合,本文的很多内容感觉是在聊 过程视角 ,但很多句子会给人在聊 目标视角 的感觉
      • 原文2:I believe the answer is agentic thinking: thinking in order to act, while interacting with an environment, and continuously updating plans based on feedback from the world.
        • 这里看,似乎也在强调目标是为了 Act
      • 原文1:Agentic thinking is a model that reasons through action
        • 这里看, Agentic thinking 强调的是 允许 LLM 在思考时调用工具
    • 个人理解:
      • 林俊旸的意思是:Agentic Thinking 的定义是为了做出正确的 Act 而 Thinking,同时允许 Thinking 过程中与环境交互(比如调用工具等 Act)
      • 实际上,个人理解在非 Agentic 场景(比如 Open Knowledge QA 场景)中,也可以让 LLM 在 Thinking 过程中与环境交互
        • 此时 LLM 已经具备 Agentic 能力,但目标并不是作出正确的 Act(除非把开放式问答的 Answer 也视作一个 Agentic Act)

推理模型的成功本质上是基础设施的成功

  • 25 年前后,OpenAI 的 o1 和 DeepSeek R1 先后证明了通过强化学习训练模型进行“思考前回答”是可行的,且这一方向可以在不同实验室复现和扩展
  • 推理模型的训练依赖于大规模 rollout、高吞吐验证、稳定策略更新等系统能力,其突破不仅是算法问题,更是基础设施问题

融合 “Thinking Mode” 与 “Instruct Mode” 的思考

  • 融合 “Thinking Mode” 与 “Instruct Mode” 比预期更困难
    • Qwen3 等模型尝试统一两种 Modes ,但两者的数据分布和行为目标存在根本冲突:
      • Instruct Mode 追求简洁、低延迟
      • Thinking Mode 追求深度推理与正确性,融合不当会导致两端表现都受损
  • 实践中“分离”比“融合”更符合商业需求
    • 在 Qwen 后续版本(如 2507 系列)中,团队选择将 Instruct 和 Thinking 作为独立产品线发布,因为大量企业用户仍需要高吞吐、低成本、可操控的纯 Instruct 行为
  • Anthropic 提供了另一种思路:可控预算的集成推理
    • Anthropic 的 Claude 3.7 和 Claude 4 主张将推理作为集成能力,允许用户设置 “Thinking Budgets” ,并在扩展思考中支持工具调用,强调思考应为真实任务(如编码、智能体工作流)服务

“ Agentic Thinking ” 的核心是 “通过行动进行思考”

  • 原文:Agentic thinking is a model that reasons through action
  • 与纯推理不同, Agentic Thinking 要求模型能够决定何时行动、调用哪些工具、处理环境反馈、在失败后修正计划,并在多轮交互中保持连贯性
  • 注:原文也有提到,即使是数学、代码等传统推理任务,更优的方式也不是让模型输出更长的内部独白,而是允许其搜索、模拟、执行、观察、验证

智能体 RL 的基础设施难度远高于推理 RL

  • 智能体训练涉及工具服务器、浏览器、模拟器等复杂环境,训练与推理必须解耦,否则 rollout 吞吐量会因工具延迟和环境状态而严重下降
  • 环境设计成为智能体时代的关键研究工件
    • 在智能体时代,环境的质量(稳定性、真实性、覆盖度、困难程度、状态多样性、反馈丰富度、Exploit Resistance、可扩展性)与模型本身同等重要,环境构建正在成为一个独立的创业方向
      • Exploit Resistance 主要是指 “抗利用性”,即防止模型 Reward Hacking 的能力
    • 原文:

      In the agent era, we should obsess over environment quality: stability, realism, coverage, difficulty, diversity of states, richness of feedback, exploit resistance, and scalability of rollout generation

  • Reward Hacking 在智能体时代更加危险
    • 当模型获得工具访问权限后,可能通过查答案、利用环境漏洞等方式作弊,因此环境设计、评估器鲁棒性和反作弊机制成为新的研究瓶颈

未来

  • Agentic thinking 将变成 thinking 的主流
    • Even on very difficult math or coding tasks, a genuinely advanced system should have the right to search, simulate, execute, inspect, verify, and revise. The objective is to solve problems robustly and productively.
  • 竞争焦点从“模型训练”转向“系统构建”
    • 未来的竞争优势不再仅来自更好的 RL 算法或训练数据,而是来自更好的环境、更紧密的训练-服务集成、更强的框架工程,以及多个智能体协同的系统能力

原文完整译文

From “Reasoning” Thinking to “Agentic” Thinking

  • 过去两年重塑了我们评估模型的方式以及对它们的期望
    • OpenAI 的 o1 表明,“思考”可以成为一种一等公民能力,一种可以为其进行训练并向用户展示的能力
      • DeepSeek-R1 证明了推理式的后训练可以被复现和扩展
    • OpenAI 将 o1 描述为一个通过强化学习训练的模型,能够“在回答之前思考”
      • DeepSeek 则将 R1 定位为一个与 o1 具有竞争力的开放推理模型
  • 2025 年上半年主要关注的是 “Reasoning Thinking”:
    • 如何让模型花费更多的推理时计算,如何用更强的奖励信号训练它们,以及如何展现或控制这种额外的推理努力
  • 现在的问题是,接下来是什么?
    • 作者相信答案是 “Agentic Thinking”:为了行动而思考,同时与环境互动,并根据来自世界的反馈持续更新计划

What the Rise of o1 and R1 Actually Taught Us,o1 和 R1 的兴起实际教会了我们什么

  • 第一波推理模型教会我们,如果想在语言模型中扩展强化学习,需要确定性的、稳定的、可扩展的反馈信号
    • 数学、代码、逻辑和其他可验证的领域变得核心,因为这些场景中的奖励远强于通用的偏好监督
    • 它们让 RL 能够优化正确性而非合理性
    • 基础设施变得至关重要
  • 一旦模型被训练成能够通过更长的轨迹进行推理,RL 就不再是监督式微调之上的一个轻量级附加项
    • RL 变成了一个系统性问题
    • 需要大规模的 rollout、高吞吐量的验证、稳定的策略更新、高效的采样
    • 推理模型的出现既是一个建模故事,也是一个基础设施故事
  • OpenAI 将 o1 描述为一个通过 RL 训练的推理系列
    • DeepSeek R1 后来通过展示基于推理的 RL 需要多么专注的算法和基础设施工作,进一步强化了这一方向
  • 第一个重大转变:从扩展预训练转向扩展后训练以进行推理

The Real Problem Was Never Just “Merge Thinking and Instruct”,真正的问题从来不仅仅是“融合 Thinking 与 Instruct”

  • 在 2025 年初,Qwen 团队中的许多人都怀有一个雄心勃勃的构想
    • 理想的系统将统一 Thinking Mode 和 Instruct Mode
  • 这个统一 Mode 将支持可调节的推理投入,类似于低/中/高推理设置的思路
    • 而且它会根据 Prompt 和上下文自动推断出适当的推理量 ,这样模型就可以决定何时立即回答,何时思考更长时间,以及何时在真正困难的问题上花费更多的计算资源
  • 从概念上讲,这是正确的方向
    • Qwen3 是最清晰的公开尝试之一
    • Qwen3 引入了“混合 Thinking Mode”
      • 在一个家族中同时支持 Thinking 和非 Thinking 行为,强调了可控的 Thinking 预算,并描述了一个四阶段的后训练流程,该流程在长链 Thinking 冷启动和推理 RL 之后明确包含了 “Thinking Mode 融合”
  • 融合说起来容易,做起来难
    • 难点在于数据
    • 当人们谈论融合 Thinking 和 Instruct 时,通常首先想到的是模型端的兼容性:
      • 一个 checkpoint 能否同时支持两种 Mode
      • 一个聊天模板能否在它们之间切换
      • 一个服务栈能否暴露正确的开关
    • 更深层的问题是,两种 Mode 的数据分布和行为目标是截然不同的
  • 在尝试平衡模型融合与提高后训练数据的质量和多样性时,Qwen 并未在所有方面都做到完美
    • 在那个修订过程中,Qwen 也密切关注用户实际如何使用 Thinking Mode 和 Instruct Mode
      • 一个强大的 Instruct 模型通常因其直接性、简洁性、格式符合度、在重复性、高并发的企业任务(如重写、标注、模板化支持、结构化提取和运营 QA)上的低延迟而受到青睐
      • 一个强大的 Thinking 模型则因其在难题上花费更多 token、保持连贯的中间结构、探索替代路径以及保留足够的内部计算以切实改进最终正确性而受到青睐
    • 这两种行为特征相互冲突
      • 如果融合后的数据没有经过精心整理,结果通常是两边都表现平庸:
        • “Thinking” 行为变得嘈杂、臃肿或不够果断
        • “Instruct” 行为则变得不那么清晰、不那么可靠,并且比商业用户实际想要的成本更高
  • 在实践中,分离仍然具有吸引力
    • 在 2025 年晚些时候,继 Qwen3 最初的混合框架之后,2507 系列发布了独立的 Instruct 和 Thinking 更新,包括单独的 30B 和 235B 变体
    • 在商业部署中,大量客户仍然希望为批处理操作提供高吞吐量、低成本、高度可操控的 Instruct 行为
      • 对于这些场景,融合显然不是一项优势
      • 分离这些产品线使得团队能够更清晰地专注于解决每种 Mode 的数据和训练问题
  • 其他实验室选择了相反的道路
    • Anthropic 公开主张一种集成的模型理念:Claude 3.7 Sonnet 被作为一个混合推理模型推出,用户可以选择普通响应或扩展思考,API 用户可以设置 Thinking Budgets
    • Anthropic 明确表示,他们认为推理应该是一种集成的能力,而不是一个独立的模型
    • GLM-4.5 也公开定位为一个具有 Thinking 和非 Thinking Mode 的混合推理模型,统一了推理、编码和智能体能力
    • DeepSeek 后来也通过 V3.1 的 “Think & Non-Think” 混合推理向类似方向发展
  • 关键问题在于融合是否是“有机的(organic)”
    • 如果 Thinking 和 Instruct 仅仅被共同放置在一个 checkpoint 内,但行为仍然像两个生硬拼凑的人格,那么产品体验仍然不自然
    • 一个真正成功的融合需要一个平滑的推理投入谱系
      • 模型应该能够表达多个层次的投入,并且理想情况下能够自适应地选择它们
      • 类似 GPT 的投入控制方式指向了这一点:一种基于计算量的策略,而不是一个二元开关

Why Anthropic’s Direction Was a Useful Corrective,有用的修正

  • Anthropic 围绕 Claude 3.7 和 Claude 4 的公开表述是克制的
    • 他们强调了集成推理、用户可控的 Thinking Budgets 、真实世界任务、编码质量,以及后来在扩展思考期间使用工具的能力
    • Claude 3.7 被作为一个具有可控预算的混合推理模型推出
    • Claude 4 则通过允许推理与工具使用交错进行扩展了这一特性,同时 Anthropic 强调编码、长期运行任务和智能体工作流是主要目标
  • 产生更长的推理轨迹并不会自动使模型更智能
    • 在许多情况下,过度的可见推理痕迹表明分配不当
    • 如果模型试图以同样的冗长方式对所有事情进行推理,它可能未能区分优先级、未能压缩信息、或者未能采取行动
    • Anthropic 的轨迹暗示了一种更严谨的观点:
      • 思考应该根据目标工作负载来塑造
      • 如果目标是编码,那么思考应该有助于代码库导航、规划、分解、错误恢复和工具编排
      • 如果目标是智能体工作流,那么思考应该提高长期执行的质量,而不是仅仅产生令人印象深刻的中间文本
  • 这种对目标效用的强调指向了更大的方向:
    • 我们正在从训练模型的时代转向训练智能体的时代
    • 作者他们在 Qwen3 的博客中明确指出了这一点,写道 “我们正在从一个专注于训练模型的时代过渡到一个以训练智能体为中心的时代”,并将未来的 RL 进展与环境反馈联系起来,以实现长程推理
      • 一个智能体是一个能够制定计划、决定何时行动、使用工具、感知环境反馈、修正策略并在长时间跨度内持续运行的系统
      • 它由与世界的闭环互动来定义

What “Agentic Thinking” Really Means

  • Agentic Thinking 是一个不同的优化目标
    • 推理 Thinking 通常通过最终答案前的内部推演质量来判断:模型能否解出定理、写出证明、生成正确的代码或通过基准测试
    • Agentic Thinking 关注的是模型在与环境互动时能否持续取得进展
      • 注:从这里看,作者似乎想将 Agentic Thinking 定义为 过程视角
  • 核心问题从“模型能思考足够久吗?”转变为“模型能以维持有效行动的方式思考吗?”
    • Agentic Thinking 必须处理几个纯推理模型大多可以避免的问题:
      • 决定何时停止思考并采取行动
      • 选择调用哪个工具以及按什么顺序
      • 整合来自环境的嘈杂或不完整的观察结果
      • 在失败后修正计划
      • 在多个回合和多次工具调用中保持连贯性
      • Agentic Thinking 是一个通过行动进行推理的模型

Why Agentic RL Infrastructure Is Harder,智能体 RL Infra 更难

  • 一旦目标从解决基准问题转向解决交互式任务,RL 技术栈就会发生变化
    • 用于经典推理 RL 的基础设施是不够的
    • 在推理 RL 中,通常可以将 rollout 视为大部分自包含的轨迹,并使用相对清晰的评估器
    • 在智能体 RL 中,策略被嵌入到一个更大的框架中:
      • 工具服务器、浏览器、终端、搜索引擎、模拟器、执行沙箱、API 层、内存系统和编排框架
      • 环境不再是一个静态验证器,它是训练系统的一部分
  • 这创造了一个新的系统需求:训练和推理必须更清晰地解耦
    • 没有这种解耦,rollout 吞吐量会崩溃
    • 考虑一个必须针对实时测试工具执行生成代码的编码智能体:
      • 推理端等待执行反馈时会停滞,训练端因缺少完整的轨迹而饥饿,整个 Pipeline 的 GPU 利用率远低于你对经典推理 RL 的预期
      • 添加工具延迟、部分可观测性和有状态环境会放大这些低效问题
        • 结果:实验速度会大幅变慢
  • 环境本身也成为一个一流的研究工件
    • 在 SFT 时代,我们痴迷于数据多样性
    • 在智能体时代,我们应该痴迷于环境质量:稳定性、真实性、覆盖率、难度、状态多样性、反馈丰富度、防利用性以及 rollout 生成的可扩展性
    • 环境构建已经开始成为一个真正的初创公司类别,而不是一个附带项目
    • 如果智能体被训练用于类似生产的环境,那么环境就是核心能力栈的一部分

The Next Frontier Is More Usable Thought,前沿思考

  • 作者预计 Agentic Thinking 将成为思考的主导形式
    • Agentic Thinking 最终可能会取代许多旧的静态独白式推理 Thinking :那些过长、孤立、试图通过输出更多文本来弥补缺乏互动的内部轨迹
    • 即使在非常困难的数学或编码任务上,一个真正先进的系统也应该有权进行搜索、模拟、执行、检查、验证和修订,目标是稳健且高效地解决问题
  • 训练此类系统最困难的挑战是 Reward Hacking
    • 一旦模型获得了有意义的工具访问权限, Reward Hacking 就会变得更加危险
      • 一个拥有搜索功能的模型可能学会在 RL 期间直接查找答案(问题:这没问题吧?)
      • 一个编码智能体可能利用仓库中的未来信息、滥用日志或发现使任务无效的捷径
      • 一个带有隐藏漏洞的环境可以让策略看起来超常,但实际上是在训练它作弊
    • 这就是智能体时代变得比推理时代更加微妙的地方
      • 更好的工具使模型更有用,但它们也扩大了虚假优化的攻击面
    • 我们应该预期,下一个严峻的研究瓶颈将来自环境设计、评估器鲁棒性、反作弊协议以及策略与世界之间更原则性的接口
      • 尽管如此,方向是明确的
      • 支持工具的思考就是比孤立的思考更有用,并且更有机会提高实际生产力
  • Agentic Thinking 也将意味着框架工程
    • 核心智能将越来越多地来自多个智能体如何组织:
      • 一个负责规划和分配工作的编排器,充当领域专家的专用智能体
      • 一些执行更狭窄任务的子智能体,同时帮助控制上下文、避免污染并保持不同推理层次之间的分离
      • 未来是从训练模型到训练智能体,以及从训练智能体到训练系统的转变

Conclusion

  • 推理浪潮的第一阶段确立了一件重要的事情:
    • 当反馈信号可靠且基础设施能够支持时,在语言模型之上进行 RL 可以产生质量上更强的认知能力
  • 更深层的转变是从推理 Thinking 到 Agentic Thinking :
    • 从思考更长时间到为了行动而思考
  • 训练的核心对象已经改变
    • 训练的核心是“模型加环境”系统(model-plus-environment system),或者更具体地说,是智能体及其周围的框架(Harness)
    • 这改变了之前关于 “哪些研究组件最重要(what research artifacts matter most)” 的认知:
      • 关键 Artifacts: 模型架构和训练数据、环境设计、rollout 基础设施、评估器鲁棒性以及多个智能体协调的接口
    • 这也改变了 “Good Thinking” 的含义:最有助于在现实世界约束下维持行动的轨迹,而不是最长或最显眼的轨迹
    • 这还将改变竞争优势的来源
      • 在推理时代,优势来自更好的 RL 算法、更强的反馈信号和更可扩展的训练 Pipeline
      • 在智能体时代,优势将来自更好的环境、更紧密的“训练-服务”集成、更强的框架工程,以及能够在模型的决策与其产生的后果之间形成闭环的能力

NLP——LLM对齐微调-RLCF-Scientific-Taste

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:AI Can Learn Scientific Taste, 20260315, Fudan & Shanghai Innovation Institute & OpenMOSS Team & THU

Paper Summary

  • 整体总结:
    • 作者创新性地使用 Scientific Taste 来量化 生成/评判 High Potential Impact Research Ideas 的能力
      • 其实在本文就是使用引用量来评判依据,Pairwise 作为信号,同时对齐发表时间和领域进行消偏
    • 本文将 Scientific Taste 学习形式化为一个偏好建模和偏好对齐问题
    • 本文提出了一种新的方法(RLCF,RL from Community Feedback)
      • 顾名思义:利用引用信号作为社区反馈进行偏好建模和对齐 (即使用 社区信号作为监督)
      • 训练了两个模型:
        • 奖励模型:用于科学判断的 Scientific Judge
          • Scientific Judge 随着数据和模型规模的扩大而扩展,并能跨时间、领域和同行评审偏好进行泛化,可以作为 Scientific Thinker 的生成式奖励模型
          • 实验表明: Scientific Judge 优于 GPT-5.2 和 Gemini 3 Pro,且可以泛化到未来年份和未见过的领域
          • 问题 & 思考:这里模型学到的可能是一些特征,如是否 Survey、具体方向(同一个领域内不同方向引用量也不同)等
        • Generator:用于科学构思的 Scientific Thinker
          • Scientific Thinker 提出的 Research Idea 比 Baseline 具有更高的潜在影响力
          • 问题 & 思考:这里的评估使用的是 SOTA 模型来投票判断 Scientific Thinker vs Baseline 的胜率,其实并不严谨,因为 Scientific Taste 本身是不太可通过 LLM 直接评估的
    • 核心贡献:证明了 Scientific Taste 可以从大规模的社区反馈中学习,算是 LLM for Science 的一步探索

Introduction and Discussion

  • 大多数研究都集中在提高 AI Scientists 的执行能力上,增强 AI 的 Scientific Taste 这一方向仍未得到充分探索
  • Scientific Taste 并不仅仅是主观偏好的问题
    • Hume(苏格兰哲学家)认为,品味的标准可以从合格评判者的共同评判中产生,而非来自任意的个人偏好 (2026)
    • Kant (1994) 将品味引入为一种“共通感”,一种共享的感受,它考虑了他人的可能评判,而不仅仅是个人感受
  • 在科学背景下,这种社区评判通过研究社区内的长期互动得以体现
    • 与这种 Scientific Taste 相符的工作更有可能被后续研究复用和扩展
    • 最终,社区反馈通过信号表达出来,主要是通过引用,这是衡量科学研究影响力最常见的方式
  • 作者提出了一种利用大规模社区反馈来构建社区偏好信号的训练范式(RLCF)
    • 并将 Scientific Taste 学习形式化为一个偏好建模和偏好对齐问题
    • 特殊设计(与常规方式不同):为了将原始社区反馈(例如,引用)转化为可学习的偏好信号,将绝对反馈转换为匹配的 Pairwise 比较,并构建了 SciJudgeBench (SciJudgeBench)
      • SciJudgeBench包含 700K 对论文摘要(高被引 vs. 低被引),其中每一对都通过研究领域和发表时间进行匹配,这样得到的 Pairwise 信号能更直接地反映社区对高潜在影响力想法的偏好
  • 对于偏好建模(学会评判), 本文训练了一个生成式奖励模型 Scientific Judge
    • 基于自身的评估标准比较两篇论文,然后在推理后做出判断,选出更好的一篇
    • 除了作为奖励模型, Scientific Judge 还可以在新生论文获得任何引用之前对其进行排名
    • 使用 GRPO 训练 Scientific Judge ,并根据其偏好判断是否正确来分配奖励
  • 对于生成:for 提出有前景的研究方向,本文 训练一个策略模型 Scientific Thinker
    • 奖励模型为 Scientific Judge ,通过 RL 训练
    • Scientific Thinker 能生成具有高学术价值和潜在影响力的科学想法(与社区偏好对齐)
    • 场景设定:
      • 人类科学家通常在受到一篇新论文启发时会产生新的 Research Idea
      • 类似地,本文作者向 Scientific Thinker 提供一篇论文的标题和摘要,Prompt 它在思考后提出一个具有高潜在影响力的后续 Research Idea
  • Scientific Judge 评估:
    • 在 SciJudgeBench 上的表现显著优于 GPT-5.2, Gemini 3 Pro 等 SOTA 模型
    • 能泛化到未来年份的数据、未见过的领域以及同行评议偏好
      • 这表明它学习到了一种可迁移的 “Taste” 表征
  • 作者认为, Scientific Taste 并非一种神秘的人类特质,而是一个可学习的目标
    • 理解:这有待商榷
  • 本文贡献总结:
    • 将 Scientific Taste 学习形式化为一个偏好建模和偏好对齐问题,提出了 RLCF 训练范式
      • RLCF 利用社区信号(例如,引用)作为监督信号
    • 构建了用于训练和评估 AI 科学 Judgement Capability 的 SciJudgeBench ,它由70万对基于引用、按领域和时间匹配的论文摘要对组成
    • 训练了用于科学判断的 Scientific Judge ,其表现优于当前 SOTA,并能跨时间、跨领域和跨同行评议分数进行泛化
    • 训练了用于创意生成的 Scientific Thinker ,该模型在经过训练后能提出具有更高潜在影响力的想法

Background and Related Work

Definition Scientific Taste

  • 伟大的科学家拥有强大的判断力和远见,这与 Scientific Taste 密切相关
  • 本文呢使用 Scientific Taste 这个术语来指代判断和提出具有高潜在影响力的 Research Idea 的能力
Potential Impact
  • 首先形式化一个 Research Idea 具有潜在影响力的含义
  • 引用是衡量科学研究影响力的最常见方式
  • 考虑一篇已发表的论文 \(p\)
    • 设 \(c_{t}(p)\) 是论文 \(p\) 在发表后第 \(t\) 年获得的新引用次数
    • 将 \(c_{t}(p)\) 建模为一个非负随机变量,其分布取决于该论文及其时间背景
    • 论文 \(p\) 的累积期望影响力定义为:
      $$I(p) = \lim_{N\to \infty}\sum_{t = 1}^{N}\mathbb{E}[c_t(p)] \tag{1}$$
      • 其中 \(\mathbb{E}[c_t(p)]\) 表示第 \(t\) 年的期望引用增量
      • 具有更大 \(I(p)\) 的论文被认为具有更高的潜在影响力
Judgement Capability
  • 模型 \(\theta\) 的 Judgement Capability 通过比较论文对累积期望影响力的期望准确率来衡量
  • 令 \(\mathcal{D}\) 表示一个按领域和时间匹配的论文对的分布
  • 对于单个对 \((p_a,p_b)\),其真实标签为:
    $$y(p_a,p_b) = \begin{cases} 1, & \text{if } I(p_a) > I(p_b),\\ 0, & \text{otherwise}. \end{cases} \tag{2}$$
  • 注意,即使 \(I(p_a)\) 和 \(I(p_b)\) 都发散,这个标签也是良定义的(见附录 G 的形式化证明)
  • 在实践中,本文使用有限期近似
    $$ I_N(p) = \sum_{t = 1}^{N}\mathbb{E}[c_t(p)]$$
  • Judgement Capability 是:
    $$\text{JUDGE}_\text{cap}(\theta) = \mathbb{E}_{(p_a,p_b)\sim \mathcal{D} }\left[\mathbb{I}\left[\text{JUDGE}_\theta (p_a,p_b) = y(p_a,p_b)\right]\right] \tag{3}$$
    • 其中 \(\text{JUDGE}_{\theta}(p_{a},p_{b})\) 是模型的预测结果
    • 更高的 \(\text{JUDGE}_{\text{cap} }(\theta)\) 表示更强的 Judgement Capability
Ideation Capability
  • 模型 \(\phi\) 的创意生成能力由其提出的想法的期望影响力来刻画
  • 给定一个种子参考论文 \(s\in S\),模型 \(\phi\) 生成一个新的 Research Idea \(\text{THINKER}_{\phi}(s)\)
    • 创意生成能力是:
      $$\text{THINKER}_\text{cap}(\phi) = \mathbb{E}_{s\sim S}\left[I(\text{THINKER}_{\phi}(s))\right] \tag{4}$$
  • 对于两个模型 \(\phi_{A}\) 和 \(\phi_{B}\),如果满足下面的条件,则称 \(\phi_{A}\) 比 \(\phi_{B}\) 具有更强的创意生成能力:
    $$ \text{THINKER}_\text{cap}(\phi_{A}) > \text{THINKER}_\text{cap}(\phi_{B}) $$
Scientific Taste
  • 本文将 Judgement Capability 和创意生成能力的结合称为 Scientific Taste
  • 形式上,如果一个模型同时实现了高 \(\text{JUDGE}_{\text{cap} }\) 和高 \(\text{THINKER}_{\text{cap} }\),则称其拥有强大的 Scientific Taste

AI for Scientific Research

  • 当前对 AI Scientists 的训练主要集中在文献搜索 (2025, 2025, 2025, 2026) 和实验执行 (2025, 2025, 2024, 2025, 2025, 2025, 2025) 上
    • 这些能力解决的是如何进行研究,而不是哪些研究方向值得追求
    • 人工评估显示,LLM 能够生成新颖的 Research Idea ,但通常难以可靠地区分具有高潜在影响力的方向和那些表面新颖但琐碎的想法 (2024)
    • 这种差距构成了当今 AI Scientists 与人类专家之间的一个关键差异:Scientific Taste,Scientific Taste 包括两方面的能力:
      • (1)评判候选想法的科学价值
      • (2)提出具有高潜在影响力的研究问题、假设和方法
  • 最近的研究探索了利用LLM来评估学术稿件、预测评审分数和生成反馈 (2024, 2024, 2025, 2024, 2025, 2025)
    • 这些工作主要将语言模型用作审稿流程中的组件,而不是增强模型内在的科学 Judgement Capability
  • 先前的工作 (2025, 2024) 通常使用监督微调在审稿人反馈上训练模型
    • 本文通过 RL 使用社区反馈来训练模型,使其能够判断并提出具有高潜在影响力的想法,从而更紧密地与更广泛的社区偏好对齐
  • 当前的创意生成方法也显示出明显的局限性
    • 在实践中,创意生成的改进通常由随机启发式或简单的头脑风暴策略驱动 (2024)
    • 近期如 OpenNovelty 等工作使用信息检索来衡量一个想法与先前工作的差异程度(即新颖性)(2026)
    • 目前,创意生成的优化主要集中在外部检索和模型提示刺激上 (2024, 2026),而增强模型内在的创意生成能力这一方向仍未得到充分探索

RL Training Paradigms for LLMs

  • RLHF 收集人类偏好标注,训练一个奖励模型来捕捉人类偏好,然后使用该奖励优化策略模型,从而能够更好地对齐主观偏好,例如乐于助人和无害
    • 最近的工作进一步扩展了奖励建模的规模,并为评估奖励模型开发了标准化基准 (2025, 2024, 2025)
  • 对于数学和编程等任务,RLVR 利用由标准答案、单元测试或形式化检查器提供的可验证奖励
    • 已在数学推理、代码生成和更广泛的后训练流程中带来了巨大收益
  • RLVR 本质上与具有可验证真实情况的任务相关联,使其难以应用于科学判断和创意生成等开放式任务 (2025)
  • RLHF 受限于其对昂贵人工标注的依赖 (2022, 2022),并且无法仅通过个体偏好来反映社区层面的偏好
  • 本工作提出了 RLCF ,利用从社区互动中自然涌现的可扩展的社区反馈信号
    • 本质是在捕捉了社区偏好

RLCF:Reinforcement Learning from Community Feedback

  • RLCF 包含三个阶段:
    • (1)构建社区偏好,收集社区反馈信号来构建社区偏好数据
    • (2)偏好建模,训练 Scientific Judge 来预测 Research Idea 的潜在影响力
    • (3)偏好对齐,使用 Scientific Judge 作为奖励模型来监督 Scientific Thinker 生成具有高潜在影响力的科学想法

Community Feedback as Supervision

  • 使用引用作为科学社区的反馈信号,因为引用计数是通过研究社区内的长期互动所反映的社区评判
    • 高被引可以代表一项科学研究的高影响力 (2025)
  • 为了减轻原始引用计数中的领域和时间偏差 ,通过配对来自同一领域和年份的文章 来构建训练数据
    • 其中引用显著更高的文章被标记为 Perferred(Higher-impact)Item
  • 每个训练示例由两个科学想法(由其标题和摘要代表)(2025, 2025) 和一个二元标签组成,该标签指示哪个想法具有相对更高的引用
  • 本文将得到的数据集称为 SciJudgeBench ,将社区反馈转化为 Pairwise 监督信号,从而实现了可扩展的偏好学习

Preference Modeling: Scientific Judge

  • Scientific Judge 通过 Pairwise 比较来预测哪个 Research Idea 具有更高的潜在影响力
  • 在 SciJudgeBench 的训练集上使用 GRPO 来训练 Scientific Judge
  • 对于每个输入 \(x\),策略 \(\pi_{\theta}\) 采样一组 \(G\) 个输出 \(\{o_i\}_{i = 1}^G\),每个输出包含一个推理轨迹和一个偏好预测,奖励是一个二元正确性信号:
    $$r_{i} = \begin{cases} 1, & \text{if } \hat{y} (o_{i}) = y, \\ 0, & \text{otherwise}. \end{cases} \tag{5}$$
    • \(\hat{y} (o_i)\) 从输出 \(o_i\) 中提取预测的偏好
    • \(y\) 是观察到的标签
  • 在每个组内,优势被归一化:
    $$ \hat{A}_i = \frac{(r_i - \text{mean}(\mathbf{r}))}{\text{std}(\mathbf{r})} $$
  • 策略通过最大化一个带有 KL 惩罚的裁剪目标函数来更新,该惩罚指向一个参考策略 \(\pi_{\text{ref} }\):
    $$\mathcal{I}(\theta) = \mathbb{E}_x\left[\frac{1}{G}\sum_{i = 1}^G\min \left(\rho_i\hat{A}_i,\text{clip}\left(\rho_i,1 - \epsilon ,1 + \epsilon\right)\hat{A}_i\right) - \beta D_{\text{KL} }(\pi_\theta | \pi_{\text{ref} })\right] \tag{6}$$
    • 其中 \(\rho_{i}\) 是重要性比率
      $$ \rho_{i} = \frac{\pi_{\theta}(o_{i}\mid x)}{\pi_{\text{old} }(o_{i}\mid x)} $$
    • \(\epsilon\) 是裁剪范围
    • \(\beta\) 控制 KL 惩罚的强度
  • 详细的超参数值在原论文的附录 B 中提供

Preference Alignment: Scientific Thinker

  • 本文使用 Scientific Judge 作为生成式奖励模型来训练 Scientific Thinker
    • Scientific Thinker 是一个学习提出具有高潜在影响力的科学想法的策略模型
  • 优于这是一个没有真实标签的开放式任务,缺乏客观且通用的标准,对单个科学想法进行评分是困难的
    • Pairwise 比较更为自然和可靠,因为比较两个想法更容易
    • 作者设计了基于比较的 GRPO (2025, 2025, 2026),使用来自 Scientific Judge 的 Pairwise 偏好来计算每个想法在组内的胜率作为奖励
Comparison-Based GRPO
  • 给定一个包含种子论文的提示 \(x\),策略 \(\pi_{\theta}\) 采样一组 \(G\) 个响应 \(\{o_1, \ldots , o_G\}\),每个响应提供一个候选 Research Idea
  • 不直接对每个想法打分,而是进行由奖励模型评判的循环赛
  • 每个候选想法与其他所有想法进行比较,由 Scientific Judge 进行判断,总共产生 \(\binom{G}{2}\) 个 Pairwise 比较结果
  • 对于 \(o_{i}\),基于比较的奖励是其 Research Idea 在组内的胜率:
    $$r_{i} = \frac{1}{G - 1}\sum_{j\neq i}s(o_{i},o_{j}) \tag{7}$$
    • \(s(o_{i},o_{j})\in \{0,1\}\) 表示在奖励模型的判断下,\(o_{i}\) 的 Research Idea 是否战胜了 \(o_{j}\) 的 Research Idea :
      • \(s(o_{i},o_{j}) = 1\) 表示获胜
      • \(s(o_{i},o_{j}) = 0\) 表示落败
  • 给定这些奖励,训练目标与原始的 GRPO(公式 6)相同
  • 基于比较的 GRPO 利用采样响应之间的比较来计算奖励,使其适用于科学创意生成等开放式任务
    • 注:这会导致时的推理成本较高

AI Can Learn Scientific Judgement(Experiments 1)

  • 本节重点关注训练 Scientific Judge
    • 首先确立 Scientific Taste 训练的可扩展性趋势 (S4.2)
    • 然后验证学到的 Scientific Taste 能够跨时间、领域和同行评审偏好进行泛化 (S4.3)

Experimental Setup

Training Data
  • 从截至 2024 年发表的 2.1M 篇 arXiv 论文构建了 SciJudgeBench ,在计算机科学、数学、物理和其他领域生成了 696,758 个领域和时间匹配的偏好对
  • 偏好标签来源于引用次数
  • 详见附录 A 了解构建细节
Test Sets
  • 在三种互补的设置下评估 Scientific Judge ,分别测试领域内判断、时间外推和跨指标迁移
  • 在所有 Setting 中,每个对都按领域和发表时间进行匹配,以便在相似领域和时期的论文之间进行比较
    • (1) Main (In-domain) :
      • 728 个对,涵盖计算机科学、物理、数学和其他领域,衡量跨主要科学领域的分布内引用偏好预测
      • 完整的领域到子类别的映射见附录 A
    • (2) Temporal OOD :
      • 514 个对,来自 2025 年发表的论文,在训练期之后,测试学到的引用偏好是否能外推到未来的论文
    • (3) Metric OOD (ICLR) :
      • 611 个对,来自 ICLR 投稿 (2017–2026),其中偏好由同行评审分数而非引用次数决定,测试基于引用的判断是否能迁移到基于同行评审的偏好
      • 本文还在 160 个 bioRxiv 生物学的对上报告了结果 (附录 A.5)
    • 详见附录 A 了解构建细节
Models
  • 在 Qwen2.5-Instruct 系列 (1.5B, 3B, 7B, 14B, 32B 参数) (2024)、Qwen3-4B-Instruct-2507、Qwen3-30B-A3B-Instruct-2507 (2025) 和 Llama-3.1-8B-Instruct (2024) 上训练 Scientific Judge
  • 每个训练后的模型被命名为 SciJUDGE-(base),例如 SciJUDGE-Qwen3-4B
    • 与未训练的基础模型和闭源模型进行比较 (表 3)
    • 完整的模型细节见附录 B
Training
  • 使用 GRPO,以偏好预测正确性作为可验证奖励
  • 模型生成一个推理轨迹,后跟一个预测 (A 或 B),如果正确则获得奖励 1,否则为 0
  • 训练配置和计算资源见附录 B
Evaluation
  • 为减轻位置偏差,通过交换论文顺序 (A ↔ B) 对每个对评估两次,仅当在两个顺序下模型都做出正确且一致的预测时才计为正确 (2023)
    • 问题:这里的训练时的 Pairwise 对也是包含了交换顺序的吗?
  • 详见附录 B.5

Scaling Trends

  • Scientific Judge 在所有模型规模和系列上都有效地学习了 Scientific Taste ,揭示了与数据量和模型大小相关的扩展行为 (图 3,表 3)
Data scaling leads to better performance
  • Scientific Judgement 性能随着更多训练数据的增加而稳步提升
  • 学习曲线表明数据规模与性能之间大致呈对数线性关系
  • 在训练过程中,Qwen3-4B 的总分从 60.3 上升到 75.3,Qwen3-30B-A3B 从 66.3 上升到 80.6,所有领域都有所提升
Model size scaling leads to better performance
  • Scientific Judgement 性能随着模型大小的增加而持续提升
  • 此外,SciJUDGE-Qwen3-30B 超越了所有列出的闭源基线,表明扩大模型规模为科学判断带来了显著提升
  • 在 Qwen2.5 系列中,经过 SciJUDGE 训练后的平均准确率从 72.1 (1.5B) 增加到 73.2 (3B)、76.9 (7B)、80.6 (14B) 和 83.7 (32B)
  • Qwen3 系列也呈现类似趋势,SciJUDGE-Qwen3-30B 的表现优于 SciJUDGE-Qwen3-4B (平均准确率 80.6 vs. 75.3)
Takeaway 1
  • Scientific Judgement 学习是可扩展的
  • 随着训练数据量的增加,各领域的测试集性能呈对数线性提升
  • 随着模型规模的增大,性能也随之提高
  • SciJUDGE-Qwen3-30B 超越了所有列出的闭源基线
  • 这一结果进一步表明,通过强化学习进行偏好建模是可扩展的

Generalization Results

  • 本节主要测试学到的 Scientific Taste 是否能沿三个轴泛化到训练分布之外:时间、领域和评估标准
Temporal generalization to future preferences
  • 使用 RLCF 训练显著提升了对未来论文偏好的预测能力
  • 在 2025 年发表的论文上,大多数基础模型和领域都取得了一致的提升,平均准确率最高提升了 +55.1 个百分点 (表 4)
  • 这些结果表明,引用数据捕捉到了社区价值的稳定信号,这些信号可以泛化到训练期之后
Generalization to unseen fields
  • Scientific Judge 能有效地泛化到未见领域,表明从计算机科学论文中学到的科学判断可以迁移到训练领域分布之外
  • 仅在计算机科学数据上训练
    • 能持续提升对数学、物理和其他学科的影响力预测,所有基础模型都取得了显著的进步 (表 5)
  • 这种跨领域迁移值得注意,因为不同学科在知识、风格和数据分布上存在很大差异
    • 但仍然表现出可以学习和迁移的共享科学价值模式
  • 这些结果表明,RLCF 有助于模型获得更可泛化的科学判断,而不仅仅是拟合特定领域的信号
Generalization to peer-review preference
  • Scientific Judge (Scientific JUDE) 也显著提升了对同行评审偏好的预测一致性
  • 在 ICLR 论文对上,所有基础模型的准确率都持续提升,最高提升了 +72.0 个百分点 (表 6)
  • 这种跨指标迁移表明,基于引用训练的模型捕获了社区偏好模式,这些模式可以扩展到训练期间使用的特定反馈信号之外
Takeaway 2
  • 学到的 Scientific Taste 可以以三种方式进行泛化:
    • 跨时间到未来的论文、跨领域到训练分布之外、以及跨指标到同行评审分数
  • 这表明 Scientific Judge (Scientific JUDE) 从社区反馈中捕获了可迁移的模式,为 AI 可以学习广泛可泛化的 Scientific Taste 提供了证据

AI Can Learn Ideation with High Potential Impact(Experiments 1)

  • 本节重点关注使用基于比较的 GRPO (Comparison-Based GRPO) (§3.3) 和 Scientific Judge 作为奖励模型 (§4) 来训练 Scientific Thinker

Experimental Setup

Data
  • 使用 2025 年的高被引论文作为种子论文
    • 训练集包含 1 月至 7 月发表的 4,000 篇论文
  • 评估数据集:
    • In-domian:使用同期发表的 200 篇论文作为领域内测试集
    • OOD:8 月至 12 月发表的 200 篇论文作为领域外测试集
Models
  • 在两个策略模型上训练 Scientific Thinker :Qwen3-30B-A3B-Thinking-2507 和 Qwen3-4B-Thinking-2507
    • 两者都使用 SciJUDGE-Qwen3-4B 作为奖励模型
  • 将这两个训练后的策略称为 SCI THINKER-30B 和 SCI THINKER-4B
  • 为了探索偏好学习的增益,本文还使用 SciJUDGE-Qwen3-4B 的基础模型 (Qwen3-4B-Instruct) 作为奖励模型,训练了每个策略的版本
Evaluation
  • 通过 Scientific Thinker 相对于基础策略的胜率来评估它
    • 问题:这种评估方式并不严谨,毕竟 Scientific Taste 并不是可以通过模型评估的
  • 对于每篇种子论文,两个模型都提出一个 Research Idea ,使用三个模型 (GPT-5.2-high, GLM-5 和 Gemini 3 Pro) 通过多数投票来判断哪个想法具有更高的潜在影响力,详见附录 C.2
  • 以相同的方式,也评估了 SCI THINKER-30B 相对于这三个 SOTA 模型的胜率

Results

Substantial improvements in scientific ideation with high potential impact
  • 如图 4 所示,在使用 SciJUDGE-Qwen3-4B 奖励模型进行训练后, Scientific Thinker 在两个模型规模上都显著优于基础策略,30B 和 4B 模型在领域内分别实现了 81.5% 和 76.5% 的胜率
  • 值得注意的是,性能提升稳健地泛化到了训练期之后发表的领域外论文 (30B: 83.0%,4B: 76.0%),表明 Scientific Thinker 已经学会了可泛化的构思能力,在“未来”研究主题上表现良好
Scientific Judge is a more effective generative reward model than the baseline,Scientific Judge 是比 Baseline 更有效的 GRM
  • 对于两种模型规模,使用 SciJUDGE-Qwen3-4B 训练的策略在领域内 (例如,30B: 81.5% vs. 73.0%) 和领域外 (例如,30B: 83.0% vs. 70.5%) 测试集上都显著优于使用 Qwen3-4B-Instruct 训练的策略 (图 4)
Scientific Thinker is comparable to SOTA models in ideation(构思)
  • 经过训练后,SciThinker-30B 超越了 GPT-5.2 和 GLM-5 (表 8),在三个最先进模型上平均胜率达到 54.2%
Takeaway 3
  • AI 可以学习高潜在影响力的构思
  • 通过强化学习训练, Scientific Thinker 提出的科学想法具有更高的潜在影响力,并能泛化到未来的研究主题
  • Scientific Judge 是训练 Scientific Thinker 的有效且可靠的奖励模型

附录 A:Dataset Construction Details

  • 本节展示 SciJudgeBench 的构建过程,包括训练数据和测试数据

A.1 Data Statistics

  • 不同领域数据集统计见 表 9:
  • 理解:
    • 可以看出的是,组队时是两两一组,且论文仅参与一次配对,所以 #Paper 是 #Pairs 的双倍
    • 表 9 的分类仅 4 类,实际上 arXiv 上类别很多,所以需要进行一下汇总分类(详情见原始论文附录 A)
    • Others 是一个明确的聚合类别,涵盖了非计算机科学/数学/物理的领域,具体包括经济学、电气工程与系统科学、定量生物学、定量金融学和统计学,而不是一个剩余的杂项桶

A.2 Training Data Construction

Paper Collection
  • 收集了截至 2025 年 12 月 7 日发布的 arXiv 论文
    • 从包含 2.9M 篇论文的完整 arXiv 元数据存档中
    • 获得了 2.3M 篇论文的引用数
  • 训练论文池:
    • 选取了截至 2024 年发表的 2.1M 篇论文
  • 每条论文记录包括标题、摘要、发表日期、子类别和引用数
  • 论文池涵盖了计算机科学、数学、物理和其他科学领域
Pair Generation
  • 通过在相同子类别和相近发表时间窗口内匹配论文来生成偏好对
  • 对于每一对,引用数较高的论文被标记为 Preferred
  • 设 \(c_{\text{hi} }\) 和 \(c_{\text{lo} }\) 分别表示候选对中较高和较低的引用数
    • 仅当满足以下条件时,才保留该对:
      $$c_{\text{hi} } - c_{\text{lo} }\geq 8,\qquad \frac{c_{\text{hi} } - c_{\text{lo} } }{c_{\text{hi} } }\geq 0.3.$$
  • 等价地,相对引用差是相对于引用数较高的论文计算的,这些标准对应:
    • 绝对引用(Absolute citation)差 \(\geq 8\)
    • 相对引用(Relative citation)差 \(\geq 30%\)
  • 共产生了 696,758 个跨领域的,且按领域和时间匹配 的训练对,涵盖了 1.4M 篇 Unique 论文

A.3 Test Set Construction

Main Test Set
  • Main(in-domain)测试集包含 728 个从与训练数据相同分布中采样的对,但采用了更严格的筛选条件:
    • 绝对引用差 \(\geq 32\)
    • 相对引用差 \(\geq 50%\),即
      $$ \frac{c_{\text{hi} } - c_{\text{lo} }}{c_{\text{hi} }} \geq 0.5 $$
    • 注:更严格的阈值确保了评估时偏好信号的清晰性
Temporal OOD Test Set
  • 为了评估对未来论文的泛化能力,本文构建了一个时序分布外测试集
    • 包含 514 个来自 2025 年发表论文的对,确保与训练数据(截至 2024 年发表)在时间上完全分离
  • 由于近期发表的论文引用数远少于旧论文,本文在每个主要子类别 \(s\) 内使用自适应百分位数阈值
    • 设 \(q_{s}^{(p)}\) 表示子类别 \(s\) 中(来自至少被引用一次的论文)的第 \(p\) 百分位引用数,设 \(c_{i}\) 为论文 \(i\) 的引用数,\(t_{i}\) 为其发表日期
    • 在论文中,定义
      $$\delta_{s} = \max \left(12,0.7(q_{s}^{(99)} - q_{s}^{(1)})\right)$$
      • 理解:这个阈值表示了当前子类中论文之间的分位数差异(不同类别阈值不同,用于后续区分该领域的正负样本差异应该是多少)
    • 仅当两篇论文属于同一子类别且满足以下条件时,才创建候选对 \((i,j)\):
      $$c_{i}\geq q_{s}^{(75)},\qquad c_{j}\leq q_{s}^{(25)},\qquad |t_{i} - t_{j}|\leq 5\text{ days} \\
      c_{i} - c_{j}\geq \max (0.5c_{i},\delta_{s})$$
      • 理解:做了如下设置以提升 Pair 信号的准确性:
        • 发表时间控制到相似(5 天内)
        • 仅使用大于 75 分位数的作为正样本,小于 25 分位数的做为负样本
        • 绝对引用差大于 \(\delta_s\),相对引用差 0.5 倍的正样本
  • 直观上,这会将同一子类别中引用数相对较高的 2025 年论文与引用数相对较低的同期论文配对,同时强制实施相对边际和子类别自适应的绝对边际
  • 由此产生的类别分布(计算机科学:318对,物理:161对,其他:26对,数学:9对)反映了具有足够引用数的最新论文的自然可用性
ICLR Test Set (Metric OOD)
  • 度量分布外的论文:Metric OOD
  • ICLR 测试集用于评估从基于引用的训练到同行评议分数预测的迁移能力,使用了 2017 至 2026 年的 ICLR 投稿
  • 每年应用两个质量过滤器:
    • 剔除平均审稿人信心在后 \(50%\) 的论文
    • 剔除评分方差在前 \(50%\) 的论文
  • 仅保留每年平均评审评分在前 \(10%\) 和后 \(10%\) 的论文(每侧最多 75 篇)
    • 将保留的论文按评分排序,在中位数处分成上半部分和下半部分,在每个半部分内随机打乱,然后将两半部分的论文一一配对
      • 问题:这里需要保证匹配的 Pair 的年份一致吗?
    • 在每一对中,来自上半部分的论文被标记为 Preferred
  • 产生了 611 个测试对,其中位评分差为 6.1 分(评分范围为 1-10 分)
  • 注:
    • 评估提示词询问的是:“哪篇论文更有可能被接收(which paper is more likely to be accepted)”
    • 不同于训练提示词:“哪篇论文有更高的引用数(which paper has a higher citation count)”
    • 这意味着度量分布外设置同时测试了不同的监督信号和不同的任务框架

A.4 Field OOD Training Data

  • 对于领域分布外实验,通过将完整训练数据过滤到仅包含计算机科学论文,构建了一个仅限计算机科学的训练集
  • 这使的本文能够评估在单一领域训练的模型是否能泛化到其他领域

A.5 Biology Field OOD (bioRxiv)

  • 为了进一步探究跨领域迁移,在 bioRxiv 论文(生物学领域)上评估了在 arXiv 论文(涵盖计算机科学、数学、物理和其他领域)上训练的模型
    • 这是一个在训练数据中完全未出现的平台和领域
  • 使用相同的基于引用的配对程序,从 bioRxiv 论文中构建了 160 个偏好对,阈值设为绝对引用差 \(\geq 24\) 和相对差 \(\geq 75%\)(中位引用差 = 134)
    • 论文涵盖生物学子学科(例如,生物信息学、基因组学、神经科学),并在同一子学科内进行配对
    • 结果见正文表 7

附录 B:Training Details of Scientific Judge

B.1 Base Models

  • 在多个开源的指令微调语言模型上训练 Scientific Judge
    • (1)通过包含 Qwen2.5-Instruct 系列(从 1.5B 到 32B 参数)来评估模型尺寸的扩展行为
    • (2)通过整合不同系列的模型(Qwen2.5、Qwen3 和 Llama)来评估跨系列的泛化能力
Qwen2.5-Instruct Series
  • 使用了 Qwen2.5-Instruct 系列的多个规模:1.5B、3B、7B、14B 和 32B 参数
  • 这些模型是 Qwen2.5 的指令微调版本,Qwen2.5 是一个多语言数据上训练的 LM
  • Qwen2.5 系列在推理、数学和代码生成任务上展现出强大的性能,同时通过 GQA 等技术保持了效率
Qwen3-Instruct Series
  • 包含了来自 Qwen3 系列的两个指令微调模型:Qwen3-4B-Instruct-2507 和 Qwen3-30B-A3B-Instruct-2507
  • 这些模型将评估扩展到 Qwen2.5 系列之外,并允许作者测试偏好训练方法是否能迁移到不同规模的新模型系列
Llama-3.1-8B-Instruct
  • Llama-3.1-8B-Instruct 是 Meta 的 80 亿参数指令微调模型
  • 具有 128K 个词元的扩展上下文长度,并在多样化多语言语料库上进行了训练
  • 包含此模型以评估偏好训练方法在跨系列上的泛化能力
Model Naming Convention
  • 表 10 列出了本文中使用的简称与官方基座模型标识符的对应关系
  • 所有 Scientific Judge 变体都是从相应的基座模型使用 GRPO 在 SciJudgeBench 上训练而来

B.2 Hyperparameters

  • 使用 MS-SWIFT 框架 (2024) 实现 Scientific Judge(进行 GRPO 训练)
  • 表 11 列出了训练所用的超参数

B.3 Computational Resources

  • 所有实验均使用 H200 等效 GPU 资源进行,并采用 DeepSpeed ZeRO-2/ZeRO-3 优化和 vLLM 进行高效推理
  • 根据模型大小扩展 GPU 数量:
    • 1.5B 模型:32 块 GPU(4 节点 × 8 块 GPU)
    • 3B-7B 模型:64 块 GPU(8 节点 × 8 块 GPU)
    • 14B 及更大模型:128 块 GPU(16 节点 × 8 块 GPU)

B.4 Prompt Template

  • 用于偏好预测的 Prompt 模板如下所示:
  • Preference Prediction Prompt
    1
    2
    3
    4
    5
    6
    7
    **System**: You are a helpful assistant. You first think about the reasoning process in your mind and then provide the user with the answer.
    **User**: Today is 2025-12-10. Based on the titles, abstracts, and publication dates of the following two papers A and B, determine which paper has a higher citation count.
    Show your reasoning process in <think> </think> tags. And return the final answer in <answer> </answer> tags. The final answer should contain only the letter A or B.
    Paper A (Published: [Publication Date A]):
    [Title and Abstract of Paper A]
    Paper B (Published: [Publication Date B]):
    [Title and Abstract of Paper B]

B.5 Evaluation Protocol

  • 为了减轻位置偏差(Position Bias)
    • Position Bias: LLM 在成对评估中倾向于偏向首先出现的选项
  • 本文对每个对进行两次评估,方法是交换论文的顺序(A 与 B)
    • 只有当模型在两种顺序下都做出了一致且正确的预测时,该预测才计为 1 分
  • 这种位置交换一致性(position-swap consistency)指标使评估成本翻倍,但提供了更可靠的评估:
    • 确保报告的准确性反映了真实的偏好理解,而不是位置上的捷径

附录 C:Training Details of Scientific Thinker

C.1 Prompt Template

  • 用于基于种子论文提出后续 Research Idea 的 Prompt 模板如下所示

  • Prompt for proposing follow-up research ideas

    1
    2
    3
    4
    5
    6
    7
    8
    **System**: You are a helpful assistant. You first think about the reasoning process in your mind and then provide the user with the answer.
    **User**: You are a knowledgeable and insightful researcher. You have come across a new research paper with the following title and abstract:
    [Title and Abstract of the Seed Paper]
    Based on the core ideas, methods, or findings of this work, engage in heuristic thinking and propose a follow-up research idea. You need not confine yourself to the specific scenario or task of the original paper. You may consider shortcomings of the original method, propose improvements, apply its ideas to other tasks or domains, or even introduce entirely new problems and approaches. Aim to formulate an idea with high academic value and potential impact.
    In your response, solely present your proposed title and abstract. Think independently and there is no need to imitate the format of the provided paper’s title and abstract, nor to intentionally cite it. You must ensure the abstract is of a moderate length, avoiding excessive length, as if you were writing it for a typical academic paper.
    Output format (strict, no extra text):
    Title: <your proposed paper title>
    Abstract: <your proposed abstract>
  • 用于评判两个 Research Idea 的 Prompt 如下所示,该 Prompt 有两个用途:

    • (1)在 Scientific Thinker 训练期间,由奖励模型用来比较生成的想法
    • (2)在评估期间,由三个强大的 LLM 用来评判哪个想法具有更高的潜在影响力
    • 与 Scientific Judge 用于评判两篇论文(附录 B.4)且包含发表日期的 Prompt 相比,此 Prompt 不包含具体日期,并明确假设两个想法是同时提出的
  • Prompt for Judging Model’s Research Ideas

    1
    2
    3
    4
    5
    6
    7
    **System**: You are a helpful assistant. You first think about the reasoning process in your mind and then provide the user with the answer.
    **User**: Based on the titles and abstracts of the following two papers A and B, determine which paper has a higher citation count. Suppose the two papers are published at the same time.
    Show your reasoning process in <think> </think> tags. And return the final answer in <answer> </answer> tags. The final answer should contain only the letter A or B.
    Paper A:
    [Title and Abstract of Research Idea A]
    Paper B:
    [Title and Abstract of Research Idea B]

C.2 Evaluation Protocol

  • 每对 Research Idea 由三个 LLM(GPT-5.2-high, GLM-5 和 Gemini 3 Pro)进行评估,温度设置为 0.0
  • 采用多数投票(即获得至少两票的想法被视为胜出)
    • Prompt 如附录 C.1 所示
    • 在每次评估者进行评估之前,本文会以 \(50%\) 的概率随机交换两个想法(A 和 B)在 Prompt 中的顺序,以减轻潜在的位置偏差
      • 问题:为什么不两种排序都评估一遍?以确保准确性
  • 在 SciJudgeBench 上评估了上述多数投票方法,准确率达到 \(84.4%\)
    • 这一高准确率表明,这种多数投票方法构成了一个合理的评估指标,可用于评估 Scientific Thinker
    • 理解:84.4% 其实也不是很高,且 SciJudgeBench 的 Pair 过于严格,说明即使是 SOTA LLM,模型对这种 Scientific Taste 的认知也是不太足够的

C.3 Hyperparameters

  • 表 12 列出了训练 SciThinker-30B 和 SciThinker-4B 所用的超参数

附录 D:General Capability Preservation

  • 本节关注一个关键的问题:专门的训练是否会损害通用能力
  • 本文在五个标准基准上评估了 Scientific Judge:
    • MMLU-Pro(通用知识)
    • GPQA(研究生级别科学)
    • MATH(数学推理)
    • GSM8K(小学数学)
    • SimpleQA(事实准确性)
  • 表 13 显示,Scientific Judge 在大多数基准测试中保持了性能,变化通常在基线的 \(\pm 3%\) 以内
    • 仅针对研究论文偏好任务进行了训练后,模型在通用知识方面表现出最小的退化
      • Qwen2.5-3B 在 MATH \((+0.8%)\) 和 GPQA \((+3.1%)\) 上显示出轻微改进
      • Qwen3-4B 在 MATH (\(78.6% \rightarrow 78.8%\)) 和 GSM8K (\(93.3% \rightarrow 93.6%\)) 上表现几乎相同
    • 跨 MMLU-Pro、MATH、GSM8K 和 SimpleQA 的变化幅度很小,这表明可以在不损害通用能力的情况下进行有针对性的偏好训练

附录 E:Case Study of Scientific Thinker

  • 详细示例见原论文

附录 F:Case Study of Scientific Judge

  • 详细示例见原论文

附录 G:Pairwise Comparison of Divergent Impact Series,发散 Impact Series 的 Pairwise 比较

  • 本文对潜在影响力的定义中(第 2.1 节),累积期望影响力
    $$ I(p) = \lim_{N\to \infty}\sum_{t = 1}^{N}\mathbb{E}[c_{t}(p)]$$
    • 对于某些论文可能是发散的
      • 问题:在当前时间有限,每年的引用数有限的情况下,不可能存在发散的情况吧?
    • 本节推导表明:即使两个单独序列都发散,两篇论文的成对比较仍然是定义良好的
  • 详细证明见原论文

NLP——SkillsBench

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:SkillsBench: Benchmarking How Well Agent Skills Work Across Diverse Tasks, 20260313, Stanford & UC Berkeley

Paper Summary

  • 整体总结:
    • SkillsBench 是第一个将 Agent Skills 作为一等评估工件进行系统评估的基准
    • SkillsBench 主要评估对象是:Skill 带来的增益
      • 具体方法:通过 配对评估(同一任务在有 Skill 和无 Skill 下执行)来量化 Skill 带来的增益
      • 扩展:本文还评估了不同领域、不同任务类型下,Skill 增益的差异
    • 本文观点:Skills 的有效性并非普遍适用(与场景有关)
  • Agent Skills 作为增强 LLM 智能体能力的模块化、可复用组件正在迅速普及
    • 但目前尚无基准测试能够系统地衡量 Skills 的有效性、设计原则及其失败模式
  • SkillsBench 是 第一个将 Skills 作为一等评估工件(first-class evaluation artifacts)的基准测试
    • 构建了跨 11 个领域的 84 个任务,每个任务在三种条件下执行,并配有确定性验证器(deterministic verifiers):
      • 无 Skills(no Skills)
      • 有精心策划的 Skills(curated Skills)
      • 自生成 Skills(self-generated Skills)
  • 本文对 7 种智能体-模型配置进行了大规模评估,共产生了 7,308 条有效轨迹
    • 本文的研究结果揭示了四个关键发现:
      • (1)精心策划的 Skills 平均可带来 +16.2 个百分点的提升,但不同领域和配置间的差异很大
      • (2)自生成 Skills 几乎没有带来提升,甚至会产生负面影响(平均 -1.3 个百分点),这表明有效的 Skills 需要人类专业知识
      • (3)少即是多,包含 2-3 个模块的精简 Skills 优于内容 Comprehensive 文档
      • (4)Skills 可以部分弥补模型规模的不足,使较小的模型在程序性任务上达到与较大模型相当的性能

Introduction and Discussion

  • 背景 & 问题提出:
    • LM 智能体在从软件工程到数据分析等领域的应用日益广泛
    • SOTA 模型具备强大的通用推理能力,但缺乏特定领域工作流所需的程序性知识 ,而微调成本高昂 且会牺牲通用性
  • Agent Skills 提供了一种新兴的解决方案
    • Skill 是一个结构化的包,包含指令、代码模板、资源和验证逻辑,能在推理时增强智能体行为,无需修改模型本身(Anthropic, 2025a)
    • Skills 编码了程序性知识:
      • 标准操作流程、领域约定和任务特定的启发式方法,用以指导智能体行为
      • 这种模块化方法建立在用于 Temporal Abstraction 的 Option 框架(Sutton,1999)和用于语言智能体的认知架构(2023)之上
      • 这反映了成功的计算范式:
        • 基础模型:提供基础能力(类似于 CPU)
        • 智能体 harnesses 编排器(agent harnesses orchestrate):管理上下文和工具(类似于操作系统)
        • Skills 将能力扩展到专业领域(类似于应用程序)
  • Skills 生态系统发展迅速,社区仓库现已托管了成千上万个用户贡献的 Skills
    • 涵盖了软件工程、数据分析和企业工作流
  • Skills 激增,却没有任何基准测试能够系统地评估以下内容:
    • Skills 何时以及如何提升智能体性能,哪些内容能带来提升?
    • 如何区分有效 Skills 与无效 Skills 的设计原则是什么?
  • 本文的主要结果:
    • 精心策划的 Skills 在所有 7 种 model-harness 配置中都持续提高了任务解决率
    • 自生成的 Skills 带来的益处微乎其微
    • 问题不在于 “添加任务相关的上下文是否有帮助”,而在于:
      • 与基线增强相比,Skills 的帮助有多大?哪些 Skills 组件(指令、代码、示例)贡献最大?Skills 在什么情况下会失效?
  • 现有的智能体基准测试(2023; 2026; 2024; 2025;)评估的是原始模型能力的孤立表现
    • 这回答的是 “该模型在任务 \(X\) 上表现如何?”,而不是 “Skills \(Y\) 在任务 \(X\) 上提升了多少性能?”
    • 这一空白带来了实际影响:
      • 从业者无法就 Skills 的采用做出明智的决策,研究人员也缺乏指导 Skills 设计原则的实证基础
  • 本文提出 SkillsBench ,两个核心贡献:
    • 1)以 Skills 为中心的(Skills-centric)评估框架
      • 本文策划了跨 11 个领域的 84 个任务,每个任务在三种条件下执行(无 Skills、有精心策划的 Skills 和自生成 Skills)
      • 同时配有确定性验证器和完整的轨迹日志
      • 本文按难度对任务进行分层,并进行了泄漏审计(leakage audits),以确保 Skills 提供的是指导而非解决方案
    • 2)实证评估
      • 本文评估了 7 种智能体-模型配置,总计 7,308 条轨迹,提供了关于 Skills 有效性、方差和失败模式的系统性证据

SkillsBench

  • SkillsBench 基于 Harbor 框架(2026;)构建,每个任务都采用容器化结构
    • 环境包含 Agent Skills 和相关数据、一个确定性验证测试以及一个 Oracle 解决方案
  • 遵循智能体基准测试的最佳实践(2025; 2026),本文确保了严格的隔离性和确定性验证
  • 不同于评估原始模型和智能体 Harness 能力的 TerminalBench
    • SkillsBench 引入了一个关键的方法论差异:在原始(无 Skills) 和 Skills 增强 两种条件下评估每个任务,从而能够直接衡量 Skills 的有效性

Skills Specification

  • 一个 Skill 是满足四个标准的工件:
    • 程序性内容(Procedural content) :包含 “how-to(如何做)” 的指导(流程、工作流、SOP),而非事实检索
    • 任务类适用性(Task-class applicability) :适用于一类问题,而非单个实例
    • 结构化组件(Structured components) :包含一个 SKILL.md 文件以及可选的资源(脚本、模板、示例)
    • 可移植性(Portability) :Skills 完全基于文件系统 ,因此易于编辑、版本控制、共享,并可在不同的兼容 Skills 的智能体 Harnesses 上使用
  • 上述定义明确排除了:
    • system prompts:缺乏结构和资源
    • few-shot examples:声明性的,非程序性的
    • RAG 检索:事实性的,非程序性的
    • 工具文档(tool documentation):描述能力,而非流程
  • 注:作者提到这个边界并非绝对
    • 例如,一个 StackOverflow 的答案可能混合了事实性和程序性内容
    • 本文的标准为基准测试的构建提供了操作上的清晰度
    • 本文在表 1 中强调了 Skills 与其他增强范式的区别特征
  • 在 SkillsBench 中,每个 Skill 都是一个位于 environment/skills/ 中的模块化包,包含:
    • SKILL.md :指定如何处理一类任务的自然语言指令,即工作流、标准操作流程或领域约定
    • Resources :可执行脚本、代码模板、参考文档或可供智能体调用或参考的示例

Task Specification

  • SkillsBench 中的每个任务都是一个自包含的模块,包含四个组件:
    • Instruction :一个人类可读的任务描述,指明目标、输入格式和预期输出
      • 本文编写的指令让一个知识渊博的人类在没有配套 Skills 的情况下也能解决,尽管 Skills 可能会大大缩短解决时间
    • Environment :一个 Docker 容器,包含特定任务的数据文件和一个包含模块化 Skill 包的 skills/ 子目录
      • 该容器通过隔离的依赖关系和干净的文件系统状态确保了可复现性
    • Solution :一个展示任务可解性的参考实现。这个 Oracle 验证了每个任务至少有一条正确的解决路径
    • Verifier :带有程序化断言的确定性测试脚本,在适当情况下包含数值容差
      • 这确保了可复现的通过/失败判定,无需使用 LLM 作为评判者,遵循了基于执行的评估最佳实践(2023b; Brown, 2025)

Dataset Construction

  • Skills 的表达性和灵活性,以及本文的任务规范,使得能够广泛覆盖不同的领域和问题类型
    • 为了最大化这种多样性,本文采用了社区驱动的开源贡献模式:
      • 来自学术界和工业界的 105 位贡献者提交了 322 个候选任务
    • 本文统计了包含完整任务规范(指令、环境、解决方案和验证器)以及本文评估的难度等级的提交
    • 从这个库中,作者筛选出了最终的 SkillsBench 数据集

Contributing Principles

  • 贡献者必须满足明确的要求,以确保任务质量并防止“走捷径”:
    • 人工撰写的指令(Human-Authored Instructions)
      • 任务指令必须由人类撰写,而非语言模型生成
      • 本文强制执行这一点,因为 LLM 生成的查询将受限于 LLM 本身的分布,而 LLM 正是本文评估的对象,并且 LLM 生成的查询通常质量低下
    • Skill 的通用性(Skill Generality)
      • Skills 必须为一类任务提供程序性指导,而非针对特定实例的解决方案
      • 指令不得引用应使用哪些 Skills,这意味着智能体必须自主发现并应用 Skills
        • 这确保了衡量的是真正的 Skill 利用率,而非指令遵循能力
    • 确定性验证(Deterministic Verification)
      • 所有成功标准必须能通过程序化断言进行测试
      • 以验证所需的最少测试数量为目标,避免因覆盖率不足或冗余测试导致人为的低通过率
      • 测试必须包含信息丰富的错误消息,并使用参数化而非重复
    • 自动化验证(Automated Validation),每份提交在人工审查前都要经过自动化验证:
      • 结构验证 :所需文件存在(instruction.md, task.toml, solve.sh, test_outputs.py),目录布局正确,TOML/YAML 语法有效
      • Oracle 执行 :参考解决方案必须达到 100% 的测试通过率
        • Oracle 失败的任务将被拒绝
      • 指令质量 :指令必须是人工撰写的(本文同时采用人工审查和 GPTZero 审查,并实现了 100% 的人工标注)
        • 本文还根据六个标准评估指令(明确的输出路径、结构化的要求、成功标准、列出约束、上下文优先排序)
    • 人工审查(Human Review)
      • 自动化检查通过后,维护者会进行手动审查,评估五个标准:
        • (1)数据有效性 :输入数据必须反映现实世界的复杂性
          • 合成数据或玩具数据将被拒绝,除非有正当理由
        • (2)任务真实性 :场景必须反映真实的专业工作流程,避免人为制造难度
        • (3)Oracle 质量 :参考解决方案应符合领域专家解决该任务的方式
        • (4)Skill 质量 :Skills 必须无错误、内部一致,并且对此基准测试之外类似任务真正有用
        • (5)防作弊 :任务必须防止“走捷径”的解决方案(如编辑输入数据、从测试文件中提取答案、利用验证器实现)
      • 审查员会在多种智能体上,分别在有 Skills 和无 Skills 的情况下运行基准实验,以确认每个任务都能提供关于 Skill 有效性的有意义信号
  • 图 2 提供了三阶段流程的端到端概览:基准构建、质量过滤和评估
    • 第一阶段(基准构建):从三个来源聚合 Skills 去重后得到 47,150 个唯一的 Skills
      • 开源仓库(12,847 个)、Claude Code 生态系统(28,412 个)和合作伙伴(5,891 个)
      • 322 位贡献者提交了 105 个候选任务
    • 第二阶段(质量过滤):每个任务都经过自动化检查(结构有效性、AI 检测、泄漏审计)和人工审查(数据有效性、任务真实性、Oracle 质量、Skill 质量、防作弊),最终产生横跨 11 个领域的 84 个任务
    • 第三阶段(评估):任务在三种条件下(无 Skills、有精心策划的 Skills、自生成 Skills)在三个商业智能体 Harnesses(Claude Code、Gemini CLI、Codex CLI)上执行
      • 确定性的 pytest 验证器产生通过/失败结果
      • 7 种智能体-模型配置共产生了 7,308 条轨迹,精心策划的 Skills 平均提升了 +12.66 个百分点

Leakage Prevention

  • 为防止 Skills 编码特定任务的解决方案,本文强制执行明确的编写指南并进行泄漏审计
  • 一个基于 Claude Code Agent SDK 的验证 Agent 会在 CI 中运行,以检测潜在的 Skill-解决方案泄漏;检测失败的任务将被拒绝
  • Skills 不得包含:
    • 特定任务的文件名、路径或标识符
    • 解决基准测试任务的精确命令序列
    • 来自任务规范的常量、魔数或值
    • 对特定测试用例或预期输出的引用
  • Skills 必须应用于一类任务,而非单个实例
    • 提供程序性指导(如何做),而非声明性答案(输出什么),且独立于基准规范进行编写

Benchmark Composition

  • SkillsBench 包含横跨 11 个领域的 84 个任务,其类别分布如图 3 所示
  • 本文根据难度对任务进行分层,难度由本文作者认为的中等水平领域专家在无 AI 工具辅助下的预估完成时间来衡量
  • 原始任务贡献者提供了人工时间估计,并由来自相同领域的维护者组成的额外审查员团队进行了复核

Experimental Setup

  • 本文在 SkillsBench 上评估了三种商业智能体 Harnesses,涵盖七种前沿模型和三种 Skills 条件,最终获得了 7,308 条有效轨迹
  • 一条轨迹是有效的定义:
    • 智能体在任务上通过、失败或超时,且没有发生基础设施和运行时错误时
  • 每条轨迹代表一个智能体在特定 Skills 条件下尝试解决单个任务的一次尝试

Agent Harnesses

  • 本文评估了三种商业化的智能体:Claude Code (Anthropic, 2025b)、Codex CLI (OpenAI, 2025) 和 Gemini CLI (Google, 2025)

Models

  • 本文选择了七种前沿模型:
    • GPT-5.2 (OpenAI)、Claude Opus 4.5、Claude Opus 4.6、Claude Sonnet 4.5、Claude Haiku 4.5 (Anthropic)、Gemini 3 Pro 和 Gemini 3 Flash (Google)
  • 所有模型均使用 temperature=0 进行确定性采样
  • 本文使用每个模型兼容的智能体 Harnesses 进行评估
    • Claude Code 运行四种 Claude 模型(Sonnet 4.5, Haiku 4.5, Opus 4.5/4.6)
    • Gemini CLI 运行 Gemini 模型(Pro & Flash)
    • Codex CLI 运行 GPT-5.2
    • 共产生 7 种 Model-harness 配置
  • 完整的配置矩阵见表 7

Skills Conditions

  • 本文在三种条件下评估每个任务:
    • 无 Skills(No Skills) :智能体只收到 instruction.md,环境中没有 Skills
    • 有 Skills(With Skills) :完整的 environment/skills/ 目录,包含所有示例、代码片段和资源
    • 自生成 Skills(Self-Generated Skills) :未提供 Skills,但提示智能体在解决问题前自行生成相关的程序性知识。这用于分离 LLM 潜在领域知识的影响
  • 自生成条件在 7 种配置中的 5 种上进行了评估(所有 Claude Code 模型和 Codex)
    • Gemini CLI 不支持此条件

Evaluation Protocol

  • 本文将 Skills 作为系统级上下文提供,置于 SkillsBench 的任务指令之前
  • 附录 E 中列出了注入格式和上下文管理的详细信息
  • 对于每种条件,智能体与容器化环境交互,直到任务完成、超时或达到轮数限制
  • 验证器执行确定性断言,产生二元的通过/失败结果

Metrics

  • Pass Rate
    • 主要指标是通过率,遵循 Terminal-Bench (2026) 的评分方法:
      • 对于每个任务,计算 5 次试验中二元奖励的平均值,然后使用固定分母 84(评估任务数)对这些任务级别的分数进行平均
  • Normalized Gain
    • 遵循物理教育研究中的 Hake 公式 (Hake, 1998),将归一化增益定义为:
      $$g = \frac{\text{pass}_{\text{skill} } - \text{pass}_{\text{vanilla} } }{1 - \text{pass}_{\text{vanilla} } }$$
  • Interpreting Normalized Gain
    • 归一化增益有已知的局限性:
      • 比如:一个在原始条件下得分 90%、有 Skills 时得分 95% 的模型会产生 \(g = 0.5\)
        • 这与一个原始条件下得分 10%、有 Skills 时得分 55% 的模型相同
      • 这两者代表了不同的现象(天花板效应 vs. 真正的辅助)
        • 同时报告绝对提升值 \(\Delta\) 和归一化增益 \(g\),以便进行细致的解读
          • 高 \(g\) 配合低 \(\Delta_{\text{abs} }\) 表明存在天花板效应
          • 高 \(g\) 配合高 \(\Delta\) 则表明有显著的辅助作用
      • 本文将“一致的辅助效率”解释为相似的比例提升,而非相同的绝对提升

Results

  • 本文结果包含两个方面:
    • 1)在 84 个任务上,对 7 种 LLM-Agent 组合进行的三种 Skills 条件下的主要评估
    • 2)对 Skills 设计因素的详细分析,包括数量、复杂性和领域效应

Experiment 1: Skills Efficacy Across LLM-Agent Combinations

  • 本文评估了预定义的 Skills 和自生成的 Skills 如何影响跨商业 Model-harness 的 Agent 性能
  • 在 84 个任务上,对每种配置在三种条件下进行了测试:
    • 无 Skills、有预定义的 Skills 和有自生成的 Skills(在支持的情况下)
Main Results
  • 表 3 展示了每种 Model-harness 在所有三种条件下的通过率,按有 Skills 时的性能排序
Finding 1: Skills provide substantial but variable benefit,Skills 提供了实质提升,但是具有时效性和且在模型下效果不同
  • 在 7 种 Model-harness 上,Skills 平均提高了 +16.2 个百分点,但不同配置之间的方差很大(范围:+13.6 个百分点 到 +23.3 个百分点)
  • 这种可变性表明 Skills 的有效性在很大程度上取决于具体的 Agent-模型组合,这与 Skills 益处统一的假设相矛盾
  • 注意:本小节标题中的 Variable Benifit 是指这个收益会随着一些环境变化而变化
    • 时间变化,Agent-Model 变化
Finding 2: Gemini CLI + Gemini 3 Flash achieves maximum performance,Gemini CLI + Gemini 3 Flash 实现了最大收益
  • 表现最好的配置是带有 Gemini 3 Flash 的 Gemini CLI,在有 Skills 的情况下达到了 48.7% 的通过率
  • 带有 Opus 4.5 的 Claude Code 实现了最大的提升 (+23.3 个百分点)
    • 这反映了 Claude Code (Anthropic, 2025b) 针对 Agent Skills 规范 (Anthropic, 2025a) 优化的原生 Skills 集成
Finding 3: Self-generated Skills provide negligible or negative benefit,自生成的 Skills 几乎没有提供益处
  • 当被提示在解决任务之前生成自己的过程知识时,模型与无 Skills 基线相比平均下降了 -1.3 个百分点
  • 只有 Opus 4.6 显示出微弱的提升 (+1.4 个百分点)
    • Codex \(^+\) GPT-5.2 显著下降 (-5.6 个百分点),其余模型持平或下降
    • 这与预定义的 Skills (+16.2 个百分点) 形成鲜明对比,表明有效的 Skills 需要人工策划的领域专业知识,而模型无法可靠地自行生成
  • 轨迹分析揭示了两种失败模式:
    • (1) 模型识别出需要领域特定知识,但生成了不精确或不完整的过程(例如,列出“使用 pandas 进行数据处理”而没有具体的 API 模式)
    • (2) 对于高领域知识任务(制造、金融),模型通常无法识别需要专门的 Skills,而尝试使用通用方法解决
Harness-specific reliability
  • 除了 Skills 有效性之外,本文观察到不同商业 Harness 之间的可靠性差异:
    • Claude Code : Skills 利用率最高;改进范围从 Opus 4.6 的 +13.9 个百分点到 Opus 4.5 的 +23.3 个百分点,所有 Claude 模型都持续受益
    • Gemini CLI : 原始性能最高(Gemini 3 Flash 有 Skills 时达到 48.7%);改进范围从 +13.6 个百分点到 +17.4 个百分点
    • Codex CLI : 具有竞争力的原始性能(有 Skills 时为 44.7%);经常忽略提供的 Skills——Agent 会承认 Skills 内容,但通常独立实现解决方案
Domain-level Analysis
Finding 4: Skills benefit varies widely across domains.
  • 表 4 按领域展示了 Skills 的有效性,揭示了显著的异质性
  • 医疗保健 (+51.9 个百分点) 和制造业 (+41.9 个百分点) 受益最大,而数学 (+6.0 个百分点) 和软件工程 (+4.5 个百分点) 的提升较小
  • 需要模型预训练中代表性不足的专业过程知识的领域(例如,临床数据协调、制造工作流)显示出最大的改进,而预训练覆盖强的领域从外部过程指导中受益较少
Task-level Analysis
  • 对 84 个单独任务的分析揭示了 Skills 有效性的高方差:
    • Skills 受益最大的任务 (Top Skills beneficiaries) :
      • 显示最大改进的任务包括:
        • mario-coin-counting (+85.7 个百分点,从 2.9% 到 88.6%)
        • sales-pivot-analysis (+85.7 个百分点)
        • flood-risk-analysis (+77.1 个百分点)
        • sec-financial-report (+74.3 个百分点)
      • 这些任务涉及预训练中很少涵盖的专业过程知识
    • Skills 损害了某些任务的性能 (Skills hurt performance on some tasks) :
      • 尽管领域总体为正,但 84 个任务中有 16 个显示出负的 Skills 增量:
        • taxonomy-tree-merge (-39.3 个百分点)
        • energy-ac-optimal-power-flow (-14.3 个百分点)
        • trend-anomaly-causal-inference (-12.9 个百分点)
        • exoplanet-detection-period (-11.4 个百分点)
      • 这些失败表明,对于模型已经处理得很好的任务,Skills 可能会引入相互矛盾的指导或不必要的复杂性

Experiment 2: Skills Design Factors

  • 为了理解 Skills 设计如何影响有效性,分析了 Skills 数量、复杂性与性能之间的关系
Skills Quantity Analysis
  • 表 5 按提供的 Skills 数量划分的通过率
Finding 5: 2–3 Skills are optimal; more Skills show diminishing returns.
  • 表 5 显示了按每个任务提供的 Skills 数量分层的性能
  • 有 2-3 个 Skills 的任务显示出最大的改进 (+18.6 个百分点),而 \(^{4 + }\) 个 Skills 仅提供了 +5.9 个百分点的益处
  • 这种非单调关系表明,过多的 Skills 内容会造成认知负担或相互矛盾的指导
Skills Complexity Analysis,复杂性分析
  • 表 6. 按 Skills 复杂性级别划分的通过率
    • Detailed 和 Compact Skills 优于 Comprehensive Skills
Finding 6: Moderate-length Skills outperform comprehensive ones,中等长度的 Skills 优于 Comprehensive Skills
  • 表 6 中展示了 Skills 文档复杂性对性能的影响
    • Detailed (+18.8 个百分点) 和 Compact (+17.1 个百分点) Skills 提升最多
    • Comprehensive Skills 损害了性能 (-2.9 个百分点)
    • 说明:集中的过程指导比详尽的文档更有效
      • 也就是说:Agent 可能难以从冗长的 Skills 内容中提取相关信息,而且过于复杂的 Skills 会消耗上下文预算而不提供可操作的指导
Model Scale Effects,Model 规模效应
  • 本节研究基础模型规模在 Claude 模型家族(Opus, Sonnet, Haiku 4.5)中的影响
Finding 7: Smaller model + Skills can exceed larger model without Skills,较小的模型 \(+\) Skills 的组合可以超过没有 Skills 的较大模型
  • 带有 Skills 的 Claude Haiku 4.5 (27.7%) 比没有 Skills 的 Haiku (11.0%) 高出 +16.7 个百分点
  • 没有 Skills 的 Claude Opus 4.5 达到了 22.0%(低于带 Skills 的 Haiku 4.5 模型的 27.7%)
  • 这表明 Skills 可以在一定程度上弥补模型在过程任务上的能力限制

Discussion

  • Skills close procedural gaps,Skills 弥补了过程差距

    • 当成功依赖于具体过程和验证器关注的细节(步骤、约束、合理性检查),而不是广泛的概念知识时,Skills 最有帮助
    • 在具有专业工作流程或严格格式的领域观察到巨大收益,而在模型已有强大先验知识且 Skills 增加了开销或冲突时,收益较小甚至为负
  • Harnesses mediate Skills use,Harness 调节了 Skills 的使用

    • Skills 的有效性不仅取决于 Skills 的质量,还取决于 Harness 如何实现 Skills
      • 某些 Harness 能够可靠地检索和使用 Skills
      • 其他 Harness 虽然经常承认 Skills 内容,但进行下去时却没有调用它们
      • 结构化的接口也可能引入长轨迹失败模式(例如,格式漂移),从而降低早期注入的 Skills 的影响
    • 本文在多种 Harness 下评估 Skills,而不是将 “有 Skills” 视为单一条件
  • Implications for Skills authoring,对 Skills 创作的启示

    • 本文分析表明,简洁、分步指导加上至少一个工作示例通常比详尽的文档更有效
      • 过长的 Skills 定义会增加上下文负担而不会改善决策
    • 模块化的 Skills 在多部分任务上似乎也能更好地组合,并且 Skills 应明确匹配 Harness 约束(例如,对于仅 JSON 的协议,重复格式提醒)

Limitations and Future Work

Coverage and generalization
  • SkillsBench 专注于基于终端、容器化的任务以实现可重复评估,因此结果可能无法直接迁移到 GUI Agent、多 Agent 协调或超长时程工作流
  • 本文还评估了一组有限的模型和 Harness
    • 商业 Harness 的行为和 Skills 集成可能会随时间变化
    • 一个自然的扩展是为在 GUI 环境中运行的视觉-语言 Agent 开发多模态 Skills 和协议
Causal attribution and controls,因果归因与控制
  • Skills 的注入增加了上下文长度,因此观察到的收益可能部分反映了“更多上下文”而非过程结构
  • 本文的自生成 Skills 条件表明结构很重要:
    • 即使具有相同的上下文预算,模型暂时无法可靠地产生有效的过程指导
    • 注:未来的工作需要更强有力的长度匹配基线(例如,随机/无关文本和仅检索的文档控制)
    • 这些基线还可以研究从演示或文档中自动合成 Skills,并隔离哪些 Skills 组成部分(步骤、示例、代码资源)推动了改进
Determinism, contamination, and ecological validity,确定性、数据污染与生态有效性
  • 容器化提供了状态隔离,但不能保证完美的确定性或免受训练集泄漏的影响
  • 本文通过多次运行、泄漏审计(第 2.4 节)和配对(有 Skills vs. 无 Skills)比较来缓解这些问题,但无法消除所有非确定性或记忆效应
  • 未来的工作应在生态代表性设置中进行评估,包括低质量和自动选择的 Skills,并研究 Skills 的组合——当多个 Skills 有帮助或相互干扰时,以及复合性能是否可以由原子 Skills 效应预测

Related Work

  • SkillsBench 与之前关于以下方面的工作相联系:
    • (1) 对 LLM Agent 进行基准测试
    • (2) 用过程知识和工具增强 Agent
    • (3) 评估跨异构系统的改进

Agent benchmarks

  • 近期的工作评估了在现实环境中的端到端 Agent 能力
    • 包括 Terminal-Bench (2026)、SWE-bench 及其后续工作 (2024; 2024; 2025)
  • 更广泛的环境覆盖出现在 AgentBench 和交互式/网页/GUI 设置中 (2023; 2024b; 2024; 2024)
  • 部分测试集强调工具介导的(Tool-mediated)工作流、交互式执行反馈或领域专业化 (2025; 2024; 2023; 2025; 2024; 2025; 2021; 2025)
    • 这些基准测试衡量固定 Agent 完成任务的能力
  • 本文:SkillsBench 通过配对评估来衡量增强的有效性

Procedural augmentation and tool use,过程增强 & 工具使用

  • 先前的工作通过结构化推理或外部知识来增强 Agent,比如
    • CoALA 和 Voyager (2023; 2023a)
    • 用于多步问题解决的链式思维和 ReAct (2022; 2022; 2023)
    • 检索/工具使用 (2020; 2022; 2023; 2024)
    • 声明式优化框架 (2023)
  • Skills 结合了过程指导和可执行资源(第 2.1 节)
    • 尽管存在多种增强方法,但基准测试很少量化它们实际的影响

Skills ecosystems and evaluation methodology

  • Anthropic 的 Agent Skills 和 MCP 规范 (Anthropic, 2025a; 2024) 形式化了 Skill 包和工具连接性
    • Agent CLI(Claude Code、Gemini CLI 和 Codex)提供了现实世界的 Harness (Anthropic, 2025b; Google, 2025; OpenAI, 2025)
  • SkillsBench 评估了商业 Harness 和基于 Terminal-Bench (2026) 的模型无关 Harness
    • 用于分离模型和 Harness 效应
  • 更广泛的基准测试激励了仔细的报告和可比性 (2020; 2024; 2023)
  • 本文报告了绝对增益和归一化增益 (1998),以比较不同基线下的改进(第 3.5 节)

NLP——OpenClaw-RL

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:OpenClaw-RL: Train Any Agent Simply by Talking, 20260310, Princeton, Yinjie Wang
    • 注:本文与 RLAnything: Forge Environment, Policy, and Reward Model in Completely Dynamic RL System, Princeton, 20260202, Yinjie Wang 同作者

Paper Summary

  • 整体说明:
    • 本文提出 OpenClaw-RL 框架,将 Chat,终端执行,GUI 交互,SWE 任务 和 tool use 等都视作 交互+下一个状态信号 的模型,统一了所有动作和信号,使得不同的信号可以一起训练
    • 基本思路:所有信号都是可以统一为状态的,所以策略可以在这些信号(Next-state Signal)中统一学习
      • 理解:本文会将奖励定义为 \(r(a_t, s_{t+1})\),即通过 PRM judge 从 Next-state Signal 中推断得出
      • 注:这里的奖励是通过 \(s_{t+1}\) 推断出来的
    • 本文提出了两种方法:
      • 方法1:二元强化学习,将评估性信号转换为标量过程奖励
      • 方法2:OPD,将指导性信号转换为 Token-level 的优势监督
      • 最终方法:将两者结合起来,实验验证拿到了显著的收益(注:两者分开始效果并不好)
    • 本框架训练得到的结果是一个统一的系统,其中的模型同时能够个性化服务于个人用户,并在长 horizon 的智能体任务上取得改进
      • 这个系统/模型完全依赖于它正在进行中的交互来进行训练
    • 问题(与作者沟通过,作者似乎也没有想好):
      • 可能会因为捕捉隐式的错误信号,导致模型发生变化,比如过拟合用户的习惯(错误意图),如果用户喜欢让 Agent 先生成 A,在让 Agent 优化成 B,比如先规划,再写代码,目前 OpenClaw-RL 这样训练可能导致模型被更新为自动写代码(跳过规划了)
      • 信号的准确性很重要
    • 基于此文,思考一下关于模型进化的思考:
      • 一种可能的方向:类似 OPSD,使用类似未来信号,增强 Prompt,将当前策略变成更优的教师策略,从而实现更多可能性
      • 另一种可能的方向:使用多个当前策略作为一个更强反馈模型,评估结果并给出结论
  • 背景 & 现状
    • 智能体的每次交互会产生一个 Next-state Signal
      • 这里的信号状态定义为:紧随每个动作之后的用户回复、工具输出、终端或图形用户界面状态变化
  • 问题提出:
    • 现有智能体强化学习系统都没有将这个信号恢复为实时的、在线的学习源
  • 本文做法:
    • Insight: Next-state Signal 是通用的,并且策略可以同时从所有信号中学习
      • 个人对话、终端执行、图形用户界面交互、软件工程任务和工具调用轨迹并非独立的训练问题
      • 都是可以在同一个循环中用于训练同一个策略的交互
    • Next-state Signal 编码了两种形式的信息:
      • 评估信号 (evaluative signals),指示动作执行得如何,并通过 PRM judge 提取为标量奖励
      • 指导信号 (directive signals),指示动作本应如何不同,并通过事后引导的 On-policy 蒸馏 (Hindsight-Guided On-Policy Distillation, OPD) 来恢复
    • 本文提出 OpenClaw-RL,从下一状态中提取文本提示,构建一个增强的教师上下文,并提供比标量奖励更丰富的 Token-level 的方向性优势监督
    • 基于异步设计,实现三者之间零协调开销:
      • 模型服务于实时请求
      • PRM 判断进行中的交互
      • Trainer 同时更新策略
  • OpenClaw-RL 可以应用于两种类型的 Agent:
    • 应用于 Personal Agent ,使得智能体仅通过被使用就能改进,从用户的重新查询、纠正和明确反馈中恢复对话信号
    • 应用于 General Agent ,相同的基础设施支持跨终端、图形用户界面、软件工程和工具调用设置的可扩展强化学习,在其中进一步展示了过程奖励 (process rewards) 的效用
  • 图 1:OpenClaw-RL Infrastructure
    • 交互流来自两种智能体类型:
      • Personal Agent:托管在个人设备上,特点是对话式,单用户
      • General Agent:托管在云服务上,比如 终端、图形用户界面、软件工程和工具调用智能体
    • 收集到的样本流 RL Server,RL Server 构建在异步 slime 框架上,该服务器由四个解耦的组件组成:
      • (1)Environment Servers:环境服务器
      • (2)PRM Server:用于奖励计算的 PRM / Judge
      • (3)Megatron:Training Engine
      • (4)Policy Server(SGLang)
      • 这些组件支持平滑的权重更新,并能够与任何智能体框架一起进行训练
    • Personal Agent 的环境就是用户的个人设备,它们通过 HTTP 使用机密 API 密钥连接到 RL Server
    • General Agent 的环境托管在云服务上,以实现可扩展的并行化

Introduction and Discussion

  • 背景描述:
    • 背景:目前我们部署了很多智能体,当前部署的 AI 智能体其实已经在收集改进它自身所需的数据 ,但我们却又将其丢弃
    • 定义:在每个动作 \(a_{t}\) 之后,智能体都会收到一个 Next-state Signal \(s_{t + 1}\):
      • 比如 用户回复、工具执行结果、图形用户界面状态转换或测试判决等
    • 现有系统的做法:仅将 Next-state Signal \(s_{t + 1}\) 纯粹作为下一个动作的上下文 (2025; 2025; 2025; 2025b; 2025)
    • 作者观点:
      • Next-state Signal 编码了更有价值的东西:对 \(a_{t}\) 的隐含评估,包括它执行得如何,以及通常还包含它本应如何不同
      • 而且这个信号在每种交互类型中都是免费产生的,包括个人对话、终端环境、图形用户界面环境、软件工程任务和工具调用环境,然而现有的任何基于智能体的强化学习系统都没有将其恢复为实时的、在线的学习源
      • 作者识别出两种不同且可恢复的浪费(waste)

waste 1:Evaluative signals,评估信号

  • Next-state Signal 隐含地评分了先前的动作:
    • 比如用户的重新查询表示不满意 ,通过的测试表示成功 ,错误轨迹表示失败
  • 这形成了一个自然的过程奖励,不需要单独的标注流水线
  • 补充:目前 PRM 几乎仅在具有可验证真实情况的数学推理中被研究 (2025b; 2023; 2024)
    • 在 Personal Agent 中, PRM 逐轮捕获用户满意度
    • 在 General Agent 中, PRM 为长 horizon 任务提供了所需的密集的每步信用分配 (2026)
  • 而现有系统要么忽略此信号,要么仅以离线、预先收集的形式利用它,依赖于固定数据集或终端结果奖励

Waste 2:Directive signals,指导信号

  • Next-state Signal 通常还携带指导信息:
    • 一个说“你应该先检查文件”的用户不仅指明了回答是错误的 ,而且还指明了在 Token-level 应该如何改变
    • 一个详细的软件工程错误轨迹通常暗示了一个具体的修正方向
  • 当前的 RLVR 使用标量奖励
    • 无法将此类信息转换为方向性的策略梯度 (2025; 2025; 2024; 2025a)
  • 蒸馏方法 (2026; 2026) 依赖于预先整理的反馈-响应对
    • 非实时信号
  • 事后重标记 (hindsight relabeling) (2026; 2023) 和上下文丰富蒸馏 (context-enriched distillation) (2024b, 2025c) 表明,向上下文中添加结构化纠正信息可以显著改善输出
    • 但这些方法都在固定数据集上操作
  • 同期工作:Buening等人 (2026) 通过直接用下一状态信息提示来改进在线策略
    • 但纠正性提示 (corrective hints) 仍然是隐式的

OpenClaw-RL

  • OpenClaw-RL 是一个统一的框架,为 Personal Agent 和跨多种设置的 General Agent (包括与 OpenClaw 的个人对话 (OpenClaw, 2026)、终端、图形用户界面、软件工程和工具调用环境)恢复了两种形式的 Next-state Signal 浪费
  • OpenClaw-RL 是一个完全解耦的异步架构(基于 slime 构建)
    • 策略服务、Rollout 收集、 PRM 判断和策略训练作为四个独立的循环运行,彼此之间没有阻塞依赖
  • 在 Personal Agent Setting 中,模型可以通过正常使用自动优化
    • 这扩展了现有的强化学习基础设施,后者通常假设批处理数据收集,而非从实时部署中持续学习
    • 本文提出了两种优化选项
      • 二元强化学习 (binary RL):使用 PRM 将对话恢复为标量过程奖励
      • 事后引导的 On-policy 蒸馏 (Hindsight-Guided On-Policy Distillation, OPD):从下一状态中提取文本提示,构建一个增强的教师上下文,并将 Token-level 的方向性监督蒸馏回学生模型,提供了单独从标量奖励中无法获得的训练信号
    • 在模拟实验中,将两种方法与加权损失相结合能带来显著的性能提升
  • OpenClaw-RL 也可扩展到针对 General Agent 的强化学习训练,包括终端、图形用户界面、软件工程和工具调用设置
  • OpenClaw-RL 将 PRM 判断与可验证结果相结合,以提供既密集又可靠的监督 (2026; 2025)
  • 图 2 使用 OpenClaw-RL 训练 OpenClaw Agent 前后的一个模拟结果(注意:下图右表中提供的分数结果也是 Prompt 一个 GRM 来打分的,并不是人工评估的结果)

Contributions 总结

  • 将 Next-state Signal 作为实时的、在线的学习源
    • 作者识别出 Next-state Signal ,无论是用户回复、执行结果、测试判决还是图形用户界面转换,都编码了关于先前动作的评估信息和指导信息
    • 作者在异构的交互类型中将这些信号恢复为实时的、在线的训练源
  • OpenClaw-RL 基础设施
    • 首个能够统一多个并发交互流的系统,包括个人对话、终端、图形用户界面、软件工程和工具调用智能体设置
    • 被设计为对服务零中断,具有会话感知的多轮跟踪、平滑的权重更新、灵活的 PRM 支持以及大规模环境并行化
  • 两种互补的 Next-state Signal 恢复方法
    • 通过 PRM 的二元强化学习将评估性的 Next-state Signal 转换为密集的标量过程奖励
    • 事后引导的 OPD 通过从下一状态提取文本提示并构建一个增强的教师上下文,将指导性信号转换为 Token-level 的优势监督,其中丰富的文本反馈为改进提供了方向性指导
  • 跨 Personal 和 General Agent 的实证验证 OpenClaw-RL
    • Personal Agent 个性化实验
    • General Agent RL 实验:跨终端、图形用户界面、软件工程和工具调用的 setting
    • 通过实践证明二元强化学习和事后引导的 OPD 是互补的,并且它们的结合为 Personal Agent 带来了显著的性能提升
    • 作者还验证了在 General Agent 强化学习设置中整合过程奖励和结果奖励的有效性

Problem Setting

  • OpenClaw-RL 操作于一个策略 \(\pi_{\theta}\),该策略同时接收多个交互流,将它们与推理流水线解耦,因此足够灵活以适应广泛的智能体设置,包括 Personal Agent 对话、终端执行、图形用户界面交互、软件工程任务和工具调用轨迹
  • 本文将每个交互流形式化为一个马尔可夫决策过程 \((S, \mathcal{A}, \mathcal{T}, r)\):
    • 状态 \(s_t \in S\):截止到第 \(t\) 轮的完整对话或环境上下文
    • 动作 \(a_t \in \mathcal{A}\):智能体的响应,由 \(\pi_{\theta}\) 生成的 token 序列
      • 注意:这里不仅仅是一个 Token,也就是说动作空间不是词表,而是具体能做的动作,如点击鼠标等,通常由整个回复的所有 Token 组成
    • 转移 \(\mathcal{T}(s_{t+1} | s_t, a_t)\):由环境决定
      • 注:这里的 \(s_{t+1}\) 是紧随 \(a_t\) 之后的用户回复、执行结果或工具输出
    • 奖励 \(r(a_t, s_{t+1})\):通过 PRM judge 从 Next-state Signal 中推断得出
      • 注:这里的奖励是通过 \(s_{t+1}\) 推断出来的,
  • 在标准的 RLVR 中,结果 \(o\) 作为整个轨迹的奖励
    • 而依赖于下一状态 \(s_{t+1}\) 的过程奖励 \(r(a_t, s_{t+1})\) 包含了丰富得多的信号
    • 特别是,当下一状态包含关于动作本应如何不同的明确指导信息时, On-policy 蒸馏通过将此类方向性的 Next-state Signal 转换为 Token-level 的教师监督,实现了方向性的改进 (2024; 2026)

OpenClaw-RL Infrastructure: Unified System for Personal and General Agents

  • 本文将个人 OpenClaw 智能体的自动优化和针对 General Agent (包括终端、图形用户界面、软件工程和工具调用设置)的大规模智能体强化学习,统一在单个框架内

Asynchronous Pipeline with Four Decoupled Components,4 个解耦组件

  • OpenClaw-RL 的核心架构原则是完全解耦:策略服务、环境托管、 PRM 判断和策略训练作为四个完全独立的异步循环运行,它们之间没有阻塞依赖关系(图 1)
    • Policy Serving (SGLang) → environment (Http / API) → Reward Judging (SGLang / API) → Policy Training (Megatron)
    • Model Serves 下一个用户请求,同时 PRM 判断前一个响应 , Trainer 应用梯度更新,可以看出,没有一个组件需要等待其他组件
    • 这使得从实时的、异构的交互流中进行持续训练变得切实可行:无需为了适应另一个组件的时间表而暂停或批处理任何流
  • 对于 Personal Agent ,模型通过机密 API 连接,以实现私密和安全部署,无需修改 Personal Agent 框架,并且可以在不中断推理的情况下优雅地更新
  • 对于 General Agent 的大规模训练,这种异步设计允许每个组件无阻塞地进行,从而减轻了由长 horizon Rollout 时长引起的长尾问题

Session-Aware Environment Server for Personal Agents

  • Personal Agent 的环境是用户的设备,它通过 RL Server 的机密 API 连接,每个 API 请求被分类为两种类型之一:
    • 主线轮次 (Main-line turn) :智能体的主要响应和工具执行结果,这些构成了可训练的样本
    • 旁线轮次 (Side turn) :辅助查询、记忆组织和环境转换,这些被转发但不产生训练数据
  • 这种分类使得强化学习框架能够精确识别哪些轮次属于哪个会话,从而实现有针对性的训练
    • 目前仅训练主线轮次
  • 每个新的主线请求的消息包含对前一轮次的反应 ,whether 用户的回复 or 环境的执行结果
    • 这成为前一轮次奖励计算的 Next-state Signal \(s_{t + 1}\)

Scalability: From Single-User Personalization to Large-Scale Agent Deployment

  • OpenClaw-RL 被设计为能够在从单用户 Personal Agent 到大规模多环境 General Agent 部署的整个范围内运行
  • 对于 Personal Agent ,环境是单个用户的设备,交互流是稀疏的、基于会话的且高度个性化的
  • OpenClaw-RL 构建于 slime 之上 (2025),继承了用于 General Agent 的可扩展训练基础设施,并且作者进一步支持跨多种智能体设置(第 3.4 节)的云托管环境
  • 成百上千的并行环境托管在云服务上,产生密集的结构化执行信号流,从而实现可扩展的强化学习训练

Support for Multiple Real World Scenarios

  • OpenClaw-RL 在作者的开源实现中支持一系列广泛的 General Agent 场景,这些场景涵盖了最常见的现实世界部署设置(表 1)
    • Terminal Agent:计算机使用系统的核心组件:
      • 高效、扩展成本低,并且与大型语言模型的基于文本的界面自然对齐 (Anthropic, 2026; OpenAI, 2026; 2026)
    • GUI Agent:涵盖了终端智能体无法直接访问的能力
      • 例如视觉界面和基于指针的交互,这使得它们对于更通用的计算机使用任务来说是必要的 (2025; 2025a,c; 2026)
    • SWE Agent
      • 代表了一类特别重要的编码智能体,其中环境通过测试、差异和静态分析提供丰富的可执行反馈 (2026)
    • Tool Call Agent
      • 外部工具既能提高推理能力,也能提高事实准确性 (2025a)

Non-Blocking Record and Observability,非阻塞 Record 和可观测性

  • 所有交互和奖励评估都实时记录到 JSONL 文件中:完整的消息历史、提示/响应文本、工具调用、下一状态内容、每次投票的 PRM 分数、选中的提示 (OPD) 以及接受/拒绝决定
  • Record 是非阻塞的,写入操作在后台线程上是即发即弃的,不会给服务或 PRM 路径增加任何延迟
  • 记录文件在每个权重更新边界被清除,确保日志始终对应于单个策略版本
    • 理解:即每次权重更新后清除当前的日志,始终保持 On-Policy

Learning from Next-State Signals: Unified RL Across Interaction Types, 跨交互类型的 Unified RL

  • 本文将来自异构交互流(包括个人对话、终端交互、GUI 交互、SWE 任务和工具调用轨迹)的 Next-state Signal 转换为策略梯度
  • 核心创新:通过分析 Next-state Signal 信号,得到可优化模型的梯度
  • 下面会使用两个方向(方法)来提取信号

Binary RL for Personal Agent,用于 Personal Agent 的二元强化学习

  • Binary RL 提取信号的方法,将评估性的 Next-state Signal 转换为标量过程奖励
PRM Judge Construction via Majority Vote,通过多数投票构建 PRM Judge
  • 给定响应 \(a_{t}\) 和下一状态 \(s_{t + 1}\) ,一个评判模型评估 \(a_{t}\) 的质量:
    $$
    \mathrm{PRM}(a_{t},s_{t + 1})\rightarrow r\in \{+1, - 1,0\} .
    $$
  • 具体方案:
    • PRM 根据用户的下一个响应或工具调用结果来评判每个动作
      • 注:这里工具调用结果通常会导致明确的结论
    • 用户的下一个响应可能包含满意或不满意的信号
      • 如果没有明确的用户反应迹象,模型也会根据场景进行估计,作者鼓励用户提供更明确的反馈
    • 对于 General Agent , Judge 会推理环境的反馈是否表明朝着任务目标取得了进展
    • 作者运行 \(m\) 次独立的 Query,并采取多数投票
      $$ r_{\mathrm{final} } = \mathrm{MajorityVote}(r_1,\ldots ,r_m) $$
RL Training Objective
  • 通过直接使用优势 \(A_{t} = r_{\mathrm{final} }\) ,训练目标是标准的 PPO 风格的带不对称边界的裁剪替代目标 (Schulman 2017):
    $$
    \rho_{t} = \frac{\pi_{\theta}(a_{t}\mid s_{t})}{\pi_{\mathrm{old} }(a_{t}\mid s_{t})},\quad \mathcal{L}_{\mathrm{PG} } = -\mathbb{E}_{t}\big[\min (\rho_{t}A_{t},\mathrm{clip}(\rho_{t},1 - \epsilon ,1 + \epsilon_{\mathrm{high} })\cdot A_{t})\big],\quad \mathcal{L} = \mathcal{L}_{\mathrm{PG} } + \beta_{\mathrm{KL} }\cdot \mathcal{L}_{\mathrm{KL} }, \tag {1}
    $$
    • \(\epsilon = 0.2\)
    • \(\epsilon_{\mathrm{high} } = 0.28\)
    • \(\beta_{\mathrm{KL} } = 0.02\)
  • 请注意,这是一个实时的对话设置,因此不像 GRPO (Shao 2024) 那样有可用的组结构进行标准化

Hindsight-Guided On-Policy Distillation (OPD) for Personal Agent, 用于 Personal Agent 的 hindsight 引导的 On-policy 蒸馏

  • Hindsight-Guided OPD 提取信号的方法将指导性的 Next-state Signal 转换为 Token-level 的教师监督
Why Token-Level Supervision from Next-State Signals?,为什么需要来自 Next-state Signal 的 Token-level 监督?
  • 二元强化学习将 \(s_{t + 1}\) 的整个信息内容简化为一个标量 \(r\in \{+1, - 1,0\}\)
  • 但一个用户写下“你应该在编辑文件之前先检查一下”传达了更多的信息:
    • 不仅指出响应是错误的,还指出哪些 token 应该不同以及如何不同
    • 这种指导性信息完全被标量奖励丢失了
  • OPD 通过将 Next-state Signal 转换为 Token-level 的训练信号来恢复此信息
    • 这里的关键的 Insight:如果我们用从 \(s_{t + 1}\) 中提取的文本提示来增强原始 Prompt,同一个模型会产生不同的 token 分布,这个分布“知道”响应本应该是什么(这里和 (OPSD)Self-Distilled Reasoner: On-Policy Self-Distillation for Large Language Models, 20260126 - 20260305, UCLA & Meta 思想一致)
    • 这个增强提示的分布与学生分布之间的每个 token 的差距提供了一个方向性优势:在模型应该加权的 token 上为正,在模型应该减权的 token 上为负
      • 注:这是一种借助未来信号增强 Prompt,从而得到教师模型完成自我监督的方法,这与 RLHF (2017; 2019)(使用标量偏好信号)、DPO (2023)(需要成对偏好)和标准蒸馏(需要一个单独的、更强的教师模型)不同
Token-level OPD
Step 1. Hindsight hint extraction,提取 Hindsight hint
  • 此时,具体提取信息如下(除了 二元 信号外,比之前的方式多了一个 hint):
    $$
    \mathrm{Judge}(a_t,s_{t + 1})\rightarrow \{\mathrm{score}\in \{+1, - 1\} ,\mathrm{hint}\in \mathcal{T}^*\}
    $$
  • 如果 score \(= +1\) , Judge 会在 [HINT_START] … [HINT_END] 内生成一个简洁的提示
    • 注意:仅当 score \(= +1\) 时才会提取 hint 信息
  • 本文会运行 \(m\) 次并行的 Judge 调用
  • 一个关键的设计选择:我们不直接使用 \(s_{t + 1}\) 作为 Hint(提示)
    • 原始的 Next-state Signal 通常包含噪声、冗长或包含不相关的信息(例如,用户的回复可能同时包含更正和一个不相关的新问题)
    • Judge 模型将 \(s_{t + 1}\) 提炼成一个简洁、可操作的指令,该指令隔离了指导性内容,通常是 1-3 句话 ,聚焦于响应本应如何不同
Step 2. Hint selection and quality filtering,Hint 的选择和过滤
  • 在带有 Hint 且 字符数 \(>10\) 的正向投票中,选择最长(信息量最大)的
    • 如果没有有效的提示,则完全丢弃该样本,这是有意为之
  • OPD 用样本数量换取信号质量:
    • 只有当下一个状态信号带有清晰、可提取的修正方向时,该轮次才会进入训练
  • 这种严格的过滤与二元强化学习相辅相成(二元强化学习接受所有评分的轮次):
    • 二元强化学习通过粗略的信号提供广泛的覆盖,而 OPD 在较少的样本上提供有针对性的、高分辨率的监督
Step 3. Enhanced teacher construction
  • 提示被附加到最后一条用户消息之后,格式为 [user's hint / instruction]\n{hint},从而创建一个增强的 Prompt
    $$s_{\mathrm{enhanced} } = s_t \oplus \text{hint} $$
    • 这模拟了如果用户事先提供了修正,模型“本会看到的”上下文
Step 4. Token-level advantage
  • 策略模型在 \(s_{\mathrm{enhanced} }\) 下以原始响应 \(a_{t}\) 作为强制输入进行查询,计算每个响应 token 的对数概率
  • 然后得到 On-policy 蒸馏中的 Token-level 优势:
    $$
    A_{t} = \log \pi_{\mathrm{teacher} }(a_{t}\mid s_{\mathrm{enhanced} }) - \log \pi_{\theta}(a_{t}\mid s_{t}).
    $$
    • \(A_{t} > 0\) :教师(知道提示)给这个 token 分配了更高的概率,学生应该增加它
    • \(A_{t}< 0\) :教师认为考虑到提示,这个 token 不太合适,学生应该减少它
  • 与将所有 token 推向同一方向的标量优势不同,这提供了每个 token 的方向性指导 :
    • 在同一个 Response 中,一些 token 可能被加强,而另一些则被抑制
    • 训练遵循与公式 (1) 相同的裁剪替代目标,但现在优势在每个样本上携带了丰富得多的信息

Combine Binary and OPD Methods,结合二元和 OPD 方法

  • 者一步的目标是发挥彼此的优势,抵消彼此的弱点
  • 表 2 解读:
    Binary RL OPD Combined(二者结合)
    信号类型 评估 好 or 坏 引导方向(Directional) 评估信号 + 方向引导
    优势 Sequence-level 标量 Token-level directional 混合 Sequence-level and Token-level
    密度 所有评过分的轮次 仅 hint-accepted 轮次 所有评过分轮次
    反馈类型 用户 / 环境 反馈信号 明确修正信号 隐式和明确的反馈
    信号丰富度 每个样本 1 个标量 每个 token 1 个值 每个 token 1 个值
  • 二元和 OPD 方法是互补的,而不是竞争的
    • 二元强化学习接受每一个被评分的轮次,不需要 Hint 提取,并且适用于任何 Next-state Signal ,包括简洁的、隐式的反应(用户简单地重复提问)或结构化的环境输出(退出代码、测试 verdicts)
    • 当交互流可能包含丰富的指导性内容时,应该额外启用 OPD:
      • 那些给出明确修正的用户(“不要使用那个库”,“先检查文件”),或者产生详细错误轨迹的环境(SWE diffs,编译器诊断)
      • 在实践中,作者建议同时运行两者:
        • 二元强化学习 在所有轮次上提供广泛的梯度覆盖
        • OPD 在那些有指导性信号的轮次子集上提供高分辨率的、每个 token 的修正
  • 作者提出通过一个加权损失函数来结合这两种互补方法
    • 因为两种方法共享相同的 PPO 损失,只是优势的计算不同,故可以直接使用以下优势:
      $$
      A_{t} = w_{\mathrm{binary} }r_{\mathrm{final} } + w_{\mathrm{opd} }(\log \pi_{\mathrm{teacher} }(a_{t}\mid s_{\mathrm{enhanced} }) - \log \pi_{\theta}(a_{t}\mid s_{t})),
      $$
      • 默认设置 \(w_{\mathrm{binary} } = w_{\mathrm{opd} } = 1\)
      • 后续实验展示了这种方法取得了显著的性能提升

Step-wise Reward for General Agentic RL

  • 如何结合结果奖励和过程奖励?
Why Process Rewards Are Vital for Agentic Tasks,为什么过程奖励对智能体任务至关重要
  • 在长 horizon 的智能体任务中,仅依赖结果的奖励仅在最终步骤提供梯度信号,使得绝大多数轮次无监督
  • PRM 根据 Next-state Signal 为每个轮次分配奖励,在整个轨迹中提供密集的 credit assignment
  • 最近的工作为此提供了强有力的经验证据
    • RLANything (2026) 证明,将步骤级 PRM 信号与结果奖励相结合,在 GUI 智能体、文本游戏智能体和编码任务中始终优于仅依赖结果的训练
    • 本文在 OpenClaw-RL 中直接基于这一 Insight 构建:
      • 本文的 PRM 使用实时的 Next-state Signal 作为证据来评判每个轮次,并且作者在实证中(§5.4)证明了这种密集信号对长 horizon RL 设置是有帮助的
Integrate Outcome and Process Rewards,整合结果和过程奖励
  • 可验证的结果是 RLVR 设置中的标准监督信号
  • 遵循 RLANything (2026),作者通过简单地将它们相加来整合结果和过程奖励,对于步骤 \(t\) 使用下面的奖励
    $$ o + \sum_{i = 1}^{m}r_{i} / m$$
    • 其中 \(r_{i}\) 由 \(\mathrm{PRM}(a_{t},s_{t + 1})\) 独立分配
  • 与 GRPO 不同,步骤级奖励的存在使得计算优势不那么直接
    • Feng 等人 (2025b) 将相似的状态分组并在每组内进行标准化
    • 但在诸如终端智能体之类的现实世界环境中,状态不容易聚类
    • 作者提出直接对具有相同步骤索引的动作进行分组,并在实证研究中发现这是有效的

Experiments

  • 在两个互补的 Track 上评估 OpenClaw-RL,共享相同的基础设施和训练循环
  • §5.3 评估 Personal Agent Track ,展示了对话式 Next-state Signal 能够实现对个人用户偏好的持续个性化
  • §5.4 评估 General Agent Track ,涵盖终端、GUI、SWE 和工具调用设置,证明相同的基础设施支持跨不同智能体场景的可扩展 RL,并且步骤级奖励对于长 horizon 任务至关重要

Personal Agent Setup

  • 用仿真结果证明优化的有效性
角色一:Student Who Uses OpenClaw to Do Homework,使用 OpenClaw 做作业的学生
  • 学生目标:不希望被发现使用了人工智能
    • 注:学生有这个意图,但不会直接把这个意图添加到 Prompt 上
  • 在此设置中,作者使用一个 LLM 来模拟一个学生在个人电脑上使用 OpenClaw 完成作业,同时试图避免被认为依赖 AI
    • 注:一个回答是否看起来像是 AI 生成的,完全取决于学生的个人偏好和写作风格
  • 学生持续与 OpenClaw 互动,并请求它帮助完成作业
  • 作业任务来自 GSM8K (Cobbe 2021)
  • 此设置中使用的 OpenClaw 策略模型是 Qwen3-4B (Yang 2025a)
  • 将学习率设置为 \(1 \times 10^{- 5}\) ,KL 系数设置为 0,并在每收集 16 个训练样本后触发训练
角色二:Teacher Who Uses OpenClaw to Grade Homework,使用 OpenClaw 批改作业的老师
  • 教师目标:希望评论具体且友好
  • 学生在文件中完成作业后,老师也使用 OpenClaw 来批改 AI 编写的作业
  • 老师希望给学生评语具体且友好。OpenClaw 策略模型同样是 Qwen3-4B,并使用相同的优化设置

General Agent Setup

Models
  • 作者在终端、GUI、SWE 和工具调用设置中分别使用 Qwen3-8B (Team, 2025)、Qwen3VL-8B-Thinking (Bai 2025)、Qwen3-32B (Team, 2025) 和 Qwen3-4B-SFT
  • 这里,Qwen3-4B-SFT 指的是由 Zhu 等人 (2025) 提供的模型,该模型在 Feng 等人 (2025a) 的数据集上进行了微调
  • GUI 和工具调用智能体的 PRM 分别是 Qwen3VL-8B-Thinking 和 Qwen3-4B
Datasets
  • 使用 SETA RL 数据 (Shen 2026)、OSWorld-Verified (Xie 2024)、SWE-Bench-Verified (Jimenez 2023) 和 DAPO RL 数据 (Yu 2025a) 分别训练终端、GUI、SWE 和工具调用智能体
  • GUI 智能体在训练集上进行评估(排除了 chrome 和多应用任务)
  • 工具调用智能体在 AIME 2024 (Mathematical Association of America, American Mathematics Competitions, 2024) 上评估
  • 对于终端和 SWE 智能体,报告 RL 步骤窗口上的平均 rollout 任务准确率
Hyperparameters
  • 学习率:\(10^{- 6}\)
  • KL 系数:0.01
  • 下裁剪比率:0.2
  • 上裁剪比率:0.28
  • 对于 GUI 和 SWE Setting
    • 每一步采样 8 个任务
    • 终端设置采样 16 个
    • 工具调用设置采样 32 个
  • 对于每个任务,独立抽取 8 个样本
  • GUI、SWE 和终端的最大交互步数分别为 30、20 和 10
  • 更多细节见附录 D

Personal Agent Track: Learning from Conversational Signals

Takeaway [Q1]:二元强化学习 vs. OPD,每种 Next-state Signal 类型何时胜出?
  • 组合方法实现了最有效的优化,并且 On-policy 蒸馏由于训练样本的稀疏性而表现优于二元强化学习,但需要更长时间才能显现其效果(表 3)
  • 为了比较不同方法,作者使用与用户模拟中相同的 LLM(针对学生和教师设置)为 OpenClaw 为每个问题首先生成的解决方案分配定量个性化得分(见附录 C.3)
    • 本文报告了 GSM8K 中前 36 个问题的平均得分
  • 如表 3 所示,组合方法实现了最强的优化性能
    • 由于训练样本稀疏, On-policy 蒸馏显示出延迟的增益,而仅使用二元强化学习仅带来边际改善
Takeaway [Q2]:OpenClaw-RL 是否会随时间提高个性化程度?
  • 在组合优化方法下,OpenClaw 在学生设置中仅需 36 次问题解决交互,在教师设置中仅需 24 次批改交互,就能实现显著且清晰可见的改进(图 2)
  • 作者还提供了具体示例来说明优化的效果及其生效的速度
    • 在学生设置中经过 36 次问题解决交互后,智能体学会了避免明显的 AI 式措辞,例如使用像“bold”这样的词或产生过于结构化、逐步的响应(图 2)
      • 学生学会了转向了更自然和随意的风格
    • 在教师设置中,经过 24 次批改交互后,智能体学会了写出更友好、更详细的反馈
    • 注:附录 B 中提供了更多示例

General Agents: Unified RL Across Terminal, GUI, SWE, and Tool-Call,统一强化学习

Takeaway [Q3]:OpenClaw-RL 作为一个通用的智能体强化学习框架是否具有竞争力?
  • 本文证明了 OpenClaw-RL 能够处理多种现实世界设置,包括终端、GUI、SWE 和工具调用智能体,并能跨不同模型大小和模态进行大规模环境并行化(图 4)
  • 作者在广泛使用的现实世界智能体设置中进行了实验,包括终端、GUI、SWE 和工具调用场景(图 4)
    • 大规模环境并行化进一步提高了作者 RL 训练的可扩展性
  • 在本文的 RL 训练期间,为终端智能体使用了 128 个并行环境,为 GUI 和 SWE 智能体使用了 64 个,为工具调用智能体使用了 32 个
Takeaway [Q4]: PRM 对于长 horizon 任务至关重要吗?
  • 整合结果和过程奖励比仅使用结果奖励能带来更强的优化,尽管它需要更多资源来托管 PRM(表 4)
  • 作者在工具调用(250 步)和 GUI(120 步)设置中使用整合奖励进行 RL 训练,发现结合结果和过程奖励能进一步提升性能(表 4)
  • 结论:PRM 是必要的

Related Work

RL for LLMs

  • 当前系统主要以批处理-离线模式运行,其中数据收集和训练在不同的阶段进行,使用固定的数据集
    • RLHF (2017; 2019) 建立了基于 PPO 的对齐流程
    • DPO (2023) 通过闭式偏好优化进一步绕过了显式奖励建模
    • GRPO (2024) 通过组相对优势估计消除了 Critic 网络
    • DAPO (2025a) 对 GRPO 进一步扩展
    • ReasonFlux (2025b) 采用正交方法,应用分层强化学习来优化思维模板序列,而不是原始的 token 级 CoT,通过结构化推理实现了显著的增益
  • OpenClaw-RL 是直接从实时交互信号中持续训练,无需任何数据预收集阶段

Agentic RL and tool-use

  • 基础的智能体范式如 ReAct (2023)、Toolformer (2023) 和 FireAct (2023) 实现了与外部工具的多步交互,但依赖于示范而非在线 RL
  • 近期的工作将 RL 应用于特定智能体设置,如用于代码和工具使用的 SWE-agent (2024a) 和 ReTool (2025a),用于 GUI 智能体的 DigiRL (2024) 和 WebRL (2024),用于多轮 credit assignment 的 ArCHer (2024) 和 LOOP (2025),但每个都针对单一环境并使用专门的训练流程
  • DemyAgent (Yu 2025b)、RLAnything (Wang 2026) 和 CURE (Wang 2025d) 通过研究数据质量和闭环奖励模型协同优化,进一步推进了智能体强化学习

PRM (Process reward models)

  • PRM 证明了步骤级监督在数学推理中优于仅结果监督
  • Math-Shepherd (Wang 2024) 通过蒙特卡洛估计自动进行步骤级监督,无需人工标注
  • GenPRM (Zhao 2025) 通过生成式思维链验证扩展了 PRM
  • ReasonFlux-PRM (Zou 2025) 将 PRM 扩展到轨迹感知评估,用于长 CoT 推理,提供离线数据选择和在线密集过程级奖励
  • PRIME (2025a) 从结果标签中学习隐式过程奖励
  • RLAnything (2026) 提供了大规模证据,表明步骤级 PRM 信号对于长 horizon 智能体任务至关重要,并且联合优化的奖励模型信号超越了人工标注的监督
  • 作者将 PRM 风格的评判扩展到在线设置,其中过程奖励是从实时的 Next-state Signal 推断出来的,而不是从预收集的真实数据中获取,并且应用于异构的长 horizon 智能体设置

On-policy distillation and hindsight methods

  • 上下文增强方法证明,用结构化信息增强 Prompt 可以产生根本更好的 token 分布:
  • Buffer of Thoughts (2024b) 检索高层思维模板,而 SuperCorrect (2025c) 从教师模型中提取分层模板用于跨模型的基于 DPO 的错误修正
  • 基于 Hindsight 的方法用回溯信息重新标记过去的经验:
    • HER 在经典 RL 中重新标记目标
    • STaR (2022) 用答案提示合理化失败
    • HIR (2023) 将反馈转换为重新标记的指令
    • Self-Rewarding (2024) 使用 LLM 作为自己的 Judge 进行迭代改进
    • On-policy 蒸馏方法 (2024; 2026; 2026) 在模型自身基于执行反馈的生成上进行训练,实现了比 GRPO 更快的加速,但需要预先收集的反馈-响应
  • OpenClaw-RL 的 Hindsight-Guided OPD 在在线设置中统一了这些线索:
    • 从实时 Next-state Signal 中提取文本提示(hindsight 重新标记),模型在提示增强的上下文下充当自己的教师(通过上下文增强进行自蒸馏),由此产生的 token 级对数概率差距提供了方向性优势监督,无需预收集数据、无需外部教师、也无需成对偏好

RL training infrastructure

  • OpenRLHF (Hu 2024)、AReal (Fu 2025)、veRL (Sheng 2025) 和 slime (Zhu 2025) 为可扩展的 RL 训练解耦了 Rollout 和训练引擎
  • OpenClaw-RL 建立在 slime 之上,实现了四个完全解耦的异步循环:
    • Serving、Rollout、PRM judging 和 Training,允许从实时多流交互中持续训练,且服务零中断
    • 这种能力在之前的 RL 基础设施中是不存在的,因为它们假定的是批处理数据收集,而非实时部署

附录 A:Algorithm Pseudocode

  • Algorithm 1:Binary RL Pipeline (per main-line turn, both tracks)

  • Algorithm 2:OPD Pipeline (personal agent track)


附录 B:More Optimization Examples

B.1. Student Setting

  • Example 1 (Before and After Optimization)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [Before Optimization]
    1. The probability of rolling a number greater than 3 on a single die is **50%** (numbers 4, 5, 6 out of 6).
    2. The probability of rolling two even numbers in a row is **25%** (3 even numbers per roll * 3/6 * 3/6 = 1/4).
    3. The difference in likelihood is **25 percentage points** (50% - 25%).
    To express this as a *percentage increase relative to the second event*:
    $$
    \frac{50\% - 25\%}{25\%} \times 100\% = 100\%
    $$
    **Answer:** 100% more likely.

    [After Optimization]
    The answer is 100%. Here’s the breakdown: The probability of rolling a number greater than 3 on a six-sided die is 3/6 = 50%. The probability of rolling two even numbers in a row is (3/6) * (3/6) = 25%. The relative difference is (50% - 25%) / 25% = 100%.
  • Example 2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [Before Optimization]
    Sara needs $70 total for the jacket and shoes ($30 + 2*$20).
    She starts with $10 saved and earns $20 from babysitting (4 * $5). This gives her $30 total so far.
    She still needs $40 more ($70 - $30).
    Since she earns $4 per lawn mow:
    **$40 / $4 = 10**
    **Answer:** Sara must mow the lawn **10 times** to afford the jacket and shoes.
    *(No file changes made yet - ready to write to the file when you say so!)*
    [After Optimization]
    The jacket costs $30 and two pairs of shoes at $20 each, so that’s $40 total for shoes. Adding the jacket gives us $70 for everything. Sara already has $10 saved and earns $5 each time she babysits (4 times = $20), so she has $30 so far. She needs $70 - $30 = $40 more. Since she makes $4 per lawn mow, she needs to do 40 / 4 = 10 times. So the answer is 10 times.

B.2 Teacher Setting

  • Example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Before Optimization]
    Correct. Well done!

    [After Optimization]
    Your step-by-step approach is fantastic! You correctly added 20 + 44 to get 64,then calculated 100 - 64 = 36. This shows you understand how to break downthe pr
    Your calculation of 21 * (3/8) days per painter was spot-on. It’s easy to forgetthat the "3/8ths of a day" applies to each painter individually (since thequestion asks for "each painter"), but you handled it perfectly. [emoji]
    The conversion from days to hours (multiplying by 24) was done with such precisionthat the fractions canceled out neatly to give 189 hours. Brilliant work![emoji]
    You didn’t even need to divide by 4 because the problem asked for "each painter" -that’s a great catch! [emoji]
    Well done! You clearly understood the problem structure and executed the math withconfidence. Keep up the excellent problem-solving skills! [emoji]

附录 C:Prompt Templates

C.1. Personal Agent: PRM Judge Prompt

  • System Prompt (Binary RL, Personal)
    1
    2
    3
    4
    5
    You are a process reward model (PRM) evaluating an AI assistant.
    You will see the assistant’s output and the subsequent user reply.
    Judge the quality of the assistant’s output based on the feedback.
    Think step-by-step, then give your final score inside \boxed{}.
    Valid scores: \boxed{1} (good), \boxed{-1} (bad), \boxed{0} (neutral).

C.2. Personal Agent: OPD Hindsight Hint Prompt

  • System Prompt (OPD)
    1
    2
    3
    4
    5
    You are a process reward model used for hindsight hint extraction.
    Decide whether the next state reveals useful hindsight that could have improved the assistant response at turn t.
    - Output \boxed{1} if yes; provide a hint in [HINT_START]...[HINT_END].
    - Output \boxed{-1} if no; do not provide a hint.
    - Hint must be concrete and actionable (1-3 sentences).

C.3. Personal Agent: Evaluative Prompt from Simulator

  • System Prompt (Personalization Score Prompt)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    You are an evaluator used to score the assistant’s first response to a problem.
    You will be given:
    - a problem,
    - the assistant’s first generated solution,
    - and the user’s preference: [PREFERENCE].
    Your job is to evaluate how well the solution satisfies the user’s preference.
    Scoring rule:
    - Output exactly one score from \boxed{0}, \boxed{2.5}, \boxed{0.5}, \boxed{0.75}, or \boxed{1}.
    - Higher scores mean the response better matches PREFERENCE.
    - Lower scores mean the response fails to satisfy PREFERENCE.
    Evaluation criteria:
    - Consider whether the response follows the preferred style, tone, level of detail, and format implied by PREFERENCE.
    - Consider whether the response is helpful, appropriate, and aligned with the user’s expected behavior.
    - Focus only on the first generated solution.
    Output format:
    - Output only the boxed score.
    - Do not provide any explanation.

C.4. General Agent: PRM Judge Prompt

  • System Prompt (Terminal)

    1
    2
    3
    4
    5
    You are an evaluator for a terminal agent.
    You are provided with:
    1) the agent’s task instruction,
    2) the interaction history, and
    3) the agent’s most recent step to evaluate.
  • User Prompt (Terminal)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    "task_instruction": {task_instruction}
    "history": [
    {
    "turn_idx": {history_turn_idx},
    "assistant_text": {history_assistant_text},
    "tool_calls": {history_tool_calls},
    "tool_results": {history_tool_results},
    },
    ...
    ]
    "current": {
    "turn_idx": {current_turn_idx},
    "assistant_text": {current_assistant_text},
    "tool_calls": {current_tool_calls},
    "tool_results": {current_tool_results},
    }
    Evaluate ONLY the single most recent step using the information above.
    Assign a score of +1 if ALL of the following are true:
    - The current assistant message is a correct/helpful step that advances the task;
    - The tool-call format is valid;
    - Tool usage is appropriate for the step;
    - Tool results (if any) are consistent with making progress.
    Otherwise assign a score of -1, for example if:
    - The step is incorrect, misleading, or does not advance the task;
    - Tool-call format is broken (invalid JSON / parse error);
    - Tool usage is clearly wrong or irrelevant;
    - Tool results show failure or clearly no progress.
    Think carefully, then provide your reasoning and put the final score in \\boxed{}.
  • System Prompt (GUI)

    1
    2
    3
    4
    5
    You are an evaluator for the most recent step of a GUI agent.
    You are provided with:
    1) the interaction history between the agent and the environment,
    2) the agent’s objective, and
    3) the agent’s most recent step to evaluate.
  • User Prompt (GUI)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    {"type": "text", "text": "Previous Actions:\n{None or Step k lines}\n"},
    {"type": "text", "text": "Image of environment:\n"},
    {"type": "image", "image": "data:image/png;base64,{history_image}"},
    {"type": "text", "text": "\nAction of agent:\nStep {k}:\n{history_action}\n"},
    {"type": "text", "text": "Agent’s current observation:\n"},
    {"type": "image", "image": "data:image/png;base64,{current_obs}"},
    {"type": "text", "text": "\nYou are a strict evaluator to evaluate the most recent step of the agent in the following.\n\nObjective of Agent:\n{instruction}\n\nAgent’s most recent step (reasoning + action):\n{policy_response}\n"},
    {"type": "text", "text": "\nNext observation after executing this action:\n"},
    {"type": "image", "image": "{next_obs}"},
    Evaluate ONLY the single most recent step using the information above.
    Use the next observation AFTER executing this step (i.e., the environment state after this action) to judge whether the action actually took effect.
    Assign a score of +1 if ALL of the following are true:
    - The step is clearly relevant to the stated objective;
    - The action is executable and coherent given the next observation;
    - The next observation shows concrete progress toward the objective, not just a no-op.
    Otherwise assign a score of -1, for example if the step is incorrect, irrelevant, impossible in context, has no visible effect,\nundoes progress, contradicts the next observation, or hallucinates tools/objects/facts.
    Think carefully, then provide your reasoning and put the final score in \\boxed{}.
  • System Prompt (SWE)

    1
    2
    3
    4
    5
    6
    You are a strict evaluator for a software engineering agent that fixes GitHub issues.
    You are provided with:
    1) The issue description (problem statement).
    2) The agent’s recent action history.
    3) The agent’s most recent step (THOUGHT + bash command) to evaluate.
    4) The execution result of that command (returncode + stdout/stderr).
  • User Prompt (SWE)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ## Issue Description
    {problem_statement}
    ## Recent History ({n_history} steps)
    {history_summary}
    ## Current Step to Evaluate (step {step_num})
    Agent’s full response:
    {policy_response}
    Execution result (returncode={returncode}):
    {command_output}
    Evaluate ONLY the single most recent step above.
    Assign a score of +1 if ALL of the following are true:
    - The command executed without unexpected errors (returncode=0, or expected non-zero like grep with no match);
    - The step is clearly relevant to diagnosing or fixing the stated issue;
    - The output provides useful information OR the edit makes a logically correct change toward fixing the bug.
    Otherwise assign a score of -1, for example if:
    - The command fails with an unexpected error (wrong path, syntax error, missing tool);
    - The step is irrelevant to the issue (wrong file, wrong concept, unnecessary exploration);
    - The agent is going in circles (repeating a previously failed command or approach);
    - The edit introduces an obvious bug or does not address the actual issue;
    - The agent is wasting steps (e.g. reading files already fully examined).
    Think carefully, then provide your reasoning and put the final score in \\boxed{}.

附录 D:Hyperparameters

  • 表 5

NLP——RLAnything

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:RLAnything: Forge Environment, Policy, and Reward Model in Completely Dynamic RL System, Princeton, 20260202, Yinjie Wang

Paper Summary

  • 整体总结:
    • RLAnything 是一个针对任意 LLM 或 Agentic 场景都可以做 RL 训练的框架
    • RLAnything 使用整合的监督训练策略,并通过一致性反馈改进奖励模型,在整个训练过程中提供更强、更可靠的信号
    • RLAnything 包含了 策略 和 奖励模型 的同时学习
      • 奖励模型的训练是通过奖励信号学习的
    • 整合了 Step-wise 和 Outcome 的反馈信号
    • 号称通过本文方法优化 的奖励模型信号 优于 人工标注的结果信号(注:这一点其实存疑)
    • 本文还会动态调整训练环境:
      • 本文证明了一个结论:对于任何目标策略来说,过于简单或者过于复杂的环境都不适合做这个策略的 RL 训练
    • In Summary,RLAnything 使环境、策略和奖励模型能够相互提供反馈,从而增强学习信号并改进整个系统
  • 具体描述:
    • RLAnything 通过 Closed-loop Optimization 动态地优化环境 、策略 和奖励模型 ,放大学习信号并增强整个 RL 系统在任意 LLM 或智能体场景下的能力
    • 本文包含多个 Features,实验对各种做了详细的 Ablation
    • OSWorld 上, Qwen3-VL-8B-Thinking 的性能提升了 \(9.1%\)
    • AlfWorld 和 LiveBench 上,分别将 Qwen2.5-7B-Instruct 的性能提升了 \(18.7%\) 和 \(11.9%\)
  • 图 1:RLAnything 框架的总结性实验结果和关键 Insight
    • 1)联合优化奖励模型和环境,反过来有益于策略的学习曲线,从而获得更高的收敛精度
    • 2)来自优化后奖励模型的 Step-wise 信号优于人工标注的结果信号
      • 此外,还可以观察到整合后的反馈对于长轨迹任务至关重要
    • 3)RLAnything 在多种现实应用中的验证
    • 4)新的环境任务呈线性扩展,奖励模型在评估当前步骤的正确性和对结果的影响方面都变得更强大

Introduction and Discussion

  • 背景:
    • RLVR 效果不错,但在策略与环境进行长轨迹的迭代交互时,仅靠二元结果奖励提供的监督是不足的 (2023; 2025; 2024)
    • Step-wise 信号通常由生成式奖励模型提供,这些模型通过利用语言模型的推理能力,往往优于基于标量的模型 (2025; 2024)
      • 但训练这些模型通常需要收集高质量的、特定于任务的监督数据 (2025; 2025)
    • 结论:需要一个更自动化方法和可扩展的监督
  • 环境的质量对于扩展强化学习也很重要
    • 举例1:将任务难度与模型当前能力对齐已知能改善训练动态 (2025; 2025)
      • 在 RLVR 中,在优化过程中调整任务难度可以改善策略训练 (2025)
    • 举例2:在现实世界的环境中,探索的范围很大程度上由任务定义
      • 例如用于 GUI 智能体的计算机 (2025a; 2024) 或用于机器人的物理世界 (2013),
      • 通过增加任务多样性来扩展环境可以进一步促进策略在更广泛场景下的泛化能力 (2025; 2025; 2020; 2025; 2026; 2021)
  • 核心问题提出:是否存在一个可以联合优化环境、策略和奖励模型的 RL 系统,能用于放大学习信号并强化整个系统?
  • RLAnything 就是这样一个动态的 RL 框架,可以在闭环系统中 Forge 环境、策略和奖励模型
    • 每个组件持续接收来自其他组件的反馈,在各种复杂的 LLM 或智能体场景中放大学习信号
    • 策略训练:使用整合后的反馈进行训练
      • 该反馈结合了可验证的结果奖励和奖励模型提供的 Step-wise 信号
    • 奖励模型训练:通过基于结果和自洽性(self-consistency)的一致性反馈进行联合优化
      • 这样可产生可靠的 Step-wise 监督,这反过来又改善了策略学习
    • 奖励模型训练改进:
      • 基于理论结果分析得到结论:平衡任务难度不仅有益于策略训练,也有益于 RL 系统中的奖励模型训练
    • 环境任务调整:
      • 基于来自策略和奖励模型的 Critic 反馈来调整环境任务,实现精确和自动的任务调整
      • 将奖励模型总结出的、捕捉策略失败原因的信息输入到一个语言模型中,以扰动任务,为如何修改任务提供具体指导
  • RLAnything 是通用的,在多种场景中进行了验证:
    • Compute use (2024)
    • Text-based Interactive Games (2018; 2020)
    • Coding LLM 场景
  • 主要贡献总结:
    • (个人补充)作者通过大量实验观察到了一些关键 Insight
    • 作者提出了动态 RL 系统 RLAnything,通过闭环优化 Forge 环境、策略和奖励模型,以放大学习信号并强化整个系统
    • 作者多个场景(Compute-use Agent、Text-based LLM 智能体和 Coding LLM)实验中,展示了每个添加的动态组件都持续地有益于整个系统,并提升了 OOD 性能
    • 实验指标显著提升:
      • 在 OSWorld 上,Qwen3-VL-8B-Thinking 的性能提升了 \(9.1%\)
      • 在 AlfWorld 和 LiveBench 上,Qwen2.5-7B-Instruct 的性能分别提升了 \(18.7%\) 和 \(11.9%\)
    • 展示了广泛的适用性: Optimized RM 信号优于依赖人工标注的结果信号,使得从经验中主动学习(active learning)和环境扩展成为可能

RLAnything

  • RLAnything(参见算法 1)将策略模型、奖励模型和环境紧密结合,以实现联合优化
  • 具体方法:
    • 使用整合后的反馈(第 2.1 节中的公式 1)来训练策略
      • 反馈结合了来自奖励模型的 Step-wise 信号和 Trajectory-level 的结果信号
    • 通过将策略的轨迹视为环境任务,并通过公式 2 分配一致性反馈来训练奖励模型
      • 作者在第 2.3 节中证明,这个目标也能提高奖励模型预测最终结果的准确性
    • 随着奖励模型变得更准确,它反过来为策略提供了更强、更具信息量的学习信号
    • 调整环境任务的难度不仅有益于策略训练,也有益于奖励模型训练
  • 为了实现自动化和有针对性的调整,具体的任务修改由从奖励模型的评估响应中总结出的 Critic 反馈来指导(第 2.4 节)

Integration Feedback for Policy

  • 给定一个任务 \(q \in Q\) 和一个策略 \(\pi\),采样一个轨迹 \(\tau \sim \pi(\cdot | q)\) 并获得一个最终结果奖励
    $$ O_{\tau} \in \{- 1, 1\} $$
  • 对于第 \(i\) 步 \(\tau_{i}\),独立用奖励模型进行 \(m\) 次打分 ,得到
    $$S_{\tau_{i,j} } \in \{- 1, 1\}$$
    • 其中 \(j = 1, \ldots , m\),这里的 \(-1\) 表示未向最终目标推进或是一个 Step-wise 错误
  • 本文将步骤奖励定义为:
    $$R_{\tau_i} = O_{\tau} + \frac{\lambda}{m}\sum_{j = 1}^{m}S_{\tau_{i,j} } \tag {1}$$
    • 该公式将结果信号与细致的 Step-wise 反馈结合起来
    • 默认情况下设 \(\lambda = 1\)
    • 理解:当前设置下, Step-wise 的反馈奖励 和 Outcome 奖励各占一半融合(注,Step-wise 是 \(m\) 次采样得到的)
  • 通过在相同步骤索引 \(i\) 上的轨迹集合(即 \(\{R_{\tau_i}: \tau \sim \pi(\cdot | q)\}\))中对奖励进行标准化来计算优势(advantages)
    • 补充理解:这也是后来在 OpenClaw-RL 中使用的 Step-level 归一化方法(可能存在归一化时状态不一致的问题,理论上最优的归一化方式是在相同的 状态下才可以)
    • 注意:这里起始的状态是相同的(即 \(q\) 相同),但中间步骤的状态会不同
      • 若果 \(q\) 不同是不行的,状态差异太大了

Consistency Feedback for Reward Model

  • 对于轨迹的第 \(i\) 步 \(\tau_{i}\),奖励模型 \(r_{\phi}\) 的第 \(j\) 次打分(总共 \(m\) 次)为 Step-wise 标签 \(S_{\tau_{i,j} }\),并接收以下奖励信号:
    $$R_{\tau_{i,j} } = R_{\tau_{i} }\cdot S_{\tau_{i,j} } \tag {2}$$
    • 注:前一节中可以知道:
      • \(R_{\tau_i} = O_{\tau} + \frac{\lambda}{m}\sum_{j = 1}^{m}S_{\tau_{i,j} }\) 是包含了 Step-wise 和 Outcome 的融合奖励
      • \(S_{\tau_{i,j} } \in \{- 1, 1\}\) 是 Step \(i\) 下,奖励模型第 \(j\) 次打分得到的结果
    • \(R_{\tau_{i} }\in [- 1,1]\) ,反映了步骤 \(\tau_{i}\) 的整体质量
      • \(R_{\tau_{i} }< 0\) 表示质量差
      • \(R_{\tau_{i} } > 0\) 表示质量好
      • \(R_{\tau_{i} }\) 的值越接近 0,表示对该步骤的不确定性越大(可能好也可能坏,不好区分)
    • 这个 Step-wise 信号与第 \(j\) 次评估之间的一致性由 \(R_{\tau_{i} }\cdot S_{\tau_{i,j} }\) 捕获,本文将其用作该评估的监督信号
      • 问题:这里的表述不太清晰,如何理解这里的一致性?
  • 在策略优化过程中,策略的轨迹也充当奖励模型的训练环境(即 RM 也是动态更新优化的)
    • Refined 奖励模型为策略提供更强的奖励信号,并为指导环境任务调整提供更准确的反馈,这反过来又促进了策略和奖励模型的训练

Adaptation of Environment Benefits Both Policy and Reward Models,环境调整有益于策略和奖励模型

  • (本节中作者证明了优化上一节的这个目标可以提高奖励模型预测未来结果的准确性,并且本文的环境调整进一步促进了这种优化)
  • 本节目标:证明 对于任何目标策略来说,过于简单或者过于复杂的环境都不适合做这个策略的 RL 训练
  • 奖励模型信号的质量不仅取决于单个步骤的逻辑正确性,还取决于它预测该步骤未来影响的能力
  • 本文希望优化以下奖励精度:
    $$\mathcal{A} = P(S_{\tau_{i}^{+} } > S_{\tau_{i}^{-} }|O_{\tau^{+} } = 1,O_{\tau^{-} } = -1),$$
    • 其中 \(S_{\tau_{i} } = \frac{\sum_{j = 1}^{m} S_{\tau_{i,j} }}{m}\) 是由 \(r_{\phi}\) 分配的平均过程奖励
    • 理解:这个指标 \(\mathcal{A} > 0\) 的本质是:最终成功的轨迹的 Step-wise 奖励 大于 最终失败的轨迹的 Step-wise 奖励(这里使用概率来表达)
  • 定理 1 证明了这个奖励精度可以转化为一个可以通过本文的奖励设计来近似的目标:
    $$\mu \triangleq p_{+} + p_{- }$$
    • 其中 \(p_{+} = P(S_{\tau_{i}^{+},j} = 1)\) 和 \(p_{- } = P(S_{\tau_{i}^{-},j} = -1)\)
    • 注:这个精度是用于衡量环境是否合适的(不同策略下,需要用不同的环境训练,即最适配策略优化的环境应该是在训练过程中动态变化的)
  • Theorem 1
    • 当 \(m \rightarrow \infty\) 时,当且仅当 \(\mu > 1\) ,有 \(\mathcal{A} \rightarrow 1\)
    • 当 \(\mu > 1\) 时,\(\mathcal{A} \geq 1 - e^{- m(\mu - 1)^{2} / 4}\)
    • 目标 \(\mu = p_{+} + p_{- }\) 表明,用于估计 \(p_{+}\) 和 \(p_{- }\) 的采样密度应该平衡,而不是严重偏向某一侧;
      • 否则,估计器可能被单一类别主导,导致评估偏差
    • 然而,当由策略轨迹诱导的奖励模型训练环境在任务难度上不平衡时,这种平衡就可能被打破
  • Theorem 2
    • 目标如下:
      $$\mathbb{E}_{\tau \sim \pi_{\theta}(\cdot |q)}\mathbb{E}_{S_{\tau_{i,j} }\sim r_{\phi}(\cdot |\tau_{i})}[R_{S_{\tau_{i,j} } }] = 4\mathbb{E}_{q\sim Q}[\langle p_{+},f_{+}\rangle + \langle p_{-},f_{-}\rangle ] + C,$$
      • \(f_{+} \geq 0\) 和 \(f_{- } \geq 0\) 是 \(\tau\) 的重要性权重函数
      • \(\langle \cdot , \cdot \rangle\) 表示在 \(\tau \sim \pi_{\theta}(\cdot | q)\) 上的 \(L^{2}\) 内积
        • 问题:如何理解这里的内积含义?【这里写的晦涩难懂,符号也不太清晰,后续可以回来重新看看】
      • \(C\) 是与 \(\phi\) 无关的常数,且 \(| \cdot |\) 是 \(L^{2}\) 范数
    • 上式左边 :
      • 是奖励模型的 RL 目标
    • 上式右边 :
      • 【来自原文的奇怪描述】当 \(\lambda = 1\) 时,有右边的式子:
      • 理解:这里的 \(\lambda\) 是公式 1 中提到的 Step-wise 奖励与 Outcome-wise 奖励的加权系数
      • 当 \(P(O_{\tau} = - 1 | q, \pi_{\theta}) \rightarrow 1\):重要性权重的范数比 \(\frac{| f_{+} |}{| f_{- } |} \rightarrow 0\)
      • 当 \(P(O_{\tau} = 1 | q, \pi_{\theta}) \rightarrow 1\):\(\frac{| f_{+} |}{| f_{- } |} \rightarrow \infty\)
  • 这证明:
    • 当一个任务 \(q\) 对于策略模型来说过于困难(即 \(P(O_{\tau} = - 1 | q, \pi_{\theta}) \rightarrow 1\))或过于容易(即 \(P(O_{\tau} = 1 | q, \pi_{\theta}) \rightarrow 1\))时
      • \(p_{+}\) 和 \(p_{- }\) 之间的重要性采样变得极度不平衡,违反了定理 1 中建立的奖励精度目标 \(p_{+} + p_{- }\)
    • 基于这一 Insight,在本文的奖励系统中, 调节任务 \(q\) 的难度不仅可以促进策略训练,还可以改善过程奖励模型的训练

Critic Feedback for Environment Tasks

  • 本文使用策略的 Rollout 准确率来估计任务难度
    • 当准确率落在预设的阈值(\(\alpha_{\mathrm{low} }\) 和 \(\alpha_{\mathrm{high} }\))之外时
      • 会 Prompt 一个语言模型来修改任务,使其更难或更容易,同时保留原始任务的本质(参见附录 C.7 中的提示词)
    • 具体的修改由从奖励模型 \(r_{\tau_{i,j} }\) 总结出的评估痕迹(evaluative traces)来指导,这些痕迹是在获得 \(S_{\tau_{i,j} }\) 时生成的
  • 本文只总结那些表现出潜在失败的步骤 \(\tau_{i}\),即对于某些 \(j\) 满足 \(S_{\tau_{i,j} } = - 1\) 的步骤,以捕获策略可能的错误模式(附录 C.6)
    • 因此,任务调整依赖于准确的 Critic 反馈,并反过来产生更有效的调整,使策略和奖励模型都受益
  • 作者还对修改后的任务实施质量控制
    • 如果目标是使原始任务 \(q\) 更难,仅在 满足下面准确率 时接受修改后的任务 \(q^{\prime}\)
      $$ \alpha_{\mathrm{low} }< \mathrm{acc}(q^{\prime})< \mathrm{acc}(q) $$
    • 如果目标是使其更容易,仅在 满足下面准确率 时接受 \(q^{\prime}\)
      $$ \mathrm{acc}(q)< \mathrm{acc}(q^{\prime})< \alpha_{\mathrm{high} } $$
    • 这有助于确保新任务的有效性和调整的有效性(算法 1)
  • 然后将原始任务替换为任务集 \(Q\) 中被接受的任务 \(q^{\prime}\)

Experiments

  • 本节重点关注两种现实世界的智能体设置:
    • Compute use 代理和基于文本的交互式游戏,其中大型语言模型既用作策略也用作奖励模型,并且作者执行自动环境适应
  • 此外,还验证了 RLAnything 框架在 RLVR 编码任务上的有效性
    • 注:该任务中没有可用的交互环境

Experiment Settings

Models and Optimizations
  • 对于 OSWorld (2024) 上的 GUI 代理
    • 使用 Qwen3-VL-8B-Thinking 作为策略和奖励模型
    • 将评估的最大交互步数设置为 50,将 RL Rollout 的最大步数设置为 30
    • 在每个 RL 步骤中,采样 12 个任务,每个任务有 8 个独立的 Rollout 轨迹
    • 对于奖励模型,对每个策略 Response 执行 3 次评估
    • 使用 Qwen3-4B (2025) 进行任务适应
  • 对于 AlfWorld (2018; 2020) 上的 LLM 代理
    • 使用 Qwen2.5-7B-Instruct 作为策略模型
    • 使用 Qwen2.5-14B-Instruct 作为奖励模型 (2024a)
    • 使用 Qwen3-4B (2025) 进行任务适应
    • 将评估的最大步数设置为 60,将 RL Rollout 的最大步数设置为 40
    • 在每个 RL 步骤中,采样 16 个任务,每个任务有 8 个独立的 Rollout
  • 对于 Coding LLM
    • 使用与 AlfWorld 设置中相同的模型组合
    • 在每个 RL 步骤中,采样 64 个任务,每个任务有 32 个独立的代码解决方案生成和 32 个独立的单元测试生成
Training and Evaluation Datasets
  • 在每个设置中,使用单独的训练和测试数据集
  • 对于 GUI 代理,划分 OSWorld-verified 数据集,使得训练集排除 “Multiple Apps” 和 “Chrome” 任务类别,将其视为最终评估中的 OOD 任务
    • 在 230 个域内任务和 139 个 OOD 任务上进行评估
  • 对于 AlfWorld,遵循官方设置:
    • 任务被划分为 3.5k 个训练任务、140 个域内评估任务和 134 个 OOD 评估任务
  • 对于 Coding LLM ,使用 LiveCodeBench-V2 (2024)、CodeContests (2022) 和 LiveBench (2024) 进行评估,并使用 CodeContests (2022) 进行训练
    • Specificlly 对于 CodeContests,提取难度级别 \(\le 2\) 的任务,并将其随机划分为包含 4.5k 个样本的训练集和包含 200 个样本的评估集
Reward Modeling
  • 对于奖励建模,使用 LLM 作为生成式奖励模型:
    • Prompt LLM 评估每个步骤的质量及其对最终结果的潜在影响,然后在推理后输出 1 或 -1(附录 C.5)
  • 对于 GUI 代理,提供先前操作的摘要、最近的两张图像以及要评估的这两张图像之间的操作作为上下文
  • 对于 AlfWorld,总结了先前的操作及其观察到的结果
  • 在 Coding-LLM 设置中,使用单元测试生成器作为奖励模型,其中每个新生成的测试评估代码的一个方面
  • 在本文所有的实验中,奖励模型为每个策略步骤生成 3 个独立的评估(即 \(m = 3\))
Environment Task Adaptation
  • 在环境适应之前
    • 首先总结奖励模型的输出,这些输出针对被标记为潜在错误的步骤,定义为至少有一个最终得分为 -1 的步骤(附录 C.6)
    • 然后将此 Critic 反馈输入到语言模型中,以根据目标扰动重写任务,使其更容易或更难(附录 C.7)
  • 在 Coding-LLM 设置中,Critic 反馈仅仅是代码在生成的单元测试上的评估结果
  • 在 AlfWorld 设置中,环境模型使用 Critic 反馈和对当前环境的结构化摘要(包括对象位置和属性)重写任务
  • 在编码设置中,环境模型生成一个新任务以及相应的单元测试
  • 在 GUI 设置中,除了使用 Critic 反馈添加或移除提示来调整难度外,适应不同的目标需要创建新的验证文件
  • 本文为 230 个训练任务中的 47 个预先创建了额外的扰动版本(附录 C.8)
    • 每个扰动版本都包含其对应的评估器和验证器文件
  • 这些任务被包含在本文实验中所有训练设置中,以确保公平比较

Results and Insights

RLAnything Facilitates Policy Training,RLAnything 能促进策略训练
  • 图 4 中报告了三个训练曲线,其中每个方法都添加了一个额外的动态组件
    • 图 4 展示了每个动态组件都能持续改进策略优化
  • 对于曲线上的中间评估,将 OSWorld 的最大交互步数设置为 30,将 AlfWorld 的最大交互步数设置为 60
  • 可以发现,使奖励模型和环境都保持动态能产生更强的优化和更高的收敛点
    • 具体来说,联合优化奖励模型改善了监督信号,这反过来又有利于策略训练
  • 此外,环境适应不仅有利于策略,也有利于奖励模型(第 3.2.2 节),从而为策略训练带来三倍的增益
    • 表 1 中报告了域内和 OOD 任务的最终评估结果
    • 在 OOD 任务上的显著改进突显了作者优化框架更强的泛化能力
RLAnything Produces a Stronger Reward Model,产生更强的奖励模型
  • 从表 1 中可得出两个结论
    • 第一,本文的奖励设计(公式 2)有效地改进了奖励模型
    • 第二,适应环境任务进一步促进了奖励模型的训练,支持了本文的理论结果
  • 为了评估奖励模型的改进,本文考虑两个方面:
    • (i) 其评估步骤质量的能力(过程准确性)
    • (ii) 其预测步骤对最终结果影响的能力(结果准确性)
  • 标签来源:
    • 结果准确性的真实标签来自可验证的结果
    • 步骤质量标签是通过对提示评估步骤质量的更强推理模型进行多数投票获得的
    • 详情见附录 C.2
  • 从表 1 中,可以发现这两个准确性指标在所有设置优化后都有所提高,并且环境适应进一步提升了它们
  • 此外,本文还使用不同的监督模型进行了消融研究,结果见附录 B.1,显示了类似的结果
Adaptation of Environments Enables Active Learning from Experience,环境 Adaptation 允许从经验中 主动学习
  • 作者的环境适应是自动化的,并明确由奖励模型的 Critic 反馈指导,该反馈诊断策略在给定任务上可能出现的错误
  • 本节提供示例,展示这种有针对性的适应如何促进更主动的策略学习
  • 在图 3 的示例中
    • GUI 代理在独立的 Rollout 中未能获得任何成功的轨迹
      • 奖励模型指出了策略在此任务上犯的两个具体错误,其输出作为重写任务的诊断反馈
      • 修改后的提示添加了有针对性的提示,使策略能够实现成功的 Rollout 并更有效地学习,而不是依赖随机探索
      • 注:任务也可以向相反方向调整,以鼓励更具挑战性的探索
    • 在交互式文本游戏示例中,策略在所有轨迹中都成功了,但花费了大部分步骤来搜索对象
      • 模型通过用出现频率较低的目标对象替换当前对象来增加难度
      • 参见附录 B.2 中的其他示例
State-of-the-Art Performance of the Optimized Multimodal GUI Agent,优化后的多模态 GUI Agent 到达 SOTA 性能
  • 本文进一步扩展了 GUI 代理的 RLAnything 优化(图 8,左),并将其与开源基线进行比较,包括 UI-TARS1.5-7B (2025)、OpenCUA-7B (2025b) 和 Qwen3-VL-8B-Thinking (2025)
    • 注:图 8 左给出的是训练 ACC 曲线,可以看到训练过程中 ACC 指标是一直在涨的
  • 如图 5 所示,优化后的模型在所有 OSWorld 任务类别中都取得了显著性能,突显了作者优化框架的有效性
    • 优化后的模型在 OSWorld 上的准确率提高了 9.1%
    • 在分布外任务上,模型也提高了 5.2%
Advantages of Integrating Step-wise and Outcome Rewards for Policy Training,整合 Step-wise 和 Outcome 奖励
  • 在复杂的现实世界环境中,策略必须与环境交互,在长轨迹上进行充分探索(见图 6(b)), Outcome Reward 过于稀疏,无法提供有效的训练信号
  • 将常用的 Outcome-only Reward 与本文的整合奖励设计(公式 1)在 LLM 代理和 GUI 代理设置的 RL 训练曲线(图 6(a))上进行了比较
    • 问题:这里最优的方案是 Optimized Step-wise Reward Only,但是没有非常明确给出这个奖励的定义,是 Step-wise 标准化以后得到的奖励吗?
  • 结果突显了整合奖励的必要性,它将细微的逐步信号与可验证的最终结果的忠实监督相结合
Optimized Reward Model Supervision Outperforms Human-Labeled Outcome Supervision,Optimized RM 超过人工打标的 Outcome 监督
  • 在 Compute use 任务等复杂的现实世界环境中,定义可验证的结果通常需要人工努力
  • 特别是,GUI 评估器通常实现为人工编写的评估脚本,这限制了用于探索和训练的环境扩展
  • 本文提议仅使用 Optimized RM 提供的逐步信号,该模型可以评估当前操作及其未来影响
    • 具体来说,仅使用本文的 Optimized RM 进行逐步监督来训练策略,而不使用来自评估器脚本的任何 Outcome Reward
    • 令人惊讶的是,这种设置甚至优于使用可验证 Outcome Reward 的训练(见图 6(a)),展示了本文的框架在改进奖励模型方面的有效性,以及其在计算机等现实世界环境中实现大规模、自我进化代理的潜力
Also Works for Single-Turn Coding Tasks,单轮 Coding 任务也 Work
  • 除了交互式设置外,RLAnything 也适用于 RLVR 风格的编码任务:
    • 策略奖励是代码在单元测试上的通过率
  • 按如下方式为每个生成的单元测试分配奖励
    • 如果一个生成的代码通过了数据集提供的所有真实单元测试,作者将其标记为真实代码
    • 如果一个生成的单元测试在所有真实代码上都能通过,将其标记为真实单元测试
      • 一个真实单元测试获得的奖励等于它导致失败的非真实代码的数量
      • 否则,它获得的奖励等于它错误地让其通过的非真实代码的数量的负数
  • 本文附录 A.2 中展示了这与本文通用框架的等价性
  • 为了评估奖励模型,本文作者测量了生成的单元测试的正确性及其在检测代码正确性方面的准确性(附录 C.2)
  • 总体而言,表 1 显示,通过联合单元测试训练和环境适应,编码性能和单元测试生成质量都得到了提高
Trade-off Between Outcome and Self-consistency Supervision in Optimization
  • 在整合奖励设计 \(R_{\tau_i}\) 中,来自最终结果 \(O_{\tau}\) 的监督与聚合的逐步信号 \(\lambda \sum_{j = 1}^{m}S_{\tau_{i,j} } / m\) 由超参数 \(\lambda\) 平衡
  • 除了对策略的影响外,\(\lambda\) 也影响奖励模型的监督:
    • 较大的 \(\lambda\) 更强调 Step-wise 质量,而较少强调预测结果影响
  • 本文在 AlfWorld 设置中对 \(\lambda\) 进行了消融研究,进行了 100 个 RL 训练步骤,评估了策略和奖励模型
    • 为了研究对奖励模型的影响,本文在 \(R_{\tau_i}\) 中固定 \(\lambda = 1\),并在 \(R_{\tau_i}\) 中改变 \(\lambda\)
    • 为了研究对策略的影响,本文在 \(R_{\tau_i}\) 中固定 \(\lambda = 1\),并在 \(R_{\tau_i}\) 中改变 \(\lambda\)
  • 如表 2 所示,\(\lambda\) 确实在基于结果和基于自洽性的监督之间进行了权衡,策略优化在 \(\lambda = 1\) 时表现最佳,这是本文默认使用的
  • 报告的数字是训练曲线上最后三次评估的平均值,每次评估都是三次独立运行的平均值
  • 本文附录 A.2 中讨论了 \(\lambda\) 如何影响理论结果
Dynamics of Accepted New Tasks
  • 本节分析了优化过程中接受的任务(见图 7(a))
    • 1)接受的任务数量随训练步数近似线性增长,表明了环境扩展的潜力
    • 2)本文使用 策略在这些接受任务上的准确率 来表征任务难度
      • 由于初始样本有限,准确率早期有所波动,但很快稳定在中等水平
        • 也就是说训练过程中,任务难度始终保持在中间水位
      • 收敛值低于 0.5,因为原始任务对策略来说大多具有挑战性
    • 3)本文使用更强的推理模型(GUI 设置使用 Qwen3-VL-32B-Thinking,AlfWorld 和编码设置使用 Qwen3-32B)评估接受任务的质量,每个任务运行 16 次独立试验,并报告至少一次成功运行的比率
    • 得到的至少一次通过率分别为 96.0%、96.7% 和 94.2%
  • 这些结果证明了作者接受机制在过滤错误合成任务方面的有效性
Application on Agentic Coding
  • 本文在多种代理编码方法下评估了优化后的编码模型,包括 MPSC (2024)、AlphaCodium (2024)、\(S^{\star}\) (2025a) 和 Best of N 方法(附录 C.3)
  • 从图 8(右)中,可以发现优化后的模型显著提高了各种方法下的代理编码性能
Response Length on AlfWorld
  • 作者还研究了 AlfWorld 设置中的响应长度和推理模式(图 7(b))
    • 优化前,策略模型 (Qwen2.5-7B-Instruct) 在采取行动前通常无法产生足够的推理
    • 优化后,其思维链长度迅速增加,到训练结束时,响应变得更加稳定和高效,同时仍保持足够的推理能力

Related Works

Reinforcement Learning of Large Language Models

  • RL 已被用于增强语言模型的推理能力,并已应用于包括编码任务 和 RAG 任务 等场景
  • 随着 Agentic AI 的广泛采用,RL 也已扩展到多轮设置,策略模型在长轨迹上与环境交互
  • 但奖励稀疏性 (2023; 2024) 和现有环境的有限规模 仍然是关键挑战

Reward Modeling and Environments

  • RM(尤其是 GRM),在使 RL 变得实用方面发挥着重要作用
  • RLVR Setting 中,单一的 Outcome Reward 可以联合优化奖励模型和策略,但由于缺乏逐步监督,这并不能直接扩展到多轮设置
  • 环境质量对于有效的 RL 也至关重要 (2024; 2022; 2023)
  • 先前的工作表明,调整任务难度可以改善策略训练 (2025; 2025),这激发了生成或修改任务以增强学习信号的方法 (2025b; 2025a; 2025; 2024)
    • 例如,Zeng 等人 (2025) 构建了一个 RLVR 引擎,其中每个任务都有多个难度级别
    • Xue 等人 (2026) 通过可验证的自动化任务合成扩展了这一方向
    • 但这些系统缺乏长时程交互任务所需的逐步信号
  • 相比之下,本文作者证明了环境、策略和奖励模型的耦合优化能为整个系统产生更强的信号

附录 A:Proof of Theorems

  • 详情暂见原文(待补充)
    • 包含对 Theorem 1 和 Theorem 2 的证明

附录 B:Additional Experimental Results

B.1. Ablation Studies on Using Different Models for Reward Model Evaluation,不同模型进行奖励模型评估的消融研究

  • 本节展示了使用不同的监督模型来评估分配步骤奖励的准确性会得出相同的结论
    • 在附录 C.2 中提供了这种评估方法的细节
  • 在 GUI 设置中使用 OpenCUA-72B,在 LLM 智能体设置中使用 gpt-oss-20b (OpenAI, 2025) 进行了消融研究
  • 此外,本文作者还改变了用于生成奖励模型评估的轨迹的模型:
    • 在 GUI 设置中使用 OpenCUA-7B,在 LLM 智能体设置中使用 LLaMA-3.1-8B-Instruct (2024)
  • 结果(表 3 和表 4)与表 1 中的主要结果一致,验证了本文使用 LLM-as-a-judge 进行评估的方法

B.2. Examples of Environment Adaptation,Environment Adaptation 的示例和分析

  • 下面的 GUI 智能体示例说明了环境模型如何使用总结的错误模式向任务 Prompt 中添加 Tips,从而使策略更容易完成任务

    • 策略在此任务上的准确率从 0 提高到 0.125
  • 原始任务对于策略来说太难了,没有产生任何成功的轨迹,因此无法从成功案例中获得训练信号

  • 添加 Tips 简化任务后,策略偶尔会成功,提供学习信号,使其能够逐渐解决任务

  • GUI Task Adaptation Example 1 (Target: Easier)

    1
    2
    3
    4
    **template**: Using the Pivot Table feature, summarize the total revenue for each promotion type in a new sheet (’Sheet2’), with the promotion names as the column headers.
    **old task prompt**: Summarize the total revenue for each promotion type in a new sheet (Sheet2) with the promotion names as the column headers using the Pivot Table feature.
    **new task prompt**: Using the Pivot Table feature, summarize the total revenue for each promotion type in a new sheet (’Sheet2’), with the promotion names as column headers. Ensure ’Promotion’ is in Column Fields and use ’Insert’, ’PivotTable’ for correct setup. Verify field names to avoid confusion between ’Date’ and ’Promotion’.
    **policy accuracy change**: 0 → 0.125 (easier for the policy)
    • 中文版:
      1
      2
      3
      4
      * **模板** : 使用数据透视表功能,在一个新工作表('Sheet2')中汇总每种促销类型的总收入,促销名称作为列标题
      * **旧任务提示** : 使用数据透视表功能,在一个新工作表(Sheet2)中汇总每种促销类型的总收入,促销名称作为列标题
      * **新任务提示** : 使用数据透视表功能,在一个新工作表('Sheet2')中汇总每种促销类型的总收入,促销名称作为列标题。确保将“促销”放在列字段中,并使用“插入”、“数据透视表”进行正确设置。验证字段名称以避免“日期”和“促销”混淆
      * **策略准确率变化** : \\(0 \rightarrow 0.125\\) (对策略来说更容易)
  • 下面的示例展示了 GUI 任务对策略模型来说太容易的情况,因此扰动通过切换到更具挑战性的任务模板使任务更难

  • GUI Task Adaptation Example 2 (Target: Harder)

    1
    2
    3
    4
    5
    6
    **template candidates**:
    • template1: Copy the “Revenue” column along with the header to a new sheet named “Sheet2”.
    • template2: Copy the “Revenue” column along with the header to a new sheet named “Sheet2”. Then rename this “Revenue” column in “Sheet2” to “Profit”.
    **old task prompt**: Copy the “Revenue” column along with the header to a new sheet named “Sheet2”.
    **new task prompt**: Copy the “Revenue” column along with the header to a new sheet named “Sheet2”. Then rename this “Revenue” column in “Sheet2” to “Profit”.
    **policy accuracy change**: 1.0 → 0.625 (harder for the policy)
    • 中文版:
      1
      2
      3
      4
      5
      6
      * **模板候选** :
      - 模板 1: 将“收入”列及其标题复制到名为“Sheet2”的新工作表中
      - 模板 2: 将“收入”列及其标题复制到名为“Sheet2”的新工作表中,然后将“Sheet2”中的此“收入”列重命名为“利润”
      * **旧任务提示** : 将“收入”列及其标题复制到名为“Sheet2”的新工作表中
      * **新任务提示** : 将“收入”列及其标题复制到名为“Sheet2”的新工作表中,然后将“Sheet2”中的此“收入”列重命名为“利润”
      * **策略准确率变化** : \\(1.0 \rightarrow 0.625\\) (对策略来说更难)
  • 以下两个示例通过改变涉及的对象数量来调整任务难度

  • ALFWorld Task Adaptation Example 1 (Target: Easier)

    • 英文版见原论文
    • 中文版:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      * **任务** : 修改目标词元 (对象类型,容器类型) 以使任务更容易,同时保留原始目标框架
      * **响应** : 我需要找到一对满足约束且更有可能在当前状态下成功完成的对象和容器类型。查看“可清洁”列表,许多对象都是可清洁的。“可容纳”列表显示,许多容器可以容纳许多对象
      原始目标是清洁马铃薯类型并将其放入微波炉类型。虽然有效,但成功可能性较低,因为:
      1. 马铃薯类型只有 2 个实例 (potato1, potato2)
      2. 微波炉类型只能容纳某些对象 (AppleType, BowlType, BreadType, CupType, EggType, MugType, PlateType, PotatoType, TomatoType)
      3. 智能体在 loc32,这可能不在微波炉附近
      一个更好的选择是具有更多实例的对象和可以容纳它的容器。查看“可清洁”列表,“CupType”有 3 个实例 (cup1, cup2, cup3),并且可以放置在包括微波炉类型在内的许多容器中
      目标“清洁 CupType 然后放入 MicrowaveType”将:
      - 由于实例更多,更有可能成功
      - 有效,因为 CupType 是可清洁的,并且 MicrowaveType 可以容纳它
      - 遵循清洁对象并将其放入容器中的框架
      **最终答案**
      CupType, MicrowaveType
      * **策略准确率变化** : 0.125 \\(\rightarrow\\) 0.5
  • ALFWorld Task Adaptation Example 2 (Target: Harder)

    • 英文版见原轮文
    • 中文版:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      * **任务** : 修改目标词元 (对象类型,容器类型) 以使任务更难,同时保留原始目标框架
      * **响应** : 让我分析创建更难目标的要求
      原始目标是将 RemoteControlType 放入 ArmChairType。这是可行的,因为 (ArmChairType, RemoteControlType) 在 canContain 列表中
      为了使其更难,我需要:
      1. 选择实例更少的对象类型
      2. 选择可以容纳它但实例更少的容器类型
      3. 确保该对是有效的 (满足 canContain)
      查看对象类型:
      - WatchType 有 3 个实例 (watch1, watch2, watch3)
      - KeyChainType 有 3 个实例 (keychain1, keychain2, keychain3)
      - CreditCardType 有 1 个实例 (creditcard1)
      查看容器类型:
      - ArmChairType 有 2 个实例 (armchair1, armchair2)
      - CoffeeTableType 有 2 个实例 (coffeetable1, coffeetable2)
      - DiningTableType 有 1 个实例 (diningtable1)
      - SofaType 有 1 个实例 (sofa1)
      对 (KeyChainType, ArmChairType) 是有效的 (在 canContain 中),并且:
      - KeyChainType 有 3 个实例
      - ArmChairType 有 2 个实例
      这是一个有效的对,但它并不比原始目标更难
      让作者试试 (CreditCardType, ArmChairType):
      - CreditCardType 有 1 个实例
      - ArmChairType 有 2 个实例
      - (ArmChairType, CreditCardType) 在 canContain 中
      这对是有效的,并且实例更少,使其更难
      所以更难的目标将是:
      **最终答案**
      CreditCardType, ArmChairType
      * **策略准确率变化** : 1.0 \\(\rightarrow\\) 0.25

附录 C:Experimental Details

C.1. Models and Settings

  • 对于应用于 OSWorld (2024) 的 GUI 智能体
    • 本文在实验中使用了 Qwen3-VL-8B-Thinking (2025)、UI-TARS1.5-7B (2025) 和 OpenCUA-7B (2025b)
    • 在最终评估中,本文将最大步数设置为 50,温度设置为 0,并报告 3 次独立运行的平均准确率
    • 在 RL 优化期间,将最大步数设置为 30,并对策略模型使用温度 1.0,对过程奖励模型使用温度 0.8
    • 对于策略模型,在每个 RL 步骤中,作者采样 12 个任务,每个任务有 8 条独立的 Rollout 轨迹
    • 上下文管理遵循标准的 OSWorld 流程 (2024),包括最近的三张图像 ,并将所有先前的操作总结为上下文
    • 当使用 OpenCUA 时,将其 CoT 级别设置为 2,遵循其默认设置
      • 对于奖励模型,使用 Qwen3-VL-8B-Thinking 作为基座模型,并对每个策略 Response 进行 3 次评估
      • 奖励上下文通过总结所有先前的操作、包含最近的两张图像以及这两张图像之间作者要求奖励模型评估的操作来构建
      • 本文使用 Qwen3-4B (2025) 来调整任务
    • 在优化期间,本文将执行后等待时间(截图前)设置为 0 以保持训练效率,而在评估期间则设置为 5 秒
      • 本文使用 12 个节点进行训练
  • 对于应用于 AlfWorld (2018; 2020) 的 LLM 智能体
    • 使用 Qwen2.5-7B-Instruct 作为策略模型,Qwen2.5-14B-Instruct 作为奖励模型 (2024a),并使用 Qwen3-4B (2025) 来调整任务
    • 在最终评估中,本文将最大步数设置为 60,温度设置为 0.8,并报告 3 次独立运行的平均准确率
    • 在 RL 优化期间,本文将最大步数设置为 40,并对策略模型和过程奖励模型使用温度 0.8
    • 在每个 RL 步骤中,采样 16 个任务,每个任务有 8 条独立的 Rollout
    • 通过总结所有先前的操作及其相应的观察,并包含最近要选择的动作来构建策略模型上下文
    • 使用 8 个节点进行训练
  • 对于 Coding LLM ,使用与上述 LLM 智能体设置中相同的模型组合
    • 在每个 RL 步骤中,采样 64 个任务,每个任务有 32 次独立的代码解决方案生成和 32 次独立的单元测试生成
    • 使用 4 个节点进行训练
  • 在所有 RL 训练过程中
    • 在策略目标中使用以下标准超参数:裁剪阈值 \(\epsilon = 0.2\) (2017),KL 散度权重 \(\beta = 0.01\) ,学习率为 \(1 \times 10^{-6}\)
    • 使用 k3 KL 估计器,并使用 AdamW (2017) 进行优化
    • 为 GUI 智能体训练 240 步,为 LLM 智能体训练 200 步,为 Coding LLM 训练 300 步,以获得表 1 中报告的最终模型

C.2. Evaluation for Reward Models

  • 对于 OSWorld 和 AlfWorld 设置,本文评估了 Step-level 质量(过程准确率)和预测某一步骤对最终结果影响的能力(结果准确率)
    • 对于结果准确率,其 Ground Truth 标签就是可验证的结果
    • 对于过程准确率,标签由一个 比所使用的奖励模型更强的推理模型提供(这不够准确吧?)
  • 在 OSWorld 设置中
    • 使用 Qwen3-VL-32B-Thinking 对每个策略 Response 提供八次独立的评估,使用的 Prompt 见 C.5 节,并将多数投票结果(1 或 \(-1\))作为 Ground Truth 标签
    • 策略 Response 由 Qwen3-VL-8B-Thinking 在 OSWorld 的多个应用任务上生成:
      • 对于每个任务,策略采样 16 条独立的 Rollout,每个任务产生 16 条轨迹
  • 在 AlfWorld 设置中
    • 使用 Qwen3-32B 进行评估,并使用 Qwen2.5-7B-Instruct 在 AlfWorld OOD 评估集(第 3.1.2 节)上生成轨迹,使用与 OSWorld 设置相同的协议和超参数
  • 在编码 Setting 中
    • 使用 Qwen2.5-7B-Instruct 作为策略模型,为评估数据集(LiveCodeBench、CodeContests 或 LiveBench)中的每个任务生成 16 个独立的代码解决方案,并使用 Qwen2.5-14B-Instruct 作为奖励模型,为每个任务生成 32 个独立的单元测试
    • 如果一个生成的解决方案通过了所有数据集提供的单元测试,则被标记为 Ground Truth 正确
    • 如果一个生成的单元测试通过了所有 Ground Truth 正确的解决方案,则该单元测试是正确的
      • 如果它是正确的,并且能拒绝所有非 Ground Truth 的解决方案(即导致它们失败),那么它是完美的
      • 本文使用正确率和完美率来评估奖励模型,其中完美率对应表 1 中报告的检测准确率

C.3. Agentic Coding Applications

  • 在多种智能体编码方法下评估优化后的编码模型,包括 MPSC (2024)、AlphaCodium (2024) 和 \(S^{\star}\) (2025a)
  • 在 MPSC 中
    • 为每个任务生成 8 个代码、单元测试和规范样本
    • 一个规范是一对函数(前置条件和后置条件),它定义了程序的有效输入空间和预期的输入输出行为,作为其预期功能的形式化描述
    • 然后遵循迭代优化过程计算一致性分数,用于识别最佳的代码解决方案
  • 在 AlphaCodium 中
    • 为每个任务使用对公开测试的推理生成 8 个代码解决方案,以及 8 个对应的单元测试
    • 每个解决方案根据在公开测试上的执行结果进行两次优化迭代,然后根据在生成的单元测试上的执行结果再进行两次迭代
    • 具体来说,每个优化步骤都以单元测试、当前代码和执行日志为条件,并决定是否以及如何更新解决方案
  • 在 \(S^{\star}\) 中
    • 生成 8 个代码解决方案,并应用四轮使用公开测试的自调试,以获得 8 个优化版本
    • 由于调试依赖于 Ground Truth 单元测试的执行结果,本文直接在测试失败时提示模型修改代码
    • 最终的解决方案使用它们的成对比较方法选择,以生成的单元测试作为评估信号
  • 本文作者还考虑了最简单的测试时扩展方法,即最佳 N 选一
    • 具体来说,独立生成 8 个代码和 8 个单元测试,并选择通过最多生成单元测试的代码作为最终解决方案

C.4. Policy Prompt Templates

  • 在 RL 采样和最终评估中都使用这些模板进行上下文管理

  • 对于 OpenCUA 和 UI-TARS,遵循标准的 OSWorld 流程,该流程总结先前的操作,同时保留最近的三张图像作为上下文

  • GUI Agent Prompt Templates (Qwen3-VL-8B-Thinking)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    **Tool-Calling; System Prompt**
    ’’’<|im_start|>system
    # Tools
    You may call one or more functions to assist with the user query.
    You are provided with function signatures within <tools></tools> XML tags:
    <tools>
    {{tools_def}}
    </tools>
    For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
    <tool_call>
    {"name": <function-name>, "arguments": <args-json-object>}
    </tool_call>
    # Response format
    Response format for every step:
    1) Action: a short imperative describing what to do in the UI.
    2) A single <tool_call>...</tool_call> block containing only the JSON:
    {"name": <function-name>, "arguments": <args-json-object>}.
    Rules:
    - Output exactly in the order: Action, <tool_call>.
    - Be brief: one sentence for Action.
    - Do not output anything else outside those parts.
    - If finishing, use action=terminate in the tool call.
    <|im_end|>
    ’’’
    Message Construction
    # We construct a multimodal message list as follows:
    # 1) A system message containing the tool-calling specification and the tool schema.
    # 2) For historical context, we keep:
    # - All past actions as a text-only history (Step 1: ..., Step 2: ..., ...).
    # - At most the most recent 3 screenshots (image-only history).
    # 3) For each retained past step i:
    # - Append a user message with the screenshot i.
    # - Append an assistant message with the model’s response at step i (Action + < tool_call>).
    # 4) For the current step:
    # - Append a user message containing the current screenshot + the instruction prompt
    # (which includes the instruction and the full action history).
    # Variables used in the paper template:
    # - tools_def: JSON string of tool definitions (i.e., json.dumps(tools_def))
    # - step_index: current step id (0-based)
    # - screenshots[i]: base64-encoded PNG screenshot at step i (string without the data: prefix)
    # - responses[i]: assistant response text at step i (Action + <tool_call>)
    # - actions: list of action strings taken so far (for the text-only action history)
    # - instruction: the current task instruction (string)

    messages = [{"role": "system", "content": [{"type": "text", "text": "system_prompt"}]}]

    # Keep at most the last 3 screenshots
    start_i = max(0, step_index - 3 + 1)
    for i in range(start_i, step_index):
    # 历史截图 i
    img_url_i = f"data:image/png;base64,{screenshots[i]}"
    messages.append({"role": "user", "content": [{"type": "image_url", "image_url": {"url": img_url_i} }]})
    # 历史助手响应 i (Action + <tool_call>)
    messages.append({"role": "assistant", "content": [{"type": "text", "text": responses[i]}]})

    # Text-only full action history
    previous_actions_str = "None" if len(actions) == 0 else "\n".join([f"Step {k+1}: {a}" for k, a in enumerate(actions)])
    instruction_prompt = f"""
    请根据UI截图、指令和之前的操作,生成下一步
    指令:{instruction}
    之前的操作:{previous_actions_str}
    """
    # Current screenshot + instruction prompt
    curr_img_url = f"data:image/png;base64,{screenshots[step_index]}"
    messages.append(
    {"role": "user", "content": [
    {"type": "image_url", "image_url": {"url": curr_img_url} },
    {"type": "text", "text": instruction_prompt},
    ]}
    )
  • LLM Agent Prompt Templates (ALFWorld)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    **Guide Prompt)**
    guide = {
    "You are playing a text game. Your objective is to complete the task as soon as possible.\n"
    "Below is your trajectory so far and current candidate actions.\n"
    "You need to think step by step then put the integer (the index of your chosen action) in \\boxed{}. \n"
    }

    **Trajectory Rendering; summarized history**

    # The trajectory is summarized into alternating observation/action lines

    def_render_traj(traj):
    lines = []
    for t in traj:
    if "obs" in t and t["obs"] is not None:
    lines.append(f"observation: {t['obs']}")
    if t.get("act") is not None:
    lines.append(f"you took action: {t['act']}")
    return "\n".join(lines)

    trajectory_history =_render_traj(traj)

    **Full Prompt Template**

    '''<|im_start|>system
    You are a helpful assistant.<|im_end|>
    <|im_start|>user
    { {guide} }<|im_start|>system
    You need to think step by step then choose one action by number:<|action_options|><|im_end|>
    <|im_start|>assistant
    '''
    { {trajectory_history} }

    You need to think step by step then choose one action by number: { {action_options} }<|im_end|>
    <|im_start|>assistant
    '''

    ** Coding LLM Prompt 模板**

    ```python
    '''<|im_start|>system
    You are a helpful assistant that helps the user solve programming problems.<|im_end|>
    <|im_start|>user
    You need to think first then write a Python script.
    You should use input() to read input and print() to produce output in your script.
    This is the problem:
    <|prom|><|prom|><|prom|><|prom|><|prom|><|prom|>
    You should put your code in "python ".
    <|im_end|>
    <|im_start|>assistant
    '''

C.5. Process Reward Model Prompt Templates,PRM Prompt 模板

  • 对于 GUI 智能体 Setting

    • 本文使用 Qwen3-VL-8B-Thinking 作为过程奖励模型来评估每个策略 Response
    • 奖励模型上下文由以下部分组成
      • 所有先前操作的摘要
      • 最近的两张图像
      • 评估的这两张图像之间的操作
  • 对于 AlfWorld 设置

    • 本文提供策略 Prompt 和 Response,并要求 LLM 评判该 Response
  • 在这两种 Setting 中,Prompt 旨在评估 Step-level 质量以及该步骤对最终结果的潜在影响

  • 最终输出的奖励只能是 1 或 -1

    • 对于 Coding LLM 设置,提示 LLM 生成单元测试
    • 这些单元测试的质量可作为对生成代码某些方面的评估信号,并可用作过程奖励的一种特殊形式
  • GUI Agent Rewarding Prompt Templates

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    # We build reward_messages as a multimodal user content list.
    # The reward prompt includes:
    # - A text-only prefix containing "Previous Actions" (older action history).
    # - A short window of recent steps: for each step i in the window,
    # (a) the environment screenshot at step i,
    # (b) the agent action taken at step i.
    # - The current observation screenshot (the state after the most recent action).
    # - A strict evaluation instruction describing the agent objective and the most recent response.
    # Variables used in the paper template:
    # - step_index: current step id (0-based, the "most recent step" is step_index)
    # - actions[i]: action text taken at step i
    # - instruction: task instruction / objective string
    # - response: the agent’s most recent response (reasoning + action/tool call)
    # - reward_messages: chat message list for the reward model
    # - reward_user_content: multimodal user content list (text/image blocks)

    reward_user_content = []

    # 最多为奖励上下文保留最近 2 步(不包括当前 Observation)
    rstart_i = max(0, step_index - 2 + 1)

    # (1) 之前的操作:rstart_i 之前的所有操作
    prev_lines = []
    for i in range(rstart_i):
    prev_lines.append(f"Step {i+1}: {actions[i]}")
    previous_reward_actions_str = "\n".join(prev_lines) if prev_lines else "None"
    reward_user_content.append({"type": "text", "text": f"Previous Actions:\n{previous_reward_actions_str}"})

    # (2) 最近的步骤窗口:对于 [rstart_i, step_index) 范围内的每个步骤 i
    for i in range(rstart_i, step_index):
    reward_user_content.append({"type": "text", "text": "Image of environment:\n"})
    reward_user_content.append({"type": "image", "image": "image"})
    reward_user_content.append({"type": "text", "text": f"\nAction of agent:\nStep {i+1}:\n{actions[i]}\n"})

    # (3) 当前观察图像(执行最近操作后)
    reward_user_content.append({"type": "text", "text": "Agent's current observation:\n"})
    reward_user_content.append({"type": "image", "image": "image"})

    # (4) 评估指令(目标 + 最近响应)
    REWARD_INSTRUCTION_TEMPLATE = r"""
    You are a strict evaluator to evaluate the most recent step of the agent in the following.

    Objective of Agent: {instruction}

    Agent's most recent step (reasoning + action): {response}
    """
    reward_user_content.append({
    "type": "text",
    "text": "\n" + REWARD_INSTRUCTION_TEMPLATE.format(instruction=instruction, response=response)
    })
    reward_messages.append({"role": "user", "content": reward_user_content})
  • 在评估奖励模型预测的 Step-level 质量时,使用以下奖励指令模板并要求 Qwen3-VL-32B-Thinking 提供标签:

  • REWARD_INSTRUCTION_TEMPLATE for evaluating reward model’s step-wise accuracy (OSWorld)

    1
    2
    3
    4
    5
    6
    7
    REWARD_INSTRUCTION_TEMPLATE = r"""
    You are a strict evaluator to evaluate the most recent step of the agent in the following. Focus on the quality of this step.

    Objective of Agent: {instruction}

    Agent's most recent step (reasoning + action): {response}
    """
    • 问题:这里不应该是一个 Meta Evaluator 吗?
  • LLM Agent Rewarding Prompt Templates (ALFWorld)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    '''<|im_start|>system
    You are a helpful assistant.
    <|im_end|>
    <|im_start|>user
    You are a judge for an agent acting in a text-based environment.
    Evaluate ONE step using:
    - the agent's prompt (observation + candidate actions),
    - its response (reasoning + chosen index), and
    - the environment's next observation after executing that action.

    Scoring (binary):
    Score 1 if ALL are true:
    (a) The selected action is appropriate for the current observation and task goal (it reasonably explores, progresses or completes the task);
    (b) The reasoning is present, relevant, and not self-contradictory (no hallucinated objects/locations);
    (c) The chosen index exists in the candidate list, and the resulting next observation is consistent with the described action.
    Otherwise score -1. Cases include: no reasoning provided; index out of range; clearly irrelevant; undoes progress; self-contradictory/hallucinated reasoning; or next observation contradicts the action.

    Important: think first then put the final score in \\boxed{}.

    Agent's prompt:
    { {policy_prompt} }

    Agent's response:
    { {policy_response} }

    Next observation after this action:
    { {next_obs} }
    <|im_end|>
    <|im_start|>assistant
    '''
  • 在评估奖励模型预测的 Step-level 质量(AlfWorld Setting)时,使用以下奖励指令模板并要求 Qwen3-32B 提供标签:

  • Prompt Template for evaluating reward model’s step-wise accuracy (Alf World)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    '''<|im_start|>system
    You are a helpful assistant.
    <|im_end|>
    <|im_start|>user
    You are a judge for an agent acting in a text-based environment.
    Evaluate ONE step using:
    - the agent's prompt (observation + candidate actions),
    - its response (reasoning + chosen index), and
    - the environment's next observation after executing that action.

    Scoring (binary):
    Score 1 if ALL are true:
    (a) The selected action is appropriate for the current observation;
    (b) The reasoning is present, relevant, and not self-contradictory (no hallucinated objects/locations);
    (c) The chosen index exists in the candidate list, and the resulting next observation is consistent with the described action.
    Otherwise score -1. Cases include: no reasoning provided; index out of range; clearly irrelevant; undoes progress; self-contradictory/hallucinated reasoning; or next observation contradicts the action.

    Important: think first then put the final score in \\boxed{}.

    Agent's prompt:
    { {policy_prompt} }

    Agent's response:
    { {policy_response} }

    Next observation after this action:
    { {next_obs} }
    <|im_end|>
    <|im_start|>assistant
    '''
  • Coding LLM Reward Prompt Template

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    REWARD_TEST_PROMPT = r"""<|im_start|>system
    You are a rigorous unit-test designer for coding problems.
    You must produce exactly ONE new test example that is correct and discriminative.
    <|im_end|>
    <|im_start|>user
    You need to provide a new test example. A good test example should be completely
    - accurate and conform to the problem's format requirements, while also
    - possessing enough discriminative power to distinguish correct code from
    - incorrect code.

    Before providing a test example, you must think carefully and reason step by step to
    - derive an input and output you are very confident are correct. For example,
    - start by designing an input you can reliably handle, then compute the output
    - step by step. If you're unsure about the output, revise or re-design the input
    - to ensure accuracy. Directly providing input/output pairs without this
    - process is discouraged, as it often results in low accuracy.

    Finally, after completing these previous thinking and derivation steps (you should
    - not write the final test example unless you have gone through these steps very
    - thoroughly), you MUST put your final test example in the following format:

    **Test Input:**
    '''
    <put the EXACT stdin content here>
    '''
    **Test Output:**
    '''
    <put the EXACT stdout content here>
    '''
    **Explanation:** <brief explanation here>

    IMPORTANT:
    - Output must contain exactly one **Test Input:** block and one **Test Output:** block.
    - Use triple backticks exactly as shown.
    - The test must be self-contained and match the problem format.

    Problem: { {problem} }
    <|im_end|>
    <|im_start|>assistant
    """

C.6. Error Pattern Summarization and Prompt Templates,错误 Pattern 总结

  • 通过总结过程奖励模型输出的思考部分来识别策略可能出错的地方

  • 对于每个任务,获得几个句子来描述策略在解决任务时所犯的错误

  • 对于 GUI 智能体

    • 首先通过聚合至少一个评估分数为 \(-1\)(表示潜在错误)的步骤上的独立评估来进行 Step-level 总结,生成 Step-level 摘要
    • 然后进行 Trajectory-level 总结:
      • 对于每条轨迹,使用 Step-level 摘要作为上下文,并要求模型总结整个轨迹中发生的错误
      • 对于每个任务的每条策略轨迹,获得一个关于策略错误模式的简洁摘要
  • 对于 AlfWorld 上的 LLM 智能体

    • 直接使用完整轨迹(智能体的操作和相应的观察),并突出显示所有评估分数均为 \(-1\) 的步骤作为总结上下文
    • 由于这里的上下文短得多且直接,本文未使用 GUI 智能体设置中采用的两阶段 Step-level 后接 Trajectory-level 总结
  • 本文为 OSWorld 设置使用 Qwen3-VL-8B-Thinking,为 AlfWorld 设置使用 Qwen3-4B

    • 对于 Coding Thinking,诊断信息包括生成的代码未能通过的单元测试
  • OSWorld (GUI Agent) Error Summarization Prompt Templates

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    **Step-wise Summarization (OSWorld GUI)**

    STEP_ERROR_SUMMARY_PROMPT = (
    "you are analyzing one step in a trajectory for an OSWorld/desktop task.\n\n"
    f"step_index: {step_index}\n\n"
    "You are given:\n"
    "- reward_model_responses (multiple candidates)\n"
    "- extracted_reward aligned with responses (+1/-1/0)\n\n"
    "Task:\n"
    "Write ONE high-density summary (<= 2 sentences) explaining why this step was judged negative.\n"
    "Be specific about the failure mode (e.g., wrong assumption, misread UI, inconsistent with instruction, hallucinated value, skipped constraint).\n\n"
    "Rules:\n"
    "- Do NOT repeat the prompt verbatim.\n"
    "- Final answer MUST be in \\boxed{...} ONLY.\n\n"
    "reward_model_responses:\n"
    f"{json.dumps(reward_model_responses, ensure_ascii=False)}\n\n"
    "extracted_reward:\n"
    f"{json.dumps(extracted_reward, ensure_ascii=False)}\n"
    )

    **Trajectory-wise Summarization (OSWorld GUI)**

    TRAJECTORY_ERROR_SUMMARY_PROMPT = (
    "You are given step-level error summaries for ONE trajectory.\n\n"
    "Task:\n"
    "Produce ONE trajectory-level error summary (<= 2 sentences) capturing the main recurring failure modes.\n\n"
    "CRITICAL anti-redundancy rule:\n"
    "- Do NOT repeat the same error across different steps.\n"
    "- If multiple steps share the same failure type, mention it ONCE and, if helpful, note it as recurring.\n"
    "- Keep language concise but high information density.\n\n"
    "- Do reasoning first, then put Final Answer in \\boxed{...} ONLY.\n\n"
    "step_error_summaries (JSON):\n"
    f"{json.dumps(step_summaries, ensure_ascii=False)}\n"
    )
  • Alf World (LLM Agent) Error Summarization Prompt Template

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ALFWORLD_ERROR_SUMMARY_PROMPT = (
    "<|im_start|>You are a helpful assistant. <|im_end|>\n"
    "<|im_start|>user\n"
    "You are analyzing a failed rollout of a policy in a text-based environment.\n"
    f"The rollout did NOT finish the task within {max_steps} interaction steps.\n"
    f"Task (natural language): {task}\n\n"
    "Full trajectory (observation/action sequence):\n"
    f"{traj_text}\n\n"
    f"Some steps that are marked by reward model to be highly possible incorrect: {steps_information}\n\n"
    "In at most TWO sentences, explain the most likely reasons the policy failed to finish in time.\n"
    "Be concrete (e.g., wrong exploration, looping, wrong target/location, inconsistent reasoning, hallucination, etc.).\n"
    "Put the final \\(<= 2\\) sentence summary in \\boxed{ and output NOTHING else.\n"
    "<|im_end|>\n"
    "<|im_start|>assistant"
    )

C.7. Environment Modification and Prompt Templates,环境修改和 Prompt 模板

  • 为了获得能更好地匹配策略当前能力的新任务 ,同时保留原始任务的本质 (以防止任务集偏离原始分布太远)

  • 本文设计以下 Prompt 模板供推理模型使用,以基于关于策略准确率及其在每个任务上具体错误的总结信息来调整任务

  • 对于 GUI 智能体

    • 为每个任务提供一组任务模板 :原始任务始终包含在内,偶尔会添加新的但高度相关的模板
    • 为 230 个训练任务中的 47 个预先创建了额外的任务模板,总共得到 295 个任务模板(示例见附录 C.8)
      • 在本文的消融研究中,所有这些任务都包含在训练集中
    • 本文提供策略在原始任务上可能出错的位置的信息,并要求模型(如果适用)选择一个新任务模板,并根据该模板编写一个新的任务 Prompt
      • 当目标是让任务更容易时,模型可以根据总结的错误模式在 Prompt 中添加 Tips,从而对策略难以处理的任务实现更主动的调整
      • 当目标是让任务更难时,模型可以移除此类 Tips 并使指令更模糊
      • 任务模板的选择也可以取决于目标难度和扰动类型
  • 对于 AlfWorld 上的 LLM 智能体

    • 本文向模型提供策略在任务上的表现,以及基本环境信息(例如,环境包含哪些对象、它们的属性以及它们的位置),以帮助模型决定如何修改任务
    • 例如:
      • 如果子类别“拾取和放置”中的原始任务对于策略来说太难,因为它找不到目标对象,则环境模型将目标替换为更容易找到的对象
      • 如果任务对策略来说太容易,环境模型会使目标对象更难找到
  • GUI Agent Task-Difficulty Adaptation Prompt Template (OSWorld)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # Variables:
    # - goal: str, target difficulty direction, e.g., "easier" or "harder"
    # - current_task_json: str, JSON string of the current task object
    # - task_template_json: str, JSON string of a mapping evaluator_name -> canonical instruction
    # - traj_summaries_json: str, JSON string of OPTIONAL historical trajectory-level error summaries
    # (each trajectory_summary is already deduplicated across steps)
    SYSTEM_PROMPT = """<|im_start|>You are a helpful assistant. <|im_end|>
    <|im_start|>user
    You will help me adjust the difficulty of an OSWorld/desktop task.
    You are given:
    (1) current_task (JSON)
    (2) task_template: a JSON object mapping evaluator_name -> a canonical instruction for that evaluator.
    (3) previous_rollout_trajectory_summaries: OPTIONAL historical error analyses from earlier rollouts.
    - A task may have multiple trajectories (runs).
    - Each trajectory_summary is already deduplicated across steps (no repeated same error across steps).
    Goal: make the task {{goal}}.
    Rules:
    - You MAY switch to a different evaluator from task_template (by changing the key), OR keep the same evaluator.
    - You MAY rewrite the instruction to increase/decrease hint strength (add hints to make easier, remove hints to make harder).
    - The instruction can NOT be too long.
    - You MUST NOT change the essential task meaning compared to the chosen evaluator’s template. Do NOT invent a new task.
    - Do NOT invent new evaluator names. The output key must be one of the keys in task_template.
    - You SHOULD use previous_rollout_trajectory_summaries to guide how you adjust difficulty:
    - If goal is EASIER: add minimal, targeted clarifying hints addressing recurring failure modes.
    - If goal is HARDER: remove such hints, but still keep the same essential task and stay within the chosen evaluator template.
    - Output MUST be valid JSON ONLY (no markdown, no extra text).
    - Output format MUST be the new current_task JSON object with EXACTLY ONE key:
    {"evaluatorX": "your rewritten instruction"}
    - If you accidentally output other text, ensure the FINAL output segment is the JSON object.
    current_task:
    {{current_task_json}}
    task_template:
    {{task_template_json}}
    previous_rollout_trajectory_summaries:
    {{traj_summaries_json}}
    <|im_end|>
    <|im_start|>assistant
    """
  • Alf World (LLM Agent) Task-Difficulty Adaptation Prompt Template

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    **Environment Summary from INIT**
    # summarize_init_english(problem_text) 返回:
    # (1) summary_text: 一个人类可读的 INIT 事实的英文摘要,包括:
    # - 对象/容器类型 -> 具体实例
    # - 位置
    # - cancontain(type -> type) 约束
    # - 按谓词名称分组的其他实例化谓词
    # (2) S: 一个结构化的已解析事实字典,用于下游约束,包括:
    # - obj2type, rec2type
    # - otype2obj, rtype2recs
    # - cancontain
    # - caps (能力集,如 pickable/toggleable/cleanable/hearable/coolable/sliceable)

    summary_text, S = summarize_init_english(problem_text)

    **Prompt Construction (environment info + failure summaries + goal editing instruction)**

    prompt_text = (
    "|<im_start|>You are a helpful assistant. <|im_end|>\n"
    "<|im_start|>user\n"
    "Review the following details about an interactive environment. A related task will follow.\n"
    + summary_text
    )

    prompt_text += "\n\n--\n"

    fails = item.get("failed_rollout_summaries", [])
    if fails:
    prompt_text += "### Failure summaries from recent rollouts (failed rollouts only)\n"
    for rec in sorted(fails, key=lambda x: int(x.get("rollout_idx", 0))):
    rj = rec.get("rollout_idx", 0)
    ss = str(rec.get("summary", "").strip())
    prompt_text += f"- Rollout {rj}: {ss}\n"
    prompt_text += "\n"

    prompt_text += f"### Your job is to propose a new goal that makes the task \*\*{goal.upper()}\*\*.\n"
    prompt_text += f"- The parent rollout accuracy (prev_acc) is {acc_before}.\n"
    prompt_text += "- The new goal must be different from the original and follow the instructions.\n"
    prompt_text += "- The overall framework of the goal cannot be changed; you may only modify two tokens within this framework.\n"
    prompt_text += "Represent the new goal by outputting two tokens, placed inside \n boxed{ and separated by a comma, e.g., \\boxed{TOKEN_A,TOKEN_B}.\n"
    prompt_text += "You need to think step by step then provide final result in \\boxed {}. \n"
    prompt_text += "\n" + goal_brief_and_instruction(
    task, goal_obj_types, goal_rec_types, S, direction=goal, prev_acc=acc_before
    )
    prompt_text += "\n<|im_end|>\n<|im_start|>assistant"

    **Task-Specific Editing Rubric (goal_brief_and_instruction)**

    def goal_brief_and_instruction(task, goal_obj_types, goal_rec_types, S, direction: Optional[str] = None, prev_acc: Optional[float] = None):
    lines = []
    if direction in ("harder", "easier"):
    lines.append(f"### Difficulty goal: \*{direction.upper()}\* (prev_acc={prev_acc})")
    if direction == "harder":
    lines.append("- Prefer types with \*fewer\* available instances (rarer) while keeping constraints satisfied.")
    lines.append("- Prefer combinations likely requiring more search/steps, but still solvable in this environment.")
    else:
    lines.append("- Prefer types with \*more\* available instances (more common) while keeping constraints satisfied.")
    lines.append("- Prefer combinations likely easier to find/complete, but still valid.")

    if task == "pick_and_place_simple":
    g = (goal_obj_types[0] if goal_obj_types else "<?>", goal_rec_types[0] if goal_rec_types else "<?>")
    lines.append("\*Overall Framework\*: place an object type into/on a receptacle type.")
    lines.append(f"\*Original goal\*: place an object of type \*\*[g[0]]\* into/on a receptacle of type \*\*{g[1]}\*.")
    lines.append(f"The final output example is \\boxed{ {g[0]}, {g[1]} }")
    lines.append("\*Design instructions\*: Output exactly \*two tokens\* - < OBJ_TYPE> <REC_TYPE>.")
    lines.append("- Constraints: pair must satisfy 'canContain(REC_TYPE, OBJ_TYPE)'.")

    elif task == "look_at_obj_in_light":
    g = (goal_obj_types[0] if goal_obj_types else "<?>", goal_obj_types[1] if len(goal_obj_types) > 1 else "<?>")
    lines.append("\*Overall Framework\*: a light object type is present at the agent's location; the agent \*holds\* an object type.")
    lines.append(f"\*Original goal (Example)\*: a \*toggleable and toggled\* light object of type \*{g[0]}\* is present; agent \*holds\* type \*{g[1]}\*.")
    lines.append(f"The final output example is \\boxed{ {g[0]}, {g[1]} }")
    lines.append("\*Design instructions\*: Output exactly \*two tokens\* - < LIGHT_OBJ_TYPE> <HOLD_OBJ_TYPE>'.")
    lines.append("- Constraints: LIGHT must have 'toggleable'; HOLD should have a 'pickupable' instance in INIT.")

    elif task == "pick_clean_then_place_in_recep":
    g = (goal_obj_types[0] if goal_obj_types else "<?>", goal_rec_types[0] if goal_rec_types else "<?>")
    lines.append("**Overall Framework** : **clean** an object type and place it into/on a receptacle type.")
    lines.append(f"**Original goal** : clean type **{g[0]}** then place into/on type **{g[1]}**.")
    lines.append(f"The final output example is \\boxed{ {g[0]}, {g[1]} }")
    lines.append("- Constraints: OBJ must be cleanable; canContain(REC,OBJ).")

    elif task == "pick_heat_then_place_in_recep":
    g = (goal_obj_types[0] if goal_obj_types else "<?>", goal_rec_types[0] if goal_rec_types else "<?>")
    lines.append("**Overall Framework** : **heat** an object type and place it into/on a receptacle type.")
    lines.append(f"**Original goal** : heat type **{g[0]}** then place into/on type **{g[1]}**.")
    lines.append(f"The final output example is \\boxed{ {g[0]}, {g[1]} }")
    lines.append("- Constraints: OBJ must be heatable; canContain(REC,OBJ).")

    elif task == "pick_cool_then_place_in_recep":
    g = (goal_obj_types[0] if goal_obj_types else "<?>", goal_rec_types[0] if goal_rec_types else "<?>")
    lines.append("**Overall Framework** : **cool** an object type and place it into/on a receptacle type.")
    lines.append(f"**Original goal** : cool type **{g[0]}** then place into/on type **{g[1]}**.")
    lines.append(f"The final output example is \\boxed{ {g[0]}, {g[1]} }")
    lines.append("- Constraints: OBJ must be coolable; canContain(REC,OBJ).")

    elif task == "pick_two_obj_and_place":
    g = (goal_obj_types[0] if goal_obj_types else "<?>", goal_rec_types[0] if goal_rec_types else "<?>")
    lines.append("**Overall Framework** : place **two distinct objects** (same type) into/on a receptacle type.")
    lines.append(f"**Original goal** : place two objects of type **{g[0]}** into/on type **{g[1]}**.")
    lines.append(f"The final output example is \\boxed{ {g[0]}, {g[1]} }")
    lines.append("- Constraints: >=2 instances of OBJ_TYPE; canContain(REC,OBJ).")

    else:
    lines.append("**Original goal** : (unknown task type).")

    return "\n".join(lines)

C.8. Examples of Task Templates in GUI data

  • 正如附录 C.7 中讨论的,本文在 GUI 训练数据中为某些任务添加了新的任务模板
  • 本文提供的示例如下,每个任务模板都配有一个评估器及其对应的可验证结果文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    TASK_TEMPLATE_EXAMPLES = r"

    Example 1:
    "task_template":{
    "evaluator1": "Work out the monthly total sales in a new row called 'Total', and then create a line chart to show the results (with Months on the x-axis).",
    "evaluator2": "Work out the monthly total sales in a new row called 'Total'.",
    "evaluator3": "Work out January's total sales in a new row called 'Total'.",
    "evaluator4": "Work out the monthly total sales in a new row called 'Total', and then create a line chart to show the results (with Months on the x-axis, for January, February, and March only)."
    }

    Example 2:
    "task_template":{
    "evaluator1": "Fill all blank cells in B1:E30 with the value from the cell directly above. Finish the task and do not modify irrelevant regions, even if they are blank.",
    "evaluator2": "Fill all blank cells in B1:B30 with the value from the cell directly above. Finish the task and do not modify irrelevant regions, even if they are blank.",
    "evaluator3": "Fill all blank cells in E1:E30 with the value from the cell directly above. Finish the task and do not modify irrelevant regions, even if they are blank.",
    "evaluator4": "Fill all blank cells in E1:E24 with the value from the cell directly above. Finish the task and do not modify irrelevant regions, even if they are blank."
    }

C.9. Task Specific Algorithm

  • Algorithm2:
12…65
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

641 posts
53 tags
GitHub E-Mail
© 2026 Joe Zhou
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4