Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

NLP——技术报告解读-Nemotron-Cascade

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(Nemotron-Cascade Technical Report) Nemotron-Cascade: Scaling Cascaded Reinforcement Learning for General-Purpose Reasoning Models, 20251215-20260327, NVIDIA
    • HuggingFace: huggingface.co/collections/nvidia/nemotron-cascade
    • 补充前一篇文章:

Paper Summary

  • 整体总结:
    • 本文包含了非常详细的训练细节,值得一读
    • 本文主要解决的问题:
      • RL 构建通用推理模型时显著的跨领域异质性,包括推理时 Response 长度和验证延迟的巨大差异
      • 这种可变性使 RL 基础设施复杂化,拖慢训练速度,并使训练课程(例如,Response 长度扩展)和超参数选择变得具有挑战性
    • 本文的解法是 Cascade RL 方法
      • Cascade RL 的多个阶段:SFT -> RLHF -> IF RL -> Math RL -> Code RL -> SWE RL
      • 本文基于 Cascade RL 开发模型 Nemotron-Cascade
        • 8B 和 14B
        • Unified(Thinking & Non-Thinking) 和 Thinking 模型
  • 注:Cascade RL 与传统方法对比:
    • 传统方法:混合来自不同领域的异构 Prompt
    • Cascade RL:按顺序编排领域特定的 RL,降低了工程复杂性(注:号称在广泛的基准测试中提供了 SOTA 性能)
  • 注:本文的训练和数据方案透明(点赞!)

Introduction and Discussion

  • 使用 RL 训练通用推理模型 的问题(不同领域的显著异质性):
    • 异质性包括 Response 长度和奖励信号计算等,不同任务特点不同:
      • 数学推理任务采用快速的基于符号规则的验证
      • 代码生成和软件打补丁采用缓慢的基于执行的验证
      • 对齐和创造性写作则计算基于 RM 的分数
    • 这种领域特定的异质性使 RL 基础设施复杂化,拖慢了训练速度,并使训练课程(例如,最大 Response 长度扩展)和超参数选择更具挑战性
  • 传统方法:混合来自不同领域的异构 Prompt
  • 在本文作者之前的解法 (2025):以级联方式在数学和代码领域进行 RL
    • 具体方法:首先在纯数学 Prompt 上训练,然后在纯代码 Prompt 上训练
    • 这种级联范式有几个优点:
      • a)基于规则的数学验证可以快速执行,比代码验证快几个数量级,使得模型能够立即更新,无需等待代码 Prompt 所需的更长验证周期
      • b)数学 RL 提升了数学基准测试的性能,并且也提升了代码基准测试的性能(注:奇怪的表现)
      • c)代码 RL 显著提升了代码基准测试的性能,而不会降低数学结果(注:第二奇怪)
  • 本文 的核心创新:
    • 在之前研究基础上,进一步将级联跨领域 RL 范式扩展到更广泛的领域 ,以构建通用推理模型
  • 关于 Thinking 和 Non-Thinking 模型之争
    • 自从 OpenAI o1 (2024) 推出以来,LLM 社区的模型发布通常分为两类:
      • 思维模型(thinking models)
        • 在给出答案前生成大量推理 Token(例如,DeepSeek-R1 (2025),OpenAI o3 和 o4-mini (2025),Kimi-K2-Thinking (2025))
      • 指令(instruct)或非思维模型(non-thinking models)
        • 直接给出答案(例如,DeepSeek-V3 (2024),GPT-4.5 (2025),Kimi-K2-Instruct (2025))
    • 构建一个统一的推理模型,能够在非思维和思维两种模式下运行,并将所有能力集成到单一模型中,将是理想的选择,好处包括:
      • i)极大地简化模型发布和生产流程
      • ii)更接近通用人工智能的最终目标
      • 注:当前大量工作已经投入到开发一个统一的模型 (2025; 2025; 2025) 上
  • 在整合 Thinking 和 Non-Thinking 模型的工作中(2025),已认识到某些技术挑战
    • 包括:统一模型在 Thinking 模式下运行时,其推理基准测试性能相较于专用思维模型会有所下降
    • 特别说明:
      • Qwen3 系列 (2025) 最初是作为一组统一推理模型发布的,但后来它又被恢复为分开的思维和指令变体,专用的思维模型 (2025) 在 Thinking 模式下的性能显著优于统一模型
      • GPT-5 的发布探索了两个专用模型之间的路由,其中一个标准指令模型和一个专用思维模型一起使用
        • 最终目标仍然是将它们集成到一个单一模型中 (2025)
      • DeepSeek-V3.1 (2025) 是一个统一模型(统一 Thinking 和 Non-Thinking 模式)
        • 它在推理基准测试上达到了与早期专用推理模型 DeepSeek-R1-0528 相当的 Thinking 模式性能
        • 除了 DeepSeek-V3.1 和 DeepSeek-R1-0528 基于不同的基座模型,并且可能使用不同的数据混合进行训练之外,其他技术细节尚未公开
  • 本文工作:
    • 开发一个开放的 Post-Training 方案,使用预训练的 Qwen3-8B-Base 和 Qwen3-14B-Base (2025) 作为起点,以支持透明的比较并促进社区内的知识共享
    • 本文扩展了 Cascade RL 框架来开发 Nemotron-Cascade 模型,在多个领域取得了新的 SOTA 结果
      • 训练流程概览如图 2 所示
    • Cascade RL 按顺序跨领域训练模型
      • 与诸如 DeepSeek-R1 (2025) 和 Qwen3 (2025) 等方法形成不同,他们混合了来自所有(推理)领域的多样化 Prompt 分布进行联合 RL 训练
      • 本文展示了一个统一的推理模型可以有效地在思维和 Non-Thinking 模式下运行,缩小了与专用思维模型的推理差距,同时通过开放的数据和训练方案确保透明度
  • 本文工作的贡献包括:
    • 本文将级联强化学习(Cascade Reinforcement Learning,Cascade RL)扩展到广泛的领域,包括人类反馈对齐、严格的指令遵循、数学推理、竞争性编程和软件工程
      • Cascade RL 框架提供了显著的优势:
        • i)RLHF 显著提升了整体的 Response 质量(例如,减少冗余),从而增强了推理性能
        • ii)后续的领域特定 RL 阶段很少会降低前置领域所取得的基准性能,甚至可能提升它
          • 因为 RL 对灾难性遗忘具有抵抗力(见图 1 的演示和 §4.1.1 节的深入讨论)
        • iii)RL 超参数和训练课程可以针对每个特定领域进行定制,以实现最优性能
    • 本文开发了 Nemotron-Cascade-8B 统一推理模型,使用户能够在每个对话轮次控制思维和非思维/指令模式
      • 本文挑战了 LLM,特别是较小的 LLM,缺乏从非思维和思维数据中有效学习能力的假设
      • 本文展示了 8B 统一模型在 Thinking 模式下的推理性能差距与专用的 8B-Thinking 模型可以被缩小,即使两个模型都在相同的思维/推理数据上训练,而统一模型还额外在非思维数据上进行了训练
      • 这一结果背后的关键技术是:
        • (1) 针对相同的 Prompt,以并行方式在思维和指令模式下生成 Response 的 SFT 数据
        • (2) 在每批数据中为每种模式分配相等数量的采样 Prompt 来融合这两种模式的 RLHF 训练
    • 本文使用 Cascade RL 方法训练的 8B/14B 模型在涵盖所有这些领域的广泛基准测试中取得了 SOTA 、同级别最佳的(best-in-class)性能
      • 本文 14B 专用思维模型(Dedicated Thinking model),在 64K Token 的推理预算下,在 LiveCodeBench v5/v6 (2024) 上优于 Gemini-2.5-Pro-06-05、o4-mini (medium)、Qwen3-235B-A22B( Thinking 模式)和 DeepSeek-R1-0528(其 SFT 教师模型)(见图 1 )
      • 还在 2025 年国际信息学奥林匹克竞赛(IOI)上获得了银牌级别的表现
    • 本文开源数据集和模型

Main Results

  • 对于基线模型,尽可能使用官方报告的结果
  • 对于 Nemotron-Cascade 模型,将最大生成长度设置为 64K Token,temperature 设置为 0.6,top-p 设置为 0.95 用于推理任务
    • 注:详情见附录 B 中详细描述
  • 主要结果如表 1 所示
    • 所有结果均报告为 pass@1,平均每个 Prompt 生成 k 次(avg@k),其中 k 根据测试集大小适当选择(通常在 4 到 64 之间)
    • 统一推理模型 Nemotron-Cascade-8B,以及专用思维模型 Nemotron-Cascade-14B-Thinking,在几乎所有基准测试中都取得了同类别最佳的性能
  • 特别地,一些指标分析:
    • 在 LiveCodeBench (LCB) 和 LCB Pro 上观察到了显著的进步,Nemotron-Cascade-8B 在 LCB v5 上达到 74.3,在 LCB v6 上达到 71.1
      • DeepSeek-R1-0528 (671B) 在 SFT 期间担任教师模型,生成了 SFT 数据整理中使用的所有代码 Prompt 的 Response(见第 §3.2.3 节)
      • 本文的 Nemotron-Cascade-14B-Thinking 模型在 LCB 和 LCB Pro 基准测试的所有划分中都显著超越了 DeepSeek-R1-0528
        • Cascade RL 框架在增强推理能力方面是有效的
    • 对于 SWE-bench Verified,最好的通用型开放 8B 和 14B LLM 在这个具有挑战性的基准测试上表现不佳
      • 专用模型 DeepSWE-32B (2025),基于 Qwen3-32B 并为 SWE 任务专用,达到了 \(42.2%\) 的 pass@1 准确率
      • 本文通用型 8B 和 14B 模型分别达到了 \(37.2%\) 和 \(43.1%\)

Supervised Fine-Tuning

  • 本节描述了 SFT 的训练框架和数据整理,这是作者后训练管线的第一阶段
  • 此阶段使模型具备了基础技能和能力,然后在后续阶段通过级联强化学习 (Cascade RL) 显著增强这些能力

Training Framework

Multi-Stage SFT
  • SFT 课程包含两个阶段,涵盖了广泛的领域,包括数学、编码、科学、工具使用和软件工程,以及通用领域,如多轮对话、知识密集型问答、创意写作、角色扮演、安全性、安全性和指令遵循
  • 这些领域的数据整理细节在第 §3.2 节中提供
  • SFT 课程的概述如下:
    • 阶段 1 (16K,一个 epoch) :
      • 包括:
        • 通用领域数据:每个 prompt 包含思考和思考及非思考模式的并行 responses
        • 数学、科学和代码推理数据:仅包含思考模式的 responses
    • 阶段 2 (32K,一个 epoch) :
      • 目标:进一步增强模型的推理能力,并使其具备工具使用和软件工程技能
      • 重新组合了:
        • 通用领域数据:每个 prompt 包含思考和思考及非思考模式的并行 responses
        • 新的阶段 2 数学、科学和代码推理数据:仅包含思考模式的 responses
        • 工具使用和软件工程数据集:仅包含思考模式的 responses
Chat Template
  • 本文定义了模型的交互模式,这对于支持思考和思考及非思考生成模式的统一推理模型尤为重要
    • 采用标准的 ChatML 模板 (OpenAI),并在 User Prompt 中引入了两个控制标志,/think 和 /no_think,用于明确指示模型以相应模式生成 responses
  • 先前的工作 (2025; 2025) 采用了类似的控制标志机制,本文引入了一些简化和增强,以实现对模型生成行为更精确和灵活的控制
  • 与 Bakouch 等 (2025) 将 /think 和 /no_think 标志放在 System Prompt 中从而全局控制整个对话不同
    • 将这些标志附加到每个单独的 User Prompt 上
    • 这种设计同时支持全局和局部控制:
      • 在每个用户轮次中附加相同的标志可以强制执行一致的全局行为
      • 在多轮对话中改变标志则可以在单个对话中实现动态切换
  • 与 Qwen3 推理模型 (2025) 相比,本文方法进一步简化了模式控制
    • Qwen3 采用了一种冗余机制,可以通过两种方式切换模式:
      • 显式标志(理解:应该是 no_think 这样的显示标志?)
      • 隐式决定:通过 enable_thinking 参数修改模板(该参数隐式地决定模式)
    • 默认为思考模式,同时会预先添加一个空的 <think> </think> 块来激活非思考模式
      • 早期实验表明,显式标志比基于模板的提示能产生更可靠的模式转换
      • 仅用标志的设计覆盖了所有用例,且没有任何性能下降
      • 专门采用了基于标志的方法
      • 通过这种简化,非思考模式中不再需要空的 <think> </think> 块
    • 对于工具调用任务,作者在 System Prompt 中的 <tools> 和 </tools> 标签内指定所有可用的工具,如图 3 右侧所示
      • 本文进一步指示模型在 <tool_call> 和 </tool_call> 标签内执行工具调用

SFT Data Curation

General-Domain Data
  • 本文整理了一个包含 2.8M 样本的综合语料库,包含来自不同通用领域数据集的 3.2T tokens,以使模型具备基础技能和强大的对话能力
    • 该语料库涵盖了广泛的任务,包括下面几个部分:
      • 日常对话、问答 (2023; 2024)
      • 创意写作 (2025; 2024)
      • 安全性 (2025)
      • 指令遵循 (2024)
      • 角色扮演 (2024)
  • 对于涵盖通用领域的知识密集型任务 (2024; 2021; 2024):
    • 从公开数据集中收集问题 (2020; 2023)
    • 并进一步用来自专业法律和伦理等挑战性领域的领域特定问题进行增强,最终得到 1.2M 个样本,包含 1.5T tokens
  • 直接组合这些语料库会带来三个显著的挑战
    • 第一:许多 responses 过于简短(例如,单个词或最少句子的输出),因此缺乏足够的细节和阐述
    • 第二:response 质量参差不齐,一些数据集包含不准确或次优的答案
    • 第三:由于这些数据集的不同来源和标注惯例,直接在这些数据集上训练会导致模型生成的风格不一致
    • 为了解决这些问题,对于每个 prompt,分别使用两个模型分别生成思考和非思考的数据(最大序列长度为 16K):
      • 思考数据: DeepSeek-R1-0528
      • 非思考数据: DeepSeek-V3-0324
      • 确保风格和质量的一致性
  • 为了进一步提高训练数据质量,应用了几个后处理步骤
    • 对于具有高质量注释的样本,保留其原始 responses 以保持多样性
      • 问题:如何理解这里的高质量注释?
    • 对于具有可验证 ground-truth 答案的 prompts(例如,多项选择题),丢弃偏离 ground-truth 的 responses 来提高生成准确性
    • 对于没有 ground-truth 答案的样本,使用辅助模型 (Qwen2.5-32B-Instruct (2024)) 交叉验证生成的 responses,以过滤掉可能低质量的生成
    • 为了解决指令遵循和创意写作等领域的数据稀缺问题:
      • 为每个 prompt 使用不同的随机种子生成多个 responses,从而丰富多样性并提高生成质量
    • 为了进一步增强多轮对话能力,以两种方式手动增强多轮样本
      • 第一:对于创意写作领域的单轮样本,添加第二轮 ,指示模型根据特定要求重写或编辑其先前的 response
      • 第二:将单轮样本随机连接起来构建多轮对话,模拟真实的聊天机器人交互
Math Reasoning Data
  • 阶段 1 数学 SFT 数据集:
    • 将 AceReason-Nemotron-1.1 (2025) 中的数学推理 SFT prompts 用于阶段 1 SFT 训练
    • 这些 prompts 包含多种数据源,包括 AceMath (2024)、NuminaMath (2024) 和 OpenMathReasoning (2025)
    • 相应的 responses 由 DeepSeek-R1 (2025) 生成
    • 将最大上下文长度设置为 16,384 tokens (16K),并过滤掉超过此限制的样本以防止 response 截断,遵循 AceReason-Nemotron-1.1 中的 SFT 配置
    • 总共收集了 353K 个唯一去重 prompts,并为每个 prompt 生成了多个 responses ,得到 2.77M 样本,平均每个 prompt 有 7.8 个 responses
    • 通过移除任何与标准数学 benchmark 测试样本有 9-gram 重叠的样本来执行数据去污
  • 阶段 2 数学 SFT 数据集:
    • 为了进一步增强模型的推理能力,使用 DeepSeek-R1-0528 生成 responses 并构建阶段 2 数学 SFT 数据集
      • 理解:阶段 2 数学 SFT 数据集的 Prompt 和阶段 1 是一样的,但会过滤掉相对简单的问题
        • 具体来说是那些 DeepSeek-R1 responses 包含少于 2K tokens 的问题
      • 注:与原始的 DeepSeek-R1 相比,更新的 DeepSeek-R1-0528 产生更长、更详细的推理轨迹,从而在具有挑战性的问题上提高了性能
    • 将最大上下文长度设置为 32,768 tokens (32K),为模型提供更大的推理 token 预算
    • 总共获得了 163K 个 prompts 并生成了 1.88M 个样本,平均每个 prompt 有 11.5 个 responses
  • 阶段 1 和阶段 2 SFT 中的所有数学推理数据均采用思考模式格式化
Code Reasoning Data
  • 遵循与数学推理数据构建类似的过程,采用了 AceReason-Nemotron-1.1 (2025) 中的代码推理 SFT prompts
    • 其中包括了来自 TACO (2023)、APPs (2021)、OpenCoder-Stage-2 (2024) 和 OpenCodeReasoning (2025) 的数据
  • 执行数据集去重以确保所有 prompts 都是唯一的,得到 172K 个不同的 prompts
  • 阶段 1 SFT 数据:
    • 使用 DeepSeek-R1 (2025),为阶段 1 SFT 生成了 1.42M 个样本,平均每个 prompt 有 8.3 个 responses,最大上下文长度为 16,384 tokens (16K)
    • 去污:过滤掉任何与编码 benchmark 的任何测试样本有 9-gram 重叠的样本
      • 问题 代码这种样本,很容易重复吧,9-gram 似乎是和容易重复的?
  • 阶段 2 SFT 数据:
    • 阶段 2 利用 OpenCodeReasoning (2025) 和 OpenCoder-Stage2 (2024) 中的 prompts
      • OpenCodeReasoning 提供了多样且具有挑战性的编码 prompts 集合
      • OpenCoder-Stage2 涵盖了带有起始代码入口点的编码任务
    • 与阶段 2 数学 SFT 数据集类似,将最大上下文长度设置为 32,768 tokens (32K)
    • 阶段 2 构建了 79K 个唯一去重 prompts,并使用 DeepSeek-R1-0528 生成 1.39M 个样本,平均每个 prompt 有 17.6 个 responses
  • 阶段 1 和阶段 2 SFT 中的所有代码推理数据均采用思考模式格式化
Science Reasoning Data
  • 从 S1K (2025) 以及 Llama-Nemotron (2025; 2025) 中使用的后训练数据集中整理出与科学相关的 prompts
    • 注:这些来源中的许多 prompts 是多项选择题
    • 本文排除了模型侧重于分析每个选项而不是直接解决问题并确定正确答案的样本
    • 本文保留了那些需要强大科学知识并涉及大量推理或复杂计算的问题
  • For 用较少见和更多样化的问题类型丰富数据集
    • 利用 DeepSeek-R1-0528 从每个给定的 prompt 生成更罕见的问题,遵循 Liu 等 (2024) 中使用的合成问题生成策略
  • 数据去污:移除任何与科学 benchmark 的任何测试样本有 9-gram 重叠的样本
  • 总共收集了 226K 个科学 prompts
    • 使用 DeepSeek-R1 为阶段 1 SFT 生成了 289K 个样本(最多 16K tokens)
    • 使用 DeepSeek-R1-0528 为阶段 2 SFT 生成了 345K 个样本(最多 32K tokens)
  • 所有科学推理数据均采用思考模式格式化,并为选定的高质量 prompts 生成多个 responses
  • 阶段 2 科学推理数据在被混合到阶段 2 SFT 数据集之前被上采样了 \(2\times\)
Tool Calling Data
  • 使用了 Llama-Nemotron (2025) 中的工具调用数据集,该数据集专门设计用于训练模型处理涉及外部工具使用(例如函数调用)的场景
    • 该数据集非常全面,包含单轮、多轮和多步交互
      • 一些 prompts 要求模型提出澄清问题以收集足够的信息进行工具调用
      • 一些 prompts 可能涉及使用多个工具甚至在达到最终答案之前执行多轮工具调用
      • 还包括模型在提供的工具列表中找不到合适工具的情况
    • 对于每个对话,所有可用的工具都包含在 System Prompt 中(遵循 Qwen3 (2025) 中使用的设置)
      • 平均每个对话包含 4.4 个可用工具
  • 此工具调用 SFT 数据集用于阶段 2 SFT 训练,responses 由 Qwen3-235B-A22B (2025) 生成
  • 注:所有工具调用数据均采用思考模式格式化
  • 总计收集了 310K 个对话,包含 1.41M User-Assistant 轮次

Software Engineering Task

  • 软件工程已成为 LLM 最重要的应用之一 (Anthropic, 2025)
  • SWE-bench Verified (2023) (软件工程 benchmark) 包含与其相应代码库和描述配对的真实世界 GitHub 问题,其目标是生成能够成功解决所述问题的修复补丁
Agentless Framework
  • 为了评估自动化的软件工程能力,本文采用 Agentless (2024)
    • 注:Agentless 框架是 LLM 应用中的一种 “无智能体” 框架,核心是不依赖复杂的自主规划、工具调用与多轮反思,而是用预设的分层流程 + 固定模板调用 LLM来完成任务,主打极简、稳定、低成本、可解释
    • Agentless 框架将整个任务分解为三个阶段(即,定位、修复和补丁验证)
      • 对比:Agent 框架需要 LLM 本身规划动作序列或操作外部工具, Agentless 框架则不需要
  • 本文采用一个类似于 Agentless Mini (2025) 的简化 Agentless 框架,该框架简化了定位过程,专注于仅识别相关的 issue 文件
    • 这种方法与原始的 Agentless 工作流程不同
      • 原始 Agentless 采用三阶段分层定位策略,从文件级别到类/函数级别,再到行级别识别,然后才进行修复和补丁验证阶段
    • 通过简化定位过程,LLM 可以将更多的推理能力用于修复任务本身,而强化学习则被整合到一个直接优化修复补丁生成的重点目标中
  • 对于代码修复阶段,主要目标是生成有效的候选补丁,以解决已识别的仓库级别问题
    • 通过早期阶段定位了相关文件后,就会提示 LLM 生成仅修改代码库必要部分的修复编辑
    • For 最大化上下文理解,将多个定位的文件及其周围的代码片段(例如,导入、类定义和依赖函数)连接成一个统一的 prompt,使模型能够推理更广泛的仓库级别依赖关系
    • 模型被引导生成有针对性的、diff 风格的补丁,而不是重写整个修复文件,这些补丁保留不相关的代码结构以减少幻觉和语法错误
  • 对于补丁验证阶段,框架通过三个阶段运行: 回归、复现和多数投票
    • 回归阶段:
      • 每个候选补丁先通过仓库现有的回归测试进行评估,以确保兼容性
      • 此步骤过滤掉引入失败或破坏先前正确功能的补丁,确保后续评估仅关注稳定且语法有效的候选者
    • 复现阶段:
      • 为每个 issue 实例生成 10 个复现测试,以在未修改的仓库上复制原始 bug 行为,并在应用补丁后验证功能正确性
      • 未能触发原始 bug 的复现测试被丢弃,以保持高诊断精度,然后对每个候选补丁执行幸存的测试,允许系统识别哪些补丁成功消除了报告的问题
    • 多数投票阶段:
      • 聚合多个采样生成的结果以选择最可靠的补丁
      • 在得分最高的候选者 中,先优先考虑在测试时样本中最常生成的补丁 (For 模型修复推理能力的共识)
        • 问题:这里的得分是谁来打的?
      • 在平局的情况下,倾向于生成序列更短或编辑距离最小的补丁(For 简洁性和可解释性)
      • 这个多阶段验证框架确保最终选定的补丁在功能上正确且对仓库级别依赖关系具有鲁棒性,在精度和效率之间取得平衡
  • 可参考附录 C.2 了解每个阶段使用的 prompts
    • 第 §7 节中详细介绍了本工作中使用的改进技术,包括增强的代码文件定位和补丁验证,与先前研究相比
Data Curation
数据源
  • 用于软件工程任务的训练数据由以下开源数据集组成:
    • SWE-Bench-Train (2023) :通过与 SWE-Bench 评估集相同流程生成但未经人工验证的训练集划分
    • SWE-Fixer-Train (2025) :包含超过 100 个 pull requests 的 Python 仓库,在应用启发式过滤规则后产生 115K 个实例
    • SWE-reBench (2025) :一个包含超过 21K 个交互式基于 Python 的 SWE 任务的公共数据集,通过一个新颖、自动化且可扩展的流程构建
    • SWE-Smith (2025) :一个合成数据集,包含来自 128 个 GitHub 仓库的 50K 个实例,通过自动将 bug 注入代码库生成
  • 为防止评估数据污染,针对 SWE-bench Verified (2023) 实施了一个全面的去重过程
    • 具体做法:
      • 排除所有源自评估数据集中存在的仓库的实例
      • 对来自不同来源的训练数据执行去重,以消除重复实例
        注:此去重过程依赖于匹配仓库名称和基础提交标识符,以确保移除相同的实例
Response generation
  • 为 Agentless 框架中的三个子任务构建 SFT 数据集:
    • 1)代码定位 (Code localization) :给定一个问题陈述和相应的 GitHub 仓库结构,模型识别并列出可能包含 bug 的代码文件
    • 2)代码修复 (Code repair) :给定一个问题陈述以及一个或多个有 bug 的代码文件的内容,模型生成修订后的代码补丁,以解决问题陈述中描述的问题
    • 3)测试代码生成 (Test code generation) :给定一个问题陈述、代码定位和修复补丁,模型生成验证所生成代码补丁的测试代码
  • For 构建 SFT 数据集
    • 使用 DeepSeek-R1-0528 为数据源中列出的四个数据集生成多个 responses
      • 为 SWE-Bench-Train、SWE-reBench 和 SWE-Smith 的每个 prompt 生成 8 个 responses
      • 为更大规模的 SWE-Fixer-Train 数据集生成 4 个 responses
    • 输入的 prompts 被构建为包含任务规范、问题陈述、用于修复任务的代码文件内容以及期望的输出格式
      • 注:有关模板的详细信息,请参见附录 C.2
    • 模型被指示输出完整的推理链和解决方案
      • 对于代码定位,解决方案包含一个优先级的潜在有 bug 的代码文件名列表,按从最可能到最不可能包含 bug 的顺序排列
      • 对于代码修复,解决方案包含要替换的代码块以及用于替换的代码补丁
      • 对于测试代码生成,解决方案包含一组单元测试和复现测试,旨在验证 bug 复现和补丁正确性
Data filtering and splitting for SFT and RL
  • 为确保高质量的训练数据,根据 ground-truth 注释验证所有生成的 responses
    • 问题:RL 数据也需要验证 Response 吗?而且从本文后面的第 4 节也明确提到了,RL Prompt 和 SFT Prompt 是严格不想交的
  • 过滤策略因三个任务而异
    • 对于定位任务,仅保留那些包含解决该问题所需的所有有 bug 的代码文件的样本(即,召回率等于 1.0)
    • 对于修复任务,使用 Unidiff(一个用于解析和与统一 diff 数据交互的轻量级 Python 库)
      • 遵循 Wei 等 (2025) 的方法,衡量生成补丁与 ground-truth 补丁之间的相似度
      • 采用分层方法:对于 SWE-Bench-Train、SWE-reBench 和 SWE-Smith,展示出一致解决方案质量(定义为在 8 个采样响应中至少有 4 个超过 0.5 相似度阈值)的实例被包含在 SFT 数据集中
      • 更具挑战性的实例:定义为在 8 个采样响应中至少有 1 个达到非零相似度(排除 SFT 样本)
        • 被保留用于第 §4.7 节中描述的 SWE RL 训练
      • 考虑到 SWE-Fixer-Train 数据集的规模和多样性,将所有超过 0.5 相似度阈值的 prompt-response 对包含进来
    • 对于测试代码生成,仅保留那些可以成功解析并作为复现测试执行而无任何语法错误的轨迹
Dataset composition summary,数据集组成总结
  • 最终的代码修复数据集包含 127K 个实例,分布如下:
    • 来自 SWE-Bench-Train 的 17K
    • 来自 SWE-reBench 的 17K
    • 来自 SWE-Smith 的 18K
    • 来自 SWE-Fixer-Train 的 77K
    • 注:这种组成确保了在保持高数据质量标准的同时,全面覆盖各种编码场景
  • 用于定位和测试用例生成的最终数据集分别包含 92K 和 31K 个样本
  • 所有 SWE 数据集在被纳入阶段 2 SFT 数据混合之前都上采样了 \(3\times\)
    • 问题:阶段 1 不包含 SWE 数据吗?从文章看起来似乎是不包含

Results after SFT,SFT 后的结果

  • 在多阶段 SFT 过程之后,8B 统一模型以及 8B/14B 思考模型的结果总结在表 2 中
  • 注:Qwen3-8B 原始分数见表 1 第一列:
  • 8B 统一模型的表现 vs 专用的 8B 思考模型(两个模型都在相同的 SFT 思考数据上进行了训练,统一模型进一步整合了非思考数据)
    • 在所有与推理相关的 benchmarks 上
      • 8B 统一模型的表现与专用的 8B 思考模型相当
    • 在与指令遵循(更适合 instruct 模式的任务)相关的 IFEval benchmark 上
      • 8B 统一模型的表现超越了专用的 8B 思考模型
      • 注:其实也没有,IFBench 上 Unified 模型就不如 Thinking 模型
  • 由于资源限制,本文只训练了一个 14B 思考模型,并提供了比 8B 模型更强的结果
  • 本文接下来的核心:将检查所有 RL 阶段的结果,突出 Cascade RL 框架的鲁棒性和整体有效性

补充:两阶段 SFT 训练超参

  • 8B 和 14B训练超参(注:两者有两个区别)
    • 区别1:第二阶段的最大学习率上是 14B 偏大(\(5e^{-5} \text{ vs } 2^{e-5}\))
    • 区别2:第一第二阶段 14B 模型的训练 Step 都要大一些(问题:14B 模型有更多数据?)

Cascade RL

  • 本节介绍了 Cascade RL 方法
  • 在整理 RL 数据时,确保 SFT 和 RL 数据集在 Prompt 方面是严格不相交的
    • 这样模型在 RL 训练期间就不能利用对给定 Prompt 的记忆答案

Training Framework

  • 如图 2 所示,Cascade RL 过程首先对 § 4.3 中描述的 SFT 模型应用通用领域的 RLHF,然后进行 RLVR
    • 首先应用 RLHF,然后再应用 RLVR(例如 Math RL)
      • 因为 RLHF 通过减少冗余和重复来显著提高生成响应的质量,从而在受限的 Response 长度(例如 64K Token)内提升推理性能
  • 在 Cascade RL 中,依次应用以下流程:
    • RLHF(§ 4.3)
    • Instruction-Following RL(§ 4.4)
    • Math RL(§ 4.5)
    • Code RL(§ 4.6)
    • 软件工程 RL(SWE RL,§ 4.7)
  • 基本思路:逐步从更通用的领域过渡到更专门的领域
Why Cascade RL for LLMs Is Resistant to Catastrophic Forgetting,Why Cascade RL 能够抵抗灾难性遗忘
  • 当一个模型在多个领域上顺序训练时,可能会在学习新知识的同时覆盖掉先前学到的知识,这种情况被称为灾难性遗忘
    • 这是监督学习中的一个常见问题,其中不相交的训练数据集会导致更新将模型推向新的数据分布
  • Cascaded Cross-Domain RL 在几个结构方面有所不同,从而缓解了这个问题:
    • i)在 RL 中,训练数据分布是依赖于当前策略的(即 LLM 生成自身的经验,实际上就是 On-Policy)
      • 当引入新的目标或任务时,LLM 仍然会在各种状态中进行探索,这意味着如果旧的行为仍然有用或能获得高奖励,它们就会被持续采样
      • 这与监督学习(例如 SFT)形成对比,在 SFT 中,先前领域的样本除非被明确地重放,否则就会消失
    • ii)RL 优化的是期望的累积奖励,而不是针对每个输入的确切目标
      • 更新侧重于改善长期结果,而不是显式地拟合新的 Token-level 分布
      • 那些仍然与奖励相关的旧知识会自然地持续存在
      • 当新任务与旧任务共享结构时,更新倾向于泛化而不是覆盖
    • iii)当一个新领域的奖励与先前领域的奖励发生剧烈冲突时(例如,优化简洁的 Response 与详细的、逐步的推理),灾难性遗忘仍可能发生,特别是当来自不同领域的 Prompt 在语义上相似时
      • 但 RLHF 和 RLVR 的奖励结构在各个领域(如数学、代码、推理和指令遵循)之间存在大量重叠,因为它们都旨在使输出更好、更准确,并且更符合人类偏好或验证信号
        • 例如:减少冗余或幻觉通常对所有领域都有益
    • iv)在本文的 Cascade RL 框架中,由于各个领域的 Prompt 通常已经各不相同,本文进一步最大限度地减少了 Prompt 的重叠
      • 例如:从 RLHF 阶段移除了所有与数学和竞技编程相关的 Prompt,以减少跨领域干扰
      • 领域级的 RL 安排是从更通用的领域(例如 RLHF,指令遵循)到更专门的领域(例如数学、代码、SWE),从而防止专门的能力被通用行为所覆盖
  • 个人总结:核心思路是,借助 RL 本身的 On-policy 优势(泛化能力),同时逐步从更通用的领域过渡到更专门的领域,从而防止专门的能力被通用行为所覆盖
    • 注:这和我们平时的做法有些不同,平时常常是先训练数学和推理,再训练 General RL(通用能力, RLHF)
RL Training Configuration
  • 在整个 Cascade RL 过程中,使用 GRPO 算法 (2024),并遵循 AceReason-Nemotron (2025) 的严格 On-policy 训练方式(采用 On-policy 训练可提高稳定性和准确性)
    • RL Infra:使用 VeRL 代码库 (2025) 进行训练
  • 在每次迭代中,从当前策略 \( \pi_\theta \) 生成一组 \( G \) 个 Rollout,然后执行一次梯度更新
    • 这确保了用于数据收集的策略总是与正在更新的策略相匹配,使得重要性采样比率恰好为 1
    • 这种 On-policy 设置有助于稳定的 RL 训练并减轻熵崩溃
  • 注:完全移除了 KL 散度项,从而将 GRPO 目标简化为标准的 REINFORCE 目标 (1992),并带有组归一化奖励和 Token-level 损失 (2025):
    $$
    \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{(q,a) \sim \mathcal{D}, \{o_i\}_{i=1}^{G} \sim \pi_{\theta}(\cdot|q)} \left[ \frac{1}{\sum_{i=1}^{G} |o_i|} \sum_{i=1}^{G} \sum_{t=1}^{|o_i|} \hat{A}_{i,t} \right], \quad \text{Where } \hat{A}_{i,t} = \frac{r_i - \text{mean}(\{r_i\}_{i=1}^{G})}{\text{std}(\{r_i\}_{i=1}^{G})} \text{ for all } t,
    $$
    • \( \{r_i\}_{i=1}^{G} \) 表示分配给针对数据集 \( \mathcal{D} \) 中给定问题 \( q \) 所采样 Response \( \{o\}_{i=1}^{G} \) 的一组 G 个奖励,并在
      • RLVR 中 \( r_i \) 根据真实答案 \( a \) 进行验证
      • 对于 RLHF,\( r_i \) 是奖励模型针对 Response \( o_i \) 和问题 \( q \) 输出的标量
      • 注:不同领域的奖励函数细节将在相应的子章节中提供
    • 理解:上面是目标有点问题,应该还需要加个概率分布函数
      $$
      \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{(q,a) \sim \mathcal{D}, \{o_i\}_{i=1}^{G} \sim \pi_{\theta}(\cdot|q)} \left[ \frac{1}{\sum_{i=1}^{G} |o_i|} \sum_{i=1}^{G} \sum_{t=1}^{|o_i|} \hat{A}_{i,t} \color{red}{\cdot \pi_\theta(o_{i,t}|q,o_{i, < t})} \right], \quad \text{Where } \hat{A}_{i,t} = \frac{r_i - \text{mean}(\{r_i\}_{i=1}^{G})}{\text{std}(\{r_i\}_{i=1}^{G})} \text{ for all } t,
      $$
      • 因为梯度应该是:
        $$
        \nabla \mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{(q,a) \sim \mathcal{D}, \{o_i\}_{i=1}^{G} \sim \pi_{\theta}(\cdot|q)} \left[ \frac{1}{\sum_{i=1}^{G} |o_i|} \sum_{i=1}^{G} \sum_{t=1}^{|o_i|} \hat{A}_{i,t} \color{red}{\nabla \pi_\theta(o_{i,t}|q,o_{i, < t})} \right], \quad \text{Where } \hat{A}_{i,t} = \frac{r_i - \text{mean}(\{r_i\}_{i=1}^{G})}{\text{std}(\{r_i\}_{i=1}^{G})} \text{ for all } t,
        $$

Reward Modeling

  • 本节描述 RLHF 阶段的 RM 的构建过程
Data Curation
  • 奖励建模偏好数据集混合了开源数据和内部数据,总共包含 82K 个偏好对(使用了以下开源数据):
    • HelpSteer2 (2024)
      • 一个包含 10K 个高质量、人工标注的偏好数据集,涵盖了帮助性、正确性、连贯性、复杂性和冗长度等多个方面的标注
    • HelpSteer3 (2025)
      • 一个包含 40K 个偏好对的数据集,涵盖多个领域,包括通用领域、STEM、代码和多语言
      • 每个样本(Response 对)都标注有一个偏好分数,范围从 –3(Response 1 远好于 Response 2)到 3(Response 2 远好于 Response 1)
      • 本文过滤掉了分数为 0(Response 1 与 Response 2 相似)的样本,剩余 36K 个样本
  • 受先前工作 (2024) 的启发,本文生成了额外的数据以改进最终的偏好数据混合
    • 核心思想是构建偏好对,其中较差的 Response 来自较强的 LLM,而较好的 Response 来自较弱的 LLM
    • 注意:诱导较强的 LLM 生成较差的 Response 对于使数据有效至关重要
      • 否则,偏好对对于奖励模型来说将太容易区分
    • 问题:为什么一定要用 用弱模型生成正样本,二用强模型生成负样本?
      • 看似反直觉,实则是整个 Off-topic Response Method 设计中的核心技巧,目的是刻意制造一种“高质量外表下的错误回答”,从而有效对抗 Judge Model 的偏倚
      • 这种方法的核心逻辑:
        • 利用 LLM 生成与原始指令 \( I \) 相似但不同的指令 \( I’ \)
        • 弱模型(参考回答)生成 \( I \) 的正确回答 \( R_g \)
        • 强模型生成 \( I’ \) 的候选回答 \( R_b \)
          • \( R_b \) 表面具体、合理,但实际与 \( I \) 无关,\(R_g\) 则不一定表面很好,但是很贴合原始问题 \(I\)
  • 一种具体的方法是:
    • 生成一个略微偏离主题的 Prompt,并用它来从较强的模型获得一个较差的 Response
    • 本文使用 DeepSeek-V3 通过重写原始 Prompt 来生成这些偏离主题的 Prompt,并且通过人工检查和基于 LLM 作为评判者的自动评估验证了重写后的质量很高
      • 注:有关详细 Prompt,请参考附录 §C.1
    • 本文探索了不同 LLM 作为弱模型和强模型的组合,并最终选择了 DeepSeek-V3-0324 和 DeepSeek-V3 分别作为强模型和弱模型
    • 注:本文也尝试过明确指示强 LLM 对给定 Prompt 生成有细微错误的答案
      • 但这种方法并未成功
Training Recipe
  • 使用 Bradley-Terry 目标 (1952) 在成对的人类偏好数据上训练一个标量输出的奖励模型(RM):
    $$
    P_{\text{BT} }(y^+ \succ y^- | x) = \frac{\exp(r_\theta(x, y^+))}{\exp(r_\theta(x, y^+)) + \exp(r_\theta(x, y^-))}
    $$
    • \( y^+ \) 是 Chosen(preferred),\( y^- \) 是 Rejected(dispreferred)
    • 奖励模型使用 Qwen2.5-72B-Instruct (2024) 进行初始化,在其最后一个隐藏层之上添加了一个线性预测器,并通过最大化人类偏好的对数似然来进行训练:
      $$
      \mathcal{L}(\theta) = \mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D} }\left[\log P_{\text{BT} }(y^+\succ y^-\mid x)\right]
      $$
  • 对于每个 Prompt,会比较两个 Response
    • 使 RM 能够学习给 Chosen Response 分配更高的标量分数,给 Rejected Response 分配更低的分数
    • 将这个标量分数视为模型 Response “质量” 的代理指标
    • 训练超参数如下:
      • Batch Size 256,学习率 2e-6,AdamW 优化器 (2017),训练 1 个 Epoch
      • 注:也尝试了更长的训练计划,但发现一个 Epoch 能产生最佳结果
RM 评估
  • 主要使用 RewardBench (2024) 来评估和选择用于 RLHF 过程的 RM
  • 观察:RewardBench 分数低的奖励模型通常会导致 RLHF 后的策略对齐效果较差,但 RewardBench 分数最高的 RM 并不一定能产生最佳对齐的策略模型(即通过对齐基准测试来衡量),因为 RewardBench 可能是识别 RLHF 最佳奖励模型的不完美代理,而且 RLHF 过程本身也会引入额外的方差
  • 正在进行研究,以建立能够作为更可靠代理指标的 Robust RM 基准,用于识别可能产生最佳最终对齐效果的奖励模型
  • 对于使用哪个标准基准,目前还没有普遍的共识
关于 RM 的消融研究
  • 本文进行了消融研究以确定骨干 LLM 的选择,主要发现如下:
    • 模型大小 :
      • 使用 Qwen2.5-Instruct 系列(7B、14B、32B 和 72B)训练了不同大小的奖励模型,并观察到性能随模型大小正向扩展,确认了缩放定律 (2020) 在奖励模型训练中也成立
        • 参见表 3 中的 (a)-(d)
      • 较大的 LLM 对偏好数据中的风格伪影表现出更强的鲁棒性,而较小的模型则倾向于更关注 Response 的风格而非其整体质量
      • 当将在 RLHF 中应用这些奖励模型时,无论是在有风格控制还是没有风格控制的情况下,这一观察都得到了 Arena-Hard 分数 (2024) 的进一步验证:
        • 与较大的模型相比,较小的模型在受风格控制的评估下表现出更大的性能下降,详见 § 6.2 的讨论
    • 有无大规模偏好预训练 :
      • 先前工作 (2025) 发布了 WorldPM 检查点,这是一个在 1500 万规模多样化偏好数据上进一步预训练的 Qwen2.5-72B 模型,可以作为奖励模型训练的强大初始化
      • 实验中,从 WorldPM 初始化的模型在训练的早期阶段表现更好,但随着训练的延长,从原始 Qwen2.5-72B-Instruct 初始化的模型最终在 RewardBench (2024) 上赶上并略微超过了它们
        • 参见表 3 中的 (d) vs (e)
    • 推理模型 vs. 指令模型 :
      • 在开发后训练流程的过程中,Qwen3 统一推理模型发布 (2025),促使本文也探索了 Qwen3 8B 和 14B 检查点
      • 发现:当用作使用 BT 损失训练的奖励模型的骨干时,Qwen3 推理模型的性能始终低于相同大小的 Qwen2.5 指令/非思维模型
        • 参见表 3 中的 (b) vs (f)
        • 一开始作者怀疑这是由于偏好数据不太适合以 Thinking 模式运行的 Qwen3 模型,因此在启用 Non-Thinking 模式的情况下进行了额外的实验
        • 尽管性能有了显著提高,但处于 Non-Thinking 模式的 Qwen3 模型仍然未能超越 Qwen2.5-Instruct
          • Qwen2.5-Instruct 是非思维对应模型(参见表 3 中的 (b) vs (g))
        • 作者推测这是因为 Qwen3 推理模型主要针对以推理为中心的任务(例如数学和代码)进行了优化,而不是通用的人类偏好对齐

RLHF

  • RLHF 是 Cascade RL 过程的第一阶段
  • 发现:奖励模型的泛化能力对于确保稳定的 RLHF 训练起着至关重要的作用,并且较大的奖励模型(例如 72B RM)对策略 LLM 生成 OOD 样本更具鲁棒性
Data Curation
  • 发现:将奖励模型的 OOD Prompt 引入 RLHF 阶段通常会导致不稳定甚至训练崩溃
    • 原因是奖励信号不准确或具有误导性
    • 理解:这里 RM 使用的 Prompt 数量是 82K 个偏好对,也就是说只能在这里面挑选 RLHF 的样本(有点偏少了)
    • 思考:为了类似的 RM OOD Query 加入 RLHF,是否应该花时间针对这部分数据好好做一下正负样本对打标和 RM 训练,从而保证 RLHF 中,RM 不会遇到 OOD 的样本?
  • 在 RLHF 阶段,使用来自 § 4.2 中描述的奖励模型偏好数据集的 Prompt 子集
    • 问题:奖励模型的数据
  • 此外,在 RLHF 中还排除了与数学和竞技编程相关的 Prompt
    • 因为奖励模型可能无法提供像后续 Math RL 和 Code RL 阶段中使用的基于规则或基于执行的验证器那样可靠的奖励信号
  • 在早期的实验中观察到:在 RLHF 期间未能排除与数学相关的 Prompt 导致 AIME25 基准测试的性能下降了 2%
  • 本文的 RLHF 数据集主要侧重于提高帮助性、无害性以及与人类偏好的一致性,同时与将在后续 Cascade RL 阶段中增强的领域保持不相交
raining Recipe
  • RLHF 帮助 LLM 更好地遵循用户意图并与人类偏好对齐
  • 观察:
    • 尽管本文 RLHF 数据集中不包含数学或代码相关的 Prompt,但 RLHF 提高了整体的生成质量
      • 有趣的是,还增强了数学和代码基准测试上的推理性能
    • RLHF 倾向于减少重复和冗长,从而压缩简单问题的思维 Token 数量
      • 这反过来又提高了后续 Math RL 和 Code RL 阶段的推理效率和训练稳定性
  • 基于上述观察,本文将 Cascade RL 流程设计为从 RLHF 阶段开始
  • 本文 RLHF 训练从 SFT 检查点初始化,采用 GRPO 算法,并遵循 § 4.1.2 中的统一 RL 训练配置(例如, On-policy 、 Token-level 损失、无 KL 散度)
  • 对于专用的思维模型,在 Thinking 模式下执行 RLHF
  • 对于统一模型,在 Non-Thinking 模式和 Thinking 模式下都进行 RLHF 训练,在每个批次中平均分配 Prompt 给每种模式
    • 注:在 § 6.1 中提供了进一步的研究
Reward Function
  • RLHF 训练使用 RM 产生的奖励分数作为奖励函数
    • 具体做法:提取模型的答案,将其与相应的问题连接起来,应用奖励模型的聊天模板,并将格式化后的输入送入奖励模型以获得一个点式奖励分数
  • 对以 Non-Thinking 模式和 Thinking 模式运行的 LLM 采用不同的答案提取方式:
    • 对于 Non-Thinking 模式,直接提取助手角色之后的模型答案
    • 对于 Thinking 模式,排除推理轨迹,只提取思维过程之后的最终总结(即模型在 </think> Token 之后生成的内容)
      • 如果思维过程未能正确终止(即缺少 </think> Token),会将整个未完成的 Response 发送给奖励模型
        • 这种不完整的生成通常会获得较低的奖励分数,因为奖励模型没有针对未完成或未见过的推理轨迹进行训练,从而有效地惩罚了冗长或不完整的思维过程
  • 在训练中,在 RLHF 中对 8B 和 14B 模型都使用 12K 的最大 Response 长度,不应用过长过滤,这鼓励了更简洁的生成
  • 为了防止生成中的语言混合,当 Prompt 完全是英文,但生成的 Response(包括推理轨迹和总结)包含非英文 Token 时,会应用额外的惩罚
    • 注:由于来自奖励模型的奖励分数是无界的,本文自适应地将混合语言生成的奖励分配为本批次中最低分减 10 ,确保它们在 GRPO 算法下获得最低的相对分数,从而对 Code-Switching 行为施加强烈的惩罚
    • 不应用额外的 Reward Shaping 技术,因为 72B 奖励模型提供的奖励信号已经具有高质量
Hyperparameters
  • 对于本文 8B 和 14B 模型,在 RLHF 期间使用 12K 的最大 Response 长度,不应用过长过滤
    • 鼓励更简洁的生成
  • 使用 128 的 Batch Size,为每个 Prompt 生成 8 个 Rollout,温度为 0.6,top-p 值为 0.95
  • 采用学习率为 2e-6 的 AdamW (2014),并将熵损失系数和 KL 损失系数都设为 0
  • 训练大约需要 800 步
  • 注:更多训练超参数的详细信息参见附录 D(表 15)
Results after RLHF
  • RLHF 之后,8B 和 14B 模型的结果如表 4 所示
  • 可以观察到,除了 IFEval 之外,几乎所有基准测试都有显著提升
    • 主要原因是 RLHF 过程通过惩罚过长、冗长和重复的生成(尤其是 Thinking 模式)显著提高了 Response 质量
  • 对于 IFEval 性能下降,主要原因是
    • 1)RLHF 训练期间使用的 Prompt 与 IFEval 中的测试 Prompt 之间存在不可避免的语义重叠
    • 2)RLHF 中使用的奖励模型鼓励了人类偏好的 Response 质量,这可能与验证器评估的严格指令遵循约束相冲突
  • 作者相信,通过训练一个更强大的奖励模型(例如,一个大型生成式 RM (2025)),能够处理严格的指令遵循约束,可以缓解这个问题
    • 这里将此留作未来的工作
    • 理解:其实常用的方案是,同时训练 IFEval 方向的 Prompt(使用 RLVR 加强指令遵循能力) 和 General 的 Prompt
  • 本文将在下一小节中重新讨论这一点

IF-RL: Instruction-Following Reinforcement Learning

  • IF-RL 是确保 LLM 能够精确遵循人类指令的关键方面
  • 本文的 SFT 数据混合已经包含了指令遵循数据,这里应用带有可验证奖励的 IF-RL 进一步提高了指令遵循的准确性
Data Curation
  • 使用来自 Llama-Nemotron (2025) 的指令遵循数据集,该数据集由综合生成的 Prompt 组成,包含从 IFEval 分类法 (2023) 衍生出的一到十个详细的指令约束
    • 但是,由于其合成性质,该数据集存在噪声
  • 为了提高整体质量
    • 本文进行了广泛的预处理和过滤,将 56K 个样本减少到 40K 个高质量样本
  • 还额外整理了 60K 个自定义数据样本,以增强数据混合的多样性
    • 使用了 LMSYS-Chat-1M (2023) 中的用户 Prompt,并结合了 IFEval 分类法中的各种指令约束
    • 整合了来自先前工作 (2025) 的 IF-RLVR 训练数据,该数据旨在增强对未见约束分类法的鲁棒性
      • 该数据集包含 Prompt 配对,这些指令约束要么来自 IFEval 分类法,要么来自 IF-Bench-Train 分类法 (2025),基础 Prompt 采样自 Tulu-3-SFT (2025)
Training Recipe
  • IF-RL 训练分两个阶段进行,每个阶段使用不同的数据混合,难度逐渐增加
    • 第一阶段专注于来自 IFEval 分类法的指令约束
    • 第二阶段专注于来自 IF-Bench-Train 分类法的约束
  • 发现:动态过滤 (2025) 在很大程度上稳定了 IF-RL 训练,并通过确保批次中的所有 Prompt 都具有有效的梯度,提高了两个阶段的结果
  • IF-RL 阶段的主要挑战之一是 IF-RL 可能对 RLHF 阶段获得的人类对齐能力(例如,通过 ArenaHard 衡量)产生负面影响
    • 在早期的实验中,使用基于规则的 IF 验证器作为奖励函数会降低人类对齐的结果
      • 这是因为基于规则的 IF 验证器只关注 Response 是否遵循了指令指定的约束,而不考虑整体的 Response 质量
      • 例如,一个写得不好的回答,只要其字数低于 300,仍然可以获得满分奖励(理解:这就是纯规则 IF RL 容易发生的问题)
  • 理解:上面提到了早期只使用 基于 规则的 IF 验证器容易发生 Reward Hacking,所以后期真实训练时(见下文),IF-RL 的训练都是使用的 RLVR + RLHF(RM) 的方式
Unified models: IF-RL in the non-thinking mode
  • 对于统一推理模型,一个有效的策略是:
    • 首先在 Thinking 模式和 Non-Thinking 模式下进行 RLHF,然后仅在 Non-Thinking 模式下应用 IF-RL
    • 这种方法最大限度地减少了 RLHF 和 IF-RL 之间的负面相互干扰 ,同时仍然在模型的 Thinking 模式指令遵循能力上取得了显著提升(即 8B 统一模型在 Thinking 模式下达到了 85.3 的 IFEval 分数)
    • 问题:为什么这种方式可以减少 干扰?
      • 不是很容易解释,更多可能是因为在 Thinking 模式下,使用 IF-RL 容易出现 Reward Hacking(出现的原因或许与当前模型的 Thinking 模式训练有关,也不一定是通用的 Insight)
    • 理解:虽然没有明确说明,但这里可以从上下文推测得到,训练时肯定是 RLVR + RLHF(RM) 的(详情见 Thinking Model 的奖励函数设计)
  • 本文作者推测:
    • 将 IF-RL 应用于经过 RLHF 训练的模型的 Non-Thinking 模式,比应用于 Thinking 模式产生低质量 Response 的可能性要小得多
      • 因此更不容易对基于规则的 IF 验证器进行 Reward Hacking
    • 理解:IF-RL 在 Thinking 模式上容易生成低质量的 Response,从而发生 Reward Hacking,但这个 Insight 不一定是通用的(可能仅仅在这个场景下能看到)
  • 本文也尝试过颠倒 RLHF 和 IF-RL 的顺序,但观察到的结果要差得多
  • 在第一阶段和第二阶段 IF-RL 训练中,将最大 Response 长度设置为 8K Token,并且不对统一推理模型应用过长过滤
    • 理解:不应用过长过滤的意思是,长的样本也会有梯度更新(往往是错误的样本,得到的是负分)
Thinking model: IF-RL with combined reward function
  • 另一种方法是在 IF-RL 中设计一个奖励函数,同时考虑人类偏好和精确的指令遵循能力
  • 对于专用的思维模型,这对于减轻 IF-RL 对 ArenaHard (2024) 等基准测试的负面影响至关重要
  • 结合来自基于规则的指令遵循验证器和人类偏好奖励模型的信号,实现了两全其美
  • 对于给定的 Prompt \( q \) 和一组生成的 Response \( \{o_i\}_{i=1}^{G} \),每个 Response \( o_i \) 的奖励定义如下:
    $$
    r_i = \begin{cases}
    R_{\text{IF} }(o_i) + \text{sigmoid}(\hat{R}_{\text{RM} }(o_i)), & \text{if } R_{\text{IF} }(o_i) = 1 \\
    0, & \text{otherwise}
    \end{cases}, \quad \text{Where } \hat{R}_{\text{RM} }(o_i) = \frac{R_{\text{RM} }(o_i) - \text{mean}(\{R_{\text{RM} }(o_i)\}_{i=1}^{G})}{\text{std}(\{R_{\text{RM} }(o_i)\}_{i=1}^{G})}
    $$
    • \( R_{\text{IF} }(o_i) \in \{0, 1\} \) 是指令遵循验证器的二元奖励(理解:基于规则的验证器)
    • \( \hat{R}_{\text{RM} }(o_i) \) 是来自 RLHF 阶段使用的相同奖励模型的组归一化奖励(均值为 0,标准差为 1)
    • 在归一化以后,再对 \( \hat{R}_{\text{RM} } \) 应用 Sigmoid 函数将其值缩放到 (0, 1) 范围,确保在聚合之前它与 \( R_{\text{IF} } \) 处于同一尺度
  • 使用结合后的奖励,按照 § 4.1.2 中描述的 GRPO 目标进行 IF-RL
    • 对于专用的思维模型:
      • 在第一阶段 IF-RL 训练中将最大 Response 长度设置为 8K Token 并应用过长过滤
      • 在第二阶段将其增加到 16K Token 并应用过长过滤(适应 Thinking 模式下困难 Prompt 所需的更长推理)
Hyperparameters
  • 对于 8B 和 14B 模型
    • 使用 128 的 Batch Size ,为每个 Prompt 采样 8 个 Response,温度为 0.6,top-p 为 0.95,top-k 为 20
    • 采用学习率为 2e-6 的 AdamW (2014),并将熵损失系数和 KL 损失系数都设为 0
  • 对于 Non-Thinking 模式的 IF-RL
    • 第一阶段训练大约需要 2000 步,第二阶段训练需要 1000 步
  • 对于 Thinking 模式的 IF-RL
    • 第一阶段训练大约需要 500 步,第二阶段训练需要大约 300 步
  • 更多训练超参数的详细信息请参见附录 D(表 16)
    • unified 模型始终不打开 Overlong Filtering,Thinking 模型的 2 阶段打开 Overlong Filtering
    • 理解:在不开启 Overlong Filtering 时,一般是直接截断(得到的奖励会偏低),此时倾向于惩罚长文本,开启 Overlong Filtering 时,意味着对模型输出的长文本没有鼓励也没有惩罚,处于中立状态
Results after IF-RL
  • IF-RL 后的结果如表 5 所示
    • 在对统一模型和专用思维模型应用改进技术后,IFEval 和 IFBench 有显著提升,而 ArenaHard 上的下降得到了控制
    • IF-RL 通常会降低模型熵并缩短推理 Token 的平均长度(参见图 8 的示例)
    • 负面影响:
      • IF-RL 确实在推理基准测试上引入了轻微的下降,尽管其中大部分(除了 ArenaHard)在随后的 Math RL、Code RL 和 SWE RL 阶段后都可以完全恢复
    • 积极影响:
      • IF-RL 压缩了推理轨迹并提高了 Token 效率
    • 总体来说:统一推理模型实现了比专用思维模型更强的平衡,在 ArenaHard 和 IFEval 上都提供了 Robust 的性能

Math RL

  • Math RL 阶段重点是通过强化学习来增强模型的数学推理和问题解决能力
  • 本文最终决定:将 Math RL 应用在 IF-RL 阶段之后
  • 注:将 Math RL 直接应用于 RLHF 检查点也产生了非常相似的结果(理解:这里的相似应该是指跟直接应用于 IF-RL 之后的检查点一样)
Data Curation
  • 主要使用 AceReason-Math 数据集(2025)并过滤掉过于简单的问题,保留了 18K 个高质量的数学问题用于 RL 训练
    • AceReason-Math 数据集融合了 DeepScaleR 组合(2024;2025;2024)和 NuminaMath(2024),涵盖了代数、几何、组合数学和数论等主题
  • 本文应用 9-gram 过滤来防止与常见数学基准(如 AIME 2024/2025 和 MATH (2021))的数据污染
  • 排除不适合使用基于符号规则验证进行 RL 的问题
    • 例如多项选择或判断题(答案容易被猜出)、证明题(难以验证正确性)、包含多个子问题的问题、非英语问题(会增加语言混合)以及引用图表的问题
  • 噪声数据去除:
    • NuminaMath 包含 OCR 和解析错误,每个问题都由 DeepSeek-R1 模型通过最多八次尝试进行验证
    • 基于规则的验证器仅保留那些通过多数投票得到正确答案的问题,而模棱两可或带有噪声的数据项则被丢弃
  • 移除简单问题:
    • 移除了那些 AceReason-Nemotron-7B(2025)在 16 次生成中能以 \(\geq 75%\) 的成功率解决的过于简单的问题
    • 数据集从原来的 49K 个问题减少到 14K 个问题
Training Recipe
  • 本节的目标是开发一个通用的数学 RL 配方,该配方可应用于不同的基础模型,并能高效地扩展到大规模的 RL 训练
  • 基于 AceReason-Nemotron(2025)的训练策略
    • 该策略在 GRPO 目标下严格遵守 on-policy 训练,完全移除 KL 正则化,并结合了长度扩展训练(length extension training)和动态过滤(dynamic filtering)来稳定优化
  • 从经过 RLHF 训练的模型初始化 Math RL 对于获得更好的性能起着至关重要的作用
    • 在整个开发周期中,本文将此训练配方应用于五个不同的 8B 检查点,并在 500 个 RL 步骤内始终在 AIME24 上达到约 \(90%\) 的准确率,证明了该方法在不同训练动态的模型中的鲁棒性
Initialization from models that have undergone RLHF,从经过 RLHF 训练的模型初始化
  • 作者早期探索了一种先应用 Math RL 和 Code RL,然后再应用 RLHF 和 IF-RL 的方法
    • 发现:从经过 RLHF 训练的模型初始化 Math RL 是非常有益的,因为
      • (i) 与 SFT 检查点相比,它提供了更强的初始数学推理能力
        • 在 RLHF 之后,响应质量得到显著提升,推理变得更加 Token 高效(例如,冗长和重复更少)
      • (ii) 它显著减少了数学 RL 训练所需的步骤数
  • 实践:在 RLHF 和 Math RL 之间插入了 IF-RL,因为 IF-RL 会降低模型熵并缩短推理轨迹 ,这可能会暂时损害与推理相关的基准性能
    • 在 IF-RL 之后应用高温度的 Math RL 和 Code RL 可以将模型熵恢复到正常水平
    • 理解:如果 IF-RL 放到 Math RL 和 Code RL 后面,可能不太合适,会导致推理有关的能力受损(熵降低严重)
Reward function
  • 奖励严格基于答案的正确性来分配,正确性通过提取跟在 <think> token 之后的 Boxed 答案(\boxed{})中
    • 使用 AceMath(2024)的基于规则的验证器进行验证(正确为 1,错误为 0)来确定
  • 语言混合惩罚:
    • 为了防止在推理过程中出现语言混合,每当在推理链中检测到与原始提示语言(例如英语)不同的语言(例如中文)的 token 时,应用一个 code-switching penalty ,分配一个 \(-1\) 的奖励
    • 理解:这里为什么叫做 code-switching 惩罚?推测这里的 Code 是语言?或者这里是指切换代码来计算惩罚?
      • anyway,这里可以确定的是多语言混杂时,直接给负分
Response length extension training,长度扩展训练
  • 性能提升的关键驱动力在于模型能够更深入地思考并生成更长的推理链
  • 本文采用了一个分阶段的响应长度扩展课程,配置为 \((24\text{K}\rightarrow 32\text{K}\rightarrow 40\text{K})\)
    • 其中每个阶段分别扮演着不同的角色:
      • 24K:压缩过长的推理
      • 32K:稳定推理长度
      • 40K:最终扩展更长的推理链
  • 从压缩阶段(即 24K)开始的一个关键好处是,可以将不同的初始模型带入一个一致的推理长度范围(在整个训练集上约为 16K),这使得后续的训练阶段能够在各种初始模型上有效工作,而无需 extensive 的超参数调整
    • 24K(压缩阶段 Compression Stage)
      • 首先使用 24K token 的预算进行训练,以解决在中小型 SFT 检查点中观察到的关键问题:
        • 这些模型倾向于生成过长的推理链,导致在 32K token 预算下,AIME 基准测试上的不完整比例(incomplete ratio)达到 \(15-20%\)
        • 这种过度生成浪费了 token,并且常常使解决方案不完整
      • 通过从较短的 24K 预算开始,鼓励模型压缩和完善其推理
        • 在此阶段,模型最初通常表现出非常高的不完整比例(\(30-50%\)),但在大约 100 步训练后,该比例在训练集上下降到约 \(15%\)
        • 特意应用了超长过滤(overlong filtering) (即,跳过超过 24K token 的生成,而不是分配 0 奖励),因为这样做可能会过度惩罚困难问题上的长推理,导致压缩期间性能急剧下降(2025),并在高不完整比例的情况下,由于奖励噪声而导致训练不稳定
    • 32K(扩展阶段 Extension Stage)
      • 推理链在 24K 上稳定下来后,将 token 预算扩展到 32K
      • 从 24K 阶段出来的检查点在 token 使用效率方面差异很大:
        • 有些以低至 \(5%\) 的不完整比例开始 32K 阶段,另一些则在 \(10%\) 左右徘徊
        • 理解:存在部分超过 32K 的样本
      • 这种可变性促使我们将 32K 阶段视为一个受控的扩展阶段
        • 在此阶段,不应用超长过滤来将推理长度正则化以适应 32K 上下文(即为超长生成分配 0 奖励)
        • 随着训练的进行,模型不仅适应了更大的预算,而且开始超越其初始准确率,反映了长度和正确性之间的平衡权衡
        • 理解:惩罚超过 32K 的样本
    • 40K(长推理阶段 Long Reasoning Stage)
      • 在 32K 训练之后,模型在 AIME24/25 上的简单和中等问题的准确率几乎饱和(分别达到 \(99%\) 和 \(85%\)),但困难问题仍然具有挑战性,准确率停滞在 \(30%\) 以下
      • 注:本文评估是在 64K token 预算下进行的,即使使用 YARN 长度扩展(因子为 2),模型也没有充分利用可用的上下文
        • 为了解决这个差距,进一步将模型推进到最终的 40K 训练阶段
        • 这种扩展明确地激励模型在推理过程中利用更多的 token
      • 结果,困难 AIME 问题的性能从 30% 显著提高到 \(40%\),而其他问题的性能则保持在较高水平
Dynamic filtering
  • 本文在所有数学 RL 实验中固定了一个种子数据集(For 简化开发)
    • 由于模型能力各不相同,当使用组归一化优势函数时,过于简单或无法解决的问题无法提供有效的策略梯度信号
    • 在每个 epoch 之后,根据该 epoch RL 训练的验证结果,过滤掉那些达到 \(100%\) 或 \(0%\) 准确率的问题
      • 被过滤掉的困难问题会以 \(10%\) 的概率重新采样回数据集中 ,因为策略可能在同一个 epoch 内的后续更新中学会解决这些问题
      • 被过滤掉的简单问题会以 \(1%\) 的概率重新采样回数据集中以稳定训练 ,因为策略可能会在一个 epoch 内忘记如何解决它们
    • Dynamic Filtering 确保了大约 \(90%\) 的训练样本提供有意义的学习信号,并显著稳定了训练期间的模型准确率,尤其是在更多问题被 \(100%\) 解决的后期训练阶段
  • 注:这种基于 epoch 的动态过滤可以被视为 基于批次的动态采样 (2025;2025)的一种更高效的替代方案
    • 因为 基于批次的动态采样 需要大量的 rollouts 来构建一个没有过于简单或无法解决的 prompts 的固定大小的批次
    • 理解:这种做法下,批次内部是不做样本过滤的,如果 epoch 过大,可能会导致同一个 epoch 内部训练到后面问题都非常容易解决了,且跟数据集和模型表现有非常大的关系
      • 例如:如果 Rollout Batch Size 为 256 时
        • 常规的 Batch 粒度 Dynamic Filtering 会采样 2-3 倍的 Prompt 来做 Rollout,避免过滤后样本不够 256
        • 但本文的基于 Epoch 粒度的 Dynamic Filtering 可能会直接采样 256 个 Prompt,若 50% 以上都是简单题(100% 做对),那么真实有梯度的 Prompt 不到 128,波动会比较大吧
      • 建议:Batch 粒度 Dynamic Filtering + Epoch 粒度的 Dynamic Filtering 结合使用!更好的解决问题
Hyperparameters
  • 使用 128 的 batch size,每个 prompt 采样 8 个 rollouts,Temperature 为 1,top-p 为 0.95
  • 采用学习率为 \(2 \text{或} 2.5 \times 10^{- 6}\) 的 AdamW(Kingma,2014)优化器,并将熵损失系数和 KL 损失系数都设置为 0
  • 每个训练阶段大约需要 100 到 200 步,具体取决于 clip-ratio 达到 \(10%\) 的速度
    • 理解:这里的 Clip-ratio 应该是指训练长度?
  • 对于 8B 模型,采用了三个阶段的训练
    • 长度从 \(24 \text{K} \rightarrow 32 \text{K} \rightarrow 40 \text{K}\) 扩展
  • 对于 14B 模型,由于初始策略已经达到了高准确率,以 28K 的最大 token 长度开始,以避免在第一阶段出现准确率下降,然后直接扩展到 40K
  • 更多训练超参数的详细信息见附录 D(表 17 和 表 18)
Results after Math RL
  • 者通过追踪 8B 统一模型在 AIME24 和 AIME25 上的性能来监控其 Math RL 的训练动态,如图 4 所示
  • Math RL 之后的结果呈现在表 6 中
  • 在 AIME 2024 和 2025 上有了显著的提升
    • Math RL 对知识推理和对齐基准的影响最小
      • 观察到的大部分差异可归因于评估方差和检查点选择
    • Math RL 改进了包括 LiveCodeBench 和 SWE 在内的编码基准
      • 注:尽管提升幅度不如 AceReason-Nemotron(2025)中报告的那样显著,但这很大程度上是因为本文起始模型在 Math RL 之前已经表现出了强大的通用推理能力

Code RL

  • Code RL 的重点是通过强化学习来提高模型在竞争性编程(competitive programming)方面的性能
  • 本文将 Code RL 应用于 Math RL 之后获得的模型检查点
Data Curation
  • 基于 AceReason-Nemotron 编程语料库(2025)构建 Code RL 训练数据集
    • 该语料库主要从包含单元测试的开源数据集中筛选而来,包括 TACO(2023)、APPS(2021)、DeepCoder(2025)等
  • 这些问题涵盖了现代竞争性编程中常见的广泛算法主题
    • 应用严格的过滤规则,排除与标准输出比较不兼容的问题(例如,交互式格式或需要特殊评测机的问题),以及单元测试对边界和边缘情况覆盖不足的问题
    • 此过滤过程显著减少了训练期间已知会降低 Code RL 性能的假阳性和假阴性奖励信号(2025)
  • 重复 & 污染:
    • 使用 9-gram 过滤和原始问题 URL 匹配
    • 校准问题难度
      • 简单问题排除:采用 AceReason-Nemotron-7B(NVIDIA,2025)排除 Trivial 问题(在 8 次 rollouts 中全部解决)
      • 复杂问题排除:使用 DeepSeek-R1-0528(DeepSeek-AI,2025)过滤掉难以处理或过于困难的问题(在 8 次 rollouts 中均未解决)
  • 最终得到 9.8K 个样本的训练集
Training Recipe
  • 在 Math RL 之后进行 Code RL,因为 Math RL 阶段可以作为有效的预热,稳定未来的 RL 训练并增强模型的通用推理能力(2025)
  • 遵循 AceReason-Nemotron 的配方,从最终的 Math-RL 模型检查点初始化,执行单阶段、on-policy 的 Code RL(无 KL 正则化,使用第 4.1.2 节中描述的 Token-level 损失)
  • 在训练期间,最大响应长度设置在 44K-48K 范围内,不应用超长过滤
Reward function
  • Code RL 采用严格的基于规则的二元奖励函数
    • 只有当生成的代码通过给定问题的所有测试用例时,才分配 1 的奖励 ;否则,分配 0 的奖励
  • 采用 AceReason Evaluation Toolkit 中的并行代码验证器来验证模型生成代码的正确性(进行高效且鲁棒的评估)
  • 在 VeRL(2024)中应用异步奖励计算 ,因为代码验证会产生显著的开销
    • 异步计算大大减少了每个批次的平均代码验证时间
    • 例如,在 8 个 DGX H100 节点上训练 Code RL,batch size 为 128,rollout 为 8 时,验证时间从 1172.4 秒下降到 416.2 秒
  • 与 Math RL 类似,也应用 Code-Switching 惩罚
    • 只要在推理轨迹中检测到与原始提示语言不同的语言的 token,就分配 0 的奖励(注:Math RL 中使用的 -1 奖励)
    • 注:与 Math RL 不同的是,对 Code-Switching 分配 \(-1\) 的奖励会对编程性能产生负面影响
      • 作者推测:可能是因为当组中所有 rollouts 要么不正确,要么包含语言混合时,额外的惩罚会促使模型在 GRPO 训练中产生没有 Code-Switching 的错误答案
      • 问题:有没有可能是信号检测不准确,比如中文注释 + 英文代码被错误检测为有问题?
Hyperparameter
  • batch size 设置为 128,使用 AdamW 优化器,学习率为 \(4\times 10^{- 6}\),每个训练 prompt 使用 8 个 rollouts
  • 将采样温度设置为 1.0,top_p 设置为 0.95,注:(Code RL 对温度配置很敏感)
  • 详细的超参数见附录 D(表 19)
Results after Code RL
  • Code RL 之后的结果呈现在表 7 中
  • 在 LiveCodeBench (LCB) 上取得了显著的提升
    • 统一 8B 模型在 LCB v5 上达到 75.3,在 LCB v6 上达到 71.5,与 DeepSeek-R1-0528 (671B) 的性能(分别为 74.8 和 73.3)相当
    • 14B-Thinking 模型在 LCB v5 上达到 78.0,在 LCB v6 上达到 74.8,以明显的优势超过了 DeepSeek-R1-0528
    • 注:DeepSeek-R1-0528 (671B) 是在 SFT 期间使用的教师模型,这些结果突显了 Cascade RL 在增强代码推理能力方面的显著效果
      • 且即使对于小型的 8B 和 14B 模型也是如此
    • 除了正常的检查点和评估方差外,Code RL 对其他领域的基准测试影响很小
      • 注:对于 IFBench 和 IFEval 的影响还是不小的
  • 注:Nemotron-Cascade 模型卓越的编程能力将在第 5 节中进一步检验

SWE RL

  • 3.3.2 节中构建 SWE SFT 数据时,采用了 Agentless 框架来处理 SWE-bench(2023),将 SWE 任务分解为三个子任务:
    • 定位(localization)、修复(repair)和补丁验证(patch validation)
    • 然后分别为每个子任务构建了 SFT 数据
  • 在以上这些子任务中,代码修复是最关键的,需要最高水平的推理和模型能力来生成修正错误并解决根本问题的修订代码补丁
    • 本节 SWE RL 主要目标是提高代码修复的准确性
Data Curation
  • 如第 3.3.2 节所述,用于代码修复的 RL 数据集由比 SFT 阶段更具挑战性的实例组成
  • 具体做法:
    • 保留有难度,但不是无法解决的
      • 在八个采样响应中少于四个响应超过 0.5 相似度阈值
        • 问题:这里的相似度是与 参考代码修复片段 的相似度?为什么不是直接验证修复的准确性
        • 回答:后面 Reward function 小节会提到,作者做的是不需要 Docker 验证器的训练,Reward 是相似度而不是执行结果,这样可大幅提升训练效率
          • 吐槽:应该就是 Docker 环境太难搞了
      • 同时至少有一个来自 DeepSeek-R1-0528(DeepSeek-AI,2025)的响应获得非零相似度(表明该 prompt 不是太难或无法解决)的 prompts
  • 在 SFT 阶段
    • 模型使用最大总序列长度为 32K 进行微调
    • 构建的 prompts 仅包含真实定位文件(ground-truth localization files),作为代码修复的参考
      • 即包含错误或需要进行修改以解决问题的所有文件
    • 但当在 Agentless 框架下评估模型性能时,向模型提供从定位阶段检索到的文件内容作为代码修复的输入
      • 这种设置在 SFT 训练和最终评估之间引入了差异
      • 为了确保真实定位文件被包含在修复 prompts 中,整合了 top-\(k\) \((k \geq 4)\) 个定位文件,并使用 YaRN 缩放因子 3 将最大 prompt 长度扩展到 60K
  • 这种设计给 SFT 模型带来了两种 OOD 的上下文:
    • (i) 代码修复期间的总输入长度超过了 SFT 中使用的最大序列长度
    • (ii) 包含 top-\(k\) 个定位文件可能会引入不相关的文件,使得代码修复任务比 SFT 期间更具挑战性
  • 为了解决这个问题,为 RL 训练构建并组合了两个长 prompts(最长 \(l\) 个 token)的子集:
    • 1)仅真实数据(Ground-truth only) :与 SFT 类似,使用仅包含真实定位文件的 prompts 进行构建
    • 2)混合定位(Mixed localization) :使用 DeepSeek-R1-0528 定位的文件和真实定位文件共同构建增强的 prompts
      • 总共包含最多五个文件,并确保所有真实文件都存在
      • 具体做法:
        • 初始 prompt 仅包含真实文件
        • 然后逐个添加噪声文件,直到总 prompt 长度会超过 \(l\)
        • 如果在添加任何噪声文件之前就超过限制,则丢弃该实例
        • 为了增强鲁棒性,随机化每个 prompt 中文件的顺序
  • 为了进一步提高训练效率,对于这两个子集,都丢弃总长度短于 8K token 的 prompts
  • 在第 7.3 节中,将对不同 \(l\) 下的 RL 训练效果进行消融实验
Training Recipe
  • SWE RL 是 Cascade RL 的最后阶段,因为它与通用领域相比是一个更专门的任务
  • 从 Code RL 之后获得的检查点开始,使用 GRPO 算法进行 on-policy RL,采用 Token-level 损失,同时移除了 KL 正则化(详细配置见第 4.1.2 节)
Reward function
  • 先前其他工作(2025;2025)通过在执行模型生成的代码补丁在 Docker 环境中来获取奖励
    • 运行和管理大量的 Docker 实例显著限制了可扩展性,限制了先前工作在约 10K 个独特实例的训练数据集上
  • 为了克服这个限制,本文作者设计了一个 Execution-free Verifier 作为奖励模型,使得代码修复生成的规模化 RL 训练成为可能
    • 将奖励 \(r\) 定义为生成的补丁 \(\hat{p}\) 与人工标注的真实补丁 \(p^*\) 之间的相似度:
      $$r(\hat{p},p^*) = \begin{cases}1, & \text{if } s_{\text{lex} }(\hat{p},p^*) = 1,\\ 0, & \hat{p}\text{ is identical to the original code snippet }\\ -1, & \text{if } \hat{p}\text{ cannot be parsed },\\ s_{\text{sem} }(\hat{p},p^*), & \text{ otherwise }, \end{cases} \tag {2}$$
      • \(s_{\text{lex} }(\hat{p},p^{*})\) 表示使用 Unidiff 库(遵循 Wei 等人 (2025) 的方法)计算的词汇相似度(lexical similarity)
      • \(s_{\text{sem} }(\hat{p},p^{*})\) 表示由 LLM 生成的语义相似度(semantic similarity)分数
    • 具体做法:
      • 使用一个是/否问题来提示 Kimi-Dev-72B 模型(Kimi-2025),以评估生成的补丁与 golden 补丁之间的语义相似度(见附录 C.2 中的奖励建模 prompt)
      • 分配给 “YES” token 的概率直接用作奖励分数
      • 当生成的补丁与 golden patch 完全相同时,给 1 奖励
      • 当模型生成的补丁无法解析时,分配 \(-1\) 的奖励
      • 当生成的补丁与原始代码片段完全相同时,分配 0 的奖励
        • 问题:为什么完全相同分配时,分配的是 0 奖励?应该是 1 奖励吧?
        • 理解:这里与原始代码相同,是指没有进行任何修改,此时给 0 奖励
      • 关于奖励函数的消融研究,请参阅第 7.2 节
Multi-stage RL training for input context extension
  • 初步实验研究表明,输入上下文长度与 SWE 任务性能之间存在强烈的正相关关系
    • 具体内容:包含更多用于分析的检索文件可以带来显著的性能提升
  • 以上这一发现激发了本文训练策略的设计
    • 该策略通过受控的上下文扩展来利用这种关系
  • 为在保持训练稳定性的同时优化扩展上下文的利用,本文实施了一个精心设计的两阶段课程,将输入上下文长度从 16K 逐步扩展到 24K token,同时保持 16K token 的恒定输出长度
    • 这种方法确保了鲁棒的学习,并避免了立即进行长上下文训练所观察到的性能下降效应,这对于较小的模型尤其有效,因为较小的模型的长上下文能力有限
    • 16K 上下文初始化(热身阶段 Warmup Stage)
      • 训练过程从保守的 16K 输入 token 预算开始,这作为一个重要的热身阶段
      • 注:直接用 24K 上下文长度初始化训练会导致次优的收敛和最终性能下降
        • 作者将此现象归因于模型最初难以在扩展的序列上进行信息关注和整合
        • 问题:这里的上下文不是指生成, 而是指输入吧?
      • 在此阶段,模型学习基本的长上下文利用技能,并在一个可管理的上下文窗口内为多文件分析开发稳定的注意力机制
    • 24K 上下文扩展(24K Context Extension)
      • 16K 设置达到奖励平台期后(即在连续迭代中几乎没有改进时),将上下文扩展到 24K token
      • 这个转换的时机很重要:模型已经在 16K 上建立了强大的多文件分析技能,为扩展到更长上下文形成了坚实的基础
      • 在扩展阶段,长上下文理解的稳定提升,包括更高级的跨文件推理和跨检索文件信息合成的改进
      • 该模型展现出越来越熟练地利用扩展上下文窗口的能力,有效地使用额外的检索文件来产生更准确的解决方案
Hyperparameters
  • 设置 batch size 为 128,使用 AdamW 优化器,学习率为 \(2.5 \times 10^{- 6}\)
  • 对于每个 prompt,生成 16 个 rollouts,采样 Temperature 为 1,并设置最大响应长度为 16K
  • 对达到最大响应长度的轨迹应用超长过滤
  • 详细的超参数见附录 D(表 20)
Results after SWE RL
  • 应用 SWE RL 后的结果显示在表 8 中
  • SWE RL 在 SWE-bench Verified 上带来了显著的提升,同时它对其他领域基准的正面或负面影响很小
  • 在完整的 Cascade RL 过程之后,专用的 8B thinking SFT 模型和 8B 统一 SFT 模型之间在 SWE-bench Verified 上的性能差距
    • 表 2(SFT)中的 30.2 对比 26.1 在很大程度上得到了缓解(38.5 对比 37.2)
    • 统一的 Nemotron-Cascade-8B 在所有与推理相关的任务上表现与 Nemotron-Cascade-8B-Thinking 相当,同时在指令跟随任务上表现明显更好
    • 理解:
      • 这个差距在 RLHF 后进一步放大
      • 主要 Gap 在 IF-RL、 Math RL、Code RL 阶段和 SWE RL 阶段 均有不同程度的缩小,特别是 Math RL 阶段缩小很多

Deep Dive on Competitive Coding

  • 在具有挑战性的竞争性编程基准测试上评估了本文的 Nemotron-Cascade 模型的性能,包括
    • LiveCodeBench (2024),其中包含近期发布的 AtCoder 和 LeetCode 问题
    • LiveCodeBench Pro (2025),其中包含新发布的 Codeforces 问题
  • 为避免基准测试污染,仅报告训练数据截止日期(2024 年 8 月)之后发布的问题的准确率
    • 对于 LiveCodeBench,在子集 v5(2024 年 8 月 - 2025 年 2 月,279 个问题)和 v6(2024 年 8 月 - 2025 年 5 月,454 个问题)上进行评估
    • 对于 LiveCodeBench Pro,使用两个最新的子集:2025Q1(2025 年 1 月 - 2025 年 4 月,166 个问题)和 2025Q2(2025 年 4 月 - 2025 年 7 月,167 个问题)
  • 在 avg@8 设置下进行评估,思考预算为 64K tokens
  • 另外,还根据 LiveCodeBenchPro (2025Q1, 2025Q2) 拆分中的 51 轮 Codeforces 比赛评估了模型 ELO 分数
    • 关于 ELO 评级计算的更多细节和分析见附录 E
  • 如表 9 所示
    • Nemotron-Cascade 模型在多个竞争性编程基准测试中展现出强劲的性能,包括最新的 LiveCodeBench 和 LiveCodeBench-Pro 拆分
    • Nemotron-Cascade-8B 显著优于几乎所有近期发布的、规模相当的理由 LLM,并达到了与先前 SOTA 蒸馏模型 OpenReasoning-Nemotron-32B (2025) 相当的性能,尽管其参数量要少得多
    • Nemotron-Cascade-14B-Thinking 模型在所有竞争性编程基准测试中甚至优于其 SFT 教师模型 DeepSeek-R1-0528、Qwen3-235B-A22B 和 Qwen3-Next-80B-A3B-Thinking,展示了 Cascade RL 的卓越有效性

Test-Time Scaling in Practice: IOI 2025,TTS 实践测试

  • 最具挑战性的竞争性编程竞赛之一:国际信息学奥林匹克竞赛 (IOI) 2025 上进行了评估
  • IOI 对每个问题最多允许 50 次提交,每次提交都有官方评判反馈,但没有明确限制用于构建这些提交的模型生成次数
  • 为了充分利用最强的 Nemotron-Cascade 模型的推理能力,部署了 Nemotron-Cascade-14B-Thinking,总思考预算为 128K tokens,并提出了一个反馈驱动的、测试时扩展流程如下
  • 整个流程可视为一个多轮 生成-选择-提交 的过程,每个问题最多进行 50 轮(每轮对应一次提交)
    • 在每一轮中,对于每个问题的每个子任务
      • 模型会使用不同的随机种子生成 20 个候选 Response
      • 然后过滤掉
        • (i) 不包含代码的不完整 Response
        • (ii) 生成的代码无法通过提供的示例测试用例(如果有的话)
      • 对于每个子任务剩余候选中,应用 Fu 等 (2025) 的 Tail-10 选择启发式方法来获得最终的高质量 Response,并将此 Response 提交给官方评判以获得判定结果和(对于部分得分任务的)分数
    • 每轮之后,更新每个子任务的生成 Prompt,加入来自官方评判的新反馈,以便后续的生成能够基于失败提交的历史记录
      • 具体方法:对于经典问题中的每个未解决子任务,将最多 5 个针对此子任务的最近提交代码及其对应的官方判定附加到下一轮的 Prompt 中
      • 将此历史缓存大小有意限制为 5,以避免过度拟合早期的失败尝试,同时仍鼓励模型分析并改进过去的错误尝试
      • 对于部分得分问题,则附加最多 3 个得分最高的先前提交,并鼓励模型持续改进得分
  • 除了提交历史,还引入跨子任务洞察:
    • 一旦一个子任务被解决,其正确的解决方案代码将作为洞察附加到 Prompt 中,用于提示模型解决同一问题的其他具有不同约束的未解决子任务
    • 这鼓励模型推理约束之间的关系,并在子任务之间传递有效的洞察
    • 完整的 Prompt 模板见附录 C.3
  • 凭借这种有效且显式自我改进的测试时扩展策略
    • 14B-Thinking 模型在 IOI 2025 上取得了 343.37 的总分,对应一枚银牌,每个问题的生成次数最多为 1000 次(20 代 × 50 轮),且每个问题的官方提交不超过 50 次
    • 在 IOI 2025 问题 2 Triples 上,该问题包含一个需要提出并迭代优化构造算法的构造性子任务,本文流程取得了 90.37 分,超过了 OpenAI 的内部 IOI-gold 模型 (75.29 分) 和 DeepSeek-V3.2-Speciale (82 分) (2025)
    • 这个实验在真实的、高风险的竞争性编程问题上证明了作者反馈驱动的、自我进化的测试时扩展方法的有效性
  • 图 5 中展示了本文轮次进展

The Role of Training Temperature in Code RL,训练温度在 Code RL 中的作用

  • 为了确定 Code RL 训练的最合适温度,在 8B 统一模型上使用 0.6、0.8 和 1.0 的温度进行了消融实验(RL 曲线如图 6 所示)
  • 虽然较低的温度产生更稳定的熵曲线,但与较高温度设置相比,它们导致代码推理性能下降
  • 这种模式表明,在诸如代码生成这样的大规模、有噪声的采样空间中,较高的温度在有限的 Rollout 预算下鼓励探索并提高样本效率
  • 注:高温也可能导致训练不稳定,引发熵爆炸
  • 设计能够保留高温采样优势同时确保熵稳定性的训练框架是一个有前景的未来工作方向

How Cascade RL Improves Code Reasoning,Cascade RL 如何改进代码推理

  • 为评估 Cascade RL 流程的逐步有效性,分析了在连续的级联 RL 阶段(SFT、RLHF、IF-RL、Math RL 和 Code RL)之后,统一 8B 模型在 LiveCodeBench v6 的每个难度划分上的平均推理 Token 使用量和模型准确率(图 8)
    • 初始的 RLHF 阶段提供了坚实的基础:
      • 显著提高了推理 Token 效率,并通过大幅减少推理 Token 数量以及在所有难度划分上显著提高准确率,缓解了 SFT 模型的冗长问题
    • 随后的 IF-RL 阶段进一步鼓励简洁性,使得 Token 使用量额外减少了 \(20%\),而准确率仅出现可忽略的下降 \((0.5%)\)
    • 在初始阶段之后,简单问题的性能趋于饱和(\(>99%\)),从而将改进空间转移到中等和困难划分上
    • Math RL 通过增加 Token 使用量来增强推理能力,提高了中等问题的准确率
    • Code-RL 则通过大幅扩展推理轨迹,在中等和困难问题上都提供了最终的性能提升
  • 消融实验:分析 Cascade RL 如何在主题层面提升编码能力
    • 用五个子类别(数学、字符串、图、数据结构、几何)对 LiveCodeBench v6 的问题进行了标注,并在图 7 中报告了作者的统一 8B 模型在每个 Cascade RL 阶段后的主题准确率
    • RLHF 在所有子类别上都提供了强劲的初始增益
    • Math RL 主要有利于与数学相关的主题(数学、图、几何),Math RL 在更多面向计算机科学的主题(字符串、数据结构)上提升有限
    • Code RL 提供了最大的准确率提升,几乎所有主题的性能都得到了改善

Deep Dive on RLHF

  • 本节展示了关于选择有效奖励模型和设计稳健 RLHF 方法的研究发现
    • 发现1:使用最大奖励模型训练的 RLHF 在 ArenaHard 基准测试上产生了最强的性能,特别是在风格控制 (style control) (2024) 下,这有助于在 LLM Response 中区分实质内容和风格偏好
    • 发现2:
      • 较小的奖励模型倾向于产生噪声更大的奖励信号,需要额外的技术如 Reward Shaping 和 KL 正则化来保持训练稳定性
      • 对于较大的奖励模型,这些技术是不必要的:它们的奖励信号本身就足够准确和一致,能够实现稳定的 RLHF 训练并在其他任务上取得更好的性能

RLHF Training Strategies for Unified Models,面向统一模型的 RLHF 训练策略

  • 统一模型可以用思考模式和非思考模式进行响应,一个自然的研究问题出现了:
    • 应该使用哪种模式进行 RLHF 训练,尤其是在许多基准测试偏向思考模式的情况下?
  • 为了研究这一点,将 RLHF 应用于本文 8B 统一 SFT 模型(性能报告在表 2),使用与第 4.3.2 节描述相同的训练方法,但改变训练模式
  • 具体方法:
    • “Non-thinking” 设置在 RLHF 期间仅使用非思考模式
    • “Thinking” 设置仅使用思考模式
    • “Half-Half” 设置在每批中将 Prompt 平均分配给这两种模式
  • 如图 9 所示,揭示了一个明显的趋势:
    • ArenaHard、AIME 和 LiveCodeBench 都是在思考模式下评估的,但 “Half-Half” 训练设置提供了最强的整体性能,产生了最高的 ArenaHard 分数以及改进的数学和代码基准测试性能
    • 这表明:在 RLHF 期间包含非思考模式的样本可以改善跨模式迁移和对齐,从而在推理和非推理场景中都能获得更强的通用能力

Impact of Reward Model Size on RLHF Performance,奖励模型大小对 RLHF 性能的影响

  • 本文训练了一系列从 7B 到 72B 的奖励模型,并将第 4.3.2 节中描述的相同 RLHF 方法应用于 AceReason-Nemotron-1.0-7B 策略模型 (2025)
  • 图 10 中报告了 ArenaHard 分数以及在数学和代码基准测试上的性能
  • 主要发现总结如下:
    • 1)更大的奖励模型产生更强的 ArenaHard 性能
      • 使用最大奖励模型训练的 RLHF 在风格控制 (2024) 下取得了最高的 ArenaHard 分数,该控制有助于在 ArenaHard 排行榜上区分实质内容和风格
      • 但 7B 奖励模型在是否启用风格控制时存在巨大差距
        • 这表明 7B 奖励模型容易出现 Reward Hacking ,例如,主要通过增加 Response 长度来提高 ArenaHard 分数
      • 检查了 RLHF 训练曲线结果:
        • 使用 7B 奖励模型的 RLHF 倾向于通过生成更长的输出以提高奖励分数,而使用 72B 奖励模型的训练则产生更稳定的 Response 长度
      • 注意:Arena Hard without style control 的分数不能直接参考,因为模型可能是通过输出很长的文本来获取高分的(比如 7B 奖励模型就输出很长的 Response 来实现)
        • 忽略 灰色线,看红色线(with Style Control)的话,整体趋势还是越大的 RM 越好
        • 14B 提升到 32B 过程中出现了不同,推测是因为 RL 不稳定,容易发生 Reward Hacking 等导致波动
    • 2)RewardBench 是一个有用的代理指标,但并不总能预测 RLHF 质量
      • 虽然 RewardBench 分数总体上与奖励模型质量相关,但更高的 RewardBench 性能并不一定转化为更好的 ArenaHard 分数
      • 作者推测 RewardBench 相对饱和(通常高于 90),因此超出该水平的边际收益不会有意义地改善下游的有用性
      • 模型特定行为,例如对 Reward Hacking 的脆弱性,在决定 RLHF 有效性方面起着更决定性的作用
    • 3)更大的奖励模型也能提升其他任务(如数学)的性能
      • 使用 72B 奖励模型训练的 RLHF 比使用 7B 奖励模型训练的 AIME25 准确率高出约 \(3%\)
      • 对于代码基准测试,奖励模型的选择影响很小,性能差异在 \(1%\) 以内

Bag of Tricks for Stabilizing RLHF Training,稳定 RLHF 训练的技巧集

  • RL 算法对于实现长链式思维推理至关重要,但 RL 训练可能不稳定且容易早期崩溃
  • 在 RLHF 中,这个问题被进一步放大,因为训练依赖于可能有噪声或 OOD 的基于模型的奖励
  • 本节总结了一组能有效稳定 RLHF 训练的技术(“技巧集” “bag of tricks”):
    • 1)KL penalty loss :KL 惩罚损失约束 On-policy 与冻结的参考策略之间的散度,确保策略不会偏离初始模型太远
      • 当 RLHF 训练早期崩溃时,引入这个 KL 项是保持训练稳定性的有效方法
    • 2)策略梯度损失聚合 (Policy gradient loss aggregation) :标准 GRPO 使用 Sequence-level loss,即先对每个样本内的 Token-level 损失求平均,然后在整个批次上聚合
      • 对于长 CoT RL,通常推荐使用 Token-level 损失,即直接对批次中所有 Token 损失求平均
        • 特别注意:这里聊的是损失的归一化方式,不是 Advantage 的方式
      • 当 RLHF 出现早期崩溃迹象时,从 Token-level 损失切换到序列级损失有助于抑制 Response 长度的显著增加,并稳定训练
        • 理解:Sequence-level 平均的 Loss 在鼓励短的正样本和唱的负样本
    • 3)Reward Shaping :
      • 由于本文奖励模型是使用 Bradley-Terry 目标训练的,其原始奖励信号是无界的
      • 当使用无界奖励训练 RLHF 时,有噪声或离群的奖励可能导致训练不稳定
      • 需要使用 Reward Shaping 机制:
        • 对于每组奖励,计算平均值和标准差,然后通过减去平均值并除以标准差来归一化每个奖励,生成一个中心化和缩放后的奖励(理解:这个是 GRPO 自己的结果吧)
        • 最后应用 tanh 变换:将有形状的奖励限制在 \([-1,1]\) 范围内,有效减轻了组内离群值和噪声奖励信号的影响,从而带来更稳定的 RLHF 更新
  • 在早期使用 7B 奖励模型的 RLHF 实验中,应用这些“技巧集”技术显著提高了训练稳定性,将稳定 RL 步数从 350 步延长到 950 步,并获得了更好的 ArenaHard 分数(表 10)
  • 但当使用更强的奖励模型(例如 72B 奖励模型)时,RLHF 训练已经稳定,省略这些技术所带来的下游性能与使用它们相当,在某些情况下甚至略好,如表 11 所示
  • 本文的结论是,这些技术应被视为一个工具箱,仅在训练显示出不稳定迹象时部署
    • 否则,第 4.3.2 节中描述的 RLHF 方法就足够了

Deep Dive on SWE

  • 本节介绍针对 SWE 任务的改进技术,并提供相应的消融实验结果

Generation-Retrieval Approach for Code Localization,用于代码定位的生成-检索方法

  • 对于文件定位阶段,本文采用一种结合基于生成和基于检索方法的双重方法
    • 在基于生成的方法中,模型根据问题描述和仓库结构被引导去推断可能存在 bug 的文件,如附录 C.2 所示
    • 为了进一步增强此方法,聚合了多个 Rollout 的结果,并根据候选文件出现的频率对其进行排序,频率越高的文件排名越靠前 (2023)
    • 问题:这种基于生成的方法只能访问仓库结构(即文件夹和文件名),而无法访问代码内容
  • 为了弥补这一点,本文采用了一个代码 Embedding 模型 NV-Embed-Code (2025),用于检索那些代码内容在语义上与问题上下文相似的候选文件
    • 然后通过使用倒数排名融合方法 (reciprocal rank fusion) (2009)(超参数 \(k\) 设为 0)聚合来自这两种方法的结果,确定最终的相关文件集,这有效地整合了两种定位信号的互补优势
  • 为了评估代码定位性能,本文测量了不同截断点(top-\(k\))的召回率
    • 具体方法:对于一个实例,如果所有需要进行修复的真实文件都出现在 top-\(k\) 个检索到的候选文件中,则定位被认为是成功的(召回率 \(=1\));否则,该实例的召回率定义为 0
  • 图 11 展示了不同方法在 SWE-bench 上的代码定位性能
    • 基于检索的方法优于基于生成的方法
      • 这种改进可能是因为基于检索的方法编码了每个仓库的完整源代码内容,而基于生成的方法在识别潜在相关文件时仅依赖于仓库结构
    • 当来自多个 Rollout 的结果被聚合时,基于生成的方法在 top 排名和更高排名上都表现出一致的提升
      • 这表明聚合不仅提高了 top 排名的准确性,还促进了代码定位中的排名多样性
    • 使用倒数排名融合将基于生成和基于检索的方法结合起来,会带来轻微的额外改进,尤其是在 cutoff 低于 5 的时候
      • 在所有的实验中,直接使用来自生成(16 个 Rollout)和基于检索的方法的倒数排名融合作为默认方法

Execution-Free Reward Model for SWE RL

  • 如 \(\S 4.7.2\) 所述,在代码修复 RL 训练中使用了一个由公式 (2) 定义的无执行奖励
    • 也就是说,给定一个人工编写的 Golden Patch,使用词汇相似度(使用 Unidiff 库计算 (2025))或由 Kimi-Dev-72B 模型生成的语义相似度分数,来计算其与模型生成的 Patch 之间的相似度
  • 在消融研究中比较了这两种计算相似度的方法
    • 从一个尚未进行数学和代码 RL 训练的中间 14B 模型(表 12 中的条件 0)开始,并使用不同的相似度分数作为奖励函数进行代码修复的 RL 训练
    • 遵循 \(\S 4.7.2\) 中的超参数设置,但将 Rollout 数量设置为 8,并且在奖励模型的消融实验中,使用最大 Prompt 长度为 24K 的训练数据
    • 在两种设置下评估训练后的模型:
      • i)当 Prompt 中提供了真实的定位文件时
      • ii)当通过生成-检索方法获得 top-4 个定位文件时
    • 对于基于语义相似度的奖励模型,直接应用公式 (2) 中定义的原始奖励函数
    • 对于词汇相似度,在此奖励函数中用 \(s_{\text{lex} }(\hat{p},p^{*})\) 替换 \(s_{\text{rem} }(\hat{p},p^{*})\)
  • 表 12 报告了在采样温度设为 0.6 的情况下,四次运行的平均解决率,以及 pass@4(如果一个实例在四次生成中至少有一次被成功修复,则认为该实例已被解决)
    • RL 训练通常能提高模型在代码修复上的有效性,并且使用语义相似度作为奖励模型比使用词汇相似度能获得更好的效果(条件 4 与 2 对比)
    • 对两个奖励模型都应用 Reward Shaping ,当奖励低于 0.5 时将其设置为 0
      • 这种调整提高了词汇相似度奖励模型的有效性(条件 2 与 1 对比),表明 Reward Shaping 有助于过滤掉噪声监督信号
      • 当词汇相似度低于 0.5 时,奖励往往为模型训练提供不可靠的指导
      • 当将 Reward Shaping 应用于语义相似度时,没有观察到同样的效果(条件 4 与 3 对比),这表明即使在代码相似度较低时,语义相似度仍能提供有意义的训练信号
        • 因此,将默认的奖励函数设置(表 12 中的条件 3)用于 SWE RL 训练
  • 总的来说,本文证明了使用基于 LLM 的无执行奖励模型是扩展 SWE RL 训练规模的一个有前景的方向
    • 注:奖励模型训练的探索留作未来的工作

Improving Long-Context Analysis,改进长上下文分析

  • 为确保 Prompt 包含所有有错误的代码 Patch,本文用来自多个检索文件的代码内容构成长 Prompt
    • 但初步研究表明,当输入 Prompt 长度超过 24K,同时 Response 长度为 16K 时,代码解决率会显著下降
    • 作者推测次优的代码解决率是由于 SFT 阶段使用的最大序列长度为 32K
      • 这是继承自 Qwen3-8B/14B-Base 模型的 32K 上下文窗口
    • 因此,在 RL 阶段,通过混合模型检索到的噪声文件和真实文件来创建具有更长 Prompt 的训练数据
  • 表 13 消融了使用不同最大 Prompt 长度创建的数据进行训练的效果(更多细节见 \(\S 4.7.1\))
    • 从 16K 到 32K,使用更长的 Prompt 进行训练有助于提高模型的修复能力
      • 本文将这种改进归因于模型处理更长上下文 Prompt 的能力,这在修复任务中尤其重要,因为在修复过程中,模型需要从所有检索到的代码内容中识别并修复有错误的代码 Patch
    • 但当将最大 Prompt 长度扩展到 40K 时,训练效果变差
      • 作者推测模型在这样的长 Prompt 下表现较差,导致采样的 Trajectory 包含更多 RL 训练的噪声,或者预训练的 Qwen3-14B-Base 在 32K 上下文外的长上下文能力有限
      • 因此训练数据,将最终 8B 和 14B 模型的最大 Prompt 长度分别设置为 24K 和 32K

Test-Time Scaling and Patch Validation,TTS 与 Patch 验证

  • 为进一步提高代码修复的准确性,本文采用了一种测试时扩展 (TTS) 策略,通过在推理过程中聚合和筛选多个候选 Patch 来增强模型性能
  • 如第 \(\S 3.3.1\) 节所述
    • 模型使用基于温度和 top-\(p\) 的解码生成一组多样化的候选修复 Patch 和复现测试
    • 然后每个候选 Patch 通过一个 Patch 验证阶段进行评估,该阶段应用回归测试和复现测试来识别最可靠的修复
  • 对于 SWE-bench Verified 基准测试
    • 本文的 TTS 流水线为每个实例生成 \(k\) 个候选修复 Patch 以及 40 个复现测试
    • 然后通过首先评估每个 Patch 通过了多少现有的回归测试
    • 接着执行一组精心挑选的生成的复现测试来识别最有希望的修复 (理解:这里的复现测试是基于代码的测试用例?),从而对这些候选 Patch 进行筛选和排序
  • 最终选择综合通过率最高的 Patch,如果出现平局,则首先通过多数投票解决,然后选择解决方案长度最短的。作者将这种排序和选择过程称为 best@k。这种方法拓宽了解决方案的搜索空间,通过探索多个推理 Trajectory 增强了鲁棒性,并显著增加了产生正确修复的可能性
  • 图 12 展示了 (a) Nemotron-Cascade-8B 和 (b) Nemotron-Cascade-14B-Thinking 在 SWE-bench Verified 上使用 TTS 结合本文 Patch 验证流水线的评估结果
    • 图 12 绘制了 pass@k, majority@k 和 best@k 在 \(k \in 2, 4, 8, 12, 16, 24, 32\) 上的结果
      • Pass@k 随着 \(k\) 的增加单调提升,而多数投票增长较慢且较早饱和
      • Best@k 始终以显著优势优于 majority@k,证明了本文 Patch 验证流水线的有效性
    • 对于 Nemotron-Cascade-14B-Thinking,所有指标的改进更为显著,反映了更强的推理能力和生成的修复 Patch 的更大多样性
    • 总结:Nemotron-Cascade-8B 和 Nemotron-Cascade-14B-Thinking 都从 TTS 策略中受益匪浅,14B 模型取得了与更大的开放权重模型(如 DeepSWE (2025))竞争的结果(解决率:通过使用基于执行的验证器执行 TTS 达到 \(52.4%\))
    • 这些增益表明,下游的筛选和验证仍然是提升 Patch 修复性能的强大机制,而无需修改模型权重
  • 如图 12(a) 所示
    • Nemotron-Cascade-8B 在 \(k = 32\) 时达到了 \(43.6%\) 的 best@32 解决率,从 \(k = 2\) 时的 \(39.2%\) 逐步提升
    • 通过 TTS 和 Patch 验证,Nemotron-Cascade-8B 在 \(k = 32\) 时达到了 \(57.7%\) 的 pass@k 分数,表明存在 15.6 个百分点的差距,这反映了朝着 best@32 还有额外的改进空间
    • 多数投票提供了一个更简单的替代方案,但在 39-40% 左右趋于平稳,随着 \(k\) 的增加仅显示出边际收益
    • 这些结果表明,即使是对于较小的模型,结构化的测试时扩展与验证相结合也能显著提高修复准确性
  • 如图 12(b) 所示
    • Nemotron-Cascade-14B-Thinking 的整体指标提升更为显著
    • Nemotron-Cascade-14B-Thinking 的 majority@k 解决率起始为 \(50.7%\),已经超过了 8B 变体的 best@32 分数 \(43.6%\)
    • 在 TTS 策略下,best@k 提供了进一步的提升,在 \(53.8%\) 左右趋于平稳
    • pass@k 曲线随着 \(k\) 的增加而继续上升,突显了为 14B 模型开发更有效的 TTS 策略的巨大潜力

补充:Related Work

Reinforcement Learning for LLMs

  • 与需要高质量且昂贵标注的 SFT 中的教师强制训练相比,RLHF 提供了一种更具成本效益和泛化能力的方法来捕捉人类意图的细微差别和语言表达的微妙之处
  • RLVR 采用客观且确定性的标准(例如,用于数学推理的基于符号规则的验证)来提供奖励信号
    • 已有使用公开数据集的开放 RLVR 配方被开发出来,例如 AceReason-Nemotron (2025; 2025), DeepScaleR (2025), DeepCoder (2025), DAPO (2025) 和 Skywork-OR1 (2025)
    • 但这类开放配方的模型主要关注数学和代码推理,与通用前沿模型不同
  • 通用 DeepSeek-R1 和 Qwen3 的 RL 训练遵循两个阶段的过程:
    • 初始的面向推理的 RL 阶段,随后是覆盖所有域的第二阶段
    • 在每个阶段,都会使用多样化的 Prompt 进行联合训练
      • 但由于任务之间的巨大异质性,这种设计使 RL 基础设施、训练课程和超参数调整变得复杂,最终导致性能次优
  • 本文提出了 Cascade RL 框架,并发布了用于开发通用 LLM 的开放训练配方和数据集,这些 LLM 在包括数学、编码、科学、指令遵循、软件工程和通用领域在内的不同领域都具有强大的推理能力
    • 特别地,系统地研究了 RLHF 和 RLVR 之间的相互作用(这是现有文献中尚未充分探索的一个主题)

Supervised Fine-Tuning and Distillation

  • 本文还研究了 SFT 和 RL 之间的协同作用
  • 发现:在精心设计的 RL 过程中,只要在探索和利用之间达到适当的平衡,初始 SFT 模型之间的性能差距会显著缩小
    • 理解:开始的 SFT 可能有差异,经过 RL 后可能能补齐(比如 Unified 8B 和 Thinking 8B 模型)

Unified Reasoning Models

  • 过去的一年中,许多专用的思考模型 (thinking models) 已经发布,包括 OpenAI 的 o1 (OpenAI, 2024), o3, o4-mini (OpenAI, 2025), DeepSeek-R1 (2025), Qwen3-Thinking (QwenTeam, 2025), MiniMax-M1 (2025), gpt-oss (2025) 和 Kimi-K2-Thinking (KimicTeam, 2025)
    • 这些模型强调通过生成长 CoT 进行深度推理 (2025),涉及问题分析、构思草图、列举替代解决策略,以及验证和修正答案
  • 近的几项工作旨在将指令模型 (instruct models) 和思考模型统一到一个模型中
    • Llama-Nemotron (2025) 通过系统 Prompt 实现对思考或指令模式的全局控制
    • Qwen3 (2025), GLM-4.5 (GLM-4.5-2025) 和 DeepSeek-V3.1 提供了更灵活的用户控制,允许在每个对话轮次中在思考和指令模式之间切换
    • GPT-5 (OpenAI, 2025) 采用了一种自动路由机制,绕过了而非解决了这一挑战

附录 B:Benchmarks and Evaluation Setups

  • 详情见原文附录

附录 C:Prompt Templates

C.1. Unpreferrable Response Generation for RM data,为 RM 数据生成 Unpreferrable Response

  • Step 1: Generate offtopic prompts

    1
    2
    3
    4
    5
    6
    7
    8
    Given an user input (called "given input"), please generate a new user input (called "generated input") such that:
    (1) The generated input is highly relevant to but different from the given input.
    (2) The correct response to the generated input superficially resembles the correct response to the given input as much as possible.
    (3) But actually, the correct response to the generated input should not be a correct response to the
    given input.
    Given input:
    {instruction}
    Generated input:
    • 步骤 1:生成偏离主题的 Prompt
      1
      2
      3
      4
      5
      6
      7
      8
      9
      给定一个用户输入(称为“给定输入”),请生成一个新的用户输入(称为“生成输入”),使得:

      (1) 生成的输入与给定输入高度相关但又有所不同
      (2) 对生成输入的正确 Response 应尽可能在外观上类似于对给定输入的正确 Response
      (3) 但实际上,对生成输入的正确 Response 不应对给定输入也是正确的 Response

      给定输入:{instruction}

      生成的输入:
  • 步骤 2:判断偏离主题的 Prompt 是否确实与原始 Prompt 不同 (Judge if the offopic prompts are really different to the original)

    1
    2
    3
    有两个指令,指令 A 和指令 B。这两个指令是否在询问相同的事情?请用‘YES’或‘NO’回答
    指令 A:{instruction A}
    指令 B:{instruction B}

C.2. Prompts and Templates for SWE Task

  • 代码定位 (Code Localization)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    请查看给定的 GitHub 问题和仓库结构,并提供为了解决问题需要编辑或查看的文件列表

    ### GitHub 问题描述 ###
    {problem_statement}
    ###

    ### 仓库结构 ###
    {structure}

    ###

    以下是一些代码片段,每个来自一个相关文件。这些文件中可能有一个或多个包含错误。仅提供完整路径并最多返回 n 个文件。返回的文件应按重要性从高到低排序,用换行分隔,并用 \`\`\` 包裹。例如:

    \`\`\`
    most/important/file1.xx
    less/important/file2.yy
    least/important/file3.zz
  • 代码修复 (Code Repair)

    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
    我们正在解决仓库中的以下问题。这是问题文本:
    BEGIN ISSUE
    {problem_statement}
    END ISSUE

    以下是一些代码片段,每个来自一个相关文件。这些文件中可能有一个或多个包含错误
    BEGIN FILE
    {content}
    END FILE

    请首先根据问题陈述定位错误,然后生成 SEARCH/REPLACE 编辑来修复问题
    每个 SEARCH/REPLACE 编辑必须使用以下格式:
    1. 以 '''diff\n 开始表示一个 diff 块,并以 ''' 结束整个块
    2. 文件路径
    3. 搜索块的开始:<<<< SEARCH
    4. 要在现有源代码中搜索的连续行块
    5. 分隔线:======
    6. 要替换到源代码中的行
    7. 替换块的结束:>>>> REPLACE

    这是一个例子:
    '''diff
    ###### mathweb/flask/app.py
    <<<<<< SEARCH
    from flask import Flask
    ======
    import math
    from flask import Flask
    >>>>>>> REPLACE
    '''

    请注意,SEARCH/REPLACE 编辑需要正确的缩进。如果您想添加行‘print(x)’,您必须完整写出,包括代码前的所有空格!将每个 SEARCH/REPLACE 编辑像上面例子中那样包装在一个代码块中。如果您有多个 SEARCH/REPLACE 编辑,请为每个编辑使用单独的代码块。输出格式要求:请将您的推理 Token 放在一个单独的代码块中,以 <think> 开始,以 </think> 结束,并将 Solution 令牌放在一个单独的代码块中,以 <solution> 开始,以 </solution> 结束
  • 测试代码生成 (Test Code Generation)

    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
    作者正在解决仓库中的以下问题。这是问题文本:
    BEGIN ISSUE
    {problem_statement}
    END ISSUE

    已经生成了几个候选修复补丁来解决这个问题。您必须仔细检查它们,并在创建测试时选择与问题描述最匹配的那个,以便专门验证应用补丁前后的行为:
    BEGIN PATCH
    {model_patch}
    END PATCH

    以下是一些代码片段,每个来自一个相关文件。这些文件中可能有一个或多个包含错误。
    BEGIN FILE
    {content}
    END FILE

    请生成一个完整的测试,可用于复现该问题
    完整的测试应包含以下内容:
    1. 包含所有必要的 imports
    2. 在应用补丁之前复现问题描述中的问题
    3. 测试修复补丁中修改的确切函数、类或行
    4. 包含断言或检查,以确认在没有补丁的情况下问题可以复现
    5. 包含断言或检查,以确认在应用补丁后问题已解决
    6. 使用与补丁更改相关联的有意义的断言(例如,预期输出、引发的异常或更改的返回值)
    7. 如果结果显示问题已复现,打印“Issue reproduced”
    8. 如果结果显示问题已成功解决,打印“Issue resolved”
    9. 如果结果显示源代码存在其他问题,打印“Other issues”
    测试不应该是通用的;它必须直接验证补丁的正确性
    这是一个例子:
    '''python
    from sqlfluff import lint
    def test__rules__std_L060_raised() -> None:
    try:
    sql = "SELECT IFNULL(NULL, 100), NVL(NULL,100);"
    result = lint(sql, rules=["L060"])
    assert len(result) == 2
    except:
    print("Other issues")
    return
    try:
    assert result[0]["description"] == "Use ’COALESCE’ instead of ’IFNULL’."
    assert result[1]["description"] == "Use ’COALESCE’ instead of ’NVL’."
    print("Issue resolved")
    except AssertionError:
    print("Issue reproduced")
    return
    return
    test_rules_std_L060_raised()
    '''
  • 奖励建模 (Reward Modeling)

    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
    **系统 Prompt (System Prompt)**
    您是一个评估 AI 助手交互的专家 Judge。您的任务是给定一个参考的 Golden Solution,判断 Assistant 是否成功解决了用户的请求

    关键评估标准:
    1. Assistant 是否完成了用户请求的主要任务?
    2. 最终 Solution 中是否存在任何错误或问题?

    仅用 "<judgement>YES</judgement>" 或 "<judgement>NO</judgement>" 回应

    **用户 Prompt (User Prompt)**
    作者正在解决仓库中的以下问题。这是问题文本:
    — BEGIN ISSUE —
    {problem_statement}
    — END ISSUE —

    以下是一些代码片段,每个来自一个相关文件。这些文件中可能有一个或多个包含错误
    — BEGIN FILE —
    {content}
    — END FILE —

    请首先根据问题陈述定位错误,然后生成 SEARCH/REPLACE 编辑来修复问题
    1. 以 "diff\n" 开始表示一个 diff 块,并以 "" 结束整个块
    2. 文件路径
    3. 搜索块的开始:<<< SEARCH
    4. 要在现有源代码中搜索的连续行块
    5. 分隔线:=====
    6. 要替换到源代码中的行
    7. 替换块的结束:>>> REPLACE
    这是参考的 Golden git diff Solution:
    {golden_patch}
    这是 Assistant 的 Solution:
    {model_patch}

    请比较 Assistant 的 Solution 和参考的 Golden git diff Solution,并判断 Assistant 的 Solution 是否成功解决了问题。请注意,Solution 不需要与参考的 Golden Solution 完全相同。运用你自己的知识来判断 Assistant 的 Solution 是否成功解决了问题。用 "<judgement>YES</judgement>" 或 "<judgement>NO</judgement>" 回应

C.3. Prompt Templates for Test-Time Scaling on IOI 2025,IOI 2025 上 TTS 的 Prompt 模板

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
Write Python code to solve the problem. Please place the solution code in the following format:
“‘python
# Your solution code here
“‘
{problem_statement}
Below you are provided the accepted correct solutions but with different input constraints. You may use
them as a reference for your insights.
=======================
## Different Constraints (for reference only):
{subtask_constraints}
### Accepted Code:
[CODE]
=======================
## Different Constraints (for reference only):
...
=======================
From here, you are also given your submission history containing **incorrect** code and their corresponding official judgement verdicts as reference – Official judgement verdicts and problem statement/-
conditions are 100% reliable. You should make improvements from them if they could help:
=======================
### Incorrect Code
[CODE]
Judgement Verdict: [VERDICT], Score: [SCORE]
=======================
### Incorrect Code
...
=======================

附录 D:Training Hyperparameters

D.1. Multi-Stage SFT

  • 表 14 中列出了 8B 和 14B 模型多阶段 SFT 的超参数

D.2. RLHF

  • 表 15 中展示了 8B 和 14B 模型的 RLHF 超参数

D.3. IF-RL

  • 8B 和 14B 模型在 IF-RL 训练中的超参数在表 16 中

D.4. Math RL

  • 用于 Math RL 训练的 8B 和 14B 模型的超参数分别列于表 17 和表 18 中

D.5. Code RL

  • 8B-Thinking、8B unified 和 14B-Thinking 模型在 Code RL 中的超参数在表 19 中
    <img src=”/Notes/NLP/LLM-Technical-Reports/NLP——技术报告解读-Nemotron-Cascade/Nemotron-Cascade-Table19.png” title=”” height=”90%” width=”90%”

D.6. SWE RL

  • 用于 SWE RL 训练的 8B unified、8B-Thinking 和 14B-Thinking 模型的超参数列于表 20 中

附录 E:ELO Rating Analysis

  • 本节详细介绍了 Nemotron-Cascade-8B 和 Nemotron-Cascade-14B-Thinking 模型报告的 Codeforces Elo 评级,该评级基于 2501-2507 年间举行的 51 场近期 Codeforces 竞赛
  • 问题和评估由 LiveCodeBench Pro (2025) 提供
    • 对于每场竞赛,通过允许模型对每个问题最多进行 \(N\) 次独立提交(\(N\) 默认设置为 8)来模拟参赛,并使用温度为 0.6、top-p 为 0.95 以及最大 Token 预算为 128K 来生成模型的 Response
    • 设 \(k\) 表示这 \(N\) 次尝试中正确提交的次数,\(N - k\) 表示错误提交的次数(\(0 \leq k \leq N\))
    • 在实际竞赛中,提交是按顺序进行的,罚时提交次数由第一次正确提交之前的错误提交次数定义
    • 为了估算提交惩罚,假设 \(k\) 次正确和 \(N - k\) 次错误提交的顺序在 \(\binom{N}{k}\) 种排列上均匀分布,预期的惩罚次数可以推导为:
      $$\mathbb{E}[\# \text{ of penalties}] = \frac{N - k}{k + 1}$$
  • 采用标准的 Codeforces 竞赛规则:
    • 对于常规的 Codeforces 轮次,对每次预期的惩罚应用 50 分的分数惩罚
    • 对于 ICPC 风格的轮次(例如 Educational 轮次,Div.3 轮次),每次错误提交增加 10 分钟的时间惩罚
    • 未解决问题的惩罚将不予考虑
  • 根据最终得分,将模型的竞赛表现与 \(n\) 个真实人类参赛者进行排名,得到名次 \(m\)(\(1 \leq m \leq n + 1\)),并按照标准 Elo 评级定义 (2025) 通过求解下式计算隐含的表现评级 \(R_{\text{model} }\):
    $$m = \sum_{i = 1}^{n}\frac{1}{1 + 10^{(R_{\text{model} } - R_i) / 400} }$$
    • 其中 \(R_{i}\) 指每场竞赛前人类参赛者 \(i\) 的 Elo 评级
  • 本文报告在 51 个 Codeforces 轮次上的平均表现评级作为作者的最终 Elo 分数,并在表 21 和表 22 中分别展示了作者的 Nemotron-Cascade-8B 和 Nemotron-Cascade-14B-Thinking 模型的性能细节
    • 模型在不同竞赛中的估计表现评级存在很大差异
      • 例如,Nemotron-Cascade-14B-Thinking 模型在 Codeforces Round 1015 上达到了 2600 以上的估计表现评级,但在 Round 1024 Div.1 上未能解决任何问题(即使尝试了 8 次),获得的 Elo 评级低于 1000
    • 编码问题解决行为的不一致性:
      • 虽然模型有时能够解决非常困难的问题,但它也可能在相对简单的问题上卡住,甚至在同一场竞赛中也是如此
      • 此外,该模型在可通过标准技术、大量实现或直接直觉解决的问题上表现良好,但通常在需要通过小规模数据探索或特定想法(Ad Hoc Ideas)(例如构造性(Constructive)或交互式(Interactive)问题)进行假设驱动探索的问题上遇到困难
        • 这可能是未来理解和改进此类推理能力的一个有趣方向
  • 注:表 21 和 表 22 详情见原始论文

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——LLM对齐微调-REOPOLD

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(REOPOLD)Scaling Reasoning Efficiently via Relaxed On-Policy Distillation, 20260311, Microsoft

Paper Summary

  • 整体总结:
    • 背景:OPD 容易出现不稳定性和负迁移 (instability and negative transfer)
    • 本文通过数学推导,证明了 OPD 在理论上等价于策略优化
      • 因此也继承了基本的优化不稳定性
    • REOPOLD 结合了多个创新思路解决 vanilla distillation 的基本不稳定性(将 vanilla on-policy distillation 的简单模仿替换为更灵活、更稳定的训练)
      • 改进1: 针对 Advantage 进行 stop-gradient(原始的 OPD 这里是有梯度的,有梯度时目标才是最小化 KL 散度)
      • 改进2:mixture-based reward clipping
        • 效果提升似乎有限?详情本文见 5.3.3 节的分析和 表 6
      • 改进3:entropy-based token-level dynamic sampling
        • 可加速训练,相当于提升学习率
        • 理解:提升学习率也能拿到类似效果
      • 改进4:unified exploration-to-refinement
        • 两阶段的训练方式比较麻烦,是否需要这样搞有待思考

Introduction and Discussion

  • vanilla OPD 存在不稳定性问题 (2023; 2024)
    • 经常导致负迁移,即学生模型的表现相比其初始化的基础模型有所下降(第 5.1 节和图 7),并且遭遇熵迅速崩溃 (entropy collapse) 导致过早收敛(第 3.2 节和图 5)
  • 近期的文献 (2025) 中也提到了类似的局限性,该文献为了确保稳定性,限制教师模型必须与学生的规模匹配(例如,为 8B 的学生使用 8B 的教师,而非 32B)
    • 问题:这些限制从根本上制约了当前蒸馏方法的实用性
  • 本文通过 RL 的视角分析 OPD ,以诊断优化不稳定性
    • 通过将教师-学生对数似然比解释为一个固定的奖励,作者将蒸馏视为策略优化,利用现代 RL 的见解来稳定训练
  • 本文贡献:
    • Diagnosing on-policy distillation :
      • 本文证明,stop-gradient 使得目标函数等效于标准策略梯度,起到控制变量的作用,以减轻方差并建立一个稳健的基线
      • 基于这个点,能够诊断 OPD 瓶颈,将 heavy-tailed 负奖励 (heavy-tailed negative rewards) 和信号低效 (signal inefficiencies) 识别为不稳定的主要原因
    • Distillation-aware policy optimization :
      • 为解决优化瓶颈,本文提出了 REOPOLD,它过滤掉有害的蒸馏信号,并通过温和且有选择地应用来自教师的学习信号来缓和激进的更新(图 2)

Background and Related Work

Reinforcement Learning for Reasoning Models

  • 策略优化通常依赖于由采样策略(例如,旧策略 \(\pi_{\theta_{\text{old} } }\))生成的样本
  • 给定一个从数据集 \(\mathcal{Q}\) 中抽取的 Query \(q\),从 \(\pi_{\theta_{\text{old} } }\) 中采样一组 \(G\) 个 Response \(\{o_i\}_{i = 1}^G\),然后通过最大化以下目标来更新策略参数 \(\theta\):
    $$
    \begin{align}
    \mathcal{J}_{\text{RL} }(\theta) = \mathbb{E}_{q\sim \mathcal{Q},\{o_i\}_{i = 1}^G\sim \pi_{\theta_{\text{old} } }(\cdot |q)} \left[\frac{1}{\sum_{i = 1}^G}\frac{G}{\left|o_i\right|}\sum_{i = 1}^G\sum_{t = 1}^G\rho_{i,t}(\theta)\hat{A}_{i,t}\right], \end{align} \tag {1}$$
  • 其中
    • \(\rho_{i,t}(\theta)\) 表示 Response \(o_i\) 在 Token 步 \(t\) 的重要性采样比率
      $$\rho_{i,t}(\theta) = \frac{\pi_{\theta(o_{i,t}|q,o_{i,t}< t)} }{\pi_{\theta_{\text{old} }(o_{i,t}|q,o_{i,t}< t)} }$$
    • \(\hat{A}_{i,t}\) 表示估计的 advantage
    • 注:这里省略了一些裁剪操作

On-Policy Distillation for Reasoning Models

  • LLM 的蒸馏大致分为 off-policy 和 on-policy Settings
    • off-policy Setting(如 SFT)中,学生模型从静态的教师生成输出中学习,这可能导致曝光偏差 (exposure bias) (2024)
    • on-policy Setting (如 OPD) 中,通过训练从学生策略自身采样的轨迹来缓解曝光偏差问题
  • OPD 过程最小化 RKL,这等价于最大化对数似然比的期望:
    $$\mathbb{D}_{\text{KL} }(\pi_{\theta}| \pi_{T}) = -\mathbb{E}_{q\sim \mathcal{Q},\sigma \sim \pi_{\theta}(\cdot |q)}\left[\log \frac{\pi_{T}(o|q)}{\pi_{\theta}(o|q)}\right] \tag {2}$$
    • \(\pi_{T}\) 表示教师策略
  • 已有工作表明, OPD 能有效弥合训练-测试差异,从而提高生成质量 (2024; 2024)

Analysis of On-Policy Distillation

Theoretical Equivalence to RL and Strong Baseline,与 RL 的理论等价性及强基线

  • 本文建立 OPD 和 RL 之间的关系:遵循 (2025; 2025),结合公式 (1) 和公式 (2) 来公式化 OPD 的目标:
    $$\begin{align}
    \mathcal{R}_{\text{RL} }(\theta) = \mathbb{E}_{q\sim \mathcal{Q},\{o_i\}_{i = 1}^G\sim \pi_{\theta_{\text{old} }(\cdot |q)} } \left[\frac{1}{\sum_{i = 1}^G|o_i|}\sum_{i = 1}^G\sum_{t = 1}^{|o_i|}\rho_{i,t}(\theta)R_{i,t}(\theta)\right]
    \end{align} \tag {3}$$
    • \(R_{i,t}(\theta)\) 表示 Token-level 对数似然比:
      $$ R_{i,t}(\theta) = \log \frac{\pi_{T}(o_{i,t}|q,o_{i,t}< t)}{\pi_{\theta}(o_{i,t}|q,o_{i,t}< t)} $$
    • 与在整个词汇表上计算差异的传统蒸馏 (2024; 2024) 不同,这种方法对采样到的 Token 进行操作,避免了存储完整分布所带来的过高内存成本,如附录 D 所示
  • 与奖励固定的标准 RL 不同,项 \(R_{i,t}(\theta)\) 本身依赖于 \(\theta\)
    • 虽然像 MiniLLM (2024) 这样的先前工作已经探索了这一联系,但本文明确采用固定奖励的视角来稳定优化
    • 本文使用一个 Stop Gradient 算子将 \(R_{i,t}(\theta)\) 视为一个恒定的外部信号
  • 理解:原始的 OPD 中并没有强调需要对 Advantages 做 Stop Gradient,所以本质是带着梯度的(真实的目标是最小化 KL 散度,本身也是带着梯度的)
    • 本文的含义是:将 OPD 中的 Advantage 变成 Stop Gradient 的,才能完全等价于朴素 RL 下的策略梯度方法
  • 让 \(\mathcal{J}_{\text{RKL} }^{\text{(sg)} }\) 表示这个带 Stop Gradient 的目标,那么,以下 Remark 3.1 性质成立
Remark 3.1
  • 在标准正则性条件下,\(\mathcal{J}_{\text{RKL} }(\theta)\) 和 \(\mathcal{J}_{\text{RKL} }^{\text{(sg)} }\) 的期望梯度是一致的:
    $$\begin{align}
    \nabla_{\theta}\mathcal{J}_{\text{RKL} }(\theta) = \nabla_{\theta}\mathcal{J}_{\text{RKL} }^{\text{(sg)} }(\theta) = \mathbb{E}_{q\sim \mathcal{Q},\{o_i\}_{i = 1}^G\sim \pi_{\theta_{\text{old} }(\cdot |q)} } {\left[\frac{1}{\sum_{i = 1}^G|o_i|}\sum_{i = 1}^G\sum_{t = 1}^{|o_i|}\rho_{i,t}(\theta)R_{i,t}(\theta)\nabla \log \pi_{\theta}(o_t|q,o_{< t})\right],} \end{align} \tag {4}$$
    • 完整的证明在附录 A.1 中提供,显示来自奖励项的梯度贡献在期望中消失
    • 这确立了 OPD 在形式上等价于一个 on-policy 的策略梯度方法,其中奖励由 \(R_{i,t}(\theta)\) 定义
  • Remark 3.1 确保了期望中的理论一致性,但在随机优化的有限样本情况下,动态是不同的
    • 关键:被省略的项 \(\nabla_{\theta}R_{i,t}(\theta)\) 具有零期望但非零方差
      • 通过移除这一项, Stop Gradient 算子有效地充当了一个控制变量,压制了梯度估计中的高方差噪声
        • 理解:从观察看来,还是存在一些梯度 spike 现象,且 Gradient Norm 明显降低了,是因为屏蔽了一条路径上的整体梯度
        • 问题:这种 Stop Gradient 的方式下,最终优化目标已经不再是最小化 Teacher 和 Student 的 KL 散度
      • 实验观察:这带来了梯度范数的降低,意味着方差减小 (2004; 2018),并产生了稳定的训练动态,从而带来更好的验证性能,如图 3(以及表 6)所示

Optimization Challenges in On-policy Distillation,OPD 中的优化挑战

  • 带 Stop Gradient 的公式化通过稳定训练动态建立了一个强基线
  • 问题: OPD 继承了策略梯度方法所特有的基本挑战
    • 通过透过策略梯度的视角来审视蒸馏,本文作者整理出三个阻碍性能的关键问题
Instability from heavy-tailed negative rewards,来自 heavy-tailed 负奖励的不稳定性
  • 当学生策略采样到教师分配可忽略概率的 Token(即 \(\pi_{T}(o_{t}|q,o_{< t})\to 0\))时,观察到一个严重的错位问题
  • 如图 4 所示,这导致对数似然比趋近于 \(- \infty\),形成一个 heavy-tailed 分布的负奖励
    • 这些极端值主导了梯度估计,导致优化不稳定
    • 破坏性的参数更新抑制了特定的 Token,导致模型显著偏离其原始分布(表 1,表 2)
  • 图 4. Token-level 对数似然比奖励的对数尺度直方图
    • 红色虚线椭圆表示退化的接近零的奖励,而紫色虚线区域突出显示了负奖励的 heavy-tailed
    • 这些分布通过导致梯度消失和训练不稳定,分别给基于 RL 的 OPD 带来了挑战
Inefficiency from near-zero rewards, 来自接近零奖励的低效性
  • 对于大多数 Token,学生和教师分布是良好对齐的,产生的对数似然比接近零(参见图 4)
  • 从 RL 的角度来看,这些趋近于零的 advantage 在消耗批处理内存和计算资源的同时,提供了微不足道的学习信号
    • 这种信号稀释降低了有效样本量,损害了样本效率
    • 与允许 Prompt 级别过滤的标准 RL (2025) 不同, OPD 在 Token-level 运行,使得这种粗粒度的策略无效
  • 问题:这个点其实还好吧,除了变相地降低了学习率以外,本身也不太影响训练(比如增加一下学习率就缓解了)
Entropy-collapse and exploration-alignment trade-off,熵崩溃与探索-对齐权衡
  • 观察:在训练期间策略的熵迅速下降(参见图 6),导致在狭窄的输出集上过早收敛(有效的推理需要探索多样化的解决方案路径)
    • 个人理解:这里在 OPD 中其实对探索的需求没有这么高了,但是仍然需要探索一下,确保自己知道自己生成的链路是否正确(符合教师分布),相当于让学习自己做作业,然后老师来改错,如果直接让老师或者其他同学来做,自己没有上手,是不知道自己如果上手会发生什么样的错误的
    • 其他理解:OPD 中的熵还是可能会下降的,具体是熵增还是下降跟教师模型、学生模型的分布、数据分布以及学习时屏蔽了哪些 Token 都有关系
      • 已知一定会降低熵的 Token:
        • 学生概率高的 Token ,然后 Advantage 为正
        • 学生概率低的 Token ,然后 Advantage 为负(一般来说都会降低整体熵,详情见:Math——多项式分布下的熵变化详细讨论)
  • 提高采样温度是标准 RL 中用于探索的补救措施,但实验发现这在此处是有害的:
    • 更高的温度会引入与教师分布进一步偏离的 Token,从而加剧上述的奖励方差
    • 这导致了一个在维持探索和确保学生-教师对齐之间的艰难权衡

REOPOLD: Relaxed On-Policy Distillation for Compact Reasoning Models,REOPOLD:用于紧凑推理模型的宽松 OPD

  • REOPOLD 制定一个统一的、动态的目标函数,该函数明确地跨训练阶段调整学习信号
  • 形式上,对于从 Query 集 \(\mathcal{Q}\) 采样的每个批次 \(\mathcal{B}\),REOPOLD 最大化以下目标:
    $$
    \begin{align}
    \mathcal{J}_{\text{REOPOLD} }(\theta) = \mathbb{E}_{\mathcal{B}\sim \mathcal{Q},q\sim \mathcal{B},\{o_i\}_{i = 1}^G\sim \pi_{\theta_{\text{old} } }(\cdot |q)} \left[\frac{1}{\sum_{i = 1}^G\sum_{t = 1}^{|o_i|} }M_{i,t}^{(k)}\sum_{i = 1}^G\sum_{t = 1}^{|o_i|}\rho_{i,t}(\theta)\hat{R}_{i,t}^{(k)}(\theta)M_{i,t}^{(k)}\right],
    \end{align} \tag {4}
    $$
  • 其中
    $$\begin{align}
    \hat{R}_{i,t}^{(k)}(\theta) &= \max \left(\text{sg}(R_{i,t}(\theta)),\frac{\log\lambda}{1 - \lambda}\right) \\ M_{i,t}^{(k)} &= \begin{cases} \mathbb{I}\left[R_{i,t}(\theta)\geq \frac{\log\lambda}{1 - \lambda}\right] & \text{if }k< T_{\text{switch} }\\ \mathbb{I}\left[H_{i}\geq \tau_{\beta}\right] & \text{if }k\geq T_{\text{switch} } \end{cases}
    \end{align} \tag {5}$$
  • 完整的训练流程总结在算法 1 中

Reward Clipping via Mixture-Based Regularization,通过基于混合的正则化进行奖励裁剪

  • 裁剪重要性采样比率 (2017) 在 RL 中是标准的,但它仅限制了策略更新的幅度,而不是学习信号本身的完整性
  • 在 OPD 中,主要的不稳定性源于 heavy-tailed 的奖励分布(图 4),其中 \(\pi_{T}(o_{t}|q,o_{< t})\to 0\)
    • 为了缓解这一问题,作者提出了一个原则性的裁剪阈值,该阈值受混合分布稳定性分析的启发
  • 观察:对数似然比受教师和学生分布的凸混合(系数为 \(\lambda \in [0,1)\))所界定 (Ko 等 2024; 推导见附录 A.2):
    $$R_{i,t}(\theta) = \log \frac{\pi_T}{\pi_\theta}\leq \frac{1}{1 - \lambda}\log \frac{(1 - \lambda)\cdot\pi_T + \lambda\pi_\theta}{\pi_\theta}.$$
  • 关键的 Insight:这两项在渐近行为上的差异
    • 当教师概率趋近于零时,左侧的原始奖励 \(R_{i,t}\) 发散到 \(- \infty\),而右侧基于混合的项收敛到一个有限常数 \(\frac{\log\lambda}{1 - \lambda}\)
    • 这表明一个稳健的基于混合的目标函数内在地对所分配的惩罚有一个理论下界,从而防止了标准 RKL 中观察到的梯度爆炸
  • 受此启发,本文使用这个渐近极限作为原则性的下限来截断 heavy-tailed 的负奖励:
    $$\hat{R}_{i,t}^{\lambda}(\theta) = \max \left(\text{sg}(R_{i,t}(\theta)),\frac{\log\lambda}{1 - \lambda}\right) \tag {7}$$
    • \(\frac{\log\lambda}{1 - \lambda}\) 代表在稳健的混合框架中允许的最大理论上惩罚
    • 与全局改变目标函数且对 \(\lambda\) 敏感的 Skew RKL (2024) 不同, REOPOLD 选择性地针对异常值
    • 这在保留了 RKL 的模式追求 (mode-seeking) 特性的同时,确保了对超参数变化的鲁棒性(图 11)
  • 补充:函数 \(f(\lambda) = \frac{\log\lambda}{1 - \lambda}\) 的函数图像为:
    • 注:这个曲线类似对数曲线,在 \(\lambda=1\) 时无意义,在两边都是单调递增的函数
    • 由于 \(\lambda \in [0,1)\),所以 \(f(\lambda)\) 的最大值是 -1
      • 当 \(\lambda \rightarrow 1^-\) 时,\(f(\lambda) = -1\)
      • 证明:\(\log x\) 在 \(x \approx 1\) 处的近似函数是 \(x - 1\)

Entropy-Guided Token-Level Dynamic Sampling,基于熵的 Token-level 动态采样

  • 观察:对数似然比奖励表现出高度退化的分布,尤其是在低熵区域
  • 如图 5 所示,在各种设置下
    • 按熵排序处于最低 60 个百分位数的 Token 的奖励值高度集中在零附近
      • 这种现象出现的原因是大多数 Token 是足够确定性的
        • 学生和教师策略都分配了几乎相同的高概率,导致梯度消失
    • 高熵 Token 通常包含关键的分支点 (2025a),提供了更有意义的学习信号
    • 含义:教师和学生策略可能在全局上存在分歧,但它们在低熵 Token 上保持高度一致
    • 针对这些区域进行学习可以过滤掉无信息的 Token,并提高整体训练效率
  • 图 5. Token 熵与对数似然比奖励之间的相关性
    • 在数学推理和视觉推理基准上的实验结果表明,处于熵最低的 60 个百分位数内的奖励高度集中在零附近
    • 这表明,尽管教师和学生策略可能整体上存在分歧,但它们在低熵、确定性的 Token 上保持高度一致,显著偏差主要发生在高熵区域
  • 本文利用熵作为信息密度的代理来解决这个问题
    • 定义一个二元掩码 \(\mathbb{I}\left[H_{t}^{i}\geq \tau_{\beta}\right]\) 来分离具有高预测不确定性的 Token
    • 其中 \(H_{t}^{i}\) 表示学生策略在 Token \(o_{i,t}\) 上的熵,\(\tau_{\beta}\) 对应于批次 \(\mathcal{B}\) 内的前 \(\beta\) 百分位数阈值
  • 专门为高熵 Token 实例化目标函数:
    $$
    \begin{align}
    \mathcal{J}_{\text{Ent} }(\theta) = \mathbb{E}_{\mathcal{B}\sim \mathcal{Q},q\sim \mathcal{B},\{o_i\}_{i = 1}^G\sim \pi_{\theta_{\text{old} } }(\cdot |q)} \left[\frac{1}{\sum_{i = 1}^G\sum_{t = 1}^{|\alpha_i|}\mathbb{I}\left[H_t^i\geq \tau_\beta\right]}\sum_{i = 1}^G\sum_{t = 1}^{|\alpha_i|}\rho_{i,t}(\theta)\hat{R}_{i,t}^{\lambda}(\theta)\mathbb{I}\left[H_t^i\geq \tau_\beta\right]\right]
    \end{align}
    \tag {8}
    $$
  • 仅在计算高熵 Token 上的梯度(即 \(\mathbb{I}[H_t^i\geq \tau_\beta ] = 1\))创建了一个由信息密度驱动的动态批次
    • 这通过在归一化过程中过滤掉零奖励噪声,有效地缓解了梯度稀释
  • 这种方法与 DAPO (2025) 中的动态采样一致,但将其调整到了推理所需的 Token-level 粒度
    • 图 8 中的实证结果证实,专注于学生-教师分歧最大的点,在更快的收敛速度和更优的最佳准确率方面都带来了显著的提升
      • 理解:当然会提升,因为相当于提升了学习率,其实如果每个 Step 之间的分布差异类似的话,整体提升学习率可能也会有类似效果
    • 与为 Response 中的所有 Token 分配单个优势值的 Wang 等 (2025a) 不同,本文的 Token-level 公式在广泛的模型尺寸范围内保持稳健

Exploration-to-Refinement Multi-Stage Training,exploration-to-refinement 的多阶段训练

  • REOPOLD 的统一公式 :仅需要向 RKL 目标函数引入一个 Token-level 掩码
    • 这提供了一个灵活的机制,可以明确控制探索多样化解决方案与精炼推理信号之间的权衡:
      $$
      \begin{align}
      \mathcal{J}_{\text{REOPOLD} }(\theta) = \mathbb{E}_{\mathcal{B}\sim \mathcal{Q},q\sim \mathcal{B},\{o_i\}_{i = 1}^G\sim \pi_{\theta_{\text{old} } }(\cdot |q)} \left[\frac{1}{\sum_{i = 1}^G\sum_{t = 1}^{|o_i|}M_{i,t} }\sum_{i = 1}^G\sum_{t = 1}^{|o_i|}\rho_{i,t}(\theta)\hat{R}_{i,t}^\lambda (\theta)M_{i,t}\right]
      \end{align}
      \tag {1}$$
  • 通过动态控制掩码 \(M_{i,t}\),本文实例化了一个两阶段训练流程:
    • 一个初始的探索阶段,鼓励多样化的合理解决方案(类似于 SFT)
    • 随后是一个 Refinement 阶段,分离并放大正确的推理路径(类似于 RL)
    • 如图 6 所示,该策略通过有效平衡探索和利用,在早期促进多样性,并在后期将策略巩固到高质量轨迹上,从而稳定了训练
Exploration phase
  • 在初始阶段(即前 \(T_{\text{switch} }\) 步),定义掩码以过滤掉过度的惩罚:
    $$M_{i,t} = \mathbb{I}\left[R_{i,t}(\theta)\geq \frac{\log\lambda}{1 - \lambda}\right] \tag {9}$$
  • 该掩码选择性地移除与强负奖励相关的 Token 的梯度
    • 实验发现该策略对于减轻熵崩溃至关重要(参见图 6)
      • 理解:这个是可以解释的,推测强负奖励相关的 Token 一般是一些 Student 概率也不大的 Token,一般来说,降低这部分 Token 会导致整体的熵降低,详情见 Math——多项式分布下的熵变化详细讨论
    • 通过抑制通常会消除低概率 Token 的大幅负梯度,该目标函数模仿了 SFT 的动态:它强化正向行为,而不会激进地惩罚探索性错误。这允许策略维持多个与教师对齐的模式 (2025a),并探索解空间的更广阔区域
    • 图 6 中 Avg@32 和 Pass@32 的同时提升证明了这一优势
    • 本文在此阶段禁用了 Token-level 动态采样 (第 4.2 节),以确保密集的监督,严格与 SFT 视角保持一致
Refinement phase
  • Refinement phase 阶段切换掩码策略以重新引入负反馈,从而在 Token 之间进行更清晰的区分
  • 本文应用第 4.2 节中引入的基于熵的掩码:
    $$M_{i,t} = \mathbb{I}\left[H_{i}^{i}\geq \tau_{\beta}\right] \tag {10}$$
  • 这种转换通过将学习重点放在高熵 Token(即教师和学生策略分歧最大的点)上来促进策略精炼和收敛
  • 通过允许对这些关键的、不确定的 Token 进行负反馈,精炼阶段确保了学习策略的有效巩固

Experimental Results

Extension: Math Reasoning

Setup
  • 在 DeepSeek-R1-Distill-Qwen-1.5B 和 7B (2025) 上进行 on-policy distillation,分别采用 SkyWork-OR1(-Math)-7B 和 SkyWork-OR1-32B-Preview (2025a) 作为教师
  • 训练时,使用 Yan 等人 (2025) 提出的数据集,该数据集包含 45k 个 prompts
  • 表 1 中的所有 1.5B 模型均为公平比较而训练了 300 步,本文为图 1(a) 中的样本效率分析将 REOPOLD 的训练延长至 600 步
    • 详细的训练设置见附录 C
Evaluation
  • 在六个竞赛级别的数学推理基准上评估所有模型:AIME-24、AIME-25、AMC-23、MATH-500 (2020)、Minerva Math (2022) 和 Olympiad Bench (2024)
  • 对于 AIME-24、AIME-25 和 AMC-23,考虑到测试集相对较小,报告 Avg@32
  • 对于其余三个基准,报告 Pass@1
  • 在所有评估中,使用温度为 0.6 和 top-p 值为 0.95
Result 1: Better training sample-efficiency
  • 如图 1(a) 所示,REOPOLD 在 600 步时与 ProRL (2025a) 表现相当(而 ProRL 需要 2000 步)
    • 当通过总训练样本数(考虑 batch 大小)进行归一化时,这产生了 \(>6.7\times\) 的效率增益
  • REOPOLD 在 300 步时甚至更早就超越了 DeepScaleR-1.5B-Preview (2025) 和 DeepMath-1.5B (2025b)(\(>12\times\) 效率),并且特别值得注意的是,仅用 150 步就显著优于 vanilla RKL(300 步)
  • 在相同条件下,重新实现的 GRPO 上表现更优(表 1),证实了本文增益源于算法效能而非实验设置
Result 2: Robustness to teacher selection
  • 如表 1 详述,REOPOLD 相比 RKL 表现出更优的鲁棒性
    • REOPOLD 在所有指标上持续优于 SFT 基线
    • vanilla RKL 表现出对教师选择的敏感性
    • 当从 SkyWork-OR1-7B 进行蒸馏时,RKL 显示出微不足道的改进
    • 无论使用何种教师模型,REOPOLD 都能提供一致的性能提升
Result 3: Scaling to large policy models.
  • 当扩展到更强的学生模型(如 DeepSeek-R1-Distill-Qwen-7B)时,vanilla RKL 由于模型已经固化的推理能力而遭受严重的训练不稳定性
    • 如图 7 所示,RKL 在早期阶段表现出急剧的性能下降,并且对于 AIME-24,无法提升到超过基础模型的性能
    • REOPOLD 利用其多样化的组件确保训练稳定
      • 它成功防止了性能退化,并在各个基准上展示了持续的改进,证明了其在大规模蒸馏中的鲁棒性

Main Results: Visual Reasoning

Setup
  • 采用 Qwen2.5-VL-3/7B-Instruct (2025) 作为学生策略,采用经过 NoisyRollout (2025b) 训练的 Qwen2.5-VL-32B-Instruct 作为教师
  • 在 Geometry3K (2021) 上训练学生模型,该数据集专注于几何问题求解,包含大约 2.1K 个训练样本
  • 遵循 Liu 等人 (2025b) 的协议,通过将所有多项选择题转换为自由形式的答案格式来预处理该数据集,以减轻 reward hacking 并减少答案猜测的可能性
  • 详细的训练设置见附录 C
Evaluation
  • 在六个基准上进行评估:五个视觉推理基准,包括 Geometry3K 的测试集、MathVerse (2024a)、MathVision (2024)、MathVista (2023) 和 WeMath (2025),以及一个视觉感知基准 HallusionBench (2024)
  • 遵循 Liu 等人 (2025b) 的评估协议,对模型推理采用 greedy sampling 和温度为 0.6、top-p 为 0.95 的 nucleus sampling (2020),并使用 Gemini-2.0-Flash-001 (2023) 作为评判模型来解析生成的回答
Result 1: Efficacy on compact models
  • 如表 2 所示
    • 对于 3B 和 7B 模型,REOPOLD 在视觉推理和感知基准上相比 GRPO 和 RKL 基线取得了更优的整体性能
    • REOPOLD 也超越了专门的感知算法,如 NoisyRollout(7B)和 PAPO (2025b;3B)
  • 附录 D 中跨不同设置(包括不同的教师模型和训练步数)的扩展实验证实了 REOPOLD 相对于 vanilla RKL 的一致性优势
    • 这凸显了其对紧凑模型的鲁棒性,源于 refined teacher rewards 限制了低容量机制中的不必要模仿
Superior test-time scaling
  • 基准测试了并行思考延迟 (parallel thinking latency),定义为每个问题并行生成多个响应所需的平均时间
  • 实验使用 vLLM 在单个 NVIDIA Blackwell 6000 GPU 上进行,生成 cutoff 为 4096 个 tokens。在 Geometry3K 和 MathVerse 上,报告了 Pass@K 准确率与 \(K\) 个样本(从 1 扩展到 16 或 64)的推理时间的关系
  • 图 1(b) 表明 REOPOLD 实现了卓越的测试时扩展曲线,在 Pass@K 方面达到了高达 \(3.32 \times\) 的推理效率,这得益于
    • (1) 相比 RKL 更优的生成质量
    • (2) 相比 Qwen2.5-VL-32B 教师更高的性能与延迟比,这归因于学生模型的紧凑尺寸
  • 图 12 中使用 Maj@K 的扩展结果证实,在不同的测试时扩展指标上,REOPOLD 相比 RKL 基线始终保持着更好的扩展轨迹

Analysis: Visual Reasoning

Result 1: Training on different teacher
  • 进一步通过从不同的教师模型进行蒸馏来评估 REOPOLD ,以评估泛化能力
  • 如表 3 详述,利用分别通过 NoisyRollout (2025b) 在 Geometry3K 和 MMK12 上微调的 Qwen2.5-VL-7B-Instruct 和 32B-Instruct 模型作为教师
  • 结果证明了 REOPOLD 的一致有效性
    • 与 RKL 基线相比,REOPOLD 在两种教师设置下的所有六个基准上都产生了统一的改进
      • 使用 7B 教师时平均准确率提高了 \(1.34%\),使用 32B 教师时提高了 \(0.93%\)
    • 这证实了 REOPOLD 对教师架构和领域特定专业知识的变化具有鲁棒性,能够可靠地增强学生的视觉推理和感知能力
Result 2: Scalability with longer trainin
  • 通过将训练持续时间延长至 300 步,并为 Qwen2.5-VL-3B-Instruct(表 4)和 Qwen2.5-VL-7B-Instruct(表 5)整合 Geometry3K 和 MMK12 数据集来研究 REOPOLD 的可扩展性
  • 如表 4 和表 5 所示,延长训练时间对基线和 REOPOLD 方法都带来了性能提升,证实了更大规模训练的好处
    • 更长的训练通常会全面提高性能, REOPOLD 始终表现出更好的可扩展性(在两种模型大小上都优于 RKL 基线)
      • 使用 3B 模型实现了 \(54.36%\) 的最高平均准确率,使用 7B 模型实现了 \(58.83%\)
    • 这些结果表明,给定更多的计算和数据, REOPOLD 能够持续优化其策略,从而在视觉推理和感知任务上带来稳健的改进
Result 3: Impact of module design
  • 表 6 验证了每个技术组件的贡献
    • RKL 基线表现出有限的性能,应用 stop-gradient(1) 提供了显著的初始提升
    • 添加 reward clipping(2) 和 token-level dynamic sampling(3) 在多个基准上带来了一致的改进
      • 关于(3),图 8 中的敏感性分析表明,更严格的阈值(例如 \(\beta = 0.2\))优于较宽松的设置(\(\beta = 0.5\))
      • 这证实了过滤低熵 tokens 能有效缓解梯度稀释,使模型能够专注于关键的推理步骤
    • 多阶段训练(4) 完成了整个流程,取得了最佳的整体性能
  • 理解:在一些场景上看着涨幅有限,特别是 reward clipping(2) 和 token-level dynamic sampling(3) 操作似乎没有任何涨幅
  • 可参考图 3、图 11 和图 6,分别获取关于 stop-gradient、reward clipping 和多阶段训练的扩展分析

Extension: Agentic Reasoning with Visual Tool-Use

  • 传统的视觉推理方法通常将图像视为静态输入,限制了模型主动探索视觉信息的能力
  • 本文实现了图像操作工具,使 Agent 能够放大特定区域、选择关键帧并执行其他视觉操作
    • 这种方法遵循 Pixel-Reasoner (2025),增强了在密集视觉数据上的推理能力
Setup
  • 基于 VeriTool (2025) 框架实现 REOPOLD
  • 采用经过 SFT 的 Qwen2.5-VL-3B-Instruct (2025) 作为学生策略,采用 Pixel-Reasoner-7B (2025) 作为教师
  • 使用 Pixel-Reasoner 的官方训练数据集,该数据集包含来自 InfographicVQA 的 15K 个 Query ,并辅以其他公共数据集
  • 详细的训练设置见附录 C
Evaluation
  • 遵循 Su 等人 (2025) 的方法,在四个具有代表性的多模态基准上使用温度为 1.0、top-p 为 1.0 的 nucleus sampling 来评估模型和基线:Pixel-Reasoner 的测试集、V-Star (2024)、InfographicVQA (2022) 和 TallyQA (2019)
  • 这一选择提供了广泛的视觉理解任务,从细粒度对象识别到静态和动态场景中的高层次推理
Results
  • 如表 7 所报告,REOPOLD 优于 vanilla RKL 和 GRPO,显著超越了 GRPO,即使 GRPO 利用了 Su 等人 (2025) 提出的复杂 reward 设计
  • GRPO 在 Pixel 测试集上实现了略高的准确率,但 REOPOLD 在其他基准上表现出更优的性能,表明其具有更强的泛化能力
  • 本文在图 9 中展示了 REOPOLD 相比 RKL 和 GRPO 具有更好的样本效率
    • 与需要为复杂的 Agentic 任务进行复杂 reward 工程的传统 RL 方法不同,REOPOLD 可以直接应用
  • 吐槽:其实差异没有那么明显?

附录 A:Mathematical Derivations

A.1. RKL

  • Assumption & Justification :为了确保推导的有效性,本文假设以下标准正则性条件成立:
    • 可微性 (Differentiability) :
      • 策略 \( \pi_{\theta}(o|q) \) 在其整个定义域上关于 \( \theta \) 是连续可微的
      • 这种平滑性条件,结合梯度被一个可积函数所界定的假设(满足莱布尼茨积分法则和控制收敛定理的条件),允许作者交换梯度算子 \( \nabla_{\theta} \) 和期望 \( \mathbb{E} \)
    • 绝对连续性 (Absolute Continuity) (支持覆盖 (Support Coverage)) :
      • 假设目标分布关于采样分布是绝对连续的,记为 \( \pi_{\theta} \ll \pi_{\theta_{\text{old} } } \)
      • 对于任何观测值 \( o \),如果 \( \pi_{\theta_{\text{old} } }(o|q) = 0 \),那么 \( \pi_{\theta}(o|q) \) 也必定为 0
      • 这保证了重要性采样比率 \( \rho_{t}(\theta) \) 和对数似然比 \( R_{t}(\theta) \) 几乎处处定义良好且有限
  • 推导 RKL 的梯度
    • 当采用类似于 PPO 或 GRPO 的技术时,RKL 目标及其梯度为:
      $$
      \mathcal{J}_{\text{RKL} }(\theta) = \mathbb{E}_{q\sim Q,\alpha \sim \pi_{\theta_{\text{old} } }(\cdot |q)}\left[\frac{1}{|\alpha|}\sum_{t = 1}^{|\alpha |}\rho_{t}(\theta)R_{t}(\theta)\right] \tag {11}
      $$
      • 其中 \( \rho_{t}(\theta) = \frac{\pi_{\theta}(o_{t}|q,o_{< t})}{\pi_{\theta_{\text{old} } }(o_{t}|q,o_{< t})} \) 且 \( R_{t}(\theta) = \log \frac{\pi_{T}(o_{t}|q,o_{< t})}{\pi_{\theta}(o_{t}|q,o_{< t})} \)
    • 则以下关系成立:
      $$
      \begin{align}
      &{\nabla_{\theta}\mathcal{J}_{\text{RKL} }(\theta)=\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\rho_{t}(\theta)\nabla_{\theta}R_{t}(\theta)+R_{t}(\theta)\nabla_{\theta}\rho_{t}(\theta)\right],}\\
      &{\quad=\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\rho_{t}(\theta)R_{t}(\theta)\nabla_{\theta}\log\pi_{\theta}(\alpha|q,\alpha_{< t})\right]-\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\frac{\nabla_{\theta}\pi_{\theta}(\alpha|q,\alpha_{< t})}{\pi_{\theta_{\text{old} } }(\alpha|q,\alpha_{< t})}\right],}\\
      &{\quad=\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\rho_{t}(\theta)R_{t}(\theta)\nabla_{\theta}\log\pi_{\theta}(\alpha|q,\alpha_{< t})\right]-\nabla_{\theta}\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\frac{\pi_{\theta}(\alpha|q,\alpha_{< t})}{\pi_{\theta_{\text{old} } }(\alpha|q,\alpha_{< t})}\right],}\\
      &{\quad=\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\rho_{t}(\theta)R_{t}(\theta)\nabla_{\theta}\log\pi_{\theta}(\alpha|q,\alpha_{< t})\right]-\nabla_{\theta}\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta}(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\frac{\pi_{\theta}(\alpha|q,\alpha_{< t})}{\pi_{\theta_{\text{old} } }(\alpha|q,\alpha_{< t})}\right],}\\
      &{\quad=\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta_{\text{old} } }(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\rho_{t}(\theta)R_{t}(\theta)\nabla_{\theta}\log\pi_{\theta}(\alpha|q,\alpha_{< t})\right]-\nabla_{\theta}\mathbb{E}_{q\sim Q,\alpha\sim\pi_{\theta}(\cdot|q)}\left[\frac{1}{|\alpha|}\sum_{t=1}^{|\alpha|}\frac{\pi_{\theta}(\alpha|q,\alpha_{< t})}{\pi_{\theta_{\text{old} } }(\alpha|q,\alpha_{< t})}\right],}
      \end{align} \tag {19}
      $$
  • 推导结果表明:
    • 优化 RKL 目标在数学上等价于最大化一个标准的策略梯度目标,其中优势由项 \( R_{t}(\theta) \) 给出,并由重要性采样比率 \( \rho_{t}(\theta) \) 加权
    • 问题:要忽略后面的梯度时才可以吧

A.2. Derivation of Clipping Threshold,裁剪阈值的推导

  • 本节推导用于激励裁剪阈值的标准对数似然比与凸混合比之间的关系
  • 由于对数是一个凹函数,对于 \( \forall \lambda \in [0,1) \),詹森不等式意味着:
    $$
    (1 - \lambda)\cdot \log \pi_{T}(o_{t}|q,o_{< t}) + \lambda \cdot \log \pi_{\theta}(o_{t}|q,o_{< t})\leq \log [(1 - \lambda)\cdot \pi_{T}(o_{t}|q,o_{< t}) + \lambda \cdot \pi_{\theta}(o_{t}|q,o_{< t})] \tag {20}
    $$
  • 为了分离出对数似然比 \( R_{i,t}(\theta) = \log \frac{\pi_{T}(o_{t}|q,o_{< t})}{\pi_{\theta}(o_{t}|q,o_{< t})} \),作者从两边减去 \( \log \pi_{\theta}(o_{t}|q,o_{< t}) \) 并除以 \( (1 - \lambda) \):
    $$
    R_{i,t}(\theta) = \log \frac{\pi_{T}(o_{t}|q,o_{< t})}{\pi_{\theta}(o_{t}|q,o_{< t})}\leq \frac{1}{1 - \lambda}\log \frac{(1 - \lambda)\pi_{T}(o_{t}|q,o_{< t}) + \lambda\pi_{\theta}(o_{t}|q,o_{< t})}{\pi_{\theta}(o_{t}|q,o_{< t})} \tag {21}
    $$
  • 该不等式将教师策略和学生策略之间的对数比的上界定为由两者凸混合所诱导的对数比
Comparison to \( \rho (\theta) \) clipping in RL
  • 如第 4.1 节所述,裁剪操作最初是在 PPO (2017) 中引入的,目的是通过约束策略更新来稳定优化
  • 本文在 OPD 环境中研究了这种重要性权重裁剪的有效性
  • 如图 10 所示,在整个训练过程中,被裁剪样本的比例微乎其微,在初始步骤之后始终低于 \( 0.2% \)
    • 这表明策略并未显著偏离行为策略,使得裁剪机制在很大程度上是多余的,尤其是在训练的初始阶段之后
    • 与标准 RL 任务相比,\( \rho (\theta) \) 裁剪的稳定效果微乎其微
    • 注意:这里作者的理解似乎有误, PPO 也只是在 Off-policy 场景下使用,而且是针对上一步的旧策略和新策略进行的,目的是实现近端优化,跟当前教师与学生之间的 Ratio 没啥关系
  • 这与图 4 中显示的奖励分布形成对比,该分布在负区域呈现出 heavy-tailed 特征,如果不加以处理,罕见的极端值可能会主导梯度
Comparison to Skew RKL(2024)
  • 等式 (20) 的右侧与 Skew RKL (2024) 相同,但 REOPOLD 在应用上有所不同,本文严格地将界限 \( \frac{\log \lambda}{1 - \lambda} \) 用作裁剪阈值,而不是修改全局目标
  • 图 11 表明,虽然 Skew RKL 对 \( \lambda \) 高度敏感(例如,在 \( \lambda = 0.7 \) 时显著下降),但 REOPOLD 仍然稳健
  • 本文的最低准确率甚至超过了 Skew RKL 的峰值性能
    • 这证实了选择性地裁剪 heavy-tailed 离群值比改变全局散度更能有效地稳定训练

附录 B:Additional Related Work

Policy optimization for reasoning models

  • 近期在策略优化方面的进展集中在提高 LLM 的样本效率、稳定性和推理深度上
  • 虽然最初的方法依赖于基于结果的 RL,最近的工作表明,在较小的架构上扩展 RL,如 DeepScaleR (2025) 和 Skywork OpenReasner (2025a) 所示,可以达到与 OpenAI-o1 等专有前沿模型相媲美的性能
  • 改善超越基本群组相对更新的算法稳定性:
    • GSPO (2025) 引入了步骤级别的粒度以实现精确的信用分配
    • GMPO (2025) 则采用了群组最小最大公式来增强对分布偏移的鲁棒性
    • KDRL (2025) 提出了一个统一框架,协同知识蒸馏和 RL,有效地平衡了教师监督和自我探索
  • 解决探索与利用之间的关键平衡问题
    • 熵机制 (2025) 动态调节策略熵以防止过早收敛
    • LUFFY (2025) 通过有效利用多样化的 off-policy 轨迹来提高优化效率
    • ProRL (2025a) 强调了生成扩展推理链的重要性,明确激励延长思考过程以扩展模型的推理边界,这种能力支撑了最先进的大规模系统,如 MiniMax-M1 (2025a)

On-policy distillation for reasoning models

  • 传统的知识蒸馏通常依赖于教师模型生成的离线数据集,这会由于学生策略偏离静态训练数据而产生分布不匹配 (2023; 2023; 2025b)
  • For 弥补这一差距:
    • OPD 通过直接在从学生当前策略采样的轨迹上进行训练,使学生与教师的分布对齐 (2024; 2024; 2024)
    • 这种范式对于推理任务尤其重要,因为模型必须学会从自身的逻辑错误中恢复,而不仅仅是模仿完美的教师路径 (2025; 2025)
  • 越来越多的工作致力于使 OPD 适应推理任务
    • 前沿模型如 Qwen3 (2025) 利用迭代的同策略反馈来细化长链推理能力
    • MiMo-V2-Flash (2026) 证明,此类方法通过针对学生置信度与教师出现分歧的“困难”样本,实现了卓越的计算效率

附录 C:Detailed Experimental Setup

  • 第 5 节详细介绍了实验设置
  • 表 8 中列出了每种设置的超参数值
    • 对附加超参数 \( \lambda \) 和 \( \rho \) 的敏感性分析分别在图 11 和图 8 中给出
    • 关于第 4.3 节中引入的切换步数 \( T_{\text{switch} } \),没有执行特定的超参数调整;而是将其设置为大约总训练步数的 \( 1 / 3 \)
    • 对于 \( K \) 和 \( \eta \),本文采用了与基线相同的值,其中 \( \eta \) 是基于 vanilla RKL 结果通过超参数调整确定的

Math reasoning

  • 使用 Verl (2025) 进行 OPD
  • 在 Rollout 期间
    • 为每个 Prompt 采样 \( n = 8 \) 个 Response,最大 Response 长度为 8192,采样温度为 1.0
    • 全局批次大小设置为 128,微批次大小为 32,相当于每个 Rollout 步进行 4 次梯度更新
  • 学生策略训练 300 次迭代
  • 使用 AdamW 优化器 (2019),恒定学习率为 \( 1 \times 10^{- 5} \)
  • 所有训练运行均在配备 \( 8 \times \) NVIDIA H100 80GB GPU 的单节点上进行,1.5B 和 7B 模型分别需要大约 200 和 312 GPU 小时
  • 对于评估
    • 使用最大 Response 长度 32768,采样温度 0.6 和 top-p 0.95
    • 评估协议遵循 Qwen2.5-Math (2024) 建立的设置,使用 Verl (2025) 进行实现
    • 使用来自 LUFFY (2025) 的训练和评估数据

Visual reasoning

  • 对于视觉任务,使用 Verl (2025) 进行 OPD
    • 为每个 Prompt 生成 \( n = 12 \) 个 Response,强制最大 Response 长度为 2048,采样温度为 1.0
    • 遵循 Liu 等人 (2025b) 的协议
      • 模型训练 60 次迭代,批次大小为 128,微批次大小为 64(相当于每步 2 次梯度更新)
    • 通过 AdamW (2019) 进行优化,学习率为 \( 5 \times 10^{- 6} \)
    • 使用相同的硬件配置(单个 \( 8 \times \) NVIDIA H100 节点),3B 和 7B 模型的训练分别需要大约 20 和 24 GPU 小时
  • 对于评估,使用最大 Response 长度 8192,采样温度 0.6 和 top-p 0.95 进行 nucleus 采样
    • 使用来自 NoisyRollout (2025b) 的训练和数据

Agentic reasoning with visual tool-use

  • 基于 VerlTool 框架 (2025) 实现了 OPD 和 RL
  • 对于 Rollout
    • 策略为每个 Prompt 采样 \( n = 8 \) 个轨迹,最大 Response 长度为 8192,温度为 1.0
    • 将最大轮次设置为 2
    • 保持批次大小为 128,微批次大小为 64,对应于每个 Rollout 步进行 2 次梯度更新
  • 学生策略使用 AdamW 优化器 (2019) 进行 40 次迭代训练,恒定学习率为 \( 1 \times 10^{- 6} \)
  • 整个过程在配备 \( 8 \times \) NVIDIA H100 80GB GPU 的单节点上消耗大约 120 GPU 小时
  • 遵循 Su 等人 (2025) 的方法,将最大轮次设置为 5,最大 Response 长度为 8192,采样温度为 1.0,top-p 为 1.0
  • 对于训练,使用 PixelReasoner-RL 数据集
  • 对于评估,使用 PixelReasoner (2025) 提供的 InfoVQA、TallyQA 和 VStar 数据集

附录 D:Additional Analyses and Discussions

  • 本节提供全面的分析,以更深入地理解 REOPOLD 的内部工作机制和鲁棒性
    • 除非另有说明,所有实验均遵循第 5.2 节中介绍的视觉推理评估协议

Extended test-time scaling results

  • 在 Geometry3K (2021) 和 MathVerse (2024a) 基准上对 REOPOLD 的测试时扩展能力进行了全面评估
  • 图 12 表明
    • REOPOLD 的卓越扩展性并不局限于覆盖率指标 (Pass \( @K \))
    • 3B 和 7B 模型在 Maj \( @K \)(衡量共识鲁棒性的指标)上都保持着持续的领先优势
    • 这证实了 REOPOLD 从根本上提高了正确推理链的概率,而不仅仅是生成多样化的“幸运猜测”来提升 Pass \( @K \)
  • 图 12. Extended results of Figure 1(b)
    • 可视化了随着样本预算 \( K \) 增加(Geometry3K 最高到 64;MathVerse 最高到 16),准确率 (Pass \( @K \) 和 Maj \( @K \) ) 与推理延迟的关系
    • REOPOLD(实线)始终比 RKL 基线(淡线)产生更好的权衡
    • 7B 学生以显著更低的延迟匹配或超越了 32B 教师的准确率,证实了 REOPOLD 蒸馏的效率

Training time analysis

  • 本节分析了训练 wall-clock 时间以量化计算开销,如图 13 所示
    • 与关于 OPD 中教师成本的担忧相反,分解显示它仅占总步数的一小部分 (\( 8% - 22% \))
    • 这种相对成本与生成长度成反比。在长上下文数学任务 (8192 tokens) 中,学生生成占运行时间的主导地位 (\( 77.3% \)),使得教师的影响微乎其微 (\( 8.2% \))
    • 即使在较短的视觉推理任务 (2048 tokens) 中,教师的份额上升到 \( 21.8% \),主要瓶颈仍然是学生的生成过程,而不是教师的监督
  • 图 13. 每一步的训练 wall-clock 时间分解 (Breakdown of training wall-clock time per step)

Comparison to full vocabulary distillation

  • 本节将 REOPOLD 与 GKD (2024) 进行了进一步比较
    • GKD 是一种完整词表的 OPD
  • 如表 9 所示,具有完整词表的 GKD 会遇到内存不足 (OOM) 问题,因为它们需要为学生模型和教师模型存储 150K 词表大小的值
    • 为了缓解这个问题,本文应用了常用的 Top-5 近似(但这种近似效果不佳,与基于采样 Token 的方法相比效率较低)
    • 即使应用于 REOPOLD,使用完整词表或应用 Top-5 近似也没有带来任何有意义的改进 ,表明这种近似对 REOPOLD 也没有益处
    • 理解:其实 DeepSeek 中所强调的,使用全词表或更多 Top-K Token 估计 KL 的话,能得到更稳定的更新

附录 E:Qualitative Evaluation

  • 定性评估 详情见原文

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——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——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:

NLP——LLM对齐微调-GR3

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(GR3,\(\text{GR}^3\))Tackling Length Inflation Without Trade-offs: Group Relative Reward Rescaling for Reinforcement Learning, 20260311, ISCAS & XHS

Paper Summary

  • 整体总结和说明:
    • 作者定义并提出了 长度膨胀(length inflation) 现象:模型倾向于产生不必要的冗长或过度思考
    • 长度膨胀(length inflation) 是 LLM RL 训练中一个根本性的效率问题
    • 为解决 长度膨胀问题,作者提出了一个无损长度控制的通用框架 组相对奖励重缩放(Group Relative Reward Rescaling, \(\mathbf{GR}^3\))
      • \(\text{GR}^{3}\) 通过一个乘法的、组相对的形式,并结合优势感知校准来调控推理长度
    • 在 RLVR 和 RLHF 两种 Setting 下,\(\text{GR}^{3}\) 均能将 性能-成本帕累托前沿 向外推移
      • 观测效果:保持与标准 GRPO 相当的训练动态和下游性能,同时显著缓解了长度膨胀问题
      • 在保持(甚至提升)模型能力的同时减少 Token 使用
    • 理解:本文的核心思路创新是将加性的长度惩罚方式转变成 乘性的长度惩罚方式
  • 当前 LLM RL 面临问题:模型采用冗长或低效的推理来最大化奖励(长度膨胀)
  • 先前的方法:难以以一种通用且无损的方式解决这一挑战,主要是因为:
    • 加性惩罚 :引入了一种补偿效应 ,从而创造了优化捷径
    • 启发式门控策略 :在二元反馈之外缺乏通用性
  • 本文方法:组相对奖励重缩放(Group Relative Reward Rescaling, \(\mathbf{GR}^3\))
    • 将长度控制重新构建为一种乘法重缩放范式
    • 建立了一个通用的、连续的、且依赖于奖励的门控机制
  • 其他创新:在 \(\mathbf{GR}^3\) 的基础上,结合了 组相对正则化(group-relative regularization) 和 优势感知校准(advantage-aware calibration)
    • 能根据实例难度动态调整长度预算,并保留高质量轨迹的优势信号

Introduction and Discussion

  • LLM 上的 RL 表现出一个持续的缺陷,本文称之为长度膨胀(length inflation):
    • 长度膨胀的定义:经过 RL 训练的模型倾向于产生不必要的冗长轨迹,导致推理成本增加,而质量却没有成比例地提升
  • 长度膨胀现象在主要的 RL 范式中都有出现
    • 在 RLHF(2022)中,模型利用奖励模型对冗长的偏好,导致 Reward Hacking(2023)
    • 在 RLVR(2024)中,长度膨胀则源于推理效率低下(2025),模型生成不必要的长思维链以略微提高正确解的可能性
  • 之前的工作:
    • 路线一:训练对 Response 长度不变的奖励模型(2024a;2024)
      • RLHF 中有效,无法扩展到 RLVR,因为 RLVR 的奖励来自真实值验证器,而非可以被去偏的学习代理
    • 路线二(更通用):在奖励中引入显式的长度惩罚(2025a;2025c;2025)
      • 大多数现有方法依赖于粗略的正则化,导致了次优的优化动态
        • 一种常见的设计:采用加性塑形(additive shaping)(2025;2025)
          • 用一个显式的长度项(例如,\(R’ = R - \lambda \ell\))修改目标函数
          • 这引入了解耦的激励,创造了一个与任务成功无关的、使极端简洁成为有吸引力的捷径的、由长度驱动的组成部分
        • For 更好地使惩罚与结果对齐,一些工作提出了启发式门控(heuristic gating)(2025;2025),仅在 \(R = 1\) 时应用惩罚
          • 这种设计本质上局限于二元反馈,不能自然地扩展到像 RLHF 这样的连续奖励 Setting
          • 许多方法依赖粗略的控制机制,如静态截断阈值或未校准的惩罚强度(2025b;2025),导致固有的效率-性能权衡,如图 1 所示
  • 核心问题提出:能否在不损害 RL 能力增益的情况下,以一种通用的方式解决长度膨胀?
  • 本工作提出了一个用于无损效率优化的 Principled 框架 GR\(^3\))
    • 特点:GR\(^3\) 不使用加性惩罚 ,而是通过乘法重缩放 来正则化长度
      • 作为一个广义的门控机制,消除了加性方案固有的补偿捷径
    • 为了进一步确保无损优化,作者引入了两个细粒度机制
      • 采用 Group-relative Regularization
        • 根据 On-policy 统计量而非刚性阈值来归一化长度,从而动态地将长度预算调整到每个 Prompt 固有的难度
      • 补充引入 Advantage-aware Calibration,显式控制惩罚强度
        • 这确保了长度正则化不会推翻代表性高质量轨迹的优势信号,从而保障了向能力提升的稳定优化
  • 实验显示:GR\(^3\) 解决了先前方法中固有的效率-性能权衡
    • 如图 1 所示,GR\(^3\) 显著减少了 Token 使用量(在 AIME-25 上超过 \(40%\)),同时提高了准确性(\(+8\) points)
      • 这证明冗长并非智能的先决条件
    • 在 RLHF 设置中,GR\(^3\) 表现出自适应的长度动态:
      • 当计算有益时,它允许适度增长,但随着策略成熟,它会自动抑制生成长度(图 2)
      • 这种机制有效地通过冗长来缓解 Reward Hacking ,而不牺牲性能
  • 本文贡献总结:
    • 提出无损长度控制框架 \(\text{GR}^3\),用乘法奖励重缩放替代了加性惩罚
      • 这种设计消除了补偿性优化捷径,并为二元奖励和连续奖励提供了统一的机制
    • 开发了一种优化保持策略,将组相对正则化与优势感知校准相结合,使约束适应于 On-policy 统计量,同时保留学习信号
    • 在数学推理、代码生成和 RLHF 对齐任务中,GR\(^3\) 在匹配标准 GRPO 性能的同时产生了简洁的生成,推动了效率-性能帕累托前沿的迁移

Preliminary

Group Relative Policy Optimization(GRPO)

  • LLM 生成可以被形式化为一个 Token 级别的 MDP
    • 给定一个 Prompt \(x \sim \mathcal{D}\) ,一个自回归策略 \(\pi_{\theta}\) 通过从 \(\pi_{\theta}(y_t\mid x,y_{< t})\) 中采样 Token 来生成长度为 \(\ell := |y|\) 的 Response \(y = (y_1, \ldots , y_\ell)\)
    • 一个标量奖励 \(R(x,y)\) 定义在完整 Response 上,强化学习旨在最大化期望奖励:
      $$\max_{\pi_{\theta} }\mathbb{E}_{x\sim \mathcal{D},y\sim \pi_{\theta}(\cdot |x)}\big[R(x,y)\big]. \tag {1}$$
  • 随着像 DeepSeek-R1 这样的推理模型的出现,组式 RL 在 LLM 后训练中变得普遍
    • 其中的 GRPO(2024)因其可扩展性和无需单独的价值模型而被广泛采用
  • 对于每个 Prompt \(x\) ,GRPO 从一个旧策略 \(\pi_{\theta_{\text{old} } }(\cdot |x)\) 中采样一组 \(G\) 个 Response \(\{y^{(i)}\}_{i = 1}^{G}\),并通过 \(R(x,y^{(i)})\) 评估每个 Response
    • 通过组内归一化构建一个组相对优势(group-relative advantage):
      $$\begin{array}{c}{\hat{A}^{(i)} = \frac{R(x,y^{(i)}) - \mu_R}{\sigma_R} }\\ {\mu_R:= \frac{1}{G}\sum_{j = 1}^{G}R(x,y^{(j)}), \quad \sigma_R:= \text{std}\Big(\{R(x,y^{(j)})\}_{j = 1}^{G}\Big)} \end{array} \tag {2}$$
  • 策略优化时,使用一个 PPO 风格的、在组归一化优势上的裁剪目标进行优化:
    $$\begin{array}{rl} & {\mathcal{J}_{\text{GRPO} }(\theta) = \mathbb{E}_{x\sim \mathcal{D},\{y^{(i)}\}_{i = 1}^{G} }\left[\frac{1}{G}\sum_{i = 1}^{G}\sum_{t = 1}^{|y^{(i)}|}\right.} {\left.\left(\min \left(r_{i,t}(\theta)\hat{A}^{(i)},\text{clip}(r_{i,t}(\theta),1 - \epsilon ,1 + \epsilon)\hat{A}^{(i)}\right)\right.\right.} {\left.\left. - \beta D_{\text{KL} }(\pi_{\theta}| \pi_{\text{ref} })\right)\right],} \end{array} \tag {3}$$
    • 重要性采样比率定义为
      $$r_{i,t}(\theta) = \frac{\pi_{\theta}(y_t^{(i)}\mid x,y_{< t}^{(i)})}{\pi_{\theta_{\text{old} } }(y_t^{(i)}\mid x,y_{< t}^{(i)})}. \tag {4}$$
  • GRPO 基于组内统计量估计优势
    • 后面,本文作者会利用这一结构特性来构建一个更符合 On-policy 的长度正则化方案,并制定优势感知校准,以更好地尊重底层的优化信号,详见第 3 节

Length-Regularized Reinforcement Learning

  • RL 带来了实质性的性能提升,但 RL 的一个关键的失败模式变得越来越明显(本文称为长度膨胀)
    • 长思维链(Long-CoT)模型特别容易受到过度思考的影响(2024b;2025a)
    • RLHF 中的 Reward Hacking(2023;2023)也可能导致 Response 长度的爆炸性增长
  • 缓解 RL 中长度膨胀的一个常见策略是通过 Reward Shaping 显式地正则化 Response 长度
    • 从一个统一的视角来看(2025c),大多数现有方法可以被实例化为加性塑形 :
      $$\text{Additive:}\hat{R}^{(+)} = R + \lambda \cdot S,\lambda >0 \tag {5}$$
      • \(R\) 是任务奖励
      • \(S\) 是一个依赖于长度的塑形信号
      • \(\lambda\) 控制长度正则化的强度
      • \(\hat{R}^{(+)}\) 表示用于策略优化的塑形后奖励
      • 表 1 中展示了一些代表性的 加性塑形 的例子
    • 在这个公式下,现有方法主要在长度正则器 \(S\) 的实例化方式上有所不同
      • 最基本的策略通常依赖于一个固定的阈值(例如, \(\ell_{T} = 4K\) ):
        • 一旦 Response 长度超过这个限制,模型就会招致一个恒定的惩罚(2025b)或一个逐渐增加的惩罚(2025)
      • 一个更 Principled 范式则利用组级统计量(2025)来确定惩罚的强度
      • 一些方法引入了门控机制(例如, \(\mathbb{I}(R = 1)\) )(2025), 仅对成功的轨迹激活长度正则化,以防止模型过度优化简洁性
    • 这些方法在具体实例上有所不同,但共享一个共同的目标:
      • 在 RL 训练期间压缩 Response 长度
      • 但实践发现,这种正则化常常导致性能下降,这促使本文作者更仔细地审视 Reward Shaping 设计

Group Relative Reward Rescaling(GR3, GR\(^3\))

  • \(\mathbf{GR}^3\) 是一个旨在无损能力的情况下缓解长度膨胀的 Principled 框架
  • 对于一个在一组 \(G\) 个样本中的、长度为 \(\ell^{(i)} = |y^{(i)}|\) 的 Response \(y^{(i)}\), \(\mathbf{GR}^3\) 将重缩放后的奖励定义为:
    $$\hat{R} (x,y^{(i)}) = R(x,y^{(i)}) \cdot \underbrace{\frac{1}{1 + \alpha \cdot \frac{\ell^{(i)} }{\bar{\ell} } } }_{S^{(i)} } \tag {6}$$
    • \(S^{(i)}\) 表示长度缩放因子
    • \(\bar{\ell}\) 表示组内的平均 Response 长度
  • 这个公式反映了三个维度的统一设计
    • 采用乘法奖励重缩放(第 3.1 节)作为一种依赖于奖励的门控,减轻了补偿效应,同时仍适用于一般的连续奖励分布
    • 通过组相对正则化(第 3.2 节)实例化缩放因子,利用 On-policy 平均值 \(\bar{\ell}\) 来动态地将长度预算调整到 Prompt 的固有难度
    • 为了维持稳定的优化,优势感知校准(第 3.3 节)进一步控制惩罚强度,防止对高优势轨迹的不当抑制

Multiplicative Reward Rescaling

Motivation and Formulation
  • 最朴素的长度控制方法依赖于如公式 5 所示的加性 Reward Shaping ,其中 \(\lambda\) 控制长度惩罚的强度
    • 但加性塑形引入了一个固有的补偿效应:塑形项 \(S\) 形成了一个可以独立于任务性能被利用的辅助优化目标
    • 一些工作通过门控机制缓解了这个问题,例如,将 \(I(R = 1)\) 纳入 \(S\)
      • 但这种设计仅限于二元奖励,不能扩展到连续奖励设置
  • 区别于这些加性公式,作者提出了一个更通用的乘法塑形范式:
    $$\mathbf{Multiplicative:}\quad \hat{R}^{(\times)} = R\cdot S, \tag {7}$$
    • 这可以解释为启发式门控的连续扩展,消除了权衡系数 \(\lambda\),并自然地推广到任意奖励尺度 1
    • 重点:乘法公式消除了加性塑形的补偿特性,要求策略联合优化任务性能和长度控制
  • 如图 3 所示,加性塑形表现出一个系统性的失败模式:
    • 对于任何 \(\lambda\) 的选择,优化都被快速的长度缩减所主导,导致严重的性能下降
    • 乘法塑形不允许这样的捷径,因此避免了这种崩溃
  • 直观地说,乘法塑形通过下式将长度控制的影响与任务奖励耦合起来:
    $$\frac{\partial\hat{R}^{(\times)} }{\partial S} = R. \tag {8}$$
    • 因此,长度正则化随着任务成功而自动增强,使塑形内在地具有奖励感知性
Analysis Under Group-Normalized Advantage
  • 在 GRPO 采用的组归一化优势下进一步提炼上述直觉
    • 固定一个 Prompt \(x\),并考虑由采样 Response \(y \sim \pi_{\theta_{\text{old} } }(\cdot |x)\) 引起的 \((R,S)\) 的组内分布
      • 其中 \(R \in [0,1]\) 表示任务奖励, \(S \in [0,1]\) 表示一个与长度相关的分数(例如,公式 6)
  • 比较加性塑形 \(\hat{R}^{(+)}\)(公式 5)和乘性塑形 \(\hat{R}^{(\times)}\)(公式 7)
    • 令 \(\mu\) 和 \(\sigma\) 表示组内均值和标准差
    • 结果使用 Population Moments 陈述,经验版本通过 Substituting 样本均值得到
Proposition 3.1 (Additive shaping: linear injection of the length signal)
  • 命题 3.1 (加性塑形:长度信号的线性注入)
  • 令 \((R,S)\) 具有有限二阶矩,并定义
    • \(\mu_{R} = \mathbb{E}[R]\)
    • \(\mu_{S} = \mathbb{E}[S]\)
    • \(\sigma_{R}^{2} = \text{Var}(R)\)
    • \(\sigma_{S}^{2} = \text{Var}(S)\)
    • \(\sigma_{RS} = \text{Cov}(R,S)\)
  • 对于
    $$\hat{R}^{(+)} = R + \lambda S, \quad where \lambda >0 $$
    • 有:
      $$ \begin{align}
      \hat{R}^{(+)} - \mathbb{E}[\hat{R}^{(+)}] &= (R - \mu_R) + \lambda (S - \mu_S), \tag {9} \\ \text{Var}(\hat{R}^{(+)}) &:= \sigma_{R}^{2} + \lambda^{2}\sigma_{S}^{2} + 2\lambda \sigma_{RS}, \tag {10}
      \end{align}$$
  • 因此
    $$A\left(\hat{R}^{(+)}\right) = \frac{(R - \mu_R) + \lambda(S - \mu_S)}{\sqrt{\sigma_R^2 + \lambda^2\sigma_S^2 + 2\lambda\sigma_{RS} } }. \tag {11}$$
  • 因此,与长度相关的信号 \((S - \mu_S)\) 以固定权重 \(\lambda\) 线性地注入到优势中,并且即使在组内 \(R\) 提供很少的判别信号时也能起作用
  • Proof :
    • 公式 (9) 由下式给出:
      $$\mathbb{E}[\hat{R}^{(+)}] = \mu_R + \lambda \mu_S$$
    • 公式 (10) 由下式导出:
      $$\text{Var}(X + Y) = \text{Var}(X) + \text{Var}(Y) + 2\text{Cov}(X,Y)$$
      • 其中 \(X = R\) 和 \(Y = \lambda S\)
    • 公式 (11) 通过将公式 (2) 中的 \(R\) 替换为 \(\hat{R}^{(+)}\) 得到
Proposition 3.2 (Multiplicative shaping: reward-weighted length signal)
  • 命题 3.2 (乘性塑形:奖励加权的长度信号)
  • 令 \((R,S)\) 具有有限二阶矩,并定义
    • \(\mu_R = \mathbb{E}[R]\)
    • \(\mu_S = \mathbb{E}[S]\),
    • \(\sigma_R^2 = \text{Var}(R)\),
    • \(\sigma_S^2 = \text{Var}(S)\),
    • \(\sigma_{RS} = \text{Cov}(R,S)\)
  • 对于乘性塑形 \(\hat{R}^{(\times)} = RS\),有:
    $$\mathbb{E}[\hat{R}^{(\times)}] = \mathbb{E}[RS] = \mu_R\mu_S + \sigma_{RS}. \tag {12}$$
  • 此外,中心化后的塑形奖励允许分解为:
    $$RS - \mathbb{E}[RS] = R(S - \mu_S) + \mu_S(R - \mu_R) - \sigma_{RS}. \tag {13}$$
  • 因此,组归一化后的优势可以写为:
    $$A\left(\hat{R}^{(\times)}\right) = \frac{R(S - \mu_S) + \mu_S(R - \mu_R) - \sigma_{RS} }{\sqrt{\text{Var}(RS)} }. \tag {14}$$
  • Proof :
    • 公式 (12) 由下面的公式得到:
      $$\mathbb{E}[RS] = \mathbb{E}[R]\mathbb{E}[S] + \text{Cov}(R,S)$$
    • 对于公式 (13)
      • 重写为
        $$RS = R\mu_S + R(S - \mu_S) = \mu_R\mu_S + \mu_S(R - \mu_R) + R(S - \mu_S)$$
      • 并减去
        $$\mathbb{E}[RS] = \mu_R\mu_S + \sigma_{RS}$$
    • 公式 (14) 是将公式 (2) 应用于 \(\hat{R}^{(\times)}\) 的结果
Remark 3.3 (为什么乘性塑形在组归一化下具有奖励感知性)
  • 在加性塑形下,命题 3.1 表明长度偏差 \((S - \mu_S)\) 以固定系数 \(\lambda\) 注入中心化后的塑形奖励
    • 这创造了一个补偿性的自由度:即使当 \(R\) 提供很少的学习信号时,策略也可以通过操纵 \(S\) 来改善塑形奖励
  • 相比之下,命题 3.2 给出了分解式
    $$RS - \mathbb{E}[RS] = R(S - \mu_S) + \mu_S(R - \mu_R) - \sigma_{RS}$$
    • 其中长度偏差的影响被 \(R\) 本身缩放
    • 因此,当奖励低时长度控制较弱,并随着任务性能提高而增强,使得乘性塑形内在地具有奖励感知性
      • 问题:为什么奖励低时应该用耿荣的长度控制?奖励高时应该用更强的长度控制?

Group Relative Length Regularization

  • 之前工作的问题:
    • 许多先前的工作通过施加绝对长度阈值(2025;2025c)来解决长度膨胀问题,惩罚超过固定预算的轨迹
      • 这种设计可能会抑制困难实例上的必要推理,使策略对任务难度不敏感,从而降低性能
    • 更重要的是,固定的阈值不可避免地会导致 Off-policy 偏差:
      • 最优推理长度随任务变化,并在训练过程中发生改变,这是单一的全局常数无法捕捉的
  • 解法:组相对长度正则化策略,它能够适应 On-policy 行为
    • 根据公式 6,使用组内统计量定义一个界于 \((0,1)\) 的有界长度塑形项 \(S^{(i)}\):
      $$S^{(i)} = \frac{1}{1 + \alpha \cdot \frac{\ell^{(i)} }{\bar{\ell} } }, \quad \alpha >0. \tag {15}$$
      • \(\ell^{(i)}\) 是 Response 长度
      • \(\bar{\ell}\) 是组均值
    • 这个惩罚随着长度增加而平滑下降,同时通过 \(\bar{\ell}\) 归一化避免了任意的全局阈值,并使惩罚适应模型当前的生成行为
  • 如表 2 所示,将固定阈值截断方法(2025)作为一个极简基线
    • 可以发现,基于阈值的截断即使在困难的基准测试上也强加了统一的最大 Response 长度,这会损害在挑战性问题上的推理性能
    • 与其他组相对方法进行比较,发现某些塑形策略(2025)引入了偏向于在简单基准上进行浅层推理的偏差(分析见附录 B)
    • 作者还评估了另一种组相对方法 Kimi-1.5(2025),但它表现出训练崩溃;
      • 因此,作者省略了其结果
      • 作者将此失败归因于没有门控的加性塑形范式,如第 3.1 节所述

Advantage-Aware Calibration

  • 在组相对策略优化的框架内,长度惩罚项 \(S\) 充当了优势格局的强大塑造者
  • 惩罚强度与组归一化之间的相互作用 is non-trivial:\(S\) 的微小变化都可能显著改变优化轨迹
    • 在实践中,无约束或过强的惩罚可能会严重惩罚高质量 Response ,以至于产生一个矛盾的信号,阻止模型生成其最佳 Response
  • 一个自然但过于严格的目标是要求所有高质量轨迹都保持正优势
    • 在高奖励密度下,当组内大多数 Response 都达到最大奖励 \(R_{\text{max} }\) 时(例如,16 个中有 15 个是正确的),这会变得难以实现
    • 由于组归一化的零和结构,正确但长度高于平均水平的 Response 可能不可避免地获得负优势
    • 作者在附录 C.1 中对此限制提供了正式分析
  • 理解:GRPO 中,优势为负的 Response 会被打压(降低生成概率),优势为正的 Response 会被提升(提升生成概率)
    • 所以这里主要想强调高质量的 Response 不应该 优势为负
    • 问题:实际上,从 PG 方法来看,即使所有的梯度系数(比如可以为累计收益)都为正,或者都为负,也总会收敛到最优策略(至少从数学上来看是这样的,所有动作的概率都在被提升的时候,因为总的概率和为 1,所以提升最大的动作肯定是概率提升的,提升最小的动作概率肯定是下降的),所以推测,GRPO 这里理论上也不一定需要这个优质样本优势为正的强假设
Average-Case Advantage Preservation,平均情况优势保持
  • 我们不是要保护最长的异常轨迹,而是旨在保持一个有代表性的高质量 Response 的优势
    • 考虑一个 Response ,它达到了组内最大奖励 \(R_{\text{max} }\),并具有组平均长度 \(\bar{\ell}\),并要求其优势保持非负
    • 令 \(\mu_{\bar{R} }\) 表示组内正则化后奖励的均值,这产生了条件:
      $$\frac{R_{\text{max} } }{1 + \alpha\cdot\frac{\bar{\ell} }{\bar{\ell} } }\geq \mu_{\bar{R} }\Rightarrow \frac{R_{\text{max} } }{1 + \alpha}\geq \mu_{\bar{R} } \tag {16}$$
      • 这确保了惩罚 \(\alpha\) 不会推翻一个典型高质量 Response 的优势
      • 在组内所有轨迹都达到 \(R_{\text{max} }\) 的极限情况下,平均情况约束仍然可能无法满足
        • 因此,本文过滤掉此类组 (见附录 C.2)
  • 在实践中,由于 On-policy 采样的随机性,公式 (16) 并非作为每次更新的硬约束来执行
    • 可将其视为选择惩罚系数 \(\alpha\) 的校准标准
  • 在 GRPO 训练开始时运行一个短暂的校准阶段,并测量候选 \(\alpha\) 值上的约束满足率(Constraint Satisfaction Rate, CSR)
    • 然后选择 CSR 保持持续高值(例如,\(\geq 99.9%\))的最大 \(\alpha\),以确保高概率的约束满足,同时保持强大的长度正则化
  • 经验上,通过此协议选择的 \(\alpha\) 在整个训练过程中保持了近乎完美的 CSR(见图 4)
    • 这一点有效地标志了一个实际边界:相对于 GRPO 基线的奖励差距已经是正的,表明任务能力得到保留
    • 进一步降低惩罚强度(即减小 \(\alpha\))不会带来一致的性能提升,反而会导致与训练方差一致的波动

Experiments

Setup

Efficient Reasoning for RLVR
  • 遵循先前的工作,采用 DeepSeek-R1-Distill-1.5B 和 DeepSeek-R1-Distill-7B (2025) 作为基础模型
  • 对于数学推理,使用 DeepScaleR-Preview-Dataset (2025b) 作为训练数据
    • 将现有高效推理方法的开源检查点作为基线,如 LC-R1 (2025)、Laser (2025c)、AdaptThink (2025) 和 DLER (2025b)
  • For 通用性,进一步将其扩展到代码生成任务,使用来自 DeepDistill (2025) 的 Prompt
Mitigating Length Bias in RLHF
  • 对于 RLHF 设置,使用非推理版本的 Qwen3-4B 和 Qwen3-8B (2025) 作为基础模型
  • 从 arena-human-preference-140k 构建 RL Prompt,并采用 Skywork-Reward-V2-Llama-3.1-8B (2025a) 作为奖励模型
  • 为了提高训练稳定性,应用了基于参考的 Sigmoid 塑形 (2025) 方案(原始论文见:(PAR)Reward Shaping to Mitigate Reward Hacking in RLHF, 20250226-20260121, Fudan & UC Berkeley & StepFun):
    $$R(x,y^{(i)}) = s\Big(R_{\text{origin} }(x,y^{(i)}) - R_{\text{origin} }(x,y^{\text{ref} })\Big). \tag {17}$$
    • \(R_{\text{origin} }(\cdot)\) 表示原始奖励模型分数
    • \(s(\cdot)\) 是 sigmoid 函数
    • 注:原始论文中,可能会有多个 参考回复 \(y^{\text{ref}}\)
  • 详细的实验设置在附录 D 中提供

Main Results

Efficient Reasoning for RLVR
  • 7B 模型的实验结果如表 3 所示,1.5B 模型的结果见附录 E.1
  • \(\mathbf{GR}^3\) 在减少生成长度的同时提高了推理性能,这表明其实现了真正的效率提升,而非一种权衡
  • 在数学推理中,与标准 GRPO 相比,\(\mathbf{GR}^3\) 在保持甚至提升性能的同时,生成了更短的文本
    • 在 7B 规模的 AIME24 上
      • \(\mathbf{GR}^3\) 平均长度:13,213 Token -> 7,923 Token(GRPO 为 11079)
      • Avg@32:52.4 -> 60.1(GRPO 为 57.1)
  • 在数学推理中,与现有的面向长度的基线相比,\(\mathbf{GR}^3\) 没有以牺牲准确性为代价过度压缩推理长度
    • GR3 能优先在保持性能的同时去除冗余推理
    • 在 AIME25(7B)上,没有一个面向长度的基线能够超越初始检查点的性能(39.4),而 \(\mathbf{GR}^3\) 则用更少的 Token(14,032 -> 8,582)将其性能提升至 46.9
    • 这表明 \(\mathbf{GR}^3\) 鼓励更高效的推理轨迹,而不仅仅是截断推理,从而在不同规模上都能带来持续的增益
  • 表 4 展示了在代码 Setting 下的结果,与数学推理结论一致,\(\mathbf{GR}^3\) 在保持任务性能的同时实现了显著的效率提升
Mitigating Length Bias in RLHF
  • 对齐基准上的结果如表 5 所示
    • 与初始模型相比,RLHF 训练在聊天质量上带来了显著的改进
    • 标准 GRPO:
      • 在长度偏置下遭受严重的 Reward Hacking,即模型可以通过生成不必要地长 Response 来人为地增加奖励,导致爆炸性的长度膨胀
      • 例如,在 Qwen3-8B 上,Arena-Hard-Auto 的平均 Response 长度从 1,171 个 Token 增加到 2,343 个 Token
    • \(\mathbf{GR}^3\)
      • 在保持 Response 长度几乎不变的同时,取得了相当甚至更强的对齐增益,有效地将性能提升与冗长性解耦
      • 例如,在 Qwen3-8B 上,\(\text{GR}^{3}\) 将 Arena-Hard-Auto 分数从 77.2 提高到 92.8,而 Token 成本仅略微增加 (1,171 -> 1,178)
  • 图 2 中进一步可视化了 RLHF 设置下的训练动态
    • 在 GRPO 下,Response 长度在整个训练过程中单调且不可控地增长
    • 相比之下,\(\text{GR}^{3}\) 呈现出清晰的“先增后减”模式 :模型最初扩展其推理以确保对齐改进,然后在性能稳定后压缩冗余生成
    • 这种动态行为符合作者的设计直觉:\(\text{GR}^{3}\) 优先实现可靠的对齐增益,然后通过抑制基于长度的利用来逐步提高 Response 效率

Analysis and Discussion

Ablation on Penalty Strength \(\alpha\)
  • 通过在其值范围内进行扫描来研究惩罚系数 \(\alpha\) 的影响,同时保持所有其他设置不变
    • 注:详细的结果和分析见附录 E.2,这里作者仅总结关键发现
  • 当 \(\alpha\) 过大时(例如,1.0):\(\text{GR}^{3}\) 退化为一种朴素的长度正则化方法:Response 变得更短,但相较于基础模型的性能增益有限,因为优化过程主要由压缩主导,而非能力提升
  • 随着 \(\alpha\) 减小:Response 长度平滑增长,而任务性能先提高后趋于平稳
    • 这一趋势与第 3.3 节的分析一致:
      • 当具有代表性的高质量轨迹的优势得以保留后,进一步减小惩罚主要会放宽长度控制,而不会产生更强的学习信号
      • 问题:如何理解这里的 不会产生更强的学习信号?
    • 所选值 \(\alpha = 0.33\) 接近这个过渡区域,在保留大部分性能增益的同时实现了显著的长度缩减
Why Does \(\text{GR}^{3}\) Outperform GRPO?
  • 作者观察到一个反直觉的现象:在许多 Setting 中,\(\text{GR}^{3}\) 不仅缩短了 Response,而且取得了比标准 GRPO 更强的下游性能,同时相对于 GRPO 基线保持正向的奖励差距
    • 作者将此归因于优化信号结构方式的不同
  • 在无约束的 RL(如 GRPO)下,策略往往会漂移到过度扩展的推理轨迹上
    • 尽管这些轨迹最终可能达到正确答案,但它们往往包含许多贡献较低的 Token
    • 从优化的角度来看,这会使得学习信号在长 Response 中被稀释,降低了奖励对最重要推理步骤的有效影响
    • 通过抑制不必要的冗长,\(\text{GR}^{3}\) 在保留关键步骤的同时压缩了推理痕迹
      • 这增加了奖励相对于 Token 的信号密度,使得优化能够更强烈地聚焦于因果上重要的推理模式 ,而不是将梯度分散在冗长但相关性弱的 Token 上
    • 附录 F 中提供了定性的生成示例

Related Work

  • RL (1996; 2022; 2025) 存在推理成本高和生成长度不断增长的问题,作者将这一瓶颈称为 长度膨胀 (length inflation)
  • 一系列工作研究高效推理 (2025; 2025),旨在改进长思维链模型的准确率-成本权衡
    • 早期方法依赖于 Prompt 工程或有监督微调来鼓励更短的推理痕迹 (2025a; 2025; 2025b)
    • 最近更多的方法应用 RL,通过长度感知的目标直接优化效率 (2025; 2025c; 2025)
      • 虽然这些方法在减少 Token 使用方面很有效,但由于惩罚校准不佳或存在捷径解 (2025),它们可能会降低性能或引入不稳定的优化动态
  • 另一系列工作将 RLHF 中的长度膨胀归因于 Reward Hacking 和长度偏置 (2022; 2023; 2023)
    • 由于奖励模型可能隐式地偏爱较长的 Response,冗长可能源于利用奖励的假象而非真正的能力提升 (2023)
    • 先前的工作通过改进奖励建模和校准 (2024a; 2025) 或应用事后奖励修正 (2024) 来缓解这一问题,尽管许多这些解决方案是针对特定训练环境定制的
  • \(\text{GR}^{3}\) 与基于 RL 的高效推理最为相关,并且在由长度偏置驱动的 Reward Hacking 情况下仍然有效
    • \(\text{GR}^{3}\) 是一个通用的长度正则化框架,在保持性能的同时改善了性能-成本帕累托前沿

附录 A:Connection to Heuristic Gating Mechanisms,分析 GR3 与启发式门控机制的联系

  • 第 3.1 节中主要从消除加法塑形固有的补偿性优化捷径的角度来激励乘法塑形
  • 本节通过分析 \(\text{GR}^{3}\) 与启发式门控机制 (2025; 2025) 之间的关系,提供另一种视角
  • 作者证明,乘法塑形可以被视为启发式门控的一个 Principled 泛化:
    • 在二元奖励设置中数学上简化为门控,同时在硬指示器失效的连续奖励场景中提供了一个鲁棒的、”软性”的门控机制

Equivalence in Binary Reward Settings,二元奖励中两者是等价的

  • 启发式门控是对高效推理 (RLVR) 中加法塑形的一种常见改进,可防止模型以牺牲准确性为代价来优化长度
    • 启发式门控通常采用一个指示函数 \(\mathbb{I}(R = 1)\),仅在 Response 正确时应用长度惩罚
  • 设 \(P\) 表示一个通用的基于长度的惩罚项(例如,一个长度的负函数)
    • 标准的门控加法塑形将等式 5 中的塑形项 \(S\) 修改为依赖于任务成功与否的条件形式:
      $$\text{Gated Additive: }\hat{R}^{(+g)} = R + \lambda \cdot S_{\text{gate} }$$ $$\text{where }S_{\text{gate} } = \mathbb{I}(R = 1)\cdot P.$$
      • \(\mathbb{I}(R = 1)\) 是一个硬门控
      • \(R\in \{0,1\}\) 是二元任务结果
  • 考虑在等式 7 中定义的乘法塑形:
    $$\text{Multiplicative: }\hat{R}^{(\times)} = R\cdot S_{\text{mult} }.$$
  • 为了便于比较,将缩放因子 \(S_{\text{mult} }\) 分解为一个基线和偏差项
    • 将 \(S_{\text{mult} } = 1 + (S_{\text{mult} } - 1)\) 重写,其中偏差对应于缩放机制应用的隐式惩罚:
      $$\lambda P:= S_{\text{mult} } - 1\quad \Longrightarrow \quad S_{\text{mult} } = 1 + \lambda P.$$
  • 分析两种二元状态下的行为:
    • 情况 \(R = 0\) (失败):
      $$\hat{R}^{(+g)} = 0 + \lambda \cdot (0\cdot P) = 0$$ $$\hat{R}^{(\times)} = 0\cdot (1 + \lambda P) = 0$$
      • 两种方法都会停用惩罚,防止在困难实例上过早终止
    • 情况 \(R = 1\) (成功):
      $$\hat{R}^{(+g)} = 1 + \lambda \cdot (1\cdot P) = 1 + \lambda P$$ $$\hat{R}^{(\times)} = 1\cdot (1 + \lambda P) = 1 + \lambda P$$
      • 两种方法都应用完整的惩罚,以激励正确解决方案中的效率
  • 结论:在典型的 RLVR 的严格二元奖励设置中,乘法塑形在数学上等价于启发式门控
    • 继承了在不正确的推理路径上保护策略免受惩罚的理想特性

Generalization to Continuous Rewards,泛化到连续奖励

  • 当过渡到连续奖励设置时,启发式门控的局限性变得明显,例如 RLHF(其中奖励通常由奖励模型给出)或具有部分分数的推理任务
  • 在这些场景中,硬指示器 \(\mathbb{I}(R = 1)\) 是难以定义的
    • 简单地将它替换为一个阈值 \(\mathbb{I}(R > \tau)\) 会引入超参数和优化不连续性
    • 相反,完全移除门控(回到纯粹的加法塑形)会重新引入命题 3.1 中讨论的权衡问题,即模型可以通过缩短长度来改进 \(\hat{R}^{(+)}\),即使 \(R\) 略有下降
  • 乘法塑形通过充当软门控机制解决了这个问题
    • 正如命题 3.2 推导的那样,在乘法塑形下,组归一化优势包含以下控制长度信号的项:
      $$A(\hat{R}^{(\times)})\propto R\cdot (S - \mu_S) + \ldots$$
    • 这个分解表明,长度变化 \((S - \mu_S)\) 对优势的影响明确地由任务奖励 \(R\) 缩放
    • 这创建了学习信号的动态重加权:
      • 低质量 \((R \approx 0)\): 长度信号被抑制 \((R \cdot (S - \mu_S) \approx 0)\)
        • 优势主要由改进任务正确性的需求决定,策略几乎收不到关于长度的信号。这模仿了非激活的门控,防止模型坍缩到短但不正确的 Response
      • 高质量 \((R \approx 1)\): 长度信号完全激活 \((R \cdot (S - \mu_S) \approx S - \mu_S)\)
        • 优势显著地倾向于成功组内较短的轨迹
        • 这模仿了激活的门控,能力得到保证后,就有效地优先考虑效率
  • 这个特性有效地根据 Response 质量在”无惩罚”和”完全惩罚”之间进行插值
    • 因此,\(\mathbf{GR}^3\) 允许作者在 RLHF 中应用强长度正则化,而不会有模型坍缩到短、低质量 Response 的风险,如图 2 中的动态所示

Empirical Observation

  • 作者进一步进行了一项分析实验,如图 5 所示
    • 通过定义 \(\lambda P := S_{\text{mult} } - 1\),将乘法塑形项转换为门控加法塑形中使用的惩罚形式
    • 然后引入不同的阈值 \(\mathbb{I}(R > \tau)\) 来将门控加法塑形扩展到连续奖励的 RLHF 设置
    • 可观察到
      • 由于优化不连续性,所有 \(\tau\) 的选择都导致性能低于标准 GRPO
      • 同时,生成长度被更激进地减少,降至基础策略模型的典型水平以下

附录 B:Analysis of the Difficulty Over-Adaptation Phenomenon,难度过适应现象分析

  • 第 3.2 节中讨论了组相对长度正则化如何使长度预算适应于 on-policy 统计量
  • 虽然这消除了全局阈值的刚性,但在某些塑形策略中观察到了一个意想不到的副作用(例如,Efficiently (2025)):
    • 策略可能变得对感知到的任务难度过度适应(over-adaptive) ,作者将此现象称为难度过适应(Difficulty Over-Adaptation)
    • 具体解释:模型倾向于在简单 Prompt 上激进地压缩推理,而在困难 Prompt 上未能有效约束过长的长度
      • 理解:可能是因为
        • 简单的 Prompt 上,大家的奖励都收敛为 1 左右了,从而学习的重点是长度(缩短)
        • 困难的 Prompt 上,偶尔有一个正确的 Response,此时的长度惩罚可能不占主体,主要以优化 Response 为主
          • 因为乘法情况下,想要获得高的 Final Reward,高质量(Reward Score 为正)的回复是必须的前提
    • 如表 2 所示,并通过表 6 中的示例加以说明
    • 换句话说,正则化器扭曲了推理 effort 在不同难度级别上的分配
  • 为了理解这种偏差背后的机制,作者分析奖励函数对长度变化的敏感性
    • 考虑 Efficiently (2025) 的公式:
      $$\hat{R} (x,y^{(i)}) = R(x,y^{(i)}) - \lambda \cdot \mathbb{I}(R(x,y^{(i)}) = 1)\cdot s\left(\frac{\ell^{(i)} - \bar{\ell} }{\sigma_{\ell} }\right).$$
      • 在这个公式中,sigmoid 函数 \(s(\cdot)\) 的输入被因子 \(1 / \sigma_{\ell}\) 放大
      • 这意味着增加 Response 长度的边际惩罚与该组的统计离散度 \((\sigma_{\ell})\) 成反比
    • 这种依赖性在不同难度区间内造成了不稳定性
      • 在较简单的 Prompt 上,策略通常很自信,并收敛到一致的 Response ,导致长度标准差坍缩(即,\(\sigma_{\ell} \rightarrow 0\))
        • 因此,缩放因子 \(1 / \sigma_{\ell}\) 变得极大
        • 在这个低方差区间内,即使是一个 token 的偏差也会被视为巨大的统计异常值,触发奖励的严重下降
        • 这种 hypersensitivity 迫使模型过度压缩简单 Response 以避免严厉的惩罚
      • 在困难的 Prompt 上,策略通常会探索多样化的推理路径,导致更大的 \(\sigma_{\ell}\)
        • 这会减弱惩罚信号,使得较长的生成能够以相对较小的代价持续存在
  • 相比之下,\(\text{GR}^{3}\) 基于特征尺度(平均长度 \(\bar{\ell}\))而非离散度来归一化惩罚:
    $$\hat{R} (x,y^{(i)}) = R(x,y^{(i)})\cdot \frac{1}{1 + \alpha\cdot\frac{\ell^{(i)} }{\ell} }.$$
    • 惩罚的敏感性取决于相对于 \(\bar{\ell}\) 的比率
    • 平均长度 \(\bar{\ell}\) 对于较简单的任务自然更小(适当地使预算更紧张)
      • 但它代表了 Response 的物理尺度,并且不会随着模型变得自信而坍缩到接近零的值
    • \(\text{GR}^{3}\) 使用基于尺度而非方差进行归一化,提供了一个稳定的正则化信号
      • 该信号对模型的收敛状态保持鲁棒,有效地缓解了不同难度级别间压缩压力的不平衡

附录 C:The Dilemma of High Reward Density,高奖励密度的困境

  • 本节分析了将长度正则化与组归一化优势相结合时出现的一个基本结构张力
  • 作者证明,在高奖励密度下,一个看似理想化的严格条件(确保所有最高奖励轨迹都保持正优势)通常在数学上是不可行的
  • 然后作者证明,即使是一个宽松的平均情况标准,在所有采样轨迹都达到 \(R_{\text{max} }\) 的极限情况下也会退化,这是由于乘法长度重缩放的凸性所致
  • 这些观察结果证明了第 3.3 节中采用的基于松弛的校准策略和在线过滤策略的合理性

C.1 Impossibility of the Strict Advantage-Preservation Objective,严格优势保持目标是不可行的

A Strict but Natural Objective
  • 长度感知强化学习的一个自然目标是保留最佳解决方案的优化信号
  • 具体来说,考虑以下严格条件:在一个采样组内,所有达到最大任务奖励 \(R_{\text{max} }\) 的轨迹,在长度正则化后应获得正的优势
  • 直观上,这些轨迹代表了最高质量的 Response ,给它们分配负的优势可能会阻碍正确的推理行为
  • 在 GRPO 风格的归一化下,严格的目标因此等价于要求
    $$\hat{R} (x,y^{(j)}) > \mu_{\hat{R} },\quad \forall j\in \mathcal{H}$$
    • \(\mathcal{H}:= \{j:R(x,y^{(j)}) = R_{\text{max} }\}\) 表示最高奖励轨迹的集合
    • \(\hat{R} (x,y^{(j)})\) 是正则化后的奖励,而 \(\mu_{\hat{R} }\) 是组内正则化奖励的平均值
Impracticality Under High Reward Density,在高奖励密度下,上述目标不切实际
  • 在高奖励密度下,为所有最高奖励轨迹保留正优势的严格目标在数学上是不可行的,无论长度惩罚系数 \(\alpha\) 有多小
  • 在 \(\mathbf{GR}^3\) 下,正则化奖励为
    $$\hat{R} (x,y^{(j)}) = \frac{R(x,y^{(j)})}{1 + \alpha \cdot \frac{\ell^{(j)} }{\ell} }.$$
  • 对于所有 \(j\in \mathcal{H}\),有 \(R(x,y^{(j)}) = R_{\text{max} }\),因此 \(\hat{R}\) 的变化仅取决于长度
  • 由于正则化项在 \(\ell^{(j)}\) 上是单调递减的,\(\mathcal{H}\) 中最长的轨迹
    $$\ell_{\text{max} } = \max_{j\in \mathcal{H} }\ell^{(j)}$$
  • 获得最小的正则化奖励
    $$\hat{R}_{\text{min} } = \frac{R_{\text{max} } }{1 + \alpha \cdot \frac{\ell_{\text{max} } }{\ell} }.$$
  • 当奖励密度高时,组均值 \(\mu_{\hat{R} }\) 主要由 \(\mathcal{H}\) 中的轨迹决定,因此近似于它们的平均值
  • 由于一个集合的最小值不能超过其均值,作者必须有 \(\hat{R}_{\text{min} }\leq \mu_{\hat{R} }\)
  • 因此,至少有一个最高奖励轨迹在组归一化后获得非正的优势
    • 这表明,在高奖励密度下,所有最高奖励轨迹在组归一化后都保持正优势是不可能的
    • 这种冲突是结构性的,而非超参数选择的结果
  • 即使在极限 \(\alpha \rightarrow 0\) 下,这种不可能性仍然存在
    • 使用一阶展开,
      $$\hat{R} (x,y^{(j)})\approx R_{\text{max} }\cdot \left(1 - \alpha \cdot \frac{\ell^{(j)} }{\ell}\right)$$
    • 并记
      $$\bar{\ell}_{\mathcal{H} } = \frac{1}{k}\sum_{j\in \mathcal{H} }\ell^{(j)}$$
    • 为最高奖励轨迹中的平均长度,得到
      $$\hat{R} (x,y^{(j)}) - \mu_{\hat{R} }\approx -R_{\text{max} }\cdot \alpha \cdot \frac{\ell^{(j)} - \bar{\ell}_{\mathcal{H} } }{\bar{\ell} }.$$
    • 因此
      $$\hat{A}^{(j)}\propto -(\ell^{(j)} - \bar{\ell}_{\mathcal{H} }).$$
    • 所以任何长度超过 \(\mathcal{H}\) 平均长度的最高奖励轨迹都必须获得负优势,无论 \(\alpha\) 有多小
    • 组归一化强制实行零均值约束,这不可避免地导致在具有不同长度的同等正确的轨迹中产生符号翻转
Empirical Observation
  • 图 6 凭经验说明了这一现象
    • 横轴显示组中达到 \(R_{\text{max} }\) 的轨迹比例(奖励密度),纵轴显示满足严格条件 \(A_{i} > 0\) 的最高奖励轨迹的比例
    • 即使使用非常小的惩罚强度(图 6(a), \(\alpha = 0.05\)),满足率也随着奖励密度的增加而下降
    • 使用较大的 \(\alpha\)(图 6(b), \(\alpha = 5.0\)),下降变得更加明显
    • 这些结果证实,严格条件的违反源于固有的结构冲突,而不是糟糕的超参数调整
  • 这个不可能性结果直接激发了第 3.3 节中宽松校准策略的提出(在组内所有轨迹都达到 \(R_{\text{max}}\) 的极限情况下, 过滤掉此类组)
    • 作者不是试图保护最长的高奖励轨迹(这通常是不可行的),而是采用一个平均情况标准,确保一个典型的、长度接近组均值的高质量轨迹保持在组平均正则化奖励之上
    • 这自然导致了等式 16 中的实际约束

C.2. Degeneracy of the Average-Case Criterion in the All-\(R_{\text{max} }\) Limit,全 \(R_{\text{max} }\) 极限下平均情况标准的退化

  • 回顾平均情况校准标准(等式 16),它要求一个代表性的高质量轨迹(奖励 \(R_{\text{max} }\) 和平均长度 \(\bar{\ell}\))保持非负优势:
    $$\frac{R_{\text{max} } }{1 + \alpha}\geq \mu_{\hat{R} }$$
    • \(\mu_{\hat{R} }\) 表示正则化奖励的组内均值
  • 如第 3.3 节所述,在组中所有轨迹都达到 \(R_{\text{max} }\) 的极限情况下,这个约束可能会失败,这激发了在线过滤的动机
All-\(R_{\text{max} }\) case reduces the condition to a Jensen inequality,全为 \(R_{\text{max} }\) 将条件简化为 Jensen 不等式
  • 假设一个采样组满足所有 \(i \in \{1, \ldots , G\}\) 有 \(R(x,y^{(i)}) = R_{\text{max} }\)
  • 在 \(\text{GR}^{3}\) 下,正则化奖励为
    $$\hat{R}^{(i)} = R_{\text{max} }\cdot \frac{1}{1 + \alpha\cdot\frac{\ell^{(i)} }{\bar{\ell} } }.$$
  • 定义归一化长度比率 \(z_{i} := \ell^{(i)} / \bar{\ell}\),它满足 \(\frac{1}{G} \sum_{i = 1}^{G} z_{i} = 1\)
  • 设
    $$f(z):= \frac{1}{1 + \alpha z},\qquad z\geq 0.$$
  • 那么 \(\mu_{\hat{R} } = R_{\text{max} } \cdot \frac{1}{G} \sum_{i = 1}^{G} f(z_{i})\),并且等式 16 变为
    $$f(1)\geq \frac{1}{G}\sum_{i = 1}^{G}f(z_{i}).$$
Convexity flips the inequality,凸性翻转了不等式
  • 直接计算给出
    $$f^{\prime \prime}(z) = \frac{2\alpha^{2} }{(1 + \alpha z)^{3} } >0$$
  • 所以 \(f\) 在 \([0,\infty)\) 上是凸函数
  • 根据 Jensen 不等式,
    $$f\left(\frac{1}{G}\sum_{i = 1}^{G}z_{i}\right)\leq \frac{1}{G}\sum_{i = 1}^{G}f(z_{i}).$$
  • 利用 \(\frac{1}{G}\sum_{i}z_{i} = 1\),可以得到
    $$f(1)\leq \frac{1}{G}\sum_{i = 1}^{G}f(z_{i})$$
    • 这与期望的条件相反
  • 而且,只要长度不全相同(即,当 \(z_{i}\) 不是常数时),这个不等式就是严格的
    • 因此,在一个全 \(R_{\text{max} }\) 组中,等式 16 中的平均情况约束只有在退化情况 \(\ell^{(1)} = \dots = \ell^{(G)}\) 下才能成立;否则它必然失败
    • 这解释了为什么作者在实践中通过在线过滤排除这样的组
  • 理解:
    • 这里这种组下,都是正确的回复,我们希望模型选择更短的 Response,似乎也不是什么问题吧?为什么在作者的眼里是一个问题呢?

附录 D:Detailed Experimental Settings

  • 在跨越 RLVR 和 RLHF 的代表性后训练场景中评估 \(\text{GR}^{3}\)
  • 在 RLVR 设置中,研究模型是否能在保持任务性能提升的同时,减少不必要的长 CoT 推理
  • 在 RLHF 设置中,检验 GR3 是否减轻了 Reward Hacking (2016) 并产生具有自然 Response 长度的良好对齐的 Response
  • 本节提供实验中使用的详细超参数和配置
    • 所有实验均使用 veRL (2024) 作为训练框架进行,基于标准的 GRPO 优势估计器
    • 实验的详细实现设置如表 7 所示
  • 作者还做了如下验证:
    • 在 AIME-24 (MAA, 2024)、AIME-25 (MAA, 2025)、AMC-23 (MAA, 2023) 和 MATH500 (2023) 上评估数学推理能力
    • 在 LiveCodeBench v6 (2024) 和 MultiPL-E (2022) 上评估代码生成能力
    • 在 Arena-Hard-Auto (2024) 和 AlpacaEval (2024) 上评估对话能力
  • 遵循标准做法,报告 AlpacaEval 的长度控制 (LC) 胜率
    • 对于 Arena-Hard-Auto,不应用长度控制,而是使用直接从原始成对评判器得出的分数

附录 E:Additional Experimental Results

E.1. Mathematical Reasoning Results on 1.5B Models

  • 本节展示使用 DeepSeek-R1-Distill-1.5B 作为基础模型的数学推理任务实验结果
  • 如表 8 所示,结果与 DeepSeek-R1-Distill-7B 的实验结果一致:
    • \(\text{GR}^3\) 不仅显著增强了模型的推理能力,而且在 token 数量方面大幅减少了生成输出的长度,展示了在不同规模上的良好性能

E.2. Ablation Results on Penalty Strength \(\alpha\),关于 \(\alpha\) 的消融结果

  • 本节通过在相同训练设置下改变其值,分析 \(\text{GR}^3\) 对长度惩罚系数 \(\alpha\) 的敏感性
  • 1.5B 模型的详细结果如表 9 所示
    • 当 \(\alpha\) 较大时(例如, \(\alpha = 1.0\)),乘法重缩放项会严重惩罚长轨迹,很大程度上独立于它们的奖励水平
      • 在这种 regime 下,\(\text{GR}^3\) 的行为类似于传统的长度惩罚 RL,其中优化主要由缩短 Response 而非提高解决方案质量驱动
      • 尽管 token 使用量显著减少,但相对于初始模型的性能增益变得明显较小,表明过于激进的正则化抑制了有用的长形式推理
    • 随着 \(\alpha\) 减小, Response 长度以逐渐且良好的方式增加,而任务性能首先提高,然后趋于饱和
      • 特别是,从 \(\alpha = 0.33\) 移动到更小的值(例如,0.2 和 0.1)会产生更长的生成,但准确率提升微乎其微或不一致
        • 这一经验趋势与第 3.3 节中的分析紧密吻合
      • 一旦惩罚足够弱,以至于代表性的高质量轨迹的优势得以保留,进一步降低 \(\alpha\) 主要会放宽长度约束,而不会引入更强的优化信号
        • 换句话说,训练已经越过了优势保持边界,在此之后,额外的推理长度不再转化为有意义的性能增益
  • 总体而言,\(\alpha\) 控制着不同的行为区间,而 \(\text{GR}^3\) 提供了一种 Principled 方法,使其在长度控制和能力增益之间的优势保持过渡点附近进行选择

附录 F:Qualitative Analysis of Rollout Trajectories,Rollout 轨迹的定性分析

  • 为了更好地理解两种训练目标所导致的行为差异,本节在相同的推理 Prompt 上,展示了 \(\text{GR}^3\) 训练模型和 GRPO 训练基线的代表性 rollout 示例
  • 表 10 和 11 显示了生成轨迹

\(\text{GR}^3\): concise reasoning with preserved structure,简洁的推理与保留的结构

  • 如表 10 所示,\(\text{GR}^3\) 训练的模型产生了一个既结构化又经济的推理轨迹
  • 解决方案遵循清晰的进展:
    • (i) 重述任务
    • (ii) 识别完整旋转下方向的周期性
    • (iii) 将角度约简为 \(360^{\circ}\) 的余数
    • (iv) 将剩余旋转映射到罗盘方向
    • 每一步都直接有助于推进解决方案,中间检查用于确认而非重新推导早期的结果
  • 重要的是,轨迹以正确格式化的 boxed 答案果断终止
    • 推理链既没有人为缩短,也没有过于冗长
    • 冗余的重新计算和自我怀疑循环基本不存在
    • 这反映了一个策略,它已经学会主要将 token 分配给因果相关的步骤

GRPO: verbose loops and diluted signal,冗长的循环和稀释的信号

  • GRPO 训练的 baseline(表 11)表现出显著不同的行为
    • 尽管它反复识别出正确的中间事实(例如 \(360^{\circ}\) 周期性和 \(2250 \mod 360 = 90^{\circ}\) 的约简)
    • 但它经常重新推导这些事实,质疑先前已建立的结论,并在等效的公式之间振荡(例如,完整旋转与分数旋转)
    • 轨迹包含多次自我修正,但这些修正并未引入新信息
  • 这种模式导致冗长的推理痕迹,其中许多 token 仅与进展 weakly 相关
    • 从优化的角度来看,这样的轨迹将奖励信号分散到大量低影响的 token 上,减少了对决定性推理步骤的有效学习压力
    • 此外,尽管最终绕回正确的方向,但模型未能以所需的 boxed 格式呈现清晰的最终答案,使解决方案没有结论

Implications for optimization dynamics

  • 这些定性差异与第 4.3.2 节讨论的机制一致
  • 通过降低不必要长轨迹的优势,\(\text{GR}^3\) 隐式地偏好具有更高 Per Token 信息密度的推理路径
  • 这鼓励策略保留基本的逻辑结构,同时避免非鲁棒的推理模式,例如重复或自我怀疑的循环
  • 结论:奖励信号更加集中在对应于有意义的推理转换的 token 上,而不是被稀释到冗长但贡献低的片段中

NLP——LLM对齐微调-OPSD

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(OPSD)Self-Distilled Reasoner: On-policy Self-Distillation for Large Language Models, 20260126 - 20260305, UCLA & Meta

Paper Summary

  • 整体总结:
    • 本文提出了新方法 OPSD(On-Policy Self-Distillation)
      • 无需外部 Teacher 模型 ,也无需奖励建模 ,仅利用模型自身的生成和评估能力进行自我提升
      • 显著提升样本效率 :比 GRPO 节省 8–12 倍生成 token(推测是奖励更密集导致)
    • 一些认知:
      • 成功的自蒸馏需要足够大的语言模型
      • 在 On-policy 采样阶段生成更多 Token 以及使用全词表 Logit 蒸馏能带来更好的学习效果
  • 问题提出:
    • 现有 RLVR 方法(如 GRPO)存在一些问题:
      • 样本效率低(每组需生成多个回复)
      • 奖励稀疏(仅 Sequence-level 反馈)
      • 梯度消失(当所有样本都对或错时)
      • 注:这里将 GRPO/PPO 等与 RLVR 强绑定描述非常奇怪,RLVR 更像是描述一类具有 Variable Reward 的 RL 信号建模方法,并不太适合描述为一个具体的 RL 训练方法
        • 本文中存在大量将 RLVR 和 GRPO 的方法等价来描述的错误措辞,需要小心辨别
    • 传统知识蒸馏:通过压缩 Teacher LLM 的知识来训练较小的 LLM
      • 依赖外部 Teacher 模型,存在分布偏移问题
    • On-policy 蒸馏:通过让 Student 模型采样自己的轨迹,同时 Teacher LLM 提供密集的 Token-level 监督,解决 Off-policy 蒸馏方法中训练和推理之间的分布不匹配问题
      • On-policy 蒸馏通常需要一个单独的、通常更大的 Teacher LLM,并且没有明确 利用推理数据集中的 ground-truth 的解决方案
  • Insight:一个足够强大的推理 LLM(Student)在看到正确答案后,可以理解并修正自己的错误
    • 可让 LLM 利用外部信息教导较弱的自身(即无法外部信息的版本)
  • On-policy Self-Distillation (OPSD) 核心思路:
    • 让同一个模型同时扮演 Teacher 和 Student ,通过不同的上下文条件生成不同的分布,并在 Student 自己的生成轨迹上进行逐 token 的分布匹配
    • 给定一个数据集 \(\mathcal{S} = \{(x_i, y_i^*)\}\),其中 \(x\) 是问题,\(y^*\) 是参考答案(包括推理过程)
      • Student 策略 :\(p_S(\cdot | x)\),仅基于问题生成答案
      • Teacher 策略 :\(p_T(\cdot | x, y^*)\),基于问题和参考答案生成答案
      • 两者共享模型参数 \(\theta\),仅输入不同
    • 基本思路:从 Student 策略采样, Student 生成一个回答,然后逐 token 分布匹配
  • OPSD 算法流程总结
    • Step 1:初始化模型参数 \(\theta\)
    • Step 2:对每个样本 \((x, y^*)\):
      • Student 生成回答 \(\hat{y} \sim p_S(\cdot | x)\)
      • 对每个token位置 \(n\):
        • 计算 Teacher 分布 \(p_T(\cdot | x, y^*, \hat{y}_{<n})\)
        • 计算 Student 分布 \(p_S(\cdot | x, \hat{y}_{<n})\)
        • 计算分布差异 \(D\)
      • 平均所有 token 的差异
    • Step 3:反向传播更新 Student 策略( Teacher 策略不更新,梯度不流入 Teacher )
      $$
      \mathcal{L}_{\mathrm{OPSD} }(\theta) = \mathbb{E}_{(x,y^*)\sim \mathcal{S} } \mathbb{E}_{\hat{y} \sim p_S(\cdot | x)} \left[ \frac{1}{|\hat{y}|} \sum_{n=1}^{|\hat{y}|} D\big(p_T | p_S\big) \right]
      $$
    • Step 4:重复直到收敛
  • SDPO vs OPSD(本文) 方法:
    • 除了 OPSD 强调信号来自已有数据集 \(\mathcal{D}\) 的参考答案外,OPSD 几乎和 SDPO 思路一致,都是 On-policy 蒸馏的
    • SDPO 强调外部评估环境信号
      • 实际上,在 SDPO 原始论文的表 2 中可以看到:如果存在正确 Rollout 的话,Teacher 的 Prompt 中可能会包含之前生成的正确 Rollout 作为 Hint
    • OPSD 强调参考答案 \(y^*\),类似 SFT 的样本(注意:OPSD 要求包含的参考答案 \(y^*\) 是原始数据集中必须存在的,不是 Student 也不是 Teacher 生成的)
      • 两者算法上几乎没有差异(两篇文章几乎同时发出 20260126 vs 20260128,算是并发的工作,OPSD 引用了 SDPO )
      • 总结来说:两者核心区别在于 hint 信号不同:
        • OPSD 更强调仅使用自身(能生成至少一次正确答案的自身)模型,数据集必须包含参考答案 \(y^*\)(类似 SFT 的样本)
        • SDPO 则强调外部评估信号的引入(数据集中只需要 Query,不需要参考答案 \(y^*\),但需要外部评估的反馈信号)

Introduction and Discussion

  • 已有各种方法的缺点:
    • RLVR(如 GRPO/PPO 等): 存在效率低下的问题,包括:
      • (1) 为每个 Prompt 采样一组 Response 在计算上代价高昂,并且可能在估计真实价值函数时引入高方差
        • 当所有样本都是正确或错误时,梯度信号会消失
      • (2) 奖励信号是稀疏的,并且统一应用于生成输出的所有 token,忽略了细粒度的 Token-level 反馈
    • 监督微调:
      • 存在曝光偏差 (训练的前缀往往是当前策略不会生成的)
      • 泛化能力较弱 (跟曝光偏差也有关系,数据本身受限于固定的数据)
    • 传统的知识蒸馏: 提供了来自 Teacher 模型的密集 Token-level 监督
      • 但依赖于 Off-policy 数据 (2015)
    • On-policy 蒸馏: 让 Student 模型采样自己的轨迹,Teacher 策略提供密集的 Token-level 监督
      • 通过结合 On-policy 训练的现实分布特性和密集反馈,展示了卓越的样本效率 (2024; 2025)
  • On-policy 蒸馏很好,但需要有一个一个独立与于 Student 的,比 Student 更好的 Teacher 模型来监督 Student
    • 理解:On-policy 蒸馏对 Teacher 模型的要求很高,必须要求 Teacher 模型比 On-policy 好许多才行
  • 研究问题提出:一个模型能否通过自蒸馏有效地充当自己的 Teacher ?
    • 受到人类学习的启发:在错误地解决一个问题后,Student 可以检查正确的解决方案,解释其步骤,并找出自己推理失败的地方
    • 先前研究表明,对于 LLM 来说,评估通常比生成更容易 (2024; 1996)
    • 本文作者假设,解释(对一个给定正确答案进行说明)同样比生成更容易
      • 吐槽:这么随意的吗?
    • 本文将 Teacher 和 Student 策略从一个单一的 LLM 中实例化
      • Teacher 策略被提供了 Privileged 信息 \(y^*\)
        • 例如 ground-truth 答案或参考思维链
        • Teacher 策略 \(p_T(\cdot |x,y^*)\) 同时基于问题和 Privileged 答案进行条件设定
      • Student 策略仅基于问题 \(x\) 进行条件设定
        • Student 策略 \(p_S(\cdot |x)\) 仅观察问题
    • 通过仅从 Student 策略采样轨迹 \(\hat{y}\) 来保留 On-policy 训练范式
      • 然后 Student 策略从 Privileged Teacher 策略那里接收密集的 Token-level 监督
  • 本文提出 On-policy Self-Distillation (OPSD) 框架
    • 其中单个模型同时扮演 Teacher 和 Student 的角色
    • Student 采样其自己的轨迹 \(\hat{y} \sim p_S(\cdot |x)\)
    • 计算 Student 和 Teacher 分布之间的每个 token 的散度,并将其最小化于 Student 自己的 Rollout 之上
    • 这个公式:
      • (i) 使用了 On-policy 监督( Student 自己的轨迹)
      • (ii) 提供了密集的每个 token 反馈
      • (iii) 利用了 ground-truth 解决方案 \(y^*\)
      • (iv) 不需要单独的 Teacher 模型
    • 学习过程由损失函数描述
      $$\mathcal{L}_{\text{OPSD} }(\theta) = \mathbb{E}_{(x,y^*)\sim \mathcal{S} }\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}\sum_{n = 1}^{|\hat{y}|}\ D\Big(p_T(\cdot |x,y^*,\hat{y}_{< n})\Big|\Big| p_S(\cdot |x,\hat{y}_{< n})\Big) \tag {1}$$

Background

Knowledge Distillation for Autoregressive Large Language Models

  • 知识蒸馏通过训练 Student 模型模仿 Teacher 模型的行为,将知识从较大的 Teacher 模型转移到较小的 Student 模型 (2015;2016;2019)
    • Teacher 模型在类别上的软概率分布包含了比硬标签更丰富的信息,因为 软概率分布 揭示了 Teacher 模型学习到的类别之间的相似性
    • 对于自回归语言模型,给定一个数据集
      $$ \mathcal{S} = \{(x,y^*)\}$$
      • \(x\) 表示输入
      • \(y^*\) 是对应的参考输出
      • 注意:这里 \( \mathcal{S}\) 跟后续的脚标 \(S\) 容易引起混淆,注意数据集是花体
    • Teacher \(p_T\) 和 Student \(p_S\) 都定义了词表 \(\mathcal{V}\) 上的 Token-level 分布
  • 传统的监督蒸馏最小化 Teacher 和 Student 分布之间的散度 \(D\),并在固定数据集上取平均:
    $$\mathcal{L}_{\text{Supervised Distillation} }(\theta) = \mathbb{E}_{(x,y)\sim \mathcal{S} }[D(p_T| p_S)(y|x)] \tag {2}$$
    • 其中 \(D(p_T| p_S)(y|x)\) 衡量每个 token 的差异:
      $$ D(p_T| p_S)(y|x) = \frac{1}{|y|}\sum_{n = 1}^{|y|}D(p_T(\cdot |y_{< n},x) || p_S(\cdot |y_{< n},x)) $$
    • 但这种 Off-policy 方法存在分布不匹配的问题:
      • Student 在自回归生成过程中遇到的部分序列 \(y_{< n}\) 与在固定数据集上训练时看到的序列不同,导致错误累积
  • On-policy 蒸馏(OPD) (2024;2025;) 使用 Student 采样序列 \(\hat{y} \sim p_S(\cdot |x)\)
    • 并从 Teacher 那里获得密集的 Token-level 反馈:
      $$\mathcal{L}_{\text{On-Policy Distillation} }(\theta) = \mathbb{E}_{x\sim \mathcal{S} }[\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}[D(p_T| p_S)(\hat{y} |x)]] \tag {3}$$
      • OPD 将蒸馏与模仿学习联系起来
      • OPD 中,Student 在 Student 自身的输出上学习 Teacher 的信号来迭代改进
        • 这结合了 RL 的 On-policy 相关性和监督学习的密集奖励信号
      • OPD 减轻了曝光偏差,同时保持了计算效率

RLVR:Reinforcement Learning with Verifiable Rewards

  • RLVR 是 LLM 后训练的一种流行方法,特别是在数学和编程等结果易于验证的任务上
    • RLVR 一般使用 PPO 和 GRPO 等算法
  • GRPO 通过为每个问题 \(x\) 从当前策略 \(\pi_{\theta}\) 采样一组 \(G\) 个 Response \(\{o_1,o_2,\ldots ,o_G\}\) 来进行训练
    • 每个 Response \(o_i\) 收到一个表示正确性的二进制奖励 \(r_i\in \{0,1\}\)
    • 该方法使用一个组归一化的奖励为 Response \(o_i\) 内的所有 token \(k = 1,\ldots ,|o_i|\) 分配优势:
      $$A_{i} = \frac{r_{i} - \text{mean}(\{r_{j}\}_{j = 1}^{G})}{\text{std}(\{r_{j}\}_{j = 1}^{G})} \tag {4}$$
      • 这个公式可以通过价值函数的角度来理解:
        • \(\text{mean}(\{r_j\}_{j = 1}^G)\) 作为价值函数 \(V(x)\) 的 \(G\) 样本蒙特卡洛估计
        • 稀疏的二进制奖励 \(r_i\) 代表(未折扣的)状态-动作价值 \(Q(x,o_i)\)
      • 由于奖励信号仅在 Sequence-level 提供,一个 Response 内的所有 token 共享相同的优势
    • GRPO 目标函数包含一个裁剪的替代损失以缓和策略更新,以及一个反向 KL 惩罚项以防止过度偏离参考策略:
      $$\begin{align}
      \mathcal{L}_{\text{GRPO} }(\theta) = \mathbb{E}_{x \sim \mathcal{S}, \{o_i\}_{i=1}^G \sim \pi_{\theta}(\cdot|x)} \left[\frac{1}{G}\sum_{i = 1}^{G}\frac{1}{|o_i|}\sum_{n = 1}^{|o_i|} \min (\rho_i^n A_i,\text{clip}(\rho_i^n,1 - \epsilon ,1 + \epsilon)A_i) -\beta D_{\text{KL} }[\pi_{\theta}(\cdot |x)||\pi_{\text{ref} }(\cdot |x)]\right] \end{align} \tag {5}$$
      • \(\rho_i^n = \frac{\pi_{\theta}(o_i^n|x,o_i^{< n})}{\pi_{\theta_{\text{old} } }(o_i^n|x,o_i^{< n})}\) 是重要性比率
        • 其中的 \(\pi_{\theta_{\text{old} } }\) 是本轮更新前的策略
      • \(\epsilon\) 控制裁剪范围
  • RLVR 方法面临两个关键限制:
    • (1) 奖励信号稀疏,仅提供 Sequence-level 反馈,而不是关于错误发生在哪里的 Token-level 指导
    • (2) 当所有采样的 Response 收到相同的奖励(全部正确或全部错误)时,优势变为零
      • 有采样成本,但无法进行任何策略更新
  • 问题:作者这里将 GRPO/PPO 等与 RLVR 强绑定描述非常奇怪,RLVR 更像是描述一类具有 Variable Reward 的 RL 信号建模方法,并不太适合描述为一个具体的 RL 训练方法

Methods

Learning from Verifiable Reasoning Dataset

  • 考虑一个问题-解决方案对的数据集
    $$ \mathcal{S} = \{(x_i,y_i^*)\}_{i = 1}^N$$
    • \(x_i\) 表示一个问题
    • \(y_i^*\) 是对应的参考解决方案(可能包含思维链推理)
    • 为简洁起见,后续本文省略样本索引 \(i\),并使用 \((x,y^*)\) 表示数据集中的一个通用样本
  • 可以通过不同方式利用这个数据集的学习信号:
    • SFT: 在该数据集 \(\mathcal{S}\) 上进行标准的 SFT 可以看作是一种使用专家轨迹的 Off-policy 蒸馏/模仿学习
      • 但 SFT 存在训练和推理之间的分布不匹配问题
    • RLVR: 基于 RLVR 也可以
      • 比如 GRPO 通过在 On-policy 样本上进行优化并通过将生成答案与 \(y^*\) 比较来分配二进制奖励来解决此问题
      • 但 RLVR 计算代价高昂,并且奖励信号稀疏,无论错误发生在哪里,都为所有 token 提供相同的反馈
        • 理解:这里的表述可以是对的,也可以是错的
          • “对的” 理解方式:RLVR 中的 Reward 反馈确实是 Sequence-level 的
            • 虽然 PPO 的 Advantage 是 Token-level 的,但是反馈也只是 Sequence-level 的,只是加了 KL 散度建模
          • “错的” 理解方式:若将 PPO 每一步的 KL 散度理解为反馈,那么这里的所谓 RLVR 方法就是错的
    • PRM 添加 Token-level 信号: 可以训练一个 PRM 在 RL 期间提供密集的 Token-level 反馈
      • 但获取用于 PRM 训练的标签非常昂贵且难以扩展 (2023;2025)
    • On-policy Distillation 方法 (2024;2025) 通过训练 Student 自身的样本来解决分布偏移问题
      • 但需要一个单独的、通常更大的 Teacher 模型来提供监督
  • 本文作者寻求一种密集的、on-policy 的、不需要外部 Teacher 或奖励模型的训练信号
    • 这引出了本文的 On-policy Self-Distillation 方法
  • 表 1 中总结了这些方法的差异

On-Policy Self-Distillation

Motivation: Learning by understanding solutions,通过理解解决方案来学习
  • 本文提出了一个受 Student 学习方式启发的不同视角:
    • 当遇到难题时,与其进行长时间的试错,不如让 Student 可以检查解决方案,理解推理过程,并内化该方法
    • 如果一个模型能够访问正确答案或推理过程 \(y^{*}\) 并且足够强大,它可以合理解释推理步骤并自我教导
      • 这类似于 Student 复习一个解决方案并回溯其有效的原因
    • 利用 ground-truth 解决方案 \(y^{*}\) 作为训练期间的 Privileged 信息,使模型能够在不需要外部奖励模型或更大 Teacher 模型的情况下充当自己的 Teacher
Teacher and student policies
  • 通过改变条件上下文,从同一个语言模型 \(p_{\theta}\) 实例化两个条件分布
  • Teacher 策略基于 Privileged 信息,即问题 \(x\) 和参考解决方案 \(y^{*}\) 进行条件设定:
    $$p_{T}(\cdot |x,y^{\star})\triangleq p_{\theta}(\cdot |x,y^{\star}) $$
  • Student 策略只观察问题陈述,与推理时的条件相匹配:
    $$p_{S}(\cdot |x)\triangleq p_{\theta}(\cdot |x) $$
  • Teacher 和 Student 策略共享相同的参数 \(\theta\),仅在条件上下文上有所不同
    • 为了鼓励 Teacher 自然地评估 Student 的生成结果,添加了一个 Prompt
      • 要求 Teacher 在看到参考解决方案后生成一个新的解决方案,如图 2 所示
      • 注:Teacher 不会生成 token,它只是通过前向传播隐式地进行合理化
On-policy sampling from the student
  • 给定一个问题 \(x\)
    • Student 生成一个 On-policy Response
      $$\hat{y} = (\hat{y}_1,\ldots ,\hat{y}_{|\hat{y}|})\sim p_S(\cdot |x) $$
    • 让 Teacher 和 Student 都评估这个 Student 生成的轨迹
    • 在每个位置 \(n\),基于相同的 Student 前缀诱导出下一个 token 的分布:
      $$p_{S}(y_{n}\mid x,\hat{y}_{< n}),\qquad p_{T}(y_{n}\mid x,y^{\star},\hat{y}_{< n}) $$
      • 其中 \(\hat{y}_{< n} \triangleq (\hat{y}_{1}, \ldots , \hat{y}_{n - 1})\)
Training objective: Full-vocabulary logit distillation
  • 本文实例化了一个全词表散度目标,该目标在每个位置上匹配 Teacher 和 Student 的下一个 token 分布
  • 给定一个 Student 生成的序列 \(\hat{y}\),定义轨迹平均的、按 token 计算的散度为
    $$D(p_{T}| p_{S})(\hat{y}\mid x)\triangleq \frac{1}{|\hat{y}|}\sum_{n = 1}^{|\hat{y}|}D\bigg (p_{T}(\cdot \mid x,y^{\star},\hat{y}_{< n})| p_{S}(\cdot \mid x,\hat{y}_{< n})\bigg) \tag {6}$$
    • \(p_S(\cdot \mid x,\hat{y}_{< n})\) 和 \(p_T(\cdot \mid x,y^*,\hat{y}_{< n})\) 表示下一个 token \(y_{n}\in \mathcal{V}\) 上的分布
  • 这里,\(D\) 可以是任何分布散度度量(Forward/Reverse KL 或者 Jensen-Shannon Divergence (JSD) 等),例如广义 Jensen-Shannon 散度 \(\text{JSD}_{\beta}\),对于权重 \(\beta \in [0,1]\) 定义为:
    $$\text{JSD}_{\beta}(p_{T}| p_{S}) = \beta D_{KL}(p_{T}| m) + (1 - \beta)D_{KL}(p_{S}| m) \tag {7}$$
    • 其中 \(m = \beta p_{T} + (1 - \beta)p_{S}\) 是插值混合分布
    • 这种全词表公式提供了密集的、按 token 计算的反馈:
      • 由 \(y^*\) 提供信息的 Teacher 将 Student 暴露在合理下一个 token 的整个分布中,并引导它走向能得出正确答案的推理路径
  • 本人最小化 On-policy Student 样本上的 Teacher 和 Student 之间的期望散度:
    $$\mathcal{L}(\theta) = \mathbb{E}_{(x,y^{\star})\sim \mathcal{S} }\left[\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}\left[D(p_T| p_S)(\hat{y}\mid x)\right]\right] \tag {8}$$
  • 梯度仅通过 Student 策略 \(p_S\) 反向传播,而 Teacher \(p_T\) 作为一个固定的、基于 Privileged 信息 \((x,y^*)\) 的全分布目标
Per-Token Pointwise Divergence Clipping
  • 本文实验观察到 Token-level 散度在词表条目上高度倾斜:
    • 一小部分风格化 Token 的散度远高于具有数学意义的 Token(见表 5)
    • 这种不平衡导致训练信号被风格化模式所主导
  • 为了解决这个问题,本文对词表级别的散度贡献应用逐点裁剪
    • 令 \(D_f(p_T | p_S)\) 表示一个 \(f\)-散度
    • 在每个 Token 位置 \(n\) 和词表条目 \(v\) 上,定义:
      $$
      \ell^{(f)}_{n,v} = p_T(v \mid \cdot) f\left(\frac{p_S(v \mid \cdot)}{p_T(v \mid \cdot)}\right)
      $$
  • 计算裁剪后的散度:
    $$
    D^{(f)}_{\text{clip} }(p_T | p_S) = \frac{1}{|\hat{y}|} \sum_{n=1}^{|\hat{y}|} \sum_{v \in \mathcal{V} } \min(\ell^{(f)}_{n,v}, \tau)
    $$
Alternative objective: Sampled-token distillation through policy gradient
  • 本文 Follow 最近的 On-policy 蒸馏方法 (2025),构建了一个 Sample-token 奖励信号(关于采样动作的反向 KL 信号),并使用策略梯度进行优化
  • 对于一个采样序列 \(\hat{y}\) 中的每个位置 \(n\),定义优势项
    $$ A_{n}(x,\hat{y}) = \log p_{T}(\hat{y}_{n}\mid x,y^{\star},\hat{y}_{< n}) - \log p_{S}(\hat{y}_{n}\mid x,\hat{y}_{< n})$$
  • 并优化策略梯度风格的目标函数
    $$
    \begin{align}
    \mathcal{L}(\theta) = -\mathbb{E}_{(x,y^{\star})\sim \mathcal{S} }\left[\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}\left[\frac{1}{|\hat{y}|}\sum_{n = 1}^{|\hat{y}|}A_n(x,\hat{y}) \cdot \log p_S(\hat{y}_n\mid x,\hat{y}_{< n})\right]\right]
    \end{align}
    \tag {9}
    $$
    • \(A_{n}(x,\hat{y})\) 被视为关于 \(\theta\) 的常数(即,梯度不会通过优势项流动),因此梯度采用通常的策略梯度形式 \(A_{n}\nabla_{\theta}\log p_{S}\)
    • 与全词表散度目标相比,这个 On-policy 塑形目标仅对采样的 token 进行操作,利用 Teacher 的 log-probabilities 提供密集的、轨迹级的塑形信号,而无需在每一步显式匹配完整分布
OPSD as dense-reward policy gradient and comparison to STaR,OPSD 作为密集奖励策略梯度以及与 STaR 的比较
  • 等式 (9) 中的目标可以看作是具有密集、 Token-level 奖励的策略梯度
  • 在附录 C 部分,本文对此进行了形式化,并与 STaR (2022) 进行了对比
    • STaR:
      • 使用相同的模型生成推理轨迹,然后进行拒绝采样,随后对正确的轨迹进行 SFT
      • 这个过程可以看作是具有 Sequence-level 二进制奖励的策略梯度,该奖励为所有 token 分配相同的信用,并在样本不正确时消失
    • OPSD:
      • 无论最终答案正确与否,OPSD 在每个 token 位置都提供反馈

Experiments

  • 本文开展了全面的实验,旨在解答以下研究问题:
    • (1) OPSD在推理性能和样本效率方面与SFT、GRPO相比表现如何?(§4.2)
    • (2) OPSD中的逐 Token 点态KL裁剪(per-Token pointwise KL clipping)如何帮助稳定训练?(§4.3.3)
    • (3) 生成风格、生成长度对模型性能有何影响?(§4.3.4)
    • (4) 全词表logit蒸馏(full-vocabulary logit distillation)相比采样 Token 策略梯度(sampled-Token policy gradient)是否具备优势?(§4.3.5)

Experimental Setup

Models and datasets
  • 本文基于 Qwen3 模型系列的三个参数量规模开展实验:Qwen3-1.7B、Qwen3-4B 和 Qwen3-8B
    • 注:文中强调这里使用的是 instruct 微调版本,但实际上 Qwen3-8B 是没有 Thinking Mode 和 Non-Thinking Mode 在一起的
    • 2507 出的 Qwen-4B 是有 Thinking 版本和 Instruct 版本的
  • 训练数据:
    • 本文会采用 OpenThoughts 数据集 (2025) 中的数学推理子集,抽取 30K 个包含思维链推理的问题-解决方案对
  • Benchmarks
    • 在 AIME 2024、AIME 2025 和 HMMT 2025
Baselines
  • 在相同数据集上与两种方法进行对比:
    • (1) SFT,即基于专家轨迹的标准有监督微调,可视为由生成推理轨迹的更强大LLM执行的离策略蒸馏
    • (2) GRPO(2024),即结合基于真实答案验证的二值结果奖励的分组相对策略优化
      • 最大生成长度设置为16k
Implementation details
  • 将教师策略固定为初始策略,而非当前更新的学习策略
    • 因为实验发现这一设置有助于稳定训练 ,且能隐式起到正则化作用,防止模型过度偏离初始策略 (这个理解不错)
    • 实验中采用全词表 logit 蒸馏的方式
  • 所有实验均在 A100 或 H100 GPU 上完成,并使用 LoRA 技术
    • 注意:这里使用的是 LoRA
  • 更多实验细节见附录B

Main Results

  • 表 2:Qwen3 模型在数学推理基准数据集上的性能对比
    • 按照 Qwen3 技术博客推荐的采样配置(温度值 1.0,最大生成长度 38k)报告 Avg@12 指标;完整细节见 表 8
    • 对于 OPSD,每 20 步评估一次模型检查点,直至 100 步,并报告最优分数
    • 对于 GRPO,报告 500 步训练内的峰值性能(实验发现部分任务中 GRPO 的性能会因后期的熵坍缩出现下降)
    • 对于 SFT,其训练样本量与 OPSD 保持一致
      • SFT 的性能退化源于在简洁的推理解决方案上进行微调,导致模型测试阶段的生成长度缩短
      • OPSD 则通过合理化(Rationalization)将这些解决方案转化为稠密的学习信号
  • 表 2 报告了在数学推理基准数据集上的实验结果
    • 在所有模型规模下,OPSD 始终优于 SFT,且相比基础模型均有性能提升
    • 在所有实验设置中 OPSD 均达到或超越 GRPO 的表现
  • 效率方面:
    • OPSD 仅对每个问题进行一次 rollout 即可实现上述性能提升
      • 在 100 步内收敛
      • 每个问题仅需采样 1024 个 Token
      • 理解:传统的 RL 中不能这样做(这是 OPD 专有的优点)
        • 在 OPD 场景中,不需要 Rollout 结束就可以有奖励(来源于 Teacher)
        • 在传统 RL 场景,一般是需要 Rollout 结束才能得到 Reward 反馈的
    • GRPO 对每个问题需要进行 8 次 Rollout
      • 每次生成 16k 个 Token
      • 后期还可能因熵坍缩出现性能退化
      • 在该 OpenThoughts 数据集上,采样组内的奖励标准差大多为 0,导致模型无法获得学习信号,造成采样预算的浪费
  • 其他观察,在相同数据集上训练时
    • SFT 在所有任务和模型规模下均出现一致的性能退化
    • 这一现象可归因于真实标签解决方案的推理风格简洁,导致模型在测试阶段的生成长度缩短
  • 一些推测:
    • OPSD 的 Token 效率得益于教师分布提供的稠密 Token-level 监督
    • 同时作者推测 :前序 Token 可能对有效蒸馏的贡献更大(因为这些 Token 可能代表了推理过程中更关键的分支节点)
  • 如图 3 所示
    • 在 100 步的训练范围内,OPSD 相比 GRPO 实现了更高的 Token 学习效率
    • 在 100 步训练内,当采样组内的结果奖励保持一致时,GRPO 的性能陷入停滞,学习信号减少,最终导致梯度为 0
    • 这些结果表明,OPSD 能比 GRPO 和 SFT 更高效地从相同的推理数据集中提取学习信号,同时大幅缩短训练时间
  • 图 3. OPSD 的 Token 效率
    • 在相同的有效训练批次大小下比较了 Qwen3-4B 上的 OPSD 和 GRPO,报告了平均 \(@16\) 性能随梯度更新步数和总生成 Token 数的变化
    • 两种方法在每次更新的采样生成数量方面具有相同的有效批次大小,但在生成长度上有所不同:
      • OPSD 的每个生成上限为 1024 个 Token,而 GRPO 为 16384 个 Token
    • OPSD 以明显更少的生成 Token 数量达到了与 GRPO 相当的性能,从而降低了采样成本和训练时间
    • 在此实验中,OPSD 的 Token 效率比 GRPO 高 \(8 - 12 \times\)
    • 实验细节见第 B 节

Ablation Studies & Discussions

  • 本节开展了大量消融实验,研究 OPSD 中关键的设计选择,包括:
    • (1) 散度目标函数
    • (2) 学生和教师的生成风格(如思维模式开启/关闭)
    • (3) 逐 Token KL 裁剪的效果;
    • (4) 学生生成长度的影响
    • (5) 全词表 logit 蒸馏与采样 Token 蒸馏的对比
Effect of Divergence Objective
  • OPSD 中一个关键的设计选择是散度函数的选择
    • 即用于实现教师与学生之间 Per-Token 分布匹配的散度函数
  • 本文在 AIME25 数据集上基于 Qwen3-1.7B 模型,对比了前向 KL 散度、反向 KL 散度和 JSD 散度的表现,结果见表 3
    • 所有目标函数均在相同的点态裁剪方案下评估以保证训练稳定性
    • 前向 KL 散度始终能带来最显著的性能提升,将模型在第 50 步的性能从 36.7 提升至 43.9,且在第 100 步仍高于基线模型
    • 反向 KL 散度和 JSD 散度仅带来有限的提升,甚至产生负面效果
    • 注:在后续所有实验中,作者均采用前向 KL 散度
Effect of Generation Styles And Per-Token KL Clipping,生成风格与逐 Token KL 裁剪的影响
  • OPSD 中另一项关键设计选择是学生和教师模型的生成风格,这一选择决定了学生的学习对象,以及教师提供的监督风格
  • Qwen3模型支持两种生成模式:
    • 思维模式开启(TM-on),模型会生成自反思的思维链 Token
    • 思维模式关闭(TM-off),模型会直接生成响应结果
  • 为确定哪种组合能产生最有效的学习信号,本文分析了四种学生/教师模式组合下的前向 KL 散度 \(KL(p_T | p_S)\),并将 Token 分为三类:
    • 数学类(数字、运算符和数学关键词)
    • 风格类(推理连接词)
    • 其他类
  • 表 5 报告了每个类别内的平均逐 Token KL 散度
  • 在所有模型规模下,思维模式关闭的学生与思维模式开启的教师组合,在数学类 Token 上的 KL 散度值最大,这表明该组合能对数学相关 Token 提供更强的监督
    • 报告的 KL 散度值对应每个位置上词表的期望散度
    • 如表 5 所示,这一期望分布存在严重的偏斜,风格类 Token 贡献的散度值占比过高
    • 这一现象促使作者采用点态裁剪的方式,控制此类厚尾分布的贡献
    • 从实验结果来看,该配置能实现最优的下游任务性能
    • 本文最终采用 思维模式关闭的学生/思维模式开启的教师 配置(注:其实这种实现严格来说已经不是 Self Distillation 了)
关于 Prompt 格式的实现说明
  • 在本预印本初次发布后,发现 Student 模型的采样 Prompt 与 Teacher 模型的 Prompt 之间存在意外的格式不匹配:
    • 具体情况: Student Prompt 缺少 Qwen3 的聊天模板,而 Teacher Prompt 则遵循 Qwen3 的思维风格聊天模板
    • 因此 Student 模型的推理是在无模板风格下生成的,而 Teacher 模型的分布则是在包含思考标签的 Prompt 条件下生成的
    • 尽管本文的方法不要求 Student 和 Teacher 模型的 Prompt 模板必须匹配,但本文在此记录这一实现细节以确保透明度和可复现性
      • 理解:这个问题会导致 Teacher 的性能远超 Student 的效果
  • 本预印本中报告的实验结果对应于这种配置
    • Prompt 模板/指令可以被视为本文方法的一个设计选择:
      • Teacher 和 Student Prompt 格式都可以作为框架中可优化的组件
      • 可以通过诸如 GEPA 等 Prompt 优化技术来优化 Teacher Prompt 以塑造监督信号,同时可以改变 Student Prompt 来研究哪种生成模式能产生最有效的学习
Effect of Per-Token Pointwise Clipping
  • 如表 5 所示,风格类 Token 的 KL 散度可能高于数学相关 Token ,导致其主导训练信号
    • 本文通过逐 Token 点态裁剪的方式缓解这一问题
  • 图 4 展示了 Qwen3-1.7B 模型的实验结果,裁剪操作能稳定训练过程,防止性能退化
    • 这一点对于在百步内快速收敛的 OPSD 而言尤为重要
Effect of Generation Length
  • 由于 OPSD 的目标函数在 Token-level 运作(公式 6)
    • 每个样本的生成 Token 数量直接决定了学生可获得的监督信号量
    • 更长的序列能让学生获得更多的教师反馈,但同时也会增加计算成本,且可能引入噪声或无信息的后续内容
  • 为研究这一权衡关系,本文在 Qwen3-1.7B 模型上开展消融实验
    • 将基于策略采样的学生响应生成长度设置为 1024 和 4096 个 Token 两种情况,并采用全词表 logit 蒸馏
  • 如图 5 所示,增加生成长度并未在两个任务上带来一致的性能提升
    • 本文作者将这一现象归因于前序 Token 对学习的关键性:
      • 当学生的生成序列变长时,在足够长的学生前缀条件下,教师对后续 Token 的预测会变得越来越确定,因此对后续 Token 施加的惩罚也会减少
        • 注:(2025)的研究中也发现了这一现象

Learning Objective Comparison: Full Vocabulary Logits Distillation vs Sampled-Token Distillation

  • 公式 6 中的目标函数定义为教师与学生分布之间的 Per-Token 差异
    • 回顾 公式 6:
      $$D(p_{T}| p_{S})(\hat{y}\mid x)\triangleq \frac{1}{|\hat{y}|}\sum_{n = 1}^{|\hat{y}|}D\bigg (p_{T}(\cdot \mid x,y^{\star},\hat{y}_{< n})| p_{S}(\cdot \mid x,\hat{y}_{< n})\bigg) \tag {6}$$
  • 在实际实验中,OPSD 可通过两种方式实例化该目标函数:
    • (1) 全词表 logit 蒸馏(Fullvocabulary logit distillation) (2024):
      • 在每个 Token 位置,通过全 softmax 操作计算整个词表上的 \(D(p_T | p_S)\),得到两个策略之间合理的逐 Token f-散度
      • 这种变体直接匹配完整的 Token 分布
    • (2) 采样 Token 优势策略梯度目标(Sampled-token advantage policy-gradient objective) (2025):
      • 仅在学生实际采样的 Token \(\hat{y}_n\) 位置评估教师和学生的对数概率,并将反向 KL 项作为标量优势,融入策略梯度风格的损失函数中
      • 这种变体优化由教师对数概率塑造的 On-policy RL 目标,而非完整分布的散度
      • 理解:这里的 Sampled Token 就是指 Rollout 得到的 Token
  • 本文在 Qwen3-4B 模型上对比了这两种变体,蒸馏过程中的生成预算设置为 2048 个 Token ,结果如表 4 所示
    • 全词表散度目标相比采样 Token 目标能带来稳定的性能提升
      • 这表明让学生学习完整的教师分布,相比仅依赖逐 Token 的在线策略塑造,能获得更丰富的监督信息
    • 但全词表计算需要在每个位置存储词表规模的 logit,会导致峰值内存占用更高,这也体现了性能与效率之间的权衡
  • 表 4:
    • OPSD 中散度计算策略的消融实验(基于 Qwen3-4B 模型,蒸馏生成长度 2048)
    • 报告在 AIME25 和 HMMT25 数据集上的 pass@8 指标
    • 全分布目标(logit 蒸馏)优于采样 Token 目标

Related Work

LLM Self-Training

  • 本文的与一系列研究表明 LLM 可以通过生成和利用自身的监督信号来改进的研究相关联 (2020;2024b;2024;2023;2023;2024;2024)
  • 在理念上最接近的是上下文蒸馏 (2022),它使用相同的底层模型作为 Teacher 和 Student ,通过为 Teacher 提供 Privileged 上下文,然后对 Student 在无上下文情况下生成的输出进行 SFT
    • 这可以视为 Off-policy,其学习信号是一个离散的 Token 序列
  • 在推理领域,ReST (2023) 和 STaR (2022) 同样依赖于迭代的自训练循环
    • 基于 Prompt 或答案生成推理过程,通过奖励或真实答案进行筛选,然后在成功的轨迹上进行微调
    • 注:这也是硬蒸馏
  • Mitra & Ulukus (2025) 将其扩展到软蒸馏
    • 上下文编辑 (2025) 从 Student 模型进行 On-policy 采样,并展示了通过最小化散度可以将上下文诱导的知识内化,并在知识编辑场景中展示了这一点
  • OPSD 与这些方法的不同之处在于,本文在推理任务上对 Student 自己的 Rollout 执行 On-policy 软蒸馏:
    • Teacher 的监督是每个 Token 的分布匹配,而不是生成用于 SFT 的推理过程
    • OPSD 将推理改进视为学习一个由数据集的真实解答和模型自身推理能力共同诱导的条件分布
  • 其他:
    • SDPO (Hü2026) 探索了类似的算法,利用环境反馈作为 Privileged 信息,详情见 (SDPO)Reinforcement Learning via Self-Distillation, 20260128
      • SDPO 方法除了信号以外来自环境反馈外,几乎和本文思路一致,都是 On-policy 蒸馏的
      • 特别说明:SDPO 中的损失函数也是在整个词表上计算的
    • SDFT (2026) 探索了持续学习任务中的 On-policy 自蒸馏

On-Policy Distillation methods

  • On-Policy Distillation 方法直接在从其自身策略采样的轨迹上训练 Student 模型,而 Teacher 模型则通过 KL 散度 (2024;2024a;2024;2025;2026;2025) 提供每个 Token 的指导
    • 这些方法通过直接优化 Student 的访问分布来缓解分布偏移,但它们通常依赖于一个独立的、通常更大的 Teacher 模型
  • 本文探索 LLM 是否可以通过利用更 Privileged 答案信息并依靠其自身的推理能力来引导其较弱版本改进推理,从而实现自我教学
  • On-policy 训练范式也广泛用于机器人和深度强化学习中,例如 DAgger (2011),其中人类 Teacher 为 Student 策略访问的状态提供纠正性监督

Improving LLM Reasoning through SFT and RL

  • SFT 和 RL 是提升 LLM 推理能力的两种主要方法
  • 在高品质推理轨迹上进行 SFT 已展示出强大的性能 (2023;2024;2023;2025a;2025;2025;2023)
    • 但先前的工作表明 SFT 可能依赖于记忆而非稳健的泛化能力 (2025)
  • 直接优化基于结果的目标的 RL 可以表现出更好的泛化能力 (2025)
    • 较新的算法如 GRPO 通过从组级别奖励估计优势来实现可扩展的 RL,而不需要像 PPO 那样需要一个显式的 Critic
  • 在这一系列工作的基础上,越来越多的研究强调了 RLVR 在推理任务中的有效性 (2025;2025;2025;2025a;2025)

附录 A:Limitations and Future Directions

  • 由于计算限制,本文实验仅限于 8B 参数以下的模型
  • 虽然更大的模型从 OPSD 中受益更多(这与本文的假设(即自我合理化需要足够的模型容量)一致)
    • 但这一趋势是否会在 8B 参数以上的规模(例如 70B 或更大的前沿模型)中持续,仍然是一个悬而未决的问题
  • 有几个有前景的方向值得进一步研究
    • 第一,本文当前的框架没有明确利用生成答案的正确性验证
      • 整合这些信号可以提供超越分布匹配的额外学习目标
    • 第二,问题难度在自我蒸馏中起着至关重要的作用:
      • 如果推理问题超出了模型的理解阈值,那么即使可以访问真实解决方案, Teacher 策略也无法提供有意义的监督
      • 这表明,课程学习策略(随着模型改进而逐渐增加问题难度)可以提高训练效果
      • 探索能够将问题保持在模型能力前沿的自适应课程,是将 OPSD 扩展到更具挑战性的推理任务的一个重要方向

附录 B:Experimental Details

  • 表 5、4 和 6 中提供了 SFT、GRPO 和 OPSD 实验的训练和评估配置
  • 表 2 中的评估设置:
    • 对于每种方法(GRPO、OPSD 和 SFT),报告在训练过程中,每 100 步评估一次,直到 1500 步,在每个任务上获得的最高得分
  • 由于本文对所有基线一致地应用了相同的协议,考虑到任何固定评估点存在的内在方差,这仍然是不同算法之间的公平比较
    • 本文作者在图 3 中报告了所有三个基线的检查点平均准确率
    • 在图 3 中
      • OPSD 的运行生成长度为 1024,学习率为 \(2 \times 10^{-4}\)
      • 对于 OPSD,对于较短的生成长度(如 1024),使用 \(2 \times 10^{-4}\) 比使用 \(2 \times 10^{-5}\) 能获得更好的结果
      • Remind:传统的 RL 中不能这样做(这是 OPD 专有的优点)
        • 在 OPD 场景中,不需要 Rollout 结束就可以有奖励(来源于 Teacher),但是在传统 RL 场景,一般是需要 Rollout 结束才能得到 Reward 反馈的
  • 所有实验均使用 8 张 A100 或 8 张 H100 GPU 进行,并启用了梯度检查点和 Flash Attention 2 以提高内存效率
    • 本文为所有训练运行使用了 AdamW (2017) 优化器和 bfloat16 精度
    • 对于 OPSD,除非另有说明,作者使用了全词表 Logit 蒸馏
  • 表 6. GRPO 和 OPSD 的训练配置
  • 表 7. SFT 的训练配置
  • 表 6. 评估参数

附录 C:Token Category Definitions

  • 本文将 Token 分类为 Style Token 和 Match Token(提前预定义的关键词)
    • 这些关键词常用语分析 Per-token KL 散度(分别针对风格 Token 和数学知识 Token)
  • Style Tokens.

    maybe, perhaps, probably, possibly, let, okay, ok, alright, hmm, wait, because, since, so, thus, hence, therefore, but, however, although, though, yet, or, alternatively, instead, otherwise, actually, really, just, simply, basically, very, quite, pretty, rather, fairly, now, then, next, first, second, finally, try, see, check, note, recall, think, idea, strategy, approach, method, way, would, could, should, might, can, huge, large, big, small, tiny, interesting, tricky, complex, simple.

  • Math Tokens.

    exponential, exponent, power, powers, base, logarithm, logarithms, log, ln, compare, comparing, comparison, less, equal, larger, smaller, greater, factor, factors, prime, divisible, equation, expression, formula, inequality, rational, irrational, real, integer, coefficient, variable, constant, sum, product, difference, quotient, fraction, denominator, numerator, root, square, cube, nth, maximum, minimum, optimize, bound.


附录 D:Policy-Gradient Interpretation of OPSD and Comparison to STaR,OPSD 的策略梯度解释以及与 STaR 的比较

  • 方程 (9) 中的 OPSD 目标可以解释为一种带有密集、 Token-level 奖励信号的策略梯度更新
    • 回顾方程(9)策略梯度风格的目标函数
      $$
      \begin{align}
      \mathcal{L}(\theta) = -\mathbb{E}_{(x,y^{\star})\sim \mathcal{S} }\left[\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}\left[\frac{1}{|\hat{y}|}\sum_{n = 1}^{|\hat{y}|}A_n(x,\hat{y}) \cdot \log p_S(\hat{y}_n\mid x,\hat{y}_{< n})\right]\right]
      \end{align}
      \tag {9}
      $$
  • 本节将展示:
    • (1) OPSD 可以被视为一种密集奖励的策略梯度
    • (2) 本文将 OPSD 与 STaR 进行对比,证明 STaR 的学习信号是 Sequence-level ,而 OPSD 是 Token-level

D.1. STaR as Sequence-Level Policy-Gradient

  • STaR (2022) 可以被视为 RL 风格策略梯度目标的一种近似
    • 语言模型 \(p_{\theta}\) 在 rationale(基本原理/根本原因) \(r\) 和答案 \(y\) 上诱导出一个联合分布:
      $$
      p_{\theta}(r,y\mid x) = p_{\theta}(r\mid x)p_{\theta}(y\mid x,r),
      $$
      • 这里表示:模型在预测最终答案 \(y\) 之前,先采样一个潜在的 rationale \(r\)
    • 给定一个指示器奖励 \(R(y) = \mathbf{1}(y = y^{*})\),在整个数据集 \(\mathcal{S} = \{(x_i,y_i^*)\}_{i = 1}^N\) 上的期望回报为:
      $$
      J_{\text{STaR} }(\theta) = \sum_{i = 1}^{N}\mathbb{E}_{(r,y)\sim p_{\theta}(\cdot |x_i)}\big[\mathbf{1}(y = y_i^*)\big] \tag {10}
      $$
    • 应用对数导数技巧,得到策略梯度:
      $$
      \nabla_{\theta}J_{\text{STaR} }(\theta) = \sum_{i = 1}^{N}\mathbb{E}_{(r,y)\sim p_{\theta}(\cdot |x_i)}\Big[\mathbf{1}(y = y_i^*)\nabla_{\theta}\log p_{\theta}(r,y\mid x_i)\Big] \tag {11}
      $$
      • 注意,指示函数丢弃了所有未导致正确答案 \(y_i^*\) 的 sampled rationale 的梯度:
        • 这对应于 STaR 中的筛选步骤
  • 一个局限性是 STaR 的奖励是 Sequence-level :
    • 二元指示器 \(\mathbf{1}(y = y^*)\) 为轨迹中的所有 Token 提供相同的信号,不提供中间的 Credit Assignment
    • 当所有采样的轨迹都不正确时,学习信号就会消失

C.2. OPSD as Dense-Reward Policy Gradient

  • 方程 (9) 中的采样 Token 目标也可以被视为一种策略梯度方法,但具有 Token-level 奖励
    • 固定一个训练对 \((x,y^{\star})\),并让 Student 生成一个轨迹 \(\hat{y}\sim p_S(\cdot |x)\)
    • 在每个位置 \(n\),定义每个 Token 的奖励:
      $$
      r_{n}(x,\hat{y})\triangleq \log p_{T}(\hat{y}_{n}\mid x,y^{\star},\hat{y}_{< n}) - \log p_{S}(\hat{y}_{n}\mid x,\hat{y}_{< n}).
      $$
  • 这个奖励衡量了拥有 Privileged 信息的 Teacher 相对于 Student ,偏好采样 Token \(\hat{y}_n\) 的程度
  • 如正文所述,在计算梯度时,本文将 \(r_n\) (等同于 advantage \(A_{n}\))视为关于 \(\theta\) 的常数
    • 即,在奖励计算中阻止了通过 \(p_T\) 和 \(p_S\) 的梯度传播
    • 在这种处理下,方程 (9) 的梯度呈现标准的策略梯度形式:
      $$
      \nabla_{\theta}\mathcal{L}(\theta) = -\mathbb{E}_{(x,y^{\star})\sim \mathcal{S} }\left[\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}\left[\frac{1}{|\hat{y}|}\sum_{n = 1}^{|\hat{y}|}r_n(x,\hat{y})\nabla_{\theta}\log p_S(\hat{y}_n\mid x,\hat{y}_{< n})\right]\right],
      $$
  • 这对应于最大化 Student 在线 Rollout 上的期望 Per-Token 奖励:
    $$
    J_{OPSD}(\theta) = \mathbb{E}_{(x,y^{\star})\sim \mathcal{S} }\left[\mathbb{E}_{\hat{y}\sim p_S(\cdot |x)}\left[\frac{1}{|\hat{y}|}\sum_{n = 1}^{|\hat{y}|}r_n(x,\hat{y})\right]\right].
    $$
  • 这个奖励是密集的:
    • 它在每个 Token 位置都提供学习信号,无论最终答案是否正确
Comparison
  • STaR 和 OPSD 都可以被理解为策略梯度方法,但它们的奖励结构有根本的不同
    • STaR 使用一个 Sequence-level 指示器 \(\mathbf{1}(y = y^{\star})\),为所有 Token 分配相同的信号
      • 当所有采样的轨迹都不正确时,学习信号完全消失
    • OPSD 在每个位置都提供一个 Token-level 奖励 \(r_n\),即使在最终答案错误的情况下也能实现细粒度的 Credit Assignment

附录:关于 JSD 的补充说明

  • 假定使用 \(\mathrm{JSD}_{\beta=0.5}\),其原始定义为
    $$ JS(P|Q) = \frac{1}{2}KL(P|M) + \frac{1}{2}KL(Q|M) \quad \text{ where } M = \frac{P+Q}{2}$$
    • JSD 是对称的:\(JS(P||Q) = JS(Q||P)\)
    • JSD 是有界的:值域在 \([0, \ln2]\) 之间
      • 注意:相对而言,KL 散度的阈值是 \([0, +\infty]\),因为某个节点 Q 很小的时候,KL 可能会非常大,而 JSD 则不存在这个情况

NLP——LLM对齐微调-OAPL

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(OAPL)LLMs Can Learn to Reason Via Off-Policy RL, 20260222 & 20260227, Cornell University & Databricks & Harvard
    • 作者的前一篇论文:(A*-PO,A*PO)Accelerating rl for llm reasoning with optimal advantage regression, 20250527, Harvard
      • 是这篇文章思想来源,但是 A*PO 中是基于 \(\pi_\text{ref}\) 的采样样本来估计 \(V^{\star}\) 的,策略的更新则是 On-policy 的
      • 根源是两者的推导目标不一致:
        • A*PO 目标中的 KL 散度约束是当前策略与 \(\pi_\text{ref}\)(参考策略) 的 KL 散度
        • 本文 OAPL 目标中的 KL 散度约束是当前策略与 \(\pi_\text{vllm}\)(采样策略)的 KL 散度

Paper Summary

  • 整体说明:
    • 严格来说,本文是第一篇直视 LLM 中 Off-policy 方法的论文(忽略 PPO 中可能存在的微小 Off-policy 更新)
    • 本文提出的 OAPL(Optimal Advantage-based Policy Optimization with Lagged Inference policy)方法完全接受了 Off-policy 训练,无需任何重要性加权比率
    • 亮点:
      • 在代码生成实验中,策略滞后(Off-policy 程度)可能高达 400 次梯度更新 ,而无需任何重要性采样
      • 稳定地改进了 Pass@k 测试时扩展指标
    • 本文证明了一个简单的 off-policy RL 方法可以比用于 LLM 后训练的 on-policy RL 方法 GRPO 更有效
      • 需要确认的点:是否是因为 \(\pi_\text{ref}\) 被不断向前更新导致的?
    • 使用 Off-policy 方法,本文可以实现完全异步训练,并允许算法重用先前采样的数据,带来极高的样本效率
    • 实验用的模型较小(数学仅 4B,代码仅 14B),在更大的模型上是否有提升还需要进一步验证
    • 本文的最核心思路理解:
      • OAPL 的梯度推动策略 \(\pi\) 向着 使对数比值 \(\beta \ln(\pi/\pi_{\mathrm{vllm} })\) 逼近最优优势函数 \(A^{*}\) 的方向更新
        • 这是一种 回归到最优策略 的过程(其中最优策略由带 KL 正则化的最大化奖励目标定义)
      • 由于 \(A^{*}\) 是通过 \(\pi_{\mathrm{vllm} }\) 采样估计的,因此这个更新是 完全 off-policy 的,不需要重要性采样,也不需要 on-policy 数据
  • 背景 & 问题提出
    • LLM 的 RL 方法常使用 On-policy 算法(例如 PPO 或 GRPO)
    • 分布式训练架构带来的策略滞后以及训练策略与推理策略之间的差异导致数据在设计上就是 Off-policy 的,这破坏了 On-policy 假设
      • 理解:实际上这些 Off-policy 本身是可以解决的,只是说需要一些时间成本
  • 之前工作的解法:
    • 核心思路主要集中于使这些 Off-policy 数据看起来更符合 On-policy 数据
    • 方案一:通过重要性采样
    • 方案二:通过显式修改 Inference Engine 来更紧密地对齐训练策略和推理策略
  • 本文接受了 Off-policy 特性,并提出了一种新颖的、不需要这些修改的 Off-policy 强化学习算法 OAPL :
    • 基于最优优势的带滞后推理策略策略优化(Optimal Advantage-based Policy Optimization with Lagged Inference policy, OAPL)
  • OAPL 在竞赛数学基准测试上优于使用重要性采样的 GRPO
    • 在 LiveCodeBench 上匹配公开可用的代码模型 DeepCoder 的性能
    • 而且:训练中使用的生成次数减少了 3 倍
      • 如果能严格说明不是学习率导致,那么这个算是非常大的提升了(当前 LLM RL 训练的耗时大头基本都在 Rollout 上)
  • 实验证明,经 OAPL 训练的模型在 Pass@k 指标下具有改进的测试时扩展能力
  • 即使训练策略和推理策略之间的滞后超过 400 个梯度步 (比先前方法的 Off-policy 程度高 100 倍),OAPL 也能实现高效、有效的后训练
    • 注:之前一般异步不会超过 10,大部分时候是 4 以内

Introduction and Discussion

  • 自 DeepSeek-R1 以来,研究主要集中于改进 GRPO 的训练稳定性 , 训练稳定性 难以实现的一个核心原因是:
    • 现代的 RL 后训练基础设施通常并非真正的 On-policy
    • 特别是, Trainer (例如 HuggingFace 模型)和 Inference Engine (例如 vLLM 模型)可能对相同的序列产生不同的对数概率,即使两个模型具有相同的权重
      • 这种不匹配可能源于 Trainer 和 Inference Engine 内核实现的差异(2025),或者源于异步训练流程,其中 Inference Engine 可能包含一个较旧版本的 Trainer 权重 (2025)
  • 这种对数概率的差异使得实际的策略梯度训练有效地变成了 Off-policy 的:
    • 即用于优化当前策略的数据并非由该策略生成
  • 而经典的策略梯度方法(REINFORCE 等),以及现代的策略优化方法如 GRPO、PPO ,都是在 On-policy 的假设下工作的:
    • 即假定数据由待优化的当前策略生成
  • 大多数对 GRPO 的改进都集中在尽管 Trainer 和 Inference Engine 之间存在差距,也要使其尽可能地保持 On-policy
    • 通常有两个工作系列来解决这个问题:
      • (1)引入额外的重要性权重 (2025)
      • (2)通过修改 Inference Engine 来缩小 Trainer 和 Inference Engine 之间的差距 (2025)
  • 作者认为两者都不是理想
    • 第一种方法(IS):向 GRPO 目标添加重要性权重会给强化学习损失函数引入额外的方差
    • 第二种方法:会使 Inference Engine 变慢,并且在异步强化学习训练中并不能完全消除 Inference Engine 和 Trainer 之间的差距(这里的差距来源于异步训练时,参数本身不是完全对齐的)
  • 本文要解决的核心问题:On-policy 算法对于强化学习后训练是必要的吗?能否开发出简单且可扩展的 Off-policy 强化学习算法?
    • 作者观点:保持 On-policy 对于强化学习后训练并非必要
    • 作者提出了提出了一种易于实现且有效的 Off-policy 后训练算法:
      • 基于最优优势的带滞后推理策略策略优化,缩写为 OAPL
      • 将 Trainer 和 Inference Engine 策略之间的不匹配视为一个 KL 正则化的强化学习问题,其中 KL 项明确地防止训练策略偏离推理策略太远
        • 利用 KL 正则化强化学习的闭式解,推导出一个平方回归目标 ,该目标在来自滞后推理策略的 Rollout 上进行训练,从而消除了对 On-policy 采样的需求
  • OAPL 在一个迭代过程中使用上述推导目标,以很大的间隔同步 Trainer 和推理策略,从而实现比其他方法显著更 Off-policy 的训练
    • 亮点:OAPL 完全接受了 Off-policy 训练,无需任何重要性加权比率
  • 注:作者的观点与经典的强化学习结果一致,即 On-policy 学习对于强化学习后训练并非必要
    • 在经典的强化学习结果中,诸如 PPO 和 REINFORCE 之类的 On-policy 策略梯度方法在传统的机器人控制和视频游戏基准测试上通常不如 DDPG 和 SAC 等 Off-policy 算法高效 (2015; 2018)
  • 实验表明,OAPL 在多个 Pass@k 指标上可以在三个数学竞赛基准测试(AIME 25,HMMT 25 Feb 和 Nov,BRUMO 25)上胜过基于 GRPO 的基线(见图 1)
    • 在 LiveCodeBench v5 上,在各种 Pass@k 指标上,作者的方法可以匹配或胜过 DeepCoder (2025a)
      • DeepCoder 是通过 GRPO 并辅以额外的启发式方法(包括 clip-high、超长过滤等)训练的,同时训练使用的生成次数大约是其三分之一
  • 作者还观察到 OAPL 不仅仅是进行基模型分布锐化
    • OAPL 不会导致熵崩溃,并且稳定地改进了 Pass@k 测试时扩展指标,其中 k 的范围从 1 到 256
  • In Summary,作者证明了保持 On-policy 并非必要,接受 Off-policy 学习可以实现对推理型 LLMs 稳定、有效且高效的训练

Background

  • 现代强化学习后训练中,通常有两种类型的策略: Trainer \(\pi\) 和 Inference Engine \(\pi_{\text{vllm} }\)
    • Trainer \(\pi\) 用于根据生成的序列计算梯度更新
    • Inference Engine \(\pi_{\text{vllm} }\) 用于快速生成
  • 即使当 \(\pi\) 和 \(\pi_{\text{vllm} }\) 共享相同的权重,对于相同的 Token 序列,它们也可能输出不同的对数概率
    • 这种来自 \(\pi\) 和 \(\pi_{\text{vllm} }\) 的对数概率的固有差异,破坏了基于策略梯度的方法的 On-policy 假设
    • Liu 等人 (2025b) 测量了 Inference Engine 和 Trainer 之间的 KL 散度,并发现该散度的突然增加导致了 GRPO 训练的不稳定性和策略崩溃
    • Inference Engine 和 Trainer 之间的差距在异步强化学习训练框架中可能会进一步扩大
      • 比如:\(\pi_{\text{vllm} }\) 可能落后 Trainer \(\pi\) 多个梯度步
  • 处理 LLM 后训练中 Off-policy Rollout 的一种常见方法(Baseline)是标准的重要性采样
    • IS 在 Token-level 应用 (2025),也可以在 Sequence-level 应用 (2025a)
    • 给定从 \(\pi_{\text{vllm} }(\cdot |x)\) 采样的任意前缀 \(x\) 和下一个动作 \(a\),重要性采样计算似然比:
      $$\frac{\pi(a|x)}{\pi_{\text{vllm} }(a|x)}$$
    • 用它对 GRPO 损失函数进行重新加权,然后在一个批次样本上取平均
    • 这些似然比旨在纠正因动作 \(a\) 由 \(\pi_{\text{vllm} }\) 而非 \(\pi\) 生成所导致的不匹配
  • 可以将 GRPO 表述为一个带有重要性权重的损失函数:
    $$\mathbb{E}_{\{y_i\}_{i = 1}^c\sim \pi_{\text{vllm} }(\cdot |x)}\left[\frac{1}{G}\sum_{y\in \mathcal{G} }\frac{1}{|y|}\sum_{t = 1}^{|y|}\frac{\pi_{\text{old} }(y_t|x,y_{< t})}{\pi_{\text{vllm} }(y_t|x,y_{< t})}\cdot \min \{r_tA_t,\text{clip}(r_t,1 - \epsilon ,1 + \epsilon)A_t\} \right]$$
    • \(\pi_{\text{old} }\) 是 Trainer 前一次迭代的版本
    • \(r_t = \frac{\pi(y_t|x,y_{< t})}{\pi_{\text{old} }(y_t|x,y_{< t})}\) 是 PPO 风格的似然比
    • \(A_t\) 是归一化的优势
  • Fu 等人 (2025) 为其异步强化学习训练框架引入了上面这个损失函数
    • 在该框架中,数据生成策略 \(\pi_{\text{vllm} }\) 可能落后于当前的训练策略 \(\pi\)
    • 额外的 Token-level 比率 \(\frac{\pi_{\text{old} }(y_t|x,y_{< t})}{\pi_{\text{vllm} }(y_t|x,y_{< t})}\) 对从 \(\pi_{\text{vllm} }\) 采样的 Token \(y_t\) 进行重新加权,就好像它们是由 \(\pi_{\text{old} }\) 生成的一样
    • 但当行为策略和目标策略差异很大时,重要性采样可能变得不可靠,这促使先前的大量工作致力于方差缩减技术 (2016; 2015; 2013)
  • 根据实验,先前的工作尝试了许多额外的启发式方法
    • 例如裁剪重要性采样比率 :明确从 GRPO 目标中删除那些重要性采样比率过大或过小的 Token,或者丢弃那些过于 Off-policy 的整个 Rollout
    • 虽然这些启发式方法专门针对 GRPO 训练并经过测试,使 GRPO 训练稳定,但它们越来越偏离经典策略梯度理论背后的原理
    • 由于这些启发式方法是专门为 GRPO 损失函数设计并在其下测试的,目前尚不清楚它们如何在非常具体的 GRPO 损失函数之外推广
      • 其实其他的任何 On-policy 方法都可以使用 IS 方法进行修正 Off-policy 问题吧!
  • 这项工作没有专注于修改 GRPO 的损失,而是走了一条不同的路线,设计了一个新的、能够自然处理 Off-policy 数据的强化学习训练目标

Method: OAPL

  • 基于最优优势的带滞后推理策略策略优化(OAPL)是一个 Principled Off-policy 目标,即使在显著的策略滞后下也能保持稳定
    • 先前的方法:需要定制 Inference Engine 或用额外比率、裁剪算子或删除陈旧 Token/序列来增强 GRPO 及其 变体
    • 本文:接受强化学习后训练的 Off-policy 性质,并设计了一个简单、完全 Off-policy 的强化学习算法

Off-policy Loss Function

  • 本文的 Off-policy 策略优化目标,其动机源于 KL 正则化的强化学习形式,考虑以下目标:
    $$\max_{\pi}\mathbb{E}_{x,y\sim \pi (\cdot |x)}r(x,y) - \beta \text{KL}(\pi ||\pi_{\text{vllm} }) \tag {1}$$
    • 该目标旨在最大化奖励 \(r\),同时最小化与推理策略 \(\pi_{\text{vllm} }\) 的 KL 散度
    • 注意:一般的目标下,这里是 \(\pi_{\text{ref}}\),比如 (A-PO,A\PO)Accelerating rl for llm reasoning with optimal advantage regression, 20250527, Harvard 中
  • 上述 KL 正则化强化学习问题的最优策略 \(\pi^{\star}\) 和最优值函数 \(V^{\star}\) 具有以下闭式表达式:
    $$\pi^{\star}(y|x)\propto \pi_{\text{vllm} }(y|x)\exp (r(x,y) / \beta),$$ $$V^{\star}(x) = \beta \ln \mathbb{E}_{y\sim \pi_{\text{vllm} }(\cdot |x)}\exp (r(x,y) / \beta).$$
    • \(\pi^{\star}\) 的详细证明可见本人之前的博客:RL——CQL 的附录部分,DPO 论文(NLP——LLM对齐微调-DPO)中也有类似需要证明的式子
    • \(V^{\star}(x)\) 的详细证明见本文附录: 最优优势 \(A^{\star}\) 的推导部分
  • \(\pi^{\star}\) 和 \(V^{\star}\) 之间的关系可表示表示如下:
    $$\beta \ln \frac{\pi^{\star}(y|x)}{\pi_{\text{vllm} }(y|x)} = \underbrace{r(x,y) - V^{\star}(x)}_{\text{optimal advantage } A^{\star}}, \quad \forall x,y.$$
  • 特别说明:定义 \(V^{\star}\) 的期望是在采样策略 \(\pi_{\text{vllm} }\) 下取的,而不是 \(\pi^{\star}\)
    • 因此,给定 \(x\) 和一组从 \(\pi_{\text{vllm} }(\cdot |x)\) 采样的 \(G\) 个 Rollouts \(\{y_1,\ldots ,y_G\}\),Brantley 等人 (2025) 提出通过以下方式估计 \(V^{\star}\):
      $$\hat{V}^{\star}(x) = \beta \ln \frac{1}{G}\sum_{i = 1}^{G}\exp (r(x,y_i) / \beta) \tag {2}$$
      • 注:这与 (A-PO,A\PO)Accelerating rl for llm reasoning with optimal advantage regression, 20250527, Harvard 中的 \(V^{\star}\) 是不同的
  • 在采样分布 \(\pi_{\text{vllm} }\) 的温和假设下,估计量 \(\hat{V}^{\star}\) 可以是准确的
    • 特别是,对于二元奖励,如果 \(\pi_{\text{vllm} }\) 有非零概率解决 \(x\),那么随着 \(G\) 的增加,\(\hat{V}^{\star}(x)\) 收敛到 \(V^{\star}(x)\) (2025; 2025)
    • 这里 \(\beta\) 的作用是平滑:
      • 当 \(\beta \rightarrow 0\) 时,我们有
        $$\hat{V}^{\star}(x) = \max_{i}r(x,y_{i})$$
      • 当 \(\beta \rightarrow \infty\) 时,\(\hat{V}^{\star}(x)\) 成为平均值
        $$\hat{V}^{\star}(x) = \sum_{i}r(x,y_{i}) / G$$
        • 这是当前推理策略 \(\pi_{\text{vllm} }\) 平均奖励的无偏估计
  • 给定 \(\hat{V}^{\star}\),可以将最优优势 \(A^{\star}(x,y)\) 估计为
    $$r(x,y) - \hat{V}^{\star}(x)$$
  • 作者采用 Brantley 等人 (2025) 的 \(A^{\star}\)-PO 目标,并定义以下策略优化目标:
    $$\min_{\pi}\sum_{x}\sum_{i = 1}^{G}\left(\beta \ln \frac{\pi(y_{i}|x)}{\pi_{\text{vllm} }(y_{i}|x)} -(r(x,y_{i}) - \hat{V}^{\star}(x))\right)^{2} \tag {3}$$
    • 上述目标对应的损失函数和梯度 在 (A-PO,A\PO)Accelerating rl for llm reasoning with optimal advantage regression, 20250527, Harvard 附录 F 中同一批作者已经给出,上述公式的目标对应的损失函数为:
      $$
      \mathcal{l}(\theta) = \sum_{x}\sum_{i = 1}^{G}\left(\beta \ln \frac{\pi_\theta(y_{i}|x)}{\pi_{\text{vllm} }(y_{i}|x)} -(r(x,y_{i}) - \hat{V}^{\star}(x))\right)^{2}
      $$
      • 论文中的梯度不太好理解,本文附录中我给出了这个损失函数梯度和方向的分析
  • 当 \(\hat{V}^{\star} = V^{\star}\) 时,无论 \(y\) 的采样分布如何(例如,它适用于从 \(\pi_{\text{vllm} }\) 抽取的 Rollouts),公式 3 都由 KL 正则化的最优策略 \(\pi^{\star}\) 最小化
  • 虽然作者的损失函数的动机来自 \(A^{\star}\)-PO,但 \(A^{\star}\)-PO 被设计为一种 On-policy 算法,即它在从 \(\pi\) 生成的 On-policy 数据集下制定上述优化
    • 作者反而依赖该目标的唯一最小化器,并直接使用来自 Inference Engine 的 Off-policy 数据和对数概率
  • 正如原始 \(A^{\star}\)-PO 论文所提出的
    • 从 Rollouts 组中估计 \(\hat{V}^{\star}\) 能够避免做额外的假设
    • 例如 \(V^{\star}\) 由一个常数逼近 (2024),不用神经网络建模 \(V^{\star}\)(这可能在计算上很昂贵)

OAPL: The Off-policy RL Algorithm

  • 作者将公式 3 转换为一个带有滞后 Inference Engine 的实用后训练流程
  • 这产生了基于最优优势的带滞后推理策略策略优化(算法 1),缩写为 OAPL
    • Step1: 同步 \(\pi\) 和 \(\pi_{\text{vllm} }\),使它们共享相同的权重
    • Step2: 开始迭代:
      • 使用 \(\pi_{\text{vllm} }\) 的 Inference Engine 开始异步生成数据,并将其添加到缓冲区 \(\mathcal{D}\) 中
      • Trainer 通过最小化公式 3 来更新策略 \(\pi\),使用从 \(\mathcal{D}\) 中采样的数据
        • 注:公式中的 \(\hat{V}^{\star}(x)\) 可通过公式 2 直接计算得到(每次采样后可直接得到,不需要建模为神经网络更新)
      • 每隔 \(L\) 次 Trainer 迭代(\(L\) 是一个超参数),算法同步 \(\pi\) 和 \(\pi_{\text{vllm} }\) 的权重
  • 在同步的间隔上,算法以 Off-policy 方式运行:
    • \(\pi_{\text{vllm} }\) 既生成数据,又在公式 3 中充当 KL 参考
    • 由于其完全的 Off-policy 性质,OAPL 可以在 \(\pi\) 和 \(\pi_{\text{vllm} }\) 的两次同步步骤之间完全异步运行
  • 每当我们将 \(\pi_{\text{vllm} }\) 与 \(\pi\) 同步时,我们会清除缓冲区 \(\mathcal{D}\)
    • 以确保 \(\mathcal{D}\) 仅包含来自单个 \(\pi_{\text{vllm} }\) 的数据
    • 这是为了确保估计量 \(\bar{V}^{\star}\) 进而优势始终仅使用来自一个采样分布 \(\pi_{\text{vllm} }\) 的数据进行计算
    • 由于 OAPL 不依赖于重要性比率或裁剪操作,因此得到的更新简化为一个简单的最小二乘回归损失 ,即使在显著的策略滞后下也能保持稳定
Comparison to GRPO
  • GRPO 使用裁剪算子作用于 \(\frac{\pi(y|x)}{\pi_{\text{old} }(y|x)}\) 以防止 \(\pi\) 偏离 \(\pi_{\text{old} }\) 太远
    • 只是遵循了 PPO 的原始设计
    • 其中 \(\pi_{\text{old} }\) 是前一次迭代的 Trainer
  • 这个动机是保守策略迭代 (2002),但裁剪并不总是能有效地防止 \(\pi\) 偏离 \(\pi_{\text{old} }\)
    • 当从 \(\pi = \pi_{\text{old} }\) 开始时,使用 GRPO 损失的第一次梯度更新的计算不会引起任何裁剪
      • 如果第一个梯度很大,一步梯度下降就可能已经使 \(\pi\) 远离 \(\pi_{\text{old} }\),并且裁剪算子无法将 \(\pi\) 拉回到 \(\pi_{\text{old} }\)
      • 这是 PPO/GRPO 损失函数的一个已知问题 (2020)
      • 理解:其实每一步都会发生类似问题,不在于第一步,也不是因为第一步无裁剪,理论上,每一步都会有概率超过裁剪
  • OAPL 将 KL 正则化纳入优化目标,直接针对 \(\pi_{\text{vllm} }\),完全摒弃了 \(\pi_{\text{old} }\) 的概念,并直接使用来自采样分布 \(\pi_{\text{vllm} }\) 的对数概率
    • 在每次迭代中,OAPL 直接鼓励 Trainer \(\pi\) 在优化奖励的同时保持接近 \(\pi_{\text{vllm} }\)
    • 这种设计,加上 \(\pi_{\text{vllm} }\) 不频繁的更新,可以在训练期间防止策略的熵崩溃,从而带来比 GRPO 更好的测试时扩展能力
Comparison to \(A^{\star}\text{PO}\)
  • \(A^{\star}\text{PO}\) 最初被设计为一种 On-policy 强化学习算法,它使用损失函数中的 \(\ln \frac{\pi(y|x)}{\pi_{\text{ref} }(y|x)}\) 来估计在固定参考策略 \(\pi_{\text{ref} }\) 下定义的 \(V^{\star}\)
    • \(A^{\star}\text{PO}\) 在训练期间从不更新 \(\pi_{\text{ref} }\)
  • OAPL 以 Off-policy 方式运行,定期更新 Inference Engine \(\pi_{\text{vllm} }\),并且始终直接在损失函数中使用来自 \(\pi_{\text{vllm} }\) 的对数概率

Related Work

Off-policy RL Post-Training Approaches

  • 处理强化学习后训练中 Off-policy 采样的方法大致可以分为两类:一类避免重要性采样,另一类应用重要性采样或其相关变体
  • 避免重要性采样的方法示例包括:
    • Melo 等人 (2025) 估计 Fisher 信息用于 Token 掩码
    • Arnal 等人 (2025) 为其目标函数添加偏差以获得性能改进保证
  • OAPL 类似地避免了重要性采样带来的额外方差,但在保持无偏的同时不需要额外的估计过程
  • 这一类中与作者工作最相关的是使用平方回归损失进行 On-policy 或 Off-policy 训练的方法,例如 REBEL (2024a)、REFUEL (2024b)、AGRO (2025) 或 Kimi K2 (2025a)
    • 这些方法不像 OAPL 那样估计 \(V^{\star}\),而是用类似于 RLOO 估计器 (2019) 的组相对基线进行方差缩减
  • 依赖重要性采样,或仅依赖重要性比率 \(\frac{\pi(y|x)}{\pi_{\text{vllm} }(y|x)}\) 的方法,在具体如何应用它方面有所不同
    • 例如,DeepSeek-v3.2 (2025a) 删除那些在 \(\pi\) 下似然较低的 Rollouts
    • Zhao 等人 (2025) 和 Zheng 等人 (2025b) 删除那些 Token-level 比率过大或过小的 Token
    • Roux 等人 (2025) 和 Su 等人 (2026) 构建目标函数来限制具有大重要性比率的 Token 的梯度
  • 通过避免重要性采样,OAPL 避免了删除可能对学习有用的样本或 Token,并且不会因向比率或梯度添加裁剪而引入偏差或额外的调优成本

Off-Policy RL in Asynchronous Settings

  • 关于异步和大规模强化学习训练的工作也处理了 Off-policy 采样
  • 例如,最近关于扩展基于人类反馈的强化学习系统的工作 (2025; 2025) 为此使用了截断的重要性采样
  • 在语言模型领域之外,扩展策略梯度算法和利用 Off-policy 数据的方法也使用某种形式的(通常是截断的)重要性采样 (2018; 2016; 2017; 2015),或者约束其数据生成以避免收集过于 Off-policy 的数据 (2019)
  • 其他方法通过学习 Q 函数完全避免重要性采样 (2018; 2015, 2016)
  • OAPL 同样不需要重要性采样,并且实际上可以理解为一种值学习方法
    • OAPL 使用 \(\ln \frac{\pi}{\pi_{\text{vllm} } }\) 作为函数逼近器来直接估计最优优势 \(A^{\star}\)

Experimental Setup

  • 在竞赛数学问题求解和代码生成上评估 OAPL,重点关注异步训练期间的稳定性以及通过 Pass@k 衡量的性能
  • 对于竞赛数学和代码生成两种设置,与 Brantley 等人 (2025) 的做法一致,作者在公式 2 和公式 3 中分别使用两个不同的 beta(\(\beta_{1}\) 和 \(\beta_{2}\)),而不是单一的 \(\beta\)
    • 这为选择超参数提供了额外的自由度
  • 关于实验的训练设置和超参数的更多细节可以在附录 A 中找到

Math Experimental Setup

  • 数学实验使用 Deepscaler (2025b) 作为作者的训练数据集,并使用 AIME 25、HMMT 25(02 月和 11 月)和 BRUMO 25 作为作者的评估集
  • 将 OAPL 与 GRPO 进行比较,后者增加了考虑 Inference Engine 和 Trainer 之间对数概率差异的重要性采样 (2025)
  • 对于这两种方法,作者都实现了异步优化,即着 Inference Engine 可以在作者优化 Trainer 的同时生成数据
  • 对于 OAPL,作者设置 \(L = 50\),即作者每 50 次迭代同步一次 Inference Engine 和 Trainer
  • 对于 GRPO,作者使用错位一步的异步训练
    • Trainer 使用的训练数据可能来自比 Trainer 自身最多老 1 次迭代的推理策略
  • 使用 Qwen3-4B-Thinking-2507 作为作者的基础模型,两种方法的最大生成长度均为 16384 个 token

Code Generation Experimental Setup

  • 代码生成实验使用一个高度 off-policy 的两阶段训练过程来复现 DeepCoder (2025a) 的性能
    • DeepCoder 是一个公开可用的、通过 GRPO 并辅以几个额外启发式方法训练的代码模型
  • 从基础模型 DeepSeek-R1-Distill-Qwen-14B 开始,为 DeepCoder 训练数据集中的每个 Prompt 生成一个包含 8 个 Response 的离线数据集
  • 为了将训练集中在可解的问题上,额外过滤掉了模型没有生成任何正确 Response 的所有 Prompt
  • 使用 OAPL 在这个数据集上训练基础模型 1 个 epoch,期间不同步 Trainer 和 Inference Engine
    • 使用得到的模型,从一个随机抽取的 4000 个 Prompt 的子集(由于资源限制)生成一个新的离线数据集,并在这个数据集上继续训练额外的 4 个 epoch
    • 这相当于运行 OAPL,其中 \(L\) 设置为 1 个 epoch(大约 400 次梯度更新),总迭代次数 \(T = 2\)
    • 两轮训练的最大生成长度均为 32K 个 token
  • 对于评估,遵循 DeepCoder 的 LiveCodeBench (2024) 设置,使用相同的 279 个 LiveCodeBench 问题子集,并以最大生成长度 64K 进行评估
    • 本文评估了 OAPL 第二轮训练中每个 epoch 的所有四个检查点,并报告表现最佳的检查点的结果

Experimental Results

  • 作者从三个方面评估 OAPL:在标准推理基准上的最终准确率、异步 Rollout 下的训练动态和稳定性,以及通过 Pass@k 衡量的测试时扩展性
  • 作者首先研究竞赛数学,在那里作者可以跟踪学习曲线和训练过程中的熵,然后转向代码生成,在那里作者评估极端策略滞后下的鲁棒性,并与经过 GRPO 训练的 DeepCoder 模型进行比较

Results on Competition Math

Performance on benchmarks
  • 图 1 表明,在三个基准测试的所有 Pass@k(针对不同的 \(k\))上,OAPL 都优于 GRPO 基线
  • 图 2 展示了在三个基准测试上的平均训练过程性能
  • 总体来说 OAPL 比 GRPO 学习得更稳定且性能更优
    • 还观察到,对于 GRPO 和 OAPL,在 Pass@1 奖励(即仅结果奖励)上进行训练可以提高 \(k > 1\) 时的 Pass@k。包括作者将要展示的代码生成实验,作者通常没有观察到 RL 不能提高 \(k > 1\) 时 Pass@k 的现象
Entropy behavior
  • 图 3(左)显示了训练过程中序列熵的变化
  • 观察到 OAPL 的熵没有崩溃,而 GRPO 的熵崩溃了
  • 在使用 OAPL 训练时观察到的熵增加,有助于 OAPL 在图 2 中的 Pass@5 和 Pass@10 指标上优于 GRPO
  • 作者相信这种行为是由于 Inference Engine 和 Trainer 之间的不同步同步以及 Trainer 对 Inference Engine 的显式 KL 正则化所致
  • 注意,在作者的实验中,GRPO 和 OAPL 都不包含对 \(\pi_{\text{ref} }\) 的固定 KL 正则化
    • 这是因为 OAPL 和 GRPO 基线的目标都只是找到优化奖励的策略
Scaling k in Pass@k
  • OAPL 中更高的熵是否会导致 Pass@k 下更好的扩展行为?
    • 作者为每种方法选择最佳检查点(基于三个基准的平均 Pass@1),并随着 \(k\) 的增加评估 Pass@k
  • 图 4 表明
    • \(OAPL\) 平均而言(左图)比 GRPO 扩展得更好,并且在除 BRUMO 之外的每个基准上都是如此,在 BRUMO 上两种方法在 \(k = 64\) 时都已经达到了 \(90\) 以上的准确率
    • 特别是,对于 HMMT Nov 2025,OAPL 和 GRPO 之间存在很大差距
    • 有趣的是,RL 训练(OAPL 和 GRPO)在广泛的 \(k\) 范围内提高了 Pass@k
      • 与基础模型相比(例如,在 HMMT 25 Nov 上,OAPL 和基础模型之间的差距实际上随着 \(k\) 的增加而增加)
      • 这与许多先前的工作(例如 (2025))形成鲜明对比,后者认为 RL 只会锐化基础模型分布,从它不能提高大 \(k\) 时的 Pass@k 这个意义上说
Training stability with large policy lags
  • 当 Inference Engine 策略显著落后于 Trainer 时,OAPL 还能稳定学习吗?
    • 作者进一步评估了 \(L = 100\) 的 OAPL,即作者每 100 次迭代才同步 \(\pi_{\text{vlmm} }\) 和 \(\pi\)
  • 如图 3(右)所示,OAPL 继续稳定学习,这证明了 OAPL 对训练数据中不同程度的 off-policyness 的鲁棒性

Results on Code Generation

  • 使用第 5.2 节中描述的两阶段离线 Rollout 程序评估 OAPL 在极端 off-policyness 下是否仍然有效,并在 LiveCodeBench 上与 DeepCoder (2025a) 进行比较
Pass@k performance
  • 图 5(左)显示了 DeepCoder、作者的 OAPL 训练复现模型以及两者使用的基础模型 (Deepseek-R1-Distill-Qwen-14B) 在 LiveCodeBench 上的 Pass@k 性能
  • 对于所有模型,Pass@k 随着 \(k\) 的增加而增加
  • 在整个 \(k\) 范围内,OAPL 训练的模型与 DeepCoder 性能相当或略优
  • 与基础模型的扩展曲线相比,再次看到 RL 训练(OAPL 和用于 DeepCoder 的 GRPO 变体)提高了大 \(k\) 下的 pass@k
Sample efficiency
  • 使用 OAPL 训练也比原始的 DeepCoder 训练流程具有显著的样本效率
  • 图 5(右)显示了 OAPL 和 DeepCoder 的 Pass@1 性能随总训练样本数的变化
  • DeepCoder 在训练中使用了大约 65 万个样本
    • 相比之下,使用 OAPL 训练只需要 \(\sim 20\) 万个样本
  • 这表示所需的样本数量减少了大约 3 倍,同时达到相同或更好的性能
  • 这种比较确实略微夸大了 DeepCoder 的实际总计算成本,因为他们训练的第一部分(160 步)限制在 16K 长度的生成,之后才切换到 32K
  • 但即使作者将 16K 生成计为“半个”样本以进行更公平的核算,总数也大约是 58 万个样本,OAPL 仍然提供了显著的样本效率提升

附录 A:Experimental Details

A.1 Math Training Hyperparameters

  • 表 1 显示了两种方法使用的优化器超参数
    • 作者没有针对数学任务调整优化器
  • 表 2 显示了特定于方法的超参数
  • 表 3 显示了两种方法共享的超参数
  • 对于 OAPL,作者对 \(\beta_{1} = \{1,5\}\) 和 \(\beta_{2} = \{1e - 2,1e - 3\}\) 进行了超参数搜索
    • 可以观察到 \(\{\beta_{1} = 1,\beta_{2} = 1e - 3\}\) 给出了最佳的整体性能(平均而言),并报告使用这些值时的性能

Code Generation Training Hyperparameters

  • 表 4、5 和 6 分别显示了作者的代码生成实验的优化器、OAPL 特定和训练超参数
    • 由于运行的计算成本,作者没有进行超参数搜索来选择超参数,而是根据在其他实验中发现有效的默认值,为 OAPL 选择了 \(\beta_{1}, \beta_{2}\)

附录:公式 1 到 \(V^{\star}\) 的证明

证明目标

  • 在 KL 正则化 RL 的框架下,下面目标函数
    $$
    \max_{\pi} \mathbb{E}_{x, y \sim \pi(\cdot|x)} \left[ r(x, y) \right] - \beta , \text{KL}(\pi | \pi_{\mathrm{vllm} })
    $$
  • 的最优值函数 \(V^{\star}(x)\) 具有以下封闭形式:
    $$
    V^{\star}(x) = \beta \ln \mathbb{E}_{y \sim \pi_{\mathrm{vllm} }(\cdot|x)} \exp\left( \frac{r(x, y)}{\beta} \right)
    $$

证明

先求解最优策略的表达式
  • 本节证明亦可参考 RL——CQL 的附录部分
  • 给定 \(x\),作者考虑以下优化问题:
    $$
    \max_{\pi(\cdot|x)} \mathbb{E}_{y \sim \pi(\cdot|x)} \left[ r(x, y) \right] - \beta , \text{KL}(\pi(\cdot|x) | \pi_{\mathrm{vllm} }(\cdot|x))
    $$
  • KL 散度的定义:
    $$
    \text{KL}(\pi | \pi_{\mathrm{vllm} }) = \mathbb{E}_{y \sim \pi} \left[ \ln \frac{\pi(y|x)}{\pi_{\mathrm{vllm} }(y|x)} \right]
    $$
  • 因此目标函数可写为:
    $$
    \mathcal{L}(\pi) = \mathbb{E}_{y \sim \pi} \left[ r(x, y) - \beta \ln \frac{\pi(y|x)}{\pi_{\mathrm{vllm} }(y|x)} \right]
    $$
  • 可以用拉格朗日乘子法求解带归一化约束 \(\sum_y \pi(y|x) = 1\) 的优化问题,写出拉格朗日函数:
    $$
    \mathcal{L} = \sum_y \pi(y|x) \left[ r(x, y) - \beta \ln \frac{\pi(y|x)}{\pi_{\mathrm{vllm} }(y|x)} \right] + \lambda \left( 1 - \sum_y \pi(y|x) \right)
    $$
  • 对 \(\pi(y|x)\) 求导并令其为零(注意 \(\ln \pi\) 的导数):
    $$
    \frac{\partial}{\partial \pi(y|x)} \left[ \pi(y|x) \left( r(x, y) - \beta \ln \pi(y|x) + \beta \ln \pi_{\mathrm{vllm} }(y|x) \right) \right] - \lambda = 0
    $$
  • 展开得:
    $$
    r(x, y) - \beta \ln \pi(y|x) - \beta + \beta \ln \pi_{\mathrm{vllm} }(y|x) - \lambda = 0
    $$
  • 整理有:
    $$
    - \beta \ln \pi(y|x) + \beta \ln \pi_{\mathrm{vllm} }(y|x) + r(x, y) - \beta - \lambda = 0
    $$
  • 即:
    $$
    \ln \frac{\pi(y|x)}{\pi_{\mathrm{vllm} }(y|x)} = \frac{r(x, y) - \beta - \lambda}{\beta}
    $$
  • 令 \(Z = e^{(\beta + \lambda)/\beta}\),则:
    $$
    \pi(y|x) = \frac{1}{Z} \pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)
    $$
  • 由归一化条件 \(\sum_y \pi(y|x) = 1\),得:
    $$
    Z = \sum_y \pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)
    $$
  • 因此最优策略为:
    $$
    \pi^{\star}(y|x) = \frac{\pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)}{\sum_{y’} \pi_{\mathrm{vllm} }(y’|x) \exp\left( \frac{r(x, y’)}{\beta} \right)}
    $$
最优值函数 \(V^{\star}(x)\)
  • 将 \(\pi^{\star}\) 代入原目标函数:
    $$
    V^{\star}(x) = \mathbb{E}_{y \sim \pi^{\star} } \left[ r(x, y) - \beta \ln \frac{\pi^{\star}(y|x)}{\pi_{\mathrm{vllm} }(y|x)} \right]
    $$
  • 由 \(\pi^{\star}\) 的表达式:
    $$
    \ln \frac{\pi^{\star}(y|x)}{\pi_{\mathrm{vllm} }(y|x)} = \frac{r(x, y)}{\beta} - \ln \sum_{y’} \pi_{\mathrm{vllm} }(y’|x) \exp\left( \frac{r(x, y’)}{\beta} \right)
    $$
  • 代入得:
    $$
    \begin{align}
    V^{\star}(x) &= \mathbb{E}_{y \sim \pi^{\star} } \left[ r(x, y) - \beta \left( \frac{r(x, y)}{\beta} - \ln \sum_{y’} \pi_{\mathrm{vllm} }(y’|x) e^{r(x, y’)/\beta} \right) \right] \\
    &= \mathbb{E}_{y \sim \pi^{\star} } \left[ r(x, y) - r(x, y) + \beta \ln \sum_{y’} \pi_{\mathrm{vllm} }(y’|x) e^{r(x, y’)/\beta} \right] \\
    &= \beta \ln \sum_{y} \pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)
    \end{align}
    $$
  • 即,最终得到:
    $$ V^{\star}(x) = \beta \ln \sum_{y} \pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right) $$
  • 证毕

附录:最优优势 \(A^{\star}\) 的推导

  • 副标题:公式 \(\pi^{\star}\) 和 \(V^{\star}\) 的关系推导

证明目标

  • 本节的证明目标是:
    $$\beta \ln \frac{\pi^{\star}(y|x)}{\pi_{\text{vllm} }(y|x)} = \underbrace{r(x,y) - V^{\star}(x)}_{\text{optimal advantage } A^{\star}}, \quad \forall x,y.$$

证明过程

  • 由之前的推导已知:
    $$
    \begin{align}
    \pi^{\star}(y|x) &= \frac{\pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)}{\sum_{y’} \pi_{\mathrm{vllm} }(y’|x) \exp\left( \frac{r(x, y’)}{\beta} \right)} \\
    V^{\star}(x) &= \beta \ln \sum_{y} \pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)
    \end{align}
    $$
  • 对 \(\pi^{\star}(y|x)\) 取对数:
    $$
    \ln \pi^{\star}(y|x) = \ln \pi_{\mathrm{vllm} }(y|x) + \frac{r(x, y)}{\beta} - \ln \sum_{y’} \pi_{\mathrm{vllm} }(y’|x) \exp\left( \frac{r(x, y’)}{\beta} \right).
    $$
  • 整理对齐待证明式子:
    $$
    \ln \pi^{\star}(y|x) - \ln \pi_{\mathrm{vllm} }(y|x) = \frac{r(x, y)}{\beta} - \ln \sum_{y’} \pi_{\mathrm{vllm} }(y’|x) \exp\left( \frac{r(x, y’)}{\beta} \right).
    $$
  • 两边乘以 \(\beta\):
    $$
    \beta \ln \frac{\pi^{\star}(y|x)}{\pi_{\mathrm{vllm} }(y|x)} = r(x, y) - \beta \ln \sum_{y’} \pi_{\mathrm{vllm} }(y’|x) \exp\left( \frac{r(x, y’)}{\beta} \right).
    $$
  • 由 \(V^{\star}(x)\) 的定义:
    $$
    V^{\star}(x) = \beta \ln \sum_{y} \pi_{\mathrm{vllm} }(y|x) \exp\left( \frac{r(x, y)}{\beta} \right),
    $$
  • 代入得:
    $$
    \beta \ln \frac{\pi^{\star}(y|x)}{\pi_{\mathrm{vllm} }(y|x)} = r(x, y) - V^{\star}(x).
    $$
  • 这是本文最优优势 \(A^{\star}(x, y)\) 的定义,证毕

附录:OAPL 策略更新损失函数的梯度推导及分析

  • 回顾论文中的公式 (3) 如下:
    $$
    \min_{\pi} \sum_{x} \sum_{i=1}^{G} \left( \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} - \big( r(x, y_i) - \hat{V}^{*}(x) \big) \right)^2
    $$
    • \(\pi\) 是当前要优化的策略(trainer policy)
    • \(\pi_{\mathrm{vllm} }\) 是固定的推理策略(inference engine policy)
    • \(\beta > 0\) 是正则化系数
    • \(r(x, y_i)\) 是奖励
    • \(\hat{V}^{*}(x)\) 是通过组内样本估计的最优值函数
    • \(A^{*}(x, y_i) = r(x, y_i) - \hat{V}^{*}(x)\) 是估计的最优优势函数

OAPL 目标对 \(\pi\) 的梯度推导

  • 首先,上述目标对应的损失函数为:
    $$
    L = \sum_{x} \sum_{i=1}^{G} \left( \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} - A^{*}(x, y_i) \right)^2
    $$
  • 为简化分析,令:
    $$
    u_i = \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} - A^{*}(x, y_i)
    $$
  • 于是有:
    $$
    \frac{\partial L}{\partial \ln \pi(y_i | x)} = 2 u_i \cdot \beta
    $$
    • 注:对 \(\pi(y | x)\) 求梯度,本来考虑的是对某个具体的 token 序列 \(y\) 对应的 logits 的梯度,但为了清晰,我们直接先对 \(\ln \pi(y|x)\) 求导(这样已经足够分析梯度的含义了)
  • 因此有:
    $$
    \frac{\partial L}{\partial \pi(y_i | x)} = \frac{\partial L}{\partial \ln \pi(y_i | x)} \cdot \frac{\partial \ln \pi(y_i | x)}{\partial \pi(y_i | x)} = 2 \beta u_i \cdot \frac{1}{\pi(y_i | x)}
    $$
  • 故,原始损失函数的梯度为:
    $$
    \nabla_{\pi(y_i | x)} L = 2\beta \left( \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} - A^{*}(x, y_i) \right) \cdot \frac{1}{\pi(y_i | x)}
    $$

OAPL 梯度方向分析

  • 这里本文关注的是 梯度下降 更新规则:
    $$
    \pi_{\text{new} }(y|x) = \pi_{\text{old} }(y|x) - \eta \nabla_{\pi} L
    $$
  • 当 \(u_i > 0\) 时
    $$
    \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} > A^{*}(x, y_i)
    $$
    • 左边是当前的策略 \(\pi\) 相对于 \(\pi_{\mathrm{vllm} }\) 的对数比值,乘以 \(\beta\)
    • 右边是估计的最优优势函数
    • 如果 \(u_i > 0\),说明 当前策略 \(\pi\) 对 \(y_i\) 的偏好程度(相对于 \(\pi_{\mathrm{vllm} }\))已经超过了最优优势所指示的合理程度
    • 此时梯度为正,更新时会 降低 \(\pi(y_i|x)\) 的概率
  • 当 \(u_i < 0\) 时
    $$
    \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} < A^{*}(x, y_i)
    $$
    • 说明 当前策略 \(\pi\) 对 \(y_i\) 的偏好程度低于最优优势所指示的合理程度
    • 此时梯度为负,更新时会 增加 \(\pi(y_i|x)\) 的概率
  • 当 \(u_i = 0\) 时
    $$
    \beta \ln \frac{\pi(y_i | x)}{\pi_{\mathrm{vllm} }(y_i | x)} = A^{*}(x, y_i)
    $$
    • 此时梯度为零,\(\pi(y_i|x)\) 已经达到最优

整体理解

  • OAPL 梯度更新方向实际上是在做 一种隐式的策略调整 :
    • 目标是最小化 \(\beta \ln(\pi/\pi_{\mathrm{vllm} })\) 与 \(A^{*}\) 之间的平方误差
    • 换句话说,它希望 当前策略 \(\pi\) 对某个序列的偏好程度(相对于 \(\pi_{\mathrm{vllm} }\))与最优优势函数的值匹配
    • 如果 \(\pi\) 对某个高优势序列的偏好不足(\(u_i < 0\)),就增加它的概率;
    • 如果 \(\pi\) 对某个低优势序列的偏好过高(\(u_i > 0\)),就降低它的概率;
    • 同时,这种调整受 \(\beta\) 控制,\(\beta\) 越大,越强调保持与 \(\pi_{\mathrm{vllm} }\) 接近
123…66
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

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