Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

NLP——技术报告解读-LongCat-Flash-Thinking-2601

注:本文包含 AI 辅助创作

  • 参考链接:
    • 技术报告链接:LongCat-Flash-Thinking-2601 Technical Report, 20260123, Meituan LongCat
    • 上一版技术报告链接:LongCat-Flash-Thinking Technical Report, 20250922, Meituan LongCat
    • 体验地址:longcat.ai
    • HuggingFace:huggingface.co/meituan-longcat/LongCat-Flash-Thinking-2601
    • GitHub:github.com/meituan-longcat/LongCat-Flash-Thinking-2601

Paper Summary

  • LongCat-Flash-Thinking-2601 是美团继 25年9月底 LongCat-Flash-Thinking 后的第二个推理模型
    • 统一的端到端训练流程训练,强调针对支持长程、交互驱动的智能体推理设计
    • 定位:560B-A26B(平均值),具备卓越 Agentic 推理能力的开源 MoE 推理模型,在 Agentic 搜索、Agentic 工具使用和工具集成推理上,均达到了开源模型中 Top 性能
  • LongCat-Flash-Thinking-2601 的核心创新如下:
    • (i) 一个可扩展的环境构建和多领域强化学习框架,能够稳定地习得可泛化的智能体技能
    • (ii) 一个鲁棒的智能体训练流程,通过基于课程的强化学习系统地纳入现实世界的环境噪声
    • (iii) 一种 Heavy Thinking 模式,通过联合扩展推理宽度和深度,实现有效的测试时推理扩展
  • 更详细的说明:
    • 为了优化长尾、偏态生成和多轮 Agentic 交互,并在横跨 20 多个领域的超过 10,000 个环境中实现稳定训练,作者系统地扩展了异步强化学习框架 DORA,以实现稳定高效的大规模多环境训练
    • 此外,认识到现实世界任务本质上是嘈杂的,作者对现实世界的噪声模式进行了系统性分析和分解,并设计了针对性的训练流程,明确地将此类不完美性纳入训练过程,从而提高了现实世界应用中的鲁棒性
    • 为了进一步提升复杂推理任务的性能,作者引入了 Heavy Thinking 模式 (Heavy Thinking mode),该模式通过密集的并行思考联合扩展推理深度和宽度,从而实现有效的测试时扩展

Introduction and Discussion

  • 最近的推理模型进展在数学和编程等复杂任务上取得了快速进步,在某些情况下甚至超越了顶尖人类专家 (DeepSeek-AI,2025,2025,Anthropic,2025,Google,2025)
  • 随之自然产生的下一个问题是:如何将这种复杂的问题解决能力应用于解决复杂的现实生活任务,以及如何将复杂的问题解决能力扩展到更广阔的范围?
    • 随着内在推理能力接近其极限,作者发现 与外部环境的交互成为推动进一步进步的关键机制 (MoonshotAI,2025,DeepSeek-AI,2025)
    • 从这个角度来看,Agentic 推理可以被理解为通过自适应地与外部环境交互来解决复杂问题的能力
  • 除了内部思考之外,高级的 Agentic 推理能力要求模型决定何时以及如何与环境交互,并有效地整合环境反馈以维持和推进推理过程
    • 通过这种方式,推理和交互自然地交织并相互增强,共同促成更通用、更强大的问题解决行为 (MiniMax,2025)
    • 然而,实现这种 Agentic 推理能力对现有模型和训练流程构成了重大挑战
    • Agentic 任务通常涉及长视野轨迹、异构环境和长尾交互动态,这对数据管理、环境构建、强化学习策略以及贯穿预训练到后训练阶段的系统级基础设施提出了新的要求
  • LongCat-Flash-Thinking-2601 是一个强大且高效的 MoE 推理模型
    • 总参数为 560B,平均每个 Token 激活参数为 27B,具备强大的 Agentic 推理能力
  • LongCat-Flash-Thinking-2601 的预训练大体遵循了 LongCat-Flash-Chat 的方案 (2025a),保留了原始数据分布以维持有竞争力的一般推理性能
  • 在此基础上,作者通过精心设计的 Mid-training 阶段进一步将模型扩展至大规模 Agentic 推理
    • 与传统推理相比,Agentic 行为通常涉及具有主动性工具调用的长视野轨迹
      • 但这种交互模式在现实世界语料库中极其稀缺,因为大部分数据主要由自然语言构成
    • 所以原始模型对 Agentic 交互动态大多不熟悉,导致在强化学习阶段探索效率低下
    • 为了解决这一挑战,作者在 Mid-training 中让模型接触中等规模的合成结构化 Agentic 轨迹,为 Agentic 推理行为提供了强有力的初始化
  • 在后训练中,作者专注于高效扩展强化学习计算以提高 Agentic 推理能力
    • 除了搜索和代码等特定 Agentic 场景外,作者进一步将跨任务和环境的泛化识别为高级 Agentic 行为的核心特征
      • 这种能力主要通过与多样化环境的交互获得,因此这些环境充当了学习场
    • 为此,作者设计了一个自动化环境扩展流程,以构建覆盖超过 20 个领域的复杂多样化环境,同时严格保持可执行性和可验证性
      • 由于所生成的环境在领域和难度上都表现出显著的异质性,对它们进行训练需要仔细协同设计训练策略和基础设施支持,以确保稳定有效的多领域环境学习
    • 为了在这种设置下支持大规模 Agentic 强化学习,作者扩展了多版本异步训练系统 DORA,以实现多达 32,000 个环境并发执行的可扩展且稳定的训练
    • 但泛化到现实世界设置仍然极具挑战性
      • 因为现实世界环境本质上 imperfect
    • 为了弥合理想化训练设置与现实世界部署之间的差距,作者系统分析了现实世界噪声,并设计了一个自动化流程,逐步将多类型、多级别的环境不完美性纳入多领域环境训练过程
  • 为了进一步将推理能力推至超越现有极限,LongCat-Flash-Thinking-2601 集成了一个 ** Heavy Thinking 模式 (Heavy Thinking Mode)** ,该模式能够实现有效的推理测试时扩展
    • 该模式将具有挑战性的问题解决分解为互补的阶段,共同扩展推理的宽度和深度,使模型能够探索多样化的解决路径,同时逐步完善其推理
    • 注意:这里为 Heavy Thinking Mode 引入了一个额外的强化学习阶段,以增强模型聚合和完善中间推理结果的能力,从而进一步提高有效性
  • 在保持一般推理基准测试强竞争力的同时,LongCat-Flash-Thinking-2601 在广泛的 Agentic 基准测试中取得了开源模型中 state-of-the-art 的性能,同时展现出对分布外现实世界 Agentic 场景的强大泛化能力
  • LongCat-Flash-Thinking-2601 在 BrowseComp 上达到 \(73.1%\),在 RWSearch 上达到 \(77.7%\),在 \(\tau^2\)-Bench 上达到 \(88.2%\),在 VitaBench 上达到 \(29.3%\),使其成为 Agentic 搜索和 Agentic 工具使用任务的领先开源模型
  • 作者的三个核心贡献:
    • 环境扩展与多领域环境训练 (Environment Scaling and Multi-Domain Environment Training)
      • 开发了一个可扩展的环境构建和任务生成框架,以产生大量高质量、可执行且可验证的 Agentic 环境
      • 在此基础上,作者扩展了异步强化学习基础设施,以支持稳定高效的多领域环境训练,从而能够在不同领域中学习到可泛化的 Agentic 技能
    • 嘈杂环境下的鲁棒 Agentic 训练 (Robust Agentic Training under Noisy Environments)
      • 为了解决现实世界环境固有的非理想性,作者系统分析了环境噪声的主要来源,并设计了一个自动化流程,将多类型、多级别的噪声注入训练环境
      • 采用基于课程 (curriculum-based) 的强化学习策略逐步增加噪声复杂性,从而在不完美条件下显著提高鲁棒性和性能
    • 用于测试时扩展的 Heavy Thinking 模式 (Heavy Thinking Mode for Test-Time Scaling)
      • 引入了 Heavy Thinking 模式,该模式通过联合扩展推理宽度和深度,实现有效的推理测试时扩展
      • 通过并行轨迹探索和迭代推理精炼,该模式进一步提升了在具有挑战性的推理和 Agentic 任务上的性能

Pre-Training

  • 作者的模型建立在 LongCat-Flash-Chat 的预训练方案之上 (2025a),继承了其数据分布以保留强大的通用语言和推理能力
  • 超越传统推理,Agentic 行为通常涉及具有主动性工具调用的长视野轨迹,这带来了两个额外的挑战:
    • (i) 对长上下文建模效率的需求大幅增加
    • (ii) 现实世界中大规模 Agentic 轨迹的稀缺性
  • 为了应对 Agentic 推理对长上下文的需求,作者采用了一个分阶段的 Mid-training 过程,逐步增加上下文长度,分配 500B 个 Token 给 32K/128K 阶段,并额外分配 40B 个 Token 给 256K 阶段
  • 由于如果没有已具备基本 Agentic 行为能力的模型,大规模强化学习本身通常是低效且不稳定的,因此作者选择在此阶段让模型接触中等规模的 Agentic 数据
    • 为了缓解现实世界 Agentic 轨迹的稀缺性,作者构建了一个混合数据合成流程来收集和构建 Agentic 训练数据
    • 此外,作者基于任何预训练检查点预测 Mid-training 阶段的最优超参数,这一设计专门旨在最小化寻找最佳配置的计算成本
  • 遵循原始的 Mid-training 方案以保留一般推理能力 (2025a, 2025),作者进一步用结构化 Agentic 轨迹 (2026) 增强数据分布
    • 由于大规模、高质量的 Agentic 数据(特别是涉及推理、规划和交互的长视野轨迹)极其稀缺,作者构建了一个混合数据合成框架来填补这一空白
  • 具体来说,作者的框架借鉴了两个互补来源:
    • 非结构化文本和可执行环境,分别对应文本驱动合成和环境驱动合成
      • 非结构化文本提供了广泛的语义和任务多样性
      • 可执行环境确保了逻辑一致性和可执行性
    • 为了显式加强规划能力(这是 Agentic 推理的一个核心组成部分,难以从现有数据中获取),作者进一步设计了一个专门的、以规划为中心的数据构建策略
  • 如图 2 所示,使用这种增强的 Mid-training 方案训练的模型展现出优越的 Agentic 能力边界,这体现在 \(\tau^2\)-Bench 上更大的 pass@k

Text-driven synthesis

  • 大规模文本语料库包含丰富的隐性过程知识,例如教程、指令和多步骤问题解决工作流
  • 作者利用这一特性,通过以下流程挖掘并将这些潜在过程重构成显式的 Agentic 交互轨迹:
    • 文本过滤与工具提取 (Text Filtering & Tool Extraction) :作者策略性地识别出展现丰富、多步骤工作流的文本片段
      • 从这些片段中,作者定义潜在函数并提取相应的函数调用列表,将隐式过程转化为显式的工具模式
    • 合成与精炼 (Synthesis & Refinement) :作者将抽象的工作流和原始文本转化为具体的、多轮次的用户-Agent 交互
      • 为了确保数据集的鲁棒性和广度,作者应用了广泛的 Agentic 模式多样性增强和严格的质量过滤,确保最终的轨迹覆盖各种交互场景和任务领域
  • 为了进一步提高合成轨迹的结构复杂性,作者应用了两种基于分解的增强:
    • 工具分解 (Tool Decomposition) :从简单的工具调用轨迹开始,作者迭代地将部分工具参数隐藏到环境中
      • 相应地,作者合成模型交互以提取这些参数,逐步构建更复杂的轨迹
    • 推理分解 (Reasoning Decomposition) :对于模型输出中的每个动作步骤,作者生成多个替代候选方案,并用这些替代方案替换原始动作
      • 然后作者合成模型推理步骤以选择最合适的候选,将轨迹转化为反映 Agent 跨多个步骤进行推理的决策过程

Environment-grounded synthesis

  • 除了文本衍生的轨迹,作者也直接从可执行环境构建 Agentic 数据,以保证逻辑正确性和执行一致性
  • 作者为收集的工具集实现轻量级 Python 环境,并通过受控的工具链采样和执行验证生成轨迹:
    • 环境构建与依赖建模 (Environment Construction & Dependency Modeling) :基于现有的工具定义,作者实现轻量级、可验证的 Python 环境
      • 作者显式地建模工具间的逻辑依赖关系,构建一个有向图,其中节点代表工具,边代表参数依赖
      • 这种结构让我们能够系统地采样不同复杂性和深度的工具调用链
    • 逆向合成与执行验证 (Reverse-Synthesis & Execution Verification) :作者从依赖图中采样有效的工具执行路径,并采用逆向工程方法合成与所选工具链相符的用户模拟器系统提示
      • 重点:通过执行代码并验证环境数据库的最终状态来验证每个轨迹的正确性
        • 这确保了合成数据基于实际执行逻辑

Planning-Oriented Data Augmentation

  • 作者观察到 Agentic 推理关键依赖于规划能力,该能力控制着模型如何分解复杂目标、探索替代方案并确定中间决策
    • 但这种以规划为中心的行为在现有数据中代表性不足,并且难以大规模获取
  • 为了在 Mid-training 中显式加强这种能力,作者设计了一种针对性的数据构建策略,将现有轨迹转化为以规划为中心的决策过程
    • 第一类数据专注于合成有效的问题分解轨迹,并配对正确的初始动作选择,为从粗到细的规划和早期决策制定提供监督
    • 第二类数据从完整的交互轨迹开始,通过在每个决策步骤生成多个替代候选方案来进一步丰富它们
    • 然后训练模型对这些候选方案进行推理和选择,将原本线性的轨迹转化为结构化的多步骤决策过程

Scaling Reinforcement Learning

  • 通过强化学习进行后训练已成为激发更强推理能力的主要方法
  • 遵循 LongCat-Flash-Thinking (2025b),作者采用了一个统一的多领域后训练流程,其中领域专家模型首先在一个共享框架下训练,然后通过模型级和数据级合并整合为一个通用模型
  • 具有智能体(agentic)推理能力的强化学习需要:
    • (i) 精心准备的训练设置,包括可扩展的环境构建、高质量的冷启动数据和良好校准的 RL 任务集;
    • (ii) 一个能够维持高吞吐量、异步、长尾的多轮 Rollout 的专用基础设施;
    • (iii) 能够在异构领域和不同难度级别下保持稳定和有效的专用训练策略
  • 本节将介绍一个系统性流程,以应对这些挑战并实现可扩展的智能体强化学习
  • 图 3:可执行领域图的自动化构建
    • 从高层领域规范开始,该流程合成领域特定工具,生成相应的数据库模式和工具模式实现
    • 在此基础上,作者构建一个经过验证的工具依赖图,作为环境扩展的基础

RL Preparation

  • 在进行大规模强化学习之前,需要几个必要的准备步骤
  • 标准强化学习依赖于两个核心组件:
    • (i) 一个展现了基本任务相关行为的、良好初始化的策略(policy);
    • (ii) 一个能够实现稳定有效学习的、有原则的训练任务集
    • 除了这些共享组件之外,智能体强化学习还需要一个可靠且可扩展的环境基础来支持长视野、交互驱动的训练
Environment
  • 传统推理在很大程度上是无环境的,主要在内部语言空间内运作
  • 环境是智能体系统的一个决定性组成部分,因为它们直接决定了智能体能够感知什么、如何与外部系统交互以及在世界上哪些动作是可执行的
  • 作者特别介绍了智能体任务中两种特别具有挑战性的环境类型:智能体编码和智能体工具使用
Code Sandbox
  • 对于每个编码任务,智能体必须在可执行的代码沙箱中操作,并实时与各种终端工具交互
  • 这种设置带来了两个主要挑战:
    • 需要高效的大规模资源调度
    • 工具和执行环境的异构性
  • 在大规模训练中,沙箱系统必须同时确保灵活性和鲁棒性
  • 为了解决这些挑战,作者设计了一个可扩展的执行沙箱系统,提供统一的工具接口和高吞吐量的交互
    • 为了处理现实世界代码执行设置的异构性,作者将常用工具(包括搜索、文件读写、代码编辑和 shell 执行)整合到一个标准化的环境接口中
    • 为了进一步支持大规模训练,作者实现了一个高并发沙箱调度器,异步地供应和回收沙箱实例,将任务分配给工作节点,并并行执行数千个沙箱,从而消除了环境启动和阻塞开销对关键训练路径的影响
Agentic Tool-Use Environment
  • 高级智能体推理能力的核心特征是泛化性,即在已知环境中获得有效行为并将其可靠地迁移到先前未见过的环境中的能力
  • 为了训练这种泛化的智能体,作者认为可迁移的智能体推理能力应源于接触多样化的工具集和交互模式
    • 虽然设计一个能够完全捕捉现实世界工具使用复杂性的单一元环境是不可行的,但作者发现一个足够多样化的环境集合可以提供一个基础,从而实现可迁移和可泛化的工具使用行为
    • 然而,在实践中,构建这样的环境存在不小的挑战,因为不同领域对交互接口、执行机制和评估标准提出了不同的要求
  • 作者设计了一个完全自动化的流程,将高层领域规范转换为可执行图
    • 如图 3 所示,该流程从领域定义中合成领域特定工具集,并将它们的功能抽象为具有明确工具-数据库映射的统一数据库模式
    • 基于这个模式级规范,它然后自动生成数据库实现和相应的工具代码
      • 为了确保正确性和鲁棒性,生成的代码通过单元测试和辅助调试智能体进行验证
      • 在实践中,该流程在将模式级设计转换为完全可执行的工具实现方面,成功率超过 \(95%\)
    • 最后,作者从经过验证的工具集构建工具依赖图,作为后续环境构建和扩展的基础
  • 使用作者的自动化流程,作者构建了一个涵盖超过20个领域的领域特定工具图集合 \(\mathcal{G}\)
    • 每个工具图 \(G \in \mathcal{G}\) 包含超过60个工具,这些工具组织在一个密集的依赖图中,并配有相应的可执行、工具特定的数据库模式实现,为大规模探索和多样化环境构建提供了足够的结构复杂度
  • 接下来,作者介绍基于领域图构建可执行环境的流程
    • 给定一个领域特定的工具图 \(G\),作者首先从中采样一个中等规模的工具链 \(s_1 \subset G\)
    • 先前选择的工具的采样概率会逐渐降低,以促进任务多样性
    • 对于 \(s_1\) 中的每个工具,作者顺序实例化相应的数据库状态,确保所有所需的工具依赖关系都得到完全满足
    • 在构建了与工具关联的数据库之后,作者自动生成一个基于此工具链的任务
    • 采样的 \(s_1\) 作为生成任务的可执行工具链
    • 为了减轻潜在的人工先验偏见,任务生成器被限制为仅使用完整的工具链,而没有任何刻意的任务设计
    • 具体来说,每个生成的任务包含三个部分:
      • (i) 任务描述
      • (ii) 用户画像
      • (iii) 评估标准 (Evaluation Rubrics)
    • 为了确保可靠的监督,评估标准通过多轮一致性检查进行验证,保证任何可执行工具链都能被接受为正确解决方案,并且不正确或不完整的轨迹会被一致地拒绝
  • 作者注意到任务难度来自两个互补的方面:交互复杂性和环境复杂性
    • 交互复杂性通过合成多样化的用户提示 (prompts) 来保证,这些提示需要不同程度的澄清、规划和多步交互,鼓励模型进行丰富且自适应的智能体行为
    • 环境复杂性使用底层工具图的结构特性来量化,包括涉及的工具节点数量以及它们之间的连接密度
  • 增加环境复杂性的自然方法是通过从 \(G\) 中引入额外的工具节点,将初始工具链 \(s_1\) 扩展为一个更大的子图 \(\mathcal{R}(s_1)\),同时维护它们的数据库实例
    • 值得注意的是,在此扩展之后,生成的环境可能还包含多个有效的可执行工具链
    • 然而,随着子图的增长,维护跨工具的数据库一致性变得越来越具有挑战性
    • 特别是,由于工具依赖图施加的约束,不受控制地引入额外的工具节点可能触发一系列先前未满足的依赖关系,需要大量的数据库扩充和维护大量辅助工具节点
    • 一旦在这种扩展下数据库状态变得不一致,工具调用可能产生不可预测的结果,导致即使有效的工具轨迹也执行失败
    • 这可能导致正确的解决方案被错误地判定为失败,从而在训练中引入有偏差的负奖励
    • 为了缓解这个问题,作者不是盲目地注入随机工具,而是通过扩展可执行工具链来扩展环境
    • 具体来说,从 \(s_1\) 开始,作者在工具图上执行广度优先搜索 (BFS) 风格的扩展,并且仅当一个新工具节点的所有依赖项都已由先前实例化的工具(其数据库状态已被完全构建)满足时,才添加该节点。这种受控的扩展策略让我们能够在保持可执行性和可靠监督的同时,逐步增加环境复杂性
  • 通过这种受控的图扩展,作者将 \(s_{1}\) 扩展为一个更复杂的子图 \(\mathcal{R}(s_{1})\)
    • 作者将生成的环境表示为 \(\mathcal{E}_{1} = \mathcal{R}(s_{1})\)
    • 令 \(\mathcal{D}_{1} = G\backslash \mathcal{E}_{1}\) 表示对于 \(\mathcal{E}_{1}\) 剩余的未使用工具节点
    • 一个进一步的设计选择是是否初始化另一个种子可执行工具链 \(s_{2}\subseteq \mathcal{D}_{1}\),并将其扩展为 \(\mathcal{R}(s_{2})\) 来构造环境:
      $$\mathcal{E}_2 = \mathcal{R}(s_1)\bigcup \mathcal{R}(s_2),$$
  • 这进一步增加了环境复杂性,作者基于以下因素做出这个决定:
    • (i) 当前环境的结构复杂度 \(c(\mathcal{E}_1)\)
    • (ii) 从剩余图中识别新有效工具链的难度 \(g(\mathcal{D}_1)\)
    • (iii) 剩余未使用节点的数量 \(|\mathcal{D}_1|\)
  • 具体来说,给定当前环境:
    $$\mathcal{E}_n = \bigcup_{i = 1}^n\mathcal{R}(s_i),$$
  • 作者将剩余未使用的工具集定义为 \(\mathcal{D}_n = G\backslash \mathcal{E}_n\),并以概率从 \(\mathcal{D}_n\) 中采样一个新的种子链 \(s_{n + 1}\):
    $$p = f(c(\mathcal{E}_n),g(\mathcal{D}_n),|\mathcal{D}_n|),$$
    • 其中 \(g(\mathcal{D}_n)\) 通过一个强大的求解器从 \(\mathcal{D}_n\) 中发现一个替代有效工具链所需的尝试次数来度量,而 \(f(\cdot)\) 是一个单调决策函数,控制环境增长过程
    • 在实践中,当 \(p > \tau\) 时,其中 \(\tau\) 是预定义的阈值,作者从 \(\mathcal{D}_n\) 初始化一个新的种子黄金工具链 \(s_{n + 1}\),并将其扩展为 \(\mathcal{R}(s_{n + 1})\)
  • 为了确保最低水平的环境复杂性,作者进一步引入了回退机制
    • 如果生成的扩展 \(\mathcal{E}_n\) 仅包含少量工具节点,作者从 \(G\) 中随机采样一个中等大小的额外工具链,并将其合并到环境中,同时确保数据库与当前工具链的一致性
    • 这保证了每个构建的环境至少包含20个工具,为有意义的智能体交互和探索提供了足够的结构复杂性
    • 这种自动环境构建策略让我们能够在保持可靠监督信号的同时,逐步扩展环境复杂性,从而实现稳定有效的大规模智能体强化学习
Initial Policy
  • 冷启动阶段在初始化后续强化学习阶段的策略方面起着关键作用
    • 冷启动的主要目标不是优先考虑在标准基准测试上的即时收益,而是为有效的大规模探索做好准备
  • 高质量的冷启动策略必须展现出多样化的推理模式和稳定的交互格式,确保后续的 RL 阶段可以高效进行,同时保留通用思维能力
    • 因此,作者从更根本的角度评估冷启动模型,重点关注以下两个方面:
      • (1) 其在 RL 阶段指定任务上的熟练程度
      • (2) 通过人工定性检查评估的其推理路径的多样性
    • 虽然作者报告标准基准测试上的 pass@k 性能以衡量基础推理能力,但这仅作为参考,而非主要优化目标
  • 冷启动训练的一个主要挑战在于构建高质量的数据,这些数据能有效引导模型产生智能体行为
    • 对于某些领域,如数学、通用编码和智能体代码任务,现实世界中存在大规模数据源
      • 在这些情况下,作者从现有来源中收集和组装轨迹,核心挑战在于严格的质量控制和可执行性验证
    • 然而,对于大多数智能体任务,如搜索和工具使用,高质量的实境轨迹基本上是不可用的
      • 因此,作者依赖于精心设计的数据合成流程来构建冷启动轨迹
    • 接下来作者将详细描述如何针对不同的智能体能力实例化这两种互补的策略
General Thinking
  • 智能体能力需要强大的思考能力作为基础,作者设计了一个严格的数据过滤流程来构建高质量的 通用思考数据
  • 具体来说,作者采用了一种由困惑度 (Perplexity, PPL) 引导的 K-Center-Greedy (KCG) 选择算法 (2018; 2023; 2023)
    • 现有的基于 PPL 的过滤方法要么忽略序列长度,要么对整个序列平均 PPL (2025; 2025b),这 会掩盖局部困难 Token 并丢弃信息丰富的样本
    • 为了解决这个问题,作者引入了滑动窗口 PPL,它计算序列中所有 512-Token 窗口的平均 PPL 的最大值 ,从而捕捉模型的峰值不确定性,而不会被全局平均所稀释
      • 理解:
        • 对于一个模型来说(作者指待训练模型),PPL 约小说明拟合的越好,PPL 越大,说明信息量越多;
        • 部分子序列上的 PPL 差异可能是很大的,所以 子序列 PPL 很大时,值得留下来,故而做了一个加权
  • 在 KCG 选择期间,作者根据 候选样本的滑动窗口 PPL 分数来加权 它与当前已选集合之间的距离
    • 这种设计同时捕获了两个互补的目标:KCG 保留了对原始数据分布的覆盖 ,而滑动窗口 PPL 则强调了暴露模型当前推理能力差距的样本
    • 使用这个流程,作者从一个大语料库中下采样了 210K 个通用思考样本
  • 在此子集上训练的模型在多个推理基准测试中优于在全语料库上训练的模型
  • General Thinking 的补充:
    • 核心:这是一种结合 K-Center-Greedy (KCG) 算法和 滑动窗口困惑度(Sliding-Window PPL) 的数据选择策略。具体步骤如下:
    • 滑动窗口困惑度计算
      • 对于一个长度为 \( L \) 的文本序列,定义滑动窗口大小为 512 个 token,计算每个窗口内的平均困惑度(PPL),并取所有窗口中的最大值作为该样本的“滑动窗口困惑度”:
        $$
        \text{PPL}_{\text{slide} }(s) = \max_{i=1}^{L-511} \frac{1}{512} \sum_{t=i}^{i+511} -\log P(w_t \mid w_{ < t})
        $$
        • 其中 \( P(w_t \mid w_{ < t}) \) 是模型在给定前文条件下预测当前 token 的概率
    • K-Center-Greedy 选择算法
      • 在 KCG 选择过程中,每个候选样本 \( s \) 与当前已选集合 \( S \) 的距离由滑动窗口困惑度加权:
        $$
        \text{dist}_{\text{weighted} }(s, S) = \text{PPL}_{\text{slide} }(s) \times \min_{s’ \in S} d(s, s’)
        $$
        • 其中 \( d(s, s’) \) 是样本间的表示距离(比如通过 Sentence-BERT 编码的余弦距离)
    • 选择目标
      • KCG 算法选择能够最大化覆盖原始数据分布的样本,而 滑动窗口困惑度 则 强调那些当前模型在局部推理上存在困难的样本 ,两者的结合实现了:
        • 分布覆盖(Diversity)
        • 困难样本挖掘(Difficulty-Aware Selection)
      • 该方法从大规模语料库中筛选出 210K 条高质量通用推理样本,显著提升了推理任务的性能
    • 注意:在 LongCat 报告中提到的 滑动窗口 PPL 是基于 正在被训练的 LongCat-Flash-Thinking-2601 模型自身 来计算的,而不是外部模型
      • 1)模型自身对候选样本进行前向推理
      • 2)计算每个 512 token 窗口内的平均负对数似然(即局部 PPL)
      • 3)取所有窗口中的 最大值 作为该样本的“滑动窗口 PPL”
      • 目的:用当前模型自身的困惑度峰值来标识“局部推理困难”的样本,从而在 KCG 采样时给予更高权重,实现困难感知的数据选择
Agentic Coding
  • 对于智能体编码任务,大规模的软件开发平台提供了丰富的实境轨迹来源
    • 但从这些来源收集的原始轨迹通常是有噪声的、部分错误的或不可复现的 ,确保它们的可靠性和可执行性成为一个关键挑战
  • 为了解决这个问题,作者为*代码交互轨迹 *构建了一个严格的筛选流程
    • 作者要求所有保留的轨迹在可复现的环境中都是完全可执行和可验证的 ,并且 只保留那些在保留现有功能的同时正确解决了目标问题的轨迹
    • 为了进一步避免学习到虚假行为,作者应用了 细粒度的动作级过滤,移除错误的、冗余的或推测性操作(speculative operations,即对正确解决问题无益的)
    • 为了保留在实际调试过程中常见的长期推理模式,作者通过压缩早期步骤,保留涉及长且迭代调试的轨迹,从而在没有长度约束的情况下保持长期代码推理
Agentic Search
  • 对于智能体搜索能力,构建高质量的轨迹需要显式地建模多步证据收集和完整条件验证,同时避免基于部分信息的虚假捷径
    • 这种结构化的推理轨迹在现实世界的搜索日志中很少见
  • 作者构建了合成的推理轨迹,这些轨迹优先考虑正确性、推理完整性以及针对捷径行为的鲁棒性
    • 作者应用严格的过滤来确保轨迹质量,移除琐碎案例,并强制使用一致的推理和工具使用格式
    • 为了避免捷径学习,例如基于部分证据的幸运猜测,作者要求轨迹包含对 Query 中指定的所有条件的显式验证
    • 作者通过压缩早期步骤,进一步保留了涉及长且迭代探索的轨迹,从而在没有长度约束的情况下保留长期推理
    • 作者通过重用后续强化学习阶段中的 Rollout 轨迹来扩展数据收集并增加行为多样性
Agentic Tool-Use
  • 对于智能体通用工具使用能力,主要挑战在于对跨异构工具和数据库(具有不同模式和依赖结构)的复杂、有状态的交互进行建模
    • 这样的环境和交互轨迹也难以从现实世界来源获得或标准化
  • 作者在环境扩展流程之上构建了一个可扩展的数据合成流程
    • 通过联合定义领域(jointly defining domains)、工具模式、数据库状态和任务目标,并在结构化工具依赖关系的基础上生成多步任务,以模拟覆盖 33 个代表性领域的现实工具使用环境
    • 了确保多样性,作者明确地在三个方面促进可变性:领域覆盖范围、轨迹结构和交互长度
      • 每个任务允许多种不同的正确工具调用轨迹,交互范围从短对话到长多轮执行,涵盖了广泛的任务难度和行为模式
    • 为了确保数据质量,所有合成的轨迹都使用基于标准 (Rubric-based) 的结果验证和轮次级质量控制进行严格过滤
      • 只有正确达到目标最终状态的轨迹才会被保留
    • 在这些轨迹中,作者应用 Turn-level 损失掩码 ,从损失计算中排除低质量的轮次(例如失败的工具调用或格式违规),确保模型只从正确的动作中学习,同时保留完整的交互上下文
RL Task Set
  • 在强化学习中,环境定义了智能体可以做什么,而任务集则决定了智能体被训练去做什么
    • 它们共同塑造了智能体如何探索环境、分配计算并通过重复 Rollout 来改进其策略
  • 一个设计良好的任务集应该既有信息量又有适当的复杂度 ,以便它能够提供有效的学习信号,而不会过于琐碎或难以解决
  • 常见的做法是首先构建一个多样化的环境集合,并配以跨多个领域和难度级别的任务指令,然后通过评估模型的通过率来评估任务的适用性
    • 基于这个信号,选择那些既非轻易可解决也非极其困难的任务用于强化学习
  • 但不同领域的训练任务可用性差异很大
    • 对于一些领域,如编码,已经存在大量复杂且高质量的任务,可以直接收集和整理
    • 对于智能体搜索和工具使用等领域,合适的任务稀缺或不存在现成可用的形式,使得直接收集不足
    • 作者引入了有原则的合成流程(principled synthesis pipelines),为智能体搜索和工具使用场景构建涵盖多种复杂级别的任务集
Agentic Search
  • 作者确定了表征搜索问题的两个基本难度因素:
    • (i) 对关系实体链的多跳推理
    • (ii) 在多个模糊约束下对单个实体的推理
    • 大多数复杂的搜索任务可以看作是这两个因素的组合或迭代细化
  • Graph-based QA Synthesis :
    • 为了建模多跳推理难度,作者通过一个系统性流程构建基于图的 Question-Answer 任务,该流程从维基百科实体构建关系图并生成具有挑战性的推理问题
      • 首先从维基百科中提取低频实体作为初始种子节点,然后通过从现有实体集中采样、检索它们的维基百科页面,并结合相关实体及其对应关系,迭代扩展图,直到达到预定义的大小阈值
      • 图构建完成后,采样多个固定大小的连通子图,并用它们生成 Question-Answer 对
        • 在问题生成过程中,作者利用大语言模型创建与子图信息对应的问题,然后故意混淆显式细节,如数值、实体名称、地理位置和时间 Token ,以最大化推理复杂性
        • 为了确保整个流程的质量和正确性,作者在关键步骤(包括实体关系提取、问题生成和混淆)采用 LLM-as-a-judge 方法以保持基准准确性
      • 最后,对于每个生成的 Question-Answer 对,作者利用基于智能体的方法来识别其他潜在正确答案并评估其有效性,只保留那些原始答案正确且所有其他识别的潜在答案都不正确的配对
  • Agent-based QA Synthesis :
    • 为了建模由模糊性驱动的难度,作者提出了一个可扩展、高效的数据合成流程,其中多智能体协作交互由有限状态机 (FSM) 编排
    • 在此框架内,一个实体提取智能体识别代表性的长尾实体并提取其显著属性,作为合成问题的基础事实
      • 一个问题合成智能体利用这些属性的随机抽样来制定定制化问题
      • 为了确保精确性,一个验证智能体利用搜索和浏览工具严格验证基础事实是否满足问题中指定的所有约束,从而减轻实体-问题不匹配的风险
    • 对于每个经过验证的问题,答案生成智能体利用搜索和浏览工具生成候选答案
    • 判断智能体评估这些候选答案与预定义基础事实之间的一致性
      • 当判断智能体识别出一个非基础事实但仍满足验证标准的答案时,它表示存在多答案冲突
      • 为了解决这个问题,系统会随机加入基础事实实体的额外属性,并触发问题重新合成,以确保其唯一性
    • 该流程促进了跨多个领域多样化、高质量的问答对的高吞吐量生成
    • 此外,它还实现了一个基于答案生成智能体准确性指标的自动难度分级机制
Agentic Tool-Use
  • 对于智能体工具使用,作者的任务集直接通过第 3.1.1 节描述的环境扩展流程构建
  • 每个合成的环境自然地定义了一个独立的任务,而这样的环境集合构成了最终的任务集

Scalable Asynchronous Agentic RL Framework

  • 与标准推理任务等单轮场景相比,智能体训练涉及与可变环境 (ENV) 或工具的多轮交互,这对强化学习基础设施提出了新的挑战
  • 在典型的多轮 Rollout 阶段,它反复交错进行 LLM 生成、环境执行和奖励评估,以构建用于强化学习训练的最终轨迹
    • 在这种情况下,轨迹不仅具有长尾分布且偏斜,还涉及不可预测和延迟不均衡的环境交互,这导致在批处理设置下设备利用率不足 (2025; 2025c; 2025a)
  • 此外,作者的生产集群由中端加速器组成,特别是仅有大约 60GB 的可用设备内存
    • 硬件约束及其软件生态系统对实现稳定且可扩展的智能体强化学习训练构成了重大挑战
  • 为了解决这些问题,作者扩展了作者的多版本异步训练系统 DORA (Dynamic ORchestration for Asynchronous Rollout) (2025c),以全面支持多轮智能体场景下的大规模强化学习训练
  • 如图 5 所示,作者的控制器采用生产者-消费者架构,包括 RolloutManager(管理 Rollout 阶段)、SampleQueue(控制样本陈旧度)和 Trainer(管理 Experience-Maker 和训练阶段)
    • 这些组件运行在不同的节点上,主要负责通过远程过程调用 (RPC) 进行逻辑控制和协调,而在 CPU 或加速器上运行的 Worker 执行实际任务
  • 作者提出了几项关键技术,以实现高效、可扩展且稳定的智能体强化学习训练
    • 全流式异步 Pipeline (Fully Streaming Asynchronous Pipeline)
      • 为了最小化智能体设置下的设备闲置时间,作者基于流式 RPC (2025c) 引入了全流式异步 Pipeline ,既在 Rollout 过程内部,也在 Rollout 和训练之间
      • 在 RolloutManager 内的 Rollout 循环中,作者移除了批处理屏障,使 LLM 生成、环境执行和奖励计算能够在远程 Worker 上以单个样本的粒度执行
        • 这防止了加速器在等待批处理 ENV 调用完成时闲置
      • 为了进一步解决训练稳定性与长尾生成问题,作者的 DORA 系统支持多版本异步训练,由不同模型版本生成的轨迹在完成后会立即入队
      • 在一个步骤内,作者的多版本生成实例继续使用多个先前的模型版本进行 Rollout,而 Trainer 可以在满足其条件时立即启动训练,或者在训练设备闲置时弹性扩展额外的生成实例以获得免费的额外吞吐量
    • 扩展至大规模智能体训练 (Scaling to Large-scale Agentic Training)
      • 作者的算法设置需要大量环境,例如,多达 32,000 个环境在大约 400 台物理机器上运行,涉及数千个加速器
      • 然而,这些环境之间的密集交互在横向扩展时会导致 RolloutManager 出现单机瓶颈,因为每次交互通常只涉及少量 CPU 操作
      • 为了解决这个问题
        • 首先,将原始设计分解为一个轻量级 RolloutManager(管理全局控制元数据)和多个 RolloutController(每个都以数据并行方式管理一个虚拟 Rollout 组的生命周期)
          • 一个虚拟 Rollout 组由多个轨迹和相关的物理机器(包括生成实例和环境实例)组成
        • 然后,为了在作者的生产作业中灵活调度大规模环境,作者扩展了 PyTorch RPC 框架 (2023),以提供 CPU-空闲感知的远程函数调用和对象实例化
          • 此扩展允许在任意或空闲的机器上实例化和执行远程环境,从而实现大规模环境的高效部署
    • 带有 CPU 交换的预填充-解码分离 (PD Disaggregation with CPU Swapping)
      • 为了在作者的加速器上高效生成拥有 560B 参数的 MoE 模型 LongCat-Flash-Thinking-2601,作者在解码时采用了高度的专家并行以及图级编译
      • 但在多轮智能体训练中,频繁到来的长上下文请求会导致专家并行组内的工作负载不均衡:分配给较长上下文的 rank 消耗不成比例的计算和通信带宽,成为性能瓶颈
        • 理解:较长上下文的机器需要更多的计算资源和通信带宽
      • 为了解决这个问题,作者在强化学习训练中引入了预填充-解码 (Prefill-Decode, PD) 分离 (2024; 2024),如图 6 所示
        • 对于生成实例,作者在不同的设备组上部署预填充节点和解码节点,允许解码执行图在不被新到达请求的预填充工作负载中断的情况下运行
          • 这防止了生成效率的下降,并在多轮 Rollout 期间保持了高吞吐量
        • 但PD 分离引入了额外的挑战,包括 KV 缓存传输开销以及当解码节点上的设备上 KV 缓存不足时(特别是在作者的加速器上)昂贵的重新计算开销
        • 为了缓解 KV 缓存传输成本,作者在块级别聚合 KV 缓存块,并启用 PD 节点之间的异步传输
      • 作者呢允许 之前块与后续块的计算重叠,以最小化 KV-cache 传输的开销
        • 为了避免由于设备上 KV-cache 内存不足导致的重计算,作者进一步引入了 驻留于 CPU 的 KV-cache,它能根据需要动态地换入和换出 KV-cache 块
          • 这一设计消除了因设备上 KV-cache 容量不足而导致的重计算开销,并有助于在我们的加速器上维持高吞吐量
  • 总体而言,作者的 agentic RL 训练框架在 560B 模型上实现了工业规模的强大性能和稳定性,支持数以万计的加速器和环境
    • 根据生产作业的运行时统计,我们的请求负载率在整個 rollout 过程中大约为 63%
      • 这一指标量化了长尾请求对生成吞吐量的影响,数值越高表示利用率越好
    • 在训练期间没有达到完全的请求负载率
      • 因为作者限制新请求使用较旧的模型版本,以控制平均陈旧性,这牺牲了一定的效率
      • 此外,在可能包含多次负载均衡操作的单个步骤内,作者采用了两阶段策略:在首次负载均衡之前的初始 rollout 阶段,当没有长尾生成时,允许每个设备有较高的请求数(例如 8 个),随后将每个设备的请求数限制在一个最优水平(例如 4 个),以避免重计算并提高生成效率
    • 未来,作者计划采用更乐观的陈旧性控制策略,并探索对陈旧性敏感的稳定性技术,以实现更高效的异步训练
      • 总之,作者的多版本异步训练系统 DORA,在涵盖不同场景的生产作业中,比同步训练快 2 到 4 倍

RL Training Strategy

  • 强化学习已成为持续提升模型推理能力的核心机制,传统上,RL 训练策略主要侧重于在相对同质的任务分布和单步 rollout 下,稳定策略优化、提高样本效率以及管理探索-利用权衡
    • 在这些设置中,任务难度差异可能很大,导致训练样本的学习价值高度不平衡
  • 除了课程学习,作者在每个训练步骤内动态分配 rollout 预算,以有效利用有限的计算和训练时间预算,将学习资源集中在高价值的任务上
    • 为了进一步提高训练效果,我们还将验证 (verification) 建模为辅助任务,以支持生成并加速优化
  • 当扩展到 agentic 设置时,强化学习面临着由多轮交互和不可预测的环境反馈所带来的新挑战,这对模型的有效上下文长度提出了严格的要求
    • 为了解决这个问题,作者引入了一种 上下文管理 (context management) 策略,使模型能够在有限的上下文窗口下支持长视界轨迹,同时保留最具信息量的上下文
  • 当进一步扩展到 agentic 工具使用场景时,训练问题变得更具挑战性,如前所述, 泛化性和鲁棒性 在此设置中尤为重要
    • 为了促进泛化性,agentic 工具使用环境来自作者的环境扩展 (environment scaling) 流程
      • 单个批次中的任务可能跨越不同领域的异构环境,这加剧了训练的不稳定性和不平衡性
      • 通过精心协同设计训练策略和基础设施支持,作者大规模地执行了高效且稳定的 多领域环境训练 (multi-domain environment training)
    • 泛化到现实世界设置仍然具有挑战性,因为现实世界环境本身是不完美的
      • 为了提高鲁棒性,我们明确地将环境不完美性纳入训练过程,使模型能够在非理想条件下学习具有韧性的行为
    • 这些设计共同形成了一个统一的训练策略,能够实现稳定、高效且可扩展的 agentic 强化学习
General Training Strategy
  • 在大规模强化学习中,训练集涵盖难度差异很大的任务
    • 对所有任务进行朴素的均匀处理通常会导致学习效率低下
  • 作者设计了一套应用于作者所有强化学习方案的训练策略
    • 具体来说,引入 课程学习 (curriculum learning) 以逐步增加任务难度,应用 动态预算分配 (dynamic budget allocation) 以将计算集中在当前模型状态下信息量最大的任务上
    • 作者还将 自验证 (self-verification) 作为辅助任务纳入,以进一步提高优化效率和效果
Training Objective
  • 采用 组序列策略优化 (Group Sequence Policy Optimization, GSPO) 作为训练目标,因为它在 MoE 模型上的经验有效性,并为长视界 agentic 轨迹提供了更稳定的序列级优化
  • 给定一个输入 \(x\),作者从旧策略 \(\pi_{\theta_{\mathrm{old} } }\) 采样一组 \(G\) 个轨迹 \(\{y_{i}\}_{i = 1}^{G}\) 并优化:
    $$\mathcal{J}_{\mathrm{GSPO} }(\theta) = \mathbb{E}_{x\sim \mathcal{D},\{y_{i}\}_{i = 1}^{G}\sim \pi_{\theta_{\mathrm{old} } }(\cdot |x)}\left[\frac{1}{G}\sum_{i = 1}^{G}\min \left(s_{i}(\theta)\hat{A}_{i},\mathrm{clip}(s_{i}(\theta),1 - \epsilon ,1 + \epsilon)\hat{A}_{i}\right)\right], \quad (1)$$
    • 其中 \(\epsilon\) 是裁剪阈值
    • 遵循 Zheng 等人 (2025) 的工作,作者采用基于组 (group-based) 的优势估计,并基于归一化似然在序列级别定义重要性比率 \(s_{i}(\theta)\)
    • 作者主要依赖结果导向的监督 ,并放宽对长轨迹的惩罚 ,允许在训练过程中自然地出现有效的策略
Curriculum Learning
  • 为了提高学习效果,作者采用了一种课程学习策略,逐步构建训练过程
  • 具体来说,作者的课程沿着两个互补的轴组织:任务难度和能力需求
    • 任务难度 使用 在优化前估计的模型通过率 来量化,其中较低的通过率表示更具挑战性的任务
    • 根据任务主要调用的 智能体能力 (如基本工具调用、多步规划或自主决策)来表征任务
      • 理解:这里不同任务需要的智能体能力侧重是不一样的
  • Curriculum Learning Pipeline:
    • 在早期训练阶段,作者优先考虑那些更容易学习的任务 ,或者 优先考虑那些暴露了智能体在解决更难任务时预计会自主重用的能力的任务
    • 随着训练的进行,作者逐渐转向那些难度更大且需要更高级智能体能力组合的任务
  • 这种二维课程使模型能够首先获得可重用的智能体技能,然后组合它们来解决日益复杂的问题
    • 经验表明,这种课程策略提高了整体任务通过率,并在最具挑战性的任务上产生了特别显著的收益
    • 作者在智能体设置下的分析表明,这些改进源于三个主要因素:
      • 工具使用泛化 (Tool-use generalization) :从较简单任务(如工具选择和约束处理)中获得的技能能有效地迁移到更复杂的场景,显著减少了工具调用失败
      • 交互效率 (Interaction efficiency) :对任务指令的更好理解使得内部推理更加彻底,减少了冗余的澄清或不必要的工具调用,从而减少了交互轮次
      • 规划能力 (Planning capability) :对多个约束(如时间、地点和实体)的增强联合推理使得任务能够以更少的纠正迭代更直接地完成
Dynamic Budget Allocation
  • 作者在训练批次内进一步应用动态预算分配,以 优先考虑在当前模型状态下提供更高学习价值的任务
  • 作者观察到, 难度与模型当前能力相匹配的任务在固定的 Rollout 预算下会产生显著更高的学习收益
    • 现有的大规模强化学习流程通常为所有任务分配统一的 Rollout 预算
    • 最近的研究开始探索自适应 Rollout 分配 (2025),但大多数方法依赖于预定义的价值函数
    • 但随着模型能力在训练过程中持续演化,这个假设会失效,导致提供最有信息量的学习信号的任务集合也相应发生变化
  • 为了解决这个问题,作者提出了一种动态 Rollout 预算分配策略,以适应模型的实时训练状态
    • 具体来说,作者通过监控实时训练指标 \(\mathbf{m}_{t}\)(例如,通过率)来量化当前策略 \(\pi_{\theta_{t} }\) 的能力
    • 作者通过一个动态价值函数将特定任务 \(\tau_{i}\) 和 \(\mathbf{m}_{t}\) 映射起来:
      $$v_{i,t} = V(\tau_{i}\mid \pi_{\theta_{t} },\mathbf{m}_{t}) \quad (2)$$
      • 其中 \(v_{i,t}\) 表示任务 \(\tau_{i}\) 的估计价值,表征了模型在任务空间上演化的偏好分布
      • 基于这个价值估计,作者采用一种基于堆 (heap-based) 的贪心算法来计算 Rollout 分配,以最大化当前训练批次的总体学习价值
Self-Verification
  • 除了将模型仅用作生成的行为者策略 (Actor Policy) 外,作者还额外利用模型作为验证器 (verifier) 来评估其自身在线策略 (on-policy) 轨迹的质量
  • 作者观察到一个显著的不对称性:即使是能够生成高质量轨迹的高级推理模型 ,也常常难以在没有显式基础事实信号的情况下可靠地评估这些轨迹的正确性
    • 这让我们能显式地增强模型的自我验证能力 ,并将其用作辅助信号,以提高其在特定领域的推理能力
  • 具体来说,作者引入了在线策略自我验证作为强化学习过程中动态激活的训练阶段
    • 当 生成器表现出停滞或收敛到局部最优的迹象时 ,作者触发一个验证阶段 ,在此阶段模型评估其自身的 Rollout 轨迹
  • 与生成相比 ,验证是一个相对更容易的任务 ,并且通常产生更高的奖励
  • 为了进一步增强自我验证的有效性,作者采用了一种定制的训练方案
    • 具体来说,作者确保验证重点针对具有挑战性的案例,并且验证的影响与相应生成轨迹的质量相关联,使得辅助信号鼓励生成的忠实改进,而不是退化的捷径行为
    • 经验表明,引入在线策略自我验证作为辅助任务可以加速模型收敛,从而提高生成性能
Agentic Specific Strategy
  • 在智能体场景中,交互模式自然地从单轮生成转变为模型推理和工具调用交错的多轮轨迹
  • 随着任务复杂性的增加,交互轮次数量和工具响应长度都会增长,使得总上下文长度变化很大且通常难以控制
  • 在实践中,这经常导致上下文窗口溢出、推理链被截断以及任务执行不完整
  • 因此,在有限上下文窗口下,有效的上下文管理成为使用工具的强化学习的必要组成部分
Context Management
  • 作者设计了一种混合上下文管理策略,以在有限上下文窗口下支持长期轨迹
  • 现有的智能体模型主要采用两种策略进行上下文管理:
    • 基于摘要的管理 (Summary-based Management) :
      • 当累积上下文长度超过预定义的 Token 阈值时,历史工具调用结果会被提炼成一个简洁的摘要,以替换原始上下文,保持上下文连续性
      • 基于 ReSum (2025) 的框架,作者使用模型本身作为摘要工具,并用不同的 Token 阈值进行了一系列对比实验,最终确定了 80K Token 为最优阈值(更多细节见附录 B)
      • 此外,为了增强模型的摘要性能,作者合成了一个包含 15K 个样本的高质量数据集,专门用于冷启动阶段
        • 实证结果表明,这带来了大约 3% 的准确率提升
    • 基于丢弃的管理 (Discard-based Management) :
      • 当上下文长度超过预定义阈值时,模型将丢弃全部或部分历史上下文,然后基于截断的上下文恢复或重新启动生成过程
      • 遵循 DeepSeek-V3.2 (DeepSeek-2025) 的做法,作者在工作中采用了全部丢弃 (discard-all) 策略
  • 结合上述两种策略,作者设计了一种针对智能体推理量身定制的混合上下文管理方法
    • 具体来说,作者首先在上下文窗口超过作者预定义的 80K Token 限制时应用基于摘要的压缩
    • 当交互超过最大轮数时 ,作者触发全部丢弃重置 ,并使用从原始问题衍生的初始化系统和用户提示重新启动生成
  • 作者在 BrowseComp 基准 (2025) 上评估了这三种策略
  • 如图 7 所示,在不同的计算预算下,上下文管理通过使模型能够扩展测试时计算资源,带来了显著的性能提升
    • 混合策略在大多数情况下优于其他两种,并在整个实验中表现出最高的效率,从 \(55.8%\) 开始,峰值达到 \(73.1%\)
  • 这种优越性能源于压缩和重置之间的动态切换,由上下文窗口和交互轮次约束控制,在关键推理上下文保留和计算开销控制之间实现了良好的权衡
    • 此外,作者采用了一种渐进的丢弃调度,逐步增加丢弃阈值,允许更困难的样本逐渐增加推理步骤数
Training Strategy with Scaled Environment
  • 引入扩展环境进一步提升了强化学习的复杂性,超越了工具增强设置
    • 在这个阶段,作者在跨越多个领域且表现出高度异质性的环境上进行了大规模训练
    • 作者期望在这种多样化的环境上进行训练能够鼓励模型获得可迁移的智能体行为,这些行为可以泛化到领域特定模式之外
  • 这种异质性在算法和系统层面都带来了新的挑战:
    • 训练过程必须同时保持跨领域泛化能力,确保在高度多样化的任务分布下稳定优化,并在长尾且不均衡的环境工作负载下保持高效
  • 为了应对这些挑战,作者采用了一种多领域环境训练范式,在每次训练批次内联合优化不同的环境
    • 为了确保稳定性和可扩展性,作者需要共同设计训练策略和作者的异步基础设施
    • 受环境扩展构建过程的启发,作者注意到现实世界的环境本质上是不完美的,因此,作者在训练期间显式地引入了环境噪声,以提高对异构和不可靠环境反馈的鲁棒性
Multi-Domain Environment Training
  • 为了提高跨环境泛化能力和训练稳定性,作者采用了一种多领域环境训练策略,在每次训练批次内联合优化不同的环境
  • 通过环境扩展,作者构建了数以万计跨越超过20个领域的环境,提供了对异构交互模式的广泛覆盖
  • 在此设置下进行训练引入了不小的系统挑战
    • 具体来说,为了保持训练稳定性,有必要确保所有领域对整体训练过程的贡献相当,同时防止任何一个训练批次被少数几个领域主导
    • 这个算法约束显著降低了作者 DORA 系统的效率,因为它打破了异步设计原则:
      • Trainer 可能被迫等待缓慢或罕见的长尾领域产生足够的样本,而较快的领域则积累过多的 Rollout 轨迹,导致调度气泡和设备利用率不足。为了缓解这个问题,作者支持为不同的数据类型和领域配置单独的过采样比率
    • 在实践中,作者增加了更具挑战性或低吞吐量领域的 Rollout 配额,使它们能够贡献足够的样本而不阻塞整个流程,而较快的领域则以较低的有效速率进行采样
    • 这种设计放宽了严格的每批平衡约束,同时利用 DORA 保持了异步训练的高吞吐量特性,并且在训练阶段仍然保持了大致平衡的数据混合,并保证了训练收敛
  • 为了确保在此训练设置下动态预算分配与作者的异步基础设施的兼容性,作者根据每个任务的历史通过率为其引入了一个过采样系数
    • 成功率较低的任务被分配更高的过采样系数,有效地将更多的 Rollout 预算分配给更具挑战性的任务
    • 具体来说,每个任务根据其过采样系数被复制为多个组,每个组在训练期间独立计算优势
    • 这种设计近似于动态预算分配,同时保留了 DORA 简单且完全异步的调度行为,以最小的系统复杂性实现了动态 Token 预算控制
  • 作者在图 8 中展示了 LongCat-Flash-Thinking-2601 的训练奖励曲线,并在图 9 中展示了在不同训练步骤下智能体基准测试的相应性能
    • 图 8 中的训练奖励表现出稳定且一致的上升趋势,表明作者的算法-基础设施协同设计有效地确保了大规模训练的稳定性
    • 图 9 中智能体基准测试的性能展示了跨多个基准测试的强大泛化能力,这验证了作者环境合成流程的有效性
  • 经验表明,多领域环境训练在环境中实现了更高的平均任务完成率,尤其是在最具挑战性的环境上改进显著
    • 此外,该模型在随机生成的环境中获得了强大的性能,表现出强大的泛化能力
Robust RL
  • 作者明确地将环境缺陷纳入训练过程 ,以提高鲁棒性
  • 现有的智能体模型在部署到先前未见过的或不完美的环境中时,性能会显著下降
  • 这个问题主要源于当前智能体训练范式中的一个常见假设:智能体通常使用精心策划的指令进行训练,并与稳定、受控良好的环境交互
    • 相比之下,现实世界的环境本质上是不完美的
  • 用户表现出多样化的交互风格和不可预测的行为,而工具可能因各种外部因素而失败、返回有噪声的输出或产生不完整的结果
  • 作者不是假设训练期间环境是理想化的并依赖智能体事后适应,而是系统地分析现实世界的噪声 ,并设计一个自动化流程 ,明确地将环境缺陷纳入训练过程
    • 为了避免引入不可靠或误导性的奖励信号,作者确保注入的缺陷不会使任务变得不可解,而是增加交互过程的难度和随机性
    • 具体来说,我们为现实世界 agentic 场景中的两种主要交互噪声源建模:
      • 指令噪声 (instruction noise) :捕捉用户交互模式的模糊性和可变性;
      • 工具噪声 (tool noise) :模拟外部工具的执行失败、不一致响应和部分结果
  • 在 agentic 强化学习过程中,作者使用基于课程学习 (curriculum-based) 的策略逐步引入这些噪声
    • 将 agentic 模型的鲁棒性衡量为同一任务在完美环境与不完美环境之间的性能差距
    • 从轻微的扰动开始,随着模型在当前水平上表现出足够的鲁棒性,逐渐增加噪声的难度和多样性
  • 这种自适应过程确保了训练保持信息性而非压倒性,并避免了在过度嘈杂的环境中进行低效探索
  • 表 1 展示了在不完美环境下的鲁棒训练策略的消融研究结果
    • 结果表明,引入噪声的训练在标准 agentic 基准测试上取得了相当甚至略好的性能,同时在噪声和不完美的条件下产生了显著的性能提升

Test-Time Scaling Through Heavy Thinking

  • 测试时扩展 (Test-time scaling, TTS) 已成为通过在推理阶段扩展计算来提高模型在复杂推理任务上性能的一种有效范式
    • 最新进展表明,通过结合自反思的长思维链来增加推理深度,可以让模型迭代地优化其推理过程 (2024, 2025, 2025)
  • 与此同时,诸如自一致性(self-consistency)和蒙特卡洛树搜索 (Monte Carlo Tree Search, MCTS) 等方法则沿宽度维度扩展计算,探索多个推理轨迹以更好地逼近模型的推理边界
  • 一些前沿模型引入了 Heavy Thinking (2025, 2025a, 2025, 2025),其目标是在测试时联合扩展推理的深度和宽度
    • 经验上,这些模式的表现超过了仅扩展深度或宽度的策略
    • 但此类 Heavy Thinking 的具体实现细节大多未公开,限制了其可复现性和系统性研究
  • 为了进一步释放推理能力并突破现有的性能天花板,作者提出了一个简单有效的 Heavy Thinking 框架,将测试时计算分解为两个互补的阶段:
    • 并行推理(parallel reasoning)和 Heavy Thinking
  • 如图 10 所示
    • 在第一阶段,作者允许一个思考模型并行执行生成,产生多个候选推理轨迹以扩展探索的广度
    • 在第二阶段,作者利用一个总结模型对这些轨迹进行反思性推理,综合它们的中途推理和结果以得出最终决策
  • 为了支持工具使用和多轮对话场景,作者还引入了一个上下文记忆模块来存储消息历史
  • 如图 11 所示
    • 在每一轮中,总结模型将接收来自并行推理阶段的历史消息以感知上下文
    • 作者设计了一个特定的提示模板来组织当前轮次并行轨迹的排列(仅保留答案内容),并引导总结模型生成最终响应,其目的是聚合或优化从并行推理阶段得出的答案
  • 作者还约束总结模型的最终输出响应,以保持与并行推理阶段的风格和格式一致,使得总结模型的响应能够与消息历史直接拼接
    • 值得注意的是,思考模块和总结模块可以共享相同的模型参数,也可以实例化为不同的模型
  • 为了进一步提升性能,作者还引入了一个专门针对总结阶段设计的额外 RL 阶段
    • 经验上,作者发现 Heavy Thinking 在多种设置下都有效,包括长思维链推理、工具集成推理和完全的工具使用(agentic tool-use)场景
    • 通过允许测试时计算在推理深度和宽度上自适应地扩展, Heavy Thinking 的表现始终优于自一致性(self-consistency),并且随着测试时计算预算的增加,其性能优势变得愈发显著

Evaluation

Benchmarks and Configurations

  • 作者的评估涵盖模型能力的五个方面:
    • Mathematical Reasoning
    • Agentic Search
    • Agentic Tool Use
    • General Reasoning
    • Coding
Mathematical Reasoning
  • 作者使用标准的奥林匹克级基准测试来评估数学推理,包括 AIME 2025、HMMT 2025 (February) (2025) 和 IMO-AnswerBench (2025)
  • 此外,还引入了 AMO-Bench (2025)(这是现有奥林匹克级基准测试中最具挑战性的数据集)
    • 包含由人类专家设计的 50 个问题,并提供中英文版本,便于分析跨语言数学推理
    • 作者发布了 AMO-Bench 的英文版和评估脚本
  • 由于这些数据集规模有限,作者报告 Avg@k 指标,IMO-AnswerBench 使用 \(k = 4\),其他所有数学基准使用 \(k = 16\)
    • 作者主要关注工具集成推理(Tool-integrated Reasoning, TIR)的性能,注意:此处工具指代码执行
    • 对于支持代码执行的外部模型,作者在评估时启用此功能
    • 对于不支持代码的模型,作者报告其官方结果或它们不使用工具时的性能
Agentic Search
  • 作者在 BrowseComp (2025) 和 BrowseComp-ZH (2025) 上评估智能体搜索能力,并报告启用和未启用上下文管理两种设置下的结果
    • 注:对于 BrowseComp-zh,作者发现原始标注存在一些错误,并手动修正了 24 个案例的答案
  • 作者尝试在作者的智能体搜索框架下复现开源和闭源模型在这些基准测试上报告的结果
    • 但作者观察到性能持续低于报告的数字,对于外部模型,作者使用其官方报告的结果
      • 理解:这里确实花了时间后没法复现这部分分数(猜测与模型的某些配置有关,Infra 和评估同学不够给力?)
  • 为了实现对搜索能力的公平且受控的比较,作者另外构建了 RWSearch(这是一个具有挑战性的智能体搜索基准)
    • 包含 200 个需要复杂推理和多步骤信息检索的现实世界搜索 Query
    • 所有模型都在未启用上下文管理的情况下在 RWSearch 上进行评估,以确保公平比较
Agentic Tool-Use
  • 作者在 \(\tau^{2}\)-Bench (2025)、VitaBench (2025)、\(\tau^{2}\)-Noise、Vita-Noise 和随机复杂任务(Random Complex Tasks)上评估智能体工具使用能力
  • 对于 \(\tau^{2}\)-Bench,作者观察到默认的用户模拟器(user simulator)偶尔会表现出异常行为,给评估带来不可控的噪声
    • 为了解决这个问题,作者将原始模拟器替换为 GPT-4.1 并相应地调整提示策略 (2025, 2025b, 2025)
  • 对于 \(\tau^{2}\)-Bench 的航空子集,作者进一步发现了一些标注和环境问题,可能导致虚假失败和不可靠的评估 (2025, 2025b, 2025)
    • 作者在一个固定且清理过的航空子集版本上评估所有模型,其中 19 个有问题案例得到了修正
    • 所有以上这些修改都已公开发布以确保可复现性
  • 对于 VitaBench,作者更新了评估设置,将验证器模型(verifier model)升级到最强的公开可用版本,并采用更严格的评估标准,从而进一步提高基准测试的可靠性
    • 作者已公开发布 VitaBench 的这个更新版本
  • \(\tau^{2}\)-Noise、Vita-Noise 和随机复杂任务的构建和评估协议
    • \(\tau^{2}\)-Noise 和 Vita-Noise :为了评估智能体推理能力的鲁棒性,作者系统分析了现实世界环境中观察到的偏差,并设计了一个自动噪声注入 Pipeline (noise injection pipeline),可以将逼真的噪声注入任意基准测试
      • 基于此 Pipeline ,作者重复随机地将噪声注入 \(\tau^{2}\) 和 Vita 基准测试以构建 \(\tau^{2}\)-Noise 和 Vita-Noise,并报告多次噪声实例化的平均性能
    • 随机复杂任务 (Random Complex Tasks) :为了评估智能体推理能力的泛化性,作者引入了一种新的评估协议,即随机复杂任务
      • 随机复杂任务建立在一个自动任务合成过程之上,该过程受作者环境扩展 Pipeline 的启发,随机生成跨多种场景的复杂、可执行且可验证的智能体任务
      • 对于每次评估运行,作者随机抽样超过 4 个领域的 100 个多样且复杂的任务,并计算 Avg@4 分数
      • 为确保可靠性,作者重复进行三次独立运行的评估,并报告各次运行的平均结果
  • 作者将发布噪声注入 Pipeline ,并将随机复杂任务集成到一个开放的评估平台中,以支持未来的可复现性和基准测试
General QA
  • 作者在 GPQA-Diamond (2023) 和 HLE (2025) 上评估通用推理,它们涵盖了广泛的知识密集型和推理密集型任务
  • 对于 GPQA-Diamond,作者报告 Avg@16 以减少抽样随机性引入的方差
  • 对于 HLE,由于作者的模型是纯文本的,作者报告其在纯文本子集上的结果,并确保所有比较模型遵循相同的设置
  • 作者注意到 HLE 的结果对提示模板和评分模型很敏感
  • 为确保公平比较,所有模型都使用官方 HLE 推荐的提示模板进行评估,并使用官方 o3-mini 评分模型和模板进行评分
Coding
  • 作者在两种设置下评估代码能力:Code Reasoning 和 Agentic Coding
  • 对于代码推理,作者使用 LiveCodeBench (2025)、OJBench (2025) 和 OIBench (2025)
    • 对于 LiveCodeBench,作者评估 2408-2505 子集,覆盖最近的两个版本,包含 454 个问题, 作者报告 LiveCodeBench 的 Avg@4
    • 对于 OJBench 和 OIBench,由于评估成本和思考模型所需的长推理轨迹,作者报告 Pass@1
  • 对于智能体编码,作者使用 SWE-bench Verified,这是软件工程智能体的标准基准
    • 作者采用第三方智能体框架 R2E-Gym 作为执行主干
    • 为确保正确性,作者手动清理并修复了原始基准测试中的少量 Docker 镜像,主要是由于库升级引入的依赖不匹配问题,保证所有标准补丁(gold patches)都是可执行的

Main Results

  • 如表 2 所示,作者将 LongCat-Flash-Thinking-2601 与几个先进的开源权重和闭源权重推理模型进行了比较
    • 开源权重模型包括 DeepSeek-V3.2-Thinking (2025)、Kimi-K2-Thinking (2025)、Qwen3-235B-A22B-Thinking-2507 (2025) 和 GLM-4.7-Thinking (2025)
    • 闭源权重模型包括 Claude-Opus-4.5-Thinking (2025)、Gemini-3-Pro (2025) 和 GPT-5.2-Thinking-xhigh (2025b)
  • 在一套全面的基准测试中,LongCat-Flash-Thinking-2601 在传统推理任务上取得了极具竞争力的性能,并在智能体推理能力方面展现出强大优势
    • 除非另有说明,推理均使用温度 \(= 1.0\),top-\(k = -1\),top-\(p = 1.0\) 进行
Mathematical Reasoning
  • 在具有挑战性的数学推理基准测试上,LongCat-Flash-Thinking-2601 展现出强大的工具集成推理能力,并始终达到第一梯队的性能
  • 当启用 Heavy Thinking 模式(heavy mode)时,LongCat-Flash-Thinking-2601 达到了与领先闭源模型相当的性能
  • 启用 Heavy Thinking 模式的 LongCat-Flash-Thinking-2601 在 AIME-2025 上获得了满分,在 IMO-AnswerBench 上取得了 86.8 分的领先成绩,并在 AMO-Bench 上取得了开源的领先结果
  • 在 AMO-Bench (EN) 上略逊于最强的闭源模型,LongCat-Flash-Thinking-2601 仍然是表现最好的开源模型
  • LongCat-Flash-Thinking-2601 在 AMO-Bench 的英文版和中文版上表现出相当的性能,表明其在非英语环境下也具有先进的数学推理和工具使用能力
Agentic Search
  • LongCat-Flash-Thinking-2601 在 BrowseComp 和 BrowseComp-ZH 上都达到了领先的性能
  • 启用上下文管理后,它在 BrowseComp 上达到 73.1 分,在 BrowseComp-ZH 上达到 77.7 分,超越了所有评估的模型
  • 在 RWSearch 上——这是一个为评估现实世界复杂搜索场景而设计的私有基准测试,LongCat-Flash-Thinking-2601 取得了 79.5 分,仅次于 GPT-5.2-Thinking
Agentic Tool-Use
  • LongCat-Flash-Thinking-2601 在开源模型中展示了领先的智能体工具使用能力
    • 在 \(\tau^2\)-Bench 和 VitaBench 上取得了强劲的性能,包括在它们的噪声增强变体上的竞争性结果
  • 模型在任意生成工具的随机复杂任务上取得了领先的结果
    • 这些结果表明模型对现实世界环境噪声具有很强的鲁棒性,并对先前未见过的任务分布具有出色的泛化能力
General QA
  • LongCat-Flash-Thinking-2601 在通用问答基准测试上保持了强劲的性能
  • 在 HLE 的纯文本子集上获得了 25.2 分,在 Heavy Thinking 模式下在 GPQA-Diamond 上获得了 85.2 分
    • 接近开源模型的最佳结果
Coding
  • LongCat-Flash-Thinking-2601 在代码推理和智能体编码基准测试上都展现了有竞争力的性能
    • 在 LiveCodeBench 系列的算法问题解决任务上,位居开源模型前列
    • 在更难的基准测试如 OJBench 和 OIBench 上,作者的模型分别取得了开源模型的第二好和最佳性能
  • 注:与 GLM-4.7 相比,LongCat-Flash-Thinking-2601 以显著更低的推理成本实现了相似的性能,每个问题大约需要 45k 个 token,而 GLM-4.7 需要 57k 个 token
    • 在 SWE-bench Verified 上,LongCat-Flash-Thinking-2601 在开源模型的第一梯队中表现具有竞争力,进一步验证了其在现实世界软件工程任务中的能力

One More Thing: Zig-Zag Attention Design

  • 长上下文效率(Long-context Efficiency)已成为现代大型语言模型日益严峻的挑战
  • 越来越长的推理轨迹趋势对标准的全注意力(Full Attention)构成了根本性限制,其二次方复杂度对于长上下文智能体训练和推理来说很快变得难以使用
  • 而且在 Heavy Thinking 模式中,由于同时解码多个并行推理轨迹,推理延迟被进一步放大,使得高效的注意力机制变得更加不可或缺
  • 现有的方法,包括稀疏和线性注意力方法 (2025),试图通过降低注意力的计算复杂度来缓解这个问题
    • 但这些方法通常需要大量的重新训练来使模型适应新的注意力架构,这引入了相当多的额外计算开销和工程成本
  • 为了解决这一限制,作者探索了一种实验性的高效注意力设计,并同时发布了一个开源模型 LongCat-Flash-Thinking-ZigZag
    • 作者提出了 Zigzag Attention,一种稀疏注意力机制(sparse attention mechanism),使得现有的全注意力模型可以在 Mid-training 期间高效地转换为稀疏变体
    • 这种转换仅产生可忽略的开销,同时允许模型高效地扩展到超长上下文,支持高达 1M 个 token 的序列长度
  • Zigzag Attention (2026) 结合了 MLA 和流式稀疏注意力 (Streaming Sparse Attention, SSA) (2024),实现了计算量随完整上下文长度呈次二次方(sub-quadratically)扩展
    • 对于每个 Query token \(h_t\),注意力被限制在一个固定的键值 token 集合中,该集合包括
      • (i) 最近 token 的局部窗口
      • (ii) 序列开头的一小组初始 token
    • 形式上,注意力输出计算如下:
      $$
      u_{t} = \mathrm{Attn}(h_{t},\{h_{s}\mid s\in [t - W,t]\cup [0,B)\} ,
      $$
      • 其中 \(W\) 表示局部上下文窗口大小,\(B\) 表示保留的前缀 token 数量
      • 与全注意力相比,这种设计显著降低了计算和内存复杂度,同时保留了短期上下文和全局锚点

Zigzag Connectivity

  • Zigzag Attention 采用了一种层级交错的稀疏化策略
    • 大约 \(50%\) 的全注意力层被替换为 SSA 层,而剩余的层保留基于 MLA 的全注意力
  • 这种层级的稀疏性避免了通常由头部级稀疏化引入的计算不平衡和 GPU 线程分歧,从而实现更高效的硬件利用率
  • 每个 SSA 层内的注意力是稀疏且局部的,但全局信息通过跨层组合得以保留
  • 通过交替稀疏注意力层和全注意力层,信息可以在多层之间跨越远距离位置传播,沿着序列形成一条锯齿形的连接路径
    • 因此,尽管存在每层的稀疏性,长距离依赖关系仍然可以访问

Zigzag Integration

  • Zigzag Attention 通过结构化的稀疏化过程在 Mid-training 阶段引入
    • 1)作者使用一个校准过的数据集来估计预训练模型中注意力层的相对重要性
    • 2)重要性得分最低的那部分层被替换为 SSA 层
  • 稀疏化之后,模型继续进行长上下文的持续 Mid-training ,同时结合基于 YaRN 的位置编码扩展,从而实现高达 1M token 的上下文长度
  • 实践中,作者采用块大小为 128,一个 Sink block 和七个局部块(local block),使得每层的有效注意力跨度达到 1,024 个 token
  • 将大约一半的全注意力层替换为 Zigzag Attention 可带来约 1.5 倍的端到端推理加速,如图 12 所示,同时在基准测试中保持了推理性能和智能体能力

结合 YaRN

  • 为了解锁处理更长上下文的能力,作者将这些方法配置与 YaRN (2024) 结合,使得 LongCat-Flash-Thinking-ZigZag 能够外推至处理高达 1M 个 token
  • 除此之外,作者还提供了模型中涉及的一些关键参数
    • 块大小为 128,Sink block 数量为 1,局部块数量为 7,总计 1,024 个 token
  • LongCat-Flash-Thinking-ZigZag 在性能和速度之间取得了良好的平衡,图 13 简要展示了它如何提高效率的同时保持竞争力的性能

附录 A:Optimal Hyperparameter Prediction

  • 在大型规模的 Mid-training 中,有效识别最优超参数是一个核心挑战,因为搜索空间巨大且计算成本高昂
    • 为了应对这一挑战,作者提出了一种新颖的最优超参数预测方法,该方法专门设计用于最小化寻找最佳配置的计算成本
  • 作者的方法包括两个关键步骤:
    • 超参数映射 (Hyperparameter Mapping): 作者使用不同的超参数训练小型模型,利用验证损失和 FLOPS 将最优超参数映射到它们的计算成本(见图 14),从而深入了解配置如何影响训练效率和性能
    • 超参数预测 (Hyperparameter Prediction): 对于一个给定的持续训练检查点,作者使用验证损失来估算等效计算成本,即从零开始在持续训练数据上达到相同损失所需的计算量,然后基于此估算和实际计算负载来预测最优超参数
  • 通过这种方法,作者能够预测出可实现高效持续训练的最优超参数,以最小的计算开销提高模型性能

附录 B:Token Threshold Context Management Performance Evaluation

  • 如图 15 所示,作者评估了在不同摘要上下文 Token 长度下 BrowseComp 的 Pass@1 准确率,最大上下文轮次限制为 500
    • 准确率从 20K Token 时的 \(63.86%\) 稳步上升至 80K Token 时达到峰值 \(66.58%\),然后在 100K Token 时降至 \(65.9%\)
    • 这确定了 80K 是基于摘要的上下文管理的最优上下文长度,因此在所有后续实验中,作者将 80K 上下文长度固定为摘要触发的阈值

NLP——MemRL

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:MemRL: Self-Evolving Agents via Runtime Reinforcement Learning on Episodic Memory, 20260106, SJTU & Xidian University & NUS & Shanghai Innovation Institute & MemTensor(Shanghai)

Paper Summary

  • 解读说明:
    • 论文是实验室师兄的论文,提出了一种很 makesense 的方案,将传统 RL 中的 Q-Learning 思路放到了 LLM 的记忆上来
    • 论文使用了类似 Q-Learning 的方案,且使用非参数的方式建模 Q 值(类似于动态 Q 值表格的概念)
    • Q 值的更新方式重点看 4.3 节
    • 整体流程可见 4.5.1,图 4
  • 背景介绍:
    • 人类智能的标志在于通过 建构式情景模拟(Constructive Episodic Simulation)
    • 即检索过去经验以合成新任务解决方案,来掌握新技能的能力
  • 问题提出:
    • 虽然LLM 具备强大的推理能力,但它们难以模仿这种自我演化(emulate this self-evolution)
    • 微调计算成本高昂且容易导致灾难性遗忘,而现有的基于记忆的方法(memory-based methods)依赖被动的语义匹配(passive semantic matching),常常检索到噪声
  • 论文提出了一个能够让智能体通过在情景记忆上进行非参数强化学习来实现自我演化的框架:MemRL
    • MemRL 明确地将冻结大语言模型(frozen LLM)的稳定推理与可塑的、演化的记忆分离开来
    • 与传统方法不同, MemRL 采用一种两阶段检索机制(Two-Phase Retrieval)
      • 先通过语义相关性筛选候选记忆,然后基于学习到的 Q 值(效用)进行选择
    • 这些效用值通过试错方式从环境反馈中持续优化,使得智能体能够区分高价值策略与相似噪声
  • 在 HLE、BigCodeBench、ALFWorld 和 Lifelong Agent Bench 上的大量实验表明, MemRL 显著优于现有 SOTA 基线方法
  • 论文的分析实验证实, MemRL 有效调和了 稳定性-可塑性困境(stability-plasticity dilemma) ,实现了无需权重更新的持续运行时改进
  • 图 1: MemRL 的基准运行时学习性能
    • 论文将 MemRL 与 SOTA 记忆基线方法 (MemP) 和标准检索方法 (RAG) 进行对比
    • MemRL 持续优于各种基线,证明了运行时效用驱动更新的有效性

Introduction and Discussion

  • 人类智能的标志在于认知推理的稳定性(stability) 与情景记忆的可塑性(plasticity) 之间的微妙平衡 (Grossberg, 2013; 1995; 2016)
    • 这是一种被称为建构式情景模拟(Constructive Episodic Simulation) 的机制
    • 它允许在不重新连接神经回路的情况下进行适应 (2007; 2007; 2012; 1980)
  • 虽然 LLM 展现出令人印象深刻的推理能力,但现有范式难以模仿这种动态的、解耦的自我演化 (2022; 2022; 2023; 2023)
    • 一方面,微调方法试图通过修改模型权重来内化经验 (2022; 2020; 2023; 2024),但通常容易遭受灾难性遗忘和高昂的计算成本 (2017; 2024; 2024)
    • 另一方面,检索增强生成(Retrieval-Augmented Generation, RAG) (2020) 提供了一种非参数的替代方案,但其根本上是被动的;
      • RAG 仅基于语义相似性检索信息,而不评估其实际效用 (2020; 2023)
    • 由于缺乏一种机制来区分高价值的过去策略与相似噪声,当前的 RAG 智能体难以有效地从运行时反馈中学习以随时间优化其性能
  • 这一限制突显了一个关键的研究问题:
    • 如何能让一个智能体在部署后持续改进其性能,同时不损害其预训练 Backbone Model 的稳定性?
    • 论文的目标是实现一个能随着持续使用而演化,并在部署后快速适应新任务的智能体,这被称为运行时持续学习(Runtime Continuous Learning) (2023; 2025; 2019; 2024),同时保持 Backbone Model 冻结以防止灾难性遗忘 (2017; 2025)
  • 为应对这一挑战,受人类建构式模拟认知机制的启发,论文提出了 MemRL
    • 这是一个通过显式解耦模型稳定的认知推理与动态的情景记忆来促进自我演化智能体的框架
  • 图 2 展示了论文提出的 MemRL 的概念框架
    • 借鉴强化学习 (Reinforcement Learning, RL) 中估计预期经验效用的值迭代方法 (2018),论文将冻结大语言模型与外部记忆之间的交互形式化为一个马尔可夫决策过程(Markov Decision Process, MDP) (Puterman, 2014)
    • 与优化 Backbone Model 权重的方法不同, MemRL 优化记忆使用策略以最大化预期效用
  • MemRL 将记忆组织成结构化的意图-经验-效用三元组(Intent-Experience-Utility triplet)
    • 这种结构将检索从一个被动的语义匹配任务转变为一个主动的决策过程:
      • 值感知检索(Value-Aware Retrieval) 根据学习到的 Q 值选择经验,反映预期效用而非仅仅语义相似性 (1992);
      • 效用驱动更新(Utility-Driven Update) 通过环境反馈和贝尔曼备份 (Bellman backup) (Bellman, 1966) 来优化这些 Q 值
    • 这个闭环循环使智能体能够区分高价值策略与相似噪声,有效地从成功和失败中学习,而无需承担与权重更新相关的计算成本或灾难性遗忘风险
  • 论文在四个不同的基准测试上验证了 MemRL
    • 包括 HLE、BigCodeBench、ALFWorld 和 Lifelong Agent Bench
  • 论文的结果表明其始终优于基线方法,在探索密集的环境中实现了相对改进
    • 论文的深入分析揭示了学习到的效用与任务成功之间存在强相关性,进一步证实了 MemRL 的有效性
  • In Summary,论文的贡献有三方面:
    • 论文提出了一种基于模型-记忆解耦(Model-Memory decoupling) 和意图-经验-效用三元组(Intent-Experience-Utility triplet) 的运行时学习框架
      • 它通过使智能体无需参数更新即可学习,从而调和了 Stability-plasticity 困境
    • 论文引入了 MemRL ,一种实现值感知检索(Value-Aware Retrieval) 和效用驱动记忆管理(Utility-Driven Memory Curation) 的非参数强化学习算法
      • 这使得智能体能够通过优化记忆效用来自我演化,建立了一种增强智能体能力的新范式
    • 论文进行了广泛的评估,并提供了对 MemRL 工作机制的深入洞察
      • 论文分析了它如何确保复杂任务中的结构完整性,并通过贝尔曼收缩 (Bellman contraction) 从理论上证实了其稳定性,探索了效用驱动更新如何最小化灾难性遗忘同时最大化正向迁移 (positive transfer)

Problem Formulation

  • 在本节中,论文正式定义记忆增强生成的问题,并建立智能体策略与记忆检索之间的理论联系
  • 论文采用基于记忆的马尔可夫决策过程(Memory-Based Markov Decision Process, M-MDP) (2025) 的形式化定义,并用论文的非参数强化学习框架来解决它
  • 图 3 提供了一个记忆增强决策过程的示例,展示了检索结果和记忆演化如何随时间步骤展开
  • 图 3:马尔可夫决策过程中记忆增强决策的示例
    • 在时间步 \(t\):智能体以初始记忆集 \(\mathcal{M}_t\) 开始
    • 在时间步 \(t + 1\)
      • 意图 A 检索相关的过去经验,但最初导致生成失败
      • 意图 B 成功,其相关经验被添加到记忆中
    • 在时间步 \(t + 2\) ,意图 A 从意图 B 检索新存储的成功经验,resulting in 成功的结果
    • 这个例子展示了记忆检索如何实现跨意图的知识重用,通过共享经验隐式支持跨任务迁移

Memory-Augmented Agent Policy

  • 为了使智能体能够自我演化,论文继承 M-MDP 作为问题形式化 (2025)
  • M-MDP 被正式定义为一个元组
    $$ \langle S, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma , \mathcal{M} \rangle$$
    • 其中:
      • \(S\) 表示状态空间
      • \(\mathcal{A}\) 表示 Action 空间
      • \(\mathcal{P}: S \times \mathcal{A} \to \mathbb{R}\) 表示转移动态
      • \(\mathcal{R}: S \times \mathcal{A} \to \mathbb{R}\) 表示奖励函数
      • \(\gamma \in [0, 1)\) 表示折扣因子
      • \(\mathcal{M} = (S \times \mathcal{A} \times \mathbb{R})^*\) 表示包含过去经验的演化记忆空间 (2025)
    • 在此 Setting 中,策略 \(\pi\) 不仅生成 token,而且首先根据检索分布 \(\mu (\cdot |s,M)\) 选择一个记忆上下文 \(m\) ,允许智能体利用历史数据在下游任务中获得更好的性能
  • 论文考虑一个通用智能体在离散时间步上与环境或用户交互
    • 在每个时间步 \(t\) ,智能体接收一个状态 \(s_t\) (例如用户 Query 或任务描述),并可以访问外部 Memory Bank \(\mathcal{M}\)
    • 智能体的目标是生成一个响应 \(y_t\) 以最大化奖励信号
    • 遵循此形式化,记忆增强智能体的行为可以分为两个不同的阶段:检索(Retrieve) 和生成
  • 联合策略 \(\pi (y_t|s_t,\mathcal{M}_t)\) 被定义为所有可能检索到的记忆项上的边际概率(marginal probability) (2025):
    $$\pi (y_t|s_t,\mathcal{M}_t) = \sum_{m\in \mathcal{M}_t}\underbrace{\mu(m|s_t,\mathcal{M}_t)}_{\text{Retrieval Policy} }\cdot \underbrace{p_{\text{LLM} }(y_t|s_t,m)}_{\text{Inference Policy} } \tag{1}$$
    • 注:这里的 \(\mathcal{M}_t\) 指的是时间步 \(t\) 时的 Memory Bank
    • \(\mu (m|s_t,\mathcal{M}_t)\) 表示检索策略(Retrieval Policy) ,它根据当前状态 \(s_t\) 从 Memory Bank \(\mathcal{M}_t\) 中为选择特定记忆上下文 \(m\) (由过去的意图和经验组成)分配概率
    • \(p_{\text{LLM} }(y_t|s_t,m)\) 表示推理策略(Inference Policy) ,通常由一个冻结的大语言模型参数化。它模拟了在给定 Query \(s_t\) 和检索到的上下文 \(m\) 的条件下生成输出 \(y_t\) 的可能性
  • 在之前的 RAG 或基于记忆的智能体范式中,检索策略 \(\mu\) 通常由固定的向量相似性度量决定,例如嵌入向量的余弦相似度
    • 虽然对于语义匹配有效,但此类策略未能考虑记忆的效用,即检索(retrieving) \(m\) 是否真正导致成功的结果 \(y_t\)

Non-Parametric RL

  • 为了克服静态 Similarity-based 检索的局限性,论文通过将记忆检索形式化为一个 Value-based 决策过程来操作 M-MDP 框架
  • 与通过权重更新优化 \(\pi_{\text{LLM} }\) 的参数化方法不同,论文的目标是直接在记忆空间内优化检索策略 \(\mu (m|s,M)\)
  • 论文将抽象的 M-MDP 组件映射到一个特定的意图-经验-效用结构:
From Semantic Matching to Decision Making
  • 论文将状态 \(s\) 实例化为用户意图(User Intent) ,由当前 Query 的嵌入表示封装(encapsulated by the embedding of the current query) (2020)
  • 因此, Action 空间 \(\mathcal{A}_t\) 变得动态且离散,对应于从当前 Memory Bank \(\mathcal{M}_t\) 中选择特定的 \(m\)
    • 注意:这里说的是 Action 空间是离散的(且动态变化的),状态空间是 Embedding,理论上是连续的,空间无限
    • 问题:Embedding 是连续的吧?状态空间是否过大了?
  • 在此形式化下,从记忆中检索不再是一个被动的匹配任务,而是一个主动的 Action \(a_t = m\) ,用于增强生成器 (2025)
Defining Utility via Q-Values
  • 论文框架的核心是从估计语义相关性转向估计功能效用
  • 论文将 State-Action 值函数 \(Q(s,m)\) 定义为对与 \(s\) 相似的意图应用检索到的上下文 \(m\) 的预期效用
    • MemRL 的目标是学习一个最优的检索策略 \(\mu^*\) ,该策略选择最大化此预期效用的上下文:
      $$\mu^{*}(m|s,M) = \arg \max_{m\in \mathcal{M} }Q(s,m) \tag{2}$$
    • 这个 Q 值充当一个 Critic ,区分高价值策略与可能具有高语义相似性的不相关噪声
Non-Parametric Learning
  • 由于在论文的 Setting 中,检索策略 \(\mu\) 的 Action 空间与大语言模型的生成空间解耦,我们可以在不修改大语言模型权重的情况下进行学习
  • 在接收到环境反馈 \(r\) (例如执行成功)后,我们可以使用时序差分 (Temporal-Difference, TD) 误差 (Sutton, 1988) 来更新检索到的记忆上下文的 Q 值:
    $$Q(s,m)\gets Q(s,m) + \alpha [r + \gamma \max Q(s’,m’) - Q(s,m)] \tag{3}$$
    • 其中 \(\alpha\) 是学习率
    • 这种贝尔曼式 (Bellman-style) 备份允许效用估计随时间收敛到真实的预期回报 (Bellman, 1966)
    • 通过在记忆结构中显式地维护和更新这些 Q 值, MemRL 提供了一种具有理论保证的非参数学习方式,使智能体能够通过交互自我演化其能力
    • 问题:状态空间无穷大的情况下,不能使用 TD-Error 更新吧

MemRL

  • 基于第 3 节定义的 M-MDP 公式,论文提出了 MemRL,一个使冻结的 LLM 能够通过非参数强化学习进行自我演进的框架
  • MemRL 不修改模型权重 \(\theta\),而是在演进的记忆空间内优化检索策略 \(\mu (m|s, \mathcal{M})\)
  • 如图 4 所示,该框架由三个核心组件组成:
    • (i) 一个结构化的意图-经验-效用 Memory Bank
    • (ii) 一个将语义召回与价值感知选择解耦的两阶段检索机制
    • (iii) 一个稳定 Q 值估计的运行时效用更新规则
  • 图 4:MemRL 框架概览
    • (Top)端到端学习循环:给定 Query \(s\),智能体从记忆 \(\mathcal{M}\) 中检索上下文 \(\mathbf{m}_{c t x}\) ,生成输出 \(y\),并基于奖励 \(R\) 更新记忆值 \(Q\)
    • (Bottom Left)两阶段检索:候选者通过相似性被召回,然后使用学习到的 Q 值重新排序
    • (Bottom Right)效用更新:记忆值 \(Q\) 使用环境奖励进行更新,以区分功能效用和语义相似性

Memory Structure: The Intent-Experience-Utility Triplet

  • 为了支持 Value-based 决策,论文将外部记忆 \(\mathcal{M}\) 结构化为不仅仅是键值对,而是一组三元组:
    $$
    \mathcal{M} = \{(z_i,e_i,Q_i)\}_{i = 1}^{|\mathcal{M}|}, \tag{4}
    $$
    • \(z_{i}\) 代表意图嵌入(Intent Embedding)(例如, Query 或任务描述的向量表示)
    • \(e_{i}\) 存储原始经验(Experience)(例如,成功的解决方案轨迹)
    • \(Q_{i} \equiv Q(z_{i}, e_{i})\) 表示习得的效用(Utility)
    • \(Q_{i}\) 近似于将经验 \(e_{i}\) 应用于与 \(z_{i}\) 相似的意图的预期回报,在 RL 公式中充当 Critic
      • 理解:这里强调是相似意图,不是意图本身,蕴含了后续是基于相似度来检索意图的(类似 RAG)

Two-Phase Retrieval: From Semantic Recall to Value-Aware Seletion

  • 标准的 RAG 或记忆系统仅依赖于语义相似性,隐含地假设“相似意味着有用”
    • 但在智能体任务中,语义相关的上下文可能编码了脆弱、特定于环境的例程,无法泛化 (2025; 2024; 2024; 2024)
  • 为了解决这个问题,MemRL 实施了一种两阶段检索策略,首先通过相关性过滤候选,然后再通过效用过滤
Phase A: Similarity-Based Recall
  • 给定当前 Query 状态 \(s\),论文首先隔离(isolate)一个语义一致的经验候选池 \(C(s)\),以确保检索在上下文上是相关的
  • 具体方法是计算余弦相似度 \(sim(s,z_i)\) 并过滤 Memory Bank :
    $$
    \mathcal{C}(s) = \text{TopK}_{k_1}(\{i|sim(s,z_i) > \delta \} ,\text{by}sim) \tag{5}
    $$
    • 其中 \(\delta\) 是一个稀疏度阈值
    • 此阶段充当粗过滤器,将搜索空间从整个记忆 \(\mathcal{M}\) 缩小到相关子集 \(\mathcal{C}(s)\)
    • 值得注意的是,如果 \(\mathcal{C}(s) = \emptyset\), MemRL 不注入任何记忆,仅依赖冻结的 LLM 进行更广泛的探索
Phase B: Value-Aware Selection
  • 为了从 \(\mathcal{C}(s)\) 中选择最优上下文,论文纳入了习得的效用 \(Q\)
  • 论文定义了一个复合评分函数,以平衡探索(通过语义匹配)和利用(通过高效用历史):
    $$
    \text{score}(s,z_i,e_i) = (1 - \lambda)\cdot \hat{sim}(s,z_i) + \lambda \cdot \hat{Q}(z_i,e_i) \tag{6}
    $$
    • Remind:
      • \(z_{i}\) 代表 Intent Embedding ,即之前已经存储下来的意图
      • \(e_{i}\) 存储原始 Experience ,即待检索的候选 Memory
    • 其中 \(\hat{\cdot}\) 表示在候选池内进行 z-score 归一化,\(\lambda \in [0,1]\) 调节权衡
      • 当 \(\lambda \rightarrow 1\) 时,策略优先考虑已验证的效用;
      • 当 \(\lambda \rightarrow 0\) 时,它恢复到标准的 Similarity-based 检索
    • 最终的上下文 \(\mathcal{M}_{ctx}(s)\) 由最大化此分数的前 \(k_{2}\) 项组成:
      $$
      \mathcal{M}_{ctx}(s) = \text{TopK}_{k_2}(\mathcal{C}(s),\text{by score}). \tag{7}
      $$
    • 这种机制有效地过滤掉了“干扰性”记忆,那些语义相似但历史上产生低回报(低 Q 值)的记忆
  • 论文将在第 5.3.3 节进一步验证归一化和相似度阈值的必要性,证明 z-score 归一化和严格的相似度阈值对于过滤噪声和在自我演进过程中保持低遗忘率至关重要

Runtime Learning: Non-Parametric RL on Memory

  • MemRL 的核心是基于环境反馈持续改进 Q 值,使智能体能够“记住”有效的方法
  • 在运行时, MemRL 完全在记忆空间中进行学习
  • 重点1:奖励信号获取:
    • 完成一项任务后,智能体收到 环境奖励信号 \(r\)(例如,执行成功、用户反馈或标量任务分数)
  • 重点2:对于已有记忆的价值更新:
    • 对于实际注入到上下文 \(\mathcal{M}_{ctx}(s)\) 中的记忆 ,论文使用蒙特卡洛风格的规则更新其三元组中的效用:
      $$
      Q_{\text{new} }\leftarrow Q_{\text{old} } + \alpha \big(r - Q_{\text{old} }\big). \tag{8}
      $$
      • 理解:上面式子的更新是针对 已有(被检索出来)的 Memory 的
      • 通过将 \(s’\) 设为终止状态,公式 8 作为公式 3 的自然简化版本,与 (2025) 共享相似的单步 MDP 公式
      • 此更新驱动 \(Q_{\text{new} }\) 趋近于在相似意图下使用经验 \(e_i\) 的经验预期回报
  • 重点3:对于新采样轨迹的添加:
    • 对于每个采样的轨迹,论文使用 LLM 来总结经验 (理解:经验是通过 LLM 总结出来的,不是原始的 Rollout)
    • 将其作为新的三元组 \((z(s),e_{\text{new} },Q_{\text{init} })\) 写回 Memory Bank ,从而在不断扩展经验的同时保持 LLM 参数不变
      • 注:这里的 \(z(s)\) 表示从 \(s\) 中提出取来的意图

Cognitive Interpretation

  • MemRL 提供了建构性情景模拟的算法类比 (2007)
    • 阶段 A 通过回忆语义相似的过去事件来实施类比迁移 (1983)
    • 阶段 B 类似于心理预演 (2004),通过使用习得的效用估计在回忆的候选中进行选择,有效地倾向于预期带来更高回报的策略
  • 最后,公式 8 实现了一种记忆再巩固形式 (2016):
    • 一旦记忆被检索和应用,其效用会根据后续结果得到强化或减弱
  • 这些组件共同实现了 Stability-plasticity 平衡:
    • 冻结的 LLM 保持稳定的认知推理,而演进的记忆效用则为持续适应提供了可塑性的渠道

Stability Analysis

  • 论文从强化学习的角度分析 MemRL 的稳定性,重点关注存储在记忆中的效用估计的收敛行为
  • 与经典的值迭代不同, MemRL 使用恒定步长更新进行非参数运行时学习
  • 论文表明,在温和且现实的假设下,习得的效用值在期望上收敛于记忆有效性的稳定估计,且方差有界
Setup
  • 在每个时间步 \(t\),智能体观察一个意图状态 \(s_{t}\),检索一个记忆项 \(m_{t} \in \mathcal{M}_{t}\),生成一个输出 \(y_{t}\),并接收一个标量奖励 \(r_{t} \in [- 1,1]\) 指示任务成功或失败
    • 生成策略遵循公式 1 中定义的分解,其中 \(\mu\) 表示检索策略,\(p_{\text{LLM} }\) 是冻结的推理策略
  • 对于每个检索到的记忆, MemRL 使用公式 8 中表述的指数移动平均规则更新其效用,学习率为 \(\alpha \in (0,1]\)
  • 为了分析清晰,论文考虑一个固定的状态-记忆对 \((s,m)\) 并记 \(Q_{t} \equiv Q_{t}(s,m)\)
Stationary Reward Assumption
  • 论文在固定数据集上分析学习过程,并提出两个确保环境稳定性的关键条件:
    • 1)冻结推理策略(Frozen Inference Policy) :\(p_{\text{LLM} }(y|s,m)\) 的参数和评估器的标准是固定的
    • 2)固定任务分布(Fixed Task Distribution) :任务 \(s\) 是从一个固定数据集的平稳分布中抽取的
  • 这些假设保证了学习目标是明确定义的:任何特定任务-记忆对(specific task-memory pair)的预期奖励是时不变的(time-invariant)
  • 因此,论文有:
    $$
    \mathbb{E}{[r_t|s_t = s,\mathcal{M}_t = m]} = \beta (s,m). \tag{9}
    $$
Expected Convergence of Utility Estimates
Theorem 1
  • 令 \(\{Q_{t}\}\) 根据公式 8 中的规则更新,恒定步长 \(\alpha \in (0,1]\)
  • 如果公式 9 成立且对 \((s,m)\) 无限次更新,则:
    $$
    \lim_{t\to \infty}\mathbb{E}{[Q_t]} = \mathbb{E}{[r_t|s_t = s,\mathcal{M}_t = m]} = \beta (s,m). \tag{10}
    $$
  • 此外,收敛速率是指数级的:
    $$
    \mathbb{E}{[Q_t]} - \beta (s,m) = (1 - \alpha)^t (Q_0 - \beta (s,m)). \tag{11}
    $$
Proof of Theorem 1
  • 定义估计误差
    $$ e_{t} \triangleq Q_{t} - \beta (s,m) $$
  • 基于公式 8 的更新规则,误差递推关系为:
    $$
    e_{t + 1} = (1 - \alpha)e_{t} + \alpha (r_{t} - \beta (s,m)).
    $$
  • 给定 历史 \(\mathcal{F}_{t}\) 的条件期望并利用公式 9,论文得到:
    $$
    \mathbb{E}{[e_{t + 1}|\mathcal{F}_t]} = (1 - \alpha)e_t.
    $$
    • 注:附录 A.1 中会提到,其中 \(\mathcal{F}_{t}\) 定义为截至时间 \(t\) 的 filtration (history)
  • 取完全期望(full expectation)得:
    $$
    \mathbb{E}{[e_{t + 1}]} = (1 - \alpha)\mathbb{E}{[e_t]}.
    $$
  • 迭代递归得 \(\mathbb{E}{[e_t]} = (1 - \alpha)^t e_0\),当 \(t \to \infty\) 时收敛于零
  • 论文在附录 A.1 中提供了收敛证明的详细推导
Bounded Variance and Stability
  • 如果奖励方差 \(\text{Var}(r_t|s,m) < \infty\),则 \(Q_{t}\) 的方差保持有界:
    $$
    \lim_{t\to \infty}\text{Var}(Q_t)\leq \frac{\alpha}{2 - \alpha}\text{Var}(r_t|s,m). \tag{12}
    $$
  • 因此,恒定步长更新不会引起无界振荡;
    • 相反,它们产生稳定的效用估计,这些估计跟踪预期的记忆有效性,同时过滤高频噪声
  • 论文在附录 A.2 中明确推导了方差界限,以证明在任务聚类下估计量的全局稳定性
Global Stability via EM Convergence
  • 局部估计(定理 1)的稳定性扩展到全局记忆效用 \(Q(m)\)。根据期望的线性性质,\(Q(m)\) 充当蒙特卡洛积分器,力图收敛于:
    $$
    \lim_{t\to \infty}\mathbb{E}{[Q_t(m)]} = \mathbb{E}{[r|m]} = \sum_{s\in \mathcal{S}(m)}\frac{\mathbb{E}{[r|s,m]}}{\text{Stationary} }\frac{\text{Pr}(s|m)}{\text{Retr}\text{ive}\text{-}\text{Dep}\text{end}\text{ent} }. \tag{13}
    $$
    • 其中 \(\mathcal{S}(m) \triangleq \{s \in \mathcal{S} | \text{sim}(s, z_m) \geq \tau_A \}\) 表示记忆 \(m\) 的有效支持集,包含所有与记忆意图嵌入 \(z_m\) 足够相似以满足阶段 A 检索准则的任务意图 \(s\)
  • 这里出现了一个理论挑战:权重项 \(\text{Pr}(s|m)\) 是一个由检索策略 \(\mu (m|s; \mathcal{M})\) 支配的潜在变量,而该策略本身随着 \(Q\) 值的演变而变化
    • 为了证明尽管存在这种依赖关系仍然收敛,论文将 MemRL 分析为一个广义期望最大化过程 (1977; 1998)
    • 从变分的角度来看,该系统在全局目标函数 \(\mathcal{J}(Q, \mu)\)(预期奖励的变分下界)上执行坐标上升:
      • (i) E 步(策略改进) :阶段 B 的排序更新检索策略 \(\mu\) 以与当前估计保持一致,相对于 \(\mu\) 单调增加 \(\mathcal{J}\);
      • (ii) M 步(值更新) :效用更新(公式 8)相对于 \(Q\) 增加 \(\mathcal{J}\)
    • 根据单调改进定理 (1998),这种交替优化保证了系统收敛到一个平稳点,在该点检索策略稳定 \((\mu_{t + 1} \approx \mu_t)\)
      • 因此,诱导的分布 \(\text{Pr}(s|m)\) 变得时不变,确保公式 13 成立,并通过将更新锚定在稳定策略上来有效防止灾难性遗忘
      • 更多细节可在附录 B 中找到

Experiments

Experimental Setup

Baselines
  • 论文在统一的冻结主干模型设置(a unified frozen-backbone setting)下,将 MemRL 与一套全面的记忆增强基线方法进行比较,以分离出记忆机制的贡献:
    • 1)RAG-based Approaches :RAG (2020) 和 Self-RAG (2023),分别代表标准的语义检索和基于批判的过滤
    • 2)智能体记忆(Agentic Memory) :MemO (2025) 和 MemP (2025),它们引入了结构化的读/写操作或过程性记忆蒸馏
    • 3)Test-Time Scaling: :Pass@k 和 Reflexion (2023),后者在 \( k \) 轮内应用迭代式的自我精炼
Benchmarks
  • 论文在四个多样化的基准测试上评估 MemRL 和基线方法:
    • 用于代码生成的 BigCodeBench (2025)
    • 用于具身导航的 ALFWorld (2021)
    • 用于操作系统/数据库交互的 Lifelong Agent Bench (2025)
    • 用于多学科复杂推理的 Humanity’s Last Exam (HLE) (2025)
  • 论文在两种不同的设置下评估论文的 MemRL 和基线方法:
    • 运行时学习(Runtime Learning) ,评估在训练会话中学习和适应的能力;
    • 迁移学习(Transferring) ,评估习得记忆在未见任务上的泛化能力
Runtime Learning Results
  • 表 1 报告了超过10个训练周期的最终 Epoch 准确率(Last Epoch Accuracy)和累计成功率(Cumulative Success Rate, CSR)
    • MemRL 在所有领域均持续优于所有基线方法
      • 这验证了非参数价值估计能够有效引导自我进化
    • 价值感知检索(value-aware retrieval)的优势在 ALFWorld 这类探索密集型环境中最为显著
      • 在 ALFWorld 上,MemRL 取得了 0.507 的优异最终 Epoch 准确率,相对于 MemP(0.324)和“无记忆”基线(0.278)分别实现了约 56% 和 82% 的相对提升
      • ALFWorld 中高达 0.697 的 CSR 表明,RL 组件有效地鼓励了智能体去探索并发现复杂任务的解决方案,而 Similarity-based 检索方法通常无法解决这些任务
    • 在具有挑战性的 Knowledge Frontier HLE 基准测试中,相较于 MemP 的 0.528,MemRL 将最终准确率提升至 0.573,其 CSR 甚至达到了惊人的 61.3%
  • 将这些收益与 BigCodeBench 等单轮任务进行比较,揭示了一个重要趋势:性能提升与任务结构复杂性相关
  • MemRL 的优势在以深度探索和高过程可转移性(procedural transferability)为特征的环境中(例如 ALFWorld)最大化,而在结构复用较少的任务中,优势幅度则较窄
    • 这表明我们的价值驱动机制特别擅长从探索轨迹(exploratory trajectories)中提炼并迁移复杂的问题解决模式
  • Overall,CSR 和最终准确率的同时提升表明,MemRL 不仅在探索过程中发现了高质量的解决方案,而且能够有效地保留和检索它们,以实现稳定的性能
Transferring Results
  • 通过在训练后冻结记忆库并在保留集(30% split)上进行测试来评估记忆的可迁移性
  • 如表 2 所示,与基线方法相比,MemRL 展现出更优异的泛化能力
    • 在 BigCodeBench 上,MemRL 达到了 0.508 的最高准确率,优于 Self-RAG(0.500)和标准 MemP(0.494)等高级检索方法
    • 在操作系统控制任务(Lifelong Agent Bench)中,MemRL 获得了 0.746 的准确率,相比标准 RAG 基线(0.713)有显著提升
    • 与运行时结果一致,在 ALFWorld 中收益显著,MemRL 达到了 0.479,明显优于 MemP(0.421)和 RAG(0.336)
    • 这些结果验证了 MemRL 中的价值感知检索(Value-Aware Retrieval)和非参数强化学习机制并不仅仅是过拟合训练实例;
      • instead,它过滤了低价值记忆,保留了高效用经验,从而促进了向未见任务的泛化

Ablations

Effectiveness of Runtime RL
  • 为了分离出运行时强化学习的效果,论文在操作系统交互环境中,比较了带有和不带有强化学习组件(即 MemP 对比 MemRL 以及 RAG 对比 MemRL (RAG))的记忆机制
  • 图 5a 展示了成功率随训练轮次的变化情况
    • 虽然强化学习增强(enhancement)在初始阶段带来的增益有限,但随着训练的进行,性能差异明显扩大
    • MemRL 在后续轮次中持续优于原始的 MemP 基线,表现出更平滑的学习曲线和更少的性能回退
    • 这种稳定性表明,强化学习驱动的价值函数有效缓解了噪声记忆的干扰,而噪声记忆常常困扰基于静态相似性的检索方法
  • 论文进一步分析了图 5b 中的 CSR Cumulative Success Rate ,它衡量了智能体在训练过程中至少成功解决过一次不同任务的能力
    • 在这里,强化学习的好处更加明显
    • MemRL 和 MemRL (RAG) 最终达到的 CSR 分别优于其对应方法 MemP 和 RAG
    • 图 5a 中性能差距的单调扩大表明,运行时强化学习显著增强了智能体从早期失败中恢复的能力
    • 通过优先考虑具有高期望效用的记忆,智能体有效减轻了噪声记忆的干扰,并巩固了成功的经验,将短暂的探索转化为稳健、可重复的能力
Impact of Q-value Weighting
  • 为了理解语义检索和强化学习之间的相互作用,论文分析了评分函数(即公式6)中 Q 值加权因子 \( \lambda \) 的影响:
    • 论文将 平衡设置(balanced configuration) \( (\lambda = 0.5) \) 与两种极端情况进行比较:
      • 纯语义检索(pure semantic retrieval baseline) \( (\lambda = 0) \)
      • 纯贪婪强化学习(pure RL setting) \( (\lambda = 1) \)
  • 如图 6 所示,平衡配置始终产生更优的性能
    • 这表明语义基础 semantic grounding 和效用驱动排序 utility-driven ranking 的结合能有效地引导智能体找到高质量的解决方案,同时保持上下文相关性
      • 此外,纯语义检索基线提供了一个稳定的起点,但缺乏过滤语义相似但功能错误的次优记忆的机制
      • 因此,其性能很快进入平台期,这凸显了强化学习信号对于持续改进的必要性
    • 另一方面,纯强化学习设置揭示了忽视语义上下文的风险,表现出显著的不稳定性和较差的初始性能
      • 论文将这种不稳定性归因于上下文脱离 context detachment :
        • 在没有语义相似性约束的情况下,智能体可能会检索到与当前任务无关的高 \( Q \) 值记忆(在其他上下文下是成功的)
      • 这证实了语义相似性必须作为检索的锚点,而强化学习则为优化记忆选择提供了必要的梯度
Sensitivity to Retrieval size
  • 为了研究记忆容量对推理性能的影响,论文在 HLE 基准测试的一个子集(计算机科学/人工智能类别)上进行了消融实验
  • 论文比较了两种检索配置:
    • 较大的召回设置(larger recall setting) \( (k_{1} = 10, k_{2} = 5) \)
    • 紧凑的召回设置(compact recall setting) \( (k_{1} = 5, k_{2} = 3) \)
    • 问题:这里的 \( (k_{1}, k_{2}) \) 分别代表论文两阶段检索的候选数量
  • 如图 7 所示,与较大的设置相比,紧凑的设置 \( (k_{1} = 5, k_{2} = 3) \) 实现了更优的稳定性
    • 这表明对于像 HLE 这样的复杂推理任务,单纯增加上下文容量可能会引入无关噪声,干扰模型的判断
    • 因此,一个更小、更高质量的检索记忆集足以保持推理精度

Discussion

  • 在本节中,论文更深入地探讨驱动 MemRL 性能的机制,将实证结果与第4节提出的 Stability-plasticity 框架联系起来
MemRL as a Trajectory Verifier
  • 表 3 揭示了任务结构复杂性与性能增益之间的相关性
    • 与单轮任务(例如 BigCodeBench \(+2.5\) 个百分点)相比,增益在多步骤序列任务中最为显著(例如 ALFWorld \(+24.1\) 个百分点)
    • 在序列任务中,检索到的记忆必须对整个轨迹有效
    • 标准的语义检索:通常会获取与初始指令匹配但后续步骤失败的记忆
    • MemRL:通过将最终奖励反向传播到记忆效用 \( Q \), MemRL 有效地学习验证整个轨迹,过滤掉仅在表面上看起来正确的脆弱策略
Predictive Power of the Q-Critic
  • 学习到的 Q 值是否真的反映了解决方案质量?
  • 图 8a 显示了 Critic 估计的 Q 值与经验任务成功率之间存在强正相关(皮尔逊 \( r = 0.861 \))
    • 成功率从最低置信度区间的 \( 21.5% \) 增加到最高区间的 \( 88.1% \)
      • 这表明性能提升的主要驱动力是 Critic 根据记忆导致任务成功的可能性进行排序的能力
    • 对记忆构成(图 8b)的进一步分析表明了增益的另一个来源:鲁棒性 robustness
    • 即使在高 Q 值区间 (0.9-1.0),智能体仍保留一小部分标记为“失败”的记忆(约 12%)
      • 这不仅不矛盾,反而符合以下解释:Q 值可以捕捉超越二元结果的效用:
      • 一些不成功的轨迹在战略上仍然有用,因为它们编码了接近正确的推理和可迁移的过程性经验
  • 案例研究 :一个高 Q 值“失败”记忆作为可迁移的接近成功(Case study: a high-Q “failure” memory as a transferable near-miss)
    • 论文发现了一些高 Q 值的失败记忆,它们总结了一个局部的微小错误以及一个可跨任务泛化的校正启发式方法
    • 这里论文用“接近成功” (near-miss) 表示大体正确但由于微小、局部错误(例如,验证疏忽或工具使用细节)而失败的轨迹
      • 例如,一个 \( Q = 0.9878 \) 的失败记忆对应一个遵循了正确方法但错误地将空命令输出视为失败证据的轨迹
      • 存储的反思明确指出了根本原因(误解空输出),警告了这种模式(将“无输出”等同于失败),并推荐了正确的方法(通过退出状态、错误日志或其他客观信号验证成功)
      • 在后续情境中检索时,这一条“失败”记忆在论文的日志中支持了完美的下游结果(15/15 成功),证明了该记忆之所以有价值,正是因为它捕捉到了一个可修复的接近成功,而非无信息的失败
  • Taken Together,这些结果表明,Critic 不仅仅是区分“成功”与“失败”,而是赋予那些提供可重用指导的记忆更高的价值
    • 包括本质上属于“接近成功”的一部分高效用失败
    • 通过保留和重用此类校正启发式方法,智能体可以比简单的成功重放机制更鲁棒
Stability of MemRL
  • 论文通过 Stability-plasticity 困境的视角分析 MemRL 的底层机制,审视论文的框架如何平衡新能力的获取与已有知识的保留
  • 卓越的 CSR(表1)表明 MemRL 有效地扩展了智能体的解决方案空间
  • 与受静态相似性约束、常常检索导致重复失败的冗余最近邻的启发式基线不同,MemRL 允许智能体识别并强化不明显但有效的策略
    • 这种能力使智能体能够突破传统检索方法停滞的局部最优
  • 长期训练动态(图 9)揭示了一个关键的稳定性优势
    • 像 MemP 这样的启发式方法,其 CSR 与当前轮次准确率之间的差距在扩大,表明新的探索无意中覆盖了有效的历史策略(灾难性遗忘)
    • 相比之下,MemRL 保持了同步增长
      • 论文将此归因于论文的理论保证
      • 从广义 MDP 的角度(公式3),价值更新受益于标准的贝尔曼收缩性(Bellman contraction) ,\( | \mathcal{T}Q - Q^{*} |_{\infty} \leq \gamma | Q - Q^{*} |_{\infty} \) (2018),每一步都将误差缩小 \( \gamma \)
      • 更具体地说,在论文的蒙特卡洛式建模下(公式8),这个过程由第4.5节保证
      • 与可能随机漂移的启发式排序不同,论文的方法在数学上约束策略沿着期望奖励的变分下界攀升,确保了论文在实验中观察到的稳定、非递减的性能
  • 论文进一步使用遗忘率(Forgetting Rate)(定义为在上一轮成功而在当前轮失败的任务比例,即 成功 \( \rightarrow \) 失败)来验证这些见解
  • 如图 10 所示,MemRL 实现了最低的平均遗忘率 (0.041),优于基线 MemP (0.051),并通过实验证实了论文的分析
The Necessity of Normalization and Similarity Gate
  • 此外,图 10 也突出了论文稳定性设计的必要性:移除归一化并降低相似性阈值(无归一化/相似性阈门)会导致平均遗忘率飙升至 0.073,这是由于不受约束的效用方差造成的
  • 这表明, z-score 归一化和严格的相似性阈门对于过滤噪声至关重要,确保自进化过程在最大化正向迁移的同时保持稳定
Impact of Similarity on Memory Efficacy(任务相似性对记忆效能的影响)
  • 为了理解 MemRL 发挥作用的基本条件,论文分析了数据集内语义相似性 \( \text{Sim}_{\text{intra} } \) 与论文方法提供的绝对性能增益 \( \Delta = \text{Acc}_{\text{ MemRL } } - \text{Acc}_{\text{NoMem} } \) 之间的相关性
  • 如图 11 所示,论文分析了数据集内语义相似性与 MemRL 提供的绝对性能增益 \( \Delta \) 之间的相关性
    • 线性回归趋势显示出普遍的正相关性:具有更高结构重复性的环境允许智能体更有效地检索和重用最优策略
    • At the upper extreme,ALFWorld(相似度 0.518)充当了这种趋势的强锚点,表现出最高的重复性和相应的最大性能提升 \( \Delta = +0.229 \)
    • 这证实了对于高度重复的过程性任务,记忆是通向最优轨迹的有效捷径
    • 沿着回归线(Following the regression line),具有中等相似度的基准测试(例如 Lifelong-OS (0.390) 和 BigCodeBench (0.308))聚集在中间区域,显示出稳定的改进 \( \Delta \approx +0.11 \sim +0.12 \),智能体成功地在相关指令间泛化了编码模式或操作系统命令
Generalization vs. Memorization
  • HLE 呈现了一个独特的异常值
    • 尽管由于其多样化的多学科性质具有最低的相似度 (0.186),但它却表现出惊人的高运行时增益(从 0.357 到 0.573,\( \Delta = +0.216 \))
    • 这种增益的运作机制与 ALFWorld 不同
  • 在高相似度基准测试中, MemRL 通过正向迁移(Positive Transfer),即将共享模式泛化到新实例中 取得成功
    • In Contrast,HLE 的增益源于运行时记忆化(Runtime Memorization)
    • 由于 HLE 的问题具有独特性且领域特定,智能体依赖运行时学习阶段,通过反复接触来“记忆”针对困难问题的特定解决方案
    • 这种区别凸显了 MemRL 的通用性:它既支持结构化领域的模式泛化,也支持多样化领域的特定知识获取

Conclusion

  • 在论文中,论文介绍了 MemRL ,这是一个新颖的框架,它使大语言模型能够通过情景记忆上的非参数强化学习实现自进化
    • 针对语义检索的局限性和参数微调的不稳定性, MemRL 将记忆检索视为一个 Value-based 决策过程
    • 通过将记忆组织为意图-经验-效用三元组并应用贝尔曼更新,智能体学会了区分高价值策略和语义噪声,而无需修改主干模型的权重
    • 论文在从代码生成到具身导航的多样化领域进行的广泛评估表明, MemRL 在运行时学习和向未见任务的泛化方面都显著优于现有的记忆增强基线
  • 理论和实证分析进一步揭示, MemRL 有效地解决了 Stability-plasticity 困境:
    • 冻结的大语言模型提供了稳健的推理能力,而进化的记忆效用则充当了适应的可塑性通道
  • Moreover,论文发现效用驱动的检索机制起到了轨迹 Verifier 的作用,使智能体能够在复杂、多步骤的任务中过滤掉脆弱的策略
    • 作者希望这项工作为构建能够在稳定高效的方式下持续从交互中学习的自进化智能体奠定新的范式

补充:Related Works

Continous Learning

  • 持续学习 (Continual learning) 处理 Stability-plasticity 困境,旨在顺序获取新知识而不遭受灾难性遗忘
    • 经典方法(例如正则化、蒸馏和经验回放)通过约束参数更新或保留过去数据分布来缓解遗忘 (2017; 2017; 2017)
    • 但这些参数化方法对于大语言模型来说计算成本高昂,并且通过频繁的在线更新有破坏预训练 Backbone 稳定性的风险
  • 近期关于大语言模型持续学习的综述进一步系统化了这些困难,并强调了外部机制和非参数路径的重要性 (2024)
    • 因此,从持续学习的角度来看,如果论文旨在让智能体在使用中改进同时保持 Backbone 的稳定性,一个更实用的方向是将可塑性从参数空间转移到外部结构和受控的经验更新通道

RL

  • 强化学习已被广泛用于增强大语言模型
    • 一个代表性范式是从人类反馈中构建奖励信号,并相应地优化模型策略以符合人类偏好 (2020; 2022)
  • 其他近期方法利用基于规则的 Verifier 来改进大语言模型的推理能力 (2025; 2025)
  • 同时,面向智能体的研究探索了交互信号如何改进工具使用和 Action 决策,并研究了语言模型在环境中执行复合 Action 的机制 (2023)
  • 尽管奖励驱动的优化已被证明有效,但这些方法通常将学习置于模型参数或额外的参数化模块中,因此并未从根本上避免在线更新的成本或遗忘的风险
  • 相比之下,论文的方法将记忆使用构建为一个可学习的决策问题,并对记忆应用非参数强化学习以规避该风险

Agentic Memory

  • 为了绕过微调的成本,外部记忆系统已从静态的 RAG 范式发展为动态的、可治理的记忆结构 (2020; 2020)
    • 早期的智能体记忆引入了反思机制和分层管理来处理长上下文经验 (2023; 2024)
    • 更近期的框架系统化了记忆生命周期,专注于复杂任务的统一存储和结构化索引 (2025b; 2025; 2025; 2025)
  • Furthermore,自适应方法现在探索通过反馈驱动的更新或自动增强来改进检索 (2025; 2025; 2025a; 2025)
  • However,除了训练额外的可学习模块外,大多数现有方法仍然主要依赖语义相似性或启发式规则,缺乏严格的度量标准来评估记忆在最大化回报方面的实际效用
  • 受记忆整合认知理论 (2007; 1980; 2000) 的启发, MemRL 通过将检索形式化为一个 Value-based 决策过程来弥合这一差距,直接从环境奖励中学习稳健的效用估计(Q 值)以区分高价值经验和噪声

附录 A:Theoretical Analysis And Proofs

  • 在本节中,论文将详细推导在指数移动平均(Exponential Moving Average, EMA)更新规则下 Q 值估计的收敛性,并将分析扩展到任务分布下记忆效用(memory utility)的全局稳定性

A.1 定理 1 的证明:Convergence Of EMA Estimation

  • 论文旨在证明,对于一个具有平稳奖励分布(stationary reward distribution)的固定任务-记忆对 \((s,m)\),Q 值估计 \(Q_{t}(s,m)\) 的期望会收敛到真实的平均奖励 \(\beta (s,m)\)
Assumptions
  • 平稳奖励(Stationary Reward)。步骤 \(t\) 的奖励 \(r_{t}\) 取自一个具有恒定均值 \(\beta (s,m) = \mathbb{E}{[r_{t}|s,m]}\) 和有限方差 \(\sigma^{2}\) 的分布
  • 更新规则(Update Rule)。效用通过学习率 \(\alpha \in (0,1)\) 的线性 EMA 规则更新:
    $$Q_{t + 1} = (1 - \alpha)Q_{t} + \alpha r_{t}.$$
Derivation of Error Dynamics
  • 令 \(e_{t}\triangleq Q_{t} - \beta (s,m)\) 为时间步 \(t\) 的估计误差。将 \(Q_{t} = e_{t} + \beta (s,m)\) 代入更新规则:
    $$\begin{array}{rl} & e_{t + 1} + \beta (s,m) = (1 - \alpha)(e_t + \beta (s,m)) + \alpha r_t\ & \qquad e_{t + 1} = (1 - \alpha)e_t + (1 - \alpha)\beta (s,m) + \alpha r_t - \beta (s,m)\ & \qquad e_{t + 1} = (1 - \alpha)e_t + \beta (s,m) - \alpha \beta (s,m) - \beta (s,m) + \alpha r_t\ & \qquad e_{t + 1} = (1 - \alpha)e_t + \alpha (r_t - \beta (s,m)). \end{array} \tag{14}$$
Convergence Analysis
  • 论文将 \(\mathcal{F}_{t}\) 定义为截至时间 \(t\) 的过滤(历史)。对公式 14 取给定 \(\mathcal{F}_{t}\) 的条件期望:
    $$\mathbb{E}{[e_{t + 1}|\mathcal{F}_t]} = (1 - \alpha)e_t + \alpha (\underbrace{\mathbb{E}{[r_t|\mathcal{F}_t]}}_{\beta (s,m)} - \beta (s,m)) = (1 - \alpha)e_t.$$
  • 根据迭代期望定律(Law of Iterated Expectations),取完全期望得到:
    $$\mathbb{E}{[e_{t + 1}]} = \mathbb{E}{[\mathbb{E}{[e_{t + 1}|\mathcal{F}_t]}]} = (1 - \alpha)\mathbb{E}{[e_t]}.$$
  • 从 \(t = 0\) 开始迭代此递推关系:
    $$\mathbb{E}{[e_t]} = (1 - \alpha)^t\mathbb{E}{[e_0]}.$$
  • 由于 \(0< \alpha < 1\),论文有 \(|1 - \alpha |< 1\)。因此:
    $$\lim_{t\to \infty}\mathbb{E}{[e_t]} = \mathbb{E}{[e_0]}\cdot \lim_{t\to \infty}(1 - \alpha)^t = 0. \tag{15}$$
  • 这证明了估计量在极限上是无偏的,即 \(\lim_{t\to \infty}\mathbb{E}{[Q_t]} = \beta (s,m)\)

A.2 Bounded Variance And Global Stability(有界方差与全局稳定性)

  • 在本节中,论文将给出估计量 \(Q_{t}\) 方差界限的形式化推导
  • 论文通过递归展开(recursive unrolling)明确推导有限时间方差公式,并证明其渐近收敛性,展示 Phase-A 聚类如何有助于全局稳定性
Derivation of the Variance Bound
  • 令 \(\sigma^{2}\triangleq \text{Var}(r_{t}|s,m)\) 为奖励信号的方差,假设是有限的,EMA 更新规则为:
    $$Q_{t + 1} = (1 - \alpha)Q_{t} + \alpha r_{t}.$$
  • 由于奖励 \(r_{t}\)(当前噪声)在统计上独立于当前估计 \(Q_{t}\)(由历史 \(\mathcal{F}_{t - 1}\) 决定),和的方差是方差的和:
    $$\text{Var}(Q_{t + 1}) = \text{Var}((1 - \alpha)Q_t) + \text{Var}(\alpha r_t)$$ $$= (1 - \alpha)^2\text{Var}(Q_t) + \alpha^2\sigma^2.$$
  • 令 \(v_{t}\triangleq \text{Var}(Q_{t})\),论文得到一个线性递推关系
    $$ v_{t + 1} = (1 - \alpha)^{2}v_{t} + \alpha^{2}\sigma^{2}$$
Recursive Unrolling
  • 为了求解 \(v_{t}\),论文将递推关系从步骤 \(t\) 向后展开:
    $$\begin{array}{l}{v_{t} = (1 - \alpha)^{2}v_{t - 1} + \alpha^{2}\sigma^{2} }\ {= (1 - \alpha)^{2}\left[(1 - \alpha)^{2}v_{t - 2} + \alpha^{2}\sigma^{2}\right] + \alpha^{2}\sigma^{2} }\ {= (1 - \alpha)^{4}v_{t - 2} + \alpha^{2}\sigma^{2}\left[1 + (1 - \alpha)^{2}\right]}\ {\vdots}\ {= (1 - \alpha)^{2t}v_{0} + \alpha^{2}\sigma^{2}\sum_{k = 0}^{t - 1}\left((1 - \alpha)^{2}\right)^{k}.} \end{array} \tag{16}$$
  • 公式 16 明确显示,时间 \(t\) 的方差由两个部分组成:衰减的初始方差(第一项)和累积的噪声方差(第二项)
Asymptotic Convergence
  • 当 \(t\to \infty\),由于学习率 \(\alpha \in (0,1)\),项 \((1 - \alpha)^{2t}\) 趋于零。求和项是一个公比为 \(r = (1 - \alpha)^{2}\) 的几何级数 \(\textstyle \sum_{k = 0}^{\infty}r^{k} = \frac{1}{1 - r}\),因此:
    $$\lim_{t\to \infty}v_{t} = \alpha^{2}\sigma^{2}\cdot \frac{1}{1 - (1 - \alpha)^{2} }.$$
  • 计算分母:
    $$1 - (1 - \alpha)^{2} = 1 - (1 - 2\alpha +\alpha^{2}) = 2\alpha -\alpha^{2} = \alpha (2 - \alpha).$$
  • 代回得到紧密的方差界限:
    $$\lim_{t\to \infty}\sup \text{Var}(Q_t) = \frac{\alpha^2\sigma^2}{\alpha(2 - \alpha)} = \frac{\alpha}{2 - \alpha}\sigma^2. \tag{17}$$
Connection to Phase-A Clustering
  • 这个结果为 MemRL 的稳定性提供了理论依据。虽然记忆簇 \(S(m) \triangleq \{s|\text{sim}(s,z_{m}) > \tau_{A}\}\) 内的任务可能不同,但平滑性假设(Smoothness Assumption)意味着它们的奖励取自一个方差有界 \(\sigma_{S(m)}^{2}\) 的分布
  • 推导出的界限 \(\frac{\alpha}{2 - \alpha}\sigma_{S(m)}^{2}\) 保证记忆效用 \(Q(m)\) 不会发散,而是将在真实期望效用附近的一个受控范围内振荡
  • 该机制有效地过滤了来自不同任务实例的高频噪声,同时保留了稳定的泛化价值

附录 B:Convergence Via Variational Inference

  • 在本节中,论文为 MemRL 提供理论基础,证明论文的检索策略和更新规则保证了价值估计的收敛性

B.1 收敛目标

  • 论文的最终目标是确保估计的效用 \(Q(m)\) 收敛到记忆 \(m\) 的真实期望回报(expected return),这个目标值定义为:
    $$\lim_{t\to \infty}\mathbb{E}{[Q_t(m)]} = \mathbb{E}{[r|m]} = \sum_{s\in \mathcal{S}(m)}\frac{\mathbb{E}{[r|s,m]}}{\text{Stationary} }\frac{\text{Pr}(s|m)}{\text{Retrieve-Dependent} }. \tag{18}$$
  • 挑战在于项 \(\operatorname *{Pr}(s|m)\),即特定状态 \(s\) 触发检索 \(m\) 的概率
    • 该分布依赖于检索策略 \(\mu_t(m|s)\),而该策略本身在训练过程中会演化,从而产生一个威胁稳定性的循环依赖

B.2 带有信任区域的变分目标

  • 为了解决这个问题,论文将问题表述为最大化一个全局变分目标 \(\mathcal{I}(\mu ,Q)\)
    • 这个目标作为公式 18 定义的全局期望回报的一个可处理的下界,并通过一个语义信任区域进行平衡:
      $$\mathcal{I}(\mu ,Q) = \mathbb{E}_{s\sim \mathcal{D} }\left[\sum_{m\in \mathcal{S}(s)}\mu (m|s)Q(s,m) - \frac{1}{\beta} D_{\text{KL} }\left(\mu (\cdot |s)| \pi_{\text{sim} }(\cdot |s)\right)\right] \tag{19}$$
    • 这里,第一项直接对应于论文旨在收敛的期望效用 \(\mathbb{E}{[Q_t(m)]}\),而 \(\pi_{\text{sim} }\) 代表固定的语义先验(从 Phase-A 导出)
    • KL 散度项作为一个正则化器至关重要,原因有二:
      • 1)信任区域(Trust Region):它将策略约束在支持集 \(\mathcal{S}\) 内,防止智能体检索高 \(Q\) 值但语义上不相关的记忆(分布外误差)
      • 2)正则化(Regularization):它在 \(Q\) 估计值嘈杂的“冷启动”阶段稳定学习动态

B.3 通过广义期望最大化进行优化 (GEM)

  • 论文将 \(\mathcal{I}\) 的优化视为一个 GEM 过程,在策略改进(policy improvement)和价值评估(value evaluation)之间交替进行:
E-step Policy Optimization
  • 固定 \(Q_t\),论文找到最大化 \(\mathcal{I}\) 的最优策略 \(\mu^*\)
  • 封闭形式的解是玻尔兹曼分布(Boltzmann distribution)(Levine, 2018):
    $$\mu^{*}(m|s)\propto \pi_{\text{sim} }(m|s)\exp (\beta Q_{t}(s,m))$$
  • 取对数后,论文得到论文 Phase-B 检索(公式 6)中使用的特定评分函数:
    $$\log \mu^{*}(m|s)\propto \underbrace{\log\pi_{\text{sim} }(m|s)}_{\approx \text{sim}(s,m)} + \beta Q_{t}(s,m)$$
  • 这证明了论文的相似性和 \(Q\) 值的启发式组合在数学上等价于变分目标下的最优策略
M-step Policy Evaluation Via Error Minimization
  • 虽然 E-step 基于当前估计改进了策略,但 M-step 确保这些估计是接地于现实的
  • 固定策略 \(\mu_{t + 1}\),论文的目标是将变分参数 \(Q\) 与真实的环境回报对齐
  • 论文将其表述为最小化估计效用与观察到的奖励目标 \(y = r\)(在论文的蒙特卡洛风格建模中)之间的均方误差(Mean Squared Error, MSE):
    $$\min_{Q}\mathcal{L}(Q) = \mathbb{E}_{r\sim \mu_{t + 1} }\left[\frac{1}{2}\left(y - Q(s,m)\right)^2\right]$$
  • 最小化这个误差至关重要,因为它收紧(tightens)了变分界限:
    • 它确保全局目标 \(\mathcal{I}\)(公式 19)中的期望项 \(\mathbb{E}{[Q]}\) 收敛到真实期望回报 \(\mathbb{E}{[r]}\)
    • 论文框架中使用的更新规则(公式 8)正好对应于对该目标的一个 SGD 步骤:
      $$Q_{t + 1}(s,m)\leftarrow Q_t(s,m) - \alpha \nabla_Q\mathcal{L}(Q) = Q_t(s,m) + \alpha (y - Q_t(s,m))$$
  • 通过迭代地最小化 \(\mathcal{L}(Q)\),M-step 将环境反馈传播到效用估计中,确保随后的 E-step 优化发生在一个可靠的价值格局上

Proof of Convergence

  • 根据 GEM 的单调改进定理(Monotonic Improvement Theorem)(1998),序列 \((\mu_t, Q_t)\) 保证收敛到一个驻点 \((\mu^*, Q^*)\)
  • 在稳态下,策略稳定 \((\mu_{t+1} \approx \mu_t)\),这意味着逆检索概率 \(\Pr(s|m)\) 变为时间不变的:
    $$\Pr (s|m) = \frac{\mu^{*}(m|s)\Pr(s)}{\sum_{\mu^{\prime} }\mu^{*}(m|s^{\prime})\Pr(s^{\prime})}$$
  • Consequently,公式 18 中的“依赖检索的(Retrieve-Dependent)”项被锚定
    • 在固定的数据分布下,标准的贝尔曼压缩特性(Bellman contraction property)确保 \(Q_t(m)\) 收敛到唯一的固定点:
      $$\lim_{t\to \infty}Q_t(m)\to \mathbb{E}_{\mu^*}[r|m] \tag{20}$$
  • Thus,论文的框架从理论上保证了记忆价值在最优检索策略下收敛于真实的期望回报

NLP——技术报告解读-MiMo-V2-Flash

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:MiMo-V2-Flash Technical Report, LLM-Core Xiaomi, 20260106 & 20260108
    • GitHub:github.com/XiaomiMiMo/MiMo-V2-Flash

Paper Summary

  • 整体总结:
    • MiMo-V2-Flash 核心创新:
      • 混合滑动窗口注意力架构 (Hybrid Sliding Window Attention architecture)
      • 轻量级多 Token 预测 (Lightweight Multi-Token Prediction)
      • MOPD 后训练范式
    • 从论文中看:MiMo-V2-Flash 可与 DeepSeek-V3.2 和 Kimi-K2 等更大的开放权重模型相媲美
  • MiMo-V2-Flash 是一个 MoE 模型(309B-A15B),旨在实现快速、强大的推理和智能体能力
  • MiMo-V2-Flash 采用了一种混合注意力架构
    • 将滑动窗口注意力(Sliding Window Attention,SWA)与全局注意力(Global Attention, GA)以 5:1 的混合比例交错排列,滑动窗口大小为 128 个 token
  • MiMo-V2-Flash 使用 Multi-Token Prediction(MTP) 在 27T Token 上进行预训练,拥有原生的 32k 上下文长度并随后扩展到 256k
  • 为了高效扩展训练后计算,MiMo-V2-Flash 引入了一种新颖的多教师 On-policy 蒸馏范式
    • 在此框架中,领域专业化的教师模型(例如,通过大规模强化学习训练)提供密集的、Token-level 奖励,使学生模型能够完美掌握教师的专业知识
    • MiMo-V2-Flash 能够媲美 DeepSeek-V3.2 和 Kimi-K2 等顶级开源模型,尽管其总参数量仅分别为后者的 1/2 和 1/3
    • 在推理过程中,通过将 MTP 重新用作推测解码的草稿模型,MiMo-V2-Flash 在使用三层 MTP 时实现了最高 3.6 的接受长度和 2.6 倍的解码加速
    • 论文开源了模型权重和三层 MTP 权重,以促进开放研究和社区协作
  • 本次解读重点关注后训练阶段,其他部分暂不深入

Introduction and Discussion

  • 人工智能通用智能的最新进展越来越受到两个前沿领域的推动:
    • 先进的推理链和基于大规模强化学习的自主智能体工作流 (Google DeepMind, 2025; Kimi Team, 2025b; 2025)
    • 但构建可扩展的推理器和智能体面临一个共同的关键瓶颈:长上下文建模必须同时具备快速和强大的能力
  • 论文介绍了 MiMo-V2-Flash,这是一个高效且经济实惠的 LLM,能够提供强大的推理和智能体性能
    • 为了缓解完全注意力的二次复杂度,MiMo-V2-Flash 采用了一种混合注意力机制,交错排列局部滑动窗口注意力和全局注意力
    • 滑动窗口大小为 128 Token,混合局部:全局比例为 5:1,对于长上下文,KV 缓存存储和注意力计算减少了近 \(6\times\)
    • 借助可学习的注意力 Sink 偏置 (2025) 的帮助,即使采用了激进的滑动窗口大小和混合比例,该混合架构在长上下文场景中也能保持强大的建模能力
    • MiMo-V2-Flash 还集成了 Multi-Token Prediction 以增强训练性能并加速推理解码
      • 特别是,MTP 在提升 RL rollout 速度方面具有巨大潜力,这有助于将 LLMs 扩展到更强大的智能水平
      • 通过轻量级的密集前馈网络和滑动窗口注意力,论文的 MTP 模块在实践中以高接受率提供了显著的解码加速
  • MiMo-V2-Flash 的预训练方案在很大程度上遵循了 MiMo-7B (2025),并进行了若干改进
    • 训练使用 FP8 混合精度进行,能够在 27T Token 上实现高效的大规模训练
    • 模型最初以原生 32K 上下文进行预训练,随后扩展到 256K
  • 得到的预训练模型 MiMo-V2-Flash-Base 已针对 Kimi-K2-Base (Kimi Team, 2025c) 和 DeepSeek-V3.2-Exp-Base (2025) 等领先的开源基础模型进行了评估
    • MiMo-V2-Flash-Base 在通用基准测试中取得了有竞争力的性能,并在侧重于推理的任务上超越了同类模型
    • 对于长上下文检索,论文的混合注意力架构在从 32K 到 256K 的上下文长度上实现了接近 \(100%\) 的成功率
    • 在极端长上下文推理基准 GSM-Infinite (2025) 上,MiMo-V2-Flash 在从 16K 扩展到 128K 时表现出稳健的性能,性能下降最小
  • 在训练后阶段,论文专注于高效扩展 RL 计算,以改进推理和智能体能力
    • 为此,MiMo-V2-Flash 引入了一种称为多教师 On-policy 蒸馏的新训练后范式。该框架通过三阶段过程解决了能力不平衡和学习效率低下的问题:
      • (1) 通用监督微调;
      • (2) 专业化的 RL/SFT 用于训练领域特定的教师模型;
      • (3) MOPD,其中学生模型从两个互补的信号中学习:来自在不同领域训练的特定教师的密集的、Token-level 奖励,以及一个可验证的、基于结果的奖励
    • 通过以这种方式整合多样化的专家知识,MiMo-V2-Flash 同时掌握了领域教师的顶峰能力,并受益于稳定高效的学习动态
  • MiMo-V2-Flash 在大多数推理基准测试中取得了与 Kimi-K2-Thinking 和 DeepSeek-V3.2-Thinking 相媲美的性能
    • 在 LongBench V2 和 MRCR 等长上下文评估中,MiMo-V2-Flash 持续超越更大的全注意力模型,证实了其混合 SWA 架构的鲁棒性
    • 值得注意的是,该模型在 SWE-Bench Verified 上达到了 \(73.4%\),在 SWE-Bench Multilingual 上达到了 \(71.7%\),使其成为软件工程任务中最领先的开源模型
    • 模型权重(包含 3 层 MTP 权重)可在 github.com/XiaomiMiMo/MiMo-V2-Flash 获取

MiMo-V2-Flash Model Architecture

Overall Architecture

  • 如图 2 所示,MiMo-V2-Flash 遵循标准的 Transformer (2017) 主干,并增强了 MoE (2017) 和混合注意力 (2020; Gemma Team, 2024, 2025; Kimi Team, 2025a; 2025; Qwen Team, 2025)
    • MiMo-V2-Flash 主要由重复的混合块组成,这些块交错排列局部滑动窗口注意力和全局注意力
    • 它堆叠了 \(M = 8\) 个混合块,每个块的结构为 \(N = 5\) 个连续的 SWA 块后接一个 GA 块
    • 唯一的例外是第一个 Transformer 块,它使用全局注意力和密集的前馈网络以稳定早期的表示学习
    • MiMo-V2-Flash 中使用的滑动窗口大小 \(W\) 为 128
    • SWA 块和 GA 块都使用稀疏的 MoE FFN。每个 MoE 层总共包含 256 个专家,每 Token 激活 8 个,并且不包含共享专家
  • MiMo-V2-Flash 还集成了 MTP (2024; 2024; 2025) 以提高模型性能(包括质量和效率)
    • MTP 块使用 Dense FFN 而非 MoE,并采用 SWA 而非 GA,使其在推测解码中保持轻量级
    • 每个 MTP 块的参数量仅为 0.33B
  • 表 1 总结了 MiMo-V2-Flash 的详细配置
    • 模型包含 39 个 SWA 层和 9 个 GA 层
    • SWA 和 GA 都使用分组 Query 注意力 (2023)
      • SWA 有 64 个 Query 头和 8 个键值头,GA 有 64 个 Query 头和 4 个键值头
      • SWA 和 GA 的每个头的维度相同( Query 和键为 192,值为 128)
    • 旋转位置嵌入部分应用于 Query 和键的前 64 个维度
      • 遵循最近的最佳实践,论文采用了类似于 DeepSeek-V3 (2024) 的 FP8 混合精度框架
    • 论文为注意力输出投影,以及嵌入和输出头参数保留 BF16 精度,同时为 MoE 路由器参数保持 FP32 精度
      • 这种混合精度配置提高了数值稳定性,而不会对训练效率或内存占用产生实质性影响

Hybrid Sliding Window Attention Architecture

  • 滑动窗口注意力 (2020) 将每个 Token 的注意力范围限制在局部窗口而非整个序列,从而显著降低计算和内存复杂度
    • 这自然激发了混合滑动窗口注意力架构的出现
  • 但先前的工作表明,过度激进的 SWA 使用,如非常小的滑动窗口大小或高 SWA:GA 比例,可能导致模型性能显著下降 (Gemma Team, 2025),尤其是在长上下文任务中
    • 最近,可学习的注意力 Sink 偏置的引入显著增强了基于 SWA 架构的建模能力 (2025),该机制允许模型在需要时将很少或没有注意力分配给某些 Token
    • 尽管注意力 Sink 机制的确切理论基础仍是一个活跃的研究领域 (2024b; 2025; 2024; 2023),但论文通过实验观察到,可学习的注意力 Sink 偏置显著提升了混合 SWA 模型的性能,匹配甚至超过了使用完全 GA 层的基线
  • 在 MiMo-V2-Flash 中,论文的实现遵循了 gpt-oss (2025) 中使用的设计,其中每个注意力头的 softmax 分母应用一个可学习的注意力 Sink 偏置 \(sink \in \mathbb{R}\)
    • 令单个注意力头中 Token \(i\) 和 \(j\) 之间的注意力 logits 为:
      $$a_{ij} = \frac{q_ik_j^\top}{\sqrt{d} }, \tag{1}$$
      • 其中 \(q_{i}\) 和 \(k_{j}\) 分别表示 Token \(i\) 的 Query 和 Token \(j\) 的键,\(d\) 是头的维度
    • 注意力权重由下式给出:
      $$
      \begin{align}
      s_{ij} &= \frac{\exp\left(a_{ij} - m_i\right)}{\exp\left(\text{sink} - m_i\right) + \sum_{j’}\exp\left(a_{ij’} - m_i\right)} \tag{2} \\
      m_{i} &= \max \left\{\max_{j}a_{ij},\text{sink}\right\} \tag{3}
      \end{align}
      $$
  • 最后, Query \(i\) 的注意力输出通过对值进行加权和获得:
    $$o_{i} = \sum_{j = 1}^{n}s_{ij}\nu_{j}. \tag{4}$$
Model Architecture Experiments
  • 了验证论文设计选择的有效性,论文在一个 32B Dense 模型上进行了探索性和实证研究,保持了与上述描述一致的 Query -键维度和旋转嵌入配置
  • 表 2:不同注意力配置的通用基准结果
  • 表 3:不同注意力配置的长上下文基准结果
  • 表 4:不同注意力配置的复杂推理基准结果
基线及基准测试
  • 论文在比较环境中评估了四种模型架构变体,包括:
    • 一个全全局注意力基线
    • 一个不带注意力 Sink 偏置的 128 Token 窗口混合 SWA 模型
    • 两个分别使用 128 和 512 窗口大小并增强了注意力 Sink 偏置的混合 SWA 模型
    • 所有变体共享相同的训练流程:在 250B Token 上进行 8,192 序列长度的预训练,然后在额外的 40B Token 上长上下文扩展到 32,768,接着进行带有思维链监督的长上下文 SFT 和推理 SFT
  • 论文评估模型变体在涵盖通用能力、长上下文理解和复杂推理的基准测试上的表现
    • 通用领域结果(表 2)来自未经长上下文扩展的预训练基础模型,评估了在 MMLU (2021a), BBH (2023), TriviaQA (2017), GSM8K (2021), MATH (2021b), CMMLU (2023) 和 MBPP (2021) 上的通用知识和推理
    • 长上下文结果(表 3)评估了长上下文扩展后的基础模型在 GSM-Infinite (2025), NoLiMa (2025) 和 RULER-32k (2024) 上的表现,以及长上下文 SFT 模型在 MRCR (2024) 上的表现
    • 对于 GSM-Infinite 和 Nolima,论文构建了内部的 few-shot 基准来评估基础模型在受控的长上下文设置下的表现
    • 复杂推理结果(表 4)评估了推理 SFT 模型在 AIME24&25 (MAA, 2024), LiveCodeBench (2024) 和 GPQA-Diamond (2024) 上的表现
  • 论文关键的实证发现:
    • 注意力 Sink 偏置消融实验 如表 2 所示,混合 SWA (\(W = 128\) ,w/o Sink ) 在通用基准测试中遭受了明显的性能下降,而引入注意力 Sink 偏置相对于全 GA 基线一致地恢复或提升了性能
      • 因此,在进一步的实验中,论文默认假设应用了注意力 Sink 偏置
    • 滑动窗口注意力大小 混合 SWA (\(W = 128\)) 和混合 SWA (\(W = 512\)) 在通用基准测试上表现相似(表 2)
      • 然而,经过长上下文扩展和长上下文 SFT 后,混合 SWA (\(W = 128\)) 超越了全 GA 基线,而 SWA (\(W = 512\)) 则经历了显著的性能下降(表 3)
    • 推理能力 如表 4 所示,混合 SWA (\(W = 128\)) 在不同的挑战性推理基准测试上超越了全 GA 基线,在复杂推理能力上显示出清晰的改进
Summary and Discussion
  • 论文的实验表明,混合 SWA (\(W = 128\)) 不仅优于混合 SWA (\(W = 512\)),而且可以 超越全 GA 基线 ,这可能看起来违反直觉
    • 论文推断这是由于更好的正则化和有效的稀疏性相结合的结果
  • 较小的窗口迫使模型专注于局部上下文,作为一种归纳偏置,减轻了对虚假模式的过拟合
    • 此外,更紧的窗口 (\(W = 128\)) 迫使 SWA 对局部信息建模,同时将长程依赖委托给全局注意力层,导致更清晰的分工和更准确高效的学习
    • 相比之下,更大的窗口 (\(W = 512\)) 可能会模糊这种区别,导致 SWA 部分地自行处理长程依赖,这稀释了局部和全局信息之间的分离,并导致次优性能
  • 论文这些观察和发现是实证性的,源于论文特定的实验设置,包括模型规模、数据集和训练过程
    • 尽管如此,作者希望这些观察能为正在进行的关于推理和智能体 AI 模型时代高效注意力架构的讨论贡献一个额外的视角,并激励社区更广泛地研究高效架构

Lightweight Multi-Token Prediction

Motivation of using MTP
  • 先前的工作表明,MTP 是一种强大的训练目标,可以增强训练效率和模型质量 (2024; 2024; 2025)
    • 除了这些训练上的好处,论文更强调将 MTP 作为本机草稿模型用于自推测解码,以实现实际部署的加速
  • 论文从两个角度详细阐述 MTP 如何加速推理:通用 LLM 解码加速和 RL 训练加速
Accelerating LLM Decoding
  • 由于算术强度低,LLM 解码本质上是内存受限的
    • 批次级并行通常用于提高 FFN 的算术强度,但对注意力计算没有益处,因为每个请求维护自己的 KV 缓存
    • 相比之下,MTP 通过生成多个草稿 Token 来提升 FFN 和注意力的算术强度,然后主模型并行验证这些 Token
    • 这种方法实现了 Token 级并行,而无需增加 KV 缓存 I/O
      Accelerating RL Training
  • MTP 加速特别适用于 RL 训练 (RadixArk Team, 2025),其中 rollout 阶段由于推理和解码成本始终是主要的瓶颈
  • MTP 解决了 RL 训练中的两个关键挑战:
    • 它使得小批次的 RL 高效且有效:当前的 RL 训练依赖于大批次、 Off-policy 算法来最大化吞吐量 (2025; 2017; 2025)
      • 但实际上,On-policy 训练通常更稳定和有效,但其小批次无法充分利用 GPU 资源
    • MTP 通过扩展 Token 级并行而不是批次大小来缓解这一限制,使得小批次、 On-policy RL 训练更加实用
      • 它减轻了由长尾滞后项引起的 GPU 空闲
      • 随着 rollout 阶段进行,处理长序列且批次大小较小(通常接近 1)的长尾滞后项会导致显著的 GPU 空闲 (2025; 2025)
      • 在此类场景中,MTP 提高了注意力和 FFN 的计算效率,显著减少了总体延迟
      • 理解:这里说的是当 Batch 较小时,MTP 可以提升并行度?还是说单纯的提升了整体解码速度?
Lightweight MTP Design in MiMo-V2-Flash
  • 在 MiMo-V2-Flash 中,MTP 块被刻意保持轻量级,以防止其成为新的推理瓶颈
  • 论文使用小型 Dense FFN 而不是 MoE 来限制参数数量,并采用 SWA 而不是全局注意力来减少 KV 缓存和注意力计算成本
    • 在预训练期间,模型仅附加一个 MTP 头以避免额外的训练开销
    • 在训练后阶段,该头被复制 \(K\) 次以形成 \(K\) 步 MTP 模块,并且所有头联合训练以进行多步预测
      • 每个头接收主模型的隐藏状态和 Token 嵌入作为输入,提供更丰富的预测信息
  • 尽管设计轻量,MTP 模块仍然非常有效,并实现了高接受率
    • 详细结果见第 5 节

Pre-Training

  • MiMo-V2-Flash 的预训练语料库包含来自多样化高质量来源的 27T Token,包括公共网络内容、书籍、学术论文、代码、数学和更广泛的 STEM 材料
  • 论文的数据处理流程在很大程度上遵循了 MiMo-7B (2025),并有意转向展现长程依赖的数据
  • 特别是,论文强调长格式的网络文档和精心整理的代码语料库,如仓库级代码、拉取请求、问题和提交历史,以增强模型捕获扩展上下文关系和执行复杂多步推理的能力

Data Scheduler

  • MiMo-V2-Flash 的预训练组织为三个连续的阶段:
    • 阶段 1 :在多样化的高质量通用语料库上使用 32K Token 的上下文长度进行训练,以建立强大的基础语言能力
    • 阶段 2 :通过上采样以代码为中心的数据并纳入约 \(5%\) 的合成推理数据来修改数据混合,以进一步增强逻辑推理和程序合成能力
    • 阶段 3 :遵循第 2 阶段的数据分布,将模型的上下文窗口扩展到 256K Token,并对具有长程依赖的数据进行上采样,实现对扩展上下文和长视野推理的更有效建模

Hyper-Parameters

模型超参数
  • 论文将 MiMo-V2-Flash 配置为 48 个 Transformer 层,包括 39 个滑动窗口注意力层和 9 个全局注意力层。隐藏维度设置为 4096。除第一层外,所有层都配备了稀疏 MoE。每个 MoE 层包含 256 个路由专家,每 Token 激活 8 个专家,每个专家的中间隐藏维度为 2048。密集层 FFN 的中间隐藏维度设置为 16384。所有可学习参数均以 0.006 的标准差随机初始化。模型在预训练期间使用单层 MTP。总体而言,MiMo-V2-Flash 总参数量为 309B,其中激活参数量为 15B
训练超参数
  • 论文采用 AdamW 优化器,其中 \(\beta_{1} = 0.9\) , \(\beta_{2} = 0.95\) ,权重衰减为 0.1。梯度裁剪的最大范数为 1.0。学习率调度分两个阶段运行。在阶段 1,学习率在前 50B Token 从 0 线性预热到 \(3.2 \times 10^{- 4}\),然后在 \(3.2 \times 10^{- 4}\) 保持 12T Token,最后在 10T Token 上以余弦衰减到 \(1.0 \times 10^{- 4}\)。阶段 2 从 \(1.0 \times 10^{- 4}\) 开始,并在 4T Token 上以余弦衰减到 \(3.0 \times 10^{- 5}\)。批次大小在前 500B Token 线性预热到 2,048,并在两个阶段的剩余时间保持恒定。关于辅助损失,所有阶段的 MoE 序列辅助损失系数设置为 \(1.0 \times 10^{- 5}\)。专家偏置更新因子在阶段 1 和阶段 2 设置为 0.001。MTP 损失权重在阶段 1 设置为 0.3,在阶段 2 和 3 设置为 0.1
长上下文扩展
  • 在阶段 1,论文将预训练序列长度设置为 32,768,GA 的 RoPE 基础频率为 640,000,SWA 为 10,000。在阶段 3,序列长度扩展到 262,144,GA 的 RoPE 基础频率调整为 5,000,000。阶段 3 的学习率从 \(3.0 \times 10^{- 5}\) 以余弦调度衰减到 \(1.0 \times 10^{- 5}\),批次大小固定为 256。专家偏置更新因子在阶段 3 减少到 \(1.0 \times 10^{- 5}\)

Evaluations

Evaluation Setup
  • 论文在涵盖各种能力的一系列基准测试上评估 MiMo-V2-Flash-Base:
    • (1) 通用语言理解和推理,包括 BBH (2023), MMLU (2021a), MMLU-Redux (2024), MMLU-Pro (2024), DROP (2019), ARC (2018), HellaSwag (2019), WinoGrande (2020), TriviaQA (2017), GPQA-Diamond (2024), SuperGPQA (2025) 和 SimpleQA (OpenAI, 2024)
    • (2) 数学推理: GSM8K (2021), MATH (2021b) 和 AIME (MAA, 2024) (2024 & 2025)
    • (3) 代码: HumanEval+ (2023), MBPP+ (2023), CRUXEval (2024a), MultiPL-E (2022), BigCodeBench (2024), LiveCodeBench-v6 (2024) 和 SWE-Bench (2024a) (few-shot Agentless Repair (2024))
    • (4) 中文理解: C-Eval (2023), CMMLU (2023) 和 C-SimpleQA (2025)
    • (5) 多语言理解: GlobalMMLU (2025) 和 INCLUDE (2024)
    • (6) 长上下文: NIAH-Multi (2024), GSM-Infinite (2025) (5-shot, Hard Ops-{2,4,6,8,10})
Evaluation Results
  • 表 5 展示了 MiMo-V2-Flash-Base 与领先的开源基础模型 (Kimi Team, 2025c; 2024) 的全面比较
    • MiMo-V2-Flash-Base 在大多数基准测试中提供了有竞争力的性能,并在推理任务上持续超越同行
    • 在 SWE-Bench 上,它甚至超越了参数量大得多的 Kimi-K2-Base,同时使用了不到三分之一的参数,突显了论文方法在实际代码-智能体任务上的优势
    • 受限于其有限的参数量,论文观察到与更大的模型相比,MiMo-V2-Flash 表现出较低的知识能力,这反映在 SimpleQA 上
  • 论文在表 6 中说明了每个模型的长上下文能力
    • 对于长上下文检索,论文的模型架构从 32K 到 256K 实现了接近 \(100%\) 的成功率
      • 在极端压力长上下文推理基准 GSM-Infinite 上,MiMo-V2-Flash 也显示出强大的性能,从 16K 到 128K 性能下降最小
    • 相比之下,DeepSeek-V3.2-Exp 是一个稀疏注意力 LLM,在 32K 以下获得了最高分,但在 64K 和 128K 时显著下降,表明其在带噪输入的长上下文推理中存在固有劣势
      • 这些结果有力地证明了论文的混合 SWA 架构、原生 32K 预训练和上下文扩展训练的有效性和可扩展性

Post-Training

MOPD:多教师 On-policy 蒸馏 (Multi-Teacher On-Policy Distillation (MOPD): A New Post-Training Paradigm)

  • 现代语言模型越来越依赖广泛的后训练来增强其智能和能力,当前的后训练流程面临两个根本性挑战:
    • 能力不平衡 (capability imbalance) :提升某一技能会导致其他技能的退化(“跷跷板”效应);
    • 学习效率低下 (learning inefficiency) : 现有方法在整合来自多个专业模型的知识时未能充分利用训练信号
  • 论文提出多教师 On-policy 蒸馏 (Multi-Teacher On-Policy Distillation, MOPD),这是一个统一的后训练范式,通过一个三阶段的框架来解决这些挑战,如图 3 所示:
    • Stage 1:SFT
      • 论文通过在高质量指令-响应对上进行监督学习,建立基础的理解并遵循指令的能力,使模型能够理解并执行跨不同领域的用户请求
    • Stage 2:Domain-Specialized Training
      • 论文通过针对特定任务的独立 RL 优化来训练一系列领域专业化教师模型,这些任务包括:智能体能力(搜索、编码、通用工具使用)和非智能体任务(数学推理、通用推理、安全对齐)。每位教师通过针对其特定领域的奖励信号进行优化,在各自领域达到卓越性能
    • Stage 3:Multi-Teacher On-Policy Distillation(MOPD)
      • 与合并模型参数或从专家模型中生成静态离线数据集不同,论文将多教师知识集成(multi-teacher knowledge integration)制定为一个 On-policy RL 过程
      • 学生模型从其自身不断演化的分布中进行采样,并通过 KL Divergence rewards (2023;2024;2025) 接收来自领域特定教师的 Token-level 监督,从而有效地结合了多种专业能力,而无需承受传统的权衡取舍(见表 7)
  • 这种统一的框架相较于传统的后训练方法具有几个关键优势:
    • Effective and Efficient
      • 与常常需要权衡能力取舍的参数合并(parameter merging)或顺序训练不同,MOPD 保留了最强教师在所有领域中的峰值性能(peak performance)
      • 此外,利用来自教师 logits 的 Dense Token-level 奖励进行 On-policy 蒸馏,确保了稳定的信用分配(credit assignment)和快速收敛
      • 通过从其自身分布中学习,学生模型避免了在基于静态数据集训练的离线方法中常见的暴露偏差(exposure bias)和分布失配(distribution mismatch)
    • 模块化与可扩展性(Modular and Scalable)
      • 教师模型的选择非常灵活:可以是具备强大能力的专门化 RL 衍生模型、一个不同的 SFT 模型,甚至可以是学生模型自身
      • 这种解耦设计使得能够轻松集成新的教师模型,而无需重构整个流程
      • 此外,该框架能与现有的结果奖励模型(Outcome Reward Models, ORMs) 无缝协作,并且对于复杂的智能体任务尤为有利,因为为这些任务搭建独立的训练流程通常非常繁琐
    • 迭代协同进化(Iterative Co-Evolution)
      • MOPD 天然支持师生协同进化循环
      • 经过蒸馏的学生模型可以重新进入专门的 RL 阶段,以产生更强的教师模型;这些更强的教师模型反过来又能为下一代学生提供更高质量的监督,从而形成一个自我强化的改进循环,实现能力的持续扩展

SFT

  • SFT 阶段是论文后训练流程的基础,它将基础模型转变为一个有帮助的助手,能够遵循指令并在各种任务中有效响应
  • 这一阶段对于激活 模型在预训练期间获得的潜在能力,并将其输出与期望的格式和风格对齐至关重要
  • 论文精心整理了数百万个涵盖广泛领域的训练样本,包括通用对话、推理、编码和智能体任务
    • 这些样本覆盖了 Thinking 和 Non-thinking ,其中的回答由论文内部的领域专业化模型检查点生成
    • 这种多样化的训练混合确保了模型在其预期用例中能力的全面激活
  • 通过初步实验,论文为 MoE SFT 训练确定了一个关键稳定性指标:梯度为零的参数数量(number of parameters with zero gradients,num-zeros)
    • 该指标为训练不稳定性提供了早期预警信号:
      • num-zeros 增加 表明专家间的负载平衡正在恶化
      • num-zeros 减少 则表明模型正在严重 Overfitting 训练数据
      • 问题:为什么梯度为零的参数数量跟 是否过拟合有关?
    • 因此,在整个训练过程中保持稳定的 num-zeros 对于成功的 SFT 至关重要
      • 此外,这种稳定性对于确保后续 RL 阶段的稳健性和收敛性也至关重要
  • 论文的实验表明,num-zeros 的稳定性关键取决于两个超参数:专家偏置更新率(expert bias update rate) 和 AdamW 优化器中的 \(\epsilon\) 参数
    • 采用余弦衰减学习率调度器,从 \(5.0 \times 10^{-5}\) 衰减到 \(5.0 \times 10^{-6}\)
    • 批次大小为 128
    • AdamW 的 \(\epsilon\) 设置为 \(1.0 \times 10^{-8}\)
    • MoE 专家偏置更新率设置为 \(1.0 \times 10^{-4}\)
    • 序列辅助损失系数(sequence auxiliary loss coefficient)设置为 \(1.0 \times 10^{-6}\)

Scaling Reinforcement Learning

  • 强化学习将模型能力提升到仅靠监督微调所无法达到的水平
  • 根据任务是否涉及智能体行为,论文采用不同的 RL 策略,同时缩放非智能体和智能体 RL 训练,以最大化不同领域的性能
Non-Agentic RL Training
  • 非智能体 RL 训练侧重于提升模型在单轮任务上的性能,此类任务中模型无需交互反馈或多步执行即可生成完整响应
  • 其主要目标是在可验证领域(如数学、编码、逻辑)提升模型的推理准确性,同时在开放式对话中使其输出对齐于帮助性和安全性
  • 论文生成奖励信号的方法因任务特征而异
    • 对于有可验证结果的领域 :
      • 论文采用结合程序化工具和 LLM Judge 的混合验证系统 ,以根据整理的 problem-solution pairs 自动评估正确性
    • 对于主观特性,如帮助性和安全性 :
      • 论文实施 基于评分细则 (rubrics) 的框架 ,由高级 LLM Judge 根据 详细的 rubrics 和参考答案 评估响应,产生细粒度的奖励信号,引导模型朝向期望的行为
    • 问题:各个领域都没有使用 BT RM 吗?
Agentic RL Training
  • 非智能体 RL 侧重于单轮推理和生成,而智能体 RL 则训练模型在需要规划、执行行动并根据反馈进行调整的交互式、多轮环境中运行
  • 论文沿着两个关键维度来扩展智能体 RL:环境多样性和计算资源
  • 扩展智能体环境多样性(Scaling Agentic Environment Diversity)
    • 论文构建了一套多样化的智能体训练环境,涵盖代码调试、终端操作、Web 开发和通用工具使用,每个环境都针对不同的能力方向,同时均需满足多步推理与执行这一共同要求
Code Agent
  • 论文在源自真实世界 GitHub 问题的大规模代码智能体任务上进行训练
  • 模型在智能体循环中运行,读取和编辑文件、执行命令,并根据可验证的单元测试获得奖励
  • 论文的关键 Insight 是: 持续扩展可用任务能推动代码智能的持续提升
  • 为了在超过 10 万个代码任务上实现高效的 RL 训练,论文开发了两个基础设施组件
    • 首先,论文构建了自动化环境设置流水线
      • 该流水线从仓库快照中配置开发环境并将其打包成容器化镜像
      • 在 8 种编程语言上达到 \(70%\) 的成功率,并由运行超过 1 万个并发 pod 的大规模 Kubernetes 集群支持
    • 其次,论文实现了一个轻量级智能体 scaffold
      • 可与 Kubernetes、Docker 或本地后端无缝集成,暴露了三个原子工具(bash、str_replace、finish),仅通过 shell 命令与执行后端交互
    • 这种设计消除了基于服务器的工具实现,并采用最小的系统提示词,没有预定义的工作流,允许模型在训练中发现最佳实践
Terminal Agent
  • 除了 GitHub 问题,论文还利用来自 Stack Overflow 和 Stack Exchange 的任务来强化基于终端的解决问题能力
    • 主要强调的是
  • 论文选取需要高级技术专长的材料,并将其转化为具有相应 Query 、Dockerfile 和测试用例的计算任务
  • 在验证环境安装并按难度和可靠性过滤后,论文获得了大约 3 万个带有已验证执行环境的 Query
  • 基于通过率的额外过滤移除了那些正确性判断不可靠或复杂度不足以进行有效 RL 训练的任务
Web Development Agent
  • 为了提升 Web 开发代码生成能力,论文构建了一个基于真实世界的合成数据集,并配有多模态验证器
  • 论文收集高质量用户编写的网页,使用 Playwright 执行生成的代码以获得渲染视频,并应用多模态视觉判别器以仅保留高质量样本,其中基于视频的评估相较于静态截图减少了视觉幻觉
  • 论文从整理的页面逆向工程用户 Query 作为种子提示词,合成大规模 RL 数据,涵盖与真实世界使用密切匹配的八个 Web 类别
  • 论文的基于视觉的验证器根据录制的视频对 rollout 执行进行评分,联合评估视觉质量、功能正确性和可执行性,确保奖励反映外观和行为
General Agent
  • 论文开发了两种通用智能体能力
  • 搜索智能体(Search Agent):
    • 采用一个提供三个核心工具(search、open、find)的脚手架,用于自主网页探索
    • 论文通过从种子实体递归扩展事实图来构建 Query ,其中难度随关系链深度和细节混淆而增加,从而实现具有可验证答案的具有挑战性的搜索问题的自动生成
  • 函数调用智能体(Function-Calling Agent)
    • 在具有自定义工具集的合成应用环境中训练,这些工具集通过基于显式数据依赖(直接的输入-输出关系)和隐式逻辑依赖(关于隐藏系统状态的推理)生成工具调用图来构建,要求具备数据传播和状态推断能力
Scaling Agentic Compute
  • 在之前多样化的智能体环境集上训练(表 8),论文发现扩展智能体 RL 计算不仅能提升代码智能体性能,还能有效地泛化到其他任务类型
  • 图 4 显示了论文代码智能体的 RL 训练曲线,模型在大约 12 万个环境中执行了 On-policy rollouts 和更新
    • 这种扩展显著提升了 SFT 基础模型在 SWE-Bench-Verified 和 SWE-Bench-Multilingual 上的性能
  • 图 5 表明,大规模的代码智能体 RL 训练能有效地泛化到其他智能体任务,以及数学、代码和通用推理基准测试,这表明智能体训练培养了广泛可迁移的问题解决能力

Technical Formulation of MOPD

  • 通过 SFT 奠定基础并训练了领域专业化教师后,论文现在将整合这些专业化能力到统一学生模型的多教师 On-policy 蒸馏机制形式化
    • 具体地,论文将多教师蒸馏视为一个 On-policy 强化学习目标
  • 令 \(\pi_{\theta}\) 表示训练引擎中优化的目标学生策略,\(\mu_{\theta}\) 表示推理引擎中采用的学生采样策略,\(\pi_{\mathrm{domain}_x}\) 表示从分布 \(\mathcal{D}\) 中采样的提示词 \(x\) 所在领域的专业化教师策略
    • 令 \(\mathrm{sg}[\cdot ]\) 表示停止梯度算子
    • 学生与教师之间的反向 KL 散度损失(Reverse KL Divergence Loss)定义为:
      $$\mathcal{L}_{\mathrm{reverse - KL} }(\theta) = -\mathbb{E}_{x\sim \mathcal{D},y_{t}\sim \pi_{\theta}(\cdot |x,y_{< t})}\log \frac{\pi_{\mathrm{domain}_x}(y_t|x,y_{< t})}{\pi_{\theta}(y_t|x,y_{< t})}. \tag{5}$$
    • 注:这个式子看起来不像是 KL 散度,因为采样分布和分子分布不同,实际上经过转换后,即消除负号后,本身就是 Reverse-KL 散度,详情见附录 和 博客 On-Policy Distillation, Thinking Machines Lab, 20251027
  • 其梯度为:
    $$\nabla_{\theta}\mathcal{L}_{\mathrm{reverse - KL} }(\theta) = -\mathbb{E}_{x\sim \mathcal{D},y_{t}\sim \pi_{\theta}(\cdot |x,y_{< t})}\left[\log \frac{\pi_{\mathrm{domain}_x}(y_t|x,y_{< t})}{\pi_{\theta}(y_t|x,y_{< t})}\nabla_{\theta}\log \pi_{\theta}(y_t|x,y_{< t})\right]. \tag{6}$$
  • 遵循 Zhao 等人的工作 (2025),论文应用训练-推理重要性采样,并舍弃表现出大差异的 Token,然后论文定义 MOPD 的替代损失为:
    $$\mathcal{L}_{\mathrm{MOPD} }(\theta) = -\mathbb{E}_{x\sim \mathcal{D},y\sim \mu_{\theta}(\cdot |x)}\left[\frac{1}{|y|}\sum_{t = 1}^{|y|}w_{t}\hat{A}_{\mathrm{MOPD},t}\log \pi_{\theta}(y_t|x,y_{< t})\right], \tag{7}$$
  • 其中
    $$w_{t}(\theta) = \left\{ \begin{array}{ll}\mathrm{sg}\left[\frac{\pi_{\theta}(y_{t}|x,y_{< t})}{\mu_{\theta}(y_{t}|x,y_{< t})}\right], & \epsilon_{\mathrm{low} }\leq \frac{\pi_{\theta}(y_{t}|x,y_{< t})}{\mu_{\theta}(y_{t}|x,y_{< t})}\leq \epsilon_{\mathrm{high} },\\ 0, & \mathrm{otherwise}, \end{array} \right.\quad \hat{A}_{\mathrm{MOPD},t} = \mathrm{sg}\left[\log \frac{\pi_{\mathrm{domain}_x}(y_t|x,y_{< t})}{\pi_{\theta}(y_t|x,y_{< t})}\right]. \tag{8}$$
    • 其中 \(w_{t}(\theta)\) 是训推重要性采样
    • 注意:这里的 Advantage 看似和 ThinkingMachines 提出的 OPD 实现是反的,实际上是一样的,因为 OPD 是先是先计算 Reverse-KL 散度的公式,然后再加个 负号的,这里相当于没有这个负号了
      • 理解:最终含义:最大化 Advantage,等于最小化 Reverse-KL 散度
  • 默认情况下,论文将 MOPD 的优势与其他类型的优势相结合,例如使用结果奖励模型 (Outcome Reward Models, ORMs) 计算的优势,包括 GRPO (2024)
  • 令 \(\hat{A}_{\mathrm{ORM} }\) 表示由 ORMs 计算的优势;最终优势由下式给出:
    $$\hat{A}_{\mathrm{MOPD},t} = \mathrm{sg}\left[\log \frac{\pi_{\mathrm{domain}_x}(y_t|x,y_{< t})}{\pi_{\theta}(y_t|x,y_{< t})}\right] + \alpha \hat{A}_{\mathrm{ORM} }. \tag{9}$$
  • 图 6 展示了 MOPD 相较于传统后训练方法的有效性
    • 在数学推理 (AIME 2025) 和编码 (LiveCodeBench) 基准测试上,MOPD 成功保留并整合了来自多位教师的专业化能力,在大多数领域达到或超过了最强教师的性能

Evaluations

Evaluation Setup
  • 论文在 MMLU-Pro (2024)、GPQA-Diamond (2024)、HLE Text-only (2025)、AIME 2025 (MAA, 2024)、LiveCodeBench (2024.08-2025.04) (2024)、HMMT Feb. 2025 (Balunović2025)、Arena-Hard (2024)、LongBench V2 (2025)、MRCR (2024)({2,4,8}-needles,最大 128K)、SWE-Bench Verified (2024b)、SWE-Bench Multilingual (2025)、Terminal-Bench、BrowseComp (2025)、\(\tau^2\)-Bench (2025) 上评估 MiMo-V2-Flash
Evaluation Results
  • 论文在表 9 中展示了评估结果
    • MiMo-V2-Flash 在大多数推理基准测试上达到了与 Kimi-K2-Thinking 和 DeepSeek-V3.2-Thinking 相当的性能
    • MiMo-V2-Flash 模型还保持了有竞争力的通用写作能力,使其能够在开放式任务上生成高质量响应
    • 在长上下文评估中,论文的模型超越了规模大得多的全全局注意力 LLM Kimi-K2-Thinking,突显了论文混合 SWA 架构强大的长上下文能力
  • MiMo-V2-Flash 在 SWE-Bench Verified 上达到了 \(73.4%\),超越了所有开源竞争对手,并接近 GPT-5-High 的性能
    • 在 SWE-Bench Multilingual 上,论文的模型解决了 \(71.7%\) 的问题,确立了其作为软件工程任务中最强大的开源 LLM 的地位
    • 这些结果强调了论文超大规模智能体 RL 训练的有效性
    • 在 Terminal Bench 上,该模型也取得了有竞争力的分数
  • 在搜索智能体评估中,MiMo-V2-Flash 在 BrowseComp 上得分为 45.4,应用附录 C 概述的上下文管理方法后进一步提升至 58.3
    • 对于在 \(\tau^2\)-Bench 上的通用工具使用,论文使用 DeepSeek-V3.2 作为用户代理,获得了 95.3(电信)、79.5(零售)、66.0(航空)的类别分数
  • 综上所述,这些结果验证了论文在 MOPD 后训练范式内超大规模 RL 训练的有效性,并突出了该模型在现实世界编码、推理和智能体工作流中的强大潜力

RL Infrastructures

  • 论文的 RL(和 MOPD)基础设施使用 SGLang (2024) 作为推理引擎,使用 Megatron-LM (2019) 作为训练引擎
    • 论文采用 FP8 进行训练和推理
  • 为了实现稳定、高效且灵活的 RL 训练,论文实现了三个扩展模块:
    • Rollout Routing Replay (R3) (2025)(第 4.6.1 节)、数据调度器 (Data Scheduler)(第 4.6.2 节)以及与 Toolbox 结合的 Tool Manager(第 4.6.3 节)
通过 Rollout Routing Replay (R3) 稳定训练 (Stablized Training via Rollout Routing Replay (R3))
  • MoE 模型由于数值精度问题 (2025; 2025),在 rollout 和训练过程中会出现专家路由不一致的问题
  • 论文提出 Rollout Routing Replay (R3) (2025) 来使用与 rollout 相同的路由专家进行 RL 训练,通过优化的数据类型和通信重叠使其开销可忽略不计
    • 对于多轮智能体训练,论文在 rollout 期间采用请求级别的前缀缓存
  • 此缓存存储先前轮次的 KVCache 和 MoE 路由专家,允许它们在同一请求的后续生成步骤中重复使用
  • 与当前推理引擎中常用的基数缓存 (radix cache) 不同,论文的请求级别前缀缓存避免了重新预填充或请求间输出缓存共享 ,确保了路由专家的采样一致性
Data Scheduler
  • 对于 MiMo-V2-Flash,论文扩展了 Seamless Rollout Engine (2025) 并实现了一个数据调度器 (Data Scheduler),以无缝调度细粒度的序列而非微批次,解决分布式 MoE 训练中的 GPU 闲置问题
    • 在动态采样中,当序列返回进行奖励计算时,论文参考历史通过率,并在必要时将新的提示词分配给 GPU 以实现负载均衡
  • 论文整合部分 rollout (partial rollout) (2025; Kimi Team, 2025b) 将过长的轨迹跨步骤分区,同时限制陈旧性以及每个批次中部分样本的比例
    • 通过对部分 rollout 采用陈旧性感知的截断重要性采样,论文在不牺牲模型质量的前提下显著加速了 RL 训练
  • 数据调度器支持特定数据源的配置(采样配额、调度优先级、长度限制、温度)并根据配置的比例拟合通过率来接受样本
    • 基于优先级的调度在不同时间模式的数据源之间重叠奖励计算和推理,确保了高 GPU 利用率
Toolbox and Tool Manager
  • 论文实现了 Toolbox 和 Tool Manager 来解决 RL 智能体训练中的全局资源争用和局部低效问题
    • 这些模块利用 Ray (2018) 进行高效调度
  • Toolbox 作为集中式资源分配器,对跨并发任务的工具强制执行资源配额和 QPS 限制
    • 它采用容错的 Ray Actor 池,消除了冷启动延迟
    • 与 rollout 引擎集成后,Tool Manager 与 Toolbox 协调,通过环境预预热和序列级异步奖励计算来加速训练
  • 它通过超时恢复和实时监控来保持训练稳定性
    • 通过将工具管理和 rollout 工作流解耦,Toolbox 将特定于任务的逻辑与系统范围策略隔离开来,实现了模块化可扩展性而不损害稳定性

MTP Speedup

MTP Acceptance Length

  • 论文分析了模型通过下一 Token 交叉熵 (cross-entropy) 衡量的预测不确定性与多 Token 预测 (MTP) 模块效率之间的关系
  • 如图 7 所示,论文在涵盖代码生成 (例如 WebDev, LiveCodeBench) 到复杂推理任务 (例如 AIME25, MMLU Pro) 的多样化基准测试中,评估了使用 3 层 MTP 时的平均接受长度
  • 结果显示出强烈的负相关性:熵值较低的上下文 (如 WebDev) 允许显著更长的接受序列,达到约 3.6 个 Token
    • 相反,内在不确定性较高的任务 (例如 MMLU Pro) 由于预测分歧增加,表现出较短的接受长度
    • 这种行为可以通过一个对数变换拟合曲线 \((y = 4(1 - 0.58x^{0.58}))\) 精确建模,其 \(R^2\) 为 0.995,这表明下一 Token 交叉熵是 MTP 吞吐量的主要决定因素

MTP Inference Speedup

  • 论文测量了 MiMo-V2-Flash 在使用 3 层 MTP 时,在不同批次大小 (每节点) 和接受长度下的解码加速情况,输入长度为 16K,输出长度为 1K
  • 表 10 中的结果表明,在无需额外硬件成本的情况下,MTP 始终优于不使用 MTP 的基线
    • 加速比随接受长度线性缩放
    • 在不同的批次大小下,MTP 表现出不同的加速效果,这取决于相应的计算和 I/O 需求以及内核效率
  • 在实践中,研究人员和工程师应根据硬件屋顶线模型 (hardware roofline models) 来调整批次大小和 MTP 层数,以优化速度-成本权衡

Limitation, and Future Work

  • 与最强大的闭源权重模型相比,仍存在明显差距,论文计划通过扩大模型规模和训练计算量来缩小这一差距
  • 论文目前的架构探索仍然是初步的,对设计权衡的分析有限
  • 未来的工作将侧重于设计更鲁棒、更高效、面向智能体的模型架构
  • 论文计划扩展 MOPD 中教师与学生迭代协同进化所需的计算量,以充分释放其潜力

附录 B:Reward Hacking 与 SWE-Bench**

  • 与 SWE-Bench 社区近期的发现一致,论文同样识别出了官方 SWE-Bench 镜像中的一个漏洞:未正确删除用于验证的 ground truth 提交记录
  • 在 RL 训练期间,这可能导致 Reward Hacking 和评估分数虚高,模型倾向于通过窥探未来提交记录(peeking at future commits) 来获得奖励,如图 8 所示
  • 为解决此问题,论文在评估中已更新至最新的 SWE-Bench 镜像
  • 对于论文自行构建的训练镜像,论文也遵循了官方 SWE-Bench 关于 git 黑客攻击的解决方案,并反复确认论文的模型未表现出任何奖励黑客攻击行为
  • 图 8 论文的 Qwen3-32B 实验在未经处理的镜像中进行 RL 训练时表现出的奖励黑客攻击倾向
    • 论文通过统计模型 rollout 轨迹中一组关键词(如 “git log –all”)的数量来量化模型的 git 黑客攻击尝试

附录 C:Context Management

  • 虽然 Fine-tuning 和 RL 优化的是模型参数 \(\theta\),但上下文管理(Context Management)则是策略性地优化条件上下文 \(C\)(conditioning context),即影响 \(P(y \mid C, \theta)\)
  • 论文的方法旨在解决两个互补的挑战
    • 对于上下文增强(Context Augmentation)
      • 论文采用了类 Unix 的抽象方法:工具(tools)、文档(documents)和数据库(databases)被统一视作文件(files)来暴露,使得模型能够利用其天然的代码生成能力,通过 Bash 命令来检索信息
    • 对于上下文整合(Context Consolidation)
      • 论文通过强制实施激进的内存压缩(aggressive memory compression)来对抗迷失在中间(”Lost in the Middle”) 现象
      • 当上下文使用率超过一个阈值(可低至 30%)时,系统会提示模型进行总结(summarize),将完整的历史记录存档至一个可检索的记忆文件(retrievable memory file)中,并用摘要替换活跃上下文
  • Empirically,这在 Deep Research tasks 上能带来 5-10% 的准确率提升
  • 论文的结果与 DeepSeek V3 的发现一致:
    • 丢弃工具调用历史(discarding tool-call history)优于保留策略;
    • 通过复现其激进的重置协议(aggressive reset protocol),论文在可比的基准测试中取得了 58.3 分
  • 核心见解反直觉但有力:更少但策略性管理(strategically managed)的上下文,能产生更专注和更准确的生成结果

附录:MOPD 的详细理解

  • 本报告中提出的 Multi-Teacher On-Policy Distillation(MOPD) 是一种新颖的后训练范式,旨在解决传统后训练中存在的“能力不平衡”和“学习效率低”问题
    • 核心思想是通过多教师、基于当前策略的蒸馏 ,将不同领域的专家知识高效地集成到一个统一的学生模型中

MOPD 的核心思想与流程回顾

  • MOPD 分为三个阶段:
    • 阶段1:Supervised Fine-Tuning (SFT) :在高质量指令-响应对上进行监督微调,建立基础指令遵循能力
    • 阶段2:Domain-Specialized Training :通过强化学习训练多个领域专家教师模型,如代码生成、数学推理、工具使用等
    • 阶段3:Multi-Teacher On-Policy Distillation :学生模型基于自身当前策略进行采样,同时接收来自多个教师的 token 级别监督信号,进行策略优化

MOPD 的数学建模

  • 基本符号定义:
    • \( \pi_\theta \):学生模型的策略(训练引擎中优化)
    • \( \mu_\theta \):学生模型的采样策略(推断引擎中使用)
    • \( \pi_{\text{domain}_x} \):针对输入 \( x \) 对应领域的教师策略
    • \( \mathcal{D} \):训练数据分布
    • \( \text{sg}[\cdot] \):停止梯度操作(stop-gradient)
Reverse-KL Divergence Loss
  • MOPD 使用 反向 KL 散度 作为教师对学生模型的监督信号:
    $$
    \mathcal{L}_{\text{reverse-KL} }(\theta) = -\mathbb{E}_{x \sim \mathcal{D}, y_t \sim \pi_\theta(\cdot|x, y_{ < t})} \log \frac{\pi_{\text{domain}_x}(y_t | x, y_{ < t})}{\pi_\theta(y_t | x, y_{ < t})}
    $$
    • 注意:反向 KL 散度的详细介绍见后文
  • 其梯度为:
    $$
    \nabla_\theta \mathcal{L}_{\text{reverse-KL} }(\theta) = -\mathbb{E}_{x \sim \mathcal{D}, y_t \sim \pi_\theta(\cdot|x, y_{ < t})} \left[ \log \frac{\pi_{\text{domain}_x}(y_t | x, y_{ < t})}{\pi_\theta(y_t | x, y_{ < t})} \cdot \nabla_\theta \log \pi_\theta(y_t | x, y_{ < t}) \right]
    $$
训练-推理重要性采样与截断(解决训练-推理不一致问题)
  • 为了稳定训练,引入重要性权重 \( w_t(\theta) \) 来筛选高置信度 token:
    $$
    w_t(\theta) =
    \begin{cases}
    \text{sg}\left[ \frac{\pi_\theta(y_t | x, y_{ < t})}{\mu_\theta(y_t | x, y_{ < t})} \right], & \epsilon_{\text{low} } \leq \frac{\pi_\theta(y_t | x, y_{ < t})}{\mu_\theta(y_t | x, y_{ < t})} \leq \epsilon_{\text{high} } \\
    0, & \text{otherwise}
    \end{cases}
    $$
MOPD 优势函数定义
  • MOPD 的优势函数由教师策略的对数似然比构成:
    $$
    \hat{A}_{\text{MOPD},t} = \text{sg}\left[ \log \frac{\pi_{\text{domain}_x}(y_t | x, y_{ < t})}{\pi_\theta(y_t | x, y_{ < t})} \right]
    $$
MOPD 最终损失函数
  • MOPD 的代理损失函数为:
    $$
    \mathcal{L}_{\text{MOPD} }(\theta) = -\mathbb{E}_{x \sim \mathcal{D}, y \sim \mu_\theta(\cdot|x)} \left[ \frac{1}{|y|} \sum_{t=1}^{|y|} w_t(\theta) \cdot \hat{A}_{\text{MOPD},t} \cdot \log \pi_\theta(y_t | x, y_{ < t}) \right]
    $$
结合其他奖励信号(实际应用中的 MOPD)
  • MOPD 可以与基于结果的奖励模型(如 GRPO)结合,形成混合优势函数:
    $$
    \hat{A}_{\text{final},t} = \hat{A}_{\text{MOPD},t} + \alpha \cdot \hat{A}_{\text{ORM} }
    $$
    • 其中 \( \hat{A}_{\text{ORM} } \) 是由结果奖励模型计算的优势

MOPD 的核心逻辑与优势

  • 逻辑流程总结:
    • 1)采样阶段 :学生模型使用当前策略 \( \mu_\theta \) 生成响应序列
    • 2)教师监督 :每个 token 对应领域的教师模型给出 token 级别概率分布
    • 3)优势计算 :计算教师与学生策略的对数似然比作为优势信号
    • 4)策略更新 :使用带重要性采样的策略梯度更新学生模型参数
  • 关键优势总结:
    • Token 级别监督 :教师提供密集的 token 级别反馈,而非仅序列级别奖励
    • 多教师集成 :不同领域的教师并行监督,避免能力退化(跷跷板效应)
    • On-Policy 学习 :学生基于自身当前策略采样,避免离线数据分布不匹配
    • 可扩展性 :可与 ORM、GRPO 等外部奖励模型结合,形成混合训练目标

附录:Reverse KL Divergence vs Forward KL Divergence

两种 KL 散度的定义

  • KL 散度(Kullback–Leibler Divergence)衡量两个概率分布 \( P \) 和 \( Q \) 之间的差异(非对称):
Forward KL
  • Forward KL 从 真实分布 \(P\) 中采样,惩罚 \(Q\) 给 \(P\) 的高概率事件分配低概率(即“覆盖模式(Mode-covering)”)
    $$
    D_{KL}(P | Q) = \mathbb{E}_{x \sim P} \left[ \log \frac{P(x)}{Q(x)} \right]
    $$
Reverse KL
  • Reverse KL 从 近似分布 \(Q\) 中采样,惩罚 \(Q\) 给自身的样本分配高概率,而 \(P\) 却认为这些样本概率很低(即“避免零概率陷阱”或“模式寻求”)
    $$
    D_{KL}(Q | P) = \mathbb{E}_{x \sim Q} \left[ \log \frac{Q(x)}{P(x)} \right]
    $$

两者的区别

  • 假设真实分布 \(P\) 是一个双峰分布(两个分离的高峰),而论文的模型分布 \(Q\) 是一个单峰分布(如高斯分布)
  • 最小化前向 KL 散度 \(D_{KL}(P | Q)\)
    • 优化目标是让 \(Q\) 覆盖 \(P\) 的所有高概率区域
    • \(Q\) 会尝试覆盖两个峰,变成一个宽而平的分布 ,覆盖两个模式,但无法精确匹配任何一个(均值覆盖,模糊拟合)
    • 核心是 避免遗漏(avoid missing modes)
  • 最小化反向 KL 散度 \(D_{KL}(Q | P)\)
    • 优化目标是让 \(Q\) 只放在 \(P\) 的某一个高概率区域 ,并尽量让 \(Q\) 自身的概率集中
    • \(Q\) 会选择其中一个峰 ,并紧密拟合它,完全忽略另一个峰(模式寻求(Mode-seeking),尖锐拟合)
    • 核心 避免生成低概率样本(avoid generating low-probability samples)

在策略蒸馏中的具体含义

  • 在 MOPD 中:
    • \(P\) = 教师策略 \(\pi_{\text{teacher} }\)
    • \(Q\) = 学生策略 \(\pi_{\theta}\)
如果在 MOPD 中使用前向 KL 散度(教师采样):
  • 损失函数为:
    $$
    \mathcal{L}_{\text{forward-KL} } = \mathbb{E}_{x \sim \text{data}, y_t \sim \pi_{\text{teacher} } } \left[ \log \frac{\pi_{\text{teacher} }(y_t)}{\pi_{\theta}(y_t)} \right]
    $$
    • 教师策略生成样本
    • 学生被要求匹配教师实际生成的所有行为
    • 教师可能有多种正确方式(多峰),学生被迫学习所有方式,可能导致 平均化、保守的输出
    • 注意:从另一个角度讲,教师策略来生成样本就不应该叫做 On-policy 了
在 MOPD 中使用反向 KL 散度(学生采样):
  • 损失函数为:
    $$
    \mathcal{L}_{\text{reverse-KL} } = \mathbb{E}_{x \sim \text{data}, y_t \sim \pi_{\theta} } \left[ \log \frac{\pi_{\theta}(y_t)}{\pi_{\text{teacher} }(y_t)} \right]
    $$
    • 学生自己采样 ,检查教师对这些样本的评价
    • 如果学生生成了一个教师认为很差的 token(\(\pi_{\text{teacher} }\) 很小),则受到强烈惩罚
    • 如果学生生成了一个教师认可的 token,则鼓励学生 保持自信(增加该 token 的概率)
    • 结果:学生学会避免生成教师不认可的 token ,并在教师认可的路径上强化自身策略
MOPD 选择反向 KL 的优势
  • 模式寻求(Mode-seeking)而非模式覆盖(Mode-covering) :
    • 在多个教师场景下,每个教师可能代表一种“正确风格”
    • 反向 KL 让学生 专注于学习某一个教师的风格(选择一个模式深入学习),而不是在所有教师风格间取平均
      • 问题:这个理解有时候也觉得不太对,因为如果每个教师对应一个峰值,那其实使用前向 KL 拟合多峰才是应该的?
      • 回答:同一个样本只对应一个领域教师模型,每个教师是单独教授模型的,对于任意的 Query,学习的并不是多个教师的峰,本质还是在学习(固定 Query 下)某个教师的风格
    • 这有助于形成 更确定、更一致 的生成行为
  • 与 On-Policy RL 自然结合 :
    • RL 中的策略梯度是
      $$ \mathbb{E}_{y \sim \pi_{\theta} } [\text{reward} \cdot \nabla \log \pi_{\theta}]$$
    • 反向 KL 的梯度形式与其完全一致:
      $$ \mathbb{E}_{y \sim \pi_{\theta} } [\log(\frac{\pi_{\text{teacher} }}{\pi_{\theta}}) \cdot \nabla \log \pi_{\theta}]$$
      • 注意这里的采样策略是学生模型,不是教师模型,若是教师模型,这里是不可以的
    • 这使得蒸馏信号可以直接作为 优势函数(advantage) 融入 RL 更新
  • 避免教师次优行为 :
    • 教师策略可能有不完美的行为(噪声、次优选择)
    • 即使教师偶尔生成了教师的低概率行为,反向 KL 也能让学生 避开 教师得这些低概率的行为(前向 KL 可能会让学生模仿这些次优行为)
  • 稳定训练 :
    • 反向 KL 鼓励学生分布 \(Q\) 避免探索教师分布的低概率区域,这在训练早期尤其稳定

MOPD 公式的微妙之处

  • 注意 MiMo-V2-Flash 技术报告的公式 (5) 中的符号:
    $$\mathcal{L}_{\mathrm{reverse - KL} }(\theta) = -\mathbb{E}_{x\sim \mathcal{D},y_{t}\sim \pi_{\theta}(\cdot |x,y_{< t})}\log \frac{\pi_{\mathrm{domain}_x}(y_t|x,y_{< t})}{\pi_{\theta}(y_t|x,y_{< t})}. \tag{5}$$
    • 这个式子看起来不像是 KL 散度,因为采样分布和分子分布不同,实际上经过转换(消除负号后)本身就是 Reverse-KL 散度
  • 这实际上是 最大化教师对学生似然比的对数期望 ,等价于最小化:
    $$\mathcal{L}_{\mathrm{reverse - KL} }(\theta) = \mathbb{E}_{x\sim \mathcal{D},y_{t}\sim \pi_{\theta}(\cdot |x,y_{< t})}\log \frac{\pi_{\theta}(y_t|x,y_{< t})}{\pi_{\mathrm{domain}_x}(y_t|x,y_{< t})} $$
    • 这就是 Reverse-KL 散度的表达是,OPD 的训练目标就是最小化这个 Reverse-KL 散度,最小化这个 KL 散度就是让两个分布足够接近
  • 所以优化方向是让 \(\pi_{\theta}\) 在自身样本上得到教师的认可
  • MOPD 使用反向KL,是因为它本质上是一个 “基于当前策略的强化学习” 过程:
    • 学生作为 actor 生成行为(token)
    • 教师作为 critic 给出每个 token 的“优势值”(\(\log \frac{\pi_{\text{teacher} } }{\pi_{\theta} }\))
    • 学生更新策略以增加高优势 token 的概率,减少低优势 token 的概率

NLP——mHC

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:mHC: Manifold-Constrained Hyper-Connections, DeepSeek, 20251231
      • 梁文峰挂名
    • 论文的上一篇文章:Hyper-connections, 202409 & ICLR 2025, Seed

Paper Summary

  • 整体内容总结:
    • 作者发现:虽然如超连接 (HC) 等工作所提出的那样扩展残差流的宽度和多样化连接可以带来性能提升,但这些连接的无约束性质会导致信号发散
      • 这种破坏损害了跨层的信号能量守恒,导致训练不稳定并阻碍了深度网络的可扩展性
    • 为了解决这些挑战,论文引入了是一个将残差连接空间投影到特定流形的通用框架 流形约束的超连接(Manifold-Constrained Hyper-Connections,\(m\)HC)
    • 关键词:\(m\)HC, mHC
  • 背景 & 问题:
    • 以超连接(Hyper-Connections,HC)为代表的研究,通过扩展残差流宽度(residual stream width)和多样化连接模式(diversifying connectivity patterns),扩展了过去十年建立的普遍存在的(ubiquitous)残差连接范式
    • HC 带来了显著的性能提升,但这种多样化从根本上破坏了残差连接固有的恒等映射性质,导致严重的训练不稳定性、受限的可扩展性,并额外产生了显著的内存访问开销
  • 本文解法:流形约束的超连接(\(m\)HC)
    • mHC 是一个将 HC 的残差连接空间投影到特定流形以恢复恒等映射性质的通用框架,同时结合了严格的基础设施优化以确保效率
  • 实证实验表明,\(m\)HC 对于大规模训练是有效的 ,提供了切实的性能改进和卓越的可扩展性
  • 论文预计,\(m\)HC 作为 HC 的一个灵活且实用的扩展,将有助于更深入地理解拓扑架构设计,并为基础模型的演进指明有前景的方向
  • 图 1:残差连接范式图示(Illustrations of Residual Connection Paradigms):
    • (a) 标准残差连接(Standard Residual Connection)
    • (b) 超连接(Hyper-Connections,HC)
    • (c) mHC
    • 与无约束的 HC 不同,\(m\)HC 侧重于通过将矩阵投影到约束流形上来优化残差连接空间,以确保稳定性

Introduction and Discussion

  • 自 ResNets(2016a)引入以来,深度神经网络架构经历了快速演变,如图 1(a) 所示,单层的结构可以表述如下:
    $$\mathbf{x}_{l+1}=\mathbf{x}_{l}+\mathcal{F}(\mathbf{x}_{l},\mathcal{W}_{l}) \tag{1}$$
    • \(\mathbf{x}_{l}\) 表示第 \(l\) 层的 \(C\) 维输入
    • \(\mathbf{x}_{l+1}\) 表示第 \(l\) 层的 \(C\) 维输出
    • \(\mathcal{F}\) 代表残差函数
    • 尽管残差函数 \(\mathcal{F}\) 在过去十年中已演变为包含卷积、注意力机制和前馈网络等各种操作,但残差连接的范式保持了其原始形式
    • 注:这里残差的本质是让输出等于原始输入再加一个增量
  • 随着 Transformer(2017)架构的发展,该范式目前已成为 LLMs(2020;2024b;2023)的基本设计元素
    • 这一成功主要归功于残差连接的简洁形式
    • 更重要的是,早期研究 Identity Mappings in Deep Residual Networks, Kaiming He, Microsoft Research, 20160725 揭示了残差连接的恒等映射性质在大规模训练期间保持了稳定性和效率
  • 通过跨多个层递归扩展残差连接,公式 (1) 得出:
    $$\mathbf{x}_{L}=\mathbf{x}_{l}+\sum_{i=l}^{L-1}\mathcal{F}(\mathbf{x}_{i},\mathcal{W}_{i}),\tag{2}$$
    • 其中 \(L\) 和 \(l\) 分别对应更深层和更浅层(deeper and shallower layers)
    • 术语 恒等映射(identity mapping) 指的是分量 \(\mathbf{x}_{l}\) 本身,它强调了来自浅层的信号无需任何修改直接映射到深层的性质
  • Recently,以超连接(Hyper-Connections,HC)Hyper-connections, 202409 & ICLR 2025, Seed 为代表的研究为残差连接引入了新的维度,并通过实验证明了其性能潜力
    • HC 的单层架构如图 1(b) 所示
    • 通过扩展残差流的宽度并增强连接复杂性,HC 在不改变单个单元 FLOPs 计算开销的情况下,显著增加了拓扑复杂性
    • 形式上,HC 中的单层传播定义为:
      $$\mathbf{x}_{l+1}=\mathcal{H}^{\text{res} }_{l}\mathbf{x}_{l}+\mathcal{H}^{\text {post}\top }_{l}\mathcal{F}(\mathcal{H}^{\text{pre} }_{l}\mathbf{x}_{l},\mathcal{W}_{l}) \tag{3}$$
    • \(\mathbf{x}_{l}\) 表示第 \(l\) 层的 \(n\times C\) 维输入
    • \(\mathbf{x}_{l+1}\) 表示第 \(l\) 层的 \(n\times C\) 维输出
    • 注意:
      • 与公式 (1) 中的(native 残差)表述不同,\(\mathbf{x}_{l}\) 和 \(\mathbf{x}_{l+1}\) 的特征维度从 \(C\) 扩展到 \(n\times C\)
      • 其中 \(n\) 是扩展率
    • \(\mathcal{H}^{\text{res} }_{l}\)、\(\mathcal{H}^{\text{pre} }_{l}\) 和 \(\mathcal{H}^{\text{post} }_{l}\) 是三个可学习的映射(learnable mapping)
      • \(\mathcal{H}^{\text{res} }_{l}\in\mathbb{R}^{n\times n}\) 用于混合残差流内的特征
      • \(\mathcal{H}^{\text{pre} }_{l}\in\mathbb{R}^{1\times n}\) 将来自 \(nC\) 维流的特征聚合到 \(C\) 维层输入
      • \(\mathcal{H}^{\text{post} }_{l}\in\mathbb{R}^{1\times n}\) 将层输出映射回流中
    • 注:上述公式可对应着 图 1(b) 一起看
  • 然而,随着训练规模增大,HC 引入了潜在的不稳定风险
    • 主要问题在于 HC 的无约束性质在架构跨越多层时会破坏恒等映射性质
    • 在包含多个并行流的架构中,理想的恒等映射作为一种守恒机制,确保跨流的平均信号强度在前向和反向传播期间保持不变
    • 通过公式 (3) 将 HC 递归扩展到多层,可得:
      $$\mathbf{x}_{L}=\left(\prod_{i=1}^{L-l}\mathcal{H}^{\text{res} }_{L-i}\right)\mathbf{x}_{l}+\sum_{i=l}^{L-1}\left(\prod_{j=1}^{L-1-i}\mathcal{H}^{\text{res} }_{L-j}\right)\mathcal{H}^{\text{post}\top}_{i}\mathcal{F}(\mathcal{H}^{\text{pre} }_{i}\mathbf{x}_{i},\mathcal{W}_{i}) \tag{4}$$
      • 其中 \(L\) 和 \(l\) 分别代表更深的层和更浅的层
    • 与公式 (2) 相比,HC 中的复合映射 \(\prod_{i=1}^{L-l}\mathcal{H}^{\text{res} }_{l-i}\) 未能保持特征的全局均值
      • 这种差异导致信号无限制地放大或衰减,从而在大规模训练中造成不稳定
  • 进一步考虑的是,虽然 HC 在 FLOPs 方面保持了计算效率,但原始设计中未解决扩展残差流所带来的内存访问成本的硬件效率问题
    • 这些因素共同限制了 HC 的实际可扩展性,阻碍了其在大规模训练中的应用
  • 为应对这些挑战,论文提出了流形约束的超连接(Manifold-Constrained Hyper-Connections,\(m\)HC) ,如图 1(c) 所示,这是一个将 HC 的残差连接空间投影到特定流形以恢复恒等映射性质的通用框架,同时结合了严格的基础设施优化以确保效率
    • 具体而言,\(m\)HC 利用 Sinkhorn-Knopp 算法(1967)将 \(\mathcal{H}^{\text{res} }_{l}\) 投影到 Birkhoff 多面体上
      • 此操作有效地将残差连接矩阵约束在由双随机矩阵构成的流形内
      • 注:Sinkhorn-Knopp(SK)通常指交替行 / 列缩放的迭代算法,用于将非负矩阵标定为满足指定行和 / 列和的矩阵(常见为双随机矩阵,行和与列和均为 1)
    • 由于这些矩阵的行和与列和均等于 \(1\),操作 \(\mathcal{H}^{\text{res} }_{l} \mathbb{x}_l\) 起到输入特征凸组合的作用
      • 此特性促进了条件良好的信号传播,其中特征均值得以保持,信号范数受到严格正则化,从而有效缓解信号消失或爆炸的风险
    • Furthermore,由于双随机矩阵的矩阵乘法具有封闭性,复合映射 \(\prod_{i=1}^{L-l}\mathcal{H}^{\text{res} }_{l-i}\) 保留了此守恒性质
      • 因此,\(m\)HC 有效地保持了任意深度之间恒等映射的稳定性
    • 为确保效率,论文采用核融合并利用 TileLang(2025)开发混合精度核
    • Furthermore,论文通过选择性重计算并在 DualPipe 调度(2024b)中仔细重叠通信来减少内存占用
  • 在语言模型预训练上的大量实验表明,\(m\)HC 表现出卓越的稳定性和可扩展性,同时保持了 HC 的性能优势
    • 内部大规模训练表明,\(m\)HC 支持大规模训练,并且在扩展率 \(n=4\) 时仅引入 6.7% 的额外时间开销

Related Works

  • 深度学习的架构进展主要可分为微设计(micro-design) 和宏设计(macro-design)
  • 微设计关注计算块的内部架构,指定特征如何跨空间、时间和通道维度进行处理
  • In Contrast,宏设计建立块间的拓扑结构,从而规定特征表示如何在不同层间传播、路由和合并

Micro Design

  • 在参数共享和平移不变性的驱动下,卷积最初主导了结构化信号的处理
  • 虽然后续的变体如深度可分离卷积(depthwise separable)(2017)和分组卷积(grouped convolutions)(2017)优化了效率,但 Transformer(2017)的出现确立了注意力机制和前馈网络(Feed-Forward Networks,FFNs)作为现代架构的基本构建块
    • 注意力机制促进全局信息传播,而 FFNs 增强单个特征的表示能力
  • 为了平衡性能与大语言模型的计算需求,注意力机制已发展为高效变体
    • 例如多查询注意力(Multi-Query Attention,MQA)(Shazeer,2019)、分组查询注意力(Grouped-Query Attention,GQA)(2023)和多头潜在注意力(Multi-Head Latent Attention,MLA)(2024b)
  • 同时,FFNs 已通过 MoE 被泛化为稀疏计算范式,允许大规模参数扩展而无需成比例的计算成本

Macro Design

  • 宏设计(Macro-design)控制网络的全局拓扑结构(2015)
    • 继 ResNet(2016a)之后,诸如 DenseNet(2017)和 Fractal-Net(2016)等架构旨在分别通过密集连接和多路径结构增加拓扑复杂性来提高性能
    • 深度层聚合(Deep Layer Aggregation,DLA)(2018)通过递归聚合不同深度和分辨率的特征进一步扩展了该范式
  • 最近,宏设计的重点已转向扩展残差流的宽度(2020;2023;2025;2025;2025;2024;2025;2023;2024)
    • 超连接(Hyper-Connections,HC)(2024)引入了可学习的矩阵来调制不同深度特征之间的连接强度,而残差矩阵变换器(Residual Matrix Transformer,RMT)(2025)则用外积记忆矩阵替代标准残差流以促进特征存储
    • 类似地,MUDDFormer(2025)采用多路动态密集连接来优化跨层信息流
  • 尽管具有潜力,但这些方法引入了一些问题:
    • 这些方法破坏了残差连接固有的恒等映射性质,从而引入不稳定性并阻碍可扩展性
    • 由于特征宽度扩展,这些方法还产生了显著的内存访问开销
  • 在 HC 的基础上,论文提出的 \(m\)HC 将残差连接空间限制在特定流形上以恢复恒等映射性质,同时结合了严格的基础设施优化以确保效率
    • 这种方法在保持扩展连接的拓扑优势的同时,增强了稳定性和可扩展性

Preliminary

  • 论文首先建立本工作中使用的符号
  • 在 HC 的表述中,第 \(l\) 层的输入 \(\mathbf{x}_{l}\in\mathbb{R}^{1\times C}\) 被扩展 \(n\) 倍以构建一个隐藏矩阵 \(\mathbf{x}_{l}=(\mathbf{x}_{l,0}^{\top},\ldots,\mathbf{x}_{l,n-1}^{\top})^{\top }\in\mathbb{R}^{n\times C}\),可视为 \(n\) 个流的残差
    • 此操作有效地拓宽了残差流的宽度
  • 为了控制该流的读出(read-out)、写入(write-in)和更新过程(updating processes),HC 引入了三个可学习的线性映射 :
    • \(\mathcal{H}_{l}^{\text{pre} }\)、\(\mathcal{H}_{l}^{\text{post} }\in\mathbb{R}^{1\times n}\) 和 \(\mathcal{H}_{l}^{\text{res} }\in\mathbb{R}^{n\times n}\)
  • 这些映射修改了公式 (1) 所示的标准残差连接,从而得到了公式 (3) 中的表述
  • 在 HC 的表述中,可学习的映射由两部分系数组成:
    • 依赖于输入的部分(Input-dependent One):称为动态映射(dynamic mappings)
    • 全局部分(Global One):称为静态映射(static mappings)
  • 形式上,HC 按如下方式计算系数:
    $$\begin{cases}\tilde{\mathbf{x} }_{l}=\text{RMSNorm}(\mathbf{x}_{l})\\ \mathcal{H}_{l}^{\text{pre} }=\alpha_{l}^{\text{pre} }\cdot\text{tanh}(\theta_{ l}^{\text{pre} }\tilde{\mathbf{x} }_{l}^{\top})+\mathbf{b}_{l}^{\text{pre} }\\ \mathcal{H}_{l}^{\text{post} }=\alpha_{l}^{\text{post} }\cdot\text{tanh}(\theta_{l}^{\text{post} }\tilde{\mathbf{x} }_{l}^{\top})+\mathbf{b}_{l}^{\text{post} }\\ \mathcal{H}_{l}^{\text{res} }=\alpha_{l}^{\text{res} }\cdot\text{tanh}(\theta_{ l}^{\text{res} }\tilde{\mathbf{x} }_{l}^{\top})+\mathbf{b}_{l}^{\text{res} },\end{cases} \tag{5}$$
    • 注意:上述只是定义系数,真实的数据流动过程见 图 1
    • 其中 RMSNorm(\(\cdot\))(2019)应用于最后一个维度
      • 理解:相当于 \(n\))个流是相对独立做 RMSNorm 的
    • 标量 \(\alpha_{l}^{\text{pre} }\)、\(\alpha_{l}^{\text{post} }\) 和 \(\alpha_{l}^{\text{res} }\in\mathbb{R}\) 是初始化为小值的可学习门控因子
    • 动态映射 通过由 \(\theta^{\text{pre} }_{l}\)、\(\theta^{\text{post} }_{l}\in\mathbb{R}^{1\times C}\) 和 \(\theta^{\text{res} }_{l}\in\mathbb{R}^{n\times C}\) 参数化的线性投影得出
    • 静态映射 由可学习的偏置 \(\mathbf{b}^{\text{pre} }_{l}\)、\(\mathbf{b}^{\text{post} }_{l}\in\mathbb{R}^{1\times n}\) 和 \(\mathbf{b}^{\text{res} }_{l}\in\mathbb{R}^{n\times n}\) 表示
  • It is worth noting that 引入这些映射(即 \(\mathcal{H}^{\text{pre} }_{l}\)、\(\mathcal{H}^{\text{post} }_{l}\) 和 \(\mathcal{H}^{\text{res} }_{l}\))产生的计算开销可以忽略不计
    • 因为典型的扩展率 \(n\)(例如 4)远小于输入维度 \(C\)
    • 理解:在每一层,每个扩展(共 \(n\) 个扩展)每个系数只需要对应的一个即可
  • 通过这种设计,HC 有效地将残差流的信息容量与层的输入维度(与模型的计算复杂度 FLOPs 密切相关)解耦
    • 问题:这里是说,即使输入维度比较小,残差流的信息容量也可以很大?
  • Consequently,HC 通过调整残差流宽度提供了一种新的扩展途径(new avenue for scaling) ,补充了预训练扩展法则(2022)中讨论的模型 FLOPs 和训练数据大小的传统扩展维度
    • 算力增加:HC 需要三个映射来处理残差流和层输入之间的维度不匹配,需要更多算力
    • 性能提升:表 1 所示的初步实验表明,残差映射 \(\mathcal{H}^{\text{res} }_{l}\) 带来了最显著的性能增益
      • 这一发现强调了残差流内有效信息交换的至关重要性
    • 注:这里的残差流宽度扩展实际上也可以看做另一种维度的 Scaling Law
  • 表 1:Ablation Study of HC Components
    • 当特定映射(\(\mathcal{H}^{\text{pre} }_{l}\)、\(\mathcal{H}^{\text{post} }_{l}\) 或 \(\mathcal{H}^{\text{res} }_{l}\))被禁用时,论文采用固定映射以保持维度一致性:
      • \(\mathcal{H}^{\text{pre} }_{l}\) 使用均匀权重 \(1/n\)
      • \(\mathcal{H}^{\text{post} }_{l}\) 使用全一均匀权重
      • \(\mathcal{H}^{\text{res} }_{l}\) 使用单位矩阵

数值不稳定性,Numerical Instability

  • 虽然残差映射 \(\mathcal{H}^{\text{res} }_{l}\) 对性能至关重要,但其顺序应用(sequential application)对数值稳定性构成重大风险
    • 如公式 (4) 详述,当 HC 跨越多层扩展时,从层 \(l\) 到 \(L\) 的有效信号传播由复合映射 \(\prod_{i=1}^{L-l}\mathcal{H}^{\text{res} }_{L-i}\) 控制
    • 由于可学习的映射 \(\mathcal{H}^{\text{res} }_{l}\) 是无约束的,该复合映射不可避免地偏离恒等映射
    • Consequently,信号幅度在前向传递和反向传播期间都容易爆炸或消失
      • 这种现象破坏了残差学习的基本前提(依赖于无阻碍的信号流),从而在更深或更大规模的模型中使训练过程不稳定
  • 实证证据也支持这一分析:论文在大规模实验中观察到不稳定的损失行为,如图 2 所示
    • 以 \(m\)HC 为基线,HC 在约 12k 步时表现出意外的损失激增 ,这与 梯度范数的不稳定性 高度相关
    • 图 2:超连接(Hyper-Connections,HC)的训练不稳定性(Training Instability)
      • 图 (a) :HC 相对于 \(m\)HC 的绝对损失差距
      • 图 (b) :梯度范数的比较
      • 注:所有结果基于 27B 模型
  • (补充实证证据)Furthermore,对 \(\mathcal{H}^{\text{res} }_{l}\) 的分析验证了这种不稳定性的机制
    • 为了量化复合映射 \(\prod_{i=1}^{L-l}\mathcal{H}^{\text{res} }_{L-i}\) 沿残差流放大信号的程度,论文利用两个指标
    • 第一个基于复合映射行和的最大绝对值,捕捉前向传递中最坏情况的扩张
    • 第二个基于列和的最大绝对值,对应于反向传递
    • 论文将这些指标称为复合映射的最大增益幅度(Amax Gain Magnitude)
      • 如图 3 (b) 所示,最大增益幅度产生了极端值,峰值达到 3000,与 1 存在巨大差异(注:恒等映射的权重系数恒为 1),这证实了残差流爆炸的存在
    • 图 3:超连接(Hyper-Connections,HC)的传播不稳定性(Propagation Instability)
      • 图 3(a) 展示了 27B 模型中的单层映射(Single-Layer Mapping) \(\mathcal{H}^{\text{res} }_{l}\) 的传播动态
      • 图 3(b) 展示了 27B 模型中的复合映射(Composite-Layer Mapping) \(\prod_{l=1}^{L-l}\mathcal{H}^{\text{res} }_{l-l}\) 的传播动态
      • Layer Index \(l\)(x 轴)将每个标准 Transformer 块展开为两个独立的层(Attention 和 FFN)
      • 最大增益幅度(y 轴)计算为最大绝对行和(用于前向信号)和列和(用于反向梯度),在选定序列的所有 token 上取平均

System Overhead(系统开销)

  • 由于额外映射的线性性质,HC 的计算复杂度会提升,目前为止还算可控,但系统级开销仍然构成了不可忽视的挑战
    • 具体来说,内存访问(I/O)成本通常是现代模型架构中的主要瓶颈之一,被广泛称为”内存墙”(”memory wall”)(2022)
    • 这一瓶颈在架构设计中经常被忽视,但它却决定性地影响运行时效率
  • 着眼于广泛采用的预归一化 Transformer(2017)架构,论文分析了 HC 固有的 I/O 模式
  • 表 2 总结了由 \(n\) 流残差设计在单个残差层中引入的每个 token 的内存访问开销
    • 分析表明,HC 使内存访问成本增加了约与 \(n\) 成比例的倍数
    • 这种过度的 I/O 需求显著降低了训练吞吐量,除非通过融合核来缓解
  • Besides,由于 \(\mathcal{H}^{\text{pre} }_{l}\)、\(\mathcal{H}^{\text{post} }_{l}\) 和 \(\mathcal{H}^{\text{res} }_{l}\) 涉及可学习参数,它们的中间激活值需要用于反向传播
    • 这导致 GPU 内存占用量大幅增加,通常需要梯度检查点(gradient checkpointing)来维持可行的内存使用量
  • Furthermore,HC 在管道并行(pipeline parallelism)(2024)中需要 \(n\) 倍的通信成本,导致更大的气泡(bubbles)并降低训练吞吐量
  • 表 2:每个 token 的内存访问成本比较(Comparison of Memory Access Costs Per Token)
    • 此分析考虑了前向传递中残差流维护引入的开销,不包括层函数 \(\mathcal{F}\) 的内部 I/O

Method

Manifold-Constrained Hyper-Connections(暂译为流形约束超连接)

  • 受到恒等映射原理 (2016b) 的启发,\(m\)HC 的核心前提是 将残差映射 \(\mathcal{H}^{\text{res} }_{l}\) 约束到一个特定的流形上
  • 虽然原始的恒等映射通过强制令 \(\mathcal{H}^{\text{res} }_{l}=\mathbf{I}\) 来确保稳定性,但这从根本上阻止了残差流内部的信息交换
    • 而信息交换对于最大化多流架构(multi-stream architectures)的潜力至关重要
  • Therefore,论文提出将残差映射投影到一个既能保持跨层信号传播稳定性、又能促进残差流之间相互作用的流形上,以保持模型的表达能力
  • 为此(To this end),论文将 \(\mathcal{H}^{\text{res} }_{l}\) 限制为一个双随机矩阵(doubly stochastic matrix)
    • 注:双随机矩阵是指每行每列之和为1 ,且单个元素值大于0的矩阵
    • 论文中也提到:双随机矩阵是指元素非负,且行和与列和均为 1 的矩阵
  • Formally,令 \(\mathcal{M}^{\text{res} }\) 表示双随机矩阵的流形(也称为 Birkhoff 多胞形)
    • 多胞形是欧氏空间 \(\mathbb{R}^n\)中由有限个闭半空间的交集构成的有界凸集
    • Birkhoff 多胞形(\(B_n\))是 \(\mathbb{R}^{n\times n}\) 中全体 \(n\times n\) 双随机矩阵的凸多胞形,也等价于全体 \(n\times n\) 置换矩阵的凸包
  • 论文将 \(\mathcal{H}^{\text{res} }_{l}\) 约束到 \(\mathcal{P}_{\mathcal{M}^{\text{res} } }(\mathcal{H}^{\text{res} }_{l})\),其定义为:
    $$\mathcal{P}_{\mathcal{M}^{\text{res} } }(\mathcal{H}^{\text{res} }_{l}):=\left\{\mathcal{H}^{\text{res} }_{l}\in\mathbb{R}^{n\times n}\mid\mathcal{H}^{\text{res} }_{l}\mathbf{1}_{n}=\mathbf{1}_{n},\mathbf{1}^{\top}_{n}\mathcal{H}^{\text{res} }_{l}=\mathbf{1}^{\top}_{n},\mathcal{H}^{\text{res} }_{l}\geqslant 0\right\} \tag{6}$$
    • 其中 \(\mathbf{1}_{n}\) 表示所有元素为 1 的 n 维向量
    • 理解:
      • \(\mathbf{1}_{n}\) 是列向量
      • \(\mathcal{H}^{\text{res} }_{l}\mathbf{1}_{n}=\mathbf{1}_{n}\) 表示矩阵 \(\mathcal{H}^{\text{res} }_{l}\) 的行和为 1
      • \(\mathbf{1}^{\top}_{n}\mathcal{H}^{\text{res} }_{l}=\mathbf{1}^{\top}_{n}\) 表示矩阵 \(\mathcal{H}^{\text{res} }_{l}\) 的列和为 1
      • \(\mathcal{H}^{\text{res} }_{l} \ge 0\) 表示矩阵 \(\mathcal{H}^{\text{res} }_{l}\) 的元素非负
      • 上述定义刚好是双随机矩阵的定义
  • It is worth noting that 当 \(n=1\) 时 ,双随机条件退化为标量 1
    • 此时恢复了原始的恒等映射
  • 选择双随机性赋予了多个严格的理论性质,这些性质有利于大规模模型训练(The choice of double stochasticity confers several rigorous theoretical properties beneficial for large-scale model training):
    • 1)范数保持 (Norm Preservation): 双随机矩阵的谱范数以 1 为界(即 \(|\mathcal{H}^{\text{res} }_{l}|_{2} \leq 1\))
      • 这意味着可学习的映射是非扩张的,能有效缓解梯度爆炸问题
      • 注:谱范数是矩阵范数,即:
        $$
        |A|_2 = \sqrt{\lambda_{\max}(A^* A)}
        $$
        • 其中 \( \lambda_{\max} \) 表示最大特征值,\( A^* \) 是 \( A \) 的共轭转置
    • 2)组合封闭性 (Compositional Closure): 双随机矩阵集合在矩阵乘法下是封闭的
      • 这确保了跨越多层的复合残差映射 \(\prod_{i=1}^{L-1}\mathcal{H}^{\text{res} }_{L-i}\) 保持双随机性 ,从而在整个模型深度范围内保持稳定性
      • 注:双随机矩阵的性质:两个双随机矩阵(Doubly Stochastic Matrix)的乘积仍然是双随机矩阵,推广一下,任意个双随机矩阵的乘积都是双随机矩阵
    • 3)通过 Birkhoff 多胞形的几何解释 (Geometric Interpretation via the Birkhoff Polytope): 集合 \(\mathcal{M}^{\text{res} }\) 构成 Birkhoff 多胞形,它是置换矩阵集合的凸包
      • 这提供了一个清晰的几何解释:残差映射充当了置换的凸组合
      • 从数学上讲,重复应用此类矩阵倾向于单调地增加信息在流之间的混合,有效地充当鲁棒的特征融合机制
  • 此外,论文对输入映射 \(\mathcal{H}^{\text{pre} }_{l}\) 和输出映射 \(\mathcal{H}^{\text{post} }_{l}\) 施加非负约束
    • 这种约束可以防止由正负系数组合引起的信号抵消,这也可以被视为一种特殊的流形投影

Parameterization and Manifold Projection:参数化与流形投影

  • 在本节中,论文将详细说明 \(m\)HC 中 \(\mathcal{H}^{\text{pre} }_{l},\mathcal{H}^{\text{post} }_{l}\) 和 \(\mathcal{H}^{\text{res} }_{l}\) 的计算过程
  • 给定第 \(l\) 层的输入隐藏矩阵 \(\mathbf{x}_{l}\in\mathbb{R}^{n\times C}\),论文首先将其展平为向量 \(\vec{\mathbf{x} }_{l}=\text{vec}(\mathbf{x}_{l})\in\mathbb{R}^{1\times nC}\) 以保留完整的上下文信息
  • 然后,论文遵循原始 HC 的公式来获得动态映射和静态映射:
    $$\begin{cases}\vec{\mathbf{x} }^{\prime}_{l}=\text{RMSNorm}(\vec{\mathbf{x} }_{ l})\\ \tilde{\mathcal{H} }^{\text{pre} }_{l}=\alpha^{\text{pre} }_{l}\cdot(\vec{\mathbf{x} }^{\prime}_{l}\varphi^{\text{pre} }_{l})+\mathbf{b}^{\text{pre} }_{l}\\ \tilde{\mathcal{H} }^{\text{post} }_{l}=\alpha^{\text{post} }_{l}\cdot(\vec{\mathbf{x} }^{\prime}_{l}\varphi^{\text{post} }_{l})+\mathbf{b}^{\text{post} }_{l}\\ \tilde{\mathcal{H} }^{\text{res} }_{l}=\alpha^{\text{res} }_{l}\cdot\text{mat}(\vec{\mathbf{x} }^{\prime}_{l}\varphi^{\text{res} }_{l})+\mathbf{b}^{\text{res} }_{l},\end{cases} \tag{7}$$
    • 其中 \(\varphi^{\text{pre} }_{l},\varphi^{\text{post} }_{l}\in\mathbb{R}^{nC\times n}\) 和 \(\varphi^{\text{res} }_{l}\in\mathbb{R}^{nC\times n^{2} }\) 是用于动态映射的线性投影,而 \(\text{mat}(\cdot)\) 是将 \(\mathbb{R}^{1\times n^{2} }\) 重塑为 \(\mathbb{R}^{n\times n}\) 的函数
  • 然后,通过以下方式获得最终的约束映射:
    $$\begin{cases}\mathcal{H}^{\text{pre} }_{l}=\sigma(\tilde{\mathcal{H}}^{\text{pre} }_{l})\\ \mathcal{H}^{\text{post} }_{l}=2\sigma(\tilde{\mathcal{H} }^{\text{post} }_{l})\\ \mathcal{H}^{\text{res} }_{l}=\text{Sinkhorn-Knopp}(\tilde{\mathcal{H} }^{\text{res} }_{l}),\end{cases} \tag{8}$$
    • 其中 \(\sigma(\cdot)\) 表示 Sigmoid 函数
    • \(\text{Sinkhorn-Knopp}(\cdot)\) 算子计算过程为:
      • TLDR:首先通过指数算子使所有元素为正 ,然后执行迭代归一化过程 ,交替重新缩放行和列使其和为 1
      • 具体来说,给定一个正矩阵 \(\mathbf{M}^{(0)}=\exp(\tilde{\mathcal{H} }^{\text{res} }_{l})\) 作为起始点,归一化迭代进行如下:
        $$\mathbf{M}^{(t)}=\mathcal{T}_{r}\left(\mathcal{T}_{c}(\mathbf{M}^{(t-1)})\right) \tag{9}$$
        • 其中:
          • \(\mathcal{T}_{r}\) 表示行归一化
          • \(\mathcal{T}_{c}\) 表示列归一化
        • 当 \(t_{\max}\to\infty\) 时,此过程收敛到一个双随机矩阵 \(\mathcal{H}^{\text{res} }_{l}=\mathbf{M}^{(t_{\max})}\)
        • 在论文的实验中,论文选择 \(t_{\max}=20\) 作为实际值,所以得到的并不是严格的双随机矩阵

Efficient Infrastructure Design:高效基础设施设计

  • 在本节中,论文将详细介绍为 \(m\)HC 定制的基础设施设计
  • 通过严格的优化,论文将 \(m\)HC(\(n=4\))实现到大规模模型中,仅产生了 6.7% 的边际训练开销
Kernel Fusion:核融合
  • 论文观察到,在 \(m\)HC 中,RMSNorm 在高维隐藏状态 \(\tilde{\mathbf{x} }_{l}\in\mathbb{R}^{1\times nC}\) 上操作时会带来显著的延迟
  • 论文重新排序了除以范数的操作,使其在矩阵乘法之后进行
    • 这种优化在保持数学等价性的同时提高了效率
  • Furthermore
    • 论文采用混合精度策略 ,在不影响速度的情况下最大化数值精度
    • 并将具有共享内存访问的多个操作融合到统一的计算核中 ,以减少内存带宽瓶颈
  • 基于等式 (10) 到 (13) 中详述的输入和参数,论文实现了三个专门的 \(m\)HC 核来计算 \(\mathcal{H}^{\text{pre} }_{l}\)、\(\mathcal{H}^{\text{post} }_{l}\) 和 \(\mathcal{H}^{\text{res} }_{l}\)
  • 在这些核中,偏置和线性投影被整合到 \(\mathbf{b}_{l}\) 和 \(\varphi_{l}\) 中,RMSNorm 权重也被吸收到 \(\varphi_{l}\) 中
    • 等式 (14) 到 (15):论文开发了一个统一的核,它融合了对 \(\tilde{\mathbf{x} }_{l}\) 的两次扫描,利用矩阵乘法单元最大化内存带宽利用率
      • 反向传播——包括两个矩阵乘法——同样被整合到单个核中,消除了对 \(\tilde{\mathbf{x} }_{l}\) 的冗余重新加载
      • 两个核都具有微调的流水线(加载、转换、计算、存储),以高效处理混合精度计算
    • 等式 (16) 到 (18):这些对小系数的轻量级操作被适时地融合到单个核中,显著减少了核启动开销
    • 等式 (19):论文在单个核内实现了 Sinkhorn-Knopp 迭代。对于反向传播,论文推导了一个定制的反向核,该核在芯片上重新计算中间结果并遍历整个迭代
      $$
      \begin{align}
      \varphi_{l}&:\text{tfloat32} \quad [nC,n^{2}+2n]\\
      \vec{\mathbf{x} }_{l}&:\text{bfloat16} \quad [1,nC]\\
      \alpha^{\text{pre} }_{l},\alpha^{\text{post} }_{l},\alpha^{\text{ res} }_{l}&:\text{float32} \quad \text{Scalars}\\
      \mathbf{b}_{l}&:\text{float32} \quad [1,n^{2}+2n]\\
      \left[\tilde{\tilde{\mathcal{H} }}^{\text{pre} }_{l},\tilde{\tilde{\mathcal{H} } }^{\text{post } }_{l},\tilde{\tilde{\mathcal{H} }}^{\text{res} }_{l}\right]&:\text{float32} = \vec{\mathbf{x} }_{l}\varphi_{l}\\
      r&:\text{float32} = |\vec{\mathbf{x} }_{l}|_{2}/\sqrt{nC}\\
      \left[\tilde{\mathcal{H} }^{\text{pre} }_{l},\tilde{\mathcal{H} }^{\text{post } }_{l},\tilde{\mathcal{H} }^{\text{res} }_{l}\right]&:\text{float32} = 1/r\left[\alpha^{\text{pre} }_{l}\tilde{\tilde{\mathcal{H} }}^{\text{pre } }_{l },\alpha^{\text{post} }_{l}\tilde{\tilde{\mathcal{H} }}^{\text{post} }_{l }, \alpha^{\text{res} }_{l}\tilde{\tilde{\mathcal{H} } }^{\text{res} }_{l }\right]+\mathbf{b}_ {l}\\
      \mathcal{H}^{\text{pre} }_{l}&:\text{float32} = \sigma\left(\tilde{\mathcal{H} }^{\text{pre} }_{l}\right)\\
      \mathcal{H}^{\text{post} }_{l}&:\text{float32} = 2\sigma\left(\tilde{\mathcal{H} }^{\text{post} }_{l}\right)\\
      \mathcal{H}^{\text{res} }_{l}&:\text{float32} = \text{Sinkhorn-Knopp}\left(\tilde{\mathcal{H} }^{\text{res} }_{l}\right)
      \end{align}
      \tag{10-19}
      $$
  • 使用从上述核导出的系数,论文引入了两个额外的核来应用这些映射:
    • 一个用于 \(\mathcal{F}_{\text{pre} }:=\mathcal{H}^{\text{pre} }_{l}\mathbf{x}_{l}\)
    • 另一个用于 \(\mathcal{F}_{\text{post,res} }:=\mathcal{H}^{\text{res} }_{l}\mathbf{x}_{ l}+\mathcal{H}^{\text{posttop} }_{l}\mathcal{F}\left(\cdot,\cdot\right)\)
  • 通过将 \(\mathcal{H}^{\text{post} }_{l}\) 和 \(\mathcal{H}^{\text{res} }_{l}\) 的应用与残差合并相融合,论文使该核读取的元素数量从 \((3n+1)C\) 减少到 \((n+1)C\),写入的元素数量从 \(3nC\) 减少到 \(nC\)
  • 论文高效地实现了大部分核(不包括等式 (14) 到 (15)),使用 TileLang (2025)
  • 该框架简化了具有复杂计算过程的核的实现,并使论文能够以最小的工程工作量充分利用内存带宽
Recomputing:重计算
  • \(n\) 流残差设计在训练期间引入了大量的内存开销
    • 为了缓解这个问题,论文在前向传播后丢弃 \(m\)HC 核的中间激活,并通过重新执行 \(m\)HC 核(不含繁重的层函数 \(\mathcal{F}\))在反向传播中动态地重新计算它们
  • 因此,对于连续的 \(L_{r}\) 层块,论文只需要存储到第一层的输入 \(\mathbf{x}_{l_{0} }\)
  • 排除轻量级系数,同时考虑 \(\mathcal{F}\) 内的预归一化,表 3 总结了为反向传播保留的中间激活
  • 由于 \(m\)HC 核的重计算是针对连续的 \(L_{r}\) 层块执行的,给定总共 \(L\) 层,论文必须为反向传播持久存储所有 \(\lceil\frac{L}{L_{r} }\rceil\) 个块的第一层输入 \(\mathbf{x}_{l_{0} }\)
  • 除了这个常驻内存,重计算过程为活动块引入了 \((n+2)C\times L_{r}\) 个元素的瞬态内存开销,这决定了反向传播期间的峰值内存使用量
  • 因此,论文通过最小化对应于 \(L_{r}\) 的总内存占用来确定最佳块大小 \(L^{*}_{r}\):
    $$L^{*}_{r}=\arg\min_{L_{r} }\left[nC\times\left[\frac{L}{L_{r} }\right]+(n+2)C\times L_{r}\right]\approx\sqrt{\frac{nL}{n+2} } \tag{20}$$
  • 此外,大规模训练中的流水线并行施加了一个约束:重计算块不得跨越流水线阶段边界
  • 观察到理论最优值 \(L^{*}_{r}\) 通常与每个流水线阶段的层数一致,论文选择将重计算边界与流水线阶段同步
Overlapping Communication in DualPipe(在 DualPipe 中重叠通信)
  • 在大规模训练中,流水线并行是减轻参数和梯度内存占用的标准实践
  • 具体来说,论文采用 DualPipe 调度 (2024b),它有效地重叠了扩展互连通信流量,例如专家并行和流水线并行中的流量
  • 然而,与单流设计相比,\(m\)HC 中提出的 \(n\) 流残差在流水线阶段之间产生了大量的通信延迟
  • 此外,在阶段边界处,为所有 \(L_{r}\) 层重新计算 \(m\)HC 核引入了不可忽略的计算开销
  • 为了解决这些瓶颈,论文扩展了 DualPipe 调度(见图 4),以促进在流水线阶段边界更好地重叠通信和计算
    • 图 4: \(m\)HC 的通信-计算重叠 论文扩展了 DualPipe 调度以处理 \(m\)HC 引入的开销
      • 每个块的长度仅为示意,不代表实际持续时间
      • (F)、(B)、(W) 分别指前向传播、反向传播、权重梯度计算
      • \(\mathcal{F}^{\Lambda}\) 和 \(\mathcal{F}^{M}\) 分别代表对应 Attention 和 MLP 的核
  • 值得注意的是,为了防止阻塞通信流,论文在专用高优先级计算流上执行 MLP(即 FFN)层的 \(\mathcal{F}_{\text{post,res} }\) 核
  • 论文进一步避免在注意力层中对长时间运行的操作使用持久化核,从而防止长时间的停顿
  • 这种设计使得可以抢占重叠的注意力计算,允许灵活的调度,同时保持计算设备处理单元的高利用率
  • 此外,重计算过程与流水线通信依赖解耦,因为每个阶段的初始激活 \(\mathbf{x}_{l_{0} }\) 已本地缓存
  • 表 3:存储和重计算的中间激活
    • 论文列出了为反向传播保留的每 Token 激活,以及在连续的 \(L_{r}\) 层中重计算的瞬态激活
    • 层 \(l_{0}\) 表示 \(L_{r}\) 层中的第一层,层 \(l\) 在 \([l_{0},l_{0}+L_{r}-1]\) 区间内

Experiments

Experimental Setup

  • 论文通过语言模型预训练来验证所提出的方法,对基线、HC 和论文提出的 \(m\)HC 进行了比较分析
    • 利用受 DeepSeek-V3 (2024b) 启发的 MoE 架构,论文训练了四种不同的模型变体以覆盖不同的评估机制
  • Specifically,HC 和 \(m\)HC 的扩展率 \(n\) 都设置为 4
  • 论文主要关注一个 27B 模型
    • 其训练数据集大小与其参数成正比,这作为论文系统级主要结果的对象
  • 在此基础上(Expanding on this),论文通过加入按比例数据训练的较小 3B 和 9B 模型来分析计算扩展行为
    • 这使论文能够观察不同计算量下的性能趋势
  • Additionally,为了专门研究 Token 扩展行为
    • 论文在一个固定的 1T Token 语料库上训练了一个单独的 3B 模型
  • 详细的模型配置和训练超参数在附录 A.1 中提供

Main Results

  • 论文首先检查 27B 模型的训练稳定性和收敛性
  • 如图 5 (a) 所示,\(m\)HC 有效地缓解了 HC 中观察到的训练不稳定性,与基线相比最终损失减少了 0.021
  • 图 5 (b) 中的梯度范数分析进一步证实了这种改进的稳定性,其中 \(m\)HC 表现出明显优于 HC 的行为,保持了与基线相当的稳定轮廓
  • 图 5:流形约束超连接 (\(m\)HC) 的训练稳定性
    • (a) \(m\)HC 和 HC 相对于基线的绝对训练损失差距
    • (b) 三种方法的梯度范数
    • 所有实验均使用 27B 模型
    • 结果表明,\(m\)HC 在损失和梯度范数方面都表现出改进的稳定性
  • 表 4 展示了跨多样化基准测试 (2020;2021;2020;2021;2017;2019) 的下游性能
    • 比较了 Baseline、HC 和 \(m\)HC 在 8 个多样化下游基准测试上的零样本和少样本性能,\(m\)HC 带来了全面的改进,始终优于 Baseline,并在大多数任务上超过了 HC
    • 值得注意的是,与 HC 相比,\(m\)HC 进一步增强了模型的推理能力,在 BBH (2022) 和 DROP (2019) 上分别带来了 2.1% 和 2.3% 的性能增益
    • 在大多数基准上超越了 HC,证明了其在大规模预训练中的有效性

Scaling Experiments

  • 为了评估论文方法的可扩展性,论文报告了 \(m\)HC 相对于基线在不同规模上的相对损失改进
  • 图 6: \(m\)HC 相比 Baseline 的扩展特性
    • (a) 计算扩展曲线 实线描绘了不同计算预算下的性能差距
      • 每个点代表模型大小和数据集大小的特定计算最优配置,从 3B 和 9B 扩展到 27B 参数
      • 轨迹表明,即使在更高的计算预算下,性能优势也能稳健地保持,仅表现出轻微的衰减
    • (b) Token 扩展曲线 3B 模型在训练期间的表现轨迹(展示了 3B 模型的 Token 扩展曲线)
      • 每个点代表模型在不同训练 Token 数下的性能
      • 详细的架构和训练配置见附录 A.1
  • 总的来说,这些发现验证了 \(m\)HC 在大规模场景中的有效性
    • 论文的内部大规模训练实验进一步证实了这一结论

Stability Analysis

  • 与图 3 类似,图 7 展示了 \(m\)HC 的传播稳定性
  • Ideally,单层映射满足双随机约束,这意味着前向信号增益和后向梯度增益都应等于 1
    • However,实际中使用 Sinkhorn-Knopp 算法的实现必须限制迭代次数以实现计算效率
    • 故而论文使用 20 次迭代来获得近似解
  • Consequently,图 7 展示了如下结果:
    • 如图 7(a) 所示,后向梯度增益略微偏离 1
    • 在图 7(b) 所示的复合情况下,偏差增加但仍保持有界,最大值约为 1.6
    • Notably,与 HC 中近 3000 的最大增益幅度相比,\(m\)HC 将其降低了三个数量级
      • 这些结果表明,与 HC 相比,\(m\)HC 显著增强了传播稳定性,确保了稳定的前向信号和后向梯度流
    • 图 7: 流形约束超连接 (\(m\)HC) 的传播稳定性 本图展示了
      • (a) 单层映射 \(\mathcal{P}_{\mathcal{M}^{\text{res} } }(\mathcal{H}_{l}^{\text{res} })\)
      • (b) 复合映射 \(\prod_{i=1}^{L-l}\mathcal{P}_{\mathcal{M}^{\text{res} } }(\mathcal{H}_{l-i}^{\text {res} })\) 在 27B 模型内的传播动态
      • 结果表明,与 HC 相比,\(m\)HC 显著增强了传播稳定性
  • Additionally,图 8 展示了代表性的映射
    • 论文观察到,对于 HC,当最大增益很大时,其他值往往也很大,这表明所有传播路径普遍存在不稳定性
    • In Contrast,\(m\)HC 始终产生稳定的结果
    • 图 8: 可学习映射的可视化 本图展示了 HC(第一行)和 \(m\)HC(第二行)的代表性单层和复合映射
      • 每个矩阵通过平均选定序列内所有 Token 计算得出
      • 标注在 y 轴和 x 轴上的标签分别表示前向信号增益(行和)和后向梯度增益(列和)

Outlook

  • 作为 HC 范式的通用扩展,\(m\)HC 为未来的研究开辟了几条有前景的途径
    • 尽管这项工作利用双随机矩阵来确保稳定性,但该框架允许探索针对特定学习目标定制的多样化流形约束
    • 论文预计,对不同几何约束的进一步研究可能会产生新的方法,以更好地优化可塑性和稳定性之间的权衡
    • 此外,作者希望 \(m\)HC 能重新激发社区对宏观架构设计的兴趣
    • 通过深化对拓扑结构如何影响优化和表示学习的理解,\(m\)HC 将有助于解决当前的局限性,并可能为下一代基础架构的演进照亮新的途径

附录 A.1:详细模型规格和超参数

  • 表 5: 详细模型规格和超参数
    • 本表展示了基于 DeepSeek-V3 (2024b) 架构的 3B、9B 和 27B 模型的架构配置
    • 它概述了 mHC 和 HC 的特定超参数,包括残差流扩展和 Sinkhorn-Knopp 设置,以及实验中使用的优化和训练方案

附录:关于 HC 的一些细节

  • 原始论文:Hyper-connections, 202409 & ICLR 2025, Seed

  • Figure 2:Expansion rate \(n=2\) 的 HC 示意图

  • Figure 8: Transformer HC 形式

  • Algorithm 2:Pseudocode of hyper-connections in a PyTorch-like style.

    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
    # h: hyper hidden matrix (BxLxNxD)
    class HyperConnection(nn.Module):
    def __init__(self, dim, rate, layer_id, dynamic, device=None):
    super(HyperConnection, self).__init__()
    self.rate = rate
    self.layer_id = layer_id
    self.dynamic = dynamic
    self.static_beta = nn.Parameter(torch.ones((rate,), device=device))
    init_alpha0 = torch.zeros((rate, 1), device=device)
    init_alpha0[layer_id % rate, 0] = 1.
    self.static_alpha = nn.Parameter(torch.cat([init_alpha0, torch.eye((rate), device=device)], dim=1))
    if self.dynamic:
    self.dynamic_alpha_fn = nn.Parameter(torch.zeros((dim, rate+1), device=device))
    self.dynamic_alpha_scale = nn.Parameter(torch.ones(1, device=device) * 0.01)
    self.dynamic_beta_fn = nn.Parameter(torch.zeros((dim, ), device=device))
    self.dynamic_beta_scale = nn.Parameter(torch.ones(1, device=device) * 0.01)
    self.layer_norm = LayerNorm(dim)

    def width_connection(self, h):
    # get alpha and beta
    if self.dynamic:
    norm_h = self.layer_norm(h)
    if self.dynamic:
    wc_weight = norm_h @ self.dynamic_alpha_fn
    wc_weight = F.tanh(wc_weight)
    dynamic_alpha = wc_weight * self.dynamic_alpha_scale
    alpha = dynamic_alpha + self.static_alpha[None, None, ...]
    else:
    alpha = self.static_alpha[None, None, ...]
    if self.dynamic:
    dc_weight = norm_h @ self.dynamic_beta_fn
    dc_weight = F.tanh(dc_weight)
    dynamic_beta = dc_weight * self.dynamic_beta_scale
    beta = dynamic_beta + self.static_beta[None, None, ...]
    else:
    beta = self.static_beta[None, None, ...]
    # width connection
    mix_h = alpha.transpose(-1, -2) @ h
    return mix_h, beta

    def depth_connection(self, mix_h, h_o, beta):
    h = torch.einsum("blh,bln->blnh", h_o, beta) + mix_h[..., 1:, :]
    return h
  • Algorithm3:Pseudocode of transformer with hyper-connections in a PyTorch-like style.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # h: hyper hidden matrix (BxLxNxD)
    # atten_hyper_connection, ffn_hyper_connection: hyper-connection modules
    # attn_norm, ffn_norm: normalization modules
    # Attention Block
    mix_h, beta = atten_hyper_connection.width_connection(h)
    h = attn_norm(mix_h[...,0,:])
    h = self_attention(h)
    h = atten_hyper_connection.depth_connection(mix_h, dropout(h), beta)
    # FFN Block
    mix_h, beta = ffn_hyper_connection.width_connection(h)
    h = ffn_norm(mix_h[...,0,:])
    h = ffn(h)
    h = ffn_hyper_connection.depth_connection(mix_h, dropout(h), beta)

附录:Manifold(流形)

  • 在数学和理论计算机科学(如几何深度学习、流形学习)中,Manifold(流形)是一个核心概念,它是局部欧几里得的拓扑空间
  • 一个 \(n\) 维流形( \(n\)-dimensional manifold) \(M\) 是满足以下条件的豪斯多夫拓扑空间(Hausdorff topological space):
    • 存在一个开覆盖 \(\{U_\alpha\}_{\alpha\in A}\),即 \(M = \bigcup_{\alpha\in A} U_\alpha\)
    • 对每个 \(U_\alpha\),存在一个同胚 (Homeomorphism)(即连续双射且逆连续) \(\phi_\alpha: U_\alpha \to V_\alpha\),其中 \(V_\alpha\) 是 \(\mathbb{R}^n\) 中的开集
    • 注:豪斯多夫拓扑空间 :也称为 \(T_2\) 空间,是拓扑学中最基础且应用最广泛的一类拓扑空间,其核心特征是空间中任意两个不同的点,都可以被两个不相交的开集分别 “包围”
    • 注:同胚 是拓扑学中的核心概念,描述的是两个拓扑空间之间的一种 “连续且可逆的连续” 映射关系,直观上可以理解为:两个空间可以通过连续的拉伸、扭曲、弯曲(但不能撕裂、粘连或打孔)相互转化
  • 这个二元组 \((U_\alpha, \phi_\alpha)\) 称为坐标卡(chart),所有坐标卡的集合 \({(U_\alpha, \phi_\alpha)}_{\alpha\in A}\) 称为图册(atlas)

关于 Manifold 的关键数学表达式

(1)局部欧几里得性的形式化
  • 对任意 \(p \in M\),存在 \(p\) 的开邻域 \(U \subset M\) 和同胚映射 \(\phi: U \to \phi(U) \subset \mathbb{R}^n\),即
    $$
    \phi: U \xrightarrow{\text{同胚}} \phi(U) \subset \mathbb{R}^n
    $$
    • 其中 \(\phi(U)\) 是 \(\mathbb{R}^n\) 中的开集,\(n\) 称为流形 \(M\) 的维数
(2)坐标卡的相容性(光滑流形的附加条件)
  • 若流形 \(M\) 是光滑流形 ,则其图册中任意两个重叠的坐标卡 \((U_\alpha, \phi_\alpha)\) 和 \((U_\beta, \phi_\beta)\)(满足 \(U_\alpha \cap U_\beta \neq \emptyset\))的转移映射
    $$
    \phi_{\beta\alpha} = \phi_\beta \circ \phi_\alpha^{-1}: \phi_\alpha(U_\alpha \cap U_\beta) \to \phi_\beta(U_\alpha \cap U_\beta)
    $$
    • 是 \(\mathbb{R}^n\) 上的光滑函数( \(C^\infty\) 函数)
(3)流形的嵌入(示例:黎曼流形)
  • 若 \(M\) 是黎曼流形 ,则它配备了一个光滑的正定对称二阶协变张量场 \(g\)(黎曼度量,Riemannian Metric),对任意 \(p \in M\) 和切向量 \(v, w \in T_pM\)( \(p\) 点的切空间(Tangent Space)),黎曼度量给出内积
    $$
    g_p(v, w) = \langle v, w \rangle_p
    $$
  • 满足正定性 \(g_p(v, v) \geq 0\),且等号当且仅当 \(v = 0\) 成立

Manifold 在 NLP/LLM 中的应用场景

  • 在大模型相关研究中,流形的核心应用是流形假设(Manifold Hypothesis):
    • 高维数据(如词嵌入、句嵌入)实际上分布在低维流形上,而非整个高维欧几里得空间
    • 公式化表述:若 \(X \subset \mathbb{R}^D\) 是高维数据空间,存在 \(n \ll D\) 维流形 \(M\),使得 \(X \subset M\)
  • 这一假设是对比学习、降维算法(如 t-SNE、UMAP)和几何深度学习的理论基础

NLP——Chat-Template使用说明

关键词:chat_template, chat_chat_template, chat template

  • 参考链接:
    • 【官方】tokenizer 使用说明

整体说明

  • Chat Template 是为了适配不同模型产生的
  • 理论上 Chat Template 与模型一一绑定,但同系列的模型经常相同
  • Chat Template 定义一般在 tokenizer_config.json 文件中的 chat_template 字段
  • 使用 Chat Template 的函数是 AutoTokenizer.apply_chat_template,这是Hugging Face Transformers 库中 tokenizer 的一个核心方法
  • 论文主要详细介绍 apply_chat_template 函数的用法

apply_chat_template 函数签名

  • 函数签名详情:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def apply_chat_template(
    self,
    conversation: Union[list[dict[str, str]], list[list[dict[str, str]]]],
    tools: Optional[list[Union[dict, Callable]]] = None,
    documents: Optional[list[dict[str, str]]] = None,
    chat_template: Optional[str] = None,
    add_generation_prompt: bool = False,
    continue_final_message: bool = False,
    tokenize: bool = True,
    padding: Union[bool, str, PaddingStrategy] = False,
    truncation: bool = False,
    max_length: Optional[int] = None,
    return_tensors: Optional[Union[str, TensorType]] = None,
    return_dict: bool = False,
    return_assistant_tokens_mask: bool = False,
    tokenizer_kwargs: Optional[dict[str, Any]] = None,
    **kwargs,
    ) -> Union[str, list[int], list[str], list[list[int]], BatchEncoding]:

apply_chat_template 核心参数详解

conversation(必需参数)

  • 对话数据,可以是单个对话列表或批量对话列表,每个消息必须包含 "role" 和 "content" 键
  • 参数类型: Union[list[dict[str, str]], list[list[dict[str, str]]]]
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 单轮对话
    conversation = [
    {"role": "user", "content": "你好,请问今天天气如何?"},
    {"role": "assistant", "content": "您好!我需要知道您的位置才能提供准确的天气信息。"}
    ]

    # 多轮对话
    conversation = [
    {"role": "system", "content": "你是一个有用的AI助手"},
    {"role": "user", "content": "解释量子计算"},
    {"role": "assistant", "content": "量子计算是利用量子力学现象进行计算的技术..."},
    {"role": "user", "content": "它与传统计算有什么区别?"}
    ]

tokenize

  • 控制输出格式是否为 tokenized(token ID 列表)还是文本字符串
  • 参数类型: bool,默认值是 True
    • 对于需要直接传递给模型的场景,建议保持 True;
    • 对于需要查看格式化文本或进行自定义处理的场景,可以设置为 False
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 输出文本格式
    text_output = tokenizer.apply_chat_template(
    conversation,
    tokenize=False
    )
    print(text_output) # 例如: <|user|>你好!<|end|><|assistant|>

    # 输出token IDs
    token_output = tokenizer.apply_chat_template(
    conversation,
    tokenize=True
    )

add_generation_prompt

  • 是否在格式化输出末尾添加助手回复的提示符
  • 参数类型: bool,**默认值: False
  • 这是确保模型正确生成助手回复的关键参数
    • 当设置为 True 时,会在对话末尾添加表示助手开始回复的特殊标记
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # 不添加生成提示
    output_without = tokenizer.apply_chat_template(
    conversation,
    add_generation_prompt=False,
    tokenize=False
    )
    # 输出: <|user|>你好!<|end|>

    # 添加生成提示
    output_with = tokenizer.apply_chat_template(
    conversation,
    add_generation_prompt=True,
    tokenize=False
    )
    # 输出: <|user|>你好!<|end|><|assistant|>

continue_final_message

  • 是否继续最后一个消息而不是开始新消息
  • 参数类型: bool,默认值是 False
  • 用于”预填充”模型回复的场景,当你想让模型继续已有的助手消息时使用
    • 不能与 add_generation_prompt 同时使用
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 预填充助手回复
    conversation = [
    {"role": "user", "content": "请用JSON格式回答"},
    {"role": "assistant", "content": '{"answer": "'}
    ]

    # 模型将继续这个JSON格式,而不是开始新消息
    formatted = tokenizer.apply_chat_template(
    conversation,
    continue_final_message=True,
    tokenize=True
    )
    ## continue_final_message=True,此时不拼接结束符号
    # [Round 0] USER:请用JSON格式回答 ASSISTANT:{"answer": "
    ## continue_final_message=False(默认),此时拼接结束符号,表示本次会话已经结束
    # [Round 0] USER:请用JSON格式回答 ASSISTANT:{"answer": "</longcat_s>

chat_template

  • 自定义的 Jinja2 模板字符串
  • 参数类型: Optional[str],默认值为 None
  • 当需要使用非默认模板或测试新模板格式时使用
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    custom_template = """
    {% for message in messages %}
    {% if message['role'] == 'user' %}
    Human: {{ message['content'] }}
    {% elif message['role'] == 'assistant' %}
    Assistant: {{ message['content'] }}
    {% endif %}
    {% endfor %}
    """

    output = tokenizer.apply_chat_template(
    conversation,
    chat_template=custom_template,
    tokenize=False
    )

tools

  • 工具列表,用于函数调用场景

  • 参数类型: Optional[list[Union[dict, Callable]]],默认值为 None

  • 每个工具应该是 JSON Schema 格式,包含名称、描述和参数类型

  • 简单参考示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    tools = [
    {
    "type": "function",
    "function": {
    "name": "get_weather",
    "description": "获取天气信息",
    "parameters": {
    "type": "object",
    "properties": {
    "location": {"type": "string", "description": "城市名称"}
    },
    "required": ["location"]
    }
    }
    }
    ]

    formatted = tokenizer.apply_chat_template(
    conversation,
    tools=tools,
    add_generation_prompt=True
    )
    • 以上函数的调用方式如 get_weather(**call_info["arguments"])
      • 其中 call_info["arguments"] 是一个必须包含 "location" 的字典

documents(待尝试)

  • 文档列表,用于 RAG(检索增强生成)场景
  • 参数类型: Optional[list[dict[str, str]]],默认值为 None
    • 推荐格式为 每个文档应包含 "title" 和 "text" 键
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    documents = [
    {
    "title": "量子计算简介",
    "text": "量子计算是利用量子力学现象进行计算的技术..."
    },
    {
    "title": "量子比特",
    "text": "量子比特是量子计算的基本单位..."
    }
    ]

    formatted = tokenizer.apply_chat_template(
    conversation,
    documents=documents,
    add_generation_prompt=True
    )

输出控制参数

return_tensors

  • 指定返回的张量类型,return_tensors 参数仅在 tokenize=True 时生效
  • 为了同时支持多种框架,特意设计了不同的返回值类型,减少一次使用时重新转类型的时间,提升速度
  • 参数类型: Optional[Union[str, TensorType]]
    • 默认值为 None,此时返回 原生 Python 数据结构
    • 可选值: 'pt' (PyTorch), 'tf' (TensorFlow), 'np' (NumPy), 'jax' (JAX)
  • 返回张量类型详细说明:
    • 若 tokenize=False,则无论如何返回值都是原生 Python 数据结构
    • 若 tokenize=True,则根据 return_tensors 判断返回类型
      • 默认值为 None,此时返回 原生 Python 数据结构
      • 指定时根据上述指定类型返回值
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # PyTorch tensors
    pytorch_output = tokenizer.apply_chat_template(
    conversation,
    return_tensors="pt",
    add_generation_prompt=True
    )

    # NumPy arrays
    numpy_output = tokenizer.apply_chat_template(
    conversation,
    return_tensors="np",
    add_generation_prompt=True
    )

return_dict

  • 是否返回包含多个字段的字典,仅在 tokenize=True 时有效
  • 参数类型:bool,默认值为 False
  • 当 apply_chat_template 函数的 return_dict 参数设为 True 时,函数会返回一个字典格式的结果 ,而非默认的张量(或字符串)
    • 默认(return_dict=False):若 tokenize=True,直接返回 input_ids 张量(若开启 padding,会返回形状为 [batch_size, seq_len] 的张量)
    • return_dict=True:返回字典,键值对应模型输入的核心要素,结构清晰,无需手动区分张量类型
  • 字典中会根据需要明确包含 input_ids、attention_mask 等模型输入所需的关键组件,便于直接拆解和使用
    • 当 return_assistant_tokens_mask=True 时,会多返回一个 assistant_masks 字段
  • 具体来说,返回的 output 是一个字典,包含以下关键键(根据参数配置可能增减):
    • "input_ids":对话文本对应的token ID张量(模型输入核心)
    • "attention_mask":注意力掩码张量(标记哪些token是有效文本,哪些是padding,避免模型关注padding)

return_assistant_tokens_mask

  • 参数类型: bool,默认值为 False

  • 当 return_assistant_tokens_mask=True 时,会多返回一个 assistant_masks 字段

  • 是否返回助手生成 token 的掩码,助手生成的 token 对应掩码为 1,用户和系统 token 对应掩码为 0

    • 只在 tokenize=True 且 return_dict=True 时生效,否则返回错误:
      1
      ValueError: `return_dict=True` is incompatible with `tokenize=False`, because there is no dict of tokenizer outputs to return.
  • 仅支持包含 {% generation %} ... {% endgeneration %} 关键字的聊天模板

    • 这个关键字不会影响正常的渲染,只是用于标记 assistant 的内容
    • 一般来说,用该标记将 assistant 的整个内容(包括应该学习的所有内容,如 tools 调用等内容都包括进来)
    • 注意:原始的 Jinja 语法是不可以随便写这种位置标签的,但是 apply_chat_template 会对 这个标签做特殊处理,所以不用担心
      • 验证:若随机增加未知的标签 {% generationa %} ... {% endgenerationa %} 则会出现下面的问题:
        1
        jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'generationa'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.
  • 亲测:return_assistant_tokens_mask=True 但对 chat_template 有一定的要求(要求包含 {% generation %} 用于标记 assistant 位置),当前大部分 chat_template 都不支持,此时会全屏蔽(返回 assistant_masks 字段全是 0)

    • 警告信息如下:
      1
      return_assistant_tokens_mask==True but chat template does not contain `{% raw %} {% generation %} {% endraw %}` keyword.
  • 常用用途:用于训练或分析,标识哪些 token 是由助手生成的

  • 简单参考示例:

    1
    2
    3
    4
    5
    6
    7
    8
    output = tokenizer.apply_chat_template(
    conversation,
    return_dict=True,
    tokenize=True,
    return_assistant_tokens_mask=True,
    add_generation_prompt=True
    )
    # 输出包含助手token掩码信息
    • 返回结果 output 多多包涵一个 assistant_masks 的 list 类型字段,里面为 1 的地方都是 assistant 的 Token
    • 需要注意返回结果中为 1 的 Token 中,可能会多出来一些自定义的 Token,此时需要手动处理一下
      • 比如在 assistant 信息前面加入的 <USER> Token 通常会被包含
      • 此时需要自己手动识别并去除一下相关的特殊 Token

序列处理参数

padding

  • 用于指定填充类型
  • 参数类型: Union[bool, str, PaddingStrategy],默认值为 False
  • 仅在 tokenize=True 时生效
    • 虽然说明文档中未明确说明这一点,但经过测试,tokenize=False 时不会 padding
  • 可选值为
    • True 或 'longest': 填充到批次中最长序列
    • 'max_length': 填充到指定最大长度,最大长度由 max_length 参数指定
    • False(默认值) 或 'do_not_pad': 不填充
  • 简单参考示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 填充到最长序列
    padded_output = tokenizer.apply_chat_template(
    batch_conversations,
    padding=True,
    tokenize=True,
    return_tensors="pt"
    )

    # 填充到最大长度
    max_length_output = tokenizer.apply_chat_template(
    conversation,
    padding="max_length",
    max_length=512,
    tokenize=True,
    return_tensors="pt"
    )
补充:padding_side 属性指定左填充 or 右填充
  • Tokenizer.apply_chat_template 方法本身并不直接提供选择左 padding(Left Padding) 或右 padding (Right Padding) 的参数
  • padding 方式通常是由 tokenizer 的整体配置(特别是 padding_side 参数)决定的,而不是由 apply_chat_template 方法单独控制
    • 如果需要设置 padding 方向,应该在初始化 tokenizer 时或通过 tokenizer.padding_side 属性进行配置
    • padding_side 可选值为 "right"(默认值) 或 "left"
  • 注:apply_chat_template 方法主要用于将对话历史格式化为模型期望的输入格式,它会调用 tokenizer 的编码逻辑,而编码过程会遵循 tokenizer 已设置的 padding_side 配置
  • 示例代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from transformers import AutoTokenizer

    # 初始化 tokenizer 时指定 padding 方向
    tokenizer = AutoTokenizer.from_pretrained("model_name", padding_side="left")

    # 核心代码
    tokenizer.padding_side = "right"

    # 应用对话模板时会遵循上述 padding 配置
    chat = [
    {"role": "user", "content": "Hello!"},
    {"role": "assistant", "content": "Hi there!"}
    ]
    inputs = tokenizer.apply_chat_template(chat, tokenize=True, return_tensors="pt", padding=True)

truncation

  • 是否截断超过最大长度的序列
    • 在处理长对话时启用,避免超出模型最大长度限制
  • 参数类型: bool,默认值为 False
补充:truncation_side 属性指定左截断 or 右截断
  • 用法与 padding_side 参数类似
  • truncation_side 是 Tokenizer 类的一个属性,其可选值为:
    • "left":从序列的左侧(开头)截断
    • "right"(默认值):从序列的右侧(结尾)截断(默认值)

max_length

  • 最大长度限制(以token数计),与 padding 或 truncation 配合使用
  • 参数类型: Optional[int],默认值为 None

tokenizer_kwargs

  • 传递给分词器的额外参数,类型为 Optional[dict[str, Any]]

**kwargs

  • 传递给模板渲染器的额外参数,可在聊天模板中访问

附录:完整使用示例

基础对话生成

  • 简单对话简单示例:
    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
    from transformers import AutoTokenizer, AutoModelForCausalLM
    import torch

    # 加载模型和tokenizer
    model_id = "xxx/xxx"
    tokenizer = AutoTokenizer.from_pretrained(model_id)
    model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

    # 准备对话
    messages = [
    {"role": "system", "content": "你是一个友好的AI助手"},
    {"role": "user", "content": "请解释机器学习的基本概念"},
    ]

    # 格式化对话
    tokenized_chat = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt"
    )

    # 生成回复
    with torch.no_grad():
    outputs = model.generate(
    tokenized_chat,
    max_new_tokens=256,
    temperature=0.7,
    do_sample=True
    )

    # 解码回复
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    print(response)

批量处理

  • 多个对话同时处理
    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
    # 批量对话
    batch_conversations = [
    [
    {"role": "user", "content": "什么是人工智能?"}
    ],
    [
    {"role": "user", "content": "如何学习编程?"}
    ]
    ]

    # 批量格式化
    batch_output = tokenizer.apply_chat_template(
    batch_conversations,
    padding=True,
    truncation=True,
    max_length=512,
    return_tensors="pt",
    add_generation_prompt=True
    )

    # 批量生成
    batch_outputs = model.generate(
    **batch_output,
    max_new_tokens=128,
    temperature=0.7
    )

RAG场景使用(待补充)

  • RAG 使用模板的示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    # 准备文档
    documents = [
    {
    "title": "2025年科技趋势报告",
    "text": "人工智能和机器学习技术将继续快速发展..."
    },
    {
    "title": "量子计算进展",
    "text": "量子计算机在特定问题上展现出巨大优势..."
    }
    ]

    # 用户问题
    conversation = [
    {"role": "user", "content": "2025年有哪些重要的科技趋势?"}
    ]

    # 使用RAG模板格式化
    formatted_input = tokenizer.apply_chat_template(
    conversation,
    documents=documents,
    add_generation_prompt=True,
    return_tensors="pt"
    )
  • 注:一般的模板不支持 documents,目前包括 Llama 系列,Qwen 系列等均不支持

  • 支持 documents 的模型示例:huggingface.co/CohereLabs/c4ai-command-r-v01/blob/main/tokenizer_config.json

  • chat_template 模版不支持 documents 时,方法包括:

    • 自己写 Jinja2 模板,把 documents 拼进 system 或第一条 user 消息,再在 vLLM 等框架启动时通过 --chat-template 指定,apply_chat_template 函数也支持该参数;
    • 直接在外部把检索结果拼接成普通字符串,再按常规 messages=[{"role":"user","content":"..."}] 传入即可
  • 最佳实践:先通过 Prompt Engineering 找到合适的模版,然后通过固定的模版文件将该形式固定下来,模型微调和线上 serving 均使用这个模版,这样可以避免因为模型微调和线上 serving 不一致带来的问题,也方便团队内外的合作


附录:最佳实践建议

  • add_generation_prompt 的使用: 在推理时,确保设置 add_generation_prompt=True 以获得正确的助手回复
  • 不同模型使用不同的 chat template,可使用 tokenizer.get_chat_template() 查看具体格式
  • 对于长对话,启用 truncation=True 并设置合适的 max_length
  • 批量处理时合理使用 padding 参数以提高效率,否则可能返回不同长度的编码结果
  • 添加适当的错误处理,特别是对于模板不支持的功能
  • 某些模型不支持 tools 参数,需要检查模型文档
  • 处理长序列时可能遇到内存问题,考虑减小 batch size 或 max_length
  • 确保 conversation 格式正确,每个消息都有 role 和 content 键

附录:关于 tools 类型

  • 在大模型工具调用场景中,code_interpreter(代码解释器)和 function(函数/工具)是两种不同类型的工具

function(函数/工具)

  • function(函数/工具)是预先定义的、具有特定功能的程序函数或API接口,用于让模型调用外部能力 ,模型通过生成符合格式的调用指令(如JSON),触发这些函数执行,并获取返回结果

    • 例如:天气查询接口、数据库查询函数、网页爬虫工具等,如模型调用get_weather(city="北京")函数获取实时天气
  • function 调用方式:模型需严格按照预设格式(如{"name": "函数名", "parameters": {"参数名": "值"}})生成调用指令,确保函数能被正确解析和执行,例如:

    1
    {"name": "translate", "parameters": {"text": "Hello", "target_lang": "zh"}}
  • function 灵活性低:功能固定,只能执行预定义的操作;但安全性高:严格限制在预设函数范围内,风险可控

  • function适用场景包括

    • 需要调用外部服务或系统(如查询实时数据、操作硬件设备)
    • 执行结构化任务(如数据库查询、API调用)
    • 功能固定、无需动态逻辑的操作(如格式转换、简单计算)

code_interpreter(代码解释器)

  • code_interpreter(代码解释器)是一个能够动态执行代码(通常是Python)的沙箱环境,允许模型直接生成并运行代码来解决问题,模型生成代码后,解释器会运行代码并返回输出结果(包括文本、图表等)

    • 例如:执行数学计算、数据可视化、处理 Excel 表格等,如 模型生成Python代码计算1+2+...+100的和,并通过代码解释器执行得到结果
  • code_interpreter 灵活性高:支持任意代码逻辑,可解决复杂、动态的问题;但安全性低:需运行用户/模型生成的代码,存在恶意代码风险(通常通过沙箱隔离缓解)

  • code_interpreter 中,模型直接生成代码片段(通常包裹在特定标记中,如

    ... ```),由解释器解析并运行,例如:
    1
    2
    3
    4
    ```python
    import numpy as np
    result = np.sum(range(1, 101))
    print(result)

  • code_interpreter 适用场景包括

    • 需要复杂逻辑计算(如统计分析、公式推导)
    • 数据处理与可视化(如绘制图表、处理CSV数据)
    • 临时编写简单脚本解决问题(如批量处理文本、解方程)
  • 使用 code_interpreter 时,只需要在 tools 里面加一项 { "type": "code_interpreter" },,这样 chat_template 会自动识别到该字段并输出一些使用信息,告诉模型如何给出代码,并告知模型这个代码可以被执行

    • 以 LongCat-Flash-Chat/blob/main/tokenizer_config.json 为例,其具体做法是先将 code_interpreter 包装成一个类似 function 的格式,再统一输出,最终效果就是让模型知道可以调用 code_interpreter 执行代码("code" 参数内容就是代码)

function 和 code_interpreter 整体对比

  • 注:在实际应用中,两者常结合使用:function处理外部交互,code_interpreter处理复杂计算,共同扩展大模型的能力边界
    维度 function(函数) code_interpreter(代码解释器)
    核心能力 调用预定义功能接口 动态执行代码逻辑
    适用场景 外部服务调用、结构化任务 复杂计算、数据处理、脚本生成
    调用格式 严格 JSON 格式指令 代码片段(如 Python)
    灵活性 低(固定功能) 高(支持任意逻辑)
    安全性 高 需沙箱隔离,风险较高

附录:chat-template 格式化

  • 大部分开源模型的 chat-template 都是压缩为一行的,可读性较差

  • 可以使用下面的代码重新存储 tokenizer 信息

    1
    tokenizer.save_pretrained(output_model_name)
  • 这样会同步生成得到的 chat-template.jinja 文件,整体格式是更可读的

  • 注:也可以使用大模型来帮忙格式化


附录:chat-template continue 语句的使用

  • 老版本的 transformers 中,调用 tokenizer.apply_chat_template 时 不支持 chat-template 中有 continue 语句
  • 若遇到类似下面的错误时,升级 transformers 版本后可以解决问题:
    1
    jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'continue'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.

附录:Qwen2-72B-Instruct chat-template 使用示例

  • Qwen2-72B-Instruct 的 chat-template 非常简单

  • 特别需要说明:当不增加 System Prompt 时, Qwen2-72B-Instruct 会默认将 "You are a helpful assistant." 作为 System Prompt

  • Qwen2-72B-Instruct/tokenizer_config.json 原始定义:

    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
    {
    "add_prefix_space": false,
    "added_tokens_decoder": {
    "151643": {
    "content": "<|endoftext|>",
    "lstrip": false,
    "normalized": false,
    "rstrip": false,
    "single_word": false,
    "special": true
    },
    "151644": {
    "content": "<|im_start|>",
    "lstrip": false,
    "normalized": false,
    "rstrip": false,
    "single_word": false,
    "special": true
    },
    "151645": {
    "content": "<|im_end|>",
    "lstrip": false,
    "normalized": false,
    "rstrip": false,
    "single_word": false,
    "special": true
    }
    },
    "additional_special_tokens": ["<|im_start|>", "<|im_end|>"],
    "bos_token": null,
    "chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}",
    "clean_up_tokenization_spaces": false,
    "eos_token": "<|im_end|>",
    "errors": "replace",
    "model_max_length": 131072,
    "pad_token": "<|endoftext|>",
    "split_special_tokens": false,
    "tokenizer_class": "Qwen2Tokenizer",
    "unk_token": null
    }
    • 注:Qwen2.5-72B-Instruct 的 chat-template 有调整,支持了 工具调用等,同时还修改了默认的 System Prompt 为 "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."
      1
      2
      3
      4
      5
      {
      ...,
      "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n",
      ...,
      }
  • Qwen2-72B chat-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
    108
    109
    110
    111
    112
    113
    114
    115
    116
    model_name = "/Users/xxx/llm/model/Qwen2-72B-Instruct"

    # load the tokenizer and the model
    tokenizer = AutoTokenizer.from_pretrained(model_name)

    messages = [
    {
    "role": "system",
    "content": "${system_prompt}"
    },
    {
    "role": "user",
    "content": "${user_round_0}"
    },
    {
    "role": "assistant",
    "content": "${assistant_round_0}"
    },
    {
    "role": "user",
    "content": "${user_round_1}"
    },
    {
    "role": "assistant",
    "content": "${assistant_round_1}"
    },
    {
    "role": "user",
    "content": "${assistant_round_2}"
    }
    ]
    output = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
    print(output)
    # <|im_start|>system
    # ${system_prompt}<|im_end|>
    # <|im_start|>user
    # ${user_round_0}<|im_end|>
    # <|im_start|>assistant
    # ${assistant_round_0}<|im_end|>
    # <|im_start|>user
    # ${user_round_1}<|im_end|>
    # <|im_start|>assistant
    # ${assistant_round_1}<|im_end|>
    # <|im_start|>user
    # ${assistant_round_2}<|im_end|>
    # <|im_start|>assistant


    messages = [
    {
    "role": "system",
    "content": "${system_prompt}"
    },
    {
    "role": "user",
    "content": "${user_round_0}"
    },
    {
    "role": "assistant",
    "content": "${assistant_round_0}"
    },
    {
    "role": "user",
    "content": "${user_round_1}"
    },
    {
    "role": "assistant",
    "content": "${assistant_round_1}"
    }
    ]

    output = tokenizer.apply_chat_template(messages, add_generation_prompt=False, tokenize=False)
    print(output)
    # <|im_start|>system
    # ${system_prompt}<|im_end|>
    # <|im_start|>user
    # ${user_round_0}<|im_end|>
    # <|im_start|>assistant
    # ${assistant_round_0}<|im_end|>
    # <|im_start|>user
    # ${user_round_1}<|im_end|>
    # <|im_start|>assistant
    # ${assistant_round_1}<|im_end|>


    messages = [
    {
    "role": "user",
    "content": "${user_round_0}"
    },
    {
    "role": "assistant",
    "content": "${assistant_round_0}"
    },
    {
    "role": "user",
    "content": "${user_round_1}"
    },
    {
    "role": "assistant",
    "content": "${assistant_round_1}"
    }
    ]

    output = tokenizer.apply_chat_template(messages, add_generation_prompt=False, tokenize=False)
    print(output)
    # <|im_start|>system
    # You are a helpful assistant.<|im_end|>
    # <|im_start|>user
    # ${user_round_0}<|im_end|>
    # <|im_start|>assistant
    # ${assistant_round_0}<|im_end|>
    # <|im_start|>user
    # ${user_round_1}<|im_end|>
    # <|im_start|>assistant
    # ${assistant_round_1}<|im_end|>

NLP——LLM对齐微调-High-Entropy-Tokens-RL

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Beyond the 80/20 Rule: High-Entropy Minority Tokens Drive Effective Reinforcement Learning for LLM Reasoning, 20250602, THU, Qwen-Alibaba

Paper Summary

  • 整体总结:
    • 作者通过一种新颖的 Token Entropy 视角 分析了 RLVR,为理解 LLM 的推理机制提供了新的见解
    • 论文对 CoT 推理的研究表明,只有一小部分 Token 表现出高熵,并作为推理路径中的“分叉点”(forks)影响推理方向
    • 此外,论文对 RLVR 训练过程中熵动态的分析表明,推理模型在很大程度上保留了基础模型的熵模式,而 RLVR 主要调整的是那些本就高熵的 Token 的熵值
    • 基于这些发现,论文进一步将 RLVR 的策略梯度更新限制在熵值最高的前 20% 的 Token 上
      • 这种方法实现了与全 Token RLVR 训练相当甚至更优的性能,同时表现出随模型规模增长的强扩展趋势
      • 相比之下,将优化目标集中在低熵的多数 Token 上会导致性能显著下降
    • 这些结果表明,RLVR 的有效性主要源于对高熵 Token 子集的优化,这为提高 LLM 推理能力提供了更聚焦和高效的策略
  • RLVR-based RL 已成为提升 LLM Reasoning Capabilities 的强大方法,但其机制尚未得到充分理解
  • 论文首次从 Token Entropy 模式(patterns)的新视角探索 RLVR ,全面分析了不同 Token 如何影响推理性能
  • 通过研究 CoT 推理中的 Token Entropy 模式,论文发现仅有一小部分 Token 表现出高熵,这些 Token 作为关键 “分叉点(forks)” 引导模型选择多样化的推理路径
  • 进一步分析 RLVR 训练中熵模式的演变发现,RLVR 基本遵守(largely adheres)基础模型的熵模式(entropy patterns),仅调整高熵 Token 的熵值
  • 以上这些发现凸显了高熵 Token(即分叉 Token,forking Token)对 RLVR 的重要性
  • 最终,论文通过限制策略梯度更新仅针对分叉 Token 改进了 RLVR,并发现了一个超越 80/20 法则的现象:
    • 在 Qwen3-8B 基础模型上,仅使用 20% 的 Token 即可实现与全 Token 更新相当的性能;
    • 而在 Qwen3-32B(AIME’25 +11.04,AIME’24 +7.71)和 Qwen3-14B(AIME’25 +4.79,AIME’24 +5.21)基础模型上,其表现显著优于全 Token 更新,展现出强烈的规模扩展趋势
    • 相反,仅针对 80% 最低熵 Token 训练会导致性能显著下降
  • 这些结果表明,RLVR 的有效性主要源于对决定推理方向的高熵 Token 的优化
  • 论文的研究结果揭示了通过 Token Entropy 视角理解 RLVR 的潜力,并可通过利用高熵少数 Token 进一步优化 LLM 推理

Introduction and Discussion

  • LLM 的推理能力在数学和编程等领域取得了显著进展,这得益于 OpenAI o1 (2024)、Claude 3.7 (2025)、DeepSeek R1 (2025)、Kimi K1.5 (2025) 和Qwen3 (2025) 等模型采用的测试时扩展(test-time scaling)方法
  • 其中, RLVR (2025; DeepSeek-2025; 2025) 是一项关键技术,它通过基于自动正确性验证的强化学习目标优化模型输出
  • 尽管 RLVR 的进步源于算法创新 (2025; 2025b; 2025)、跨领域应用 (2025; 2025; 2025) 以及反直觉的实证发现 (2025; 2025a; 2025),但现有实现通常对所有 Token 进行训练,而对哪些 Token 实际促进推理的理解有限
    • 这些方法忽视了 Token 在推理过程中的异质性功能角色,可能因未能优先处理序列推理轨迹中的关键决策点而阻碍性能提升
  • 论文通过 Token Entropy 模式的创新视角分析 RLVR 的底层机制,研究不同熵值 Token 如何影响推理性能
  • 论文首先指出,在 LLM 的思维链(CoT)过程中,熵分布呈现一种独特模式:大多数 Token 以低熵生成,而少数关键 Token 以高熵出现 ,通过比较这两类 Token 的文本含义,论文发现:
    • 最低平均熵(lowest average entropy)的 Token 主要完成既定的语言结构
    • 最高平均熵的 Token 则作为关键决策点(pivotal decision points,称为“分叉点(forks)”),决定推理路径的走向(如图1(a)所示)
  • 除定性分析(Qualitatively anslysis)外,论文还通过手动调节解码时分叉 Token 的熵进行对照实验
    • 定量结果(Quantitative results)表明,适度增加这些高熵分叉 Token 的熵可显著提升推理性能,而人为降低其熵则会导致性能下降,验证了保持高熵及其“分叉”角色对这些 Token 的重要性
    • 此外,通过分析 RLVR 训练中 Token Entropy 的演变,论文发现推理模型基本保留了基础模型的熵模式,训练过程中仅出现渐进且微小的变化
    • 同时,RLVR 主要改变高熵 Token 的熵,而低熵 Token 的熵仅在较小范围内波动
    • 这些观察结果凸显了高熵少数 Token 在 CoT 和 RLVR 训练中的关键作用
  • 基于分叉 Token 的发现,论文进一步优化 RLVR ,仅保留熵值最高的 20% Token 的策略梯度更新,并屏蔽其余 80% Token 的梯度
    • 实验表明,尽管仅使用 20% 的 Token,该方法在 Qwen3-8B 基础模型上的推理性能仍与全 Token 更新相当(且其有效性随模型规模增大而提升):
      • 在 Qwen3-32B 基础模型上,AIME’25 和 AIME’24 的得分分别提升 +11.04 和 +7.71;
      • 在 Qwen3-14B 模型上分别提升 +4.79 和 +5.21(如图1(b)所示)
      • 仅使用 20% 高熵 Token 训练的 32B 模型在 AIME’24 和 AIME’25 上分别达到 63.5 和 56.7 的分数,为参数规模低于 600B 的基础模型训练的推理模型设立了新的 SoTA
      • 将最大响应长度从 20k 扩展至 29k 后,32B 模型的 AIME’24 分数进一步提升至 68.1
  • 相反,仅针对 80% 最低熵 Token 训练会导致性能严重下降
  • 最终结论:
    • 20% 的 Token 即可实现与 100% Token 相当甚至更优的性能,甚至超越了 80/20 法则
      • 理解:论文的发现远超二八定律的预期:高熵 Token 不仅是“重要的 20%”,而是几乎完全主导了模型性能的提升,低熵 Token 的贡献甚至可以忽略或有害
    • RLVR 的性能增益几乎完全源于优化作为推理轨迹关键决策点的高熵少数 Token

Preliminary

Token entropy calculation

  • Token-level 生成熵(简称“token entropy for brevity”)的定义为,对于 Token \( t \),其熵 \( H_t \) 为:
    $$
    H_t := -\sum_{j=1}^{V} p_{t,j} \log p_{t,j}, \quad \text{where} \quad (p_{t,1}, \cdots, p_{t,V}) = \boldsymbol{p}_t = \pi_{\boldsymbol{\theta} }(\cdot \mid \boldsymbol{q}, \boldsymbol{o}_{ < t}) = \text{Softmax}\left(\frac{z_t}{T}\right). \tag{1}
    $$
    • \( \pi_{\boldsymbol{\theta} } \) 表示参数为 \( \boldsymbol{\theta} \) 的 LLM
    • \( \boldsymbol{q} \) 是输入查询
    • \( \boldsymbol{o}_{ < t} = (o_1, o_2, \cdots, o_{t-1}) \) 是已生成的 Token 序列
    • \( V \) 是词汇表大小(vocabulary size)
    • \( z_t \in \mathbb{R}^V \) 是时间步 \( t \) 的 pre-softmax logits
    • \( \boldsymbol{p}_t \in \mathbb{R}^V \) 是对词汇表的概率分布(理解:\(p_{t,j}\) 表示生成第 \(t\) 个输出 Token \(o_t\) 时,选择词表中 Token \(j\) 的概率)
    • \( T \in \mathbb{R} \) 是解码温度
  • 在 off-policy 设定下
    • 序列由 rollout 策略 \( \pi_{\boldsymbol{\phi} } \) 生成(理解:行为策略)
    • 训练策略为 \( \pi_{\boldsymbol{\theta} } \)(即训练的目标策略,\( \boldsymbol{\phi} \neq \boldsymbol{\theta} \))
    • 熵仍按公式 (1) 计算,以衡量训练策略在给定序列中的不确定性(理解:此时相当于序列是行为策略 \( \pi_{\boldsymbol{\phi} } \) 生成的)
  • 理解 Token Entropy 的含义:Token Entropy 与 Token 生成分布相关,而非特定 Token
    • 论文中,Token Entropy \( H_t \) 指索引 \( t \) 处的熵,由 Token 生成分布 \( \boldsymbol{p}_t \) 决定,而非从 \( \boldsymbol{p}_t \) 采样的特定 Token \( o_t \)
    • 为简洁起见,当讨论从 \( \boldsymbol{p}_t \) 采样的 Token \( o_t \) 时,论文将其关联的熵称为 \( H_t \),并称 \( H_t \) 为 \( o_t \) 的 Token Entropy
    • 若存在另一索引 \( t’ \neq t \) 满足 \( o_{t’} = o_t \),则 \( o_{t’} \) 的 Token Entropy 未必等于 \( H_t \)

RLVR Algorithms

  • 近端策略优化(Proximal Policy Optimization,PPO) :PPO (2017) 是 RLVR 中广泛采用的策略梯度算法
    • 为稳定训练,PPO通过以下裁剪替代目标限制策略更新在旧策略 \( \pi_{\boldsymbol{\theta}_{\text{old} } } \) 的邻近区域内:
      $$
      \begin{align}
      J_{\text{PPO} }(\boldsymbol{\theta}) = &\mathbb{E}_{(\boldsymbol{q}, \boldsymbol{a}) \sim \mathcal{D}, \boldsymbol{o} \sim \pi_{\boldsymbol{\theta}_{\text{old} } }(\cdot|\boldsymbol{q})} \left[\min\left(r_t(\boldsymbol{\theta})\hat{A}_t, \text{clip}(r_t(\boldsymbol{\theta}), 1-\epsilon, 1+\epsilon)\hat{A}_t\right)\right], \\
      &\text{where} \quad r_t(\boldsymbol{\theta}) = \frac{\pi_{\boldsymbol{\theta} }(o_t|\boldsymbol{q}, \boldsymbol{o}_{ < t})}{\pi_{\boldsymbol{\theta}_{\text{old} } }(o_t|\boldsymbol{q}, \boldsymbol{o}_{ < t})}
      \end{align} \tag{2}
      $$
      • \( \mathcal{D} \) 是查询 \( \boldsymbol{q} \) 和对应真实答案 \( \boldsymbol{a} \) 的数据集
      • \( \epsilon \in \mathbb{R} \) 是超参数(通常设为 2.0,注:这里是 0.2 吧)
      • \( \hat{A}_t \) 是通过价值网络计算的估计优势
  • GRPO :基于公式 (2) 的裁剪目标,GRPO (2024) 通过组内平均奖励估计优势,弃用价值网络
    • 具体地,对于每个查询 \( \boldsymbol{q} \) 和真实答案 \( \boldsymbol{a} \),rollout 策略 \( \pi_{\text{Gold} } \) 生成一组响应 \( \{\boldsymbol{o}^i\}_{i=1}^G \),对应结果奖励 \( \{R^i\}_{i=1}^G \),其中 \( G \in \mathbb{R} \) 是组大小。估计优势 \( \hat{A}_t^i \) 计算如下:
      $$
      \hat{A}_t^i = \frac{R^i - \text{mean}(\{R^i\}_{i=1}^G)}{\text{std}(\{R^i\}_{i=1}^G)}, \quad \text{where} \quad R^i = \begin{cases}
      1.0 & \text{if} \quad \text{is_equivalent}(\boldsymbol{a}, \boldsymbol{o}^i), \\
      0.0 & \text{otherwise}. \tag{3}
      \end{cases}
      $$
      • 除改进的优势估计外,GRPO还在公式 (2) 的裁剪目标中添加了 KL 惩罚项
  • 动态采样策略优化(DAPO) :基于GRPO,DAPO (2025) 移除 KL 惩罚,引入 clip-higher 机制、动态采样、Token-level 策略梯度损失和超长奖励调整,形成以下最大化目标:
    $$
    \begin{align}
    \mathcal{J}_{\text{DAPO} }(\boldsymbol{\theta}) = \mathbb{E}_{(\boldsymbol{q}, \boldsymbol{a}) \sim \mathcal{D}, \{\boldsymbol{o}^i\}_{i=1}^G \sim \pi_{\text{Gold} } }(\cdot|\boldsymbol{q}) &\left[\frac{1}{\sum_{i=1}^G |\boldsymbol{o}^i|} \sum_{i=1}^G \sum_{t=1}^{|\boldsymbol{o}^i|} \min\left(r_t^i(\boldsymbol{\theta})\hat{A}_t^i, \text{clip}(r_t^i(\boldsymbol{\theta}), 1-\epsilon_{\text{low} }, 1+\epsilon_{\text{high} })\hat{A}_t^i\right)\right], \\
    \text{s.t.} &0 < \left|\{\boldsymbol{o}^i \mid \text{is_equivalent}(\boldsymbol{a}, \boldsymbol{o}^i)\}\right| < G
    \end{align} \tag{4}
    $$
  • DAPO是无价值网络的先进 RLVR 算法之一。论文以 DAPO 为基线进行 RLVR 实验

Analyzing Token Entropy in Chain-of-Thought Reasoning

  • 尽管先前的工作 (2025) 强调了生成熵(generation entropy)在链式思维推理中的重要性,但它们通常对所有 Token 的熵进行了整体分析
  • 在本节中,论文通过 Token-level 的视角更细致地研究了链式思维中的生成熵
    • 为此,论文使用 Qwen3-8B (2025)(在同等参数规模下表现优异的推理模型),生成针对 AIME’24 和 AIME’25 问题的回答,解码温度设为 \( T = 1.0 \)
    • 论文强制模型对每个问题使用思考模式,并收集了超过 \( 10^6 \) 个响应 Token
      • 问题:为什么AIME 题目不多,能搜集 \( 10^6 \) 个响应 Token?
    • 对于每个 Token ,其熵值根据公式 (1) 计算
    • 这些 Token Entropy 值的统计分析结果如图2 所示
    • 此外,附录中的图12 至图17 展示了长链式思维响应中 Token Entropy 的可视化结果
  • 通过这些分析,论文发现了以下熵模式:
    • 链式思维中的熵模式 1(Entropy Pattern 1 in CoTs) :通常情况下,只有少数 Token 以高熵生成,而大多数 Token 以低熵输出
      • 如图2(a) 所示,大量 Token 的熵值非常低,只有少量 Token 的熵值较高。具体而言,超过一半的 Token (约 50.64%)的熵值低于 \( 10^{-2} \),而仅有 20% 的 Token Entropy 值大于 0.672
        • 注意:图2 中的频次是经过了 log scale 变换的,看起来差距偏小,实际上是差距很大的长尾分布(吐槽,不如不要做 log scale 更方便看)
      • 理解:这里所谓 Token 以高熵生成的意思是,生成(采样)该 Token 前使用的概率分布的熵是高的(即随机性大)
    • 链式思维中的熵模式 2(Entropy Pattern 2 in CoTs) :熵值最高的 Token 通常用于连接推理过程中两个连续部分的逻辑关系,而熵值最低的 Token 则倾向于完成当前句子的一部分或构造单词的结尾。其他 Token 则不同程度地兼具这两种功能
      • 在图2(b) 和 (c) 中,论文从 \( 10^6 \) 个 Token 中分别选取了平均熵值最高和最低的 100 个 Token
      • 为了减少噪声对平均熵的影响,论文仅考虑出现频率超过 100 的 Token
      • 高熵 Token 通常是句子内或跨句子的逻辑连接词:
        • 例如 “wait” “however” “unless”(表示对比或转折)、“thus”“also”(表示递进或补充)或“since” “because”(表示因果关系)
        • 类似地,数学推导中常用的“suppose” “assume” “given” “define” 等 Token 也频繁出现
      • 而低熵 Token 通常是单词后缀、源代码片段或数学表达式的组成部分,这些 Token 具有高度的确定性
      • 此外,图12 至图17 展示了长链式思维中 Token Entropy 的详细可视化结果,表明大多数 Token 在高熵和低熵组之外,兼具不同程度的连接和延续功能
    • 链式思维中的高熵 Token 作为“分叉点”(High-entropy tokens as “forks” in chain-of-thoughts)
      • 基于上述两种模式,论文将高熵 Token 称为“分叉 Token ”(forking tokens),因为它们通常在推理过程中以高不确定性引导不同的潜在路径
      • 为了定量验证分叉 Token 的作用,论文在 AIME 2024 和 AIME 2025 的评估中为分叉 Token 和其他 Token 分配不同的解码温度
      • 具体来说,论文调整每个 Token \( t \) 的概率分布 \( \boldsymbol{p}_t’ \in \mathbb{R}^V \) 如下:
        $$
        \boldsymbol{p}_t’ = \text{Softmax}\left(\frac{z_t}{T_t’}\right), \quad \text{where} \quad T_t’ = \begin{cases}
        T_{\text{high} } & \text{if } H_t > h_{\text{threshold} }, \\
        T_{\text{low} } & \text{otherwise}.
        \end{cases} \tag{5}
        $$
        • \( z_t \in \mathbb{R}^V \) 表示 Token \( t \) 的 pre-softmax logits
        • \( T_t’ \in \mathbb{R} \) 是调整后的温度;
        • \( h_{\text{threshold} } = 0.672 \) 是用于区分分叉 Token 和其他 Token 的熵阈值(这个值是通过计算采样的 \( 10^6 \) 个 Token 的 80 分位点得到的)
        • \( T_{\text{high} } \in \mathbb{R} \) 和 \( T_{\text{low} } \in \mathbb{R} \) 分别对应分叉 Token 和其他 Token 的温度
  • 图3 展示了不同 \( T_{\text{high} } \) 和 \( T_{\text{low} } \) 值对性能的影响
    • \( T_{\text{low} } = 1\) 时:降低 \( T_{\text{high} } \) 会显著降低性能,而提高 \( T_{\text{high} } \) 则能大幅提升性能
    • \( T_{\text{high} } = 1\) 时:提高 \( T_{\text{low} } \) 甚至可能导致 LLM 生成无意义的输出
    • 这些结果表明,分叉 Token 需要比其他 Token 更高的温度。由于分叉 Token 天然具有更高的熵,这一结果进一步支持了它们需要以更高熵水平运行的假设,这与它们作为“分叉点”的角色一致,高熵使其能够引导多样化的推理路径

RLVR Preserves and Reinforces Base Model Entropy Patterns

  • 在本节中,基于第 3 节对链式思维中熵模式的观察,论文进一步研究了这些模式在 RLVR 训练过程中的演化

  • RLVR 主要保留基础模型的现有熵模式(RLVR primarily preserves the existing entropy patterns of the base models)

    • 为了分析 RLVR 训练过程中熵模式的演化,论文将 DAPO (2025) 应用于 Qwen3-14B 基础模型(详见第 5 节)
    • 使用经过 RLVR 训练的推理模型,论文为表2 中的六个基准生成了每个问题 16 个响应
      • 包括了六个基准: AIME’24,AIME‘25,AMC’23,MATH500,Minerva,Olympiad
      • 问题:Minerva 基准是什么?
    • 对于这些响应中的每个 Token,论文计算了不同 RLVR 阶段推理模型的 logits ,并识别出熵值最高的前 20% Token
      • 个人理解:一种更简单的方式是不需要计算熵,仅统计每个 Token 被生成时,这个 Token 的对应的采样概率值的均值即可评估 Token 的不确定性
    • 然后,论文计算了每个中间模型与基础模型和最终 RLVR 模型之间在熵值最高的前 20% Token 位置上的重叠比例(即共享的高熵位置占比)
    • 如表1 所示,尽管与基础模型的重叠比例逐渐下降,与最终 RLVR 模型的重叠比例逐渐上升,但在收敛时(第 1360 步),基础模型的重叠比例仍高于 86%,这表明 RLVR 在很大程度上保留了基础模型关于哪些 Token 具有高熵或低不确定性的熵模式
  • RLVR 主要调整高熵 Token 的熵值,而低熵 Token 的熵值相对稳定,变化较小(RLVR predominantly alters the entropy of high-entropy tokens, whereas the entropy of low-entropy tokens remains comparatively stable with minimal variations.)

    • 使用与表1 相同的设置,论文计算了 RLVR 训练后每个 5% 熵百分位范围内 Token 的平均熵变化
      • 观察到,基础模型中初始熵值较高的 Token 在 RLVR 训练后熵值增加较大
        • 理解:熵值确实是增加了,见图5,但这好像与之前其他论文所谓的 RL 是再让模型”更自信”并不一致
      • 这一观察进一步强化了 RLVR 主要保留基础模型熵模式的观点
    • 此外,图5 展示了使用 Qwen3-14B 基础模型时熵百分位在 RLVR 训练过程中的演化
      • 图中显示,随着从 0 百分位到 100 百分位的推移,整个训练过程中熵值的波动范围逐渐减小(注:是逐渐增大吧)
        • 理解:这里是指分位点稳定,但是全局看,熵值上下界其实是 100 分位点最大(只是相邻的几个 Step 之间波动不大)
      • 这些观察结果表明,在整个训练过程中,RLVR 主要调整高熵 Token 的熵值,而低熵 Token 的熵值变化较小且相对稳定
        • 理解:从图上看,低分位点虽然存在波动,但是波动范围很小,比如 60分位点,40分位点 和 20分位点 训练过程中几乎不动(注意 20分位点和40分位点的纵坐标单位是很小的)
        • 特别地(理解):0分位点 对应的是熵最小的一些 Token,这部分 Token 几乎永远不会被选择到,所以他们的熵几乎不会变化(始终很低且固定)

High-Entropy Minority Tokens Drive Effective RLVR(少数高熵 Token 就能有效驱动 RLVR)

  • RLVR 已成为训练推理模型最广泛使用的方法之一 (2025),但关于哪些类型的 Token 对推理模型学习贡献最大的研究仍然缺乏
  • 如第 3 节和第 4 节所述,高熵少数 Token 尤为重要
  • 在本节中,论文研究了这些高熵少数 Token (也称为分叉 Token)在 RLVR 过程中对推理能力发展的贡献

Formulation of RLVR Using Only Policy Gradients of the Highest-Entropy Tokens(仅使用最高熵 Token 策略梯度的 RLVR)

  • 基于 DAPO 的目标函数(公式 (4)),论文舍弃低熵 Token 的策略梯度,仅使用高熵 Token 的策略梯度训练模型。对于从数据集 \( \mathcal{D} \) 中采样的每个批次 \( \mathcal{B} \),论文计算最大目标函数如下:
    $$
    \begin{align}
    \mathcal{J}_{\text{HighEnt} }^{\mathcal{B} }(\theta) = \mathbb{E}_{\color{red}{\mathcal{B}\sim\mathcal{D},(\boldsymbol{q},\boldsymbol{a})\sim\mathcal{B}},\{\boldsymbol{o}^i\}_{i=1}^G\sim\pi_{\theta_{\text{old} } }(\cdot|\boldsymbol{q})} &\left[\frac{1}{\sum_{i=1}^G|\boldsymbol{o}^i|}\sum_{i=1}^G\sum_{t=1}^{|\boldsymbol{o}^i|} \color{red}{\mathbb{I}\left[H_t^i \geq \tau_\rho^{\mathcal{B} }\right]} \cdot \min\left(r_t^i(\theta)\hat{A}_t^i, \text{clip}\left(r_t^i(\theta),1-\epsilon_{\text{low} },1+\epsilon_{\text{high} }\right)\hat{A}_t^i\right)\right], \\
    \text{s.t.} &0 < \left|\{\boldsymbol{o}^i \mid \text{is_equivalent}(\boldsymbol{a}, \boldsymbol{o}^i)\}\right| < G
    \end{align} \tag{6}
    $$
    • \( H_t^i \) 表示响应 \( i \) 中 Token \( t \) 的熵
    • \( \mathbb{I}[\cdot] \) 是指示函数,当内部条件成立时为 1,否则为 0;
    • \( \rho \in (0,1] \) 是一个预定义的比例,指定批次中选择的最高熵 Token 的比例
    • \( \tau_\rho^{\mathcal{B} } \) 是批次 \( \mathcal{B} \) 中对应的熵阈值,仅使用满足 \( H_t^i \geq \tau_\rho^{\mathcal{B} } \) 的 Token (即批次中所有 Token 的前 \( \rho \) 部分)计算梯度
  • 与公式 (4) 相比,公式 (6) 仅有两处不同(如红色高亮所示):
    • 1)优势项乘以 \( \mathbb{I}\left[H_t^i \geq \tau_\rho^{\mathcal{B} }\right] \),确保仅熵值 \( H_t^i \geq \tau_\rho^{\mathcal{B} } \) 的 Token \( o_t^i \) 参与策略梯度损失计算;
    • 2)论文从数据集 \( \mathcal{D} \) 采样的每个(微)批次 \( \mathcal{B} \) 中筛选出前 \( \rho \) 的高熵 Token
      • 问题1:这里比常规的 DAPO 增加了一次采样 \(\color{red}{\mathcal{B}\sim\mathcal{D}}\),这有什么特殊吗?
      • 问题2:从哪里看出来经过了筛选?\(\color{red}{(\boldsymbol{q},\boldsymbol{a})\sim\mathcal{B}}\) 中的 \(\boldsymbol{a}\) 是句子吧,难道是这里面的 Token 经过筛选了?

Experimental Setup

Training details
  • 论文从 verl (2024) 的代码库中调整训练配置,并遵循 DAPO (2025) 的训练方法(这是 LLM 中 SOTA 强化学习算法之一)
    • 论文进行了实验和对照两个方法,分别对应以下两种配置:
      • 使用完整梯度的 RLVR (公式 (4) 描述的原始 DAPO)
      • 仅使用分叉 Token 策略梯度的 RLVR (公式 (6) 描述)
    • 均采用了 clip-higher、动态采样、Token-level 策略梯度损失和超长奖励塑造等技术 (2025)
    • 为了公平比较,论文采用了 DAPO 推荐的相同超参数:
      • clip-higher 的 \( \epsilon_{\text{high} } = 0.28 \)
      • \( \epsilon_{\text{low} } = 0.2 \);
      • 超长奖励塑造的最大响应长度为 20480
      • 缓存长度为 4096
    • 此外,论文使用 verl 配置中的:
      • training batch size 为 512
      • mini-batch size 为 32
      • 每个训练 Batch 进行 16 次梯度更新
      • 学习率为 \( 10^{-6} \),且无学习率预热或调度(问题:为什么不使用预热?是 RLHF 都不需要吗?)
    • 重要的是,训练过程中排除了 KL 散度损失和熵损失
  • 为了评估这些方法的扩展能力,论文在 Qwen3-32B 和 Qwen3-8B 基础模型上进行了 RLVR 实验,使用 DAPO-Math-17K (2025) 作为训练数据集
  • 论文在公式 (6) 中设置 \( \rho = 20% \),即仅使用每个批次中前 20% 最高熵 Token 的梯度更新策略
  • 作者为 Qwen3 设计的 chat template 是:

    “User:\n[question]\nPlease reason step by step, and put your final answer within \boxed{}.\n\nAssistant:\n”
    with “<|endoftext|>“ serving as the EOS token, where “[question]” should be replaced by the specific question.

  • 问题:Qwen3-32B 和 Qwen3-8B 模型是经过后训练的 Chat 模型,Qwen3 模版中,它的 EOS 使用的是 <|im_end|>,这里使用 <|endoftext|> 真的不会有问题吗?
Evaluation
  • 论文在 6 个标准数学推理基准上评估模型,这些基准通常用于评估推理能力:AIME’24、AIME’25、AMC’23、MATH500 (2021)、Minerva 和 OlympiadBench (2024)
  • 所有评估均在 Zero-shot setting 下进行
  • 对于每个问题,论文在解码温度 \( T = 1.0 \) 下生成 16 个独立响应,并 Report 平均准确率和每个响应的平均 Token 数

Main Results

High-entropy tokens drive reinforcement learning for LLM reasoning(高熵 Token 驱动 LLM Reasoning RL)
  • 图6 和表2 比较了使用所有 Token 的原始 DAPO 和仅在策略梯度损失中保留前 20% 高熵 Token 的方法
    • 令人惊讶的是,舍弃底部 80% 的低熵 Token 不仅不会降低推理性能,甚至可以在六个基准上带来性能提升
    • Qwen3-32B 基础模型上,这种方法在 AIME’24 上提升了 7.71 分,在 AIME’25 上提升了 11.04 分
    • Qwen3-14B 基础模型在 AIME’24 上提升了 5.21 分,在 AIME’25 上提升了 4.79 分
    • Qwen3-8B 基础模型,性能未受影响
      • 问题1:针对高熵 Token 的优化,为什么模型越大提升越多?小模型熵不能提升?
      • 问题2:对所有模型都有,针对高熵 Token 的优化上,响应长度都会长于 Vanilla DAPO,原因是什么?
    • 这些结果表明,RLVR 中推理能力的提升主要由高熵 Token 驱动,而低熵 Token 对推理性能的影响较小甚至可能阻碍性能,尤其是在 Qwen3-32B 和 Qwen3-14B 基础模型上
  • 为了更深入分析,论文调整公式 (6) 中的比例 \( \rho \) 进行实验,如图7(a) 所示
    • 结果显示,Qwen3-8B 基础模型的性能在不同比例(如 10%、20%、50%)下保持相对稳定
    • 对于 Qwen3-14B 和 Qwen3-32B 基础模型,图7(c) 和 (e) 表明,将 \( \rho \) 从 20% 降至 10% 会导致性能轻微下降,而将其大幅增至 100% 则会导致性能显著下降(问题:如果是 30% 呢?)
    • 这些观察表明,在合理范围内,推理性能对 \( \rho \) 的具体值不敏感。更重要的是,它们表明,专注于高熵 Token 而非所有 Token 通常能保持性能,甚至可能在更大的模型中带来显著提升
Low-entropy tokens contribute minimally to reasoning performance(低熵 Token 对推理性能的贡献微乎其微)
  • 如图7(a) 和 (b) 所示,在 RLVR 中仅保留底部 80% 的低熵 Token 会导致性能大幅下降,尽管这些 Token 占训练中总 Token 数的 80%
  • 这一发现表明,低熵 Token 对增强推理能力的贡献极小,凸显了高熵 Token 对有效模型训练的重要性
The effectiveness of high-entropy tokens may lie in their ability to enhance exploration(推测:高熵 Token 的有效性可能在于其增强探索的能力)
  • 论文的分析表明,专注于约 20% 的高熵 Token 子集(实验中观察到的比例)在 RLVR 中实现了探索和训练稳定性之间的有效平衡 ,如图7(b)、(d) 和 (f) 所示
    • 将比例 \( \rho \) 从 20% 调整为 10%、50% 或 100% 会导致整体熵从训练早期开始持续降低 ,直至性能开始收敛
      • 问题:实际上,\( \rho=20% \) 时,熵也是先下降再提升的吧
    • 使用底部 80% 低熵 Token 训练会导致整体熵显著降低
  • 这些结果表明,保留一定比例的高熵 Token 可能有助于有效探索,超出这一范围的 Token 可能对探索帮助较小,甚至可能有害,尤其是在性能收敛前的关键阶段
  • 这可能解释了高熵 Token 训练下,不同模型表现不同:
    • 在 Qwen3-32B 基础模型上,仅使用前 20% 高熵 Token 的 DAPO 优于原始 DAPO(如图6(a) 所示)(理解:关注高熵 Token 有助于探索?)
    • 在 Qwen3-8B 基础模型上,由于模型容量较低,增强探索的收益似乎有限
Focusing on forking tokens in the policy gradient loss benefits larger reasoning models(在 PG 损失中,专注于的分叉 Token 有益于更大的推理模型)
  • 论文在图8 中展示了仅使用分叉 Token 时的扩展趋势
  • 在 AIME’24 和 AIME’25 基准上,论文观察到随着模型规模的增大,相对于原始 DAPO 的性能提升越来越显著
    • 这表明了一个有希望的结论 :在策略梯度损失中仅专注于分叉 Token **可能在更大的推理模型中带来更大的优势**

Discussion

讨论 1:高熵少数 token(即分叉 token)可能是解释为什么 RL 能泛化而 SFT 只能记忆的关键因素

  • Chu 等人 (2025) 通过实验证明,强化学习(尤其是基于结果的奖励)在未见过的规则任务上表现出强大的泛化能力,而 SFT 容易记住训练数据,难以泛化到训练分布之外
  • 作者推测,强化学习和监督微调泛化能力差异的一个关键因素可能与分叉 token 的熵有关
  • 论文的实验(例如图5 和图7)表明:强化学习倾向于保留甚至增加分叉 token 的熵 ,从而保持推理路径的灵活性
    • 相比之下,监督微调将输出 logits 推向 one-hot 分布,导致分叉 token 的熵降低,进而失去推理路径的灵活性
    • 这种灵活性可能是推理模型有效泛化到未见任务的关键决定因素

讨论 2:与传统强化学习不同,LLM 的推理结合了先验知识,并且需要生成可读的输出。因此,LLM 的思维链(CoT)包含低熵多数 token 和高熵少数 token 的混合,而传统强化学习可以假设轨迹中所有动作的熵是均匀的

  • 如图2(a) 所示,大多数 LLM 思维链 token 的熵较低,只有一小部分 token 表现出高熵
    • 相比之下,传统强化学习通常将每个动作分布定义为具有预定义标准差的高斯分布 (2017; 2021; 2022),导致所有动作的熵均匀分布
  • 论文将 LLM 思维链中这种独特的熵模式归因于其在大规模先验知识上的预训练以及对语言流畅性的要求
    • 这迫使大多数 token 与记忆的语言结构对齐 ,从而表现出低熵
    • 只有一小部分在预训练语料库中本身具有不确定性的 token 允许探索 ,因此表现出高熵
  • 这一推论与论文在表1 中的结果一致

讨论 3:在 RLVR 中,熵奖励可能是次优的,因为它会增加低熵多数 token 的熵。相比之下,clip-higher 机制能有效提升高熵少数 token 的熵

  • 在强化学习中,熵奖励通常被添加到训练损失中以鼓励探索,通过增加动作的熵来实现——这是传统任务中的常见做法 (2017; 1992; 2016),最近也被应用于 LLM 推理 (2024; 2024)
  • 然而,如上所述,与传统强化学习轨迹不同,LLM 思维链表现出独特的熵模式
    • 对所有 token 均匀增加熵可能会破坏低熵多数 token,从而降低性能,而选择性增加高熵少数 token 的熵则能提升性能(图3)
  • 因此,均匀应用的熵奖励对于思维链推理来说是次优的
  • 相反,clip-higher (2025) 通过适度提高公式 (4) 中的 \(\epsilon_{\text{high} }\),更好地针对高熵 token
  • 从经验上看,论文发现重要性比率 \(r_i(\theta)\) 较高的 token 往往具有更高的熵
    • 通过在训练中包含更多这类 token,clip-higher 在不显著影响低熵 token 的情况下增加了整体熵
    • 这一结论得到了 Yu 等人 (2025) 的支持,并在图5 中得到了验证
    • 问题:高熵 Token 一般伴随着 低概率,所以 clip-higher 有助于提升高熵 Token 的概率(提升概率会降低熵?),这与论文的 整体熵似乎不一致
      • 回答:从另一个视角看是一致的,相对于普通 clip,clip-higher 让低概率的 Token 获得了更多提升机会,有助于让概率更平均,从而增大了熵

Related Work

Reinforcement learning for LLM

  • 在 OpenAI 的 o1 (2024) 等具备推理能力的模型出现之前, RL 被广泛用于 RLHF ,以改进 LLM 的指令跟随能力和与人类偏好的对齐 (2022)
  • RLHF 方法大致分为在线和离线偏好优化
    • 在线方法如 PPO (2017)、GRPO (2024) 和 REINFORCE (1992) 在训练过程中生成响应并接收实时反馈
    • 离线方法如 DPO (2023)、SimPO (2024) 和 KTO (2024) 使用预先收集的偏好数据(通常来自人类标注者或 LLM )优化策略
    • 虽然离线方法训练效率更高,但其性能通常不如在线方法 (2024)
  • 最近, RLVR (2025) 成为增强 LLM 推理能力的一种有前景的方法,尤其是在数学和编程领域 (2024; DeepSeek-2025; 2025; 2025)
    • OpenAI 的 o1 (2024) 首次证明了强化学习可以有效地大规模激励推理能力
    • 在 o1 的基础上,DeepSeek R1 (DeepSeek-2025)、QwQ (Team, 2025)、Kimi k1.5 (2025) 和 Qwen3 (2025) 等模型试图匹配或超越其性能
    • DeepSeek R1 通过在线强化学习算法 GRPO (2024) 展示了基于结果的优化可以产生强大的推理能力,同时还引入了“zero RL”范式,即无需传统的强化学习微调即可从基础模型中激发推理能力
    • 受这些结果的启发,后续方法如 DAPO (2025)、VAPO (2025b)、SimpleRLZoo (2025) 和 Open-Reasoner-Zero (2025) 进一步探索了基于强化学习的推理
    • 在本工作中,论文以 DAPO 为基线,研究强化学习应用于 LLM 的关键方面

Analysis on reinforcement learning with verifiable rewards

  • 最近, RLVR 已成为增强 LLM 推理能力的流行方法,多项研究分析了 RLVR 及其相关概念的特征
    • Gandhi 等人 (2025) 发现,推理行为的存在(而非答案的正确性)是推动强化学习性能提升的关键因素
    • 类似地,Li 等人 (2025) 表明,长思维链(CoT)的结构对学习过程至关重要,而单个推理步骤的内容影响甚微
      • 问题:如何理解?
    • Vassoyan 等人 (2025) 识别了思维链中的“关键 token”,即模型容易出错的决策点,并提出通过修改 KL 惩罚来鼓励在这些 token 周围进行探索
    • Lin 等人 (2024) 同样识别了对错误结果有显著影响的关键 token,并证明识别和替换这些 token 可以改变模型行为
    • 论文发现 RLVR 主要关注推理路径中的分叉 token,这一发现可能与 Gandhi 等人 (2025) 和 Li 等人 (2025) 的观察有共通之处,他们认为 RLVR 主要学习格式而非内容。然而,论文的分析更进一步,在 Token-level 上明确了这一发现
    • 此外,Vassoyan 等人 (2025) 和 Lin 等人 (2024) 中“关键 token”的概念与论文提出的高熵少数 token 密切相关
      • 与之前基于输出正确性判断 token 重要性的工作不同,论文提出 token 熵作为一种可能更准确反映 LLM 底层机制的评判标准

Limitations

  • 作者认为本研究仍有改进空间
  • 首先,实验可以扩展到 Qwen 系列之外的模型
  • 尽管论文尝试在 LLaMA 模型上评估论文的方法,但它们在 AIME 基准测试中难以取得有意义的性能
  • 此外,论文的数据集范围可以扩展到数学之外的领域,例如编程或更复杂的任务,如 ARC-AGI(2019;2025)
  • 另外,论文的发现基于特定的实验设置,论文的观察和结论可能无法推广到所有 RLVR 场景
    • 例如,在不同的 RLVR 设置中,实验中观察到的 20% 有效比例可能需要调整为其他值才能达到最佳效果

Future Directions

  • 未来的研究方向包括开发新的 RLVR 算法以更好地利用高熵少数 Token
  • 同时探索,除了提升 RLVR外,如何利用这些 insights 改进其他方法
    • 例如 SFT 、蒸馏(distillation)、推理(inference)以及多模态训练(multi-modal training)

附录:生成过程中 Token 的熵示例

  • 图12 至图17 展示了长链式思维中 Token Entropy 的详细可视化结果,表明大多数 Token 在高熵和低熵组之外,兼具不同程度的连接和延续功能

AGI——ilya采访笔记

  • 参考链接:
    • 完整版文字稿:重磅!Ilya现身,最新2万字采访来了:藏了一手,但其他全部都分享出来了「超级 AI 将吞噬文明级能源」, 20251126

整体说明

  • Ilya Sutskever(SSI 创始人、 AI 领域最顶尖学者之一)分享了对通用人工智能(AGI)、模型训练、行业趋势、超级智能风险与治理等关键话题的深度观点

当前 AI 的核心瓶颈与训练问题

  • 泛化能力不足 :
    • 这是 AI 与人类的核心差距
    • 模型可通过海量数据训练精通特定任务(如编程竞赛),但无法像人类一样迁移能力、培养“品味”或判断力
    • 例如青少年 10 小时能学会开车,而模型即使解决所有竞技编程问题,也可能在实际代码优化中反复出错
  • 评估与实际表现脱节 :
    • RL 训练易“针对评估优化”,导致模型测试分数优异但现实应用中漏洞频发(如修 bug 时引入新问题、来回循环错误)
    • 本质是人类研究员过度关注基准测试,成为“真正的奖励黑客”
  • 预训练与 RL 的局限 :
    • 预训练:优势是数据量大、无需刻意筛选(涵盖人类思想与行为),但模型对数据的依赖逻辑难以推理,且无法实现人类级别的深度理解
    • RL 训练:自由度过高,企业常从评估测试中汲取灵感设计训练环境,导致模型“偏科”;现有 RL 需等到任务结束才反馈奖励,效率低下,价值函数(中途判断行为好坏)可提升效率,但尚未被充分利用
  • 样本效率低下 :
    • AI 学习需海量数据,而人类依赖进化赋予的“先验知识”(如视觉、运动能力的先天基础),少量样本即可掌握技能,这种差距源于人类更优的学习机制

超级智能的发展预测与特征

  • 诞生时间线 :
    • 预计 5-20 年内,拥有“大陆级算力”的超级智能将诞生
  • 核心特征 :
    • 并非“天生掌握所有技能的成品”,而是具备“类人终身学习能力”
    • 能快速学习经济中各类工作,通过部署后的试错与积累持续进化,且可合并不同实例的学习成果(人类无法实现的思想融合)
  • 经济影响 :
    • 超级智能广泛部署后将引发“快速经济增长”,但增速受世界复杂性、监管政策、国家间规则差异影响;
    • 规则友好的地区经济增长会更显著
  • 与人类的差异 :
    • 超级智能将极其强大,但可能受限于“泛化能力”的终极突破;
    • 若能实现“稳健对齐感知生命”,可能形成与人类不同的价值导向

AI 行业趋势:从“扩展时代”回归“研究时代”

  • 时代划分 :
    • 2012-2020年:研究时代(探索核心技术与方向)
    • 2020-2025年:扩展时代(聚焦数据、参数、算力的规模扩张,风险低、回报明确)
    • 未来:回归研究时代——数据终将耗尽,单纯扩大规模无法实现质变,需重新探索新训练配方、核心机制(如价值函数、泛化能力突破)
  • 研究的关键需求 :
    • 无需“绝对最大算力”:历史上 AlexNet、Transformer 等突破仅用少量 GPU 即可验证,核心是想法而非算力堆砌;
    • SSI 虽融资 30 亿美元(少于巨头),但专注研究(不浪费算力在推理、产品功能上),足以验证关键方向
    • 需多元化探索:当前行业“想法比公司少”,企业同质化竞争,未来需回归“多方向试错”的研究氛围,鼓励差异化思路
  • 技术方向趋同 :
    • 长期来看, AI 公司的“对齐策略”会趋同——均需聚焦“超级智能的安全可控”,如让 AI 关心感知生命、人类福祉、民主等核心价值

SSI 的战略与定位

  • 核心目标 :
    • 默认计划是“直通超级智能”,避免日常市场竞争的干扰,专注研究;但不排除调整——若时间线过长或需让世界感知 AI 价值,可能逐步部署
  • 差异化优势 :
    • 技术方向:聚焦“泛化能力突破”等核心问题,探索有别于现有巨头的训练方法
    • 算力分配:将更多算力用于研究而非推理、产品功能,避免资源碎片化
    • 长期视角:不追求短期商业收益,以“安全构建超级智能”为核心使命
  • 应对联合创始人离职 :
    • 前 CEO 离职是因 Meta 收购提议的分歧(Ilya 拒绝收购,创始人接受并获得流动性),SSI 研究进展未受影响,过去一年已取得“相当不错的进展”

AI 安全与对齐:核心挑战与解决方案

  • 核心挑战 :
    • 难以想象超级智能的实际形态,导致当前安全措施缺乏针对性
    • 现有 AI 的错误掩盖了其潜在力量,企业对安全的重视不足;
      • 一旦 AI “真正让人感到强大”,行业会变得更偏执于安全
    • 对齐目标的模糊性:人类价值观复杂,进化编码的社会欲望(如在乎他人评价、地位)难以被 AI 复制,且未来感知生命可能以 AI 为主,“人类中心主义”对齐标准存在局限
  • 潜在解决方案 :
    • 价值函数优化:提升 RL 训练效率,让模型在任务中途获得反馈,减少无效试错
    • 对齐“感知生命”:相比仅对齐人类,让 AI 关心所有感知生命(包括自身)可能更易实现,源于镜像神经元与同理心的涌现属性
    • 限制超级智能的力量上限:通过协议或技术手段设定边界,缓解安全担忧
    • 渐进式部署:即使“直通超级智能”,也会逐步发布、试错,让世界适应,分散影响
  • 长期均衡设想 :
    • 人类可能通过 “Neuralink++” 等技术成为“半 AI ”,实现与 AI 的“理解全盘传递”,避免人类脱离决策循环的不稳定状态

对人类学习与智能本质的思考

  • 情绪与价值函数 :
    • 人类情绪是“内置价值函数”,调节决策方向(如情感受损者无法快速做决定),但 AI 领域暂无完美类比,现有价值函数作用有限
  • 进化的作用 :
    • 人类的样本效率、泛化能力依赖进化赋予的“先验”,不仅包括低层级欲望(如对食物的偏好),还包括复杂社会欲望(如社交认可),但进化如何编码高层级欲望仍是“谜”(无法用简单的脑区定位等理论解释)
  • 研究品味的核心 :
    • 优秀的 AI 研究需兼顾“大脑启发、美、简单、优雅”
    • 即从人类智能本质出发,寻找核心机制(如神经元、分布式表征),以“自顶向下的信念”支撑研究(即使实验数据暂时相悖,也需坚持本质正确的方向)

其他关键观点

  • “慢速起飞”的错觉 :
    • AI 投资已达 GDP 1% 级别,但因抽象性和人类适应力强,普通人暂未切实感受到影响;
    • 未来 AI 将渗透整个经济,影响会“强烈显现”
  • 模型同质化的原因 :
    • 预训练数据高度重叠,导致不同公司的LLM相似;
    • RL 和后训练是差异化的关键
  • 多样性的重要性 :
    • AI 团队需要“思维不同的智能体”而非复制体(收益递减),可通过对抗性设置(如辩论、证明者-验证者、LLM-as-a-Judge)创造差异化激励
  • 自我博弈的价值 :
    • 可仅用算力创造数据(突破数据瓶颈),但传统自我博弈过于狭窄,需转化为更普遍的对抗性设置(如多智能体竞争差异化方法)

AGI——Welcome-to-the-era-of-Experience

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Welcome to the Era of Experience, David Silver & Richard S. Sutton
    • 注:这篇论文是即将面世的书籍《Designing an Intelligence》中的一个章节的 preprint

TLDR

  • 本人对论文的一句话核心总结 :RL is all you Need!
    • 作者观点 1:当前人们因为 LLM 的崛起而不关注 RL,但这只是暂时的,要实现最终的 AGI ,最终还是需要 RL
    • 作者观点 2:RL 的春天要来了,超越人类智能的 Agent 实现路径是基于 Experience 的 RL

Abstract

  • 我们正站在人工智能新时代的门槛上,这个时代有望实现前所未有的能力水平
  • 新一代的 Agent 将主要通过从 Experience 中学习来获得超人的能力
  • 论文探讨了将定义这个即将到来的时代的关键特征

The Era of Human Data

  • 人工智能 (AI) 通过在大量人类生成的数据上进行训练,并用人类专家的示例和偏好进行微调,取得了显著进步
    • LLM 就是这种方法的典范,LLMs 已经达到了广泛的通用性
  • 一个单一的 LLM 现在可以执行从写诗和解决物理问题到诊断医疗问题和总结法律文件等任务
  • However,虽然模仿人类足以在许多能力上达到合格水平,但孤立地使用这种方法尚未、并且很可能无法在许多重要主题和任务上实现超人智能(superhuman intelligence)
  • 在数学、编程和科学等关键领域,从人类数据中提取的知识正在迅速接近极限
  • 大多数高质量数据源(特指那些确实能够提升强 Agent 性能的数据源)要么已经被消耗,要么很快将被消耗殆尽
  • 仅靠人类数据监督学习推动的进展速度明显在放缓,这表明需要一种新的方法
  • Furthermore,有价值的新 Insights,如新定理、新技术或科学突破,超出了当前人类理解的边界,无法被现有的人类数据所捕捉

Experience 时代 (The Era of Experience)

  • 为了取得显著进步,需要一种新的数据来源
  • 这种数据必须以 Agent 变得更强而持续改进的方式生成;任何静态的合成数据生成程序都将迅速被超越
  • 这可以通过允许 Agent 从其自身 Experience (即 Agent 与其环境交互生成的数据)中持续学习来实现
    • experience , i.e., data that is generated by the agent interacting with its environment
  • 人工智能正处在一个新时期的边缘, Experience 将成为主要的改进媒介,并最终使当今系统中使用的人类数据的规模相形见绌
  • 这种转变可能已经开始了,即使对于体现以人为中心的人工智能的 LLM 也是如此
    • 数学能力就是一个例子
    • AlphaProof (2024) 最近成为第一个在国际数学奥林匹克竞赛中获得奖牌的程序,超越了以人类为中心的方法的性能 (2025, 2024, 2025)
  • 在最初接触了由人类数学家多年来创建的大约十万个形式化证明之后,AlphaProof 的强化学习算法1随后通过与形式化证明系统的持续交互,生成了一亿多个证明
    • 注:RL 算法是一种通过试错来学习实现目标的算法,即从其与环境交互的 Experience 中调整其行为
      • 调整可以通过任何方式进行,例如更新神经网络的权重,或根据环境的反馈进行上下文内调整
  • 这种对交互 Experience 的关注使得 AlphaProof 能够探索超出预先存在的形式化证明范围的数学可能性,从而发现解决新颖且具有挑战性问题的方案
  • 非形式数学也通过用自我生成的数据替代专家生成的数据取得了成功;例如,DeepSeek 最近的工作
    • “强调了强化学习的力量和美感:论文不是明确地教导模型如何解决问题,而是简单地为其提供正确的激励,它就能自主地发展出高级的问题解决策略”(2025)

      underscores the power and beauty of reinforcement learning: rather than explicitly teaching the model on how to solve a problem, we simply provide it with the right incentives, and it autonomously develops advanced problem-solving strategies.

  • 论文的论点是,一旦充分发挥 Experience 学习的潜力,将会出现令人难以置信的新能力
  • 这个 Experience 时代的特征很可能在于 Agent 和环境,除了从大量 Experience 数据中学习之外,还将在几个更深的维度上突破以人类为中心的人工智能系统的局限:
    • Agent 将生存在 Experience 流 (streams of experience) 中,而非简短的交互片段中
    • 它们的行动和观察将根植于环境 (richly grounded in the environment),而非仅仅通过人类对话进行交互
    • 它们的奖励 (rewards) 将基于其在环境中的 Experience ,而非来自人类的预判
    • 它们将对 Experience 进行 规划和/或推理 (plan and/or reason about experience),而非仅以人类术语进行推理
  • 作者相信,今天的技术,配合适当选择的算法,已经为取得这些突破提供了足够强大的基础
  • Furthermore,人工智能界对此议程的追求将推动这些方向的新创新,迅速推动人工智能走向真正的超人类 Agent

Streams(流)

  • 一个 Experience 式 Agent 可以在一生中持续学习
  • 在人类数据时代,基于语言的人工智能主要关注简短的交互片段:e.g.,用户提出问题, Agent (可能在几个思考步骤或工具使用动作后)做出回应
    • Typically,几乎没有或根本没有信息从一个片段延续到下一个片段,排除了任何随时间推移的适应
    • Furthermore, Agent 只专注于在当前片段内取得结果,例如直接回答用户的问题
  • In contrast,人类(和其他动物)存在于一个持续多年的行动和观察流中
    • 信息在整个流中传递,它们的行为根据过去的 Experience 进行调整以自我纠正和改进
    • Furthermore,goals 可以用延伸至流未来的行动和观察来指定
    • For Example,人类可以选择行动以实现长期目标,如改善健康、学习一门语言或实现科学突破
  • 强大的 Agent 应该拥有自己的 Experience 流,像人类一样在长时间尺度上推进
    • 这将允许 Agent 采取行动以实现未来目标,并随时间不断适应新的行为模式
    • For example,
      • 一个连接到用户可穿戴设备的健康和保健 Agent ,可以连续数月监测睡眠模式、活动水平和饮食习惯
        • 然后它可以提供个性化的建议、鼓励,并根据长期趋势和用户的特定健康目标调整其指导
      • Similarly,个性化教育 Agent 可以跟踪用户在学习一门新语言方面的进展,识别知识差距,适应其学习风格,并在数月甚至数年内调整其教学方法
      • Furthermore,一个科学 Agent 可以追求雄心勃勃的目标,例如发现一种新材料或减少二氧化碳排放
    • 这样的 Agent 可以在较长时间内分析现实世界的观察数据,开发和运行模拟,并提出现实世界的实验或干预措施
  • 在每种情况下, Agent 都采取一系列步骤,以最大化相对于指定目标的长期成功
    • 单个步骤可能不会提供任何即时利益,甚至可能在短期内不利,但总体上可能有助于长期成功
    • 这与当前的人工智能系统形成鲜明对比,当前人工智能系统对请求提供即时响应,没有任何能力衡量或优化其行动对环境产生的未来后果

Actions and Observations

  • Experience 时代的 Agent 将在现实世界中自主行动
  • 人类数据时代的 LLM 主要关注人类特权行动和观察,即向用户输出文本,并从用户接收文本输入到 Agent
    • 这与自然智能形成鲜明对比,在自然智能中,动物通过运动控制和传感器与其环境交互
    • 虽然动物(尤其是人类)可能与其他动物交流,但这是通过与其他感觉运动控制相同的接口进行的,而不是通过特权通道(理解:这里说的是不是专门为输入文本准备的通道)
  • 人们早已认识到, LLM 也可以在数字世界中调用行动,例如通过调用 API(例如,参见 (2023))
    • Initially,这些能力主要来自人类使用工具的示例,而不是 Agent 的 Experience
    • However,Coding 和 tool-use 能力越来越依赖于执行反馈 (2022, 2023, 2025),即 Agent 实际运行代码并观察发生的情况
  • Recently,新一代原型 Agent 开始以更通用的方式与计算机交互,即使用人类操作计算机所用的相同接口 (2024, 2024, 2025)
  • 这些变化预示着从纯粹的人类特权通信,向更自主的交互过渡,使得 Agent 能够在世界中独立行动
    • 这样的 Agent 将能够积极探索世界,适应不断变化的环境,并发现人类可能从未想到过的策略
  • 这些更丰富的交互将提供一种自主理解和控制数字世界的手段
    • Agent 可以使用“用户友好”的行动和观察,如用户界面,自然地促进与用户的沟通和协作
    • Agent 也可以采取“机器友好”的行动来执行代码和调用 API,允许 Agent 自主行动以服务于其目标
  • 在 Experience 时代, Agent 还将通过数字接口与真实世界交互
    • For Example,一个科学 Agent 可以监测环境传感器,远程操作望远镜,或在实验室中控制机器人手臂以自主进行实验

Rewards

  • 如果 Experience 式 Agent 可以从外部事件和信号中学习,而不仅仅是人类偏好,会怎样?
  • 以人类为中心的 LLM 通常根据人类预判来优化奖励:
    • 专家观察 Agent 的行动并决定其是否是一个好行动,或者在多个备选方案中选择最佳 Agent 行动
    • For Example,专家可以评判健康 Agent 的建议、教育助理的教学或科学家 Agent 建议的实验
      • 这些奖励或偏好是由人类在缺乏其后果的情况下决定的,而不是衡量这些行动对环境的影响,这意味着它们并非直接植根于现实世界
  • 依赖这种人类预判的方式通常会给 Agent 的性能带来一个难以逾越的上限:
    • Agent 无法发现被人类评估者低估的更好策略
  • 要发现远远超出人类现有知识的新思想,需要使用根植于现实的奖励 (grounded rewards):源于环境本身的信号
    • For Example,一个健康助理可以将用户的健康目标转化为基于静息心率、睡眠持续时间和活动水平等信号组合的奖励,而教育助理可以使用考试成绩为语言学习提供根植于现实的奖励
    • Similarly,一个以减少全球变暖为目标的科学 Agent 可能使用基于二氧化碳水平实证观察的奖励,而一个发现更强材料的目标可能基于材料模拟器的测量组合,如拉伸强度或杨氏模量
  • 根植于现实的奖励也可能来自作为 Agent 环境一部分的人类
    • 注:Experience 和人类数据并非完全对立,For Example,狗完全从 Experience 中学习,但人类互动是其 Experience 的一部分
    • For Example,人类用户可以报告他们是否觉得蛋糕美味,运动后有多疲劳,或头痛的疼痛程度,使助理 Agent 能够提供更好的食谱,完善其健身建议,或改进其推荐药物
    • 此类奖励衡量 Agent 行动在其环境中的后果,最终应能提供比预判蛋糕食谱、锻炼计划或治疗计划的人类专家更好的帮助
  • 如果奖励不来自人类数据,那它们来自哪里?
    • 一旦 Agent 通过丰富的行动和观察空间(见上文)连接到世界,将不缺乏根植于现实的信号作为奖励的基础
    • 事实上,世界充满了各种量化指标,如成本、错误率、饥饿感、生产力、健康指标、气候指标、利润、销售额、考试成绩、成功、访问量、产量、库存、点赞、收入、快乐/痛苦、经济指标、准确性、功率、距离、速度、效率或能源消耗

      such as cost, error rates, hunger, pro- ductivity, health metrics, climate metrics, profit, sales, exam results, success, visits, yields, stocks, likes, income, pleasure/pain, economic indicators, accuracy, power, distance, speed, efficiency, or energy consump- tion

    • 此外,还有无数源自特定事件发生、或从原始观察和行动序列中提取特征的额外信号
  • 原则上,可以创建多种不同的 Agent ,每个 Agent 优化一个根植于现实的信号作为其奖励
    • 有观点认为,即使是单个这样的奖励信号,若能被高度有效地优化,也可能足以诱导出广泛的能力性智能 (2021)
      • 注:奖励即足够假说 (The reward-is-enough hypothesis) 认为,智能及其相关能力可以从奖励最大化中自然涌现
      • 这可能包括包含人类交互的环境和基于人类反馈的奖励
    • 这是因为在一个复杂环境中实现一个简单的目标,通常需要掌握各种各样的技能
  • However,追求单一奖励信号在表面上似乎不符合通用人工智能的要求,即能够可靠地引导向任意用户期望的行为
  • 那么,自主优化根植于现实的、非人类奖励信号是否与现代人工智能系统的要求相悖?
    • 作者认为并非必然如此
  • 论文概述一种可能满足这些要求的方法;其他方法也可能存在:其思想是以用户引导的方式,基于根植于现实的信号灵活调整奖励
    • For Example,奖励函数可以由一个神经网络定义,该网络将 Agent 与用户和环境的交互作为输入,并输出一个标量奖励
      • 这允许奖励以取决于用户目标的方式从环境中选择或组合信号
    • For Example,用户可以指定一个广泛的目标,如“改善我的健康状况”,奖励函数可能返回用户心率、睡眠持续时间和步数的函数
    • Or,用户可以指定“帮助我学习西班牙语”的目标,奖励函数可以返回用户的西班牙语考试成绩
  • Furthermore,用户可以在学习过程中提供反馈,例如他们的满意度,可用于微调奖励函数
    • 奖励函数可以随时间调整,以改进其选择或组合信号的方式,并识别和纠正任何偏差
    • 这也可以理解为一个双层优化过程,将用户反馈优化作为顶层目标,将环境中的根植于现实的信号优化作为底层目标(这样,少量的人类数据可以促进大量的自主学习)
      • 注:In this case, one may also view grounded human feedback as a singular reward function forming the agent’s overall objective, which is maximised by constructing and optimising an intrinsic reward function (2004) based on rich, grounded feedback.

Planning and Reasoning

  • Experience 时代会改变 Agent 规划和推理的方式吗?
  • Recently,在使用能够推理或“think” with language 的 LLM 方面取得了重大进展 (2024, 2024, 2025),它们在输出响应之前还会输出一个思维链 (2022)
  • 从概念上讲(Conceptually), LLM 可以充当通用计算机 (2023): LLM 可以将 Token 附加到其自身上下文中,使其能够在输出最终结果之前执行任意算法
  • 在人类数据时代,这些推理方法被明确设计来模仿人类的思维过程
    • For Example, LLM 被提示生成类人的思维链 (2022),模仿人类思维轨迹 (2022),或强化与人类示例匹配的思维步骤 (2023)
    • 推理过程可以进一步微调,以产生与人类专家确定的正确答案相匹配的思维轨迹 (2022)
  • However,人类语言几乎不可能提供通用计算机的最佳实例(it is highly unlikely that human language provides the optimal instance of a universal computer)
    • 肯定存在更高效的思维机制,使用非人类语言,例如利用符号、分布式、连续或可微分计算
    • 一个自学习系统原则上可以通过从 Experience 中学习如何思考来发现或改进此类方法
    • For Example,AlphaProof 学会了以一种与人类数学家截然不同的方式形式化证明复杂定理 (2024)
  • Furthermore,通用计算机的原则只涉及 Agent 的内部计算;它并未将其与外部世界的现实联系起来
  • 一个被训练来模仿人类思想甚至匹配人类专家答案的 Agent ,可能会继承深植于该数据中的错误思维方法,例如有缺陷的假设或固有偏见
    • For Example,Agent 使用不同的数据会得到不同的思想:
      • 若使用 5000 年前的人类思想和专家答案进行推理,它可能以万物有灵论的方式思考物理问题;
      • 1000年前可能是神学方式;300年前可能是牛顿力学方式;
      • 50年前可能是量子力学方式
    • 要超越每种思维方式,都需要与现实世界交互:提出假设、进行实验、观察结果并相应地更新原理
  • Similarly, Agent 必须根植于现实世界的数据,才能推翻错误的思维方法
    • 这种根植性提供了一个反馈循环,允许 Agent 根据现实检验其继承的假设,并发现不受当前主流人类思维模式限制的新原理
    • 没有这种根植性,无论多么复杂的 Agent ,都将成为现有人类知识的回声室(echo chamber)
  • 为了超越这一点, Agent 必须积极与世界互动,收集观察数据,并使用这些数据迭代地完善其理解,这在许多方面反映了推动人类科学进步的过程
  • 将思维直接根植于外部世界的一种可能方式是构建一个世界模型 (world model) (2018),用于预测 Agent 行动对世界的后果,包括预测奖励
    • For Example,一个健康助理可能考虑推荐一家本地健身房或一个健康播客
    • Agent 的世界模型可能会预测用户的静息心率或睡眠模式在此行动后可能如何变化,以及预测与用户的未来对话
      • 这允许 Agent 直接根据其自身行动及其对世界的因果效应进行规划 (1990, 2020)
    • 随着 Agent 在其 Experience 流中持续与世界互动,其动态模型不断更新以纠正其预测中的任何错误
    • 给定一个世界模型, Agent 可以应用可扩展的规划方法来提高 Agent 的预测性能
  • Planning 方法和 Reasoning 方法并不相互排斥:
    • Agent 可以在规划过程中应用内部 LLM 计算来选择每个行动,或者模拟和评估这些行动的后果

Why Now?

  • 从 Experience 中学习并非新鲜事
  • 强化学习系统以前已经掌握了大量在模拟器中表示并具有明确奖励信号的复杂任务(参见图1中大致对应的“模拟时代”)
  • For Example, 强化学习方法在
    • 双陆棋 (1994)、围棋 (2016)、国际象棋 (2018)、扑克 (2017, 2018) 和 Stratego (2022) 等棋盘游戏中通过自我对弈达到或超越了人类水平;
    • 在雅达利游戏(Atari) (2015)、星际争霸II (2019)、Dota 2 (2019) 和 Gran Turismo (2022) 等视频游戏中;
    • 在如魔方 (2019) 等灵巧操作任务中;
    • 在如数据中心冷却 (2016) 等资源管理任务中
  • Furthermore,像 AlphaZero (2017) 这样强大的强化学习 Agent ,随着神经网络规模、交互 Experience 数量和思考时间的增加,展现出令人印象深刻且可能无限的扩展性
  • However,基于这种范式的 Agent 未能跨越从模拟(具有单一、精确定义奖励的封闭问题)到现实(具有多种看似定义不清奖励的开放式问题)的鸿沟
  • 人类数据时代提供了一个有吸引力的解决方案
    • 海量的人类数据包含了针对海量多样化任务的自然语言示例
    • 在此数据上训练的 Agent ,与模拟时代较窄的成功相比,取得了广泛的能力
  • Consequently,Experience 式强化学习的方法论在很大程度上被弃用,转而青睐更 General-purpose 的 Agent ,导致了向以人类为中心的人工智能的广泛过渡
  • However,在这种转变中失去了一些东西: Agent 自我发现其自身知识的能力
    • For Example,AlphaZero 发现了国际象棋和围棋的全新策略,改变了人类玩这些游戏的方式 (2019, 2018)
  • Experience 时代将把这种能力与人类数据时代所达到的任务通用性水平结合起来
    • 如上所述,当 Agent 能够在现实世界的 Experience 流中自主行动和观察 (2024),并且奖励可以灵活地连接到任何丰富的、根植于现实的真实世界信号时,这将成为可能
    • 能够与复杂的、现实世界行动空间交互的自主 Agent (2024, 2024, 2025) 的出现,以及能够在丰富推理空间中解决开放式问题的强大强化学习方法 (2024, 2025),表明向 Experience 时代的过渡已迫在眉睫
  • 图1:主流人工智能范式的草图年表
    • 纵轴表示:专注于强化学习的努力/该领域总努力

Reinforcement Learning Methods

  • 强化学习有着深厚的历史渊源,根植于自主学习,即 Agent 通过与其环境直接交互为自己学习
  • 早期的强化学习研究产生了一系列强大的概念和算法
    • For Example,时间差分学习 (1988) 使 Agent 能够估计未来奖励,从而取得了诸如在双陆棋中超越人类水平 (1994) 等突破
    • 以乐观或好奇心驱动的探索技术被开发出来,以帮助 Agent 发现创造性的新行为并避免陷入次优的常规 (2021)
    • 像 Dyna 算法这样的方法使 Agent 能够构建和学习其世界模型,从而允许它们对未来行动进行规划和推理 (1990, 2020)
    • 选项 (options) 和选项内/选项间学习等概念促进了时间抽象,使 Agent 能够在更长时间尺度上进行推理,并将复杂任务分解为可管理的子目标 (1999)
      • 注:Option 是分层强化学习的经典时间抽象工具,由 Sutton 等人在 1999 年提出,用于将多步行为封装为可复用的 “宏动作 / 子策略”,实现跨时间尺度的决策与规划,适配复杂任务的分解与迁移
  • However,以人类为中心的 LLM 的兴起,将焦点从自主学习转移到了利用人类知识上
    • 像 RLHF (2017, 2022) 和使语言模型与人类推理保持一致的方法 (2022) 等技术被证明极其有效,推动了人工智能能力的快速进步
    • 这些方法虽然强大,但往往绕过了强化学习的核心概念:RLHF 通过调用人类专家替代机器估计的价值,回避了对价值函数的需求;
    • 来自人类数据的强先验减少了对探索的依赖;以人类为中心的术语进行推理降低了对世界模型和时间抽象的需求
  • 可以说这种范式的转变是“把婴儿和洗澡水一起倒掉了(has thrown out the baby with the bathwater)”
    • 虽然以人类为中心的强化学习实现了前所未有的行为广度,但它也给 Agent 的性能强加了一个新的上限: Agent 无法超越现有的人类知识
    • FurtherMore,人类数据时代主要关注那些为短片段(short episodes)、非根植的(ungrounded)人类交互设计的强化学习方法,这些方法并不适用于长期的、根植于现实的(grounded)自主交互流

      the era of human data has focused predominantly on RL methods that are designed for short episodes of ungrounded, human interaction, and are not suitable for long streams of grounded, autonomous interaction.

  • Experience 时代提供了一个重新审视和改进经典强化学习概念的机会
    • 这个时代将带来关于奖励函数的新思考方式,使其灵活地植根于观察数据
    • Experience 时代将重新审视价值函数以及从尚不完整的长期流中估计价值的方法
    • Experience 时代将带来有原则且实用的现实世界探索方法,以发现与人类先验截然不同的新行为
    • Experience 时代将开发新颖的世界模型方法来捕捉根植交互的复杂性
  • 新的时间抽象方法将使 Agent 能够在 Experience 层面上,在更长的时间跨度上进行推理
  • 通过在强化学习的基础上,并将其核心原理适应这个新时代的挑战,我们可以释放自主学习的全部潜力,并为通向真正的超人类智能铺平道路

Consequences

  • Experience 时代的到来,即人工智能 Agent 从与世界的交互中学习,预示着与论文迄今为止所见任何事物都截然不同的未来
  • 这种新范式虽然提供了巨大的潜力,也带来了重要的风险和挑战,需要仔细考虑,包括但不限于以下几点
  • 积极方面(On the positive side), Experience 学习将释放前所未有的能力
    • 在日常生活中,个性化助手将利用连续的 Experience 流,在数月或数年内,针对个人的健康、教育或职业需求,朝着长期目标进行调整
      • 也许最具变革性的是科学发现的加速
    • 人工智能 Agent 将自主设计和进行材料科学、医学或硬件设计等领域的实验
    • 通过持续从自身实验结果中学习,这些 Agent 可以迅速探索新的知识前沿,以前所未有的速度开发出新颖的材料、药物和技术
  • However,这个新时代也带来了重大且新颖的挑战
    • 虽然人类能力的自动化有望提高生产力,但这些改进也可能导致工作岗位的流失
    • Agent 甚至可能展现出先前被认为是人类专属领域的能力,例如长期问题解决、创新以及对现实世界后果的深刻理解
  • Furthermore,在对人工智能的潜在滥用存在普遍担忧的同时,那些能够自主与世界长时间交互以实现长期目标的 Agent 可能会带来更高的风险
    • 默认情况下(By default),这为人类干预和调解 Agent 的行动提供了更少的机会,因此需要更高水平的信任和责任
    • 远离人类数据和人类思维模式也可能使未来的人工智能系统更难以解释
  • However,承认 Experience 学习会增加某些安全风险的同时,肯定需要进一步研究以确保安全过渡到 Experience 时代,我们也应认识到,它也可能提供一些重要的安全益处
  • Firstly, Eexperiential Agent 了解自身所处的环境,其行为可以随时间推移适应环境的变化
    • 注:任何预编程的系统,包括固定的人工智能系统,都可能不了解自身环境背景,并对其部署到的变化的世界 maladapted
      • For Example,关键硬件可能发生故障,流行病可能导致快速的社会变化,或者新的科学发现可能引发一系列快速的技术发展
    • By Contrast, Experiential Agent 可以观察并学习规避故障硬件,适应快速的社会变化,或者拥抱并基于新科学技术进行构建
    • Perhaps even more importantly, Agent 可以识别其行为何时引发了人类的担忧、不满或痛苦,并自适应地修改其行为以避免这些负面后果
  • Second, Agent 的奖励函数本身可以通过 Experience 进行调整,例如使用前面描述的双层优化(参见奖励部分)
    • 重要的是,这意味着不一致的奖励函数通常可以通过试错随时间逐步纠正
      • For Example,奖励函数可以基于人类担忧的迹象进行修改,而不是盲目地优化一个信号,例如最大化回形针生产 (2003),直到回形针生产耗尽地球资源
    • 这类似于人类为彼此设定目标,然后如果观察到人们钻系统空子、忽视长期福祉或导致不希望看到的负面后果,则调整这些目标;
    • 不过也像人类设定目标一样,无法保证完美的一致
  • Finally,依赖于物理 Experience 的进步本身受到在现实世界中执行行动和观察其后果所需时间的限制
    • For Example,一种新药的开发,即使有 AI 辅助设计(AI-assisted Design),仍然需要无法在一夜之间完成的现实世界试验
    • 这可能为潜在的人工智能自我改进速度提供一个天然的制约

Conclusion

  • Experience 时代标志着人工智能演进的关键时刻
    • 建立在当今坚实的基础上,但超越人类衍生数据的局限, Agent 将越来越多地从自身与世界的交互中学习
  • Agent 将通过丰富的观察和行动与环境自主交互
    • Agent 将在终生的 Experience 流中持续适应
  • Agent 的目标可以被引导至任何根植于现实的信号组合
  • Furthermore, Agent 将利用强大的非人类推理能力,并构建基于 Agent 行动对其环境所产生后果的规划
  • Ultimately, Experiential 数据将在规模和质量上超越人类生成的数据
    • 这种范式转变,伴随着强化学习的算法进步,将在许多领域释放超越任何人类所拥有的新能力

NLP——技术报告解读-Motif-2-12.7B-Reasoning

注:本文包含 AI 辅助创作

  • 参考链接:
    • 前置工作:Motif 2 12.7B technical report, 20251207, Motif Technologies
    • 原始论文:Motif-2-12.7B-Reasoning: A Practitioner’s Guide to RL Training Recipes, 20251211, Motif Technologies
    • 其他解读博客:Motif-2-12.7B-Reasoning:RL 训练配方与全栈优化实践指南

Paper Summary

  • 整体总结
    • 论文介绍了 Motif-2-12.7B-Reasoning(12.7B 参数):挑战了复杂推理需要海量规模的假设
    • 论文证明了,在有限预算下释放稳健的推理能力,一个整体的优化策略是必不可少的
      • 包括面向 64K 上下文的系统级效率、分布对齐的监督微调以及一个稳定的强化学习方案
    • 针对推理适应过程中常见的模型崩溃和训练不稳定挑战:提出了一套涵盖系统、数据和算法优化的全面、 可复现 的训练方案
  • 论文的方法结合了用于 64K Token 上下文的内存高效基础设施(采用混合并行和内核级优化)以及一个两阶段的监督微调课程,该课程通过经过验证、对齐的合成数据来缓解分布不匹配问题
  • Motif-2-12.7B-Reasoning 在数学、编码和智能体基准测试中取得了与参数量显著更大的模型相当的性能

Introduction and Discussion

  • 近年来,LLM 的发展在通用指令遵循方面取得了显著进展,yet 稳健的复杂推理和长上下文理解仍然是开放的挑战
  • A growing body of work 测试时扩展(通过更长的思维链、多步推理或多样本推理分配更多推理计算)不仅能显著提升数学和编码任务的表现,也能改善指令遵循、工具使用和智能体决策
  • At the same time,无论是闭源的前沿模型还是最强的开源权重系统,都越来越多地采用优化推理的 LLM 形式,这反映在诸如 Artificial Analysis Intelligence Index (AAII) (2024) 等基准测试中,其中“thinking”变体始终优于非推理的对应版本(non reasoning counterparts)
  • 尽管有这种转变(Despite this shift),训练推理 LLM 仍只对少数组织开放
  • 关于扩展强化学习微调、稳定长序列训练以及高效处理长上下文工作负载的实用方案很少被详细记录
  • In particular,虽然 RLFT 常被宣传为超越 SFT 的下一步,但实践者经常观察到,简单地应用 RLFT 会导致模型在我们希望改进的推理基准上崩溃或性能下降
  • As a result,社区虽然有强有力的证据表明推理模型和推理扩展很重要,但对于如何在现实预算约束下可靠地训练此类模型,却缺乏指导
  • In this context,论文介绍了 Motif-2-12.7B-Reasoning,一个基于 Motif-2-12.7B-Instruct (2025) 训练的 12.7B 参数推理 LLM,通过一个额外的分布对齐 SFT 阶段和一个精心设计的 RLFT 流程实现
    • Motif-2-12.7B-Reasoning 在一系列推理密集的基准测试中,其性能可与 30B 至 40B 参数范围的前沿模型相媲美,在某些情况下甚至超越
    • 在 AAII 及相关综合评估中,Motif-2-12.7B-Reasoning 取得了比 GPT-5.1 更高的分数,而在排名高于它的模型中,没有一个是小于 12.7B 参数的
  • 作者相信,人工智能的真正进步依赖于知识的共享和可复现性,而非不透明的“黑盒”训练流程
  • 本工作的目标有两个:
    • 目标一:将 Motif-2-12.7B-Reasoning 作为一个有竞争力的开源权重推理模型呈现;
    • 目标二:使其训练过程透明且实际可复现
  • 论文不仅记录了最终方案,也记录了塑造它的设计迭代、失败模式和经验教训,重点关注那些对稳定性、效率和性能产生实质影响的决策
  • 在 SFT 方面,论文描述了一个两阶段、分布对齐的课程,以密集化和结构化推理监督
    • 这包括针对性地整理多步推理数据(数学、代码和多跳自然语言)、将 SFT 数据分布与下游 RL 目标对齐,以及逐步增加任务难度和上下文长度同时保持指令遵循保真度的课程策略
  • 在 RLFT 方面,论文为推理和长上下文用例提出了一种实用的 RL 方案,重点关注可在现实计算预算内实现的技术
    • 论文详细阐述了针对不同推理任务的奖励建模方法、避免过度优化和模式崩溃的稳定性启发式方法 ,以及平衡探索与保留基础模型能力的调度策略
    • 论文进一步分析了这些设计选择如何与测试时扩展相互作用,表明在适当的约束下应用 RLFT,可以使其既稳定又能可靠地带来收益
  • Finally,实验结果表明 Motif-2-12.7B-Reasoning 在数学、编码、指令遵循、工具增强推理和长上下文基准测试上,相比 Motif-2-12.7B-Instruct 和其他竞争基线都有显著的性能提升
    • 论文强调了其测试时扩展行为、相对于更大前沿模型的参数效率,以及其在不同评估设置下的稳健性

Part 1 - System Optimization

Long Context Reasoning SFT

  • 论文的 SFT 方案需要将上下文长度扩展到 64K Token ,这反过来又需要在预训练所用并行方式之外,采用额外的并行形式
  • 为了解决这个问题,论文采用了混合并行策略:
    • 在每个节点内部(节点内),采用 DeepSpeed-Ulysses (2023) 序列并行 (Sequence Parallelism, SP) 并结合带参数分片的数据并行 (Data Parallelism with parameter sharding, DP-shard);
    • 在节点之间(节点间),使用带参数复制的数据并行 (Data Parallelism with parameter replication, DP-replicate)
  • In details,注意力层用 TP 处理,而 FFMs 在 SP 下运行
    • 使用 SP 的 FFNs 可以在 SP 网格上进行权重分片,因此论文在分片 FFN 参数时,构建了一个合并网格,将节点内的 DP-shard 网格与 SP 网格结合起来
    • 由于在 Motif-2-12.7B-Instruct (2025) 中引入的 Parallel Muon 被设计为可以在任意的梯度和参数放置配置下运行,因此对于混合并行化,不需要对优化器进行额外的修改
  • In addition,论文应用了细粒度的激活重计算 (activation checkpointing),而不是统一地重新计算每个解码器块
    • 论文没有在块粒度上设置检查点,而是分析了每个解码器块内每层的激活占用空间和重计算成本,并手动调整了一个更具选择性的重计算策略
    • 这种手动优化的策略在最小化峰值内存使用的同时,避免了不必要的重计算开销
  • 这些方法实现了高效的参数分布,并减轻了长上下文训练的内存压力
    • 使用此配置,论文成功在 H100 GPU 上训练了上下文长度为 64K 的模型

Liger Kernel’s loss function

  • RL 所需的内存比 SFT 大得多,主要是因为额外的组件(如策略模型)必须保留在内存中
    • 论文使用的策略实现(基于 vLLM)支持休眠模式等功能,但这些机制并不能完全消除其内存占用
  • 为了解决 RL 训练期间引入的额外内存压力,论文采用了 Liger 核 (2025) 的损失函数
  • 对 RL 内存使用模式的分析表明,峰值消耗发生在损失函数前向传播之后以及反向传播开始之时
    • 此时,前向计算过程中生成的所有检查点激活仍驻留在内存中(只有在反向传播进行时才会被释放)
  • Notably,形状为(上下文长度,词汇表大小)的对数 (logit) 激活比形状为(上下文长度,隐藏层大小)的典型激活要大得多,这意味着 LM 头和损失计算贡献了不可忽视的内存占用部分
  • Liger Kernel’s loss 沿上下文长度维度分割激活,在每个分片上计算 LM 头线性层,并计算每个分片的损失和梯度
    • 使用 Liger Kernel’s loss 可以显著减轻这些大型对数张量所带来的内存压力

Part 2 - Reasoning SFT

  • 论文引入了一个专注于推理的 SFT 阶段,旨在加强多步推理、增强长上下文一致性,并使模型与复杂指令遵循能力对齐
  • 早期实验表明,推理能力对数据集的构成、推理深度以及不匹配的推理模式高度敏感
  • 这些观察促使论文构建了一个结构化的 SFT 过程,该过程建立在两点之上:
    • (1)基于课程的长上下文适应
    • (2)分布对齐的合成推理数据生成

Lesson from failures

Lesson 1: Dynamic Dataset Distribution across Phases.
  • 论文的实证研究结果表明,在整个 SFT 过程中采用静态且均匀的数据分布是次优的
    • 这种策略常常导致模型过早收敛,阻碍其扩展推理能力,并可能引发灾难性遗忘
  • Instead,数据集分布进行动态转变至关重要 ,论文将此课程规划为两个战略阶段:
    • Stage 1 (Reasoning Foundation):
      • Stage 1 侧重于在代码、数学、STEM 和工具使用等领域建立全面的能力
      • 论文通过整合多种开源数据集来构建训练语料,包括 Memotron-Post-Training-Dataset (2025; 2025), OpenReasoningDataset (2025; 2025; 2025) 和 Mixture-of-Thoughts (2025; 2025; 2025)
      • 为确保数据质量,论文应用了后处理流程,根据难度、序列长度和验证情况过滤样本
        • For instance,在处理 rstar-coder (2025) 数据集时,基于实证观察,论文遵循“质量优于数量(quality-over-quantity)”的原则
      • 论文通过选择通过次数严格处于中间范围(\(0 < \textit{npass} < 16\))的案例,来筛选出具有区分性难度的问题
        • 从而修剪掉过于简单或经验上无法解决的样本
      • 从这个子集中,论文仅保留了那些经过明确验证且成功执行的轨迹 (verified=True and is_passed=True),优先考虑高保真度的推理而非数据量
        • 此阶段充当稳定器,奠定模型的通用推理能力,同时开始接触中等长度的上下文(16K-32K Token)
    • Stage 2 (深度推理专业化,Deep Reasoning Specialization)
      • Stage 2 通过注入高粒度的合成数据来针对复杂的推理差距,这些数据包括 CoT 密集型和失败驱动的纠正集(failure-driven correction sets)
      • Notably,论文为这些样本重新生成了推理轨迹,以强制执行与目标模型推理分布的结构对齐
      • Furthermore,此阶段通过将上下文窗口扩展到 64K Token 来完成上下文课程,使模型能够在长序列上保持连贯的推理
Lesson 2: The Distribution Mismatch Problem.
  • 论文早期实验的一个 key insight 是:
    • 合成数据的质量不仅仅关乎正确性,推理分布的对齐至关重要
  • 为了量化这一点,论文评估了推理对齐对 LiveCodeBench v5 (2024) 的影响,如图 2 所示
    • 论文将基线配置与使用来自 seed-oss-36b (2025) 和 gpt-oss-120b (2025) 的合成样本生成的配置进行比较
    • seed-oss 带来了显著的性能提升,但 gpt-oss 却导致了明显的性能下降
    • 这种对比意味着性能取决于推理轨迹的兼容性,而不仅仅是数据量
  • 论文推断 gpt-oss 导致的性能下降源于复杂性不匹配
    • 教师模型的推理轨迹可能表现出与学生模型内在推理风格不同的粒度和结构复杂性
    • 这种差异造成了“分布不匹配”,所强加的推理模式与模型的学习过程相冲突,而不是加强它
    • 这表明,合成监督在源自与目标模型能力相兼容的源时最为有效

Recipe

  • 为了应对这些挑战,论文建立了一个稳健的 SFT 方案,其核心在于通过课程学习确保稳定性,以及通过分布对齐确保质量,如图 3 所示

Strategy 1:合成数据生成 (注入推理信号) (Synthetic Data Generation (Injecting Reasoning Signals))

  • 论文生成多样化的合成数据集,专门设计用于向代码生成、工具调用、数学和指令遵循等目标领域注入强推理信号
  • 与标准数据集不同,这些数据集强调具有明确思维轨迹的结构化、多步推理,使模型能够内化复杂问题解决所需的逻辑进程
  • 结构化生成与验证流程 (Structured Generation and Verification Pipeline) 为确保数据一致性并避免分布不匹配问题,论文构建了一个多阶段流程:Query Generation → Response Generation → Verification
  • 验证阶段对于维持高数据保真度至关重要,采用了一套自动化检查:
    • 一致性与事实性 (Consistency & Factuality): 验证与原始查询的语义对齐,并验证事实准确性
    • 代码执行 (Code Execution): 对编程任务运行基于执行的测试,以确保功能正确性
    • 数学正确性 (Mathematical Correctness): 验证最终答案的准确性
    • 结构有效性 (Structural Validity): 确保推理轨迹保持逻辑且连贯的结构,并与论文的目标分布对齐

Strategy 2:课程学习 (渐进式上下文扩展) (Curriculum Learning (Progressive Context Extension))

  • 论文采用渐进的长度扩展课程,而不是让模型突然接触极长的序列
    • 上下文窗口分阶段扩展:16K → 32K → 64K Token
  • 这种逐步适应使模型能更有效地学习长距离依赖关系,同时缓解通常与突然扩展上下文相关的不稳定性
    • Furthermore,它还优化了注意力机制的行为,增强了模型在扩展上下文中保持连贯推理的能力

Part 3 - Reasoning RL

Background

  • GRPO(2024) 是一种为推理任务定制的 critic-free 的 PPO 变体
    • 与依赖独立价值函数的标准 Actor-Critic 方法不同,GRPO 直接从采样输出的分组统计中估计基线
    • Specifically,对于每个输入提示 \(q\),模型生成一组输出 \(\{o_{i}\}_{i=1}^{G}\),并在此组内对奖励进行标准化以计算相对优势 (advantage)。GRPO 目标函数正式定义为:
      $$\mathcal{L}_{\text{GRPO} }(\theta)=\mathbb{E}_{q\sim P(Q),\{o_{i}\} \sim\pi_{\text{fold} } } \left[\frac{1}{G}\sum_{i=1}^{G}\min\left(\rho_{i}(\theta)A_{i},\operatorname{clip}(\rho_{i}(\theta),1-\epsilon,1+\epsilon)A_{i}\right)\right], \tag{1}$$
    • 其中 \(\rho_{i}(\theta)=\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\text{old} }(o_{i}|q)}\) 表示重要性比率 (importance ratio),\(A_{i}\) 表示使用该组的均值和标准差进行归一化的优势
    • 这种表述有效地鼓励那些优于组平均水平的响应,而无需承担训练价值网络的计算开销
    • Note that ,论文采用了 GSPO (2025),它利用了序列级的重要性比率 \(\rho(\theta)\) formulation

Lesson from failures

  • 在启动全规模 RL 训练之前,论文首先在基础模型和推理 SFT 模型上进行了一系列小规模初步 RL 实验,以指导论文训练方案的设计
Inefficacy of hyperparameter tuning on proxy models.
  • 为减少计算开销,论文最初尝试在应用完整推理 SFT 模型之前,在一个中间预训练检查点(代理模型)上优化 RL 训练方案
  • However,论文观察到,尽管架构相同,但在代理模型上调优的超参数并不能可靠地泛化到更强的 SFT 模型上
    • For example,虽然某个特定的训练方案在应用于基础模型时,能在 AIME 24 上带来约 18% 的性能提升,但将完全相同的配置应用于推理 SFT 模型时,却导致性能停滞甚至下降
  • 这表明,在监督微调之后,最优的策略更新动态发生了显著变化,需要对目标模型进行直接调优
  • 理解:说明即使是同一个模型,不同 checkpoint 对应的超参数也应该是也不一样的
    • 应该是不同 checkpoint 采样分布差异大,但 RL 对 Base 模型的 Rollout 数据要求高导致的
Impact of reward shaping on unparsable trajectories.
  • 奖励公式对于指导策略更新至关重要 ,尤其是在处理格式错误方面
  • 论文观察到,当模型输出无法根据真实答案进行解析时,必须严格屏蔽这些实例,以防止它们对梯度产生影响
    • 在论文的实验中,保留这些实例并应用辅助奖励项(例如长度惩罚)会导致非零的优势
  • 这给训练信号引入了显著的噪声,因为策略可能会无意中被激励去优化辅助约束,而非正确的推理逻辑
  • 问题:无法解析的轨迹可能是不遵循格式,应该可以直接给这部分答案惩罚 “错误格式” 吧?
Necessity of difficulty alignment to prevent gradient vanishing.
  • 论文观察到,RLFT 对训练数据相对于模型能力的难度分布高度敏感
  • 如公式 1 所定义,优势 \(A_{j}\) 源自一组 rollout 内的相对性能
  • 在问题过于简单或极其困难的情况下,组内奖励方差会崩溃(即所有 rollout 获得相同的奖励)
    • 这导致优势为零 (\(A_{j}\to 0\)),进而使梯度消失,使得采样和评估成本变得无意义
  • 这意味着构建一个对齐良好的数据集,即 模型在某些 rollout 上成功,而在其他 rollout 上失败 ,对于有效学习至关重要
Addressing computational bottlenecks with mixed-policy training.
  • RLFT 的主要瓶颈在于为每个提示生成 \(n\) 个 rollout 的推理成本,相比之下参数更新步骤的消耗可以忽略不计
    • Rollout 推理的这种计算负担意味着,即使拥有大规模精心策划的数据集,对全部语料库进行训练通常也是不可行的
  • Furthermore,论文观察到 On-policy 训练表现出高方差,无法保证单调改进或稳定收敛

    Furthermore, we observe that on-policy training exhibits high variance, failing to guarantee monotonic improvement or stable convergence.

    • 问题:怎么会 On-policy 训练还会高方差?是说的 Off-policy 吧?
  • 这些限制强调了 利用混合策略策略来增强样本效率和训练稳定性的必要性

Recipe

  • 整体 Recipe 如图 4 所示:
LLM-as-a-data-filtering.
  • 为了缓解由难度范围导致的零优势问题,DAPO (2025) 采用了动态采样,但这在训练过程中会导致低效的生成成本。
  • 论文构建了一个简单而有效的数据集过滤流程,以构建其难度范围与目标模型能力良好对齐的数据集,即“LLM 即数据过滤器”
  • 假设论文有一个初始问题池 \(\mathcal{D}\) 以及用于过滤的 LLM \(\mathcal{M}\)
    • 对于每个问题 \(x\in\mathcal{D}\),论文生成 \(n\) 个 rollout 并按如下方式计算经验通过率:
      $$y_{1},\ldots,y_{n}\sim\mathcal{M}(\cdot \mid x),\quad \hat{p}_{k}(x)=\frac{1}{n}\sum_{j=1}^{n}\mathbb{I}[x\textbf{ is solved in the top-}k\textbf{ rollouts}],.$$
    • 论文严格保留那些经验通过率落在目标难度范围 \([\alpha,\beta]\) 内的问题:
      $$\alpha \leq \hat{p}_{k}(x) \leq \beta.$$
    • 这确保了难度范围与模型的能力良好对齐,从而缓解训练早期阶段的不稳定性
  • 理解:核心其实就是用 pass rate 作为过滤依据
Dataset Construction.
  • 论文应用“LLM-as-a-data-filtering”流程来策划一个高质量的多任务数据集,包含数学推理、代码生成和指令遵循
  • 所有候选问题均使用 RL 阶段开始前的检查点进行评估,使用 \(n=5\) 个 rollout
  • 数学推理 (Mathematical Reasoning):
    • 初始池来源于 GURU-92K 数据集 (2025)
    • 首先根据数据集中提供的预计算 Qwen-30B 通过率进行初步筛选,保留得分在 \(0 < p \leq 10/16\) 的问题
    • 随后应用论文的过滤流程,论文选择难度在 \((0, 0.8]\) 范围内的实例
    • 为了解决组合数学原本占数据 50% 的严重领域不平衡问题,将问题分类为数论、组合数学、代数和几何,并进行分层抽样以使这四个子领域的分布均衡
  • 代码生成 (Code Generation):
    • 与数学推理流程类似,论文从 GURU-92K 中获取代码样本,并根据提供的通过率 (\(0 < p \leq 10/16\)) 进行初步筛选
    • 然后论文用相同的设置 (\(n=5\)) 执行过滤流程,并对保留的实例进行随机子采样,以使数据集大小与数学推理语料库对齐,确保任务混合的平衡性
  • 指令遵循 (Instruction Following):
    • 论文使用了一个为指令遵循构建的、包含 10,000 个样本的合成数据集
    • 为了优先挑战模型当前能力的指令,论文应用了更严格的上限阈值 \(\beta = 0.4\),仅保留经验通过率在范围 \((0, 0.4]\) 内的样本
Expanding Clipping Range.
  • 为了加速收敛,论文在训练设置中使用了更大的裁剪范围:\(\in [0.28, 0.40]\)
  • 与强制执行严格信任区域的标椎设置不同,这个扩展范围允许策略在存在高优势信号时更显著地偏离参考模型
  • 这种策略在训练效率和稳定性之间取得了平衡,促进了更快的策略改进,而不会引发在无约束设置中常见的崩溃
  • 理解:较小的 Dense 模型,偏差较小,相对来说稳定,可以这样训练,其他的情况不一定
Encouraging Long-Context Reasoning.
  • 论文的实证观察表明,长上下文推理能力是有效 RL 微调的基础
  • 论文注意到,当允许模型生成扩展的推理链时,性能有显著改善
  • Conversely,应用长度惩罚(通用文本生成的标准做法)被证明是有害的,因为它无意中阻碍了模型探索必要的中间推理步骤
  • Consequently,论文完全从奖励公式中移除了长度惩罚
    • 为了完全容纳这些扩展的轨迹,论文配置了服务基础设施以最大化 vLLM 的生成长度,详见第 2 节
  • 理解:应用长度惩罚会对 RL 训练带来伤害
    • 问题:其实本质上来说,普通 PPO 就自带了对较短正确队列的偏好吧?长度偏差其实可以不加?
    • 问题:可能产生较长的错误回答
Efficiency via Mixed-Policy Trajectory Reuse.
  • RLFT 的一个主要瓶颈是与 rollout 生成相关的惊人计算成本
  • 为了缓解这个问题,论文采用了跨多个梯度优化步骤重复使用同一批轨迹的策略
  • Specifically,在外层迭代 \(k\) 时,论文从当前策略中采样一批轨迹:
    $$\mathcal{B}_{k}\sim P(q),\pi_{\theta_{k} }(o \mid q),$$
  • Subsequently,论文在这个固定的批次上执行 \(S\) 步梯度更新:
    $$\theta_{k,s+1}=\theta_{k,s}-\eta \nabla_{\theta}\mathcal{L}_{\text{GSPO} }(\theta_{k,s};\mathcal{B}_{k}),\quad s=0,\ldots,S-1,$$
    • 其中 \(\theta_{k,0}=\theta_{k}\),下一次迭代的更新参数定义为 \(\theta_{k+1}=\theta_{k,S}\)
  • Theoretically,这个过程开始时是 On-policy 采样,因为 \(\mathcal{B}_{k}\) 是从 \(\pi_{\theta_{k} }\) 中抽取的
    • However,随着 \(\theta_{k,s}\) 偏离行为策略 \(\theta_{k}\),而轨迹及其计算出的优势保持固定,它逐渐转变为越来越 Off-policy 的机制
    • 因此,内部步数 \(S\) 充当了控制这种混合 On/Off-policy 动态的控制器
    • 虽然标准的迭代 GRPO (2024) 在论文的初步实验中表现出不稳定的性能,但这种轨迹重用策略产生了明显更稳定的优化,同时最大化了训练效率
Mitigating task regression via multi-task RL.
  • 论文观察到,专注于单一领域的 RL 训练常常导致其他任务上的显著性能退化
  • For instance,仅针对指令遵循优化策略往往会降低数学推理或代码生成的能力,即使基础模型在所有领域都具有强大的能力
  • 为了解决这个问题,论文采用了一个多任务 RLFT 框架 ,该框架在 RL 循环内联合训练所有目标领域
    • 数学推理、代码生成和 IFBench
    • Specifically,每个 Mini-batch 由这三种任务的混合构成,利用任务特定的奖励函数同时更新一个共享策略
    • 这种策略作为一种有效的正则化器,缓解了灾难性遗忘,并确保了所有下游基准测试的稳健性能提升
  • 理解:每个 Mini-batch 都训练三种任务,任务之间的差异可能会导致 Rollout 的长度不一致吧,类似的问题也需要注意

NLP——LLM对齐微调-RL-Collapse-Training-Inference-Mismatch(Sequence-level-MIS)

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始博客:(Sequence-level MIS)When speed kills stability: Demystifying RL collapse from the training-inference mismatch, 20250927, ByteDance
      • 博客最早发表于 20250927,目前还在持续更新,最近一次更新为 20251013
    • 其他相关 arXiv 论文:Trust Region Masking for Long-Horizon LLM Reinforcement Learning, 20251228-20260227, Fudan & CUHK
    • 引用了本文的博客

Blog Summary

  • 作者从 RL Collapse 现象入口,定位到是训推不一致问题导致的,进而详细讨论了如何解决训推不一致的问题
  • 本文整体有较强的理论意义,核心是证明了:LLM RL 的重要性采样最优是 Sequence-level 的,而 Token-level 重要性采样只有在特定情况下能够替代 Sequence-level 重要性采样,更精确的推导见 NLP——LLM对齐微调-MiniRL
  • 本文证明了:只有当 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 保持在 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 的信任域内时,即当 \(d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 且 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 时,\(J(\theta)\) 才能被 \(g_\text{tok}(\theta)\) 优化
  • 特别说明:本文中所说的 Token-level 和 Sequence-level 都是针对重要性采样权重而言的,不是针对 RL 目标本身,本文会直接使用到类似 RL 目标的表达,容易让读者误解是 RL 建模目标本身的建模方式(Token-level or Sequence-level)
  • 本文工作已经被诸多框架引入,比如 VeRL 和 Slime 等,同时还被 Qwen 团队的 MiniRL 工作(详情见 NLP——LLM对齐微调-MiniRL)引用
    • 各种框架的使用详情见 原始博客 When speed kills stability: Demystifying RL collapse from the training-inference mismatch, 20250927, ByteDance

整体介绍

TLDR

  • 对更快推理速度的不懈追求造成了一种危险的“训练-推理不一致性”,它可能悄然破坏 LLM 的强化学习
  • 作者的研究揭示了一个在现代推理和智能体 RL 中尤为严重的恶性循环:
    • OOD 上下文导致低概率采样: 智能体工作流将模型暴露于外部输入和动态环境中,迫使其频繁生成 低概率 token
      • 这些 token 对于新颖的推理、工具调用和自适应 Response 至关重要
      • 理解:这里是在说模型与外界环境交互过程中可能会遇到一些 OOD 的场景,从而生成一些原本 低概率的 Token?
        • 这里的低概率应该不是指低概率但是因为高温被采样
      • 详情见:3.4 OOD Tool Responses Amplifies the Mismatch 章节
    • 低概率 Token 放大训练崩溃: 这些 token 成为最薄弱的环节
      • 训练-推理不一致性对它们最为严重,导致灾难性的大梯度,从而引发性能悄然下降和突然的训练失败
      • 详情见本文 3.3 确凿证据:低概率 Token 陷阱 章节
    • 硬件差异使问题复杂化:
      • 不同的 GPU 架构会以不可预测的方式加剧不一致性,这意味着相同的智能体训练设置在一台机器上可能成功,而在另一台上可能灾难性地失败
      • 详情见:3.5 环境因素:硬件的关键作用 章节
    • Sequence-level 修正是 Principled 解决方案:
      • Sequence-level 修正 是理论上合理的修复方法
      • Sequence-level 修正 通过考虑完整的状态轨迹来修正有偏的梯度,从而 在不同硬件和复杂任务上 恢复训练稳定性
      • 详情见:4.2.1 一个 Principled 解决方案:分布修正

Deeper Analysis:

  • 为了对这个问题进行严格的理论分解,作者发表了三篇系列博客:
    • Part 1: Why Off-Policy Breaks RL — An SGA Analysis Framework
      • 第 1 部分包含主要内容:为何 Off-Policy 会破坏 RL——SGA 分析框架
      • 已知 (TRPO 理论):
        • 替代目标 \(L_\mu(\pi)\) 是 RL 目标 \(J(\pi)\) 的一阶泰勒近似
        • TRPO 下界 \(J(\pi) \ge L_\mu(\pi) - C \cdot T^2 \cdot D_{TV}^{\max}\) 表明近似误差随 \(T^2\) 增长,需要信任域按 \(\delta \propto 1/T^2\) 缩小
      • 作者的主要 Insight:
        • Token-level IS (PPO/GRPO) 计算的是 \(\nabla L_\mu\),而不是 \(\nabla J\)
        • Token-level IS 修正了 token 分布,但没有修正状态分布的不匹配 (\(d_\mu \ne d_\pi\)),导致 \(O(T^2 D_{TV}^{\max})\) 的偏差
      • 作者通过 SGA 引理形式化了两种失败模式 :
        • 偏差 (Bias) (由 \(D_{TV}\) 衡量)
        • 方差 (Variance) (由 \(\chi^2\) 散度衡量)
        • 作者认为这两个指标不可互换
    • Part 2: Applying the SGA Framework — Token v.s. Sequence-level Correction
      • 第 2 部分主要内容:讨论 Token-level 与 Sequence-level 修正的对比(讨论 Part 1 中 SGA 框架的应用)
      • 作者的分析:
        • Token-level IS (PPO/GRPO) 由于替代目标的一阶近似误差而产生 \(O(T^2 D_{TV}^{\max})\) 的偏差
        • Sequence-level IS 是无偏的,但具有指数级方差 \(O((1+\bar{\chi}^2_{\max})^T)\)
      • 作者的解决方案:
        • Seq-TIS 通过截断 \(\rho(y) \to \min(\rho(y), C)\) 实现了可控的偏差-方差权衡
        • 关键结论: 当 不可忽略时 ,这种偏差是一个需要 Sequence-level 解决方案的 Sequence-level 问题
    • Part 3: Trust Region Optimization via Sequence Masking
      • 第 3 部分内容:讨论通过序列掩码实现信任域优化
      • 已知 (TRPO 理论):
        • 信任域约束确保替代目标仍然是一个有效的近似
      • 作者的解决方案:
        • (1) Seq-MIS :通过拒绝 \(\mathbb{I}(\rho \le C) \cdot \rho \cdot f\) 来强制执行硬信任域 (Hard Trust Region),完全排除 OOD 样本
        • (2) Geo-RS :使用几何均值 \(\rho_{\text{geo} }=\rho^{1/T}\) 来实现一个 长度不变的 Per-Token 信任域 (length-invariant Per-Token Trust Region)
          • 这是 TRPO 硬信任域在 LLM 中的一种实用实现,避免了系统性地拒绝长序列

第 1 节:The Mystery of the Sudden Collapse

  • 在快速发展的用于大型语言模型的强化学习 (LLM-RL) 领域,一种令人沮丧的突然训练崩溃模式正在浮现
  • 无论是在复杂的 Reasoning RL 还是多轮 Agentic RL 中,许多人都观察到训练过程在一段稳定学习后,会灾难性地失败
  • 本文作者最近在 Qwen3 模型上进行 多轮工具集成推理 (multi-turn tool-integrated-reasoning,TIR) 的智能体 RL 实验时,亲身遇到了这个问题
    • 这发生在 L20 GPU 集群上 GRPO 算法的 on-policy 和 off-policy 变体上
    • 图 1 显示了作者在 Qwen3-14B-Base 上四次崩溃实验的奖励和梯度范数动态
    • 随着训练的进行,梯度范数突然爆炸,导致模型崩溃
  • 图 1
    • 在 Qwen3-14B-Base 上进行的四次失败的 GRPO TIR 实验的奖励 (左) 和梯度范数 (右)
    • 所有实验在每个训练步采样 1024 条轨迹 (64 个 Prompt × 16 个 Response ),并使用 1e-6 的学习率
    • 对于 on-policy 和 off-policy 实验,ppo_mini_batch_size 分别设置为 1024 和 256
  • 最初,作者的初步解决思路集中在常见的疑点上:
    • 作者检查了代码,确认作者的智能体循环遵循 token-in-token-out 过程
    • 作者调整了 Adam 优化器中的超参数 beta1 和 beta2
    • 作者还对优势函数应用了批归一化以平衡更新
    • …
  • 但这些标准的修复方法都不起作用
    • 因为即使是更简单的 on-policy 实验也失败了,作者怀疑问题不在于 RL 算法本身,而在于训练栈中更基础的部分
    • 这引导作者开始考虑现代 LLM-RL 中一个关键且日益普遍的挑战:高度优化的推理引擎与可靠的训练框架之间不可避免的 Gap

A Fundamental Conflict: The Growing Gap Between Inference and Training

  • 根本性冲突是推理与训练之间日益扩大的鸿沟
  • Rollout 速度是 LLM-RL 的核心瓶颈
    • 为了实现所需的海量吞吐量,现代推理引擎(例如,vLLM、SGLang、TensorRT-LLM)采用了激进的优化策略
      • 如推测解码、低精度计算 (INT8/FP8) 以及专门的、batch-variant CUDA 内核
      • 在保持采样保真度的同时,现代推理引擎的主要目标是最大化吞吐量 ,通常以每秒 token 数来衡量
    • 训练框架(例如,FSDP、DeepSpeed、Megatron-LM)必须寻求不同的平衡点,优先考虑梯度计算的数值稳定性和精度
      • 通常对主要权重和优化器状态使用 FP32 等更高精度的格式
    • 这种优化优先级和约束上的分歧造成了不可避免的训练-推理不一致性 ,而对更快 rollout 的不懈追求正使这一差距变得更大
    • 虽然有人可能提议强制实施相同的计算(例如,使用“batch invariant kernels”),但这些解决方案会带来严重的性能损失,违背了使用高速推理引擎的初衷
    • 这种速度与一致性之间的权衡是问题的核心,使其成为一个持续存在的挑战,而非简单的工程修复
  • 在作者的技术栈中,这种不匹配体现在作者的 vLLM 推理采样器和 FSDP 训练器之间
    • 实际的参数更新是:
      $$
      \mathbb{E}_{x\sim \mathcal{D} }\mathbb{E}_{y\sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }\left( \cdot |x \right)}\left[ R\left( x,y \right) \nabla_{\theta}\log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\left( y|x \right) \right]
      $$
    • 而理论上的参数更新应该是:
      $$
      \mathbb{E}_{x\sim \mathcal{D} }\mathbb{E}_{y\sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\left( \cdot |x \right)}\left[ R\left( x,y \right) \nabla_{\theta}\log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\left( y|x \right) \right].
      $$
      • \(x\) 是从分布 \(\mathcal{D}\) 中采样的 Prompt
      • \(y\) 是 Response
      • \(R\) 是奖励函数
      • \(\theta\) 是 LLM 的参数
      • \(\color{red}{\pi^\text{vllm}_\theta}\) 和 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 分别是 vLLM 引擎和 FSDP 引擎中实现的策略
        • 注:接下来,为了讨论这一点,作者找了一种方法来衡量它

Anatomy(剖析)of the Training Collapse

3.0 Experiments Setup

  • 除非另有说明,第 3 节 和 第 4 节 中展示的实验是在 TIR Setting 下的 VeRL 框架上进行的,使用 vLLM v1 采样器 (AsyncvLLMServer)、Qwen3-14B-Base 模型和 GRPO 算法,全部在 L20 GPU 集群上运行

Measuring the Mismatch: The vllm-kl Metric

  • 一个衡量训练-推理不一致性的非常直接的指标是 vllm-kl :
    $$
    \small{\mathbb{E}_{s\sim d_{\color{red}{\pi^\text{vllm}_\theta} } }\left[\text{KL}\left(\color{red}{\pi^\text{vllm}_\theta}\left(\cdot|s\right),\color{blue}{\pi^\text{fsdp}_\theta}\left(\cdot|s\right)\right)\right] = \mathbb{E}_{s\sim d_{\color{red}{\pi^\text{vllm}_\theta} },a\sim {\color{red}{\pi^\text{vllm}_\theta}\left(\cdot|s\right)} } \left[\log\left(\frac{\color{red}{\pi^\text{vllm}_\theta}(a|s)}{\color{blue}{\pi^\text{fsdp}_\theta}(a|s)}\right)\right],}
    $$
    • \(d_\pi\) 是策略 \(\pi\) 的状态占用 (state-occupancy)
    • \(s\) 是上下文前缀(状态)
    • \(a\) 是 token(动作)
    • 注:作者的实验涉及工具调用,这意味着 Response \(y\) 可能包含工具 Response
      • 问题:这个公式中似乎没有看到任何 \(y\) 的表达式啊
      • 理解:这里应该是强调除了用户输入的 Query(Prompt)后,用户得到的 Reponse 部分会包含工具调用的返回结果(比如调用 Python 执行数学计算)
        • 注:TIR 中,模型 Reasoning 过程中会和工具交互,得到工具调用的结果,然后基于工具调用结果继续 Reasoning(一次 Response 可能包含多次工具调用),并最终整合后返回给用户
    • 注:本文中定义的 vllm-kl 指标只考虑模型自身生成的 token
      • 理解:这样才是合适的,因为工具调用的结果不是模型输出的,对模型来说只是环境信息(类似 Query),不需要模型关注,模型也无法修改
  • 以下代码提供了在 VeRL 中使用 K3 估计器 计算 vllm-kl 指标的实现,假设推理引擎的 token 概率已经是可访问的:
    1
    2
    3
    4
    5
    6
    rollout_log_probs = batch.batch["rollout_log_probs"] # pi_vllm
    actor_old_log_probs = batch.batch["old_log_probs"] # pi_fsdp
    response_mask = batch.batch["response_mask"]
    log_ratio = actor_old_log_probs - rollout_log_probs
    vllm_k3_kl_matrix = torch.exp(log_ratio) - log_ratio - 1
    vllm_k3_kl = masked_mean(vllm_k3_kl_matrix,response_mask)

The Warning Signs: Correlated Instability

  • 作者的第一条线索是,高 vllm-kl 值并非孤立事件
    • 它们与其他不稳定迹象密切相关
Fluctuations in FSDP Entropy and Rewards
  • 在许多实验中都可以观察到 vllm-kl 的异常尖峰(Spike)通常会同时触发 FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 的熵和奖励的异常波动
  • 图 2 所示的实验结果是一个直观的例子
    • 如图 2 所示,熵尖峰出现的位置与 vllm-kl 尖峰的位置几乎完美对应
    • 虽然在奖励中没有观察到同样明显的相关性,但可以看到在步骤 250 左右出现了一个巨大的 vllm-kl 尖峰,它触发了低质量批次的生成,并在此处也导致了奖励的明显下降
    • 这意味着当不一致性较大时,vLLM 策略 \(\color{red}{\pi^\text{vllm}_\theta}\) 和 FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 都进入了一个不稳定区域
Rising FSDP PPL and Gradient Norm Leading to Policy Collapse,上升的 FSDP PPL 和梯度范数导致策略崩溃
  • 作者观察到 vllm-kl 的尖峰同时触发了 fsdp-ppl 指标和梯度范数的爆炸
    • 在作者的实验中, Response \(y\) 的 fsdp-ppl 指标计算如下:
      $$
      \text{fsdp-ppl}: \exp\left(\frac{-1}{\left| \mathcal{T}_{\mathcal{M} }\left( y \right) \right|}\sum_{t\in \mathcal{T}_{\mathcal{M} }\left( y \right)}{\log \color{blue}{\pi_{\theta}^{\text{fsdp} } }\left( y_t|y_{ < t} \right)}\right)
      $$
      • \(\mathcal{T}_{\mathcal{M} }\left( y \right)\) 是 Response \(y\) 中由模型自身生成的 token 的索引集合
      • 最终的 fsdp-ppl 指标是批次中所有 Response 的 fsdp-ppl 指标的平均值
  • 图 3 展示了 GRPO 的 on-policy 版本和 off-policy 版本的实验结果
    • 在两个实验中,vllm-kl 的尖峰几乎精确地触发了 fsdp-ppl 和梯度范数的相应爆炸
    • 还可以观察到,在训练奖励崩溃之前,vllm-kl 指标有显著的上升
  • 在本文的实验中,模型自身生成的序列至少包含数百个 token
    • 原本的期望:在训练的后期阶段,ppl 指标保持在 1 左右更为合理
      • 理解:
        • 因为后期熵基本收敛了,大部分 Generated Token 的概率都是 1.0 左右,此时对应的对数概率接近 0,整体 Token 粒度的对数概率均值也接近 0,从而得到的 PPL 则接近 1
        • 实际上, Token 概率是微小于 1 的,对数概率微小于 0,取 -1 得到的值微大于 0,得到的指数(PPL)微大于 1
      • 问题:Off-policy(对应 Bottom)下的 PPL 应该接近于 1 才对,目前看起来是接近于 0 的,不太符合预期
        • 回答:这里的图是对的,因为这个图的单位是 1e32,所以看起来似乎在 0 左右
    • 观察到的现象:在训练-推理不一致性显著的批次中(即 vllm-kl 非常高时),作者观察到 fsdp-ppl 指标发生爆炸 这表明 FSDP 引擎为推理策略采样的 token 分配了灾难性的低概率,导致梯度爆炸
    • 这一观察帮助进一步定位了不一致性更可能发生的地方
      • 当这些 FSDP 概率极低的 token 被采样时,它们在 vLLM 引擎中的概率并非同样低
        • 补充说明:在本人的实际训练过程中,也观察到许多类似的现象,这种在当前策略低概率的 Token 会引发 KL 散度 k3 估计的爆炸(因为 Old 策略对应的 Token 概率不一定同样低)
      • 这个问题也是导致 KL 散度差异较大的其中一个原因

The Smoking Gun: The Low-Probability Token Pitfall,低概率 Token 陷阱的确凿证据

  • 核心 Insight:不一致性并非均匀分布
  • 通过分析具有不同 vllm-kl 水平的批次,作者发现了一个鲜明的模式:
    • 对于 vLLM 推理引擎认为概率较低 (low probability) 的 token,这种差异最为严重
    • 当一个 token 的推理概率趋近于零时,其训练概率可能会小几个数量级,从而导致无限的 PPL 和梯度
  • 为了确保结论尽可能具有普适性,作者选取了 在训练崩溃前、不同训练步数 从各种实验中采样的批次
    • 所有这些批次都表现出相对较高的 vllm-kl 值,使作者能够在显著条件下研究不一致性模式
    • Rollout 批次在以下三个 vllm-kl 范围内收集,每组五个批次(约 5M token):
      • Group 1 (low): 每个 rollout batch 的 vllm-kl 不大于 1e-3,并且批次是使用 H20 GPU 采样的
      • Group 2 (medium): 每个 rollout batch 的 vllm-kl 属于 [1e-3, 2e-2],并且批次是使用 L20 GPU 采样的
      • Group 3 (high): 每个 rollout batch 的 vllm-kl 属于 [2e-2, 1e-1],并且批次是使用 L20 GPU 采样的
  • 下面的图 4 (a)(b)(c) 展示了在不同 vllm-kl 量级下,vLLM 引擎的输出概率
    • 即 \(\color{red}{\pi^\text{vllm}_\theta}(a|s)\) 与不一致性之间的关系,这里的不一致性由 \(\log\left(\color{blue}{\pi^\text{fsdp}_\theta}(a|s)\right)-\log\left(\color{red}{\pi^\text{vllm}_\theta}(a|s)\right)\) 衡量:
  • 从上图中,我们可以清晰地观察到:
    • 当 vLLM 概率 \(\color{red}{\pi^\text{vllm}_\theta}\) 趋近于零时,不一致程度往往更为显著
      • 并且 \(\log\left(\color{blue}{\pi^\text{fsdp}_\theta}\right)-\log\left(\color{red}{\pi^\text{vllm}_\theta}\right)\) 的极端值更可能在这些条件下出现
    • 在 L20 GPU 上收集的批次,即组 2 和组 3 中的批次,表现出一种训练-推理不一致性
      • 主要表现为 FSDP 概率 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 显著小于 vLLM 概率 \(\color{red}{\pi^\text{vllm}_\theta}\)

OOD Tool Responses Amplifies the Mismatch,OOD 工具 Response 放大了不一致性

The Mismatch Is More Severe in Non-First-Round Outputs,不一致性在非首轮输出中更为严重
  • 第 3 节的发现解释了为什么这个问题在作者的多轮 TIR 实验中如此尖锐,特别是在非首轮模型输出 (non-first-round model outputs) 中
  • 该过程如下:
    • 1)Agent 接收一个工具 Response ,这通常是结构化文本(例如,包含在 <python_output> 和 </python_output> 标签中的上下文),相对于其预训练和 SFT 数据而言是 OOD 的
      • 注意:这是工具的 Response
    • 2)面对这种不熟悉的 OOD 上下文,智能体的策略 变得更加不确定,使其更有可能在其后续轮次中采样低概率 token(这在 SimpleTIR 中也有观察到)
    • 3)正如作者刚刚确定的,这些低概率 token 是发生严重不一致性的主要场所,为 fsdp-ppl 和梯度的爆炸创造了条件
  • 作者绘制了三组批次(每组约 5k 条轨迹)中的不一致性,突出了首轮模型输出和非首轮模型输出之间的差异,作者考虑以下两种方法来可视化不一致性:
    • Log-ppl scatter plot(散点图) :
      • x 轴:由 vLLM 策略 \(\color{red}{\pi^\text{vllm}_\theta}\) 计算的 ppl 指标的对数,记为 vllm-log-ppl
      • y 轴:由 FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 计算的 ppl 指标的对数,记为 fsdp-log-ppl
    • Probability scatter plot :
      • x 轴:vLLM 策略 \(\color{red}{\pi^\text{vllm}_\theta}\) 的 token 概率
      • y 轴:FSDP 策略 \(\color{blue}{\pi^\text{fsdp}_\theta}\) 的 token 概率
  • 三组不一致性的可视化结果
  • 从可视化结果中,作者可以观察到:
    • 1)非首轮输出的 vllm-log-ppl 通常大于首轮输出,这意味着在面对不熟悉的 OOD 上下文时,会采样到更多的低概率 token
      • 横向比较 log-ppl 可以看出,非首轮的横轴和纵轴范围均较大(注:从图中可以看出,首轮的 log-ppl 集中在左下角,非首轮的覆盖面积则更广)
      • 理解:相当于熵变高了(即 PPL 变大了),此时 Token 的概率都不高,输出的不确定性增高
    • 2)不一致性主要发生在非首轮模型输出中(第二列为非首轮)
      • 表现为 FSDP 策略与 vLLM 策略之间的 log-ppl 和 token 概率的平均绝对差更大,皮尔逊相关系数更低
    • 3)随着 vllm-kl 值的增加,训练-推理不一致性主要在非首轮输出中恶化
    • 4)不一致性始终显示 fsdp-log-ppl 大于 vllm-log-ppl,表明 FSDP 引擎产生了更极端的低概率 token
      • 问题:为什么 fsdp-log-ppl 相对 vllm-log-ppl 会严格偏大呢?甚至一个小于的点都看不到?
More Tool Calls, More Training Instability,工具调用越多,训练不稳定性越大
  • 本节的实验表明,OOD 工具 Response 加剧了训练-推理不一致性和训练不稳定性
  • 在 H20 GPU 上使用 Qwen3-14B-Base 作为基础模型,进行了 off-policy GRPO 实验,设置 clip higher=0.28 和 4 个 mini-batches
  • 将单条轨迹中最大工具调用次数(超参数 max_tool_turn)分别设置为 20 和 100
  • 实验结果如图 5 和图 6 所示,可以观察到:
    • 随着工具调用次数的增加,训练崩溃发生的时间更早(轮次越多,爆炸越快)
    • 崩溃时,在所有情况下都观察到了梯度爆炸和 vllm-kl 的爆炸

The Environmental Factor: The Critical Role of Hardware

  • 作者还发现物理硬件是一个关键变量
    • 完全相同的代码和模型在不同的 GPU 硬件上产生了截然不同的不一致性水平
  • 为了评估不同硬件上的不一致性程度,作者在相同的代码环境和超参数下运行 on-policy 算法,仅在推理和训练时切换不同的 GPU
  • 图 7 分别展示了在 L20、H20 和 A100 上的训练动态
  • 从图中可以观察到
    • 实验中 vllm-kl 的量级基本遵循:H20 < L20 < A100
      • H20 的 vllm-kl 通常在 5e-4 到 1e-3 的量级
      • L20 大约在 1e-3 到 1e-2
      • A100 主要在 1e-2 到 1 之间
    • 由于 A100 上严重的训练-推理不一致性,正常训练变得不可行,导致奖励曲线高度不稳定
  • 在作者的 A100 GPU 上运行 的实验中,禁用 vLLM 引擎中的级联注意力 (cascade attention) 特别有助于减少不一致性
    • 作者在 第 4.2.4 节(在 vLLM 中禁用级联注意力) 中展示了这些结果
  • 最有力的证据来自于作者将一个失败的 L20 实验从其 checkpoint 开始在 H20 GPU 上恢复训练(见图 8)
    • 训练立即稳定并恢复,证明了硬件对该问题的 First-order 影响

The Mismatch is Not Static: A Vicious Cycle Driven by Optimization

  • 这种不一致性并非静态的,而是由优化驱动的恶性循环
  • 有人可能认为训练-推理不一致性是硬件和软件栈的静态属性
    • 但作者接下来的“Batch-filter”实验证明,除了与硬件和软件栈有关,不一致性还与训练动态和模型状态有关,即 不一致性与训练动态和模型状态是耦合的
  • 作者在 “Batch-filter” 实验中设置了以下策略更新方式:
    • 对于每个训练步,如果收集到的批次产生的 vllm-kl 指标大于阈值
      • 则跳过在该批次上更新模型参数 (因为此类更新带着噪音的,容易导致训练崩溃)
      • 此时直接进入下一步,继续收集数据,直到获得 vllm-kl 值低于阈值的批次,此时才更新模型
  • 这个实验背后的逻辑是,如果不一致性的程度完全独立于模型的输出分布和训练动态,那么 vllm-kl 的量级在不同的训练步应呈现相同的分布
  • 但图 9 所示的实验结果表明,一旦模型进入某种状态,它就开始持续生成高不一致性的批次 ,从而发生持续过滤,几乎停止了训练(右图橙黄色背景部分)
  • 这一点,连同在其他运行中观察到的 vllm-kl 和 fsdp-ppl 螺旋式上升(图 10),指向了一个危险的反馈循环
  • 作者推测这是由于以下两阶段的失败级联 (two-stage failure cascade) 造成的:
    • 1)阶段 1:数值敏感性增加
      • RL 优化器将模型权重推入 bfloat16 数据类型具有较低相对精度的数值范围(例如,非常小或非常大的值)
    • 2)阶段 2:内核驱动的误差放大
      • 这些初始的、微小的 bfloat16 量化误差随后被输入到 vLLM 和 FSDP 的不同内核实现中
      • 不同的计算顺序充当非线性放大器,导致微小的初始偏差滚雪球般地变成最终 logits 的巨大差异
    • 这就形成了一个恶性反馈循环 :
      • 不一致性导致有偏且嘈杂的梯度,这可能进一步将参数推入数值敏感区域 ,这反过来又会使下一次迭代的不一致性恶化,直到系统崩溃
    • 另一个个人理解:
      • 如果参数超错误的未知噪音方向更新,那么更新后的模型采样得到的结果可能是奇怪的,即一些原本低概率的 Token 会更容易被采样出来(推测熵可能会异常的增大),这样的 Token 更容易导致更大的 vllm-kl

Attempts to Alleviate Training-Inference Mismatch,介绍缓解训练-推理不一致性的一些尝试

  • 接下来将列出作者尝试过的缓解训练-推理不一致性的方法
    • 其中一些方法有帮助,而另一些则没有

Ineffective Attempts,无效尝试

Use FP32 LM Head
  • Inspired by the Minimax-M1 technical report and the blog post《Your Efficient RL Framework Secretly Brings You Off-Policy RL Training》
    • 作者修补了 vLLM,将 lm_head 转换为 fp32 精度
    • 理解:作者的基本思路是,让 vLLM 的参数精度更贴近 FSDP 的精度,从而一定程度上缓解训推不一致问题
  • 但在作者的实验中,修补后不一致性问题仍然存在,模型崩溃无法避免
    • 图 11 显示了在 L20 GPU 上使用 vLLM 引擎中 bf16 lm_head 的一个失败的 on-policy 实验,以及一个从崩溃实验的第 200 个训练步后开始在 vLLM 引擎上使用 fp32 lm_head 的实验
    • 可以观察到,两个实验最终都崩溃了,并且使用 fp32 lm_head 的实验仍然表现出 vllm-kl 的爆炸
    • 注意:以上实验不是从一开始就是用 FP32 的,而是 bf16 训练至出现问题后从 200 Step 恢复,此时使用 FP32 替换 bf16
  • 作者还尝试从第 4.1.1 节中使用 bf16 lm_head 的失败实验的第 200 个训练步开始恢复 RL 训练,禁用分块预填充 (chunked prefill),以观察这是否能解决崩溃问题
    • 实验结果(如图 12 所示)表明,这种方法并未解决崩溃问题
    • 问题:分块预填充 会导致精度问题吗?
      • 理解:似乎没有发现,但是这个应该会导致一些计算顺序的不确定,导致输出不确定的问题
Enable enforce_eager and free_cache_engine
  • VeRL 的 DAPO 官方指南 提到,启用 CUDA 图 (enforce_eager=False) 可能导致模型 Performance 下降
    • 理解:这里的 Performance 下降应该主要是指训练得到的模型下游指标(测试性能)变差
  • 为了探究它是否影响训练-推理不一致性,作者进行了一项消融研究,以考察 vLLM 引擎超参数 enforce_eager 的影响,同时考虑另一个超参数 free_cache_engine
  • 作者在 Reasoning RL 上进行了实验
    • 在 H100 GPU 上使用 Qwen3-4B-Base 作为基础模型,进行了 on-policy GRPO 实验,共运行四种实验设置:
      • 超参数 enforce_eager 和 free_cache_engine 的穷举组合,每个设置为 True 或 False
    • 性能在 AIME24 基准上进行了评估
  • 实验结果如图 13 所示
    • 从图中可以看出,调整 enforce_eager 和 free_cache_engine 的值对训练-推理不一致性和测试性能(下游指标)没有显著影响

Effective Attempts,有效尝试

4.2.1 A Principled Solution: Distribution Correction
  • 训练-推理不一致性将原本的 on-policy RL 问题变成了一个 off-policy 问题
    • 其中用于生成 rollout 的策略(行为策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\))与正在训练的策略(目标策略,\(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\))不同
    • 在理论上修正这种分布偏移的一种合理方法是 重要性采样 (IS)
    • 但对于保持梯度无偏和实现稳定训练而言,IS 的具体形式至关重要
  • 受 off-policy-rl (2025) 的发现启发
    • off-policy-rl (2025) 首次强调了这种由训练-推理不一致性导致的隐式 off-policy 问题
    • 作者分析了两种主要的 IS 形式:理论上合理的 Sequence-level IS 和常见但有偏的 Token-level IS 近似
The Principled Estimator: Sequence-Level IS
  • 正确、无偏的策略梯度估计器对整个生成的序列(轨迹)\(y\) 应用一个单一的重要性比率
  • 这正确地将其期望从行为策略重新加权到目标策略,从而产生目标函数 \(J(\theta)\) 的真实梯度
  • 下面一步步推导 Sequence-level IS 估计器 \(g_{\mathrm{seq} }(\theta)\)
    • Step 1:目标是最大化在目标 FSDP 策略 下的期望奖励:
      $$
      J(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}[R(x,y)]
      $$
    • Step 2:因此,真实的策略梯度为:
      $$
      g(\theta) = \nabla_{\theta} J(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}\left[R(x,y) \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)\right]
      $$
    • Step 3:由于作者只能从 vLLM 策略 中采样,作者使用重要性采样来改变策略梯度的期望的分布:
      $$
      g_{\mathrm{seq} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y|x)} \cdot R(x,y) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x) \right]
      $$
      • 这本质上是 off-policy REINFORCE 算法
  • 这个估计器在数学上等价于策略梯度的标准优势形式
    • 因为重要性采样比率精确地修正了期望(数学上等价)
补充详细推导:以上策略梯度的 On-policy 形式
  • 步骤 1:将期望转换为其 On-Policy 形式
    • IS 估计器取其关于行为策略 \(\color{red}{\pi^{\mathrm{vllm} } }\) 的期望
    • 通过将期望的定义写为积分,行为策略密度 \(\color{red}{p_{\theta}^{\mathrm{vllm} } }(y|x)\) 被抵消:
      $$
      \begin{align}
      g_{\mathrm{seq} }(\theta) &= \int \left( \frac{\pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x)}{\pi_{\color{red}{\theta} }^{\mathrm{vllm} }(y|x)} \cdot R(x,y) \cdot \nabla_{\theta} \log \pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x) \right) \pi_{\color{red}{\theta} }^{\mathrm{vllm} }(y|x) dy \\
      &= \int \left( R(x,y) \cdot \nabla_{\theta} \log \pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x) \right) \pi_{\color{blue}{\theta} }^{\mathrm{fsdp} }(y|x) dy
      \end{align}
      $$
      • 这是真实的 on-policy 梯度,因为期望是对目标策略 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 而言的
    • 这证明了 \(g_{\mathrm{seq} }(\theta)\) 是真实策略梯度的无偏估计量
      $$
      g_{\mathrm{seq} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}\left[R(x,y) \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)\right] = g(\theta)
      $$
      • 理解:其实这个不需要证明,IS 对原始的 真实策略梯度 进行精确修正,得到的本就是数学上完全等价的形式
      • 注:真实的策略梯度 见前一小节的推导结果:
        $$
        g(\theta) = \nabla_{\theta} J(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|x)}\left[R(x,y) \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)\right]
        $$
  • 步骤 2:分解为时间步并应用因果关系 (仅考虑当前时间步之后的 Reward \(G_t\))
    • 现在处理更简单的 on-policy 表达式,展开轨迹级别的项并应用 因果关系 (causality) 原理(在步骤 \(t\) 的动作仅影响未来的奖励)
    • 这允许我们将总奖励 \(R(x,y)\) 替换为 未来回报 (return-to-go) \(G_t = \sum_{k=t}^{|y|-1} r(s_k, a_k)\)
      $$
      g(\theta) = \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ \sum_{t=0}^{|y|-1} G_t \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
      $$
  • 步骤 3:引入优势函数 (减去一个 Baseline 得到 \(A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) = G_t - V^{\color{blue}{\pi_{\theta} } }(s_t)\))
    • 为了减少方差,减去一个依赖于状态的 Baseline ,即价值函数 \(V^{\color{blue}{\pi_{\theta} } }(s_t)\)
    • 这将未来回报转换为 优势函数 (Advantage Function) ,\(A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) = G_t - V^{\color{blue}{\pi_{\theta} } }(s_t)\)
      $$
      g(\theta) = \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ \sum_{t=0}^{|y|-1} A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
      $$
  • 步骤 4:从 Trajectory-level 期望转换为 State-level 期望
    • 最后一步将对轨迹的期望重新表述为对由目标策略引起的状态访问分布 \(d_{\color{blue}{\pi_{\theta} } }\) 的等价期望
    • 从步骤 3 到步骤 4 的详细数学推导
      • 步骤 A:从轨迹级期望开始
        $$
        g(\theta) = \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ \sum_{t=0}^{|y|-1} A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
        $$
      • 步骤 B:应用期望的线性性质
        • 交换期望和求和运算符
        • 可以将求和扩展到无穷大,因为对于超出轨迹有限长度 \(|y|\) 的时间步 \(t\) 的任何项都是零,所以只是加了零
          $$
          g(\theta) = \sum_{t=0}^{\infty} \mathbb{E}_{y \sim \color{blue}{\pi_{\theta} } } \left[ A^{\color{blue}{\pi_{\theta} } }(s_t, a_t) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a_t|s_t) \right]
          $$
      • 步骤 C:将期望展开为显式求和
        • 通过对每个可能的状态 \(s\) 和动作 \(a\) 求和,并用它们的联合概率 \(P(s_t=s, a_t=a) = P(s_t=s) \cdot \color{blue}{\pi_{\theta} }(a|s)\) 加权,来重写内部期望
          $$
          g(\theta) = \sum_{t=0}^{\infty} \sum_{s \in \mathcal{S} } \sum_{a \in \mathcal{A} } P(s_t=s) \cdot \color{blue}{\pi_{\theta} }(a|s) \cdot A^{\color{blue}{\pi_{\theta} } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s)
          $$
      • 步骤 D:引入状态占用度量 (通过交换求和顺序来引入)
        • 重新排列求和项,将与状态 \(s\) 相关的所有项分组
          $$
          g(\theta) = \sum_{s \in \mathcal{S} } \left( \sum_{t=0}^{\infty} P(s_t=s) \right) \cdot \left( \sum_{a \in \mathcal{A} } \color{blue}{\pi_{\theta} }(a|s) \cdot A^{\color{blue}{\pi_{\theta} } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s) \right)
          $$
          • 第一项,\(\sum_{t=0}^{\infty} P(s_t=s)\),是 状态占用度量 (state occupancy measure) 的定义,\(d_{\color{blue}{\pi_{\theta} } }(s)\)
          • 第二项是对动作的期望的定义,\(\mathbb{E}_{a \sim \color{blue}{\pi_{\theta} }(\cdot|s)}[\dots]\)
            $$
            g(\theta) = \sum_{s \in \mathcal{S} } d_{\color{blue}{\pi_{\theta} } }(s) \cdot \mathbb{E}_{a \sim \color{blue}{\pi_{\theta} }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta} } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s) \right]
            $$
      • 步骤 E:得到最终形式
        • 对所有状态按其状态占用度量加权求和,根据定义,是对状态分布 \(d_{\color{blue}{\pi_{\theta} } }\) 的期望
          $$
          g(\theta) = \mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta} } } } \left[ \mathbb{E}_{a \sim \color{blue}{\pi_{\theta} }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta} } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta} }(a|s) \right] \right]
          $$
  • 这个推导过程得到策略梯度的最终优势形式:
    $$
    \color{red}{g_{\mathrm{seq} }(\theta)} = \mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
    $$
    • \(s=(x,y_{ < t})\) 是状态(前缀)
    • \(a=y_t\) 是动作(token)
    • \(d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 是目标 FSDP 策略下的状态占用度量
      • 它形式化地定义为遵循策略 \(\pi\) 时状态 \(s\) 被访问的期望次数:
        $$
        \color{blue}{d_{\pi}(s) := \mathbb{E}_{x’ \sim \mathcal{D}, y’ \sim \pi(\cdot|x’)} \left[ \sum_{t’=0}^{|y’|-1} \mathbb{I}\{ (x’, y’_{<t’}) = s \} \right] = P(x) \cdot \prod_{k=0}^{t-1} \pi(y_k|x,y_{<k})}
        $$
  • 因为这个策略梯度估计器 \(g_{\mathrm{seq} }(\theta)\) 是 无偏的 ,意味着
    $$\color{red}{g_{\mathrm{seq} }(\theta)} = g(\theta)$$
    • 为了数值稳定性,使用了 截断重要性采样 (Truncated Importance Sampling, TIS)
    • TIS 将 Sequence-level 比率 \(\rho(y|x)\) 截断在一个常数 \(C\)
A Common Biased Estimator: Token-Level IS,常见的有偏估计器
  • 一个常见的启发式方法,通常受到 PPO 等算法的启发,并在 off-policy-rl (2025) 中使用,是对每个 token 应用重要性比率
  • 虽然这通常具有比 Sequence-level 比率更低的方差,但它是一个 有偏估计器 ,对于自回归模型在理论上是不合理的
    • 更低的方差来源是指 Sequence-level 时对数比率是多个 Token-level 的对数比率连乘计算得到的(详情见下两个公式),这样的话得到的结果波动自然比单个 Token 的对数比率大
  • 推导 Token-level IS 梯度估计器 \(g_{\mathrm{tok} }(\theta)\)
    • 第一步:这个公式开始于错误地在时间步求和内部应用重要性采样比率:即,\(g_{\mathrm{tok} }(\theta)\) 被定义为:
      $$
      g_{\mathrm{tok} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ R(x,y) \cdot \sum_{t=0}^{|y|-1} \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t})}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y_t|x,y_{ < t})} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t}) \right]
      $$
      • 作为对照,这里我们同步贴一下 Sequence-level 的梯度估计器:
        $$
        g_{\mathrm{seq} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y|x)} \cdot R(x,y) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y|x) \right]
        $$
        • 这里的 \(R(x,y)\) 是从 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 采样的完整轨迹的经验回报(因为 \(y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)\)),它是状态-动作值 \(Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a)\) 的蒙特卡洛估计
    • 第二步:同上一小节中的详细推导过程,我们可以类似地将对轨迹的期望重写为对在 vLLM 策略 下访问的状态的期望:
      $$
      g_{\mathrm{tok} }(\theta) = \mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } } \mathbb{E}_{a \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|s)} \left[ \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)} \cdot A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
      $$
      • 引入基线并改变对动作的期望,得到最终形式:
        $$
        g_{\mathrm{tok} }(\theta) = \mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
        $$
        • 这个最终表达式清楚地揭示了 Token-level IS 的梯度偏差
      • 补充:第二步的详细证明详情见附录
        • 注:推导过程中与 Sequence-level 表达式推导过程中的主要区别在于 Token-level 相加的校准形式无法被 Sequence-level 的期望直接消去,从而导致最终表达式的期望中仍然遗留了 vLLM 的策略信息
      • 特别注意:
        • 这里的 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a)\) 表示我们的 Advantage 是基于 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 采样和估计的
    • 现在对比真实策略梯度的无偏估计 \(\color{red}{g_{\mathrm{seq} }(\theta)} \):
      $$
      \color{red}{g_{\mathrm{seq} }(\theta)} = \mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
      $$
    • 可以清楚地看到,只有当 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 保持在 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 的信任域内时,即当 \(d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 且 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\approx A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 时,\(J(\theta)\) 才能被 \(g_\text{tok}(\theta)\) 优化
Token-level IS 中偏差的来源 (The Source of Bias in Token-Level IS)
  • 比较 \(g_{\mathrm{tok} }(\theta)\) 与真实梯度 \(g_{\mathrm{seq} }(\theta)\) 揭示了两个截然不同且显著的误差,这些误差使得 Token-level 估计器有偏
  • 来源 1:状态占用不匹配
    • 一个合理的 off-policy 修正必须考虑两种分布偏移:
      • 动作概率:Token-level 方法修正了动作概率
      • 状态访问概率:Token-level 方法没有修正状态访问概率
        • 真实梯度 (\(g_{\mathrm{seq} }\)):
          • 期望是对在 正确的目标 fsdp 分布 下访问的状态,\(\mathbb{E}_{s \sim d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } } }\)
        • 有缺陷的梯度 (\(g_{\mathrm{tok} }\)):
          • 期望是对在 错误的行为 vLLM 分布 下访问的状态,\(\mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } }\)
    • 这隐含地假设状态占用比率为 1,即 \({d_{\color{blue}{\pi^{\mathrm{fsdp} } } }(s)} /{d_{\color{red}{\pi^{\mathrm{vllm} } } }(s)} = 1\)
    • 这个假设在自回归模型中被灾难性地违反了
      • 由于 LLM 中的 MDP 是确定性的转移,一个不同的 token 选择就能保证状态轨迹完全分歧
        • 理解:这里的状态轨迹分歧会直接导致状态占用 \(d_\pi(s)\) 发生较大变化,而且越长的状态轨迹,发生偏移的概率越大
      • 因为忽略这一点,\(g_{\mathrm{tok} }(\theta)\) 引入了一个大的、不受控的偏差
  • 来源 2:奖励信号不匹配
    • 第二个关键错误是, Token-level 梯度使用来自 错误策略 的奖励信号对更新进行加权
      • 真实梯度 (\(g_{\mathrm{seq} }\)):
        • 更新由 目标 fsdp 策略 的优势函数 \(A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\) 缩放,表示在该策略下的期望未来奖励
      • 有缺陷的梯度 (\(g_{\mathrm{tok} }\)):
        • 更新由 行为 vLLM 策略 的优势函数 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }\) 缩放
      • 即目标策略的梯度正被一个属于行为策略的奖励信号所缩放(本该是目标策略的奖励信号来缩放)
  • 由于状态分布和奖励信号从根本上是不匹配的, Token-level 梯度是一个有偏且理论上不合理的估计器
    • 这些理论表明:
      • 尽管 Token-level 方法可能具有更低的方差,但梯度偏差仍然存在,可能导致训练不稳定性
        • 本文的实验证实了这一预测
      • 作者还提供了关于 Token-level 和 Sequence-level 方法的详细偏差和方差分析 (第 1 部分 & 第 2 部分)
Experimental Validation
  • 总结来看,本文的理论分析预测,有偏的 Token-level IS 将不稳定并最终失败,而无偏的 Sequence-level IS 将是稳健的
  • 本文给出实验也证实了这一点
实验一:IS Prevents Gradient Explosion, but Token-Level Still Fails(Token-level TIS 防止了梯度爆炸,但是仍然失败了)
  • 作者在 L20 GPU 上从第 200 个训练步开始,使用 Token-level TIS 和 Sequence-level TIS (\(C=2\)) 恢复了一个崩溃的实验
  • 如图 14 所示
    • 虽然两者最初都防止了原始实验中看到的梯度爆炸,但使用 Token-level TIS 的运行后来仍然崩溃了
    • 使用 Sequence-level TIS 的运行保持稳定,验证了作者的理论,即来自 Token-level 方法的有偏梯度最终会导致失败
实验二:Token-Level TIS in Reasoning RL(Token-Level TIS 在更简单的 RL 中能防止梯度崩溃,但训练仍然不稳定且没有达到更好的最终性能)
  • Token-level TIS 在复杂的 TIR 实验中失败,但它可以在更简单的推理 RL 中帮助防止崩溃
    • 因为那里的不一致性较小
  • 在 on-policy GRPO 和 RLOO 实验中(图 15)
    • Token-level TIS 防止了梯度爆炸,但训练仍然不稳定,并且没有达到更好的最终性能
    • 这可能是由于其潜在的梯度偏差
实验三:TIS Prolongs Training But Can Suffer from Instability,TIS 延长训练但可能遭受不稳定性,测试性能无法超过其他实验崩溃前的峰值
  • 作者在 L20 GPU 上从头开始使用 Sequence-level TIS (\(C=2\)) 进行了一个 on-policy TIR 实验
  • 如图 16 所示
    • 虽然该方法阻止了完全崩溃,但奖励曲线在达到平台期后表现出持续波动,并且其测试性能未超过原始实验在崩溃前达到的峰值
实验四:Masked Importance Sampling, MIS, Sequence-level MIS 可以超过原始基线的最高峰值
  • 为了改进 TIS,作者提出了 掩码重要性采样 (Masked Importance Sampling, MIS) (注:这里是 Sequence-level MIS)
    • 注:其实类似思想(Token-level MIS)是在 (IcePop)Small Leak Can Sink a Great Ship—Boost RL Training on MoE with IcePop!, 20250919, AntGroup,但未明确命名为 MIS 而已
      • 相关 PR:【PR to TRL】[GRPO] Sequence-level TIS + MIS(20251106)
      • 注:在 IcePop 中,更多强调的是 Token-level MIS
  • 对 IS 比率超过阈值 \(C\) 的序列的策略损失进行掩码:
    $$ \rho(y|x) \gets \rho(y|x) \mathbb{I}\{\rho(y|x) \le C\} $$
    • 理解:超出 \(C\) 的 \(\rho(y|x)\) 会被置为 0
    • 问题:为什么是单向的?
      • 因为本文的观察可以看到,这个比值过大时容易出现不稳定(RL Collapse)
        • 上文的观察中有个结论是当 vLLM 概率 \(\color{red}{\pi^\text{vllm}_\theta}\) 趋近于零时,不一致程度往往更为显著
      • 当这个比值过小时理论没有问题,因为更新权重相当于被降低了(其实屏蔽可能也行,只是说会降低 Token 效率)
  • 如图 17 所示:MIS 不仅稳定了训练,而且超过了原始实验和 TIS 实验的峰值训练奖励和测试准确率
    • 问题:怎么感觉在下游测试指标(图 17 右图)继续训练 TIS 可能也能拿到不错的收益?因为性能还在持续增长
实验五:Token-Level MIS vs. Sequence-Level MIS,Token-level 的 MIS 不太够用,初期能防止梯度爆炸,后期还是会崩溃
  • 最后,作者比较了 Token-level MIS 和 Sequence-level MIS
  • 正如预期,图 18 显示:
    • 两者都能防止初始梯度爆炸,但 Token-level MIS 实验仍然崩溃了
    • 这强化了作者的结论:对于复杂的、长视距的自回归任务,只有理论上合理的 Sequence-level 修正才是可靠的
4.2.2 Top-p Sampling
  • 如上所述,作者观察到 vLLM 策略的低概率 token 更容易出现严重的训练-推理不一致性问题,导致 FSDP 策略的概率极低
  • 为了进一步证实这一点,作者进行了 top-p 消融研究
    • 在 L20 GPU 上运行 on-policy GRPO 实验,并将 vLLM 采样策略的 top-p 超参数分别设置为 0.98、0.99 和 0.999(注意这里没有应用重要性采样进行梯度修正)
    • 通过设置较小的 top-p 值,作者的目标是降低推理阶段出现极低 vLLM 概率 token 的频率 ,从而减轻训练-推理不一致性
  • 作者的消融结果如图 19 所示
    • 正如预期,vllm-kl 指标表明,较小的 top-p 减少了 vllm-kl 尖峰的出现
    • 但较小的 top-p 也增加了 vLLM 策略 \(\color{red}{\pi^{\text{vllm} }_\theta}\) 和 FSDP 策略 \(\color{blue}{\pi^{\text{fsdp} }_\theta}\) 之间的分布差异
      • 理解: top-p 变小影响了 vLLM 策略采样的分布,而 FSDP 中是没有类似 top-p 影响的(是所有分布同时训练),所以 vLLM 采样时的 top-p 越小,vLLM 和 FSDP 策略之间的差异越大 (再次强调:此时没有应用 IS 修正)
    • 因此,在不应用 TIS 的情况下,梯度偏差变得更大,导致随着 top-p 的减小,奖励提升变慢
4.2.3 Use other GPU series
  • 在发现 H20 GPU 上运行的实验的训练-推理不一致性显著小于 L20 GPU 后,作者将所有 TIR 实验切换到了 H20 GPU ,这大大减少了训练崩溃的发生
  • 图 20 显示了在 L20 和 H20 GPU 上,分别在相同配置下从头开始训练的两个 on-policy GRPO 实验的结果
  • 可以观察到,在 H20 GPU 上运行的 on-policy 实验显著延长了稳定训练时长 ,并取得了更好的性能
4.2.4 Disable Cascade Attention in vLLM, 在 vLLM 中禁用级联注意力
  • 根据这个 GitHub issue,作者在初始化 vLLM 引擎时设置了 disable_cascade_attn=True,并发现它在 A100 GPU 上进行的实验中显著有助于减少训练-推理不一致性
  • 作者在 A100 GPU 上使用 Qwen3-14B-Base 作为基础模型,进行了两个 on-policy GRPO 实验,disable_cascade_attn 分别设置为 True 和 False
  • 结果如图 21 所示
    • 禁用级联注意力后, vllm-kl 指标从 5e-2 到 1e-1 的范围下降到大约 1e-3,表明训练-推理不一致性显著减少
    • 同时可以观察到,训练集上的奖励也适当地增加了

Conclusion & Key Takeaways for Practitioners

  • 训练-推理不一致性不是一个细枝末节的 bug,而是一个贯穿现代 Reasoning and Agentic RL 的根本性且日益严峻的挑战,它是由对性能的必要追求所驱动的
  • 不一致性是不可避免的权衡: 接受高速推理总是会与训练计算产生分歧这一事实
    • 这是一个核心的权衡,而非暂时性的缺陷
  • 监控训练健康状况: vllm-kl 指标是一个重要的早期预警系统
    • 将其与困惑度 (PPL) 和梯度范数一起跟踪,以预测和诊断不稳定性,防止其导致崩溃
  • 识别真正的凶手: 问题不是随机的
    • 它是由 低概率 token (low-probability tokens) 系统性地触发的,这些 token 在模型处理分布外 (OOD) 输入时更频繁地生成
      • 这在工具使用和多轮应用中很常见
  • 硬件是一阶变量: 相同的代码可能在一种 GPU 架构上崩溃,在另一种上完美训练
    • 始终在自己的目标硬件上验证 Setting,因为结果可能无法完全移植
  • 使用理论合理的修正: 虽然更换硬件或调整采样器会有所帮助,但最稳健、最 Principled 解决方案是算法层面的
    • 理论上存在偏差的 Token-level 修正是不够的,在实验中仍然可能失败
    • Sequence-level 方法,如截断重要性采样 (Seq-TIS) 和掩码重要性采样 (Seq-MIS) ,通过修正完整的状态轨迹直接解决梯度偏差问题
    • 这些方法对于维持稳定性至关重要,应被视为任何 Serious LLM-RL 训练栈的默认选项
  • 其他:作者推测这个训推不一致性问题在 MoE 模型上可能会更加的严重

附录:Token-level IS 下的 策略梯度期望 表达式推导

  • 本节负责详细推导 Token-Level IS 梯度估计器 \( g_{\mathrm{tok} }(\theta) \) 的表达式
  • 这个推导的目标是:从一个基于轨迹的定义出发,通过一系列变换,将其表达为对“状态-动作”对的期望形式
    • 最终目标:展示 \( g_{\mathrm{tok} }(\theta) \) 与真实梯度 \( g_{\mathrm{seq} }(\theta) \) 的偏差来源

第 1 步:从 Token-Level IS 的轨迹级定义出发

  • 根据 4.2.1 节中的定义,Token-Level IS 的梯度估计器是基于轨迹的,它错误地将重要性比率应用在了对每个时间步的求和内部:
    $$
    g_{\mathrm{tok} }(\theta) = \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)}\left[ R(x,y) \cdot \sum_{t=0}^{|y|-1} \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t})}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y_t|x,y_{ < t})} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t}) \right] \tag{1}
    $$
  • 这里的核心思想是:
    • 虽然想要优化目标策略 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\),但由于只能从行为策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 采样得到的轨迹 \(y\) 中进行学习,我们就在 每个 token 上 使用一个重要性权重来修正策略偏差(这个修正本身就是有偏的/错误的)

第 2 步:将轨迹期望分解为“状态-动作”对的期望

  • 这一步是将对完整轨迹 \(y\) 的期望,转化为对所有可能访问到的“状态-动作”对 \((s, a)\) 的期望
    • 这里的“状态” \(s\) 是生成动作 \(a\) 时的上下文(即 \(s = (x, y_{ < t})\))
  • 对于一条长度为 \(|y|\) 的轨迹,它的贡献是其中每个 token 的贡献之和
    • 利用期望的线性性质,可以将求和与期望进行交换
    • 将期望写成对所有可能的轨迹进行积分(或求和),可以得到:
      $$
      \begin{aligned}
      g_{\mathrm{tok} }(\theta) &= \sum_{t=0}^{\infty} \mathbb{E}_{x \sim \mathcal{D}, y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)} \left[ R(x,y) \cdot \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t})}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(y_t|x,y_{ < t})} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(y_t|x,y_{ < t}) \right] \\
      &= \sum_{t=0}^{\infty} \sum_{s \in \mathcal{S} } \sum_{a \in \mathcal{A} } P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t = s, a_t = a) \cdot \mathbb{E}_{y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)} \left[ R(x,y) | s_t=s, a_t=a \right] \cdot \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)
      \end{aligned}
      $$
  • 理解:这个看起来很复杂的表达式其实在做一件简单的事:
    • 遍历所有可能的时间步 \(t\),所有可能的状态 \(s\),以及所有可能的动作 \(a\)
    • 对于每一种可能性
      • 计算其发生的概率
        $$P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s, a_t=a)$$
      • 然后乘上在该 \((s,a)\) 之后获得的期望回报
        $$\mathbb{E}[R(x,y)|s_t=s, a_t=a]$$
      • 最后再乘上 token-level 的 IS 权重和梯度项

第 3 步:引入状态-动作价值函数 \(Q\) 和状态占用度量 \(d\)

  • 接下来这里做两个关键的代换:
    • 1)条件期望回报 \( \mathbb{E}_{y \sim \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(\cdot|x)} \left[ R(x,y) | s_t=s, a_t=a \right] \) 正是 行为策略下的状态-动作价值函数 \( Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) \) 的定义
      • 它衡量了在状态 \(s\) 采取动作 \(a\) 后,遵循策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 所能获得的期望累积奖励
    • 2)联合概率 \( P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s, a_t=a) \) 可以分解为 \( P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s) \cdot \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s) \)
      • 而 \(\sum_{t=0}^{\infty} P_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s_t=s) \) 正是 行为策略下的状态占用度量 (State Occupancy Measure) ,记为 \( d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) \)
      • 它衡量了在整个交互过程中,状态 \(s\) 被访问的期望次数
  • 将这两个定义代入,上述双重求和(\(\sum_{t} \sum_{s}\))就可以巧妙地合并成一个对状态 \(s\) 的加权求和,权重正是状态占用度量 \(d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s)\):
    $$
    \begin{aligned}
    g_{\mathrm{tok} }(\theta) &= \sum_{s \in \mathcal{S} } d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) \sum_{a \in \mathcal{A} } \color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s) \cdot Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) \cdot \frac{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)}{\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)} \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s)
    \end{aligned}
    $$
  • 可以看到,分母中的 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)\) 和分子中的 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }(a|s)\) 可以直接约掉!约简后,作者得到一个非常简洁的形式:
    $$
    g_{\mathrm{tok} }(\theta) = \sum_{s \in \mathcal{S} } d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) \sum_{a \in \mathcal{A} } \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \cdot Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \tag{2}
    $$

第 4 步:引入基线函数以降低方差

  • 在策略梯度方法中,直接使用 \(Q\) 函数会导致较高的方差
    • 通常我们会引入一个与动作无关的基线 \(V(s)\) 来降低方差,而不改变期望值
    • 最常用的基线是状态价值函数 \(V^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s)\)
      $$
      Q^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a) = V^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s) + A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s, a)
      $$
      • 其中 \(A\) 是优势函数
    • 将 \(Q\) 替换为 \(V + A\) 后,代入式 (2):
      $$
      \begin{aligned}
      g_{\mathrm{tok} }(\theta) &= \sum_{s} d_{\color{red}{\pi} }(s) \sum_{a} \color{blue}{\pi}(a|s) \cdot \left( V^{\color{red}{\pi} }(s) + A^{\color{red}{\pi} }(s, a) \right) \cdot \nabla_{\theta} \log \color{blue}{\pi}(a|s) \\
      &= \underbrace{ \sum_{s} d_{\color{red}{\pi} }(s) V^{\color{red}{\pi} }(s) \sum_{a} \color{blue}{\pi}(a|s) \nabla_{\theta} \log \color{blue}{\pi}(a|s) }_{\text{ = 0} } + \sum_{s} d_{\color{red}{\pi} }(s) \sum_{a} \color{blue}{\pi}(a|s) A^{\color{red}{\pi} }(s, a) \nabla_{\theta} \log \color{blue}{\pi}(a|s)
      \end{aligned}
      $$
      • 注:为了简洁考虑,上式中:
        • 用 \(\color{red}{\pi}\) 表示 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\)
        • 用 \(\color{blue}{\pi}\) 表示 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\)
  • 问题:为什么第一项等于 0?
    • 因为:
      $$\sum_{a} \color{blue}{\pi}(a|s) \nabla_{\theta} \log \color{blue}{\pi}(a|s) = \mathbb{E}_{a \sim \color{blue}{\pi}(\cdot|s)}[\nabla_{\theta} \log \color{blue}{\pi}(a|s)] = 0$$
      • 这是一个对数似然梯度的恒等式,其期望值为零(得分函数 \(\nabla_{\theta} \log \color{blue}{\pi}(a|s)\) 期望为 0)
      • 因此,包含基线 \(V(s)\) 的项就自然消失了
    • 理解:为什么第二项不等于 0?
      • 第一项可以为 0 是因为第一项的 \(V^{\color{red}{\pi} }(s) \) 与动作 \(a\) 无关,不会随着动作 \(a\) 的变化而变化,可以单独从期望中提出来
      • 第二项不为 0 是因为第二项的 \(A^{\color{red}{\pi} }(s, a)\) 与动作 \(a\) 有关,不能单独从期望中提出来
        • 虽然 \(A^{\color{red}{\pi} }(s, a)\) 包含的是 \(\color{red}{\pi}\),但还包含了 \(a\),这导致了 \(A^{\color{red}{\pi} }(s, a)\) 与动作分布 \(\color{blue}{\pi}(a|s)\) 有关(主要是与动作有关)

第 5 步:得到最终形式

  • 消去为零的项后,我们得到了 Token-Level IS 估计器的最终形式:
    $$
    g_{\mathrm{tok} }(\theta) = \mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } } \mathbb{E}_{a \sim \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(\cdot|s)} \left[ A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a) \cdot \nabla_{\theta} \log \color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }(a|s) \right]
    $$

第 6 步:Token-Level IS 为什么是有偏的?

  • 通过上面这个推导,我们可以清晰地看到问题的根源:
    • 1)状态分布错误 :期望 \(\mathbb{E}_{s \sim d_{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } } }\) 是在行为策略 \(\color{red}{\pi_{\theta}^{\mathrm{vllm} } }\) 的访问状态上求的,而我们真正想要的,应该是目标策略 \(\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } }\) 的访问状态 \(d_{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }\)
    • 2)奖励信号错误 :用来衡量“好与坏”的标准是行为策略的优势函数 \(A^{\color{red}{\pi_{\theta}^{\mathrm{vllm} } } }(s,a)\),而非目标策略的优势函数 \(A^{\color{blue}{\pi_{\theta}^{\mathrm{fsdp} } } }(s,a)\)
  • 因此,尽管 Token-Level IS 看起来在每个 token 上进行了修正,但它修正的是错误的分布,使用的是错误的评价标准
    • 只有当两个策略几乎一样时(即 \(d_{\color{red}{\pi} } \approx d_{\color{blue}{\pi} }\) 且 \(A^{\color{red}{\pi} } \approx A^{\color{blue}{\pi} }\)),它才近似正确,否则其梯度是有偏的,这也就是原文实验里它仍然会导致训练崩溃的根本原因
1234…64
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

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