Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

NLP——LLM-as-a-judge

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:From Generation to Judgment: Opportunities and Challenges of LLM-as-a-judge, arXiv 20250206, UC Berkeley
    • 论文主页:llm-as-a-judge.github.io/
    • 作者给出的论文集合(作者会持续更新):github.com/llm-as-a-judge/Awesome-LLM-as-a-judge

Paper Summary

  • 核心内容:
    • 本综述很长,核心内容探讨了 LLM 作为评判的复杂性
    • 作者根据输入格式( Pointwise 、 Pairwise 和 Listwise )和输出格式(评分、排名和选择)对现有 LLM-based 评判方法进行分类
    • 然后,论文为 LLM 作为评判提出了一个全面的分类法,涵盖评判属性、方法论和应用
    • 在此之后,论文介绍了 LLM 作为评判的基准的详细集合,并伴随着对当前挑战和未来方向的深思熟虑的分析,旨在为这一新兴领域的未来工作提供更多资源和见解
  • 问题提出:
    • 评估(Assessment)与评价(Evaluation) 长期以来一直是 AI 和 NLP 领域的关键挑战
    • 传统方法(基于匹配 or 基于 Embedding),往往在评判(Judging)细微属性和提供令人满意的结果方面存在不足
  • LLM 的最新进展启发了“LLM-as-a-judge”范式,即利用 LLM 在各种任务和应用中执行评分、排序或选择
  • 论文对 LLM-based 评判和评估进行了全面综述
    • 首先从输入和输出的角度给出详细定义
    • 然后引入一个全面的分类法(taxonomy),从 what to judge, how to judge and where to judge(评判什么,如何评判,在哪里评判) 三个维度探讨 LLM-as-a-judge 的问题

Introduction and Discussion

  • 评估与评价长期以来一直是机器学习和自然语言处理(NLP)中必不可少但颇具挑战性的任务,尤其是对给定候选列表的各种属性(如质量、相关性和有用性)进行评分和比较(2022;2024)
  • 传统评估方法依赖于静态指标,如 BLEU(双语评估辅助工具)(2002)和 ROUGE(摘要评价指标)(2004)
    • 这些指标通过计算输出与参考文本之间的词重叠来衡量质量
    • 这些自动指标计算效率高,并在许多生成应用中得到使用(2022, 2023a, 2024c)
    • 但是,它们对 n-gram 匹配(n-gram matching)和基于参考设计(reference-based designs)的依赖严重限制了它们在动态和开放式场景中的适用性(2016;Reiter, 2018)
  • 随着深度学习模型(2019;2019)的兴起,许多基于 Embedding 的评估方法(如 BERTScore(2020)和 BARTScore(2021))也应运而生
    • 尽管这些基于小模型的指标从词级表示转向了 Embedding 级表示,并提供了更大的灵活性,但它们仍然难以捕捉相关性之外的细微属性(2024),如有用性和无害性
  • 最近先进的 LLM,如 GPT-4(2023)和 o1,在指令遵循、查询理解和响应生成方面表现出了惊人的性能
    • 这一进展促使研究人员提出了“LLM-as-a-judge ”的概念(2023),即利用强大的 LLM 对一组候选进行评分、排序和选择(图 1)
    • LLM 的强大性能(2020)与精心设计的评估 Pipeline (2023a;2024b;2023a)相结合,能够对各种评估应用进行细粒度和详细的评判,显著解决了传统评估方法的局限性,为 NLP 评估设定了新的标准
  • 除了评估之外,LLM-as-a-judge 还被广泛应用于整个 LLM 生命周期,包括对齐(2022;2023)、检索(2023;2024c)和推理(2023;2024b)等任务
    • 它赋予 LLM 一系列高级能力,如自我进化(2024a)、主动检索(2024c)和决策(2023),推动它们从传统模型向智能代理(2024)转变
  • 然而,随着 LLM-as-a-judge 的快速发展,评判偏差(judging bias)和脆弱性(vulnerability)等挑战(2023a;2024a;2024)也逐渐显现
    • 因此,对当前技术和未来挑战进行系统回顾对于推进 LLM-based 评判方法具有重要价值
  • 在本综述中,论文深入探讨了 LLM-as-a-judge 的细节,旨在全面概述 LLM-based 评判
    • 论文首先通过讨论其各种输入和输出格式(第 2 节)对 LLM-as-a-judge 进行正式定义
    • 接下来,论文提出了一个深入而全面的分类法,以解决三个关键问题(第 3-5 节):
      • 属性(Attribute) :评判什么? 论文深入研究 Judge LLM 评估的具体属性,包括帮助性、无害性、可靠性、相关性、可行性和整体质量
      • Methodology :如何评判? 论文探索了 LLM-as-a-judge 系统的各种调优和提示技术,包括手动标记数据、合成反馈、监督微调、偏好学习、交换操作、规则增强、多智能体协作、演示、多轮交互和比较加速
      • 应用(Application) :在哪里评判? 论文调查了 LLM-as-a-judge 已被应用的领域,包括评估、对齐、检索和推理
  • 此外,论文在第 6 节中收集了从不同角度评估 LLM-as-a-judge 的现有基准
  • 最后,论文在第 7 节中提出了当前的挑战和未来研究的有前途方向,包括偏差与脆弱性、动态与复杂评判、自我评判和人机共判

Differences from Other LLM-related Surveys

  • 近年来,LLM 已成为热门研究领域,涌现出诸多相关综述文献(2023b;2024;2024a)
  • 尽管已有若干综述专注于 LLM-based 自然语言生成(NLG)评估(2024a;2024n),但本研究旨在系统梳理”LLM-as-a-judge”这一方法论
  • 如前所述,”LLM-as-a-judge”的应用范畴已远超评估领域,因此有必要建立全局视角进行归纳与分类
  • 此外,现有综述多聚焦 LLM 赋能的具体应用场景
    • 如 LLM-based 数据标注(2024b)、数据增强(2024e)以及自我修正(2024)
    • 但目前仍缺乏针对”LLM-as-a-judge”范式的系统性与全面性综述研究

Preliminary

  • 在本节中,论文旨在提供 LLM-as-a-judge 的详细定义,分别在 2.1 节和 2.2 节讨论各种输入和输出格式

Input

  • 给定一个 Judge LLM \(J\),评估过程可以表示为:
    $$R = J\left(C_{1}, \ldots, C_{n}\right). \tag{1}$$
    • 这里 \(C_{i}\) 是第 \(i\) 个待评判的候选,\(R\) 是评判结果
  • 在本节中,论文根据候选数量 \(n\) 将输入格式分为两种类型:
    • ** Pointwise (Point-Wise)** :当 \(n = 1\) 时,成为逐点评判,此时 Judge LLM 将只关注一个候选样本(2023b)
    • 成对/ Listwise (Pair/List-Wise) :当 \(n \geq 2\) 时,成为成对(\(n = 2\))或 Listwise (\(n > 2\))评判,此时提供多个候选样本供 Judge LLM 比较并进行综合评估(2023;2024)

Output

  • 在本节中,论文根据 \(R\) 的不同格式讨论评判的三种输出类型:
    • 分数(Score) :当每个候选样本被分配一个连续或离散的分数时,\(R = \{C_{1}: S_{1}, \ldots, C_{n}: S_{n}\}\),这成为基于分数的评判
      • 这是最常见和广泛使用的协议,利用 LLM 进行评分以进行定量比较(2024a)或属性检测(2024a)
    • 排名(Ranking) :在基于排名的评判中,输出是每个候选样本的排名,表示为 \(R = \{C_{i} > \ldots > C_{j}\}\)
      • 这种比较方法在需要建立候选之间排名顺序的场景中很有用(2023a)
    • 选择(Selection) :在基于选择的评判中,输出涉及选择一个或多个最优候选,表示为 \(R = \{C_{i}, \ldots, C_{j}\} > \{C_{1}, \ldots, C_{n}\}\)
      • 这种方法在决策(2023a)或内容过滤(2024c)场景中特别有用

Attribute

  • 在本节中,论文从属性角度对当前 LLM-as-a-judge 的研究进行分类。图 3 概述了 Judge LLM 可以评估的方面

Helpfulness

  • 现代 SOTA LLM 经过指令调整和对齐过程,能够遵循用户指令并有效响应
  • 这一对齐步骤依赖于大量有用和无害的数据,通常作为人类偏好数据收集,然后用于对齐训练的强化学习
  • 鉴于获取此类对齐数据的成本很高,最近的工作探索了使用 LLM 来标记帮助性,以及生成或评估对齐数据(2022)
  • (2024)的作者以在线方式使用 LLM 来获取偏好 ,以直接对齐另一个 LLM
    • 最近的一些工作表明,来自 AI 的帮助性反馈,即 LLM 的反馈与人类反馈相当(2023)
    • 也有一些成功的 LLM(2024a)通过 AI 反馈数据进行了微调,从而证明了这种方法的可行性和有用性
  • 除了这些对齐方面的工作,利用 LLM 作为评估器的通用框架在评估候选响应的帮助性方面也至关重要(2023;2023;2024e)

Harmlessness

  • 评估文本数据的无害性对于内容审核和创建或管理合成数据集都很重要
  • 鉴于人类标注工作既昂贵又耗时,并且受先前研究中 Embedding 在 LLM 中的道德信念的启发(2023),许多最近的工作研究了使用 LLM 来评估无害性
  • SOTA LLM 能够有效地用于内容审核,要么在遵循一些政策指导方针的情况下现成使用,要么在安全/不安全数据上进行微调(2023;2024g)
  • Ye 等人 (2024b) 探索了使用 LLM 以细粒度方式评估无害性等属性的可行性,并发现专有模型的表现比开源模型好得多
  • Wang 等人 (2024l) 使用 OpenAI 的 GPT-4 来评估无害性,并进一步将其性能与针对该特定任务微调的较小预训练语言模型进行比较。此外,Bai 等人 (2022) 使用原则来指导 LLM 进行无害性评估以用于对齐目的,他们将这种范式称为“宪法 AI”(Constitutional AI)
  • (2023)使用相同的 LLM 来评估其响应是否有害,并为 GPT-3.5 和 Llama-2 提供了见解和最佳实践
  • Xie 等人 (2024a) 在 LLM 安全拒绝基准上对几个 LLM 进行了全面比较,发现小型 LLM 在微调设置下是有效的安全评判
  • 在推理时,(2023b) 提出了可回退自回归推理(RAIN),允许 LLM 进行自我评估和回退以确保 AI 安全

Reliability

  • 可靠性是指,LLM 能够生成事实性和忠实的内容 ,同时也能表达不确定性或承认对某些主题的知识空白(2024)
    • 关于事实性,Wang 等人 (2024a) 引入了 HALU-J,这是一个基于批判的幻觉评判(critique-based hallucination judge),通过选择相关证据并提供详细批判来增强事实性评估
  • Cheng 等人 (2023) 设计了一种使用 GPT-4 的自动评估方法,用于评判模型的输出是否是幻觉
  • 此外,一些工作采用 Judge LLM 进行长文本事实性评估
  • 在对话上下文中,Luo 等人 (2024) 收集了一个大规模的基准,用于自动对话级幻觉评估
    • 基于此数据集,他们引入了 HalluJudge,一个专门用于评估对话级幻觉的评判语言模型
  • Min 等人 (2023) 开发了 FactScore,一种细粒度的方法,用于评估长文本生成的事实性,首先将内容拆分为原子级句子,然后从维基百科检索相关语料库以评估其事实性
    • 在此基础上,Wei 等人 (2024b) 提出为 Judge LLM 配备 Google 搜索 API,以实现更灵活和高效的事实性评估
  • Jing 等人 (2024) 将这种细粒度的可靠性评估扩展到多模态领域,并引入了 FaithScore
    • Zhang 等人 (2024h) 在 LLM 对齐中采用了类似的策略,创建了一个合成对齐数据集,其中涉及使用声明提取和自我评判技术对每个生成的样本进行评估和过滤
  • Xie 等人 (2024b) 训练了一个外部基于批判的 LLM-as-a-judge,在生成阶段提供声明级的事实性反馈,以提高响应的事实性
    • 对于不确定性评判,Xu 等人 (2024c) 提出了 SaySelf,这是一个新的训练框架,通过自我一致性提示和基于组的校准训练,教 LLM 表达更细粒度的置信度估计(1-46, 1-50)

Relevance

  • 相关性衡量生成或检索的内容与原始查询的一致程度
  • 传统的相关性评估方法通常依赖于关键字匹配(2009)或语义相似度(2021),这些方法难以捕捉上下文中的细微差异或细微差别
  • 使用 Judge LLM 进行相关性评估已被探索并验证为在各种应用中更细粒度和有效的方式(2023;2024;2024b)
  • 在对话评估中,Lin 和 Chen (2023a) 首先提出用 LLM 评判来取代昂贵且耗时的人类注释,用于相关性评估,为 Judge LLM 提供对话上下文和生成的响应进行评估
  • 类似地,Abbasiantaeb 等人 (2024) 将 LLM-as-a-judge 应用于对话搜索,与人类注释者合作解决与不完整相关性评判相关的问题。在检索增强生成(RAG)场景中,Li 和 Qiu (2023) 利用 LLM 来确定哪些历史记忆最适合解决当前问题
  • 遵循这一概念,Li 等人 (2024c) 还提议采用 LLM 作为重新排序器,以评判和过滤子知识图中的噪声和不相关知识
    • 最近,LLM-as-a-judge 也被用于多模态应用中的相关性评判(2025;2024i;2024b;2024;2024b;2024;2024m;2024)
  • Yang 和 Lin (2024) 以及 Chen 等人 (2024a) 都采用多模态 LLM 来构建自动评估基准
    • 相比之下,Chen 等人 (2024f) 使用多模态奖励模型来评估文本到图像生成中的相关性
    • 在 SQL 生成评估中,(2023a) 提出利用 LLM 来确定 SQL 等价性
  • 此外,LLM-as-a-judge 还在许多传统检索应用中探索了相关性评估,如搜索(2024)、检索(2024a)和推荐(2024)

Feasibility

  • 复杂且设计良好的推理 Pipeline 可以进一步释放 LLM 的潜力
  • 在这些代理式 LLM 中,评估候选动作或步骤的可行性对于规划、推理和决策的成功至关重要
  • 虽然一些工作利用指标或外部工具进行这种可行性评估(2023a;Yuan 等人),但许多其他工作利用 LLM 本身来选择最适当和合理的动作来执行
  • Hao 等人 (2023) 首先提出提示 LLM 进行自我评估,并生成可行性评判作为奖励信号来执行蒙特卡洛树搜索(MCTS)
    • 类似地,Yao 等人 (2023a) 建议在其提出的“思维树”(ToT)框架中采用 LLM 作为状态评估器,用于潜在步骤搜索
  • Besta 等人 (2024) 将先前研究中使用的树结构替换为图结构,并使用 LLM 根据每个思维的可行性或正确性为其分配分数
  • 在多智能体协作系统中,Liang 等人 (2023)、Li 等人 (2024b) 和 Wang 等人 (2024d) 提议利用 Judge LLM 在多个候选响应中选择最可行和合理的解决方案
  • 此外,还有一些工作采用 Judge LLM 在 API 选择(2024b)、工具使用(2023)和 LLM 路由(2024)中进行可行性评估

Overall Quality

  • 如前所述,LLM-as-a-judge 可用于在各种任务和应用中执行多方面和细粒度的评估
    • 然而,在许多情况下,仍然需要一个综合评估来表示候选的整体质量,以进行比较或排名
    • 获得此整体分数的一种直接方法是计算特定方面分数的平均值或加权平均值(2023;2023b;Saad-2024)
  • 此外,其他一些研究呈现每个属性的评估结果,并提示 LLM 评判生成整体质量评判(2024d;2024;2024a)
    • 除了从多个属性总结整体质量外,其他研究专注于直接产生整体评判
  • 例如,在摘要(2023b;2023a;2024a;2024d,h)和机器翻译(2024;2023;2024)等传统 NLP 任务中,与更开放式的长文本生成任务相比,评估维度较少
    • 因此,在这些情况下,LLM-as-a-judge 通常用于直接提示 LLM 生成整体评判

Methodology

  • 在本节中,论文介绍 LLM-as-a-judge 常用的方法和技巧,将其分为调优方法(4.1 节)和提示策略(4.2 节)

Tuning

  • 为了增强通用 LLM 的评判能力,不同研究采用了各种调优技术
  • 在本节中,论文从两个角度讨论 LLM-as-a-judge 的调优方法:
    • 数据来源(4.1.1 节)
    • 训练方法(4.1.2 节)
  • 表 1 收集了所有专注于调优 Judge LLM 的研究论文
Data Source
  • 手动标注数据(Manually-labeled Data) :为了训练具有类似人类标准的 Judge LLM,一种直观的方法是收集手动标注的样本和相应的评判
    • 许多先前的工作已经利用并整合现有资源来构建全面的数据集,用于调优 Judge LLM
    • Vu 等人(2024)构建了一个大型且多样化的集合,包含超过 100 个质量评估任务,涵盖超过 500 万个人类评判,这些评判通过整理和标准化先前研究中公开的人类评估得到
    • 类似地,Wang 等人(2024k)提出了 PandaLM,并收集了多样化的人类标注测试数据,其中所有上下文均为人类生成,标签与人类偏好一致
    • 为了增强策略在对齐数据合成中的评判能力,Lee 等人(2024)通过成对评判任务扩充了 SFT数据集 ,该任务的指令是从一组选项中选择所选响应
  • 还有一些工作收集数据集用于细粒度的评判反馈(2024)
    • Xu 等人(2023)引入了 InstructScore,一种可解释的文本生成评估指标,并策划了 MetricInstruct 数据集,该数据集涵盖六个文本生成任务和 23 个数据集
    • Liu 等人(2024a)收集了 ASPECTINSTRUCT,这是第一个专为多方面 NLG 评估设计的指令调优数据集,跨越 65 个任务的 27 个不同评估方面
    • Yue 等人(2023)首先提出了属性评估,并使用来自相关任务(如问答、事实核查、自然语言推理和摘要)的数据对 Judge LLM 进行微调
    • Ke 等人(2024)采用了一种独特的方法,首先提示 GPT-4 生成反馈,并手动检查其为每个用户查询生成的文本,必要时进行修订以提高质量
  • 合成反馈(Synthetic Feedback) :尽管手动标注的反馈质量高且能准确反映人类评判偏好,但其在数量和覆盖范围上存在局限性
    • 一些研究人员将合成反馈作为调优 Judge LLM 的数据源。这一方向的一种方法依赖于 Judge LLM 自身生成合成反馈
      • Wu 等人(2024a)通过提示策略 LLM 评估自己的评判来构建成对反馈,以增强评判能力
      • Wang 等人(2024i)提示 LLM 生成原始指令的“noisy”版本 ,并将对该损坏指令的相应响应作为较差响应
      • Wang 等人(2024a)提示 GPT-4-Turbo 为每个实例基于原始证据生成多条证据,将其分类为完全不相关证据、部分不相关证据和高度相关证据,以训练幻觉评判 LLM
  • Park 等人(2024a)构建了 OFFSETBIAS,这是一个成对偏好数据集 ,利用 GPT-4 生成不良、离题和错误的响应 ,并进行难度过滤
  • 对于安全评判,Xie 等人(2024a)采用 GPT-4 作为分类器,将每个数据点映射到预定义的安全类别,以训练自动化评估器
  • 与先前工作不同,Li 等人(2024e)采用 GPT-4 合成成对和逐点数据,以训练生成式 Judge LLM
  • 对于逐点数据,他们采用“分而治之”的策略,从 GPT-4 收集单个响应的两条批评意见,将其合并为更全面的批评,并提供最终评分
  • 紧随其后,Kim 等人(2024b)使用 GPT-4 用详细的人类评估标准和口头反馈扩充偏好学习数据集
  • 在多模态领域,Xiong 等人(2024b)提出了 LLaVA-Critic,并采用 GPT-4o 生成给定分数或偏好评判背后的原因,用于训练数据构建
  • 此外,通过利用人类显式指令和 GPT-4 的隐式知识,Xu 等人(2023)基于 LLaMA 微调了一个 Judge LLM,为生成的文本同时生成分数和人类可读的诊断报告
  • Zhu 等人(2023)引入了 JudgeLM,并提出了一个全面、大规模、高质量的数据集,包含任务种子、LLM 生成的答案和 GPT-4 生成的评判,用于微调高性能评判
Tuning Techniques
  • SFT : SFT 是最常用的方法,用于帮助 Judge LLM 从成对(2024k;2024e;2023b;2023)或逐点(2024a;2023b;2023)评判数据中学习
    • 在采用 SFT 的众多工作中,Vu 等人(2024)提出了一种监督多任务训练方法,用于在各种任务的多个混合数据集上微调其基础大型自动评分模型(FLAMe)
    • 为了使 Judge LLM 同时具备成对和逐点评判能力,Kim 等人(2024b)在调优阶段新颖地提出了联合训练和权重合并方法,并发现后者在大多数情况下并未提高评估性能
    • 为了获得不仅能生成响应还能比较成对偏好的评判模型,Lee 等人(2024)设计了 Judge 增强监督微调( Judge-augmented Supervised Fine-tuning,JSFT),使用扩充的偏好学习数据集
    • 在训练阶段,Ke 等人(2024)通过添加简化提示来区分输入的不同部分,并通过交换两个生成文本的顺序和交换批评中的相应内容来扩充成对训练数据,从而增强他们的模型
    • Xu 等人(2023)进一步在自我生成的输出上微调其 INSTRUCTSCORE 模型,以优化反馈分数,生成与人类评判更好对齐的诊断报告
    • Liu 等人(2024a)还提出了两阶段监督微调方法,首先应用普通指令调优,使模型具备遵循指令进行各种评估的能力,然后使用辅助方面进行进一步调优,以丰富训练过程,纳入额外的指令调优阶段,利用与目标评估方面的潜在连接
  • 偏好学习(Preference Learning) :偏好学习与评判和评估任务密切相关,尤其是比较和排名评判
    • 除了直接采用或扩充偏好学习数据集用于监督微调 Judge LLM 的工作外,一些研究还应用偏好学习技术来增强 LLM 的评判能力
    • 为了提高 HALU-J 提供的评判质量,Wang 等人(2024a)在多证据设置下的 SFT 阶段后,使用定向偏好优化(DPO)(2023)进一步对其进行调优
    • 类似地,Park 等人(2024a)将 DPO 与包含关键错误但具有评判模型偏好的风格质量的合成“bad”响应一起应用,帮助减轻 Judge LLM 中的偏差
    • Wu 等人(2024a)新颖地提出了元奖励,利用策略 LLM 来评判自己评判的质量,并生成成对信号以增强 LLM 的评判能力
    • 这一概念也被 Wang 等人(2024i)采用,他们提出了自教评估器,使用损坏的指令生成次优响应作为偏好学习的劣质示例
    • 最近,Hu 等人(2024)提出了 Themis,一种专注于 NLG 评估的 LLM,其训练采用了设计的多视角一致性验证和面向评分的偏好对齐方法
    • Li 等人(2024o)提出了 PORTIA,一种基于对齐的方法,旨在以有效方式模拟人类比较行为,以校准位置偏差

Prompting

  • 在推理阶段设计适当的提示策略和 Pipeline 可以提高评判准确性并减轻偏差
  • 在本节中,论文总结和分类 LLM-as-a-judge 的现有提示策略(图 4)
Swapping Operation
  • 先前的研究表明, LLM-based 评判对候选的位置敏感,候选响应的质量排名很容易通过仅改变其在上下文中的顺序来操纵(2023c;2024;2023)
    • 为了减轻这种位置偏差并建立更公平的 LLM 评判系统,交换操作(2023)已被引入并广泛采用
    • 该技术涉及调用 Judge LLM 两次,在每个实例中交换两个候选的顺序
    • 在评估中,如果交换后的结果不一致,则标记为“平局(tie)” ,表明 LLM 无法自信地区分候选的质量(2023)
  • 几项研究还在自我对齐(2023;2024a;2024)中纳入了交换操作,以从 Judge LLM 获得更准确的成对反馈
  • Zhu 等人(2024a)提出了一种类似思维链(CoT-like)的提示技术,通过要求模型首先提供所有成对排名,然后用排名列表进行总结来减轻位置偏差
Rule Augmentation
  • 规则增强提示(Rule-augmented prompting)是指将一系列原则、参考依据和评估准则直接嵌入到 judge LLM 的提示指令中的方法
  • 这种方法通常用于 LLM-based 评估,其中引导 Judge LLM 评估特定方面(2024e;2023a;2024d;2024),并为其提供详细的标准(2023b;2024g;2024;2024l,h;2024c)以确保公平比较
  • Liu 等人(2024d)采用了一种独特的方法,提示 Judge LLM 通过对一组少样本示例的上下文学习来生成自己的评分标准。为了与 LLM-as-a-judge 保持一致,Bai 等人(2022)首先提出引入一系列原则(如帮助性、无害性、诚实性),使 Judge LLM 能够更精确和有方向地比较两个候选
  • 紧随其后,后续工作(2023, 2024;2024;2024a;2024a)通过为原则或标准的每个方面纳入更详细的解释来增强这种基于原则的提示
  • 此外,Li 和 Qiu(2023)以及 Li 等人(2024c)都提出提示 LLM 根据候选在解决特定问题中的帮助性来检索适当的演示/知识三元组
  • 为了从 LLMs 获得多样化的响应,Lahoti 等人(2023)提示多个 LLM 评判每个候选的多样性,并选择最多样化的一个进行进一步优化
  • Zhang 等人(2024g)提出了 RevisEval,其利用 LLM 的自我纠正能力自适应地修改响应,然后将修改后的文本作为后续评估的原则
  • 最近,一些工作研究了 LLM 作为个性化评判的可靠性(2024;2024;2024),将 persona 作为原则的一部分提供给 LLMs,以进行个性化评判
Multi-agent Collaboration
  • 由于 LLM 固有的各种偏差(2023c;2024;2023;2023a;2023c),访问单个 LLM 评判的结果可能不可靠
  • 为了解决这一限制,Li 等人(2023a)引入了 Peer Rank(PR)算法,该算法考虑每个对等 LLM 对所有答案对的成对偏好,并生成模型的最终排名
  • 在此基础上,出现了几种多智能体 LLM 的架构和技术,包括智能体混合(2023b)、角色扮演(2023)、辩论(2023;2024f;2024b)和投票(2024c;2024)。Jung 等人(2024)提出了级联选择性评估,其中成本较低的模型作为初始评判,仅在必要时升级到更强的模型(2024a)
  • 此外,一些工作将多智能体协作应用于对齐数据合成,利用多个 LLM 评判来完善响应(2024)或提供更准确的成对反馈(2024i)
  • 最近,(2024m)提出了 MATEval,其中所有智能体均由 GPT-4 等 LLM 扮演
    • MATEval 框架模仿人类协作讨论方法,整合多个智能体的交互以评估开放式文本
Demonstration
  • 上下文中的样本或演示(2020;2023;Agarwal 等人)为 LLM 提供了可遵循的具体示例,并已被证明是 LLM 上下文学习成功的关键因素
  • 几项研究引入了人类评估结果作为 LLM-as-a-judge 的演示,旨在引导 LLM 从几个具体的上下文中学习评估标准
  • Jain 等人(2023b)是第一个探索大型语言模型作为多维评估器在上下文学习中的功效的研究,无需大量训练数据集
  • Kotonya 等人(2023)对各种提示技术进行了系统实验,包括标准提示、基于注释器指令的提示和思维链提示,将这些方法与零样本和一样本学习相结合,以最大化评估效果
  • 为了提高 LLM 评估的鲁棒性,Hasanbeig 等人(2023)提出了 ALLURE,一种通过迭代纳入显著偏差的演示来增强评估器鲁棒性的方法
  • 此外,Song 等人(2024)引入并研究了两种多样本上下文学习(ICL)提示,使用两种版本的多样本 ICL 模板来帮助减轻 LLM 中的潜在偏差
Multi-turn Interaction
  • 在评估中,单个响应可能无法为 LLM 评判提供足够的信息来全面和公平地评估每个候选的表现
  • 为了解决这一限制,多轮交互通常被采用以提供更全面的评估
  • 通常,该过程从初始查询或主题开始,随后在 Judge LLM 和候选模型之间进行动态交互
  • Bai 等人(2023b)提出了一种多轮设置,其中评估器扮演面试官的角色,根据模型的先前答案提出越来越复杂的后续问题
  • 类似地,Yu 等人(2024d)引入了 KIEval,一种基于知识的交互式评估框架,其新颖地纳入了一个 LLM 驱动的交互器,以实现动态、抗污染的评估
  • 此外,一些方法促进候选之间的多轮辩论
    • 例如,Zhao 等人(2024c)设计了一个框架,其中两个 LLM 围绕查询进行多轮 peer battle ,使它们的真实性能差异得以显现
    • Moniri 等人(2024)提出了一个自动化基准系统,其中 LLM 进行辩论,最终评估由另一个 LLM 评判执行
Comparison Acceleration
  • 在 LLM-as-a-judge 的各种比较格式中(如 Pointwise 和 Listwise ),成对比较是直接比较两个模型或生成成对反馈的最常用方法
  • 然而,当需要对多个候选进行排名时(注:需要凉凉进行排列),这种方法可能非常耗时(2024)
  • 为了减轻计算开销,Zhai 等人(2024)提出了一种排名配对方法,所有候选首先与空白基线响应进行比较 ,然后根据每个候选与基线的比较表现确定其排名
  • Zhu 等人(2024a)提出了一种类似 CoT 的提示技术,通过强制模型首先提供所有成对排名,然后用列表总结这些成对排名来减轻位置偏差
  • 此外,Lee 等人(2024)在推理期间利用基于 tournament 的方法(2023a;2023c)进行拒绝采样,以加速成对比较
  • 他们构建了一个 tournament 树,其中叶节点表示采样的响应,非叶节点根据子节点之间的评判结果进行选择

Application

  • 尽管“LLM-as-a-judge ”最初是为评估应用而提出的,但其使用范围已大幅扩展到许多其他场景,如对齐、检索和推理
  • 因此,如图 5 所示,论文将全面介绍 LLM-as-a-judge 如何应用于各种领域

Evaluation

  • 自然语言处理中的传统评估依赖于预定义标准,通常通过指标来评估机器生成文本的质量
  • 一些著名的指标,如 BLEU、ROUGH 和 BERTScore 已在该领域广泛使用
  • 然而,基于指标的评估过度强调词汇重叠和相似性,当需要考虑许多有效响应和更细微的语义属性时,可能会显得不足(Post, 2018;2022)
  • 为解决这些局限性,LLM-as-a-judge 已被用于充当自动化评判,以增强许多任务的评估(2023b;2024)
  • LLM-as-a-judge 能够进行类似人类的定性评估,而不仅仅是对机器生成输出与 ground truth 的匹配程度进行简单的定量比较
  • 本节将讨论 LLM-as-a-judge 如何被用于评估开放式生成、推理和更多新兴 NLP 任务
Open-ended Generation Tasks
  • 开放式生成指的是生成内容应安全、准确且上下文相关的任务,尽管没有单一的“正确”答案
  • 此类任务包括对话响应生成、摘要、故事生成和创意写作(2024;2023a;2024;2024;Bermejo, 2024)。与传统的基于指标的评估方法不同,LLM-as-a-judge 提供了更细致、适应性更强的定制化评估
  • 正如 Zheng 等人 (2023) 所指出的,像 GPT-4 这样的 LLM 在评判开放式文本生成方面表现得可与人类媲美
  • 在实践中,LLM-as-a-judge 已被应用于评估单个模型的输出,以及在竞争环境中比较多个模型的输出
  • 例如,Gao 等人 (2023b) 使用 ChatGPT 进行类似人类的摘要评估
  • 同样,Wu 等人 (2023) 提出了一个基于比较的框架,让 LLMs 充当具有多种角色扮演的评判,以特定维度评估摘要质量并生成评估结果
  • 现代 LLM 擅长生成详细的长文本响应。然而,随着输出长度的增加,产生幻觉的可能性也随之增加
    • 为了更好地理解这一现象,Cheng 等人 (2023) 和 Zhang 等人 (2024d) 引入了一种评估方法,使用 GPT-4 来评判生成的输出是否包含逻辑结构合理但无意义的陈述
    • Wang 等人 (2024a) 提出了一个基于批判的评判系统,通过选择相关证据并提供深入批判来评估幻觉
  • 除了幻觉之外,LLM 生成有害(如鼓励自杀)和不安全(如指导非法活动)响应的问题也备受关注
    • 针对这一问题,Li 等人 (2024g) 引入了 MD-Judge 和 MCQ-Judge,用于评估与安全相关的问答对,尤其关注旨在引发不安全响应的查询。这种方法支持无缝且可靠的评估
  • 然而,对不安全查询过于谨慎的态度可能导致过度拒绝响应,从而阻碍正常功能并对用户体验产生负面影响
    • 为了探讨这一问题,Xie 等人 (2024a) 对各种 LLM-as-a-judge 的框架进行了元评估,评估了当前 LLMs 对潜在不安全查询的拒绝倾向
    • 此外,(2024a) 引入了一个 LLM-based 答案提取器,以准确确定开放式生成中答案的关键部分
  • 另外,An 等人 (2023) 提出了 L-Eval,这是一个 LLM-as-a-judge 的框架,旨在为长上下文语言模型建立更标准化的评估
    • 这一概念得到了 Bai 等人 (2024) 的跟进,他们提议利用 LLM-as-a-judge 来过滤长上下文 LLMs 的评估数据
  • 最近的研究还利用 LLM-as-a-judge 来评估生成模型的通用能力
    • 这种方法通常采用基于辩论的框架,其中多个 LLMs 生成响应,随后由单独的 Judge LLM 进行评估
    • 例如,Chan 等人 (2023) 引入了一个多智能体辩论框架,旨在促进自主讨论并评估开放式文本生成任务中不同 LLMs 生成响应的质量
    • 类似地,Moniri 等人 (2024) 提出了一个自动化辩论框架,该框架不仅根据领域知识评估 LLMs,还评估它们在问题定义和不一致识别方面的能力
Reasoning Tasks
  • LLMs 的推理能力可以通过它们在特定推理任务上的中间思维过程和最终答案来评估(2024;2024;2024c)
    • 最近,LLM-as-a-judge 已被用于评估模型中间推理路径的逻辑进展、深度和连贯性
  • 对于数学推理任务,Xia 等人 (2024) 引入了一个自动评估框架,使用专门设计的 Judge LLM 来评估问题解决过程中推理步骤的质量
  • LLM-as-a-judge 还可以应用于更复杂的推理任务,如时间推理,其中模型需要理解不同事件在时间上的关系
  • Fatemi 等人 (2024) 构建了合成数据集,专门用于评估 LLMs 在各种场景下的时间推理能力,测试它们在时间有序事件的序列、因果关系和依赖关系方面的推理熟练程度
  • 大量的训练数据带来了一个挑战,即如何确定模型是通过深度逻辑理解进行推理,还是仅仅利用记忆模式(2024)
    • Wang 等人 (2023a) 设计了一个辩论式框架来评估 LLMs 的推理能力。给定一个特定问题,LLM 和用户采取对立立场并讨论该主题,以达成正确的决策
  • Nan 等人 (2024) 开发了一个多智能体评估框架,模拟学术同行评审过程
  • 该框架让 LLM-as-a-judge 参与协作评审,为数据驱动任务中 LLMs 的推理能力提供了更细致的理解
Emerging Tasks
  • 随着 LLMs 能力的快速发展,机器越来越多地被用于以前被认为是人类专属的任务,尤其是在特定上下文领域
  • 一个突出的任务是社交智能,其中模型面临复杂的社交场景,需要理解文化价值观、伦理原则和潜在的社会影响
  • 例如,Xu 等人 (2024a) 评估了 LLMs 的社交智能,强调尽管这些模型在学术问题解决能力方面取得了进步,但在社交智能方面仍明显落后
  • 同样,Zhou 等人 (2023) 引入了 SOTOPIA 和 SOTOPIA-EVAL,以模拟 LLM 智能体之间的复杂社交互动并评估它们的社交智能
  • 在他们的工作中,GPT-4 被用作人类评判的代理,以评估模拟互动中的目标完成度、财务管理和关系维护
  • 另一项研究致力于评估大型多模态模型(LMMs)和大型视觉语言模型(LVLMs)
    • 例如,Xiong 等人 (2024b) 探索了 LMM 作为评判来评估多模态模型的性能,提供最终分数和评估的基本原理,以提高透明度和一致性
  • Chen 等人 (2024d) 提出了第一个用于 LVLMs 自动评估的基准,专门针对自动驾驶的边缘情况
    • 他们发现,由 LLMs 作为评判进行的评估比由 LVLMs 作为评判进行的评估更符合人类偏好
  • 最近,论文看到 LLM-as-a-judge 的更定制化应用,用于评估新兴任务,如
    • 代码理解(2024a;2025;2024c;2024a;2024a;2024)
    • 法律知识(2023)
    • 游戏开发(Isaza-2024)
    • 海洋科学(2023)
    • 医疗对话(2024n)
    • 辩论评判(2024a)
    • 检索增强生成(2024)
    • 跨能力(cross ability,2024)
    • 人机交互(HCI)(2024j;2025;2024)
    • 角色扮演(2024c)
    • RAG(2024)
    • 语音合成(2024b)
    • 反语音生成(counterspeech generation,2025b,a)等
    • 这一趋势反映了 LLM-as-a-judge 在评估多样化和专业领域方面的适应性日益增强

Alignment

  • 对齐调优(2022a;2022)是使 LLMs 与人类偏好和价值观保持一致的重要技术
  • 这一过程的一个关键组成部分是收集高质量的成对反馈,这对于奖励建模(2017)或直接偏好学习(2023)至关重要
  • 最近,越来越多的研究兴趣集中在通过在对齐调优中采用 LLM-as-a-judge 来自动化这种成对反馈机制
Larger Models as Judges
  • 在对齐调优中采用 LLM-as-a-judge 的一个直观想法是利用更大、更强的 LLMs 的反馈来指导较小、能力较弱的模型
  • (2022) 首先提出利用 AI 的反馈来构建无害的 AI 助手
    • 他们使用基于预训练语言模型偏好的合成偏好数据来训练奖励模型
  • 在此基础上,Lee 等人 (2023) 发现,即使 LLM 评判不够强大,RLAIF 方法也能通过 RLHF 取得可比的性能
    • 他们还引入了 DIRECT-RLAIF,直接使用现成的 LLM-as-a-judge 模型,以减轻奖励模型中的奖励陈旧问题
  • 为了避免对齐中的奖励欺骗,Sun 等人 (2024a) 设计了一个可指示的奖励模型,该模型在合成偏好数据上训练
    • 它使人类能够在 RL 时间进行干预,以更好地使目标策略与人类价值观保持一致
    • 除了上述研究之外,Guo 等人 (2024) 引入了在线 AI 反馈(OAIF),直接利用注释模型的偏好信号来训练目标模型
  • 还有一些工作利用多智能体合作来在对齐调优中获得更好的评判
    • Arif 等人 (2024) 和 (2024) 使用多智能体工作流构建合成偏好优化数据集,并采用具有各种提示策略和 Pipeline 的 LLMs 作为评判
    • 类似地,(2024i) 利用多个 LLMs 相互辩论,迭代提高响应质量,同时创建一个 Judge LLM 来选择偏好的响应,以增强指令调优
  • 为了使生成的代码与人类偏好保持一致,Weyssow 等人 (2024) 引入了 CodeUltraFeedback,这是一个使用 LLM-as-a-judge 方法构建的偏好编码数据集
    • 这个合成数据集后来被用于使用 SFT 和 DPO 对小型代码 LLMs 进行微调和对齐
  • 最近,Wang 等人 (2024f) 提出了 BPO,使用 GPT-4 作为评判,并在对齐过程中构建合成成对反馈,以实现知识深度和广度的平衡
Self-Judging
  • 另一类工作旨在利用同一 LLM 的偏好信号来自我改进
  • Yuan 等人 (2024e) 首先提出了自我奖励 LLM 的概念,其中通过让 LLM 自身充当评判来构建成对数据
  • 紧随其后,Wu 等人 (2024a) 引入了元奖励,对 LLMs 的评判进行评判,并使用反馈来改进它们的评判技能
    • 他们的 LLM 作为元评判的方法显著增强了模型评估和遵循指令的能力
  • 为了提高合成数据质量:
    • Pace 等人 (2024) 结合了 Best-of-N 和 Worst-of-N 采样策略,并引入了 West-of-N 方法
    • Lee 等人 (2024) 设计了 Judge 增强监督微调(Judge augmented Supervised Fine-Tuning,JSFT),以训练单个模型同时充当策略和评判
      • 为了充分利用这个评判模型,他们还提出了通过 tournament 进行自我拒绝的方法,以在推理时选择最佳响应
  • 与上述使用 LLM-as-a-judge 来构建成对数据的方法不同,Tong 等人 (2024) 将 LLM-as-a-judge 应用于自我过滤方法,以确保对齐任务中合成数据对的质量,用于推理
  • 为了减少成对评判中的计算开销,Zhai 等人 (2024) 提出了一种用于自我偏好语言模型的排名配对方法,通过测量每个响应相对于基线的强度来加速比较过程
  • Liu 等人 (2024e) 引入了元排名(meta-ranking),使较弱的 LLMs(2024b)能够充当可靠的评判并提供可信赖的反馈。他们还将元排名方法应用于 SFT 后训练,将其与 Kahneman-Tversky 优化(KTO)结合使用,以改进对齐
  • 为了提高合成指令调优数据的质量,Liang 等人 (2024c) 引入了迭代自我增强范式(I-SHEEP)。在训练期间,他们采用 LLM-as-a-judge 来为合成响应评分,并设置阈值来收集高质量的查询-响应对,用于后续训练迭代
  • 最近,Yasunaga 等人 (2024) 提出将 LLM-as-a-judge 与数据合成相结合,并成功构建了只需少量注释即可与人类对齐的 LLMs
  • 几项工作还在特定领域或针对特定属性采用了 LLM-as-a-judge
    • Zhang 等人 (2024h) 提出了一种自我评估机制,通过生成问答对来评判响应的事实性。然后,他们利用这些自我注释的响应通过 DPO 算法对模型进行微调,以提高事实性
    • 在机器人技术中,Zeng 等人 (2024) 利用 LLMs 的自我排名响应来迭代更新奖励函数,从而在没有人类监督的情况下提高学习效率
    • 在多模态领域,Ahn 等人 (2024) 提出了迭代自我回顾评判(iterative self-retrospective judgment, i-SRT),该方法采用自我反思来改进响应生成和偏好建模

Retrieval

  • LLM-as-a-judge 在检索中的作用包括传统文档排名和更动态的、上下文自适应的检索增强生成(Retrieval-Augmented Generation,RAG)方法
  • 在传统检索中,LLMs 通过先进的提示技术提高排名准确性,使它们能够在几乎没有标记数据的情况下按相关性对文档进行排序
  • 作为补充,RAG 框架利用 LLMs 生成内容的能力,这些内容由检索到的信息引导,支持需要复杂或不断发展的知识整合的应用
    • 这些技术共同强调了 LLMs 作为检索任务评判的适应性,从基础排名到特定领域的知识增强应用
Traditional Retrieval
  • 最近的研究探索了 LLMs 作为评判在信息检索中对文档进行排名的作用,旨在提高排名精度并减少对大量训练数据的依赖
    • Sun 等人 (2023) 探索了像 GPT-4 这样的生成式 LLMs 在信息检索中进行相关性排名的潜力
      • 他们提出了一种基于排列的方法来按相关性对段落进行排名,指示 LLMs 输出段落的有序排列,从而提高排名精度
    • 作为补充,Zhuang 等人 (2024a) 引入了一种方法,将细粒度的相关性标签 Embedding 到 LLM 提示中,使模型能够区分细微的相关性变化并产生更精细的文档排序
    • Listwise 排名的进一步创新由 Ma 等人 (2023) 展示,他们提出了使用大型语言模型的 Listwise 重新排序器(LRL),这是一种直接对文档标识符进行重新排序的工具,无需依赖特定任务的训练数据。此外,Zhuang 等人 (2024b) 提出了一种适用于零样本排名的集合式提示策略,通过减少 LLM 推理频率和标记使用来简化排名操作,在不牺牲性能的情况下提高了效率
  • 为了解决位置偏差(这是 Listwise 排名任务中的常见挑战),Tang 等人 (2024b) 引入了排列自我一致性技术,该技术对多个列表顺序进行平均,以产生与顺序无关的排名。这种方法有效减少了位置偏差,这在 LLM 驱动的 Listwise 排名中是一个特别成问题的问题
  • 最后,Qin 等人 (2024) 批评了现有方法中点式和 Listwise 排名提示的局限性,指出典型的 LLMs 往往缺乏理解复杂排名任务的深度
    • 为了缓解这一问题,他们提出了使用中等规模开源 LLMs 的成对排名提示(PRP),作为更昂贵的大型专有模型的有效且经济的替代方案
  • 除了一般检索任务之外,LLMs 还证明了它们作为专门应用评判的实用性。例如,Ma 等人 (2024a) 概述了一个少样本工作流程,该流程使用通用 LLM 进行法律信息检索中的相关性评判。该模型通过将任务分解为多个阶段,实现了与专家注释的高度一致性,促进了专家推理的整合,以提高法律环境中相关性评估的准确性
  • 在推荐系统中,Hou 等人 (2024) 研究了 LLMs 将项目排名视为条件排名任务的潜力。该框架考虑了用户交互历史以及候选项目,解决了 LLMs 已知的偏差,例如倾向于偏爱流行或排名靠前的项目。采用了专门的提示和引导技术来纠正这些偏差并提高解释准确性
  • 最后,在搜索系统领域,Thomas 等人 (2023) 发现 LLMs 在预测搜索者偏好方面的表现可与人类标注者相媲美,使它们成为识别高性能系统和标记具有挑战性查询的有价值工具。这项研究强调了 LLMs 作为复杂检索任务评判的有效性,能够在各种应用中实现更细致和准确的相关性评估
Retrieval-Augmented Generation, RAG
  • 检索增强生成(RAG)的最新发展探索了 LLMs 自我评估和自我改进的能力,无需注释数据集或参数调整(2024e)
    • Li 和 Qiu (2023) 引入了思维记忆(MoT)框架,这是一个两阶段自我反思模型,自主增强 LLM 的推理能力
  • 在第一阶段,模型在未标记数据集上生成高置信度推理,将其存储为记忆
    • 在测试阶段,模型通过评判每个记忆与当前问题的相关性来回忆这些记忆,并选择最相关的记忆作为演示
  • 类似地,Tang 等人 (2024a) 提出了自我检索,这是一种创新架构,通过自然语言索引将信息检索(IR)能力整合到单个 LLM 中,以将语料库内化。这种方法将检索转变为文档生成和自我评估过程,在单个模型中实现了完全端到端的 IR 工作流程
  • 此外,Asai 等人 (2024) 提出了 SELF-RAG(Self-Reflective Retrieval-Augmented Generation,自我反思检索增强生成),该模型通过检索和自我反思循环提高 LLM 响应的质量和事实性。通过使用“反思标记”来指导适应性响应,SELF-RAG 使模型能够根据特定任务要求动态评判和调整其响应
  • 在问答领域,LLMs 越来越多地被用作评估代理,以实时评估答案的相关性、质量和实用性
    • Rackauckas 等人 (2024) 引入了一个 LLM-based 评估框架,该框架从实际用户交互和特定领域文档生成合成查询
      • 在这个框架中,LLMs 充当评判,评估检索到的文档并通过 RAGElo(一种基于 Elo 的自动竞争)对 RAG 智能体变体进行排名
      • 这种结构为 QA 系统中的质量控制提供了可扩展的解决方案
  • 此外,Zhang 等人 (2024b) 对 LLMs 评估开放域 QA 中相关性与实用性的能力进行了广泛研究。他们的发现表明,LLMs 可以有效区分两者,并且在呈现反事实段落时具有高度适应性
    • 这种实用性评估能力使 LLMs 能够在评估过程中提供更细致和上下文相关的响应
  • 针对特定领域的 RAG 系统揭示了 LLMs 通过整合专业知识结构来导航复杂查询的潜力
    • 在特定领域检索中,Wang 等人 (2024b) 提出了 BIORAG,这是一种先进的 RAG 框架,通过分层知识结构增强向量检索
    • BIORAG 采用自我意识评估检索器来持续评判其收集信息的充分性和相关性,从而提高检索文档的准确性
  • 对于生物医学研究,Li 等人 (2024c) 引入了 DALK(LLMs 和知识图谱的动态协同增强),这是一种新颖的系统,将 LLM 与从科学文献中派生的不断发展的阿尔茨海默病(AD)知识图谱相结合
    • 使用新颖的自我意识知识检索方法,DALK 利用 LLMs 的评判能力进行噪声过滤,增强 LLM 在 AD 相关查询中的推理性能
  • 类似地,Jeong 等人 (2024) 提出了 SelfBioRAG,这是一种将 RAG 原理应用于生物医学应用的框架
    • Self-BioRAG 采用 LLM 来选择最佳证据并基于所选证据和编码知识生成答案
    • 最近,(Déjean, 2024) 提炼了一个 LLM-as-a-judge ,从 LLMs 的参数记忆中提取检索结果

Reasoning

  • 释放 LLMs 的推理能力提供了一种缓解缩放定律局限性的方法,仅靠缩放定律可能无法充分揭示模型的潜力
  • 推理是 LLMs 的一个关键方面,因为它直接影响它们解决复杂问题、做出决策和提供准确的上下文感知响应的能力
  • 最近,许多关于 LLMs 推理能力的研究都集中在如何利用 LLM-as-a-judge 来选择推理路径(5.4.1 节)和利用外部工具(5.4.2 节)
Reasoning Path Selection
  • Wei 等人 (2022b) 引入了思维链(CoT)提示的概念,以鼓励模型生成逐步推理过程。虽然已经提出了其他更复杂的认知结构(2023a;2023)来增强 LLMs 的推理能力,但一个关键挑战是如何为 LLMs 选择合理且可靠的推理路径或轨迹以遵循
    • 为了解决这个问题,许多工作采用了 LLM-as-a-judge
  • 一些工作专注于推理过程中的样本级选择
    • (2023a) 引入了策略评估器,以在验证集上进一步评估候选策略
    • (2024) 引入了 REPS(Rationale Enhancement through Pairwise Selection, 通过成对选择增强理由),通过使用 LLMs 进行成对自我评估来评判和选择有效理由,并基于这些数据训练验证器(verifier)
  • LLMs 的另一个推理路径选择问题是多样性,Lahoti 等人 (2023) 发现 LLMs 掌握了多样性的概念,并且可以识别响应缺乏多样性的方面。通过选择和聚合多个批评意见,LLMs 可以取得类似的收益,与多次批评和修订迭代相比
  • 在多智能体协作框架中,Liang 等人 (2023) 提出了多智能体辩论(multi-agent debating,MAD),这是一种促进多个智能体之间辩论和讨论的新范式。他们利用 Judge LLM 在辩论过程结束时选择最合理的响应作为最终输出
  • 类似地,Li 等人 (2024b) 在基于层的多智能体协作中提出了新角色,采用 Judge LLM 来选择高质量和合理的响应,从而显著提高整个系统的标记利用效率
  • 此外,还有许多工作专注于步骤级推理路径选择,利用 Judge LLM 作为过程奖励模型(process reward model,PRM)来评估状态分数。Creswell 等人 (2023) 将推理过程分解为选择和推理。在选择步骤中,他们利用 LLM 本身来评判和评估每个潜在的推理轨迹,选择合适的轨迹用于后续推理步骤
  • Xie 等人 (2024b) 提出了 Kwai-STaR 框架,该框架将 LLMs 转变为状态转换推理器,以在数学推理中为自己评判和选择最佳推理状态。Lightman 等人 (2023) 训练 LLM 作为 PRM 来进行推理时监督,并在推理阶段执行 Best-of-N 采样策略
  • 紧随其后,Setlur 等人 (2024) 进一步提出了过程优势验证器(process advantage verifiers,PAVs),基于未来产生正确响应的可能性变化生成奖励。其他工作模拟高级认知结构作为推理过程
  • Hao 等人 (2023) 采用 LLMs 作为世界模型来模拟环境状态,并执行蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)以提高需要谨慎路径选择的任务的性能
  • Besta 等人 (2024) 将 LLMs 生成的输出视为任意图(arbitrary graph)
    • LLM 思维被建模为顶点,而边是思维之间的依赖关系
    • 该框架能够对每个推理状态的连贯性和逻辑推理进行系统评判
  • Yao 等人 (2023a) 提出了思维树(ToT),其中每个思维都作为解决问题的中间步骤
    • 它将推理分解为多个步骤,在每个状态进行自我评估和评判进展,并使用带有 LMs 的搜索算法通过前瞻和回溯来评判思维路径
  • 此外,还有一些研究训练基于批评的 LLM 评判(2024;2024b;2024e;2024b;2024;2024),这些评判提供细粒度的口头反馈以促进推理过程
Reasoning with External Tools
  • Yao 等人 (2023b) 首先提出以交错方式使用 LLMs 来生成推理轨迹和特定任务的动作
    • 推理轨迹帮助模型评判和更新动作计划,而动作使其能够与外部源交互
  • 随后,Auto-GPT 由 (2023) 引入,通过将 LLM-as-a-judge 用于工具使用,提供更准确的信息
    • 通过配备一系列外部复杂工具,LLMs 变得更加通用和有能力,通过评判和推理使用哪些工具来提高规划性能
  • Sha 等人 (2023) 探索了 LLMs 在推理和评判方面的潜力,将它们用作需要人类常识理解的复杂自动驾驶场景的决策组件
    • Zhou 等人 (2024d) 利用自我发现过程,其中 LLMs 根据给定的查询进行评判,并选择最可行的推理结构用于后续推理阶段
  • 尽管 LLMs 在各种工具的评判能力方面表现出色,但选择使用哪个模型或 API 通常涉及性能和成本之间的权衡
    • 更强大的模型虽然有效,但成本也更高,而能力较弱的模型则更具成本效益
    • 为了解决这个难题,(2024) 的作者提出了一个路由模型,该模型可以在评判过程中动态选择较强或较弱的 LLM ,旨在平衡成本和响应质量
  • 出于效率考虑,类似地,Zhao 等人 (2024b) 引入了 DiffAgent,作为一种旨在根据用户特定提示评判和选择不同文本到图像 API 的智能体
    • DiffAgent 的评判与人类偏好更一致,优于传统的 API 选择方法

Benchmark: Judging LLM-as-a-judge

  • 对 LLM 作为评判的评估需要强大且目标明确的基准,以捕捉这一任务的多方面性质
  • 论文将现有基准按以下维度分类:通用性能、偏差量化、领域特定性能、多模态评估、多语言能力、评估指令遵循、脆弱性评估和挑战性任务性能
    • 这一分类法展示了LLM作为评判评估框架的多样化目标,为分析其设计、范围和影响提供了结构化视角
    • 表 2 展示了LLM作为评判的各种基准和数据集的集合

General Performance

  • 专注于通用性能的基准旨在评估LLM在各种任务中的整体能力。这些基准通常测量与人类评判的一致性、准确性和相关性
  • 值得注意的例子包括:
    • MT-Bench和Chatbot Arena(2023),使用一致性、偏差和错误等指标评估对话场景
      • 这些基准进一步探索特定偏差,包括位置偏差、冗长偏差和自我增强倾向
    • JUDGE-BENCH(2024a)、DHP(2024j)、RewardBench(2024)、SOS-BENCH(2024)和JuStRank(2024),它们在更大规模上运行,使用Cohen’s kappa、辨别分数和标准化准确性等指标来基准化通用LLM性能
    • LLM-judge-eval(2024a),评估摘要和对齐等任务,并使用额外指标如翻转噪声和长度偏差

Bias Quantification

  • 减轻LLM评判中的偏差对于确保公平性和可靠性至关重要(Schroeder和Wood-Doughty, 2024)。典型基准包括EvalBiasBench 和CALM(2024a),它们明确专注于量化偏差,包括从对齐中出现的偏差和对抗条件下的鲁棒性偏差。此外,Shi等人 (2024a) 在问答任务中评估位置偏差和一致性百分比等指标

Challenging Task Performance

  • 为困难任务设计的基准推动了LLM评估的边界。例如
    • Arena-Hard Auto(2024k)、JudgeBench(2024a)和Yuan等人 (2024b) 分别针对对话式QA和各种推理任务,根据LLM的表现选择更难的问题
    • CALM(2024a)探索对齐和挑战性场景,使用可分离性、一致性和破解准确性等指标,评估在手动识别的硬数据集上的性能

Domain-Specific Performance

  • 领域特定基准提供了针对特定上下文的任务评估,以评估LLM的有效性
  • 具体而言,Raju等人 (2024) 测量跨任务的可分离性和一致性,利用 Brier 分数等指标,深入了解编码、医疗、金融、法律和数学等特定领域
  • CodeJudge-Eval(2024a)专门评估 LLM 对代码生成的评判,使用以执行为中心的指标如准确性和 F1 分数
  • 这一想法也被后续代码摘要和生成评估的多项工作所采用(2024b;2024;2024;2024;2024;2024e;2024)(1-172, 1-173)

Other Evaluation Dimensions

  • 除了通用性能和偏差量化,一些基准还解决了使用 LLM 作为评判的其他关键评估维度:
    • 多模态(Multimodal) :MLLM-as-a-judge(2024a)将评估框架扩展到涉及多种数据模态的任务,专注于与人类评判的一致性、分析评分和幻觉检测
    • 多语言(Multilingual) :MM-EVAL(2024b)和KUDGE(2024a)等基准评估多语言和非英语性能,测量准确性和相关性等指标,尤其在挑战性场景中
    • Instruction Following :Murugadoss等人 (2024) 检查LLM遵循特定评估指令的程度,使用相关性指标量化性能

Challenges & Future Works

  • 在本节中,论文概述了LLM作为评判的当前挑战和值得探索的未来方向,包括偏差与脆弱性、动态与复杂评判、自我评判以及人机协同评判

Bias & Vulnerability

  • LLM 作为评判本质上将评估构建为生成任务,引入了与偏差和脆弱性相关的重大挑战
    • 这些偏差通常源于模型的训练数据,其中常常嵌入(embeds)了与种族、性别、宗教、文化和意识形态等人口身份相关的社会刻板印象(2021)
    • 当LLM被部署于多样化的评判任务时,此类偏差会显著损害公平性和可靠性
  • 除了这些一般性偏差,当LLM充当评判时还会出现特定的评估偏差
    • 位置偏差(Order Bias) 是一个突出问题,候选的顺序会影响偏好(2023;2023c;2023a;2024b)
      • 这种偏差会扭曲评估结果,尤其是在成对比较中,当竞争响应之间的质量差距较小时更为明显(2024b;2023c)
    • 自我中心偏差(Egocentric Bias) 出现时,LLM会偏爱同一模型生成的输出,损害客观性(2023c;2023a;2024;2024)
      • 当评估指标使用同一模型设计时,这一问题尤为突出,会导致对源自该模型的输出评分虚高(2023c)
    • 长度偏差(Length Bias) 是另一个普遍挑战,评估会不成比例地偏爱更长或更短的响应,而不论质量如何(2023;2023a)
    • 其他偏差进一步复杂化了 LLM 评估,如:
      • 错误信息忽视偏差(Misinformation Oversight Bias) :比如,错误信息忽视偏差反映了忽略事实性错误的倾向
      • 权威偏差(Authority Bias) :比如,权威偏差偏爱来自所谓权威来源的陈述
      • 美观偏差(Beauty Bias) :比如,美观偏差优先考虑视觉吸引力内容而非实质质量(2024b,e;2024)
      • 冗长偏差(Verbosity Bias) 表现为偏爱更长的解释,通常将冗长等同于质量,这可能误导评判过程(2024c)
      • 情感偏差(Sentiment Bias) 会使评估因情感基调而倾斜,偏爱带有积极表述的响应(2024a)
  • LLM评判还极易受到对抗性操纵
    • 诸如 JudgeDeceiver 等技术凸显了基于优化的提示注入攻击的风险,精心设计的对抗序列可操纵 LLM 评判以偏爱特定响应(2024a;2024;2024a;2024b)
    • 同样,通用对抗短语可在绝对评分范式中大幅抬高分数,揭示了零样本评估设置的脆弱性(2023;2024;2024)
    • 这些操纵引发了对 LLM 评判在排行榜、学术或法律评估等高风险场景中的可靠性的担忧(2024a;2024;2024e;2024)
  • 为解决这些偏差和脆弱性,诸如 CALM(2024a)和 BWRS(2024b)等框架提供了系统的偏差量化和缓解方法
    • 多重证据校准(Multiple Evidence Calibration, MEC)、平衡位置校准(Balanced Position Calibration, BPC)和人机协同校准(Human-in-the-Loop Calibration, HITLC)等技术已被证明在使模型评判与人类评估一致的同时减少位置偏差和其他偏差方面有效(2023c)
    • 此外,认知偏差基准如 COBBLER 已识别出需要在 LLM 评估中系统缓解的六种关键偏差,包括显著性偏差和从众效应(2023b)
  • 未来方向(Future Direction) :
    • 未来研究的一个有希望的方向是将检索增强生成(RAG)框架集成到 LLM 评估过程中(2024e)
      • 通过结合生成和检索能力,这些框架可通过将评估基于外部可验证的数据源来减少自我偏好和事实性问题等偏差
    • 另一个有前景的途径是使用偏差感知数据集 ,如 OFFSETBIAS,以系统地解决 LLM 作为评判系统中的固有偏差(2024a)
      • 将此类数据集纳入训练 Pipeline 可使 LLM 更好地区分表面特质与实质正确性,从而增强公平性和可靠性
    • 探索微调 LLM 作为可扩展评判,如 JudgeLM 框架所示,代表了另一个有趣的方向(2023)
      • 该框架中 Embedding 的交换增强和参考支持等技术可系统地减轻偏差,提高评估一致性,并将基于LLM的评判的适用性扩展到开放式任务
    • 此外,推进零样本(zero-shot)比较评估框架具有重要前景(2023)
      • 这些框架可完善成对比较技术并实施去偏策略,提高跨不同评估领域的公平性和可靠性,而无需广泛的提示工程或微调
    • 最后,需要进一步探索抗 JudgeDeceiver 校准和对抗短语检测策略,以保护 LLM 作为评判框架免受攻击(2024a;2024;2024b;2024d;2024c)

Dynamic & Complex Judgment

  • 早期关于 LLM 作为评判的工作通常采用静态和直接的方法,直接提示评判 LLM 执行评估(2023)
    • 最近,已提出更多动态和复杂的评判 Pipeline 来解决各种限制,提高LLM作为评判的鲁棒性和有效性
    • 一个方向上的方法遵循“LLM-as-a-examiner”的概念,系统根据候选 LLM 的表现动态交互地生成问题和评判(2024d;2023a;2024a)
    • 其他工作专注于基于两个或更多候选 LLM 的对抗和辩论结果进行评判(2024;2024c)
      • 这些动态评判方法极大地提高了评判 LLM 对每个候选的理解,并可能防止 LLM 评估中的数据污染问题(2024)
      • 此外,构建复杂和精密的评判 Pipeline 或智能体是另一个流行的研究领域(2023a;2023;2024;2024)
      • 这些方法通常涉及多智能体协作,以及精心设计的规划和记忆系统,使评判 LLM 能够处理更复杂和多样化的评判场景
  • 未来方向(Future Direction) :
    • 未来研究的一个有希望的方向是赋予 LLM 类似人类的评判能力(2024c;2024b;2024)
    • 这些设计可借鉴人类评判时的行为,如锚定与比较、后见之明与反思,以及元评判(meta-judgment)
    • 另一个有趣的途径是开发使用 LLM 的自适应难度评估系统(adaptive difficulty assessment system, 2024)
      • 该系统将根据候选的当前表现调整问题难度
      • 这种自适应和动态系统可解决 LLM 评估中的一个重大限制,因为静态基准通常无法准确评估具有不同能力的LLM

Self-Judging

  • LLM-based 评估器,如 GPT-4,广泛用于评估输出,但面临重大挑战:
    • 尤其是自我中心偏差(Egocentric Bias) ,即模型偏爱自己的响应而非外部系统的响应(2023b;2023a;2023;2025)
      • 这种自我偏好破坏了公正性,造成了“先有鸡还是先有蛋”的困境:强大的评估器对开发强大的 LLM 至关重要,而推进 LLM 又依赖于无偏的评估器
    • 其他问题包括自我增强偏差(Self-Enhancement Bias) ,模型会高估自己的输出(2023a),以及奖励欺骗(Reward Hacking),对特定信号的过度优化导致评估的泛化能力降低(2024a)
      • 此外,对静态奖励模型的依赖(Static Reward Models)限制了适应性,而位置(Positional)和冗长(Verbosity)等偏差通过偏爱响应顺序或长度而非质量来扭曲评判(2024e;2024i)
      • 人类注释的高成本和有限可扩展性进一步复杂化了动态和可靠评估系统的创建(2022;2022)
  • 未来方向(Future Direction) :
    • 未来研究的一个有希望的方向是开发如 Peer Rank and Discussion(PRD)(2023a)这样的协作评估框架
      • 这些框架利用多个 LLM 集体评估输出,使用加权成对评判和多轮对话来减少自我增强偏差,并使评估更接近人类标准
    • 另一个有趣的途径是采用自教评估器框架,生成合成偏好对和推理轨迹,以迭代改进模型评估能力(2024i)
      • 这种方法消除了对昂贵人类注释的依赖,同时确保评估标准适应不断发展的任务和模型
    • 集成自我奖励语言模型(Self-Rewarding Language Models, SRLM)提供了另一条有前景的路径(2024e)
      • 通过采用如直接偏好优化(DPO)等迭代机制,这些模型持续改进其指令遵循和奖励建模能力,缓解奖励欺骗和过拟合问题
    • 在 SRLM 的基础上,使用元奖励机制引入元评判角色,以评估和改进评判质量(2024a)
      • 这一迭代过程解决了冗长和位置等偏差,增强了对齐和评估复杂任务的能力
      • 最后,利用合成数据创建生成对比响应为训练评估器提供了可扩展的解决方案(2024i)
      • 通过在合成偏好对上迭代改进评估,模型可逐步提高其鲁棒性和适应性
      • 将这些方法与多样化基准(2022;2022)、多方面评估标准(2020)和人类反馈(2023;2022)相结合,可确保评估在各个领域公平、可靠且与人类期望一致

Human-LLMs Co-judgement

  • 如前所述,LLM 作为评判中的偏差和脆弱性可通过人类参与评判过程进行进一步干预和校对来解决。然而,仅有少数研究关注这一方法
    • Wang 等人 (2023c) 引入了人机协同校准,采用平衡位置多样性熵来衡量每个示例的难度,并在必要时寻求人类协助
    • 在相关性评判背景下,Faggioli等人 (2023) 提出了人机协作光谱,根据人类依赖机器的程度对不同相关性评判策略进行分类
  • 未来方向(Future Direction)*
    • 随着数据选择(2023;2024)成为提高 LLM 训练和推理效率的日益流行的研究领域,它也有望提升 LLM 评估
    • LLM 作为评判可从数据选择中汲取灵感,使评判 LLM 能够作为关键样本选择器,根据特定标准(如代表性或难度)选择一小部分样本供人类注释者评估
    • 此外,人机协同评判的发展可受益于其他领域成熟的人机交互解决方案,如数据标注(2024b)和主动学习(2023)

NLP——LLM对齐微调-DPO

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Direct Preference Optimization: Your Language Model is Secretly a Reward Model, NeurIPS 2023, Stanford University
    • 论文阅读笔记:DPO——RLHF 的替代之《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》论文阅读
    • 一些较为高阶的讨论:RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr
    • DPO 的应用:利用直接偏好优化算法(DPO)微调语言模型, 消除幻觉

Paper Summary

  • 核心总结:
    • 写在前面:本文的理论推导非常漂亮,值得细看
    • DPO 是一个简单的训练范式,用于从偏好中训练语言模型而无需强化学习(24 年底补充:DPO 已经成为了某些领域在 RL 前必不可少的一个基线)
    • DPO 识别了语言模型策略和奖励函数之间的映射(区别于传统 RL 的偏好学习方法)
      • 使得能够直接训练语言模型以满足人类偏好,使用简单的交叉熵损失,无需强化学习或损失一般性
    • 在作者的实验上,在几乎不需要调整超参数的情况下,DPO 的表现与现有的 RLHF 算法(包括基于 PPO 的算法)相当或更好;
      • DPO 有降低了从人类偏好训练更多语言模型的门槛
      • 实际上比 PPO 好是需要打问号的,PPO 的理论上限是更高的
  • 背景:RLHF 是一个复杂且通常不稳定的过程,需要拟合一个反映人类偏好的奖励模型,然后使用 RL 来微调以最大化这个估计的奖励,同时不能偏离原始模型太远
  • 论文介绍了 RLHF 中奖励模型的一个新参数化(parameterization)方法(DPO),能够 以闭式(closed form)解提取相应的最优策略
    • 这使得我们仅使用一个简单的分类损失来解决标准的 RLHF 问题

Introduction and Discussion

  • 论文展示了如何直接优化语言模型以遵循人类偏好,而无需显式的奖励建模或强化学习
  • 论文提出了直接偏好优化 (DPO) 算法
    • DPO 隐式地优化了与现有 RLHF 算法相同的目标(带有 KL 散度约束的奖励最大化),但实现简单且训练直接
  • 直观地说
    • DPO 更新增加了优选响应相对于非优选响应的相对对数概率,但它引入了一个动态的、每个样本的重要性权重,防止了论文发现的在朴素概率比目标下发生的模型退化
  • 与现有算法类似
    • DPO 依赖于一个理论偏好模型(例如 Bradley-Terry 模型 (1952)),该模型衡量给定奖励函数与经验偏好数据的对齐程度
  • 现有方法使用偏好模型来定义训练奖励模型的偏好损失,然后训练一个优化所学奖励模型的策略
    • DPO 使用变量变换将偏好损失直接定义为策略的函数
    • 给定一个关于模型响应的人类偏好的数据集,DPO 可以使用简单的二元交叉熵目标来优化策略,产生拟合到偏好数据的隐式奖励函数的最优策略
  • 论文的主要贡献就是 DPO,一种简单的、无 RL 的从偏好中训练语言模型的算法
  • 实验表明,在使用多达 6B 参数的语言模型进行情感调节、摘要和对话等任务的偏好学习中,DPO 至少与现有方法(包括基于 PPO 的RLHF)一样有效

Related Work

  • 规模不断增长的自监督语言模型学会零样本 (2019) 或少样本提示 (2020; 2021; 2022) 完成某些任务
    • 但它们在下游任务上的表现和与用户意图的对齐可以通过在指令和人类编写的补全数据集上进行微调来显著提高 (2022; 2022; 2022; 2022)
  • 这种“指令微调”过程使得大型语言模型能够泛化到指令微调集之外的指令,并通常提高其可用性 (2022)
    • 但响应质量的相对人类判断通常比专家演示更容易收集,因此后续工作使用人类偏好数据集微调了大型语言模型,提高了在翻译 (2018)、摘要 (2020; 2022)、故事讲述 (2022) 和指令遵循 (2022; 2023) 方面的熟练度
  • 这些方法的大致流程是:
    • 首先在诸如 Bradley-Terry 模型 (1952) 等偏好模型下,优化一个神经网络奖励函数以与偏好数据集兼容
    • 然后通常使用强化学习算法,如 REINFORCE (1992)、PPO 或其变体 (2023),来微调语言模型以最大化给定的奖励
  • 这些方法代表了两类工作的融合:
    • 一类是关于使用强化学习训练语言模型以实现各种目标的工作 (2015; 2018; 2018)
    • 另一类是关于从人类偏好中学习的通用方法的工作 (2017; 2018)
  • 尽管使用相对人类偏好具有吸引力,但使用强化学习微调大型语言模型仍然是一个重大的实际挑战;
    • DPO 提供了一种理论上有依据的方法来优化相对偏好而无需 RL

在语言领域之外

  • 从偏好中学习策略已在赌博机和强化学习设置中都得到了研究,并且已经提出了几种方法
  • 使用偏好或行动排序而非奖励的情境赌博机学习被称为情境对决赌博机 (Contextual Dueling Bandit, CDB; (2012; 2015))
    • 在没有绝对奖励的情况下,CDB 的理论分析用冯·诺依曼赢家 (von Neumann winner) 的概念替代了最优策略,即一个对任何其他策略的期望获胜率至少为 50% 的策略 (2015)
    • 在 CDB 设置中,偏好标签是在线给出的
      • 在从人类偏好学习中,通常从固定的离线偏好标注行动对批次中学习 (2022)
  • 基于偏好的 RL (Preference-based RL, PbRL) 从由 未知“评分” 函数生成的二元偏好中学习,而不是从奖励中学习 (2014; 2023)
    • 存在各种 PbRL 算法,包括可以重用离策略偏好数据的方法,但通常涉及首先显式估计潜在评分函数(即奖励模型),然后对其进行优化 (2013; 2014; 2017; 2018; 2018)
  • 论文提出了一种单阶段策略学习方法,直接优化策略以满足偏好

Preliminaries

  • 论文回顾一下 Ziegler 等人(以及后来的 (2020; 2022; 2022))中的 RLHF 流程,它通常包括三个阶段:
    • 1)监督微调 (Supervised Fine-Tuning, SFT);
    • 2)偏好采样和奖励学习;以及
    • 3)RL 优化

SF

  • RLHF 通常首先在下游感兴趣任务(对话、摘要等)的高质量数据上,使用监督学习对预训练的语言模型进行微调,以获得一个模型 \(\pi^{\text{SFT} }\)

奖励建模阶段

  • 使用提示 \(x\) 来提示 SFT 模型,产生成对的答案
    $$(y_{1},y_{2})\sim\pi^{\text{SFT} }(y \mid x)$$
  • 然将这些答案呈现给人类标注者,他们表达对其中一个答案的偏好,记为
    $$ y_{w}\succ y_{l} \mid x$$
    • 其中 \(y_{w}\) 和 \(y_{l}\) 分别表示 \((y_{1},y_{2})\) 中优选和非优选的补全
    • 假设偏好是由某个论文无法访问的潜在奖励模型 \(r^{*}(y,x)\) 生成的
  • 有多种方法用于建模偏好,Bradley-Terry (BT) 模型 (1952) 是一个流行的选择(尽管如果论文能访问多个排名的答案,更通用的 Plackett-Luce 排序模型 (1975; 2012) 也与该框架兼容)
  • BT 模型规定人类偏好分布 \(p^{*}\) 可以写成:
    $$p^{*}(y_{1}\succ y_{2} \mid x)=\frac{\exp\left(r^{*}(x,y_{1})\right)}{\exp\left(r^{*}(x,y_{1})\right)+\exp\left(r^{*}(x,y_{2})\right)} \tag{1}$$
  • 假设我们可以访问一个从 \(p^{*}\) 中采样的静态比较数据集
    $$ \mathcal{D}=\left\{x^{(i)},y^{(i)}_{w},y^{(i)}_{l}\right\}^{N}_{i=1}$$
  • 我们可以参数化一个奖励模型 \(r_{\phi}(x,y)\) 并通过最大似然估计参数
  • 将问题构建为二元分类,论文得到负对数似然损失:
    $$\mathcal{L}_{R}(r_{\phi},\mathcal{D})=-\mathbb{E}_{(x,y_{w},y_{l})\sim\mathcal{D} }\big{[}\log\sigma(r_{\phi}(x,y_{w})-r_{\phi}(x,y_{l}))\big{]} \tag{2}$$
    • 其中 \(\sigma\) 是 logistic 函数
    • 在语言模型的上下文中,网络 \(r_{\phi}(x,y)\) 通常从 SFT 模型 \(\pi^{\text{SFT} }(y \mid x)\) 初始化,并在最终 transformer 层之上添加一个线性层,该层为奖励值产生单个标量预测 (2022)
  • 为了确保奖励函数具有较低的方差,先前的工作对奖励进行了归一化,使得对于所有 \(x\),有
    $$\mathbb{E}_{x,y\sim\mathcal{D} }\left[r_{\phi}(x,y)\right]=0$$

RL 微调阶段

  • 在 RL 阶段,学习到的奖励函数用于向语言模型提供反馈
  • 遵循先前的工作 (2017; 2020),优化问题表述为
    $$\max_{\pi_{\theta} }\mathbb{E}_{x\sim\mathcal{D},y\sim\pi_{\theta}(y|x)}\big{[}r_{\phi}(x,y)\big{]}-\beta\mathbb{D}_{\text{KL} }\big{[}\pi_{\theta}(y \mid x) \ | \ |\ \pi_{\text{ref} }(y \mid x)\big{]} \tag{3}$$
    • 其中 \(\beta\) 是一个控制与基础参考策略 \(\pi_{\text{ref} }\)(即初始 SFT 模型 \(\pi^{\text{SFT} }\))偏离程度的参数
  • 在实践中,语言模型策略 \(\pi_{\theta}\) 也被初始化为 \(\pi^{\text{SFT} }\)
  • 添加的约束很重要,因为它防止模型偏离奖励模型准确的分布太远,同时保持生成多样性并防止模式崩溃到单一高奖励答案
  • 由于语言生成的离散性质,该目标不可微,通常使用强化学习进行优化
    • 标准方法 (2022; 2020; 2022; 2022) 是构建奖励函数
      $$r(x,y)=r_{\phi}(x,y)-\beta(\log\pi_{\theta}(y \mid x)-\log\pi_{\text{ref} }(y \mid x))$$
      • 并使用 PPO (2017) 进行最大化

Direct Preference Optimization

  • 目标是推导出一种使用偏好直接进行策略优化的简单方法
  • 与先前学习奖励然后通过 RL 优化它的 RLHF 方法不同,论文的方法利用了一种特定的奖励模型参数化选择,使得无需 RL 训练循环即可闭式解提取其最优策略
  • 论文的关键见解是利用从奖励函数到最优策略的解析映射 ,这使论文能够将关于奖励函数的损失函数转换为关于策略的损失函数
    • 这种变量变换方法避免了拟合显式的、独立的奖励模型,同时仍然在现有的人类偏好模型(如 Bradley-Terry 模型)下进行优化
    • 本质上,策略网络同时代表了语言模型和(隐式的)奖励

推导 DPO 目标

  • 论文从与先前工作相同的 RL 目标开始,即公式 3,在一个通用的奖励函数 \(r\) 下
  • 遵循先前的工作 (2007; 2019; 2022; 2023),很容易证明公式 3 中 KL 约束的奖励最大化目标的最优解形式为:
    $$\pi_{r}(y \mid x)=\frac{1}{Z(x)}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r(x,y)\right) \tag{4}$$
    • 其中 \(Z(x)=\sum_{y}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r(x,y)\right)\) 是配分函数
    • 完整的推导见附录 A.1
  • 即使论文使用真实奖励函数 \(r^{*}\) 的 MLE 估计 \(r_{\phi}\),估计配分函数 \(Z(x)\) 仍然很昂贵 (2022; 2023),这使得这种表示在实践中难以利用
  • 我们可以重新排列公式 4,用其对应的最优策略 \(\pi_{r}\)、参考策略 \(\pi_{\text{ref} }\) 和未知的配分函数 \(Z(\cdot)\) 来表示奖励函数
    • 论文首先对公式 4 的两边取对数,然后进行一些代数运算得到:
      $$r(x,y)=\beta\log\frac{\pi_{r}(y \mid x)}{\pi_{\text{ref} }(y \mid x)}+\beta\log Z(x). \tag{5}$$
  • 我们可以将这个重新参数化应用于真实奖励 \(r^{*}\) 和相应的最优模型 \(\pi^{*}\),注意:Bradley-Terry 模型仅依赖于两个补全之间奖励的差异,即
    $$ p^{*}(y_{1}\succ y_{2} \mid x)=\sigma(r^{*}(x,y_{1})-r^{*}(x,y_{2}))$$
  • 将公式 5 中 \(r^{*}(x,y)\) 的重新参数化代入偏好模型公式 1,配分函数会抵消掉,我们可以仅用最优策略 \(\pi^{*}\) 和参考策略 \(\pi_{\text{ref} }\) 来表示人类偏好概率
  • 因此,在 Bradley-Terry 模型下,最优的 RLHF 策略 \(\pi^{*}\) 满足偏好模型:
    $$p^{*}(y_{1}\succ y_{2} \mid x)=\frac{1}{1+\exp\left(\beta\log\frac{\pi^{*}(y_{2} \mid x)}{\pi_{\text{ref} }(y_{2} \mid x)}-\beta\log\frac{\pi^{*}(y_{1} \mid x)}{\pi_{\text{ref} }(y_{1} \mid x)}\right)} \tag{6}$$
    • 推导过程在附录 A.2 中
  • 虽然公式 6 使用了 Bradley-Terry 模型,但我们可以在更一般的 Plackett-Luce 模型 (1975; 2012) 下类似地推导出表达式,如附录 A.3 所示
  • 现在论文有了用最优策略而非奖励模型表示的人类偏好数据的概率,我们可以为参数化策略 \(\pi_{\theta}\) 制定一个最大似然目标;类似于奖励建模方法(即公式 2),论文的策略目标变为:
    $$\mathcal{L}_{\text{DPO} }(\pi_{\theta};\pi_{\text{ref} })=-\mathbb{E}_{(x,y_{w},y_ {l})\sim\mathcal{D} }\bigg{[}\log\sigma\left(\beta\log\frac{\pi_{\theta}(y_{w} \mid x)}{\pi_{\text{ref} }(y_{w} \mid x)}-\beta\log\frac{\pi_{\theta}(y_{l} \mid x)}{\pi_{\text{ref} }(y_{l} \mid x)}\right)\bigg{]}. \tag{7}$$
  • 这样,论文使用一种替代参数化来拟合一个隐式奖励,其最优策略简单地就是 \(\pi_{\theta}\)
  • 此外,由于论文的过程等同于拟合一个重新参数化的 Bradley-Terry 模型,它在偏好数据分布的适当假设下享有某些理论性质,例如一致性 (2022)
    • 在第 5 节中,论文将进一步讨论 DPO 相对于其他工作的理论性质

DPO 更新做了什么?

  • 为了从机制上理解 DPO,分析损失函数 \(\mathcal{L}_{\text{DPO} }\) 的梯度是很有用的
  • 关于参数 \(\theta\) 的梯度可以写成:
    $$\nabla_{\theta}\mathcal{L}_{\text{DPO} }(\pi_{\theta};\pi_{\text{ref } })=\ -\beta\mathbb{E}_{(x,y_{w},y_{l})\sim\mathcal{D} }\bigg{[}\underbrace{\sigma(\hat{r}_{\theta}(x,y_{l})-\hat{r}_{\theta}(x,y_{w}))}_{\text{higher weight when reward estimate is wrong} }\quad\bigg{[}\underbrace{\nabla_{\theta}\log\pi(y_{w} \mid x)}_{\text{increase likelihood of } y_{w}}-\underbrace{\nabla_{\theta}\log\pi (y_{l} \mid x)}_{\text{decrease likelihood of } y_{l} }\bigg{]}\bigg{]}$$
  • 其中 \(\hat{r}_{\theta}(x,y)=\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)}\) 是由语言模型 \(\pi_{\theta}\) 和参考模型 \(\pi_{\text{ref} }\) 隐式定义的奖励(更多内容在第 5 节)
  • 直观地说,损失函数 \(\mathcal{L}_{\text{DPO} }\) 的梯度增加了优选补全 \(y_{w}\) 的似然,并降低了非优选补全 \(y_{l}\) 的似然
  • 样本的权重由隐式奖励模型 \(\hat{r}_{\theta}\) 对非优选补全评分高出多少来衡量,按 \(\beta\) 缩放,即隐式奖励模型对补全排序的错误程度,同时考虑了 KL 约束的强度
  • 论文的实验表明了这种加权的重要性,因为没有加权系数的朴素版本的方法会导致语言模型退化(附录表 3)

DPO outline

  • 一般的 DPO 流程如下:
    • 1)为每个提示 \(x\) 采样补全 \(y_{1},y_{2}\sim\pi_{\text{ref} }(\cdot \mid x)\),用人类偏好进行标注,以构建离线偏好数据集 \(\mathcal{D}=\{x^{(i)},y^{(i)}_{w},y_{l})^{(i)}\}_{i=1}^{N}\);
    • 2)优化语言模型 \(\pi_{\theta}\) 以最小化给定 \(\pi_{\text{ref} }\)、\(\mathcal{D}\) 和期望 \(\beta\) 的 \(\mathcal{L}_{\text{DPO} }\)
  • 在实践中,人们可能希望重用公开可用的偏好数据集,而不是生成样本并收集人类偏好
    • 由于偏好数据集是使用 \(\pi^{\text{SFT} }\) 采样的,只要可用,论文就初始化 \(\pi_{\text{ref} }=\pi^{\text{SFT} }\)
    • 但当 \(\pi^{\text{SFT} }\) 不可用时,论文通过最大化优选补全 \((x,y_{w})\) 的似然来初始化 \(\pi_{\text{ref} }\),即
      $$\pi_{\text{ref} }=\arg\max_{\pi}\mathbb{E}_{x,y_{w}\sim\mathcal{D} }\left[\log\pi(y_ {w} \mid x)\right]$$
    • 理解:
      • 当生成数据的模型不可访问时,可以考虑将损失函数中的 \(\pi_\text{ref}\) 替换为这个?
      • 上面的公式本质是找到一个策略 \(\pi\) 使得已知 \(x\) 时 \(y_ {w}\) 出现的对数概率最大化的策略 \(\pi_\text{ref}\)
  • 这个过程有助于缓解真实参考分布(不可用)与 DPO 使用的 \(\pi_{\text{ref} }\) 之间的分布偏移
  • 与实现和超参数相关的更多细节可以在附录 B 中找到

Theoretical Analysis of DPO

  • 本节进一步阐释 DPO 方法,提供理论支持,并将 DPO 的优势与用于 RLHF 的 Actor-Critic 算法(如 PPO (2017))存在的问题联系起来

Your Language Model Is Secretly a Reward Model

  • DPO 能够绕过显式拟合奖励函数和执行强化学习这两个步骤,仅使用一个最大似然目标来学习策略
  • 优化目标方程 5 等价于一个具有奖励参数化 的 Bradley-Terry 模型:
    $$ r^{*}(x,y)=\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref} }(y|x)} $$
    • 并且在变量变换下,论文优化参数化模型 \( \pi_{\theta} \) 等价于方程 2 中的奖励模型优化
  • 在本节中,论文将建立这种重新参数化背后的理论,证明它不会约束所学奖励模型的类别,并且允许精确恢复最优策略
  • 论文首先定义奖励函数之间的等价关系
    • 定义 1.
      • 两个奖励函数 \( r(x,y) \) 和 \( r’(x,y) \) 是等价的,当且仅当 \( r(x,y)-r’(x,y)=f(x) \) 对于某个函数 \( f \) 成立
      • 很容易看出这确实是一个等价关系,它将奖励函数集合划分为不同的类
      • 理解:因为 \(f(x) \) 与 \(y\) 没有关系!
    • 我们可以陈述以下两个引理:
      • 引理 1.
        • 在 Plackett-Luce(特别是 Bradley-Terry)偏好框架下,来自同一等价类的两个奖励函数诱导出相同的偏好分布
      • 引理 2.
        • 来自同一等价类的两个奖励函数在约束强化学习问题下诱导出相同的最优策略
  • 证明是直接了当的,论文将它们推迟到附录 A.5
    • 第一个引理是 Plackett-Luce 模型族 (1975) 中存在的一个众所周知的欠定(under-specification)问题
      • 由于这种欠定性,论文通常必须施加额外的可识别性约束,以保证从方程 2 得到的 MLE 估计具有某些性质 (2022)
    • 第二个引理指出,来自同一类的所有奖励函数产生相同的最优策略,因此对于论文的最终目标,论文只关心恢复最优类中的任意一个奖励函数
  • 论文在附录 A.6 中证明了以下定理:
    • 定理 1.
      • 在温和的假设下,与 Plackett-Luce(特别是 Bradley-Terry)模型一致的所有奖励类都可以用重新参数化 \( r(x,y)=\beta\log\frac{\pi(y|x)}{\pi_{\text{ref} }(y|x)} \) 来表示,对于某个模型 \( \pi(y \mid x) \) 和给定的参考模型 \( \pi_{\text{ref} }(y \mid x) \)
    • 证明概要.
      • 考虑任何奖励函数 \( r(x,y) \),它诱导出一个相应的最优模型 \( \pi_{r}(y \mid x) \),由方程 4 指定
      • 论文将证明,\( r \) 的等价类中的一个奖励函数可以使用上面给出的重新参数化来表示
      • 论文定义投影 \( f \) 为:
        $$
        f(r;\pi_{\text{ref} },\beta)(x,y)=r(x,y)-\beta\log\sum_{y}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r(x,y)\right)
        $$
        • 算子 \( f \) 只是用 \( \pi_{r} \) 的配分函数的对数对奖励函数进行归一化
        • 由于添加的归一化项仅是前缀 \( x \) 的函数,所以 \( f(r;\pi_{\text{ref} },\beta)(x,y) \) 是 \( r(x,y) \) 等价类中的一个奖励函数
      • 最后,将 \( r \) 替换为方程 5 的右边(这对任何奖励函数都成立),论文有 \( f(r;\pi_{\text{ref} },\beta)(x,y)=\beta\log\frac{\pi_{r}(y|x)}{\pi_{\text{ref} }(y|x)} \)
      • 也就是说,投影 \( f \) 产生了 \( r \) 等价类中具有所需形式的一个成员,并且论文提出的重新参数化没有损失奖励模型的任何一般性
  • 也可以将定理 1 视为精确指定了 DPO 重新参数化在每个等价类中选择哪个奖励函数,即满足以下条件的奖励函数:
    $$
    \sum_{y}\underbrace{\pi_{\text{ref} }(y \mid x)}_{\equiv\pi(y|x), \text{ using Thm. 1 reparam.} }\exp\left(\frac{1}{\beta}r(x,y)\right)=1,
    $$
    • 也就是说,\( \pi(y \mid x) \) 是一个有效的分布(概率为正且和为 1)
    • 然而,遵循方程 4,我们可以看到方程 9 是由奖励函数 \( r(x,y) \) 诱导的最优策略的配分函数
  • DPO 算法的关键见解是,我们可以对欠定的 Plackett-Luce(特别是 Bradley-Terry)偏好模型族施加某些约束,使得论文能够保留可表示的奖励模型的类别,但同时显式地使得方程 4 中的最优策略对于所有提示 \( x \) 都是解析可解的

Instability of Actor-Critic Algorithms(AC 算法的不稳定性)

  • 也可以使用论文的框架来诊断用于 RLHF 的标准 Actor-Critic 算法(如 PPO)的不稳定性
  • 论文遵循 RLHF 流程,并专注于第 3 节概述的 RL 微调步骤
  • 我们可以与约束强化学习问题的控制即推断框架 (2018) 建立联系
  • 论文假设一个参数化模型 \( \pi_{\theta}(y \mid x) \),并最小化
    $$ \mathbb{D}_{\text{KL} }[\pi_{\theta}(y|x) \mid \mid \pi^{*}(y \mid x)] $$
    • 其中 \( \pi^{*} \) 是由奖励函数 \( r_{\phi}(y,x) \) 诱导的方程 7 中的最优策略
  • 经过一些代数运算,这可以推出优化目标:
    $$
    \max_{\pi_{\theta} }\mathbb{E}_{\pi_{\theta}(y|x)}\bigg{[}\underbrace{r_{\phi}(x ,y)-\beta\log\sum_{y}\pi_{\text{ref} }(y \mid x)\exp\left(\frac{1}{\beta}r_{\phi}(x,y)\right)}_{f(r_{\phi},\pi_{\text{ref} },\beta)}-\underbrace{\beta\log\frac{\pi_{\theta}(y \mid x)}{\pi_{\text{ref} }(y \mid x)} }_{\text{KL} }\bigg{]}
    $$
    • 这是先前工作 (2022; 2020; 2022; 2022) 使用与 \( r_{\phi} \) 的奖励类等价的 DPO 奖励所优化的相同目标
  • 在这种设置下,我们可以将 \( f(r_{\phi},\pi_{\text{ref} },\beta) \) 中的归一化项解释为参考策略 \( \pi_{\text{ref} } \) 的软价值函数
    • 虽然这个项不影响最优解,但没有它,目标的策略梯度可能具有高方差,使得学习不稳定
  • 我们可以使用一个学习的价值函数来适应这个归一化项,但这可能也难以优化
    • 或者,先前的工作使用人类完成基线来归一化奖励,本质上是归一化项的单样本蒙特卡洛估计
    • 相比之下,DPO 重新参数化产生了一个不需要任何基线的奖励函数

Experiments

  • 在本节中,论文实证评估 DPO 直接从偏好中训练策略的能力
  • 在一个受控良好的文本生成环境中,论文提出:
    • 与常见的偏好学习算法(如 PPO)相比,DPO 在最大化奖励和最小化与参考策略的 KL 散度之间进行权衡的效率如何?
  • 论文在更大的模型和更困难的 RLHF 任务上评估 DPO 的性能,包括摘要和对话
  • 在几乎不需要调整超参数的情况下,DPO 的表现往往与像基于 PPO 的 RLHF 这样的强基线一样好甚至更好,并且在学习的奖励函数下也优于从 \( N \) 个采样轨迹中返回最佳结果的方法

Experiment Setup

  • 注:更多细节在附录 C 中
Tasks
  • 论文的实验探索了三种不同的开放式文本生成任务
  • 对于所有实验,算法从下面的偏好数据集中学习一个策略
    $$ \mathcal{D}=\{x^{(i)},y_{w}^{(i)},y_{l}^{(i)} \}_{i=1}^{N} $$
  • 在受控情感生成(controlled sentiment generation)中
    • \( x \) 是来自 IMDb 数据集 (2011) 的电影评论前缀,策略必须生成具有积极情感的 \( y \)
    • 为了进行受控评估,在这个实验中,论文使用预训练的情感分类器生成关于生成的偏好对,其中
      $$ p(\text{positive} \mid x,y_{w})>p(\text{positive} \mid x,y_{l}) $$
    • 对于 SFT,论文在 IMDB 数据集的训练分割中的评论上微调 GPT-2-large 直到收敛(更多细节见附录 C.1)
  • 在摘要(summarization)任务中
    • \( x \) 是来自 Reddit 的论坛帖子;策略必须生成一个总结帖子要点的摘要 \( y \)
    • 遵循先前的工作,论文使用 Reddit TL;DR 摘要数据集 (2017) 以及 Stiennon 等人收集的人类偏好
    • 论文使用在人类撰写的论坛帖子摘要上微调的 SFT 模型,并使用 TRLX (2023) 框架进行 RLHF
    • 人类偏好数据集是由 Stiennon 等人在一个不同但训练方式相似的 SFT 模型的样本上收集的
  • 在单轮对话(single-turn dialogue)中
    • \( x \) 是一个人类查询,可能涉及从天体物理学问题到关系建议的任何内容;策略必须对用户的查询产生一个引人入胜且有用的响应 \( y \);
    • 论文使用 Anthropic Helpful and Harmless 对话数据集 (2022),包含 17 万个人类与自动助手之间的对话
    • 每个记录都以一个大型(尽管未知)语言模型生成的一对响应结束,并带有一个表示人类偏好响应的人类偏好标签
    • 在这种设置下,没有预训练的 SFT 模型可用;因此,论文仅在偏好完成上微调一个现成的语言模型以形成 SFT 模型
Evaluation
  • 论文的实验使用两种不同的评估方法
  • 为了分析每种算法在优化约束奖励最大化目标方面的有效性,在受控情感生成设置中,论文通过其实现的奖励和与参考策略的 KL 散度的边界来评估每种算法;
    • 这个边界是可计算的,因为我们可以访问真实奖励函数(一个情感分类器)
  • 但在现实世界中,真实奖励函数是未知的;
    • 论文使用算法与基线策略的胜率来评估算法,使用 GPT-4 作为摘要质量和响应帮助度的代理评估,分别用于摘要和单轮对话设置
  • 对于摘要,论文使用测试集中的参考摘要作为基线;对于对话,论文使用测试数据集中的偏好响应作为基线。虽然现有研究表明 LM 可以比现有指标更好的自动评估器 (2023),但论文在第 6.4 节进行了一项人类研究来证明论文使用 GPT-4 进行评估的合理性。论文发现 GPT-4 的判断与人类高度相关,人类与 GPT-4 的一致性通常与人类注释者之间的一致性相似或更高
Methods
  • 除了 DPO,论文还评估了几种现有的训练语言模型以符合人类偏好的方法
  • 论文在摘要任务中探索了使用 GPT-J (2021) 的零样本提示,在对话任务中探索了使用 Pythia-2.8B (2023) 的 2-shot 提示
  • 论文还评估了 SFT 模型以及 Preferred-FT
    • 这是一个在选自 SFT 模型(在受控情感和摘要中)或通用 LM(在单轮对话中)的所选完成 \( y_{w} \) 上使用监督学习进行微调的模型
  • 另一种伪监督方法是 Unlikelihood (2019)
    • 它简单地优化策略以最大化分配给 \( y_{w} \) 的概率,并最小化分配给 \( y_{l} \) 的概率;
    • 论文在“非似然”项上使用一个可选的系数 \( \alpha\in[0,1] \)
  • 论文还考虑了使用从偏好数据学习的奖励函数的 PPO (2017) 和 PPO-GT ,后者是在受控情感设置中可访问真实奖励函数的 Oracle
    • 在论文的情感实验中,论文使用了 PPO-GT 的两种实现,一个现成的版本 (2023) 以及一个修改版本,该版本归一化奖励并进一步调整超参数以提高性能(论文在运行使用学习奖励的“普通”PPO 时也使用这些修改)
  • 最后,论文考虑了 Best of \( N \) 基线,从 SFT 模型(或对话中的 Preferred-FT)采样 \( N \) 个响应,并返回根据从偏好数据集学习的奖励函数得分最高的响应
  • 这种高性能方法将奖励模型的质量与 PPO 优化解耦,但在计算上是不切实际的,即使对于中等的 \( N \),因为它在测试时需要为每个查询采样 \( N \) 个完成
  • 图 2:
    • 左图:期望奖励与相对于参考策略的 KL 散度的边界。DPO 在所有 KL 值下提供了最高的期望奖励,证明了优化的质量
    • 右图:TL;DR 摘要相对于人工撰写摘要的胜率,使用 GPT-4 作为评估器
    • DPO 在摘要任务上超过了 PPO 的最佳性能,同时对采样温度的变化更加鲁棒

How well can DPO optimize the RLHF objective?

  • 典型 RLHF 算法中使用的 KL 约束奖励最大化目标在利用奖励的同时限制策略偏离参考策略太远之间取得平衡
  • 因此,在比较算法时,论文必须同时考虑实现的奖励以及 KL 差异;
    • 实现略高的奖励但 KL 高得多并不一定是可取的
  • 图 2 显示了在情感设置中各种算法的奖励-KL 边界
    • 论文对每种算法执行多次训练运行,每次运行使用不同的策略保守性超参数(PPO 的目标 KL \( \in\{3,6,9,12\} \),DPO 的 \( \beta\in\{0.05,0.1,1,5\} \),Unlikelihood 的 \( \alpha\in\{0.05,0.1,0.5,1\} \),Preferred-FT 的随机种子)
    • 扫描总共包括 22 次运行
    • 在每 100 个训练步骤直到收敛后,论文在一组测试提示上评估每个策略,计算在真实奖励函数下的平均奖励以及
  • 与参考策略的平均序列级 KL3 \( \text{KL} (\pi \mid \mid \pi_{\text{ref} }) \)
    • 论文发现 DPO 产生了迄今为止最有效的边界,实现了最高的奖励,同时仍然实现了低 KL
    • 这个结果尤其引人注目,原因有几个
      • 首先,DPO 和 PPO 优化相同的目标,但 DPO 明显更有效;
        • DPO 的奖励/KL 权衡严格优于 PPO
      • 其次,DPO 实现了比 PPO 更好的边界,即使 PPO 可以访问真实奖励(PPO-GT)
  • 图 3:
    • 左图:由 GPT-4 计算的 Anthropic-HH 单轮对话胜率;DPO 是唯一一个在 Anthropic-HH 测试集上优于所选摘要的方法
    • 右图:在训练过程中不同采样温度的胜率
    • 对于不同的采样温度,DPO 相对于数据集标签的改进在训练过程中相当稳定

Can DPO scale to real preference datasets?(将 DPO 扩展到真实的偏好数据集中)

  • 接下来,论文评估 DPO 在摘要和单轮对话上的微调性能
  • 对于摘要,自动评估指标如 ROUGE 可能与人类偏好相关性很差 (2020),并且先前的工作发现使用 PPO 在人类偏好上微调 LM 可以提供更有效的摘要
    • 论文通过在 TL;DR 摘要数据集的测试分割上采样完成来评估不同方法,并计算相对于测试集中参考完成的平均胜率
    • 所有方法的完成都是在从 0.0 到 1.0 变化的温度下采样的,胜率如图 2(右)所示
    • DPO、PPO 和 Preferred-FT 都微调了相同的 GPT-J SFT 模型4
      • 论文发现 DPO 在温度为 0.0 时胜率约为 61%,超过了 PPO 在其最佳采样温度 0.0 时的 57%
      • 与 Best of \( N \) 基线相比,DPO 也实现了更高的最大胜率
      • 论文没有刻意调整 DPO 的 \( \beta \) 超参数,所以这些结果可能低估了 DPO 的潜力
    • 论文还发现 DPO 对采样温度的鲁棒性远高于 PPO,后者的性能在高温度下可能退化到基础 GPT-J 模型的水平
      • Preferred-FT 相对于 SFT 模型没有显著改进
      • 论文还在第 6.4 节中在人类评估中比较了 DPO 和 PPO,其中温度为 0.25 的 DPO 样本在 58% 的情况下比温度为 0 的 PPO 样本更受偏好
  • 在单轮对话上,论文在 Anthropic HH 数据集 (2022) 测试分割的子集上评估不同方法,该子集包含一步人机交互
    • GPT-4 评估使用测试集上的偏好完成作为参考,计算不同方法的胜率
    • 由于此任务没有标准的 SFT 模型,论文从一个预训练的 Pythia-2.8B 开始,使用 Preferred-FT 在所选完成上训练一个参考模型,使得完成在模型的分布内,然后使用 DPO 进行训练
    • 论文还与从 Preferred-FT 完成中选出的最佳 128 个完成进行比较(论文发现 Best of \( N \) 基线在此任务上在 128 个完成时达到稳定;见附录图 4)以及一个 2-shot 提示的 Pythia-2.8B 基础模型版本,发现 DPO 在每种方法的最佳性能温度下表现相当或更好
    • 论文还评估了一个在 Anthropic HH 数据集5 上使用 PPO 训练的 RLHF 模型,该模型来自一个知名来源6,但未能找到能够提供优于基础 Pythia-2.8B 模型性能的提示或采样温度
    • 基于论文从 TL;DR 得到的结果以及两种方法优化相同奖励函数的事实,论文将 Best of 128 视为 PPO 级别性能的粗略代理
    • 总体而言,DPO 是唯一一个在计算上高效且改进了 Anthropic HH 数据集中偏好完成的方法,并且提供了与计算量大的 Best of 128 基线相似或更好的性能
    • 最后,图 3 显示 DPO 相对较快地收敛到其最佳性能

Generalization to a new input distribution

  • 为了进一步比较 PPO 和 DPO 在分布偏移下的性能,论文在不同的分布上评估了来自论文 Reddit TL;DR 摘要实验的 PPO 和 DPO 策略,即 CNN/DailyMail 数据集 (2016) 测试分割中的新闻文章,使用来自 TL;DR 的最佳采样温度(0 和 0.25)
  • 结果呈现在表 1 中
    • 论文计算了相对于数据集中真实摘要的 GPT-4 胜率,使用了论文用于 Reddit TL;DR 的相同 GPT-4 (C) 提示,但将“论坛帖子”一词替换为“新闻文章”
    • 对于这个新的分布,DPO 继续以显著优势优于 PPO 策略。这个实验提供了初步证据,表明 DPO 策略可以像 PPO 策略一样很好地泛化,尽管 DPO 没有使用 PPO 使用的额外的未标记 Reddit TL;DR 提示
  • 表 1:对于分布外的 CNN/DailyMail 输入文章,相对于真实摘要的 GPT-4 胜率
    • 理解:因为是跟 Ground Truth 的对比,所以他们的省略都不足 50%

Validating GPT-4 judgments with human judgments(用 Human Judgment 验证 GPT-4 judgment 是否准确)

  • 论文进行了一项人类研究来验证 GPT-4 判断的可靠性 ,使用了 TL;DR 摘要实验的结果和两种不同的 GPT-4 提示
    • GPT-4 (S)(简单)提示简单地询问哪个摘要更好地总结了帖子中的重要信息
    • GPT-4 (C)(简洁)提示还询问哪个摘要更简洁;
    • 论文评估这个提示是因为论文发现使用 GPT-4 (S) 提示时,GPT-4 比人类更喜欢更长、更重复的摘要
    • 完整的提示见附录 C.2
  • 论文进行了三次比较,使用了性能最高(DPO,温度 0.25)、最低(PPO,温度 1.0)和中等性能(SFT,温度 0.25)的方法,旨在覆盖多样性的样本质量;
    • 所有三种方法都与贪婪采样的 PPO(其最佳性能温度)进行比较
    • 论文发现,使用两种提示,GPT-4 与人类一致的程度通常与人类彼此一致的程度相似,这表明 GPT-4 是人类评估的合理代理(由于人类评分者有限,论文只收集了 DPO 和 PPO-1 比较的多人判断)
  • 总体而言,GPT-4 (C) 提示通常提供更能代表人类的胜率;因此论文在第 6.2 节的主要结果中使用此提示
  • 关于人类研究的更多细节,包括呈现给评分者的网络界面和人类志愿者列表,见附录 D.3
  • 表 2:
    • 在 TL;DR 摘要样本上比较人类和 GPT-4 的胜率以及每次判断的一致性
    • 人类与 GPT-4 的一致程度与人类彼此之间的一致程度大致相同
    • 每个实验将所述方法的摘要与温度为 0 的 PPO 摘要进行比较

Limitations & Future Work

  • 论文的结果提出了几个未来工作的重要问题
  • 第一:与从显式奖励函数学习相比,DPO 策略在分布外的泛化能力如何?
    • 论文的初步结果表明 DPO 策略可以类似于基于 PPO 的模型一样泛化,但需要更全面的研究
    • 例如,使用来自 DPO 策略的自标注进行训练是否同样能有效利用未标记的提示?
  • 第二:在直接偏好优化设置中,奖励过度优化(over-optimization)如何表现
    • 图 3 右侧性能的轻微下降是否是它的一个实例?
  • 第三:虽然论文评估了最多 6B 参数的模型,但将 DPO 扩展到数量级更大的最先进模型是未来工作的一个令人兴奋的方向
  • 关于评估
    • 论文发现 GPT-4 计算的胜率受到提示的影响;未来的工作可能会研究从自动化系统中引出高质量判断的最佳方式
  • 最后,DPO 的许多可能应用存在于从人类偏好训练语言模型之外,包括在其他模态中训练生成模型

附录 B:DPO Implementation Details and Hyperparameters

  • DPO 的实现相对简单;下面提供了 DPO 损失的 PyTorch 代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import torch.nn.functional as F

    def dpo_loss(pi_logps, ref_logps, yw_idxs, yl_idxs, beta):
    """
    pi_logps: policy logprobs, shape (B,)
    ref_logps: reference model logprobs, shape (B,)
    yw_idxs: preferred completion indices in [0, B-1], shape (T,)
    yl_idxs: dispreferred completion indices in [0, B-1], shape (T,)
    beta: temperature controlling strength of KL penalty
    Each pair of (yw_idxs[i], yl_idxs[i]) represents the indices of a single preference pair.
    """

    pi_yw_logps, pi_yl_logps = pi_logps[yw_idxs], pi_logps[yl_idxs]
    ref_yw_logps, ref_yl_logps = ref_logps[yw_idxs], ref_logps[yl_idxs]

    pi_logratios = pi_yw_logps - pi_yl_logps
    ref_logratios = ref_yw_logps - ref_yl_logps

    losses = -F.logsigmoid(beta * (pi_logratios - ref_logratios))
    rewards = beta * (pi_logps - ref_logps).detach()

    return losses, rewards
  • 论文默认使用 \(\beta = 0.1\),批量大小为 64,以及学习率为 1e-6 的 RMSprop 优化器

  • 论文在前 150 步中将学习率从 0 线性预热到 1e-6

  • 对于 TL;DR 摘要任务,论文使用 \(\beta = 0.5\),其余参数保持不变


附录 C:Further Details on the Experimental Set-Up

  • 在本节中,论文包含了与实验设计相关的额外细节

C.1 IMDb 情感实验和基线细节 (C.1 IMDb Sentiment Experiment and Baseline Details)

  • 提示是来自 IMDB 数据集中长度为 2-8 个词符的前缀
  • 论文使用预训练的情感分类器 siebert/sentiment-roberta-large-english 作为真实奖励模型,并使用 gpt2-large 作为基础模型
  • 论文发现默认模型生成的文本质量较低且奖励有些不准确,因此使用了这些更大的模型
    • 论文首先在 IMDB 数据的一个子集上进行了 1 个周期的监督微调
    • 然后,论文使用该模型为 25000 个前缀生成了 4 个补全,并使用 ground-truth 奖励模型为每个前缀创建了 6 个偏好对
      • 问题:这里的 ground-truth 奖励模型是什么?
    • RLHF 奖励模型从 gpt2-large 模型初始化,并在偏好数据集上训练了 3 个周期,论文选择了在验证集上准确率最高的检查点
    • “TRL” 运行使用了 TRL 库中的超参数
    • 论文的实现在每个 PPO 步骤中使用更大的批量样本,为 1024

C.2 用于计算摘要和对话胜率的 GPT-4 提示 (C.2 GPT-4 prompts for computing summarization and dialogue win rates)

  • 论文实验设置的一个关键组成部分是 GPT-4 的胜率判断
  • 在本节中,论文包含了用于生成摘要和对话实验胜率的提示
  • 论文所有的实验都使用 gpt-4-0314
  • 每次评估时,摘要或响应的顺序是随机选择的
摘要 GPT-4 胜率提示 (S) (Summarization GPT-4 win rate prompt (S))
  • 提示词:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Which of the following summaries does a better job of summarizing the most \
    important points in the given forum post?
    Post:
    <post>
    Summary A:
    <Summary A>
    Summary B:
    <Summary B>
    FIRST provide a one-sentence comparison of the two summaries, explaining which \
    you prefer and why. SECOND, on a new line, state only "A" or "B" to indicate your \
    choice. Your response should use the format:
    Comparison: <one-sentence comparison and explanation>
    Preferred: <"A" or "B">
摘要 GPT-4 胜率提示 (C) (Summarization GPT-4 win rate prompt (C))
  • 提示词:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Which of the following summaries does a better job of summarizing the most \
    important points in the given forum post, without including unimportant or \
    irrelevant details? A good summary is both precise and concise.
    Post: <post>
    Summary A:
    <Summary A>
    Summary B:
    <Summary B>
    FIRST provide a one-sentence comparison of the two summaries, explaining which \
    you prefer and why. SECOND, on a new line, state only "A" or "B" to indicate your \
    choice. Your response should use the format:
    Comparison: <one-sentence comparison and explanation>
    Preferred: <"A" or "B">
Dialogue GPT-4 win rate prompt
  • 提示词:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For the following query to a chatbot, which response is more helpful?
    Query: <the user query>
    Response A:
    <either the test method or baseline>
    Response B:
    <the other response>
    FIRST provide a one-sentence comparison of the two responses and explain \
    which you feel is more helpful. SECOND, on a new line, state only "A" or \
    "B" to indicate which response is more helpful. Your response should use \
    the format:
    Comparison: <one-sentence comparison and explanation>
    More helpful: <"A" or "B">

C.3 非似然基线 (C.3 Unlikelihood baseline)

  • 虽然论文在情感实验中包含了非似然基线 (2019)(简单地最大化偏好响应的对数概率 \(\log p(y_{w}|x)\),同时最小化非偏好响应的对数概率 \(\log p(y_{l}|x)\)),但论文没有在摘要或对话实验中将之作为基线,因为它通常会产生无意义的响应,作者认为这是无约束似然最小化的结果

附录 D:Additional Empirical Results

D.1 不同 N 值的 Best of N 基线性能 (D.1 Performance of Best of N baseline for Various N)

  • 论文发现 Best of N 基线在论文的实验中是一个强大(尽管计算成本高,需要多次采样)的基线
  • 论文评估了 Best of N 基线在 Anthropic-HH 对话和 TL;DR 摘要任务中不同 N 值的性能;结果如图 4 所示

D.2 样本回复和 GPT-4 判断 (D.2 Sample Responses and GPT-4 Judgments)

  • 在本节中,论文展示了 DPO 与基线(摘要任务为 PPO temp 0,对话任务为数据集中选择的真实响应)之间比较的示例
  • 摘要示例见表 4-6,对话示例见表 7-10
  • 论文未列出,详情见博客

D.3 人类研究细节 (D.3 Human study details)

  • 为了验证使用 GPT-4 计算胜率的做法,论文的人类研究在 TL;DR 摘要设置中收集了几组对比的人类偏好数据
  • 论文选择了三种不同的算法对比,评估了 DPO (temp. 0.25)、SFT (temp. 0.25) 和 PPO (temp 1.0) 与参考算法 PPO (temp 0.) 的比较
  • 通过选择三种独特算法以及相对于参考算法胜率范围广泛的算法,论文捕捉了人类和 GPT-4 胜率在不同响应质量谱上的相似性
  • 论文对 DPO vs PPO-0 进行了 150 次随机比较采样,对 PPO-1 vs PPO-0 进行了 100 次随机比较采样,每次比较分配两个人进行标注,为 DPO-PPO’10 产生了 275 个判断,为 PPO-PPO 产生了 200 个判断
  • 论文对 SFT 进行了 125 次比较采样,每次分配一个人进行标注
  • 论文忽略了人类标记为平局的判断(仅占所有判断的约 1%),并测量了人类 A 和人类 B 之间(对于论文有两个人标注的比较,即不包括 SFT)以及每个人与 GPT-4 之间的原始一致百分比
  • 论文总共有 25 名志愿者人类评估者,每人比较了 25 个摘要(一名志愿者较晚完成调查,未纳入最终分析,但在此列出)
  • 评估者是斯坦福大学的学生(从本科到博士),或近期的斯坦福毕业生或访问学者,主修 STEM(主要是 CS)领域
  • 调查界面截图见图 5

附录:DPO 推导过程

  • 根据RLHF中的定义,策略 \(\pi_\theta\) 的训练目标是:在不太偏离 Reference Model 的情况下,最大化 reward,其定义可以写为如下形式
    $$
    \max_{\pi_\theta} \mathbb{E}_{x\sim D, y\sim \pi_\theta(y|x)} [r_{RM}(x,y)]-\beta \mathbb{D}_{KL}[\pi_\theta(y|x)||\pi_\text{ref}(y|x)]
    $$
    • \(r_{RM}(x,y)\) 是 Reward Model 的返回值
    • \(\beta\) 是控制目标策略和 Reference Model 差异的参数
    • 在强化学习中,可通过修改使用 reward(Reward Engineering)来实现训练目标:
      $$
      r(x,y) = r_{RM}(x,y) - \beta(\log\pi_\theta(y|x) - \log\pi_\text{ref}(y|x) )
      $$
  • DPO推导:
    • DPO-最优策略推导 :将原始目标进行转换有
      • 理解:(论文中未明确给出说明)上述证明中,转换 KL 散度形式为对形式时,要求 \(y \sim \pi\),即回答 \(y\) 是从当前策略采样的(实际中我们无法严格满足,只能近似做到)
      • 公式(12)最后一步推导为:将左边式子中括号内容按照对数法则全部展开,即可发现变化前后的式子相等
      • 实际上,推导公式(12)时, \(\log Z(x)\) 可以是任意函数,为了使得 \(\pi^{*}(y|x)\) 是一个分布,所以特意将 \(Z(x)\) 取值为分配函数的形式(物理学中的分配函数是一个统计量)
      • 注:可以证明这样构造的 \(\pi^*\) 正是原始 PPO 约束优化问题的最优解(这也是后续推导可以看到后续的目标就是让目标策略和 \(\pi^*\) 的 KL 散度变小),详细证明参考 RL——CQL 的附录部分
    • DPO-最优奖励形式推导 :进一步推导得到最优策略对应的奖励形式有
      • 这里由于 \(Z(x)\) 并不依赖于策略 \(\pi\),所以最小化公式14 的结果就是最小化其第一项的结果(注:第二项可以单独分出来),且 \(\pi\) 满足下面的形式时取得最小值,即在 KL 约束下,奖励最大化目标的 \(\pi(y|x)\) 的最优解形式为:
        $$
        \pi^{*}(y|x) = \frac{1}{Z(x)}\pi_\text{ref}(y|x)exp(\frac{1}{\beta}r(x,y))
        $$
      • 两边同时取对数可得:
        $$
        \log \pi^{*}(y|x) = -\log Z(x) + \log \pi_\text{ref}(y|x) + \frac{1}{\beta}r(x,y)
        $$
      • 进一步有:
        $$
        \frac{1}{\beta}r(x,y) = \log \pi^{*}(y|x) + \log Z(x) - \log \pi_\text{ref}(y|x)
        $$
      • 即最优策略对应的奖励形式为:
        $$
        r(x,y) = \beta \log \frac{\pi^{*}(y|x)}{\pi_\text{ref}(y|x)} + \beta\log Z(x)
        $$
        • 对上述奖励形式的理解:如果已知 公式11 问题中的 最优解 ,即 策略 \(\pi\) 的最优策略 \(\pi^{*}\) ,那么 最优的奖励值(最大奖励值)\(r^*(x,y)\) 的形式可以通过上述的形式来表示
    • DPO-损失函数推导 :在使用 Bradley-Terry (BT)方法建模人类偏好时 ,有 DPO 的训练损失函数如下:
      • 推导精髓:上述推导中消除了 \(Z(x)\) ,是通过引入 Bradley-Terry 偏好模型来实现的
      • 理解:上述基本推导思路是
        • 奖励和策略的关系:由上面已经已知,即指定任意策略为最优策略,则其对应的最优奖励就已知;反过来也一样
        • 奖励和概率的关系:借助 BT 偏好建模,可以建模 正样本 优于 负样本的概率 \(p(y_1 \succ y_2|x)\) 和奖励 \(r(x,y_1),r(x,y_2)\) 的关系
        • 由此,可以得到概率和策略的关系(注意:这样的好处是,不再需要预估奖励了,直接从优化概率即可优化策略)
        • 下面再进一步,最小化负对数概率即可得到目标,当负对数概率最小时,也就是策略最优时
      • 目标是让上面的概率 \(p^*(y_1 \succ y_2 )\) 越大越好,最终的损失函数可以定义为负对数概率在数据集上的期望:
        $$
        Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
        $$
      • 通过最小化上面的损失函数,即可求得最优参数 \(\theta^*\)

附录:DPO 训练流程

  • 一句话总结:用 \(\pi_\text{ref}\) 收集数据 + 人类离线标记偏好 + 按照 DPO 损失函数训练
  • 【与 RLHF Reward Model 训练相同】使用SFT模型对同一个Prompt重复生成多个不同Response,记为 \(y_a, y_b, y_c, y_d\)
  • 【与 RLHF Reward Model 训练相同】让人类对回答进行排序打分: \(y_a \succ y_b \succ y_c \succ y_d\) ,最终可获得数据集 \(D = \{x^{(i)}, y^{(i)}_w, y^{(i)}_l\}_{i=1}^N\)
    • 实际上,对于一个 \(x\) 对应K个 \(y\) 的情况,可以拆开成 \(C_K^2\) 个样本,然后按照Bradley-Terry(BT)Model来建模,在OPENAI原始论文:Training language models to follow instructions with human feedback中训练RM时是这样表述的,论文均按照BT模型来写
    • 实际上,DPO原始论文:Direct Preference Optimization: Your Language Model is Secretly a Reward Model中还给出了一种不做样本拆分的等价表达形式:Plackett-Luce Model,在论文最后我们会进行讨论
  • 【与 RLHF 不同】对于给定的 \(\pi_\text{ref}\) 和数据集 \(D\) ,优化语言模型 \(\pi_\theta\) 以最小化loss:
    $$
    Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
    $$
    • 注: \(\sigma(\cdot)\) 表示Sigmod函数 \(\sigma(x) = \frac{1}{1+e^{-x}}\)
    • 策略 \(\pi_\text{ref}\) 和数据集 \(D\) 必须是对应的,即数据集 \(D\) 应该是按照策略 \(\pi_\text{ref}\) 中采样得到的;
      • 一般来说:数据集 \(D\) 都是策略 \(\pi^{SFT}\) 采样得到的,此时 \(\pi_\text{ref}\) 就是 \(\pi^{SFT}\)
      • 当数据集 \(D\) 为公开数据集时,可以使用下面的方法先训练一个 \(\pi_\text{ref}\) (原始论文中描述 \(\pi_\text{ref}\) 的训练过程为initialize \(\pi_\text{ref}\) ,但实际上, \(\pi_\text{ref}\) 在DPO训练 \(\pi_\theta\) 过程中是不会被更新的):
        $$
        \pi_\text{ref} = \arg\max_{\pi} \mathbb{E}_{(x,y_w) \sim D} log \pi(y_w|x)
        $$
        • 理解:这种情况下 \(\pi_\text{ref}\) 的训练就是在数据集 \((x, y_w) \sim D\) 上的SFT
        • 这种设定可以减少未知的真实行为策略与 DPO 使用的 \(\pi_\text{ref}\) 之间的分布偏移(mitigate the distribution shift between the true reference distribution which is unavailable, and \(\pi_\text{ref}\) used by DPO)
    • 问题 :如何理解收集数据的行为策略必须和参考策略一致?
    • 回答(待补充):在推导过程中并未看到必须要求数据和参考策略一致,但是 DPO-最优策略推导过程中变换 KL 散度形式时,要求 \(y\sim\pi\),即回复 \(y\) 必须从当前策略采样,考虑到参考模型常常作为目标策略的初始值,且更新过程中数据无法变更,则保证数据从参考策略(目前策略初始值)采样是最合适的
      • 其他角度的进一步理解:如果能针对当前策略生成的样本进行反馈,则可以最大程度上对当前模型进行高效优化,重点优化模型可能会生成的样本,给与或正或负的高效反馈
  • 问题:为什么不能直接用 SFT 的结果作为 \(\pi_\theta\) ?DPO 相对普通 SFT 有什么优点?
  • 回答:因为 SFT 没有使用到 \(y_l\) 样本,没有体现出来人类偏好,而 DPO 可以

附录:DPO 更新梯度分析

  • DPO-loss 关于参数 \( \theta \) 的梯度可以写成:
    $$\begin{aligned}
    \nabla_{\theta} \mathcal{L}_{\mathrm{DPO} }\left(\pi_{\theta} ; \pi_{\text {ref } }\right) = -\beta \mathbb{E}_{\left(x, y_{w}, y_{l}\right) \sim \mathcal{D} }[\underbrace{\sigma\left(\hat{r}_{\theta}\left(x, y_{l}\right)-\hat{r}_{\theta}\left(x, y_{w}\right)\right)}_{\text {奖励估计错误时权重更高 } }[\underbrace{\nabla_{\theta} \log \pi\left(y_{w} | x\right)}_{\text {增加 } y_{w} \text { 的概率 } }-\underbrace{\nabla_{\theta} \log \pi\left(y_{l} | x\right)}_{\text {降低 } y_{l} \text { 的概率 } }]]
    \end{aligned}$$
    • 其中 \(\hat{r}_\theta(x,y) = \beta \log\frac{\pi_\theta(y|x)}{\pi_\text{ref}(y|x)}\) 在原始论文中被称为隐式奖励模型,\( \hat{r}_{\theta}(x, y)=\beta \log \frac{\pi_{\theta}(y | x)}{\pi_{\text {ref } }(y | x)} \) 是由语言模型 \( \pi_{\theta} \) 和参考模型 \( \pi_{\text {ref } } \) 隐式定义的奖励
    • 从梯度上可以看出:当 \(y_l\) 的奖励大于 \(y_w\) 的奖励时,梯度越大,而损失函数的梯度会增加生成 \(y_w\) 的概率,降低 \(y_l\) 的概率(对应负号 \(-\))
    • 直观地说,损失函数 \( \mathcal{L}_{\text {DPO} } \) 的梯度增加了偏好完成项 \( y_{w} \) 的可能性,并降低了非偏好完成项 \( y_{l} \) 的可能性
    • 由隐式奖励模型 \( \hat{r}_{\theta} \) 对非偏好完成项的评分高出多少来加权,由 \( \beta \) 缩放(详细讨论见附录),即隐式奖励模型对完成项排序的错误程度,考虑了 KL 约束的强度
      • 注:作者在论文中给出了实验来验证隐式奖励模型 \( \hat{r}_{\theta} \) 加权的重要性(注意不是 \(\beta\) 的实验,是整体加权系数的实验),没有加权系数的朴素版本会导致语言模型退化(原文附录表3)
  • 补充:梯度的推导过程

附录:DPO 与 RLHF 的关系是什么?

  • 对于给定的 \(\pi_\text{ref}\) 和数据集 \(D\)
  • DPO是在优化语言模型 \(\pi_\theta\) 以最小化loss:
    $$
    Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
    $$
  • RLHF的Reward Model则在优化Reward Model打分模型 \(r_\theta\) 以最小化loss:
    $$
    Loss_{\text{RM}}(\theta) = -\frac{1}{C_K^2} \mathbb{E}_{(x,y_w,y_l)\sim D}[\log \sigma(r_\theta(x, y_w) - r_\theta(x, y_l))]
    $$
  • 可以看到 DPO 的损失函数与 RLHF 中 Reward Model 的损失函数很相似,可以理解为 DPO 隐式建模了 Reward Model(在原始论文中 \(\hat{r}(x,y) = \beta \log\frac{\pi_\theta(y|x)}{\pi_\text{ref}(y|x)}\) 被称为隐式奖励模型,与 \(r_\theta(x,y)\) 替换后即和RM中的损失函数形式完全一致)
  • DPO 可以看做是一个 off-policy 且 offline 的 RL 方法(实际上不是 RL 方法),而 RLHF 中的 PPO 是 online 且 on-policy 的方法

附录:对于大于2个回答偏好的情况如何处理?

  • 处理方法一:Bradley-Terry(BT)Model,如论文所述,对多个偏好进行两两匹配生成多个样本,然后转换为只有两个回答偏好的情况
  • 处理方法二:Plackett-Luce Model,使用如下损失函数来训练:
    • 可以看到Plackett-Luce Model的损失函数展开以后就是 \(C_K^2\) 个偏好样本对,与先两两匹配生成样本,然后再利用Bradley-Terry Model建模的方法完全一致
    • 原论文附录中有关于 Plackett-Luce Model 的详细介绍和推导

附录:DPO 损失函数中 KL 散度和超参数 \(\beta\) 的理解

  • 从原始问题定义中理解 :在原始约束优化问题的定义中:
    $$
    \max_{\pi_\theta} \mathbb{E}_{x\sim D, y\sim \pi_\theta(y|x)} [r_{RM}(x,y)]-\color{red}{\beta} \mathbb{D}_{KL}[\pi_\theta(y|x)||\pi_\text{ref}(y|x)]
    $$
    • \(\beta\) 是作为控制 KL 散度的约束严格程度存在的: \(\beta\) 越大,KL 散度约束越强; \(\beta\) 越小,KL 散度约束越弱
  • 在 DPO 最终的损失函数中理解 :从损失函数的数学形式看
    $$
    Loss_{\text{DPO}}(\pi_\theta;\pi_\text{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \color{red}{\beta}\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} - \color{red}{\beta}\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right)\right ]
    $$
    • 从损失函数中不容易理解 \(\beta\) 的作用,需求导以后才好理解,参见下面梯度中的理解
  • 在 DPO 更新的梯度中理解 :从梯度更新的式子看:
    $$\begin{aligned}
    \nabla_{\theta} \mathcal{L}_{\mathrm{DPO} }\left(\pi_{\theta} ; \pi_{\text {ref } }\right) = -\color{red}{\beta} \mathbb{E}_{\left(x, y_{w}, y_{l}\right) \sim \mathcal{D} }[\underbrace{\sigma\left(\hat{r}_{\theta}\left(x, y_{l}\right)-\hat{r}_{\theta}\left(x, y_{w}\right)\right)}_{\text {奖励估计错误时权重更高 } }[\underbrace{\nabla_{\theta} \log \pi\left(y_{w} | x\right)}_{\text {增加 } y_{w} \text { 的概率 } }-\underbrace{\nabla_{\theta} \log \pi\left(y_{l} | x\right)}_{\text {降低 } y_{l} \text { 的概率 } }]]
    \end{aligned}$$
    • 其中 \(\hat{r}_\theta(x,y) = \color{red}{\beta} \log\frac{\pi_\theta(y|x)}{\pi_\text{ref}(y|x)}\)
    • 理解:从梯度公式看
      • \(\color{red}{\beta \rightarrow 0}\) 时, \(\sigma(\cdot) \rightarrow \sigma(0) = 0.5\),相当于是个固定值,此时模型专注于优化以增大正样本概率,减小负样本概率,几乎没有任何约束
      • \(\color{red}{\beta \rightarrow +\infty}\) 时:
        • 当 \(\left(\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} -\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} \right) > 0\),则 \(\sigma(\cdot) \rightarrow \sigma(+\infty) = 1\),梯度对模型的影响正常,模型会优化这种样本,使得 \(y_w\) 出现的概率变大, \(y_l\) 出现的概率变小
        • 当 \(\left(\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} -\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} \right) < 0\),则 \(\sigma(\cdot) \rightarrow \sigma(-\infty) = 0\),梯度对模型影响为 0,模型不再学习这种样本(即使 \(y_w\) 出现的概率比参考策略只大一点点,或\(y_l\) 出现的概率比参考策略仅小一点点)
        • 综上,\(\color{red}{\beta \rightarrow +\infty}\) 时,会导致模型学习时,刚刚好学到一个 \(y_w\) 出现的概率比参考策略只大一点点,或\(y_l\) 出现的概率比参考策略仅小一点点的策略即收敛,这会导致策略不再继续偏离参考策略,也就实现了对 KL 散度的极大约束
  • \(\beta\) 取值最佳实践 :原始论文中提到 \(\beta\) 默认取值为 \(\beta=0.1\),在 TL;DR summarization 任务(一个摘要生成任务)中取值为 \(\beta=0.5\)

附录:DPO Loss 的代码实现

  • 来自原始 DPO 论文的代码实现:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    def dpo_loss(pi_logps, ref_logps, yw_idxs, yl_idxs, beta):
    """
    pi_logps: policy logprobs, shape (B,)
    ref_logps: reference model logprobs, shape (B,)
    yw_idxs: preferred completion indices in [0, B-1], shape (T,)
    yl_idxs: dispreferred completion indices in [0, B-1], shape (T,)
    beta: temperature controlling strength of KL penalty
    Each pair of (yw_idxs[i], yl_idxs[i]) represents the
    indices of a single preference pair.
    """
    pi_yw_logps, pi_yl_logps = pi_logps[yw_idxs], pi_logps[yl_idxs]
    ref_yw_logps, ref_yl_logps = ref_logps[yw_idxs], ref_logps[yl_idxs]
    pi_logratios = pi_yw_logps - pi_yl_logps
    ref_logratios = ref_yw_logps - ref_yl_logps
    losses = -F.logsigmoid(beta * (pi_logratios - ref_logratios))
    rewards = beta * (pi_logps - ref_logps).detach()
    return losses, rewards

附录:针对 DPO 的改进

  • DPO 中只保证目标策略生成整个句子 \(y_w\) 或 \(y_l\) 的概率与参考策略一致,并不限制中间每个 Token 生成的过程中概率一致
  • DPO 中的损失函数要求的是 \(\left(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} -\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right) \) 变大;实际上,模型可能学习到的是,让 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 同时变小,只要正样本变小的幅度较小即可

附录:DPO 训练时的 \(\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)}\) 应该保证始终大于 1 吗?

  • 副标题:DPO 训练时的 \(\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)}\) 应该保证始终小于 1 吗?
  • 现象:在训练时发现 \(\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} < 1\) 且持续降低(此时 \(\beta=0.1\))
    • 设置 \(\beta=0.5\) 后 \(\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} > 1\) 波动
    • 其他指标均正常:
      • \(\left(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} -\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right) \) 逐步变大
      • \(\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} < 1\) 且持续降低
  • 问题:让 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 同时变小的结果不是我们想要的吧,我们至少不想要 \(\pi_\theta(y_w|x)\) 降低
  • 如何理解 通过调整 \(\beta\) 值可以缓解这个问题呢?
    • 个人理解:DPO 的本质是让 \(\left(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)} -\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)} \right) \) 越大越好
    • 进一步分析有:
      • 当 \(\beta\) 过小时 ,KL 散度约束小,可能导致 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 同时变小(持续变小)
      • 当 \(\beta\) 过大时 ,KL 散度约束大,可能导致 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 都波动很小
        • 从梯度上体现就是,当 \(\log\frac{\pi_\theta(y_w|x)}{\pi_\text{ref}(y_w|x)}\) 比 \(\log\frac{\pi_\theta(y_l|x)}{\pi_\text{ref}(y_l|x)}\) 大一点点就不学了
      • 当 \(\beta\) 适中时 ,KL 散度约束适中,可约束 \(\pi_\theta(y_w|x)\) 和 \(\pi_\theta(y_l|x)\) 不能偏离当前策略太多,让 \(\pi_\theta(y_w|x)\) 变大, \(\pi_\theta(y_l|x)\) 变小,从而实现

附录:对齐人类偏好的其他方法

  • RLHF: 基于人类反馈的强化学习方法,基于人类偏好训练 RM 再 RL,ChatGPT 的训练方式
  • RLAIF: 基于AI反馈的强化学习方法,基于 AI 偏好模型训练 RM 再 RL,Claude 的训练方式
  • 其他参考RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr:

    整个从 SFT 到 RLHF 或 RLAIF 的训练中,ChatGPT 只有最后 1/3 摆脱了人工参与的训练,而 Claude 则希望超过 1/2 摆脱人工参与的训练

NLP——LLM对齐微调-LLDS

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(LLDS)On GRPO Collapse in Search-R1: The Lazy Likelihood-Displacement Death Spiral, arXiv 20251203, University of British Columbia & Vector Institute & UC Berkeley

Paper Summary

  • 整体总结:
    • 作者将 LLD 确定为基于 GRPO 的、Search-R1 风格的工具集成 RL 不稳定的核心原因
    • LLD 出现得早,发生频率高,并能可靠地将训练驱动到一个自我强化的 LLD 死亡螺旋中,其特征是单调的似然衰减、熵激增、梯度膨胀和最终崩溃
    • 注意:论文的分析首次提供了系统性证据,表明 GRPO 在工具集成设置下对似然漂移特别脆弱
    • 为了对抗这种故障模式,论文提出了 LLDS,一个简单有效的似然保留正则化器,它仅在似然降低时激活,并且仅针对有问题的 Token
  • 背景 & 问题提出:
    • Tool-Integrated RL(TIRL)让 LLM 能够通过与搜索引擎和检索器等外部工具交互来执行多步推理
    • GRPO,如 Search-R1 (2025) 所示,提供了快速的收敛性和无需价值函数的设定,使其在此场景中具有吸引力,但却持续遭受训练坍缩(training collapse)
  • 作者识别出Lazy Likelihood Displacement(LLD)
    • 即正确与错误响应的似然同时系统性降低或停滞,是驱动 training collapse 的核心机制
    • 理解:这里的 Displacement 是 “移位” 的含义,likelihood displacement 在统计中是一个专有名词,翻译为:“似然位移”,指模型参数的似然估计值因数据分布变化、异常值或模型假设偏差 ,导致与 “真实参数” 产生的系统性偏移(本质是 “似然估计的偏差”)
      • LLD 表面含义是表达 Likelihood 缓慢地发生了错位?但本意是指优化后,策略的质量反而下降了,即 RL 的目标反而下降了
  • LLD 早期出现并触发了自我强化(self-reinforcing)的LLD 死亡螺旋(LLD Death Spiral) ,其中下降的似然导致低置信度响应,从而放大了梯度并最终导致坍缩
  • 作者通过实验在 Search-R1 风格的、搜索集成的问答任务上,跨模型描述了这一过程,揭示了一致的三阶段轨迹:
    • 早期停滞:early stagnation
    • 稳定衰减:steady decay
    • 加速坍缩:accelerated collapse
  • 问题解法:
    • 作者提出了一种轻量级的、保持似然的 LLDS 正则化方法 ,仅当轨迹的似然下降时才激活 ,并且只正则化造成下降的 Token
    • 这种细粒度结构在最小化对优化过程干扰的同时缓解了 LLD
    • 在七个开放域和多跳问答基准测试中,LLDS 稳定了训练,防止了梯度爆炸,并带来了显著的性能提升
      • 包括在 Qwen2.5-3B 上获得 +37.8% 的增益,在 Qwen2.5-7B 上获得 +32.0% 的增益
  • 论文的结果确立了 LLD 是基于 GRPO 的 TIRL 的一个根本瓶颈,并为稳定、可扩展的工具集成 LLM 训练提供了实用路径

Introduction and Discussion

  • LLM 越来越多地利用外部工具,例如搜索引擎 (2025) 和代码执行环境 (2025; 2025),来增强其推理能力
  • 这个工具集成推理(Tool-Integrated Reasoning, TIR)范式推动了近期在事实性问答 (2025)、基于图像的推理 (2025) 和数学问题求解 (2025; 2025) 方面的进展
  • 通过使模型能够迭代 Query 工具、验证中间步骤并精炼其思考,工具调用显著提升了推理质量 (2023)
  • 这些进展自然促使人们使用 RL 来训练 LLM 进行规划、与工具交互并掌握多步决策,正如最近基于 GRPO 的框架(如 Search-R1 (2025))所例证的那样
  • 但将 TIR 扩展到 RL 设定引入了严重且持续的训练不稳定性
    • 特别是,在 Search-R1 风格 (2025) 的、搜索集成的问答流程中,GRPO 训练频繁表现出突然的奖励下降和灾难性坍缩 (2025; 2025)
    • 这些失败在多轮设定中尤为明显 (2025),其中工具反馈成为模型条件上下文的一部分,创造了长且高度纠缠的轨迹
    • 尽管先前工作已观察到这些失败,但其底层机制仍知之甚少
  • 论文首先识别出Lazy Likelihood Displacement(LLD) (2025; 2024; 2024)
    • 即在 GRPO 优化期间,正确和错误响应的似然停滞或减少 (2025)
    • 这是 Search-R1 风格的 Tool-Integrated Reinforcement Learning(TIRL)中先前被忽视的根本坍缩来源
  • 以搜索集成问答为案例研究(见图 2),论文展示了 LLD 早期且持续地出现:
    • 即使在奖励增加时,正确响应的似然也进入单调下降
  • 这种行为在多种模型规模上均出现,表明 LLD 是基于 GRPO 的 TIRL 的一种结构性失败模式,而非特定配置的产物
  • 论文进一步证明 LLD 驱动了一个 self-reinforcing 的LLD 死亡螺旋 ,其中由此产生的低置信度状态放大了来自错误轨迹的负梯度影响,加速了似然衰减,触发了熵(Entropy)尖峰,增大了似然比,并最终导致了引起坍缩的大梯度不稳定性
  • 为对抗此失败模式,论文提出了一种简单而有效的保持似然的正则化方法 LLDS ,用于防止有害的似然减少
    • 论文的方法可与 GRPO 无缝集成,并引入了两层选择性:
      • (i)响应级门控 ,仅当轨迹的总体似然下降时才激活正则化;
      • (ii)Token-level 选择性 ,仅惩罚造成下降的 Token
    • 这种细粒度设计直接缓解了 LLD,同时最小程度地干扰了 GRPO 的优化行为
      • 通过防止无意的向下似然漂移,LLDS 使优化远离不稳定的高梯度状态,并保持了健康的训练动态
    • 实验证明,这转化为稳定的训练、被抑制的梯度爆炸以及在七个开放域和多跳问答基准测试上的一致增益
  • 论文的主要贡献有三方面:
    • 论文首次对 GRPO 驱动的 TIRL 中的 LLD 进行了系统性研究,并表明它高频出现,一致地经历一个特征性的失败轨迹:
      • 稳定的似然衰减,随后是梯度放大和熵爆炸,最终坍缩
    • 论文提出了一种轻量级的保持似然的正则化方法 LLDS,它选择性地正则化似然减少,并解决了 GRPO 训练中的坍缩问题
    • 通过稳定训练,论文在七个 QA 基准测试上实现了显著的性能提升(见图 1),展示了一种更鲁棒、更可靠的 RL 驱动 TIR 方法

Preliminary

  • TIRL 使一个 LLM 能够与外部工具交互
  • 论文将 Query 记作 \(\boldsymbol{x}\),工具反馈记作 \(\boldsymbol{o}\),模型的动作记作 \(\boldsymbol{y}\)
  • 对于给定的 Query \(\boldsymbol{x}\),模型在第 \(t\) 轮根据下式自回归地生成一个动作:
    $$
    \pi_{\theta}(\boldsymbol{y}_{t} \mid \boldsymbol{x},\boldsymbol{y}_{0},\boldsymbol{o}_{0},\boldsymbol{y}_{1}, \ldots ,\boldsymbol{o}_{t-1}),
    $$
    • \(\boldsymbol{y}_{t}\) 是基于累积上下文生成的
    • \(\boldsymbol{o}_{t-1} \sim \mathcal{T}\) :
      • 如果前一个动作 \(\boldsymbol{y}_{t-1}\) 调用了一个工具 \(\mathcal{T}\)(例如,发出搜索 Query ),则在第 \(t-1\) 轮返回的工具反馈
      • 如果未调用任何工具,则 \(\boldsymbol{o}_{t-1}\) 为空字符串
  • 多轮(Multi-turn) 设定对应于涉及多次工具调用,从而涉及多轮工具反馈的轨迹
    • 注意:这里的多轮并不涉及多个用户 Prompt 输入,整个过程中用户仅输入一个 Prompt(或 Query),其他的交互都是工具/环境产生的
  • 工具反馈 \(\boldsymbol{o}_{t}\) 对于预训练语言模型本质上是分布外(Out-of-Distribution, OOD) 的,因为这些反馈来源于外部环境,而非模型自身的生成分布
    • 直接迫使模型拟合这些反馈 Token 会引入巨大的训练-推理不匹配,并可能导致模型记忆环境特定的反馈
    • 因此,先前的工作通常在有监督训练期间将反馈 Token 屏蔽掉,以稳定优化并避免对外部内容过拟合 (2025)

Tool-Integrated GRPO with Feedback Mask

  • 由 DeepSeek-Math (2024) 和 DeepSeek-R1 (2025) 提出的 GRPO 损失函数,通过改进奖励和损失信号的计算方式来增强策略优化
  • 与 PPO (2017) 不同,GRPO 无需价值函数估计,而是使用组内相对奖励归一化进行优化
  • 具体而言,对于一个 Query-Answer 对 \((\boldsymbol{x}, \boldsymbol{a})\),策略 \(\pi_{\theta}\) 采样 \(G\) 个响应:
    $$\{(y_{i,0}, \boldsymbol{o}_{i,0}, \ldots, y_{i,t}, \boldsymbol{o}_{i,t}, \ldots, \boldsymbol{o}_{i,T_{i}-1}, y_{i,T_{i} })\}_{i=1}^{G},$$
    • \(T_{i}\) 表示 第 \(i\) 次 rollout 中 工具调用的次数(多轮交互的数量)
    • 每个动作 \(\boldsymbol{y}_{i,t}\) 由 \(|y_{i,t}|\) 个 Token 组成,论文用 \(\boldsymbol{y}_{i,t, < k}\) 表示由其前 \(k-1\) 个 Token 组成的前缀,即 \(\mathbf{y}_{i,t,k}\) 表示第 \(i\) 个 rollout 的第 \(t\) 个回合的 第 \(k\) 个 Token,其 在策略 \(\pi_{\theta_\text{old}}\) 下的采样逻辑为:
      $$ \mathbf{y}_{i,t,k}\sim \pi_{\theta_\textrm{old} }(\cdot|\mathbf{x},\cdots,\mathbf{y}_{i,t-1},\mathbf{o}_{i ,t-1},y_{i,t, < k}) $$
    • 令 \(r_{i}\) 表示分配给第 \(i\) 个响应的奖励
    • 第 \(i\) 个响应的第 \(t\) 个动作的优势通过组级归一化定义:
      $$\hat{A}_{i,t,k}:=\frac{r_{i}-\mu}{\sigma}, \qquad k=1,\ldots,|\hat{\boldsymbol{y} }_{i,t}|,$$
      • \(\mu=\widehat{\mathbb{E} }[\{r_{i}\}_{i=1}^{G}]\) 和 \(\sigma=\sqrt{\textrm{Var}[\{r_{i}\}_{i=1}^{G}]}\) 分别是组内奖励的经验均值和标准差
      • 同一轨迹的每个 Token 共享相同的归一化优势
  • 带反馈掩码的工具集成 GRPO 目标函数如下:
    $$\mathcal{J}_{\textrm{GRPO} }(\theta)=\mathbb{E}_{(\boldsymbol{x},\boldsymbol{a})\sim\mathcal{D} \\ \{y_{i,0},…,y_{i,t},\boldsymbol{o}_{i,t},y_{i,T_{i} } \}\sim(\pi_{\theta_\textrm{old} },\mathcal{T}) }\ \left[\frac{1}{\sum_{t=1}^{G}\sum_{t=1}^{T_{i} }|\hat{\boldsymbol{y} }_{i,t}|}\sum_{i=1}^{G}\sum_{t=1}^{T_{i} }\sum_{k=1}^{|\hat{\boldsymbol{y} }_{i,t}|}\min \left(\gamma_{i,t,k}(\theta)\hat{A}_{i,t,k},\hat{A}_{i,t,k}\operatorname{clip}\big(\gamma_{i,t,k}(\theta),1-\varepsilon,1+\varepsilon\big)\right)\right], \tag{1}$$
    • \(\varepsilon\) 是裁剪参数
    • 似然比定义为
      $$ \gamma_{i,k}(\theta)=\frac{\pi_{\theta}(\mathbf{y}_{i,t,k}|\mathbf{x},\cdots,\mathbf{y}_{i,t-1},\mathbf{o}_{i ,t-1},y_{i,t, < k})}{\pi_{\theta_\textrm{old} }(\mathbf{y}_{i,t,k}|\mathbf{x},\cdots,\mathbf{y}_{i,t-1},\mathbf{o}_{i ,t-1},y_{i,t, < k})} $$
    • 注意:尽管在损失计算时反馈 Token \(\mathbf{o}\) 被掩码掉,但它们仍然会影响后续 Token 预测的上下文
    • 注:从上面的公式 1 进一步说明:论文的多轮并不涉及多个用户 Prompt 输入,整个过程中用户仅输入一个 Prompt(或 Query),其他的交互都是工具/环境产生的
    • 问题:上面公式中的采样过程其实应该是表示为下面的式子才对吧?
      $$ \{y_{i,0},…,y_{i,t},\boldsymbol{o}_{i,t},y_{i,T_{i} } \}\sim(\pi_{\theta_\textrm{old} }(\cdot|\boldsymbol{x}), \mathcal{T}) $$

Lazy Likelihood Displacement in Tool-integrated GRPO(工具集成 GRPO 中的 LLD)

  • 近期工作 (2025) 在基于文本的非工具设定中,为 GRPO 引入了Lazy Likelihood Displacement(LLD) ,表明在优化过程中正确响应的似然经常减少或仅微弱改善(improves only marginally)
  • 在本节中,论文将 LLD 扩展到工具集成 RL 领域,并定义:
  • 定义 4.1:Tool-Lazy Likelihood Displacement
    • 令 \(\pi_{\theta_{\textrm{old} } }\) 和 \(\pi_{\theta_{\textrm{fin} } }\) 表示在数据集 \(\mathcal{D}\) 上优化偏好学习目标 \(\mathcal{J}\)(例如,公式 1)之前和之后获得的初始策略和微调策略,且 \(\mathcal{J}(\theta_{\textrm{fin} }) < \mathcal{J}(\theta_{\textrm{old} })\)
      • 理解:
        • 优化前的策略是:\(\pi_{\theta_{\textrm{old} } }\)
        • 优化后的策略是:\(\pi_{\theta_{\textrm{fin} } }\)
        • \(\mathcal{J}(\theta_{\textrm{fin} }) < \mathcal{J}(\theta_{\textrm{old} })\) 表示优化目标下降了
    • 考虑一个由交替动作和反馈组成的工具集成轨迹,\(({\boldsymbol{y} }_{0},{\boldsymbol{o} }_{0},\ {\boldsymbol{y} }_{1},{\boldsymbol{o} }_{1},\ \ldots ,\ {\boldsymbol{y} }_{T})\),其中仅动作 \(\{ {\boldsymbol{y} }_{t}\}_{t=0}^{T}\) 用于似然计算(反馈被屏蔽)
    • 对于每个响应动作 \({\boldsymbol{y} }_{t}\),定义其对数似然变化为
      $$
      \Delta_{t}({\bf x},{\boldsymbol{y} }_{t}):=\ln\pi_{\theta_{\textrm{fin} } }({\boldsymbol{y} }_{t} \mid {\bf x},{\boldsymbol{y} }_{ < t},{\boldsymbol{o} }_{ < t})-\ln\pi_{\theta_{\textrm{old} } }({\boldsymbol{y} }_{t} \mid {\bf x},{\boldsymbol{y} }_{ < t},{\boldsymbol{o} }_{ < t}).
      $$
    • 如果
      $$\Delta_{t}({\bf x},{\boldsymbol{y} }_{t}) \ \leq \ \epsilon $$
      • 则称:对于动作 \(t\) 发生了 LLD
      • 其中 \(\epsilon\) 是一个小的或非正的常数
    • 如果
      $$
      \sum_{t=0}^{T}\Delta_{t}({\bf x},{\boldsymbol{y} }_{t}) \ \leq \ \epsilon,
      \tag{2}
      $$
      • 则称:对于整个响应 发生了 LLD
    • 因此,LLD 捕捉了在优化策略下,一个或多个响应动作的似然表现出可忽略甚至负向改进的失败模式
    • 为了更好地理解 LLD 的起源,论文强调负梯度如何抑制正确动作的似然
      • 以下非正式定理(正式版本及证明见附录 A)在工具集成 RL 的设定中重述了 (2025) 中的定理 4.4:
  • 定理 4.2(非正式:工具集成 GRPO 中的 Trajectory-level LLD (Informal: Trajectory-Level LLD in Tool-Integrated GRPO)): 在工具集成 GRPO 中,当发生下面的情况时,原本正确的响应似然可能会下降
    • (i)低似然的错误响应
    • (ii)其嵌入表示与正确响应相似的错误响应诱导出大的负梯度并主导了正向更新
    • 这些力量共同导致了 Trajectory-level 的 LLD
  • 在工具集成 GRPO 的设定中,论文极其频繁地观察到正确响应的似然未能改善
    • 这表明了一种特别严重的 LLD 形式(\(\epsilon \leq 0\)),导致了模型整体输出似然的渐进衰减
    • 这种复合衰减是 Search-R1 风格工具集成 RL 的一种独特失败模式

Lazy Likelihood Displacement in Tool-Integrated GRPO (工具集成 GRPO 中的 LLD )

  • 本节阐述了 LLD 在工具集成 GRPO 训练中的普遍性,并展示了 LLD (\(\epsilon \leq 0\)) 如何灾难性地将模型驱动至训练崩溃

Likelihood Dynamic

  • 为了说明训练期间 LLD 的普遍性和进展过程,论文可视化了工具集成 RL 中的似然位移轨迹(likelihood-displacement
    trajectory)
  • 如图 2 所示,演化过程呈现出三个特征阶段:
    • 第一阶段(早期停滞, Phase I (early stagnation)):
      • 即使奖励增加,正确响应的似然也几乎保持不变,显示了 LLD 的初始出现
    • 第二阶段(稳态衰减,步骤 60-120, Phase II (steady-decay, steps 60-120)):
      • 似然表现出缓慢但持续的向下漂移,而奖励仅缓慢增长且梯度范数保持稳定——这表明了持续的 LLD
    • 第三阶段(加速,步骤 120 之后, Phase III (acceleration, after step 120)):
      • 似然开始急剧崩溃,同时梯度幅度快速激增(由红星 Token ),这触发了梯度爆炸并最终导致训练崩溃
    • 注:后续两个阶段对应于 \(\epsilon \leq 0\) 的机制,即正确响应的似然严格衰减而非改善
  • 图 2 右侧的放大视图突显了这一转变:
    • 似然持续下降,同时梯度加速上升,奖励曲线开始下降
    • 虽然最终的崩溃是由爆炸的梯度引起的,但似然衰减在整个训练过程中都存在,引入了累积的不稳定性,在加速阶段被急剧放大(更多讨论见附录 B.1)

Lazy Likelihood Displacement Death Spiral(LLD 死亡螺旋)

  • 在图 2 中,论文观察到随着训练的进行,响应似然出现加速下降
  • 论文通过将经过 Feedback-masked 轨迹写作 \(\hat{\boldsymbol{y} }=(\boldsymbol{y}_0,\boldsymbol{y}_1,\ldots,\boldsymbol{y}_T)\) 来简化符号
  • 论文正式地将这种加速的似然衰减表征为 LLD 死亡螺旋
  • 定义 5.1(LLD 死亡螺旋, Definition 5.1 (LLD Death Spiral)):
    • 考虑一个元组 \((\boldsymbol{x},\hat{\boldsymbol{y} }^{+})\) 以及从 \(\pi_{\theta_t}\) 到 \(\pi_{\theta_{t+1} }\) 的策略更新
    • 如果策略演化表现出以下自我强化的进程,论文说系统进入了 LLD 死亡螺旋:
      $$
      \text{LLD}_{t} \implies C^{\mathrm{low} }_{t} \implies \text{LLD}_{t+1}, \quad \epsilon_{t+1}<\epsilon_{t} \leq 0
      $$
    • 其中 \(\text{LLD}_{t}\) 表示时刻 \(t\) 的 LLD ,其似然递减 (\(\epsilon_{t} \leq 0\)),而 \(C^{\mathrm{low} }_{t}\) 表示在 \(\pi_{\theta_t}\) 下似然递减的低置信度轨迹
    • 转换 \(\text{LLD}_{t} \implies C^{\mathrm{low} }_{t}\) 反映了降低的似然导致预测越来越分散,而转换 \(C^{\mathrm{low} }_{t} \implies \text{LLD}_{t+1}\) 的发生是因为低置信度的错误响应通常包含与正确响应中相似的动作,这导致方程 (9) 中产生更大的值,从而产生更强的负梯度影响
    • 当这些效应在多次迭代中复合时,似然衰减加速,创造了一个自我延续的崩溃,论文称之为 LLD 死亡螺旋 (LLD Death Spiral)
  • 论文通过加速的熵爆炸 (accelerated entropy explosion) 和加速的逐样本 LLD (accelerated per-sample LLD) 来演示 LLD 死亡螺旋
Accelerated Per-Sample LLD(加速的逐样本 LLD)
  • 论文在基于搜索的问答数据集 NQ (2019) 上进行了对照实验,以检验 GRPO 的负梯度如何影响正确响应的对数似然
  • 使用 Qwen2.5-3B-Ins (2024),论文为每个问题生成 8 个回合,并仅保留那些包含正确和错误响应混合的示例,丢弃所有响应完全正确或完全错误的情况
  • 为了分离逐样本的学习动态,论文为每个单独的问题重新初始化模型参数 \(\theta\),应用一次 GRPO 更新得到 \(\theta’\),然后测量正确响应的平均对数似然变化:
    $$
    \Delta(\boldsymbol{x}) := \frac{1}{N^{+} } \sum_{i=1}^{N^{+} } \left[ \ln \pi_{\theta’}(\hat{\boldsymbol{y} }^{+}_{i} \mid \boldsymbol{x}) - \ln \pi_{\theta}(\hat{\boldsymbol{y} }^{+}_{i} \mid \boldsymbol{x}) \right],
    $$
  • 其中对于具有 \(N^{+}\) 个正确响应的问题 \(\boldsymbol{x}\)
  • 论文在图 3 中展示了结果
  • 在训练的早期阶段(第 50 次迭代),仅观察到轻微的 LLD:
    • 大多数问题中正确响应的似然减少可以忽略不计,可能是因为正确和错误的轨迹在结构上仍然不相似
  • 随着训练的进行,LLD 变得更加明显
    • 错误响应与正确响应之间结构相似性的增加导致了更广泛的似然下降,如上升的橙色曲线所示
    • 当训练进入加速阶段(第 120-140 次迭代)时,这种趋势加剧为LD 死亡螺旋 (LD death spiral)
    • 在第 140 次迭代时,超过一半的样本显示正确响应的似然大幅下降
      • 这种崩溃是由错误响应极低的似然驱动的,它放大了负梯度的贡献并使学习不稳定
Accelerated Entropy Explosion(加速的熵爆炸)
  • 图 4 可视化了训练期间 Qwen2.5-3B-Ins(图 a)和 Qwen2.5-3B-Base(图 b)的熵、响应长度和有效搜索比率的演变
  • 在两个模型中,平均 Token 熵最初缓慢增加,反映了图 2 中早期慢速 LLD 机制,但后来过渡到急剧加速增长的阶段,这与 LLD 轨迹的加速阶段一致
  • 这种陡峭的熵斜率是死亡螺旋的明确证明:
    • 随着低置信度响应的积累,模型为其 Token 分配越来越分散、低概率的分布,这进一步加强了 LD 并将系统推向不稳定
    • 至关重要的是,这种熵加速发生在响应长度和有效搜索次数几乎保持不变的同时,这证实了上升的熵和相应的似然下降不是由轨迹长度或工具 Query 频率引起的,而是 LD 效应本身的直接表现

Watch for correct actions embedded within incorrect responses(在错误响应中嵌入的正确动作)

  • 观察发现工具集成 GRPO 比非工具场景 (2025) 更容易受到 LLD 的影响
  • 本节在响应动作的粒度上检查 LLD,其中每个动作由连续工具调用之间的片段定义
  • 作者对 Qwen2.5-3B-Ins (2024) 的分析揭示了一个工具集成 GRPO 独有的惊人模式:
    • 正确动作经常出现在原本错误的响应中 ,这种混合结构扰乱了似然估计过程,放大了 LLD 并使训练不稳定
  • 错误响应中频繁出现的正确动作 (Frequent correct actions in Incorrect responses)
    • 论文在实验中发现模型通常使用其第一个响应动作来生成搜索 Query ,并且这个初始动作的正确性随着训练的进行稳步提高
    • 具体来说,作者衡量错误响应生成的检索文档是否与正确响应检索到的文档匹配;
      • 如果匹配,论文将第一个动作视为正确
      • 理解:这里是想看看错误的响应中,第一个回答是正确动作的比例
    • 图 5 显示了不同训练阶段下这个初始动作的准确率
      • 如绿色虚线所示,早期阶段准确率较低,反映了模型对搜索能力的初始掌握,但随着时间的推移显著上升
      • 到第 140 步时,大约 60% 的错误响应以一个正确的搜索 Query 开始,突显了正确 & 错误回复中,第一动作共享的高度结构相似性
  • 第一动作响应更快的似然衰减 (Faster likelihood decay of the first-action response)
    • 如图 5 所示,论文进一步观察到第一动作(浅蓝色)的似然衰减幅度比第二动作(蓝色)大得多
    • 训练早期,第一动作的似然更高,主要是因为第二动作必须基于分布外(OOD)的反馈进行条件生成
      • 理解:Before Feedback 为第一动作;After Feedback 为第二动作
    • 随着训练的进行,两个动作都表现出似然衰减
      • 第一动作的似然大约在第 110 步附近最终下降到低于第二动作,此时第一动作的正确率大约为 50%,表明正确和错误轨迹之间存在强烈的相似性
      • 在第 120 步之后,这种衰减急剧加速,标志着LLD 死亡螺旋 (LLD death spiral) 的开始,其中低似然的错误部分信号进一步加剧了退化
  • 无意义的第一动作 (Nonsensical first-action)
    • 随着 LLD 加剧和第一动作似然崩溃,模型开始产生无意义的输出
    • 如附录中的图 15 所示,它最终生成随机的、无意义的 Token ,这种效应是由严重降低的响应似然驱动的,这导致采样选择任意单词
    • 虽然在这个阶段可能尚未发生完全崩溃,但模型实际上已经无法使用,因为它无法再产生有意义的响应
  • 因此,必须减少对错误响应中正确动作的无意惩罚
    • 更详细的讨论见第 7 节

LLD regularization

  • 为了解决 LLD 问题,论文引入了一类似然保留正则化器,以防止模型在 GRPO 训练过程中无意地降低响应的似然
  • 对于给定的保留响应 \(\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} }\),论文比较其在旧策略(前一步)和微调策略下的 Token-level 似然
    • 理解:这里是提前准备了一个保留集 \(\mathcal{Y}_{\text{pre} }\),这里面的样本可以认为都是比较好的,也就是正确的,如果在这些样本上,新策略有下降,则给与惩罚
  • 论文的基础正则化器仅惩罚在更新后似然降低的 Token(Likelihood-reducing tokens)
LLD 正则的三种变体
  • LLD: Token-level 似然保留 (LLD: Token-Level Likelihood Preservation)
    • LLD 应用一个 Token-level 惩罚 (token-level penalty) :
      • 在每个响应 \(\mathbf{y}_i\) 内,只有似然降低的 Token 对损失有贡献:
        $$
        L_{\text{LLD} }=\frac{1}{\sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } } \left| \mathbf{y}_i \right|} \sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } } \sum_{y_i \in \mathbf{y}_i} \underbrace{\max \left(0, \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right)}_{\text{Likelihood-reducing tokens} }
        $$
    • 这种 Token-level 选择性确保模型仅因真正有害的似然降低而受到惩罚,而不会干扰整体改善响应的更新
    • 理解:这是一种惩罚机制,也可以称为 正则(Regularization)
      • 在 保留集 \(\mathcal{Y}_{\text{pre} }\) 上
        • 当新策略的似然降低时,给与惩罚
        • 当新策略的似然提升时,不做任何处理
    • 但是:
      • 即使少数个别 Token 似然降低,某些响应可能在全局上仍是改善的;
      • 惩罚这种情况可能会引入过于强烈的约束
  • LLDS:响应级门控 (LLDS: Response-Level Gating),也是论文默认变体
    • 为了避免对全局改善的响应施加不必要的惩罚,LLDS 引入了响应级门控 (response-level gating) 机制:
      • 仅当响应的总似然降低时,惩罚才激活,LLDS 损失为:
        $$
        L_{\text{LLDS} }=\frac{1}{\sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } }|\mathbf{y}_i|} \sum_{\boldsymbol{y}_i \in \mathcal{Y}_{\text{pre} } } \underbrace{\mathbf{1} \left[ \sum_{\boldsymbol{y}_i \in \mathbf{y}_i} \left( \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right) > 0 \right]}_{\text{Activated only when sum} \gt {0} } \cdot \sum_{\boldsymbol{y}_i \in \mathbf{y}_i} \underbrace{\max \left(0, \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right)}_{\text{Likelihood Reducing Tokens} }
        $$
    • 这种结构保留了正常的 GRPO 学习,同时直接抑制了遭受 LLD 的响应
  • LLDS-MA:掩码答案 Token (LLDS-MA: Masking Answer Tokens)
    • 为了进一步鼓励多步推理和工具使用,论文将最终答案 Token 从正则项中 Mask 掉
    • LLDS-MA 仅对推理和工具交互 Token 上的似然降低进行惩罚,排除答案部分 \(\boldsymbol{y}_{i,\text{Ans} }\):
      $$
      \underbrace{\sum_{\boldsymbol{y}_i \in \mathbf{y}_i / \boldsymbol{y}_{i,\text{Ans} } } \max \left(0, \ln \pi_{\theta_{\text{old} } }(y_i|\mathbf{x},\mathbf{y}_{ < i}) - \ln \pi_{\theta}(y_i|\mathbf{y}_{ < i}) \right)}_{\text{Mask Answer Likelihood-reducing tokens}}
      $$
LLD 正则的使用形式
  • 最后,论文将正则化项集成到 GRPO 目标中 ,如下所示:
    $$
    L_{\text{total} } = L_{\text{GRPO} } + \lambda L_{\text{LLDS}(-\text{MA})}
    $$
    • 其中 \(\lambda\) 是正则化权重
  • 论文使用 LLDS 作为默认变体 ,当需要更强地鼓励工具使用时,切换到 LLDS-MA
    • 保留集 \([\mathbf{y}]_{\text{pre} }\) 包括所有具有非负优势 \(\hat{A} \geq 0\) 的响应,确保正确响应 (\(\hat{A} > 0\)) 和未训练的响应 (\(\hat{A} = 0\)) 不会遭受似然降低
    • \(\lambda\) 的影响在图 8 中进行了实证检验

Experiments and Analysis

  • 论文通过全面的实验评估了 \(L_{\text{LLDS}(-\text{MA})}\) 的实证有效性
  • 实验设置 (Experimental settings)
    • 对于训练,论文遵循 Jin 等 (2025) 的设置,并使用两个模型系列进行实验:Qwen-2.5-3B 和 Qwen-2.5-7B ,每个系列都有基础版和指令调优版变体 (2024)
    • 论文考虑两种训练配置
      • (1) 仅 NQ (单跳, NQ-Only (single-hop)): 模型仅在单跳 Natural Questions (NQ) 数据集 (2019) 上训练
      • (2) NQ+Hotpot (单跳+多跳, NQ+Hotpot (single-hop+multi-hop)): 模型在合并了 NQ 和 HotpotQA (2018) 的语料库上训练,提供更广泛的开域和多跳推理覆盖
    • 对于检索数据集,论文使用 2018 年维基百科转储 (2020) 作为知识库,并使用 E5 (2022) 作为密集检索器
    • 为了确保检索增强基线之间的公平比较,论文固定检索到的段落数量为三个,遵循 Jin 等 (2025) 的配置
    • 除非另有说明,论文使用与 Search-R1 (2025) 相同的优化超参数,唯一的修改是减少了最大回合限制:
      • 从 Search-R1 中的 4 回合降至仅 NQ 训练的 2 回合和 NQ+Hotpot 设置的 3 回合,以提高训练效率
      • 除非另有说明,正则化权重固定为 \(\lambda=0.1\)
  • 评估设置 (Evaluation settings)
    • 评估在七个数据集的验证集或测试集上进行,分类如下:
      • (1) 通用问答 (General Question Answering): NQ (2019), TriviaQA (2017), PopQA (2022)
      • (2) 多跳问答 (Multi-Hop Question Answering): HotpotQA (2018), 2WikiMultiHopQA (2020), Musique (2022), Bamboogle (2022)
    • 论文采用精确匹配作为主要评估指标,与 Jin 等 (2025) 中的协议一致
    • 这种多样性确保了在多种现实推理场景下对搜索引擎集成 LLM 性能的彻底检验

Experimental Results

  • 论文在七个公开领域域和多跳 QA 基准测试上评估了论文提出的 LLD 缓解策略,使用了两个模型家族:Qwen2.5-3B (基础版/指令版) 和 Qwen2.5-7B (基础版/指令版)
  • 表 1 和表 2 总结了所有设置下的 EM 性能
    • 由于普通 GRPO 训练经常崩溃并将奖励降至零,论文使用来自 Search-R1 Jin 等 (2025) 的结果(对应于崩溃前的最佳检查点)作为 GRPO 基线
Results on Qwen2.5-3B
  • 如表 1 所示,在仅 NQ 设置下,GRPO 的平均得分为 0.303
  • 加入 LLD 将性能提升至 0.321 (+5.9%),LLDS 进一步改进至 0.323 (+6.6%)。在更具挑战性的 NQ+Hotpot 设置下,LLDS 将普通 GRPO 得分从 0.312 提高到 0.360,相对增益 15.4%
  • 由于 LLDS 倾向于将基础模型限制为仅调用一次搜索,论文应用了多视角变体 LLDS-MA,它提供了最强的性能,平均得分为 0.430,相对于普通 GRPO 有 +37.8% 的显著提升率
  • 对于 Qwen2.5-3B-Instruct 也观察到类似的趋势:在仅 NQ 下,LLDS-MA 将性能提升至 0.381;在 NQ+Hotpot 设置下,LLDS 达到 0.419 (+24.7%)
Results on Qwen2.5-7B
  • 如表 2 所示,对于 Qwen2.5-7B-Base,应用 LLDS 带来了显著改进,在仅 NQ 上训练时平均得分达到 0.417,相对于在 NQ+Hotpot 上训练的 GRPO 基线有 19.1% 的相对增益
  • 当在 NQ+Hotpot 训练设置下应用 LLDS 时,性能从 0.350 提高到 0.462,对应更大的 32.0% 的改进
  • LLDS 在几乎所有单个数据集上也取得了最强结果,表明证据检索和多步推理能力得到增强
  • 对于 Qwen2.5-7B-Instruct,论文观察到类似的模式。在 NQ+Hotpot 训练设置下,LLDS 将平均得分从 0.396 提高到 0.469(改善 18.4%)
  • LLDS 在每个多跳 QA 基准测试上都取得了最佳性能,包括 2Wiki 的 0.473、Musique 的 0.443 和 Bamboogle 的 0.516
  • 这些结果突显了 LLDS(-MA) 作为一种稳定 GRPO 训练并显著增强多轮推理的有效方法

Ablation Study and Analysis

  • 响应级门控的影响 (Impact of response-level gating)
    • 应用响应级门控降低了训练期间应用的正则化强度,从而在多跳 QA 任务上带来了可测量的改进
    • 如表 1 所示,尽管平均性能仅小幅提高了 0.2%,但该方法在 Bamboogle 数据集上带来了 1.6% 的显著增益,突显了其在增强多跳推理方面的有效性
  • 仅 NQ 与 NQ+Hotpot 对比 (NQ vs. NQ+Hotpot)
    • 仅在 NQ 上训练的模型在开域单跳 QA 上表现强劲,但在泛化到多跳设置方面能力有限
    • 转向 NQ+Hotpot 能持续改进多步推理:例如,对于 Qwen2.5-3B-Base,GRPO 基线从仅 NQ 的 0.303 提高到 NQ+Hotpot 的 0.312,LLDS 在相同的转变下从 0.323 提高到 0.360。对于 Qwen2.5-7B-Base 也出现了类似的趋势,其中 LLDS 从仅 NQ 的 0.417 上升到 NQ+Hotpot 的 0.462
    • 这些增益表明,添加需要多轮推理才能正确回答并获得奖励的多跳 HotpotQA 问题,比仅在 NQ 上训练更能鼓励模型更有效地检索、整合和推理多个证据片段
  • 掩码答案 (MA) 的影响 (Impact of masking answer (MA))
    • 作者专门对模型变体应用了掩码答案,在这些变体中,普通 GRPO 和 LLDS 退化到仅发出一次搜索调用,限制了它们为多跳推理收集足够证据的能力
    • MA 在最终答案 Token 上禁用 LLDS 正则化,鼓励模型执行额外的搜索步骤或中间推理
    • 如表 1 所示,在 LLDS 之上添加 MA 为这些单搜索限制的模型带来了显著改进
    • 在 NQ+Hotpot 设置下,LLDS-MA 将 Qwen2.5-3B-Base 的平均得分从 LLDS 的 0.360 提高到 0.430,同样将仅 NQ 的指令版变体从 0.319 提高到 0.381
    • 这些增益表明,在底层 GRPO 策略未充分利用搜索动作的场景下,MA 能有效鼓励更深层次的多步推理
    • 更详细的分析见附录 B.3

Effect of LLDS on Training Stability across Models

  • 为了验证 GRPO 中训练崩溃问题的普遍性以及论文提出的解决方案的鲁棒性,论文将实验扩展到不同的模型规模和对齐阶段
  • 图 6 展示了 Qwen-2.5 3B 和 7B 模型(包括基础版和指令版)的训练奖励曲线
  • 如蓝色曲线所示,基线 GRPO 一致地在前 300 步内遭受灾难性崩溃,无论模型规模(3B 对 7B)或类型(基础版对指令版)如何
    • 这证实了不稳定性是算法的固有特征,而不是特定模型配置的产物
    • 相比之下,LLDS 的集成(红色曲线)有效地缓解了这个问题
  • 在所有四种场景中,使用 LLDS 训练的模型都保持了奖励的稳定上升轨迹,成功地避开了影响基线的崩溃点
    • 这表明 LLDS 是稳定 GRPO 训练的通用且有效的正则化器

More Discussion and Guideline

  • 基于论文对 LLD 的分析以及 LLD 死亡螺旋的出现,作者整合了几个稳定工具集成 GRPO 的实用指导原则
    • 每条建议都直接遵循论文研究中确定的核心故障机制

理解为何工具集成 GRPO 对 LLD 特别脆弱 (Understand why tool-integrated GRPO is uniquely vulnerable to LLD)**

  • 与自由形式的文本 RL 不同,工具增强的智能体引入了放大似然漂移的结构性条件
  • 首先,工具调用注入了固有的 OOD Token(例如搜索结果、API 输出或错误消息)
    • 它们与预训练的语言分布有显著差异
    • 这些 OOD 片段提高了 Token-level 不确定性,并使 GRPO 的相对更新更加不稳定,加速了似然位移的发生
  • 其次,基于工具的推理跨越多个 stages 展开,早期 stages(例如 Query 制定)比后期 stages(例如工具结果解释)更快稳定
    • 由于 GRPO 对所有 Token 应用单一标量奖励,那些在正确和错误轨迹间共享几乎相同前缀的早期 Token 会收到冲突的梯度信号
    • 这种 Reward-Token 错位对稳定前缀的危害不成比例,并放大了 LLD
    • 认识到这些结构性挑战对于诊断和缓解工具集成 RL 系统中的不稳定性至关重要

密切监控似然动态——仅靠奖励是不够的 (Closely monitor likelihood dynamics–reward alone is insufficient)**

  • 论文分析的一个核心见解是,似然退化在奖励出现任何可见下降之前很久就开始了
  • 在所有模型中,奖励在整个早期和稳态衰减 stages 持续上升,即使正确响应的似然已经向下漂移
    • 因为 GRPO 更新由似然比控制,这种早期退化会默默地放大梯度并引发不稳定性
    • 因此,仅监控奖励会掩盖 LLD 的发生
  • 在实践中,可靠的早期预警信号来自于跟踪 Action-level 和 Trajectory-level 对数似然,检查熵轨迹(一旦似然开始崩溃,熵会急剧飙升),以及关注指示梯度放大的似然比突然激增
    • 似然或熵曲线的可视化提供了训练接近不稳定机制的最早和最可靠的指示

补充:Related Work

  • 工具集成推理与智能体 LLMs (Tool-Integrated Reasoning and Agentic LLMs)
    • 工具使用已成为赋能 LLMs 具备自适应推理能力的一个强大范式
    • 早期方法依赖于基于提示的编排 (2023; 2023) 或多智能体委托框架来调用工具,而无需显式训练
    • 经过指令微调的模型 (2023; 2023) 后来通过监督学习引入了结构化的工具调用行为,但这些系统在很大程度上仍是静态的,并受限于单轮交互
    • 更近期的研究表明,强化学习可以通过使模型学习通过环境反馈和任务成功来掌握工具使用策略,从而显著增强工具集成
    • 诸如 RETool (2025)、VERL-Tool (2025) 和智能体 LLM 框架 (2025) 等显著系统通过动态工具使用、自我验证和纠错来支持多步推理
    • 这种从静态指令遵循到反馈驱动优化的转变在一系列领域被证明是有效的,包括结合代码执行的数学问题求解 (2025)、结合检索的开放域问答 (2025)、从自然语言生成 SQL (2025) 以及多模态视觉推理 (2024)

附录 A: 定理与证明

  • 在本节中,论文首先给出定理 4.2 的正式版本:
  • 定理 A.1 (工具集成 GRPO 中的 Trajectory-level LLD)
    • 考虑一个工具集成的轨迹,其中只有响应动作 \(\{\boldsymbol{y}_{t}\}_{t=0}^{T}\) 对似然度有贡献,工具反馈 Token \(\boldsymbol{o}_{t}\) 在似然计算期间被屏蔽,但仍保留在上下文中
    • 令 \(\pi_{\theta(s)}\) 表示训练时间 \(s\) 时的演化策略
    • ** Action-level 似然变化** :对于第 \(i\) 个正确响应的第 \(t\) 个动作,记作 \(\boldsymbol{y}_{i,t}^{+}\),其瞬时对数似然变化
      $$
      \frac{d}{ds} \ \ln\pi_{\theta(s)}\big(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}\big)
      $$
      • 随着以下量的增加而变得越来越懒惰甚至变为负值:
        $$
        \begin{align}
        \mathcal{G}_{i,t}(s)&=p^{-}\underbrace{\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|} \sum_{j=1}^{N^{-} }\sum_{t^{\prime}=0}^{T_{j} }\sum_{k^{\prime}=1}^{|\boldsymbol{y}_{j,t^{\prime} }^{-}|}\alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{j,< t^{\prime} }^{-},\boldsymbol{o}_{j,< t^{\prime} }^{-},\boldsymbol{y}_{j,t^{\prime},<k^{\prime} }^{-} } \right\rangle}_{\text{impact of negative gradients} } \\
        &-p^{+}\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|}\sum_{t^{\prime}=1}^{N^{+} }\sum_{t^{\prime\prime}=0}^{T_{t^{\prime} } }\sum_{k^{\prime\prime}=1}^{|\boldsymbol{y}_{i^{\prime},t^{\prime\prime} }^{+}|}\alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{o}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{y}_{i^{\prime},t^{\prime\prime},<k^{\prime\prime} }^{+} } \right\rangle.
        \end{align}
        \tag{8}
        $$
      • 其中 \(\alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-}\) 和 \(\alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+}\) 表示 Token-level 的预测误差相似性权重
    • ** Trajectory-level 似然变化** :对所有动作求和得到
      $$
      \frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{0:T} \mid \boldsymbol{x})=\sum_{t=0}^{T}\sum_{k=1}^{|\hat{\boldsymbol{y} }_{t}^{+}|}\frac{d}{ds}\ln\pi_{\theta(s)}(\hat{\boldsymbol{y} }_{t,k}^{+}|\cdot),
      $$
      • 每当发生下面的情况时,该值会变得懒惰或为负
        $$
        \sum_{t=0}^{T}\sum_{k=1}^{|\hat{\boldsymbol{y} }_{t}^{+}|}\mathcal{G}_{t,k}(s) \quad \text{is large.}
        $$
  • 如定理所示,两个核心因素放大了这种负梯度效应:
    • 1)不正确响应的低似然度 :
      • 模型分配低概率的负响应会产生更大的预测误差权重 \(\alpha_{i,k;t^{\prime},k^{\prime} }^{-}\),从而放大其影响
      • 在这种情况下,模型将这些低似然度错误解释为严重错误,导致其梯度获得不成比例的大规模缩放
    • 2)嵌入相似性 :
      • 当不正确响应与正确响应相似时,它们的前缀表示具有较大的内积,从而放大了负贡献
      • 这种高表征重叠意味着模型难以区分正确和错误的延续,导致负例将梯度推向有害方向并使模型缺乏信心

定理 A.1 的证明

  • 设置与屏蔽 :固定一个 Query \(\boldsymbol{x}\) 和一个正确响应索引 \(i\),并考虑 Feedback-masked 轨迹
    $$
    \hat{\boldsymbol{y} }_{i}^{+}=(\boldsymbol{y}_{i,0}^{+},\boldsymbol{o}_{i,0}^{+},\boldsymbol{y}_{i,1}^{+},\boldsymbol{o}_{i,1}^{+},\ldots,\boldsymbol{y}_{i,T_{i} }^{+}),
    $$
    • 其中只有动作 Token \(\{\boldsymbol{y}_{i,t}^{+}\}_{t=0}^{T_{i} }\) 对损失有贡献。工具反馈 \(\boldsymbol{o}\) 被排除在 GRPO 目标之外,但保留在条件上下文中。论文研究每个动作 \(\boldsymbol{y}_{i,t}^{+}\) 在演化策略 \(\pi_{\theta(s)}\) 下的对数似然变化:
      $$
      \frac{d}{ds}\ln\pi_{\theta(s)}\big(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}\big),
      $$
    • 然后对 \(t\) 进行聚合以获得 Trajectory-level 结果
  • 在 Action-level 简化为标准 GRPO :以前缀 \((\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+})\) 为条件,第 \(t\) 个动作 \(\boldsymbol{y}_{i,t}^{+}\) 以自回归方式生成:
    $$
    \pi_{\theta(s)}\big(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}\big)=\prod_{k=1}^{|\boldsymbol{y}_{i,t}^{+}|}\pi_{\theta(s)}\Big(\boldsymbol{y}_{i,t,k}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+}\Big).
    $$
    • 由于反馈 Token 仅在损失中被屏蔽,但仍出现在上下文中,因此工具集成训练(with feedback masking)的 GRPO 目标在函数形式上与应用于动作 Token序列的标准 GRPO 目标完全相同。因此,每一对
      $$
      (\text{question''},\text{response’’})=\big(\boldsymbol{x},\boldsymbol{y}_{i,t}^{+}\big),
      $$
    • 连同上下文 \((\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i, < t}^{+})\),都可以被视为非工具 GRPO 分析意义上的单个生成。因此,我们可以直接引用 Deng 等人 (2025) 的 GWHES 定理(定理 4.4),并将其应用于条件分布 \(\pi_{\theta(s)}(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i, < t}^{+},\boldsymbol{o}_{i,< t}^{+})\),从而得到以下 Action-level 结果
  • 定理 A.2 ( Action-level )
    • 对于任何 \(\boldsymbol{x}\)、任何时间 \(s \geq 0\) 以及任何正确响应 \(\boldsymbol{y}_{i}^{+}\),其第 \(t\) 个动作的似然变化,
      $$
      \frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{i,t}^{+} \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+}),
      $$
    • 随着
      $$
      \begin{align}
      \mathcal{G}_{i,t}(s)&=p^{-}\underbrace{\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|} \sum_{j=1}^{N^{-} }\sum_{t^{\prime}=0}^{T_{j} }\sum_{k^{\prime}=1}^{|\boldsymbol{y}_{j,t^{\prime} }^{-}|}\alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{j,< t^{\prime} }^{-},\boldsymbol{o}_{j,< t^{\prime} }^{-},\boldsymbol{y}_{j,t^{\prime},<k^{\prime} }^{-} } \right\rangle}_{\text{Impact of negative gradients.} } \\
      -p^{+}\sum_{k=0}^{|\boldsymbol{y}_{i,t}^{+}|}\sum_{t^{\prime}=1}^{N^{+} }\sum_{t^{\prime\prime}=0}^{T_{t^{\prime} } }\sum_{k^{\prime\prime}=1}^{|\boldsymbol{y}_{i^{\prime},t^{\prime\prime} }^{+}|}\alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+} \left\langle \mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+} },\mathbf{h}_{\boldsymbol{x},\boldsymbol{y}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{o}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{y}_{i^{\prime},t^{\prime\prime},<k^{\prime\prime} }^{+} } \right\rangle.
      \end{align}
      \tag{9}
      $$
    • 的增加而变得更懒惰(幅度更小,甚至可能为负),其中
      $$
      \alpha_{(i,t,k),(j,t^{\prime},k^{\prime})}^{-} = \left\langle \mathbf{e}_{y_{i,t,k}^{+} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+}),\mathbf{e}_{y_{j,t^{\prime},k^{\prime} }^{-} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{j,< t^{\prime} }^{-},\boldsymbol{o}_{j,< t^{\prime} }^{-},\boldsymbol{y}_{j,t^{\prime},<k^{\prime} }^{-}) \right\rangle
      $$
    • 且
      $$
      \alpha_{(i,t,k),(i^{\prime},t^{\prime\prime},k^{\prime\prime})}^{+} = \left\langle \mathbf{e}_{y_{i,t,k}^{+} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{i,< t}^{+},\boldsymbol{o}_{i,< t}^{+},\boldsymbol{y}_{i,t,<k}^{+}),\mathbf{e}_{y_{i^{\prime},t^{\prime\prime},k^{\prime\prime} }^{+} }-\pi_{\theta(s)}(\cdot \mid \boldsymbol{x},\boldsymbol{y}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{o}_{i^{\prime},< t^{\prime\prime} }^{+},\boldsymbol{y}_{i^{\prime},t^{\prime\prime},<k^{\prime\prime} }^{+}) \right\rangle
      $$
    • 是 Token-level 的预测误差相似性权重
  • ** Trajectory-level 作为动作的和** :工具集成轨迹的似然度在动作上分解:
    $$
    \pi_{\theta(s)}(\boldsymbol{y}_{0:T} \mid \boldsymbol{x})=\prod_{t=0}^{T}\pi_{\theta(s)}(\boldsymbol{y}_{t} \mid \boldsymbol{x},\boldsymbol{y}_{ < t},\boldsymbol{o}_{ < t}).
    $$
    • 取对数并对 \(s\) 求导,得到:
      $$
      \begin{align}
      \frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{0:T} \mid \boldsymbol{x}) = \sum_{t=0}^{T}\frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{t} \mid \boldsymbol{x},\boldsymbol{y}_{ < t},\boldsymbol{o}_{ < t}) \\
      = \sum_{t=0}^{T}\sum_{k=1}^{|\boldsymbol{y}_{t}^{+}|}\frac{d}{ds}\ln\pi_{\theta(s)}(\boldsymbol{y}_{t,k}^{+} \mid \cdot),
      \end{align}
      $$
    • 其中“\(\cdot\)”再次表示包含反馈 Token 的屏蔽上下文
    • 根据 Action-level 结果,随着 \(\mathcal{G}_{t,k}(s)\) 增大,求和中的每一项都会变得懒惰或为负,因此只要
      $$
      \sum_{t=0}^{T}\sum_{k=1}^{|\boldsymbol{y}_{t}^{+}|}\mathcal{G}_{t,k}(s)
      $$
    • 很大,整个 Trajectory-level 的导数就会变得懒惰或为负
    • 这确立了定理 A.1 中的 Trajectory-level 陈述

附录 B: 补充分析

Training Instability Prior to Collapse

  • 虽然最终的崩溃确实是由来自负响应的大梯度触发的,但在训练早期就已经出现了显著的不稳定性和明显的性能下降
  • 如图 7 所示,棕色垂直线标志着模型奖励(绿色曲线)的第一次急剧下降,在此期间正确响应的似然度也显著下降,尽管梯度范数仍然相对较小(约 2)
  • 随着训练的进行,LD 问题加剧,低置信度响应导致梯度范数稳步增长,最终导致模型崩溃
  • 这些观察结果表明,早在崩溃点之前就已经存在不稳定性,因此值得密切关注

Impact of Regularization Strength

  • 为了检查正则化强度的影响,论文对 \(\lambda \in \{0, 0.01, 0.1\}\) 进行消融实验,并在图 8 中绘制了相应的训练奖励动态
  • 如图所示,在没有正则化的情况下 (\(\lambda=0\)),模型在大约第 200 步崩溃
  • 较小的正则化值 (\(\lambda=0.01\),橙色曲线) 延迟但未能阻止崩溃,崩溃发生在大约第 220 步
  • 相比之下,更强的正则化 (\(\lambda=0.1\)) 完全稳定了训练,使模型能够平稳地继续而不崩溃
  • 为了清晰起见,论文在第 250 步截断了绘图,尽管训练可以远远超过这一点

Unlocking Multi-Step Reasoning via Answer Masking

  • 为了进一步探索 LLDS 在促进复杂推理行为方面的潜力,论文在 Qwen-2.5-3B-Base 模型上进行了关于正则化范围的消融研究
    • 论文从 \(L_{\text{LLDS} }\) 项的计算中屏蔽掉最终答案 Token (表示为“掩码答案”)
  • Qwen-2.5-3B-Base 本身缺乏多轮工具调用的能力
    • 如图 9 所示,这种限制在标准训练设置中是明显的:基线 GRPO(蓝色曲线)迅速遭受模型崩溃,有效搜索次数降至零
    • 虽然标准的 GRPO + LLDS(红色曲线)成功地稳定了训练并防止了崩溃,但它未能引发任何多步行为,搜索频率停滞在恰好 1.0
  • “GRPO + LLDS-MA”变体(绿色曲线)展示了一种独特的新兴行为
    • 通过移除对最终答案 Token 的正则化约束,论文观察到每个问题的有效搜索次数显著增加,上升到 2.0 以上
    • 这表明,放松对答案 Token 的惩罚有效地释放了模型参与多步推理和使用外部工具的潜在能力
      • 这是标准方法未能在基础模型中激活的能力

Qualitative Examples of Tool-Integrated Reasoning

  • 为了进一步说明论文训练模型的行为特征,论文展示了由 Qwen2.5-7B 系列生成的定性推理轨迹
  • 这些示例突显了使用论文的 LLD 正则化策略训练的模型如何在轨迹中表现出强大的多步规划、可控的工具使用和稳定的多轮推理
  • 与标准的 GRPO 模型(经常遭受过早崩溃)不同,论文的方法使模型能够在搜索、验证和最终答案生成的整个过程中保持连贯的推理结构
  • 如图 10 和图 11 所示,该模型不仅执行逐步分解和自我验证,还在需要时执行连续的搜索调用,有效整合检索到的证据,并产生正确、简洁的最终答案
  • 这些定性行为与论文的定量发现一致:稳定似然动态可以防止 LLD 死亡螺旋,使 RL 策略能够利用更深的工具集成推理而不会牺牲鲁棒性

附录 C 似然位移的案例研究

  • 为了更好地理解 LLD 如何在实践中体现,论文深入分析了两个有代表性的训练样本(对应于图 3(步骤 140)中受影响最严重的两个样本)
  • 对于每个问题,论文将 SEARCH-R1 策略生成的一个正确轨迹与一个不正确轨迹进行比较。这些配对示例使论文分析中的抽象机制变得具体

案例 1:Embedding similarity under group-relative updates

  • 图 12 和图 13 展示了问题“Who won the NRL grand final in 2015?”的两个推演过程
    • 两个轨迹使用了几乎相同的 <think> plans,发出语义等效的搜索 Query ,并检索到相同的 <information> 片段
    • 唯一的区别在于最终答案 Token :
      • 正确轨迹输出完整的实体“North Queensland Cowboys”
      • 不正确轨迹将名称截断为“North Queensland”
    • 由于 GRPO 为整个轨迹分配一个标量奖励,这两个高度相似的前缀接受了截然不同的更新:
      • 不正确的推演将负梯度推送到与正确推演在嵌入空间中几乎相同的 Token 上
    • 这说明了轨迹末尾的小语义偏差如何通过高前缀相似性,对原本正确的动作产生强烈的似然错位(likelihood displacement)

案例 2:Low-likelihood, longer incorrect trajectories

  • 图 14 和图 15 展示了“Who is the main character in green eggs and ham?”的推演过程
    • 在不正确的情况下,模型从一个长的、低似然度的 <think> 片段开始
    • 由于早期 Token 的似然度极小,采样漂移到分布的语义无意义区域,产生了一段冗长的无意义文本
    • 这也导致模型违反了工具协议,随后在 <information> 频道中触发了纠正性反馈
    • 尽管模型最终发出了有效的搜索,但它仍然产生了不正确的答案(“The first-person narrator”)
    • 这个轨迹比其对应的正确轨迹更长且似然度更低 ,导致 GRPO 为其分配了较大的负预测误差权重,并在多个 Token 上累积了许多负梯度的和
    • 相比之下,正确的轨迹保持简短且高置信度,执行单次搜索后给出正确答案“Sam-I-Am”
    • 总之,这些示例具体地展示了低似然度、过长的错误响应如何主导梯度并驱动 LLD 死亡螺旋,即使环境偶尔将模型推回有效的工具使用
      • 问题:将奖励或者梯度按照 Response 粒度做等价归一化是否能解决这种很长的错误回复主导梯度?

附录:提出 LLD 的第一篇文章

  • 原始论文地址:(LLD-NTHR)On the Effect of Negative Gradient in Group Relative Deep Reinforcement Optimization, 20250522, University of British Columbia & Vector Institute
    • 系论文同一作者 25 年 5 月 发表的文章(一作相同)

LLD(Lazy Likelihood Displacement)定义

  • LLD 是在基于组的策略优化(如 GRPO)训练过程中出现的一种现象:
    • 正确响应(\(y^+\))的似然(概率)仅轻微增加,甚至出现下降
    • 这一现象源于对错误响应中所有 tokens 的无差别惩罚
      • 由于正确响应与错误响应可能存在共享的结构或语义特征(如部分正确的推理步骤),对错误响应的整体惩罚会无意间降低正确响应的似然,导致模型性能受损
Definition 4.1
  • 设 \(\pi_{\theta_{init} }\) 为训练前的初始语言模型,\(\pi_{\theta_{fin} }\) 为经过偏好学习目标(如 GRPO 损失)优化后的最终模型(满足 \(J(\theta_{fin}) < J(\theta_{init})\))
    • 对于数据集 \(D\) 中的样本 \((x, y^+)\),若存在非负小常数 \(\epsilon \geq 0\),满足以下条件,则称发生 LLD:
      $$
      \ln \pi_{\theta_{fin} }(y^+ | x) < \ln \pi_{\theta_{init} }(y^+ | x) + \epsilon
      $$
    • 核心含义:训练后正确响应的对数似然增长不超过 \(\epsilon\)(或下降),即模型未能有效提升正确响应的生成概率

Theorem 4.4 与 Corollary 4.5

  • LLD 的本质是错误响应的负梯度对正确响应似然的抑制作用,具体源于:
    • 错误响应中部分 tokens 与正确响应的关键推理步骤具有高语义相似度(如“奇数”“质数”等正确术语出现在错误响应中);
    • GRPO 对错误响应的所有 tokens 施加相同强度的负梯度惩罚,导致这些“部分正确”的 tokens 被过度抑制,进而牵连正确响应的似然
  • 从理论上,正确响应 \(y_i^+\) 的似然变化率 \(\frac{d}{dt}\ln \pi_{\theta(t)}(y_i^+ | x)\) 受以下“组加权隐藏嵌入分数(GWHES)”影响:
    $$
    \underbrace{p^{-} \sum_{k=1}^{|y_i^+|} \sum_{j=1}^{N^-} \sum_{k’=1}^{|y_j^-|} \alpha_{k, k’}^{-} \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{j,<k’}^{-} }\right>}_{负梯度的负面影响} - \underbrace{p^{+} \sum_{k=1}^{|y_i^+|} \sum_{i’=1}^{N^+} \sum_{k’’=1}^{|y_{i’}^+|} \alpha_{k, k’’}^{+} \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{i’,<k’’}^+}\right>}_{正梯度的正面影响}
    $$
  • 符号说明:
    • \(p^+ = \frac{1-p}{\sqrt{p(1-p)} }\)、\(p^- = \frac{p}{\sqrt{p(1-p)} }\):正确/错误响应组的权重(\(p\) 为样本正确率)
    • \(N^+\)、\(N^-\):正确/错误响应的数量
    • \(h_{x, y_{i,< k}^+}\):正确响应 \(y_i^+\) 前 \(k-1\) 个 tokens 的隐藏嵌入
    • \(\alpha_{k, k’}^{-}\)、\(\alpha_{k, k’’}^{+}\):token 级预测误差相似度权重(量化不同响应间 tokens 的误差相关性)
  • 关键结论:当“负梯度的负面影响”大于“正梯度的正面影响”时,正确响应的似然增长变慢或下降,即发生 LLD

解决方案:NTHR(Negative Token Hidden Reward,负 Token 隐藏奖励)

NTHR 的定义
  • NTHR 是一种针对 LLD 的解决方案,核心是选择性 token 惩罚 :
    • 通过识别错误响应中对正确响应似然损害最大的 tokens,降低对这些 tokens 的惩罚强度,从而在不牺牲数据效率的前提下缓解 LLD
  • NTHR 核心思想是:
    • 错误响应中并非所有 tokens 都会导致 LLD,仅那些与正确响应关键步骤高度相关的 tokens(如部分正确的推理术语)才是主要诱因
    • NTHR 通过量化每个错误 token 对正确响应似然的负面影响,对这些“有害 tokens”进行针对性惩罚调整
NTHR 核心公式与步骤
  • NTHR 的实现分为 3 个关键步骤,涉及多个核心公式:
步骤 1:计算错误 token 对正确响应的影响(\(s_{j,< k’}^{-}\))
  • 对于错误响应 \(y_j^-\) 中的第 \(k’\) 个 token,定义其对所有正确响应似然的负面影响为:
    $$
    s_{j,<k’}^{-} := \sum_{i=1}^{N^+} \sum_{k=1}^{|y_i^+|} \alpha_{k, k’}^{-} \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{j,<k’}^{-} }\right>
    $$
  • 符号说明:
    • \(i\) 遍历所有正确响应,\(k\) 遍历正确响应 \(y_i^+\) 的所有 tokens;
    • \(\alpha_{k, k’}^{-}\):正确响应第 \(k\) 个 token 与错误响应第 \(k’\) 个 token 的预测误差相似度;
    • 该值越大,说明错误 token \(y_{j,k’}^{-}\) 对正确响应似然的抑制作用越强
步骤 2:确定惩罚调整的阈值(\(\tau\))
  • 阈值 \(\tau\) 基于正确响应间的“平均相互影响”设定,确保仅对损害最大的错误 tokens 进行调整:
    $$
    \tau = \beta \cdot \min_{i’ \in [N^+]} \bar{s}_{i’}^+
    $$
  • 其中,\(\bar{s}_{i’}^+\) 表示第 \(i’\) 个正确响应的 tokens 对其他所有正确响应似然的平均影响(即“正向相互作用强度”):
    $$
    \bar{s}_{i’}^+ := \frac{1}{|y_{i’}^+|} \sum_{k’’=1}^{|y_{i’}^+|} \sum_{i=1}^{N^+} \sum_{k=1}^{|y_i^+|} \alpha_{k, k’’}^+ \cdot \left<h_{x, y_{i,<k}^+}, h_{x, y_{i’,<k’’}^+}\right>
    $$
  • 符号说明:
    • \(\beta\) 为缩放因子(实验中默认 \(\beta=1\));
    • 核心逻辑:仅当错误 token 的影响 \(s_{j,< k’}^{-}\) 超过正确响应间的最小正向相互作用强度(\(\min_{i’} \bar{s}_{i’}^+\))时,才认为该 token 是 LLD 的主要诱因
步骤 3:选择性调整惩罚强度
  • 对于错误响应中满足 \(s_{j,< k’}^{-} > \tau\) 的 tokens(即“有害 tokens”),通过缩放因子 \(\eta < 1\) 降低其负梯度的惩罚强度:
    $$
    \hat{A}_{j, k’, \eta}^{-} := \eta \cdot \hat{A}_{j, k’}^{-}
    $$
  • 符号说明:
    • \(\hat{A}_{j, k’}^{-}\) 为错误 token 原始的优势函数值(负梯度的核心来源);
    • \(\eta\) 为惩罚衰减因子(实验中设为 \(\eta=2 \cdot |0.5 - p|\),\(p\) 为样本正确率);
    • 效果:降低“有害 tokens”的负梯度强度,避免其过度抑制正确响应的似然
NTHR 的优点
  • 针对性:仅调整错误响应中导致 LLD 的关键 tokens,而非丢弃整个错误样本(避免数据效率损失)
  • 兼容性:适配 GRPO 的在线学习范式,无需修改算法核心结构
  • 有效性:实验证明,在 0.5B~3B 参数模型的数学推理任务中,GRPO+NTHR 能持续缓解 LLD 并提升模型性能
NTHR 的缺点
  • 看起来实现较为复杂,且实操性较低

NLP——Interplay-of-Pre-Mid-Post-Training-on-LRM

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:On the Interplay of Pre-Training, Mid-Training, and RL on Reasoning Language Models, 20251208,
      • 预训练、 中期训练与强化学习在推理模型中的相互作用

Paper Summary

  • 整体介绍:
    • 论文提出了关于 Pre-training,Mid-training 和 Post-training 如何共同决定语言模型推理能力的受控研究
    • 论文仔细分离每个阶段的贡献,尝试阐明 RL 增强或未能增强推理泛化的因果机制
      • 论文的方法采用具有明确原子操作(atomic operations)、可解析的逐步推理轨迹以及对训练分布进行系统性操控的合成推理任务
    • 利用完全可控的合成推理任务和过程级评估,论文证明了:
      • 通过 Post-training 实现的真正的推理改进,只有在 Pre-training 阶段建立起关键的推理原始技能时才会出现
    • 评价:很实在的文章,对理解 LLM 的 各个训练阶段有较强的参考意义
  • 背景 & 问题提出:
    • RL 显著提升了语言模型的推理能力,但尚不清楚 Post-training 是否真正扩展了模型在 Pre-training 之外获得的推理能力
    • 一个核心挑战在于现代训练流程缺乏控制:
      • 大规模 Pre-training 语料库不透明, Mid-training 往往被忽视,而 RL 目标与未知的先验知识以复杂的方式相互作用
  • 本文的工作:
    • 为了澄清这一问题,论文建立了一个完全受控的实验框架,以分离 Pre-training 、 Mid-training 和 RL-based 的 Post Training 的因果贡献
  • 论文沿两个轴评估模型:
    • 向更复杂组合的外推泛化 (extrapolative generalization)
    • 跨越不同表面上下文的上下文泛化 (contextual generalization)
  • 利用此框架,论文调和了关于 RL 有效性的对立观点,研究表明:
    • 1)RL 仅在 Pre-training 留有足够提升空间且 RL 数据针对模型的能力边缘 (edge of competence)
      • 那些困难但尚未超出解决范围的任务边界时,才能产生真正的(genuine)能力提升 (pass@128)
    • 2)上下文泛化需要最小但充分的 Pre-training Exposure ,之后 RL 可以可靠地实现迁移
    • 3)在固定计算量下, Mid-training 显著提升了性能,证明了其在训练流程中核心但未被充分探索的作用
    • 4)过程级奖励减少了 Reward Hacking 并提高了推理的保真度
  • 图 1:大语言模型推理中 Pre-training 、 Mid-training 与 Post-training 阶段的相互作用
    • 左图:RL 仅在任务难度略超出 Pre-training 数据范围时,才能带来真正的外推性能提升;当任务已被 Pre-training 数据覆盖,或完全超出 Pre-training 数据分布(分布外程度过高)时,性能提升会消失(在参数校准良好的情况下,pass@128 最高可提升 42%)
      • 理解:从图中可以看出,在适当 OOD(OOD-mid)的任务上才出现了很好的性能提升,完全分布内(within Pre-training range)或者过于 OOD(OOD-hard)的任务上均不会带来提升
    • 中图:实现上下文泛化,需要模型在 Pre-training 阶段对长尾上下文具备最低限度但足够的接触量
      • 若 Pre-training 对长尾上下文的接触量接近零, RL 无法发挥作用;
      • 但只要存在稀疏接触(接触量 \(\ge 1%\)), RL 就能实现稳健的泛化,pass@128 最高可提升 60%
      • 理解:从图中可以看出,接触 10% 和接触 1% 的效果差距远远不如想象的大
    • 右图:在 Pre-training 与 RL 之间加入一个 “Mid-training” 阶段,能在计算资源固定的情况下显著提升 OOD 推理性能
      • 在困难分布外任务上,“Mid-training + RL” 的组合比单独使用 RL 的性能高出 10.8%

Introduction and Discussion

  • 最近的 RL 进展显著提升了语言模型的推理能力 (2025, 2025)
  • 但一个基本概念问题仍未解决:Post-training 是否真正扩展了模型在 Pre-training 之外获得的推理能力?
    • 文献中存在相互矛盾的观点:
      • 一些工作将 RL 描述为 capability refiner (2025, 2025, 2025, 2025)
      • 另一些则提供了超越 Pre-training 的实质性推理增益的证据 (2025, 2025, 2025)
  • 这种差异的主要来源在于先前的分析依赖于不受控的 (uncontrolled) 训练环境
    • 现代语言模型在大规模、不透明的互联网语料库上进行 Pre-training ,其构成本质上是未知的
    • As a result,论文无法确定 Base Model 已经内化了哪些推理原语 (reasoning primitives)
    • 这种控制的缺乏使得分离 Post Training 的因果效应以及理解 Pre-training 和 Post Training 如何共同塑造推理行为变得具有挑战性
  • Meanwhile,一个额外的阶段 Mid-training 最近已成为现代语言模型训练流程的关键组成部分 (2025, 2025)
    • 在一些文献中,Mid-training 阶段也被称为继续 Pre-training (Continued Pre-Training, CPT)
    • Mid-training 在广泛的 Pre-training 语料库和专门的 Post Training 目标之间充当了中间分布桥梁,扩展了模型的原子操作覆盖范围,并将其内部表征 (internal representations) 与 RL 阶段强调的任务对齐
    • As a result, Mid-training 在辩论中变得越来越核心:它可能解释了为什么 RL 有时能产生显著的泛化改进,而在其他设置中却失败 (2025)
    • 这激发了论文工作的核心问题:Pre-training 、 Mid-training 和 RL 在塑造语言模型的推理能力方面是如何相互作用的?
  • 本工作的目标是以受控的方式令人信服地回答这个问题,遵循该领域的先前工作 (2025, 2025, 2025)
    • Specifically,论文通过受控实验来厘清 Pre-training 、 Mid-training 和 RL-based 的 Post Training 如何单独及共同影响推理泛化
  • 为此,论文建立了一个完全受控的框架,以分离每个训练阶段的贡献。论文的设计基于三个原则:
    • (i) 完全可控的合成推理任务 (fully controllable synthetic reasoning tasks) ,具有明确的原子操作和由有向无环图定义的(DAG-defined)依赖结构;
    • (ii) 可观测、可解析的推理过程 (observable, parseable reasoning processes) ,支持过程级评估并减少奖励或评估欺骗 (reward/evaluation hacking);
    • (iii) 对 Pre-training / Mid-training / Post Training 分布的系统性操控 (systematic manipulation) ,以将因果效应归因于每个阶段
  • 论文沿两个关键维度评估推理:
    • 1)外推 (深度) 泛化 (Extrapolative (Depth) generalization) 评估模型是否能通过以更深的结构组合已学习的原语,解决比 Pre-training 中遇到的更复杂的问题
    • 2)上下文 (广度) 泛化 (Contextual (Breadth) generalization) 评估模型是否能在具有相同底层逻辑但 surface forms 不同的新颖上下文中迁移 (transfer) 其推理技能
    • 这两个轴共同捕捉了与现实世界语言模型相关的广泛的组合和迁移推理能力
  • 利用论文的受控框架,论文揭示了关于三个训练阶段如何相互作用的若干 insights:
    • Firstly ,关于 RL 是否真正改善 Base Model 推理能力的两种对立观点并不真正冲突
      • RL 仅在两个条件成立时才能产生真正的能力增益:
        • (i) 该任务在 Pre-training 期间未被大量覆盖,为 RL 探索留下了足够的提升空间
        • (ii) RL 数据被校准到模型的能力边缘 (edge of competence) ,既不太简单(in-domain)也不太困难(out-of-domain, OOD)
      • 当任一条件被违反时,RL 倾向于锐化(sharpen)现有能力而非真正改进
    • Secondly ,RL 激励上下文泛化仅当相关的原子操作或基础技能已存在于 Base Model 中
      • 如果对新的上下文没有最少的 Pre-training Exposure ,RL 无法产生迁移(induce transfer)
      • 但即使非常稀疏的覆盖率(例如,\(\ge 1%\))也能提供一个足够的“种子”,RL 随后可以稳固地强化它,产生强大的跨上下文泛化
    • Thirdly ,引入一个连接 Pre-training 和 Post Training 分布的 Mid-training 阶段,能在固定计算预算下显著增强分布内和分布外的性能,凸显了 Mid-training 作为训练设计中一个未被充分探索但强大的杠杆作用
    • Fourthly ,过程奖励 (process rewards) 减轻了 Reward Hacking 并提高了推理保真度
      • 将过程验证 (process verification) 纳入奖励函数,使强化信号与有效的推理行为对齐,从而在复杂的组合设置下带来准确性和泛化性的可衡量改进

Preliminaries

  • 本节介绍以下三个部分:
    • (a) 基于依赖图 (dependency graphs) 和上下文渲染 (contextual rendering) 的合成数据生成框架 (data generation framework) ,该框架指定了推理过程
    • (b) 用于外推和上下文泛化的任务设置 (task setup)
    • (c) 过程验证评估 (process-verified evaluation) 框架,该框架评估推理过程和最终答案的准确性
    • 这些组件共同使论文能够分离 Pre-training 、 Mid-training 和 Post Training 对推理泛化的不同影响

Controllable Synthetic Reasoning Dataset

  • 论文基于 GSM-Infinite (2025) 数据生成框架创建了一个测试平台,能够精确控制推理结构、复杂性和上下文
    • 图2:数据生成框架、任务设置和过程验证评估概览
      • 图2 描述了依赖图 \(\mathcal{G}\) 和上下文模板 \(\tau\),用于外推和上下文泛化的任务设置,以及检查推理步骤正确性的过程验证评估框架
  • Specifically,数据生成流水线(图2(a))涉及三个关键组件:
    • 依赖图 (Dependency Graphs).
      • 每个推理问题由一个有向无环图 (DAG) \(\mathcal{G}=(\mathcal{V},\mathcal{E})\) 表示,其中节点 \(v\in\mathcal{V}\) 对应变量,有向边 \(e\in\mathcal{E}\) 表示它们之间的依赖关系
        • 理解:每条边对应一次算数运算
      • 该图最终汇聚到一个指定的答案节点 \(v^{*}\),该节点产生最终答案 \(a^{*}\)
    • 推理复杂性控制 (Reasoning Complexity Control).
      • 论文通过算术运算的数量来量化图的复杂度:
        $$
        \text{op}(\mathcal{G})=|\mathcal{E}|,
        $$
      • 这控制了从基础算术到复杂多步推理的任务难度
    • 上下文渲染 (Contextual Rendering).
      • 给定一个预定义的上下文模板 \(\tau\)(例如,animals-zoo、teachers-school)及自然语言描述,论文将依赖图 \(\mathcal{G}\) 渲染成一个完整的数学问题
      • Finally,论文通过抽样不同的图 \(\mathcal{G}\) 和模板 \(\tau\),并将它们渲染为文本来生成多样化的数学问题
  • 论文采用此框架的动机在于三个主要优点:
    • 1)对训练阶段无污染的控制 (Contamination-free control over training phases)
      • 论文为 Pre-training 、 Mid-training 和 Post Training 指定了独立的数据分布以避免重叠
    • 2)对结构和上下文进行因子化控制 (Factorized control over structure and context)
      • 每个问题都从一个 DAG 生成,该图编码了推理结构和依赖关系,并在其上实例化了数值和上下文
    • 3)过程级验证 (Process-level verification)
      • 真实的 DAG 可作为验证中间步骤和防止错误推理的参考
      • 作者在附录 A.1 中提供了详细的公式和解释

Task Setup

  • 在现实世界部署中,语言模型通常需要沿两个互补的轴(complementary axes)进行推理泛化:
    • 外推 (深度) 泛化 (extrapolative (depth-wise) generalization)
    • 上下文 (广度) 泛化 (contextual (breadth-wise) generalization) (2025, 2025, 2025)
    • 论文的受控实验揭示了这两个维度(图2(b)),从而能够精确检验 Pre-training 、 Mid-training 和Post Training 如何影响每种类型的泛化
  • 外推 (深度) 泛化 (Extrapolative (Depth) Generalization).
    • 该维度评估模型在推理深度 \(\text{op}(\mathcal{G})\) 增加时保持正确性的能力 (2025)
    • 如果模型能够解决其操作链长度超出 Mid-training 遇到的问题,则表现出强大的外推泛化能力
  • 上下文 (广度) 泛化 (Contextual (Breadth) Generalization).
    • 该维度衡量模型是否能够将其推理原语(Reasoning primitives)迁移到 surface forms不同但具有相似底层推理结构(similar underlying reasoning structure)的新领域
    • 当模型的性能在模板或 surface forms 发生变化,底层计算图保持不变时 ,保持稳定,则认为该模型在上下文上实现了泛化
      • 理解:底层计算图不变则认为其底层推理结构没有变化,此时能够泛化则说明训练跳脱了具体的模版或 surface forms
  • 形式化符号、数据集构建以及泛化轴的完整定义见附录 A.2

Evaluation Protocol

  • 论文按照过程验证评估 (process-verified evaluation) 方案(图2(c))报告所有结果
  • 对于每个具有真实依赖图 \((\mathcal{G},a^{*})\) 的实例,模型生成一个自由形式的解决方案,作者将其解析为预测的依赖图 \(\hat{\mathcal{G} }\) 和最终答案 \(\hat{a}\)
  • 在每个真实节点 \(v\in\mathcal{V}\) 的 Step-level 进行过程评估
    • 通过比较预测节点与真实节点、它们的依赖关系以及数值 check 准确性
  • 过程准确率 (process accuracy) 定义为所有真实节点的平均 Step-level 准确率
    • 只有当推理步骤和最终答案都匹配时,预测才被视为完全正确
    • 所有 \(pass@k\) 指标(例如,\(pass@1\),\(pass@128\))均相对于此严格标准报告
    • 详细的实现和解析方法见附录 A.4

Training Setup

  • 论文使用 GSM-Infinite 框架生成的大规模合成推理数据集,训练了具有 100M 参数的 Decoder-only Qwen2.5-style (2025) 模型
  • 整个语料库包含 30B 个 token,涵盖了多个操作范围和上下文模板,并被划分为互不相交的 Pre-training 、 Mid-training 和 Post Training 子集,以避免分布污染
Pre-training
  • Pre-training 让模型接触多样化语料库以获取通用知识
  • 在论文的受控推理任务中,它侧重于使模型掌握论文合成数据集中算术运算的基础推理技能和规则
    • 重点是掌握基本推理原语,而非广泛的知识
  • Following Chinchilla Scaling (2022) and trends in data-rich regimes (2025),论文在 10B 个 token(参数的 100 倍)上 Pre-training 论文的 100M 参数模型
  • 数据集由跨模板的 op=2-10 操作组成,使模型能够掌握推理,同时为复杂任务保留提升空间
  • 模型在分布内任务上达到了接近饱和的 pass@128 准确率,确保在更深任务上的改进反映了真正的泛化
    • 理解:这里为什么要确保在 In-domain 任务上达到接近饱和才能在更深的任务上反应真正的泛化?
Mid-training
  • Mid-training 是 Pre-training 和 Post Training 之间的中间阶段,因其在改进下游微调和 RL 性能方面的作用而受到关注 (2025, 2025, 2025)
  • Mid-training 通常涉及使用更高质量或指令格式的数据,采用 Next-token prediction 或 SFT 目标
  • Mid-training 通过提供结构化的推理监督来稳定优化并促进 RL 扩展 ,弥合了广泛 Pre-training 语料库和面向奖励的 RL 数据之间的差距
  • 论文实现了精简版的 Mid-training ,保持与 Pre-training 相同的目标,但收窄数据分布使其与 RL 类似,此时模型展现出新兴(emerging)但不完整的能力(incomplete competence)
  • 通过将监督集中在此边界,目标加强 RL 可以放大的更高级别推理先验
    • 注:Mid-training 仅在 Section 5 中应用
Post Training
  • Post Training 在 Pre-training 之后,使用特定任务的数据或目标来精炼模型在特定任务上的性能
  • 通常涉及两种策略:
    • 1)SFT :在带标签的数据集或特定任务指令上进行训练;
    • 2)RL :模型通过接收其动作的奖励来进行优化
  • 由于论文的 Pre-training 数据已经是结构化且特定于任务的,所以主要关注 RL 进行 Post Training
  • 精心策划的 subset 上使用 GRPO (2025) 进行训练,这些 subset 旨在探究在更深操作范围和新颖模板中的泛化能力

When Does Post-Training Incentivize Reasoning Beyond the Base Model?(何时 Post Training 能激励超越 Base Model 的推理?)

  • 为了厘清 Pre-training 和 Post Training 对推理能力的贡献,论文分离了 RL 的具体影响
  • 提问:RL 是否以及何时能扩展 Base Model 在 Pre-training 之外获得的推理能力?
    • 通过固定 Pre-training 阶段并改变 Post Training 数据的难度和覆盖范围,论文确定了 RL 驱动真正的组合泛化而非仅仅放大现有技能的具体机制

Task Setting

  • 论文专注于外推泛化(在附录 A.6 中检查 Post Training 对上下文迁移的影响),根据操作计数定义三类问题(论文在附录 A.3.4 中说明了这种性能阶梯):
    • 分布内 (In-Distribution, ID) 问题(Pre-training 范围内,op=2-10);
    • 分布外-边缘 (OOD-edge) 问题(刚刚超出此范围,op=11-14), Base Model 在此保留非零的 pass@128 准确率;
    • 分布外-困难 (OOD-hard) 问题(显著超出 Pre-training 分布,op=15-20), Base Model 在此表现出接近零的准确率
      • 解决 OOD-hard 问题需要以新颖的方式组合从 ID 数据中学到的原子操作,以适应增加的推理深度
  • 实验设置如下:
    • Pre-training:
      • Base Model 在由 ID 问题组成的 10B 个 token 上进行 Pre-training
    • Post Training:
      • 论文应用 GRPO,使用来自四个不同难度范围的共 200K 个样本:op=7-10(ID)、op=9-12(混合)、op=11-14(边缘)和 op=17-20(困难)
  • 关于 Training Dynamics 和 Data Recipe 的更多信息,请参见 A.5 和 A.9

Summary 1

Observation 1
  • 如图 3 所示, Post Training 的效果对 Pre-training 和 Post Training 数据机制高度敏感:
    • (i) 对于 ID 任务(op=2-10),无论 RL 数据机制如何,在 pass@1 上有明显的性能提升,但在 pass@128 上没有改进,这表明 RL 只是锐化了现有能力而没有扩展它们
    • (ii) 然而,对于 OOD 任务(op=11-14 和 op=15-20),当应用于能力边缘 (edge of competence) 数据(op=11-14)时,RL 总是能提高 pass@128 性能,证明了超越 Pre-training 的真正的能力增益
  • 理解:图 3 展示了,如果使用太 OOD 的数据(op=17-20)来进行 RL 时,模型其实无法提升其在 OOD-hard(op=15-20)任务上的表现
Takeaway 1
  • RL 仅在两个条件成立时,才能在 Base Model 之外产生真正的能力增益 (pass@128):
    • (i) 该任务在 Pre-training 期间未被大量覆盖,为探索留有足够的提升空间;
    • (ii) RL 数据被校准到模型的能力边缘 (edge of competence) ,既不太简单(分布内)也不太困难(分布外)
Discussion 1
  • 与近期工作的关联 最近的研究关于 RL 是否能增强 Base Model 的推理能力报告了看似矛盾的结论
    • On the one hand,Zhao 等人 (2025),Yue 等人 (2025) 认为,当在数学和编码等 Pre-training 已充分覆盖的标准任务上评估时,RL* 并未* 改善 pass@128 准确率
    • On the other hand,在 Pre-training 覆盖率极低的合成任务上的研究 (2025, 2025, 2025) 报告了实质性的 Post Training 增益
  • 论文的受控设置通过表明这些结论源于Post Training 难度谱的不同区域而调和了这些发现
    • 对于 Base Model 已经解决的分布内任务,随着 pass@k 的增加性能趋于饱和,RL 没有优势
    • In contrast,当 RL 针对 Base Model 失败的真正分布外任务时,论文观察到清晰的外推改进(前提是 RL 数据位于模型的“能力边缘”附近)
Practical Guidance 1
  • 围绕模型的能力边缘 (edge of competence)设计 RL 数据
    • 作者建议过滤 RL 数据集以针对那些模型在 pass@1 上失败但在 pass@k 上成功的任务
    • 此策略避免了在高 pass@1 任务上的冗余,同时防止了在 pass@k 为 0 任务上的奖励稀疏
  • 这个过程也可以是迭代的:我们可以定期重新评估“能力边缘”任务池;
    • 随着模型变得更强,先前分布外的任务将漂移到可解区间,从而创建一个自然的、自定进度的课程

How Does Pre-training Exposure Shape Post-Training Generalization?(问题:Pre-training Exposure 如何塑造 Post Training 泛化?)

  • 在确定了 Post Training 激励泛化的条件之后,论文转向一个基础性问题:Pre-training Exposure 如何塑造 Post Training 泛化?
  • 作者假设,Pre-training Exposure 基础推理原语对于有效的 Post Training 泛化至关重要
  • 为了探讨这个问题,在固定的 RL Data Recipe 和设置下,论文改变 Pre-training 数据的分布,并检查其对 Post Training 泛化的影响

Task Setting

  • 论文专注于上下文泛化,即向长尾 (long-tailed) 的 Context B 泛化
    • 在 Pre-training 期间,作者操控模型接触包含原子推理原语(op=2 的示例)的长尾 Context B 的比例(关于简单上下文泛化和外推的实验分别在附录 A.6.1 和 A.7 中提供)
  • 论文的实验设置结构如下:
    • Pre-training : Base Model 在 10B 个 token 上进行 Pre-training
      • 这些 token 由 op=2-20 的 Context A 和 op=2 的长尾Context B 示例组成
        • 理解:这里的 Context A 和 Context B 分别表示不同领域的任务
      • 其中论文变化原子 op=2 示例相对于长尾 Context B 接触的比例
    • Post Training: 应用 RL 于 200K 个样本,这些样本由 50% Context A 和 50% Context B 组成,覆盖 op=2-20 的范围
  • 关于 Training Dynamics 和 Data Recipe 的更多细节,请参见附录 A.8 和 A.9

Summary 2

Observation 2
  • 如图 4 所示, Pre-training Exposure 长尾上下文对 Post Training 泛化的影响是巨大的:
    • (i) 当 Pre-training 排除 Context B 或提供零(0%)或极少接触(0.1%)时,RL 无法迁移到 Context B
    • (ii) 在 Pre-training 中引入即使是 1% 的 Context B 数据,也能显著增强 Post Training 泛化,甚至对于 op=20 的最困难任务也是如此
    • 这一观察强调,虽然 RL 在泛化中扮演着关键角色,但其有效性高度依赖于 Pre-training 数据的覆盖范围,特别是长尾上下文的包含
Takeaway 2
  • 仅当 Base Model 已包含必要的原子操作时,RL 激励上下文泛化(RL incentivizes contextual generalization only when the base model already contains the necessary primitives)
    • 如果没有对新上下文的最少 Pre-training Exposure ,RL 无法产生迁移
    • However,即使是稀疏的接触(例如,\(\ge 1%\))也提供了一个足够的“种子”,RL 可以在 Post Training 期间强化它,从而产生鲁棒的跨上下文泛化
Discussion 2
  • 复制还是创造(Replication or Creation)?
    • 论文在图 5 中检查了生成的正确 Context B 图与来自 Context A 的真实拓扑之间的拓扑相似性分布
    • 高相似性表明模型主要复制了现有的 Context A 推理模式,而低相似性则表明出现了与 Context A 不同的新颖推理结构
  • 论文观察到任务难度与 Pre-training Exposure 之间的效应:
    • 1)对于较简单的组合(op=2-10),模型倾向于复制来自 Context A 的现有模式
    • 2)随着任务复杂度增加(op=11-20),模型生成更多新颖结构,特别是在 Pre-training 期间充分接触 Context B 时
Practical Guidance 2
  • 在 Pre-training 中植入长尾原子操作以释放 RL 潜力(Seed long-tail primitives in pre-training to unlock RL potential)
    • RL 无法从虚无中合成能力;它需要潜在的“种子”来放大
    • However,这些种子不需要很复杂
  • 论文的结果表明,只要原子推理原语 (atomic reasoning primitives) 存在于 Pre-training 中,RL 就能成功外推到困难任务
  • 实践者应优先考虑广泛覆盖基本领域知识、规则和技能(大约 1% 的密度) ,而不是追求复杂的数据样本
  • 一旦这些基本原语建立起来,RL 就有效地充当了组合器,将它们组合起来解决复杂的分布外问题

How Does Mid-Training Interact with Post-Training?(Mid-training 与 Post-training 交互?)

  • 尽管 RL 能有效提升外推泛化能力,但其成功往往依赖于 Pre-training 阶段建立的表征先验
  • 近期工作 (2025a; 2025) 提出了 Mid-training 作为 Pre-training 和 Post-training 之间的中间阶段,旨在弥合数据分布并在下游适应前加强推理先验
  • 这引出了一个关键问题:在固定的计算预算下, Mid-training 和 RL 如何交互,以及两者之间怎样的平衡能带来最大的泛化收益?
    • 本节研究 Mid-training 与 Post-training 之间的协同作用,试图界定它们的交互如何驱动推理泛化
  • 计算预算公式化(Compute Budget Formulation)
    • 为公平比较,论文根据浮点运算将两个阶段的训练归一化为等效的训练 Token 数
    • 对于 Mid-training ,消耗量 \(T_{\text{mid} }\) 是处理的有监督 Token 数量
    • 对于 RL ,其 Token 等效成本近似为:
      $$
      T_{\text{RL} } \approx \frac{5}{3} N \cdot r \cdot L_{\text{total} },
      $$
      • \(N\) 是 RL 样本数
      • \(r=6\) 是轨迹生成次数
      • \(L_{\text{total} } = 2048\) 是总 Token 长度
      • 更多细节:Detailed budget derivation are provided in Appendix A.10.1
  • 论文系统地改变 RL 分配比例 \(\beta \in [0,1]\),以在总预算 \(T\) 的两个阶段之间进行分配:
    $$
    T_{\text{mid} } = (1 - \beta) \cdot T, \quad T_{\text{RL} } = \beta \cdot T.
    $$

Task Setting

  • 在本节中,论文使用在 10B 个 op=2-10 数据上 Pre-training 的相同 Base Model ,探索五种训练配置的性能:
    • 在 op=11-14 范围内的1B有监督 Token 上进行 完全 Mid-training
    • 在同一 op=11-14 范围内以批大小1024进行100步的完全 RL
    • 三种混合策略
      • Light RL(\(\beta=0.2\))
      • Medium-RL(\(\beta=0.5\))
      • 重度 RL(\(\beta=0.8\))
    • 这些策略在等效计算预算下平衡 Mid-training 和 RL
  • 第5节中的计算预算公式允许直接比较数据混合策略

Summary 3

Observation 3
  • 如图6所示,计算分配在整个泛化谱上引起了质的不同行为
    • (1) 在OOD-edge任务上,配置为完全 Mid-training 和 Light RL 的性能优于重度或完全 RL ,其中 Light RL 获得了最佳的 pass@1 性能
    • (2) 对于OOD-hard任务,将更多预算重新分配给重度 RL,可以显著提高在最难实例上的 pass@1 和 pass@128 性能
    • 图6:在外推任务上,不同中期和 Post-training 混合比例下的 pass@1 和 pass@128 性能
      • 用于中期和 Post-training 的数据应用于 OOD-edge 范围
      • 不同的线表示计算分配策略
      • 重度 RL 总是改进未见过的OOD-hard任务,而 Light RL 在OOD-edge任务上获得最佳的 pass@1 性能
  • 这些趋势表明,驱动探索的 RL 对于泛化到更难的任务是不可或缺的,但大量的 Mid-training 分配对于灌输 RL 可以有效利用的先验仍然至关重要
  • 论文进一步分析了不同计算预算的影响(附录A.10)
Takeaway 3
  • 引入一个连接 Pre-training 和 Post-training 分布的 Mid-training 阶段,在固定计算预算下能显著增强泛化能力
  • 这突显了 Mid-training 作为训练设计中未被充分探索但强大的杠杆
  • 计算分配应以任务感知的方式进行:
    • (i) 当优先考虑分布内性能时,将更多预算分配给 Mid-training ,仅辅以 Light RL
    • (ii) 为了获得分布外泛化能力,预留适中的计算部分用于 Mid-training 以建立必要先验,并将剩余预算投入到更重的 RL 探索中
Discussion 3
  • The Role of Mid-Training
  • 近期工作 (2025; 2025) 指出,像 Qwen (2025) 这样的模型对 RL 的响应远比对 LLaMA (2023) 等架构更有效
  • 一个趋同的解释是存在一个 Mid-training 阶段,该阶段的监督与 Post-training 分布更紧密地对齐
  • 面向推理的 Mid-training 已被证明能大幅提高模型的 RL 准备度
  • Wang等人 (2025) 发现,在结构化推理数据上进行 Mid-training 的 LLaMA 模型,其 RL 性能可与更强的 Qwen Base Model 相媲美,这表明 Mid-training 在很大程度上决定了下游 RL 的响应能力
  • Complementarily,Liu等人 (2025a) 表明, Mid-training 充当了分布桥梁,通过缩小 Pre-training 任务和 RL 任务之间的差距来减少遗忘并缓解适应
    • 这一视角进一步与Akter等人 (2025) 的预加载原则一致:更早地注入结构化推理监督提供了支架,后续训练阶段(包括 RL)可以有效地放大这个支架
  • Together,这些工作指向一个统一的结论:
    • Mid-training 是一个 strategically important component,它能使模型为稳定且样本高效的 RL 做好准备,从而实现超越仅仅是锐化现有能力的改进

      mid-training is a strategically important component that conditions models for stable and sample-efficient RL, enabling improvements that go beyond merely sharpening existing abilities.

Practical Guidance 3
  • 围绕互补优势平衡 Mid-training 和 Post-training (Balance mid-training and post-training around complementary strengths)
  • 通过将 Mid-training 视为安装先验(installing priors)的阶段、将 RL 视为扩展探索(scaling exploration)的阶段来设计训练流程
  • 对于 Mid-training ,策划位于模型“能力边缘(edge of competence)”的数据集,这能稳定 RL 所需的原始技能
  • 从业者应根据部署目标调整计算预算:
    • (1) 为了在类似任务(OOD-edge)上获得可靠性(reliability) ,将大部分计算分配给 Mid-training ,并使用 Light RL
    • (2) 为了在复杂任务(OOD-hard)上进行探索(exploration) ,为 Mid-training 分配适中的预算(仅足以建立先验),并将大量计算投入到 RL 探索中

Mitigating Reward Hacking via Process Supervision in Outcome Rewards(结果奖励中的过程监督减轻 Reward Hacking)

  • 使用基于结果的奖励进行 Post-training 已被证明能有效提高推理性能,但它仍然容易受到 Reward Hacking(a failure mode where 模型通过利用虚假捷径或通过无效推理链产生正确答案来实现高最终准确率)
  • Earlier,作者引入了过程验证(process verification)作为评估标准,只有当中间步骤和最终结果都正确时才奖励模型
  • 论文将这一原则扩展到奖励设计本身,并回答:过程感知的监督能否在保持泛化性能的同时减轻 Reward Hacking ?

Task Setting**

  • 为了鼓励模型不仅生成正确的最终答案,还要生成有效的中间推理步骤,论文使用过程级验证来增强结果奖励
  • 论文定义一个复合奖励函数:
    $$
    R = \alpha R_{\text{out} } + (1 - \alpha) R_{\text{pv} }.
    $$
    • \(R_{\text{out} }\) 表示传统的结果奖励(最终答案正确为1,否则为0),\(R_{\text{out} }\) 可能是稀疏的且容易受到结果 Reward Hacking
    • \(R_{\text{pv} }\) 表示由A.2节中定义的过程级准确率标准确定的过程验证奖励,\(R_{\text{pv} }\) 是一个反映每个推理步骤正确性的密集奖励
    • \(\alpha \in [0,1]\) 控制结果准确性和过程保真度之间的平衡
  • 论文还考虑一个更严格的公式:
    $$
    R =
    \begin{cases}
    R_{\text{out} }, & \text{If } R_{\text{pv} } = 1, \\
    0, & \text{Otherwise}.
    \end{cases}
    $$
    • 该公式仅在完整推理过程被验证为正确时才给予结果奖励
    • 此设置提供了过程级监督以减少 Reward Hacking
    • 在此奖励设置下,论文使用不同的奖励组合在 op=11-14 上进行 Post-training ,以评估不同程度的过程监督如何影响推理泛化

Summary 4

Observation 4
  • 如图7所示,整合过程验证显著提高了跨外推(op=15-20)设置的 pass@1 性能,提升了4-5%
    • 适度的奖励混合(\(0.2 R_{\text{out} } + 0.8 R_{\text{pv} }\))在结果准确性和推理一致性之间实现了最佳平衡
    • 严格的奖励(仅当 \(R_{\text{pv} }=1\) 时给予 \(R_{\text{out} }\))则进一步带来了显著的改进
  • 这些结果证实,过程级监督能有效减轻 Reward Hacking ,并鼓励忠实的推理行为
  • 图7:不同奖励组合下的 pass@k 性能
    • 每个条形对应一种不同的奖励混合策略
    • 将过程级信息整合到结果奖励中,在各个评估 Setting 中都带来了可衡量的性能提升

Related Work

推理大语言模型的 RL 泛化(RL Generalization of Reasoning LMs

  • RL 在 Deriving 大语言模型泛化中的作用一直是广泛讨论的主题
  • 近期工作对于 RL 是否能将推理能力扩展到 Base Model 能力之外提出了不同的看法,文献中出现了相互对立的观点
  • On the one hand,多项研究警告不要高估 RL 推动 Base Model 边界的能力
    • Yue 等人 (2025) 认为,虽然经过 RL 训练的模型在较小的 pass@k 值(例如 k=1)上可能优于 Base Model ,但随着 k 增加(例如 k=128),性能优势会减弱
      • 他们的覆盖率和困惑度分析表明,经过 RL 训练的模型的推理能力最终仍受限于 Base Model 的表征能力
    • Additionally,Wu等人 (2025) 提供了一个理论框架,断言 RL 无法超越 Base Model 固有的局限性,从而挑战了 RL 能够实现新的、可泛化的推理技能的观点
  • On the other hand,也有强有力的论据支持 RL 能够实现泛化,尤其是在 Base Model 表现不佳的任务上
    • Liu 等人 (2025b) 强调了 ProRL 在提高合成推理任务性能方面的成功,在这些任务中 Base Model 表现出显著的局限性
    • Sun 等人 (2025a, 2025b) 进一步支持了这一观点,提供了明确的证据表明 RL 有潜力为复杂的任务族引入新的策略
    • Yuan 等人 (2025) 提出了一个合成函数组合任务,证明经过 RL 训练的模型可以泛化到 Base Model 无法处理的未见过的函数组合
  • 论文通过提供实证证据表明这两种观点并不相互排斥,从而为这场持续的辩论做出了贡献
    • Instead,论文表明, RL 能够驱动泛化的条件是微妙且复杂的,它取决于 Base Model 的推理原始技能以及 RL 微调中使用的 Post-training 数据的性质

Understanding LMs via Controlled Experiments

  • 几项先前工作 (2025; 2025b; 2025a) 强调了受控实验在理解大语言模型能力方面的重要性
  • However,这类工作主要侧重于为后期 RL 设计的合成任务,这可能无法完全捕捉从 Pre-training 到 Post-training 的全谱推理任务的复杂性
  • 特别是在推理任务的背景下,受控设置允许研究人员分离特定因素,例如数据污染、随机猜测答案,以及控制不同训练阶段的推理原始技能
  • 论文基于Ye等人 (2024) 的工作设计受控实验,以合成 GSM-style 推理任务 (2021; 2024; 2025; 2025b),从而在这一工作基础上进行了扩展

附录 A.1 Data Generation Framework

  • 本节提供了整篇论文所使用的可控数据生成框架的正式细节:
    • (i) 每个推理实例背后的图级形式化定义
    • (ii) 将结构与数值和语言实例分离的抽象机制
    • (iii) 将图映射到自然语言问题的上下文渲染函数
    • (iv) 具体的生成流程和去重过程

附录 A.1.1 图级形式化定义(Graph-Level Formalism)

  • 每个推理实例都基于一个有向无环图(directed acyclic graph, DAG)建立:
    $$
    \mathcal{G}=(\mathcal{V},\mathcal{E}),
    $$
    • 其中每个节点 \(v_{i} \in \mathcal{V}\) 代表一个潜在量(例如,“成年狮子的数量”),每条有向边 \((v_{j} \to v_{i}) \in \mathcal{E}\) 编码一个函数依赖关系
    • 论文将依赖关系限制为基本算术运算:
      $$
      v_{i}=f_{i}\big((v_{j})_{j\in\text{pa}(i)}\big), \qquad f_{i} \in \{+,-,\times,\div\},
      $$
      • 其中 \(\text{pa}(i)\) 是节点 \(i\) 的父节点集合
  • 给定所有叶节点的数值赋值,论文递归地定义一个评估映射:
    $$
    \text{val}:\mathcal{V}\rightarrow\mathbb{R}
    $$
    • 其定义为:
      $$
      \text{val}(v_{i})=f_{i}\big(\{\text{val}(v_{j})\}_{j\in\text{pa}(i)}\big),
      $$
  • 基本情况由叶节点值给出,对于一个指定的查询节点 \(v^{*}\),真实答案为:
    $$
    a^{*}:=\text{val}(v^{*}).
    $$
  • 在论文所基于的 GSM-Infinite 实现 (2025a) 中,查询节点 \(v^{*}\) 对应:
    • 前向(forward) 生成器中拓扑顺序的最后一个数值节点,或
    • 方程风格逆向(equation-style reverse) 生成器中特定的未知参数
  • 贯穿全文(Throughout),DAG \(\mathcal{G}\) 被视为符号推理图,其结构在不同的数值实例化和语言实现之间共享
  • 推理复杂度(Reasoning Complexity). :论文通过算术运算的数量来量化实例的结构复杂度:
    $$
    \text{op}(\mathcal{G})=|\mathcal{E}|.
    $$
    • 这个量规定了计算 \(a^{*}\) 所需的最小组合推理链长度下限,也是论文研究外推(深度方向)泛化时变化的主要调控参数

附录 A.1.2 抽象参数与实例参数(Abstract and Instance Parameters)

  • 遵循 GSM-Infinite 的抽象机制,论文明确地将结构、数值实例化和语言上下文分离开
  • 抽象参数(Abstract Parameters).
    • 每个图 \(\mathcal{G}\) 关联着一组 抽象参数 ,这些参数:
      • 指定存在哪些变量以及它们如何分解(例如,“动物总数”分解为“狮子”和“大象”),以及
      • 确定边集 \(\mathcal{E}\) 和附加在每个节点上的操作 \(f_{i}\)
    • 这些参数定义了一个纯符号图,独立于具体的数字或实体
  • 实例参数(Instance Parameters).
    • 给定一个抽象图,实例参数用具体的值和实体对其进行实例化:
      • 对叶节点的数值赋值(例如,“有 12 头成年狮子和 7 头小象”),以及
      • 将变量绑定到特定上下文的表层形式(例如,“城市动物园里的成年狮子”)
    • 在同一抽象图上实例化不同的数值,会产生一系列结构相同、仅在具体数字上有所区别的问题
  • 隐式推理(Implicit Reasoning).
    • 并非所有的抽象依赖关系都需要在自然语言问题中明确表述
    • 对于给定的语言渲染,边集可以划分为:
      $$
      \mathcal{E}=\mathcal{E}_{\text{explicit} } \cup \mathcal{E}_{\text{implicit} }, \qquad \mathcal{E}_{\text{explicit} } \cap \mathcal{E}_{\text{implicit} } = \emptyset,
      $$
    • 其中 \((v_{j} \to v_{i}) \in \mathcal{E}_{\text{explicit} }\) 表示文本中直接陈述的关系(例如,“大象比狮子多 5 头”),而 \((v_{j} \to v_{i}) \in \mathcal{E}_{\text{implicit} }\) 表示属于真实推理图但从未直接表述的关系(例如,“动物总数等于狮子数加大象数”)。这种分离允许显式和隐式推理步骤共存于同一个底层图中,并使论文能够探究模型恢复未明言依赖关系的能力

附录 A.1.3 上下文渲染(Contextual Rendering)

  • 为了将符号图映射到自然语言问题,论文引入了上下文渲染函数:
    $$
    \Phi:(\mathcal{G},\tau)\mapsto x,
    $$
    • 其中 \(\tau \in \mathcal{T}\) 是一个上下文模板 ,而 \(x\) 是生成的文本实例
  • Templates
    • 一个模板 \(\tau\)(例如,animals-zoo、teachers-school、movie-festival)规定了:
      • 抽象变量如何词汇化为领域特定的表层形式(例如,“成年狮子”、“A班的学生”、“第1天售出的票”),以及
      • 哪些边的子集在措辞中被显式实现,从而决定了 \(\mathcal{E}_{\text{explicit} }\) 和 \(\mathcal{E}_{\text{implicit} }\) 之间的划分
    • 对于任何两个仅在表面上下文上不同的模板 \(\tau_{a},\tau_{b} \in \mathcal{T}\),它们引发的问题在结构上保持相同:
      $$
      \text{Struct}(\Phi(\mathcal{G},\tau_{a}))=\text{Struct}(\Phi(\mathcal{G},\tau_{b})), \quad \forall,\tau_{a},\tau_{b} \in \mathcal{T},
      $$
      • 尽管它们的表层实现、实体以及显式/隐式划分可能不同
      • Thus,一个单一的抽象图可以被渲染成语义不同但结构等价的问题,论文利用这一点来研究上下文(广度方向)泛化
  • Solution Format
    • 渲染函数生成一个三元组:
      $$
      x=(\text{[question]},\text{[solution]},\text{[answer]}),
      $$
      • [question] 是由符号图 \(\mathcal{G}\) 提出的问题的自然语言表示,通常包括对图中某个方面的查询(例如,“第1天卖出了多少张票?”)
        • 它抽象了底层结构,并为解答提供了上下文
      • [solution] 是一个遵循符号图 \(\mathcal{G}\) 拓扑顺序的逐步推导过程
        • 它包括中间推理步骤和图中元素之间的逻辑联系,最终导向最终答案。该解答明确展示了问题的每个部分是如何推导或计算的
      • [answer] 是对 [question] 中提出的查询的最终回应,通过 [solution] 过程推导得出
        • 它通常是一个数值或特定实体,用于回答问题
  • 这种结构确保了渲染输出既是人类可读的,又在逻辑上与底层符号图保持一致,在保持原始问题完整性的同时使其可以用自然语言表达

附录 A.1.4 生成流程与结构调控参数(Generation Pipeline and Structural Knobs)

  • 论文的数据生成器遵循一个阶段式过程,类似于 GSM-Infinite 的前向和反向生成器:
  • 1)结构采样(Structural sampling).
    • 论文首先采样定义依赖图的结构调控参数:
      • 针对 \(\mathrm{op}(\mathcal{G})\) 的目标运算计数范围;
      • 控制扇入和深度的图形形状参数(例如,允许的入度、分层模式);以及
      • 附加到节点上的操作类型 \(f_{i} \in \{+,-,\times,\div\}\)
    • 这些选择决定了一个具有唯一查询节点 \(v^{*}\) 的分层 DAG \(\mathcal{G}\)
  • 2)抽象与实例参数化(Abstract and instance parameterization).
    • 给定 \(\mathcal{G}\),论文采样抽象参数(变量角色和分解)和实例参数(叶节点的数值),并使用上面定义的评估映射 val 按拓扑顺序评估所有节点值
  • 3)上下文渲染(Contextual rendering).
    • 论文选择一个模板 \(\tau \in \mathcal{T}\) 并应用渲染函数 \(\Phi(\mathcal{G},\tau)\) 以获得一个自然语言三元组(问题、问题描述、解答),决定哪些依赖关系被语言化(显式)以及哪些保持隐式
  • 4)前向模式与反向模式(Forward vs. reverse modes).
    • 遵循 (2025a),论文支持两种生成模式:
      • 在 forward 模式中,论文生成一个标准的算术文字问题,其中查询的是拓扑顺序中的最后一个节点
      • 在 reverse 模式中,论文将一个节点视为未知数,并构建一个方程风格的问题,模型必须求解该量,而图中的其余部分则完全指定
  • 通过联合改变下面的两个维度,论文获得了一个用于研究深度扩展和上下文迁移的清晰二维测试平台:
    • (i) 运算计数 \(\mathrm{op}(\mathcal{G})\)
    • (ii) 模板 \(\tau\)
    • 相同的框架用于定义 Pre-training 、 Mid-training 和 Post Training 的不同数据分布,通过从 \((\mathrm{op}(\mathcal{G}),\tau)\)-Space 的不同区域采样来实现

附录 A.1.5 去重与规范化(Deduplication and Canonicalization)

  • 为了保证数据集的纯净性并避免训练和评估拆分之间的污染,作者在渲染三元组级别执行基于哈希的精确去重
  • 每个实例通过以下方式规范化:
    • 将三元组(问题描述、问题、解答)序列化为规范化的字符串表示(例如,去除多余空白、规范化数字格式),以及
    • 对此规范形式进行哈希以获取全局标识符
  • 论文丢弃任何拆分内和跨拆分的重复哈希值,确保相同的“问题-解答”三元组不会同时出现在训练和评估中

附录 A.2 Task Setup

  • 在实际部署中,语言模型(Language Models,LM)通常需要沿着两个互补的维度进行推理泛化 (2025; 2025b; 2025)
  • 论文的可控数据集使这些维度变得明确,并允许论文探究 Pre-training 、 Mid-training 和 Post Training 如何塑造每种类型的泛化
  • 符号表示(Notation).
    • 令 \(f_{\theta}^{\text{pre} }\)、\(f_{\theta}^{\text{mid} }\) 和 \(f_{\theta}^{\text{post} }\) 分别表示经过 Pre-training 、经过额外 Mid-training 和经过 Post Training(RL)的语言模型
    • 论文使用下面评估协议中定义的严格度量,将模型在由图 \(\mathcal{G}\) 在模板 \(\tau\) 下生成的实例上的正确性记为 \(\text{Correct}(f,\mathcal{G},\tau)\)
  • 外推(深度)泛化(Extrapolative (Depth) Generalization).
    • 论文用每个训练阶段 \(\phi \in \{\text{pre},\text{mid},\text{post}\}\) 所见的运算计数范围对其进行参数化
    • 令 \(\mathcal{O}_{\phi}\) 为阶段 \(\phi\) 训练分布中存在的 \(\text{op}(\mathcal{G})\) 值集合,并令:
      $$
      \mathcal{O}_{\text{train} }=\mathcal{O}_{\text{pre} }\cup\mathcal{O}_{\text{mid} }\cup\mathcal{O}_{\text{post} }.
      $$
    • 一个分布内评估条件使用满足 \(\text{op}(\mathcal{G}) \in \mathcal{O}_{\text{train} }\) 的图,而一个外推(分布外,OOD)条件评估满足以下条件的图:
      $$
      \text{op}(\mathcal{G})>\max\mathcal{O}_{\text{train} }.
      $$
    • 如果一个模型在这些更长、未见过的运算上保持高过程验证准确率,同时在分布内任务上保持稳定,则表明其具有外推泛化能力
    • 通过填充 \(\mathcal{O}_{\text{pre} }\)、\(\mathcal{O}_{\text{mid} }\) 和 \(\mathcal{O}_{\text{post} }\) 的不同难度范围,我们可以分离每个阶段对深度方向泛化的贡献
  • 上下文(广度)泛化(Contextual (Breadth) Generalization).
    • 一个固定的推理图 \(\mathcal{G}\) 可以在不同模板下被渲染成结构等价的实例:
      $$
      \text{Struct}(\Phi(\mathcal{G},\tau_{a}))=\text{Struct}(\Phi(\mathcal{G},\tau_{b})) \quad \text{in principle},
      $$
    • 论文的数据集在训练过程中是_随机采样_的,并未刻意在不同模板间对齐图
      • As a result, 大多数图在训练期间仅在一部分上下文中被观察到
    • 令 \(\mathcal{T}_{\phi}^{\text{train} }\) 表示训练阶段 \(\phi\) 中暴露的模板,\(\mathcal{T}^{\text{eval} }\) 表示更广泛的评估池,包括长尾模板
      • 如果一个模型在阶段 \(\phi\) 能够在叙事表层形式发生变化时保持推理性能,即使新的上下文在 Mid-training 从未遇到过,则该模型展现了上下文泛化:
        $$
        \text{Acc}(f_{\theta}^{\phi},\mathcal{G},\tau_{a})\approx\text{Acc}(f_{\theta}^{\phi},\mathcal{G},\tau_{b}),\qquad\tau_{b}\notin\mathcal{T}_{\phi}^{\text{train} }.
        $$
    • 在这种设置下,上下文泛化衡量的是模型是否学到了可迁移的 推理原语 ,而不是记住了任务风格,使其能够在已知、未见和长尾的叙事环境中应用相同的结构性推理

附录 A.3 Training Setup

附录 A.3.1 Model Architecture

  • 论文使用具有 100M 参数、 Decoder-only Qwen2.5 架构 (2025) 模型进行实验
  • 详细的架构配置如表 1 所示

附录 A.3.2 Tokenizer and Input Representation

  • 论文遵循《语言模型的物理学》(Physics of Language Models)系列 (Allen-Zhu, 2024; 2024),直接在合成推理语料库上训练一个字节对编码(BPE)分词器
  • 得到的分词表有 2,200 个 Token(包括 Special Token)
    • 所有问题、提问和解答都以最大序列长度 2,048 个 Token 进行分词
  • 问题:模型过小了,只有 100M,而且给出的 Token 长度限制也才 2K,不太够数学推理

附录 A.3.3 Hyperparameters

  • Pre-training.
    • 所有实验都从一个在论文可控推理语料库上从头开始训练的 100M 参数 Qwen2.5 模型开始,使用 \(100\times\) 的 token-to-parameter ratio, Pre-training 10B Token
    • 论文使用上下文长度 2048 Token ,批次大小 512K Token ,学习率 \(2\times 10^{-4}\),权重衰减 \(0.1\),余弦衰减,最小学习率 \(3\times 10^{-5}\),预热比例 \(5%\),并在语料库上训练一个 epoch
    • 所有模型都以 bf16 精度训练
  • Mid-training.
    • 从 Pre-training 检查点开始,论文在第 5 节执行了一个额外的可选课程学习
    • 论文使用最大序列长度 2,048 进行训练
    • 论文使用全局批次大小 512K Token ,学习率 \(1\times 10^{-4}\),权重衰减 \(0.1\),余弦衰减,最小学习率 \(3\times 10^{-5}\),以及更高的预热比例 \(15%\)
  • Post Training (Post-training).
    • 最后,论文使用 GRPO (2025) 进行 RL 微调
    • 论文使用全局批次大小 1,024 个样本,最大提示和响应长度 1024 Token ,训练两个 epoch
    • Actor 使用学习率 \(1\times 10^{-6}\),PPO 小批次大小 256,每个 GPU 的微批次大小 16,KL 正则化系数 \(10^{-3}\)(低方差 KL 惩罚),无熵奖励
    • 在 RL 回合采样期间,论文使用温度 \(T_{\text{RL} }=1.0\),top-\(p=1.0\),且无 top-\(k\) 截断(全核采样)进行采样
    • 对于离线评估和报告,论文使用温度 \(T_{\text{eval} }=0.7\),top-\(p=1.0\),top-\(k=-1\)(无截断)生成,每个问题最多生成 1,024 个新 Token

附录 A.3.4 性能阶梯(Performance Ladder)

  • 性能阶梯根据任务难度定义了三个关键级别:
    • 1)分布内任务(In-distribution tasks) (op=2-10): 目标是接近 100% 的 pass@128 准确率;
    • 2)OOD边缘任务(OOD-edge tasks) (op=11-14): 确保非零的 pass@128 性能;
    • 3)OOD困难任务(OOD-hard tasks) (op=15-20): 目标是零 pass@128 准确率,标志着模型的能力极限
  • Post Training 在能力边缘进行,确保模型能泛化到更难的任务
  • 图 9 显示了跨这些性能级别的 Training Dynamics 细分

附录 A.4 Process-Verified Evaluation

  • 给定一个具有真实图 \((\mathcal{G},a^{*})\) 的输入实例,模型生成一个自由形式的解答 \(s\)
  • 论文确定性地将 \(s\) 解析为预测的依赖图:
    $$
    \hat{\mathcal{G} }=(\hat{\mathcal{V} },\hat{\mathcal{E} },\widehat{\operatorname{val} }), \qquad \hat{a},
    $$
    • 其中 \(\hat{\mathcal{V} }\) 中的节点对应解答中命名的中间量,\(\hat{\mathcal{E} }\) 编码每个步骤依赖于哪些先前定义的量,\(\widehat{\operatorname{val} }\) 存储每个节点的推断数值,而 \(\hat{a}\) 是提取的最终答案
    • 解析器将解答分割为“定义 … 为 …”的步骤,从每个步骤使用的变量推断其依赖关系,并评估步骤中最后一个可计算的算术表达式(如果需要则回退到最后一个数字字面量)以获得数值。这产生了与 gold dependency graph 对齐的模型推理轨迹的图级表示
  • 令 gold graph 为下面的形式,具有节点集 \(\mathcal{V}\)、边集 \(\mathcal{E}\) 和值映射 \(\operatorname{val}\):
    $$
    \mathcal{G}=(\mathcal{V},\mathcal{E},\operatorname{val}), \qquad a^{*},
    $$
  • 论文在 Step-level 评估推理过程,对于每个黄金节点 \(v \in \mathcal{V}\),定义一个每步骤正确性指示器:
    $$
    s(v;\hat{\mathcal{G} },\mathcal{G})=\begin{cases}
    1, &\text{If } v \in \hat{\mathcal{V} },\ \operatorname{pa}_{\hat{\mathcal{G} } }(v)=\operatorname{pa}_{\mathcal{G} }(v),\ \text{and} \\
    &\operatorname{val}(v),\widehat{\operatorname{val} }(v) \ \text{are both defined and } \widehat{\operatorname{val} }(v)= \operatorname{val}(v),\
    0, &\text{otherwise},
    \end{cases}
    $$
    • 其中 \(\operatorname{pa}_{\mathcal{G} }(v)\) 和 \(\operatorname{pa}_{\hat{\mathcal{G} } }(v)\) 分别表示黄金图和预测图中 \(v\) 的父节点集(依赖关系)
    • 缺失节点、不正确的依赖集或不匹配的数值都会导致 \(s(v;\hat{\mathcal{G} },\mathcal{G})=0\)
  • 论文将预测推理轨迹的 过程准确率(process accuracy) 定义为所有黄金节点的平均 Step-level 准确率:
    $$
    \text{ProcessAcc}(\hat{\mathcal{G} };\mathcal{G})=\frac{1}{|\mathcal{V}|}\sum_{v\in\mathcal{V} }s(v;\hat{\mathcal{G} },\mathcal{G}).
    $$
    • 允许额外的预测节点 \(v \in \hat{\mathcal{V} } \setminus \mathcal{V}\),它们不影响过程准确率;它们对应于冗余但兼容的中间步骤
  • 只有当推理图和最终答案都匹配时,预测才被视为完全正确,论文通过验证正确性(verified correctness)来形式化这一点:
    $$
    \text{VerifiedCorrect}(\hat{a},\hat{\mathcal{G} };,a^{*},\mathcal{G})=\begin{cases}
    1, &\text{IF ProcessAcc}(\hat{\mathcal{G} };\mathcal{G})=1\text{ and }\hat{a}=a^{*},\
    0, &\text{otherwise}.
    \end{cases}
    $$
  • Accordingly,本工作中报告的所有 pass@k 指标(例如,pass@1、pass@128)仅当模型满足下面两个条件,才将样本视为正确
    • (i) 正确预测了每个黄金步骤( Step-level 过程准确率 = 1)
    • (ii) 产生了正确的最终答案时
    • 这个严格的标准确保报告的收益反映了真实、可靠的推理,而非偶然的正确性

附录 A.5 第 3 节的 Training Dynamics (Training Dynamics for § 3)

  • 本节详细分析了不同 Post Training 方法在外推泛化中的 Training Dynamics
  • 跨评估范围的负对数似然减少(NLL Reduction Across Evaluation Ranges).
    • 论文分析了第 3 节中使用的不同 Post Training 方法及其对各种评估运算范围的负对数似然减少的影响
  • 从图 10 我们可以观察到:
    • Post Training 持续减少了所有评估范围的负对数似然,其中在 op=11-14 范围内获得了最显著的增益
    • 这表明模型有效地学会了组合原子技能以处理更复杂的问题
  • Post-training Dynamics
    • 论文进一步研究了不同 Post Training 方法期间奖励动态的变化
    • 从图 11 论文观察到
      • 在与模型能力边缘对齐的任务(op=9-12 和 op=11-14)上进行 Post Training 会带来显著的奖励提升,表明学习有效
      • 相反,当任务太简单(op=7-10)或太难(op=17-20)时,奖励会趋于平稳,表明在这些机制下学习进展有限

附录 A.6:Detailed Analysis of Post-Training Effects on Contextual Generalization

  • 在本节中,论文将详细分析不同的 Post Training 数据方案在给定 Pre-training 阶段原子推理原语的情况下,如何影响对长尾上下文(long-tailed contexts)的上下文泛化

附录 A.6.1 当推理原语在 Pre-training 中共享时 (When Reasoning Primitives are Shared During Pre-Training)

  • 除了掌握基本的推理技能,模型泛化的一个重要维度在于上下文泛化 (contextual generalization) ,即跨不同问题上下文(例如变化的表面叙事或领域)迁移所学推理行为的能力
  • 在本节中,论文研究 Post Training 是否能激励模型将推理能力泛化到长尾 (long-tailed) 或在 Pre-training 中极少观察到的上下文
Task Setting
  • 论文研究两个不同的问题上下文:一个频繁的、规范的 Context A 和一个长尾的 Context B ,两者共享相同的基础推理先验(在论文的例子中是逻辑-算术推理,详细的上下文设置见附录 A.9)
  • Pre-training 语料由 99.9% 的 Context A(op=2-20)和仅 0.1% 的 Context B(op=2-20)组成
  • 在 Post Training 期间,论文在 200K 个样本中改变对 Context B 的暴露比例:0%、2%、10%、50% 和 100%
Summary 5
Observation 5
  • 当 Pre-training 中共享推理原语时, Post Training 期间对 Context B 的暴露程度与模型在 Context B 上的性能呈正相关
  • Notably,即使在 Post Training 期间完全没有暴露于 Context B(0%),模型仍能实现显著的迁移,这突显了共享原语在实现上下文泛化中的作用
Takeaway 5
  • 当原子原语被共享时, Post Training 可以激励模型向长尾上下文泛化
  • Remarkably,即使 Post Training 对 Context B 的暴露为 0%,模型也能实现实质性的迁移,这凸显了 Pre-training 阶段共享推理结构的关键作用
  • 图 12:
    • 经过 Post Training (对 Context B 的暴露比例不同)后,在上下文泛化任务上的 pass@k 性能
    • 当 Pre-training 中共享推理原语时,即使在后续 Mid-training 对 Context B 的暴露有限或为零,模型也表现出向 Context B 的强迁移能力

附录 A.6.2 当 Pre-training 中仅暴露原子原语时 (When Only Atomic Primitives are Exposed During Pre-Training)

  • 本节研究当 Base Model 在 Pre-training 中仅暴露于长尾上下文的基本原子原语(basic atomic primitives)时的上下文泛化
Task Setting
  • 使用与上述相同的上下文数据分布,论文在 Pre-training 期间将 Context B 的数据限制为仅包含原子操作,而 Context A 则覆盖全范围操作
  • Pre-training 语料由 99% 的 Context A(op=2-20)和仅 1% 的 Context B 组成,且 Context B 仅限于原子操作(op=2)
    • Thus,模型主要通过 Context A 学习推理结构,而对 Context B 的 surface forms 仅有极少的暴露
    • 在 Post Training 期间,论文使用 200K 个样本进行 RL 微调,其中 Context B 数据的比例在五个方案中变化:0%、1%、10%、50% 和 100%
    • 详细的数据方案见附录 A.9
  • 如图 13 所示:
    • 仅在 Context A 上进行 Post Training 或对 Context B 的暴露极其稀疏(0-1%)时,模型在 Context A 内保持强劲性能,但对长尾 Context B 的迁移极小
      • 理解:这里的 1% 和前面提到的 1% 覆盖是不同的,不然就矛盾了
    • However,一旦引入少量 Context B 数据(约占总体样本的 10%)Context B 的性能急剧提升,pass@128 准确率增加超过 +76 点
    • 进一步增加 Context B 数据的比例(50%、100%)带来的增益递减,表明一旦提供了最小的监督,RL 就能快速建立起稳健的跨上下文推理
    • Notably,即使 Post Training 使用100% Context B 数据(与主要的 Pre-training 上下文完全不同)模型在 Context A 上的性能仍然保持稳定
      • 这表明 RL 使模型能够学习可迁移的推理策略,这些策略可以跨 surface forms 进行扩展,同时保留在先前已掌握上下文中的能力
      • 理解:这里再次说明了 RL 的训练过程是很少发生灾难性遗忘的
  • 图 13:
    • Base Model 在 Context B 仅限于基础原子操作时的 pass@k 性能
    • 仅在 Context A 上进行 Post Training 能保持稳定性能,而在 RL 中引入 10% 的 Context B 数据则能实现上下文迁移

A.6.3 Training Dynamics for § A.6.2

  • 本节绘制了 § A.6.2 中使用的不同数据方案下的 Post Training 奖励动态,以进一步理解 RL 期间对长尾上下文的暴露程度变化如何影响学习进展
  • 从图 14 中我们可以观察到
    • 当 Post Training 期间对 Context B 的暴露极其有限(0-1%)时,奖励趋于平稳,表明学习进展甚微
    • 然而,在适度暴露(10-100%)下,奖励显著提升,反映了有效的学习和对长尾上下文的迁移
  • 图 14:
    • 不同 Post Training 数据方案下的奖励动态
    • 当 RL 对 Context B 的暴露极其有限(0-1%)时,奖励停滞不前
    • 然而,在适度暴露(10-100%)下,奖励显著提升,反映了有效的学习和迁移

附录 A.7 Detailed Analysis of Pre-Training Effects on Extrapolative Generalization**

  • Pre-training 定义了 Post Training 后期可以组合和扩展的原子推理原语
    • 如果 Base Model 在 Pre-training 期间已经遇到中等复杂的问题, Post Training 可能会将这些原语推向更深层的组合推理
    • Otherwise,Post Training 可能缺乏超越其继承能力范围的探索支架
    • 因此,作者研究不同的 Pre-training 难度如何影响后续的外推泛化

Task Setting

  • 论文将 Post Training 方案固定为来自 op=11-14 范围的 200K 个样本,先前已确定此范围为能力边缘(见图 3)
  • 然后改变 Pre-training 期间包含的“困难”数据(op=7-10)的比例,以评估对复杂原语的暴露如何影响 Base Model 在 RL 后的泛化能力
    • (详见附录 A.9 的数据方案)

Summary 7

Observation 7
  • 如图 15 所示
    • 在 Pre-training 中更多地暴露于困难问题,持续地提升了基础和经过 Post Training 的性能
    • However,来自 RL 的边际增益随着 Pre-training 变得更全面而减小
    • 当 Pre-training 已经覆盖了相当一部分中等深度任务时,RL 仅带来适度的改进
    • By contrast,当 Pre-training 包含有限但非平凡的困难原语暴露(例如,20% 的 op=7-10 数据)时,RL 产生了最大的相对提升(将 op=15-20 上的 pass@128 准确率提高了超过 +22 点)
      • 这表明,当模型的先验能力是部分的时候,足够强以支持探索,但又足够不完整以留有发现空间,RL 是最有效的
  • 图 15:在 Pre-training 期间不同困难数据暴露水平下, Post Training (op=11-14)后在外推任务上的 pass@128 性能
Takeaway 7
  • Pre-training 奠定基础,RL 对其进行扩展
    • 在 Pre-training 期间丰富地暴露于组合原语,使 RL 能够将推理深度推到超出 Pre-training 范围
    • 但一旦这些原语被完全掌握,RL 的益处就会逐渐减少,这突显了两个阶段的互补作用

附录 A.7.1:第 A.7 节的 Training Dynamics (Training Dynamics for § A.7)

  • 论文分析了在不同 Pre-training 数据方案下 Post Training 期间的 Training Dynamics
  • 图 16:不同 Pre-training 数据方案下的奖励动态
    • 在 Pre-training 期间有适度困难数据暴露(20-50%)的模型在 Post Training 期间表现出显著的奖励提升,表明有效的学习和外推
    • In contrast,困难数据暴露过少(0%)或过多(100%)的模型显示出有限的奖励增益,表明学习进展受限

附录 A.8:Training Dynamics for § 4

  • 本节分析了 § 4 中上下文泛化的不同 Pre-training 数据方案的 Training Dynamics
  • 从图 17 中观察到
    • 在 Pre-training 期间对长尾上下文(即使是基础原子)的适度暴露比例,对于模型在 Post Training 期间实现显著的奖励提升是必要的
  • 图 17:不同 Pre-training 数据方案下的奖励动态
    • 对长尾上下文暴露最少的模型在 Post Training 期间没有奖励提升
    • 而对长尾上下文有中等至完全暴露的模型则显示出显著的奖励提升,表明有效的学习和上下文泛化

附录 A.9:Post-Training and Pre-Training Data Recipe

  • 本节详述了在 § 3、§ 4、§ A.6.1、§ A.6.2 和 § A.7 中使用的数据方案。表 2 总结了在不同实验部分中使用的具体操作计数范围、上下文模板和训练预算
  • 表 2:§ 3、§ 4、§ A.6.1、§ A.6.2 和 § A.7 中 Pre-training / Post Training 实验的数据方案
    • op(\(\mathcal{G}\)) 范围表示每个训练阶段的操作计数
    • Context A、B、C 对应于不同的模板:A = animals–zoo, B = teachers–school, C = movie-festival
    • 不同操作范围和上下文的数据方案均在指定比例内均匀采样
    • 阴影单元格表示消融设置

附录 A.10:不同计算预算下的 Mid-training / Post Training 混合 (Mid-/Post-Training Mixing with Different Computation Budget)

  • 本节首先详述 Mid-training 和 RL 等价的计算预算公式,然后提供在不同总计算预算下组合 Mid-training 和 Post Training 的确切数据方案

附录 A.10.1 Mid-training 与 RL 等价的计算预算 (Compute Budget of Mid-Training and RL Equivalence)

  • 训练计算量 (Training Computation)
    • 根据 Chinchilla 缩放定律 (2022),一个具有 P 个非嵌入参数的 Decoder-only Transformer,在 T 个 Token 上训练消耗的计算量大约为:
      $$
      C_{\text{train} } \approx 6P T \quad \text{flops}
      $$
    • Thus,预算为 \(T_{\text{mid} }\) 的 Mid-training 阶段消耗
      $$ C_{\text{mid} } = 6P T_{\text{mid} } \quad \text{flops}$$
  • 细粒度 RL 计算量 (Fine-Grained RL Computation)
    • 对于 On-policy GRPO,计算可以分解为:
      • Rollout: Actor 模型前向传播(2P),
      • Reference(可选): 参考模型前向传播(2P),
      • Policy Update 前向传播(2P)和后向传播(4P)
    • 求和这些项得到:
      $$
      C_{\text{RL} } = (8 + 2\gamma)P N r L_{\text{total} },
      $$
      • 其中 \(\gamma \in \{0,1\}\) 切换参考模型的前向传播,\(N\) 是 RL 样本数,\(r\) 是 Rollout 大小,\(L_{\text{total} }\) 是总序列长度(包括提示和补全)
  • Mid-training Token 等价 (Mid-training Token Equivalence)
    • 通过方程 4 归一化得到等价的 Mid-training Token 成本:
      $$
      T_{\text{RL} } = \frac{C_{\text{RL} } }{6P} = \left(\frac{4}{3} + \frac{\gamma}{3}\right) N r L_{\text{total} }
      $$
    • 当 \(\gamma = 1\) 时,论文得到正文中使用的等价关系:
      $$
      \boxed{T_{\text{RL} } = \frac{5}{3} N r L_{\text{total} } }
      $$
  • 预算分配与步数计算 (Budget Allocation and Step Calculation)
    • 给定总预算 T 和 RL 比率 \(\beta\),
      $$
      T_{\text{mid} } = (1-\beta) \cdot T, \qquad T_{\text{RL,eq} } = \beta \cdot T
      $$
    • 相应的 RL 样本数 \(N(\beta)\) 和更新步数为:
      $$
      N(\beta) = \frac{3}{5} \cdot \frac{\beta T}{r L_{\text{total} } }, \qquad \text{steps}_{\text{RL} }(\beta) = \frac{N(\beta)}{B},
      $$
      • 其中 \(r = 6\) 是 Rollout 大小,\(L_{\text{total} } = 2048\) 是总序列长度,\(B = 1024\) 是 RL 批次大小,T 是总 Token 预算
    • Mid-training 的步数为:
      $$
      \text{steps}_{\text{mid} }(\beta) = \frac{T_{\text{mid} } }{B_{\text{mid} } \cdot L_{\text{mid} } },
      $$
    • 其中 \(B_{\text{mid} } = 512 \times 1024\) 是 Mid-training 的批次大小,\(L_{\text{mid} } = 2048\) 是 Mid-training 的序列长度
Task Setting
  • 论文使用 10B Token 进行 Pre-training ,其中 20% op=2-4,30% op=5-7,50% op=8-10
  • 为避免 Mid-training 期间的灾难性遗忘,论文在 Mid-training 期间使用 20% 的预算用于 op=2-10,80% 用于 op=11-14。为公平比较,RL 使用与 Mid-training 相同的数据分布进行。表 3 详述了在不同总 Token 预算 T 和 Mid-training 比率 p 下, Mid-training 和 RL 的确切步数。论文在不同的总计算预算下,使用完全 Mid-training (Full mid-training)、完全 RL (Full RL)、 Light RL (\(\beta=0.2\))、Medium-RL (\(\beta=0.5\)) 和Heavy-RL (\(\beta=0.8\)) 进行中/ Post Training
Summary 8
Observation 8
  • 如图 18 所示
    • 在所有计算预算下
      • Light RL 取得了最佳的 OOD-edge pass@1 性能
      • Heavy-RL 始终获得最高的 OOD-hard pass@1 性能
    • 对于 pass@128,当计算预算有限(4.2B Token)时,Heavy-RL 在 OOD-hard 设置中取得最佳性能
    • 当预算增加(8.4B Token 及以上)时,完全 RL 达到最高的 OOD-hard pass@128 性能
  • 图 18:不同总计算预算下, Mid-training 和 RL 混合比率对应的 pass@k 性能
Takeaway 8
  • Mid-training 和 Post Training 在不同的计算预算下互为补充
    • 对于 pass@1 任务, Mid-training 和 RL, Post Training 的组合始终优于任一单独的方法
    • 对于 pass@128,最优的 Post Training 分配取决于可用的计算预算:
      • 在资源有限的情况下,将大约 80% 分配给 RL 能在稳定性和探索性之间取得平衡;
      • 在计算量更充足时,完全 RL 能最大化外推增益
  • 表 3:不同计算预算规模下的实验配置
    • 将 Mid-training 的批次大小固定为 512K Token
    • 表 3 将总 Token 预算 T 映射到纯 Mid-training (p=1.0)、纯 RL(p=0.0)和混合拆分所需的特定步数

NLP——LLM对齐微调-GRPO

注:许多论文中没有使用粗体来表示多个 Token 组成的序列(比如 Question \(\mathbf{q}\)),为了方便理解,本文会尽量可以在一些地方使用粗体
注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(GRPO)DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
    • 博客:为什么GRPO训练开始时,Loss函数为0,并且不降反增?
    • 博客:Deepseek的RL算法GRPO解读

GRPO

  • Group Relative Policy Optimization, 简称 GRPO,一种用于在 LLM 中替代近端策略优化 PPO(Proximal Policy Optimization)的方法,可以理解为 PPO 的一种简化形式
  • GRPO 相对 PPO 的核心改进点包括:
    • 去除 Critic 网络,转而使用批量采样的样本均值和方差做归一化
    • 将 PPO 奖励中的 KL 散度移除,并直接加到训练的目标函数中

从 PPO 到 GRPO

  • PPO是一种广泛用于LLMs强化学习微调阶段的Actor-Critic算法。具体来说,它通过最大化以下替代目标来优化LLMs:
    $$
    \mathcal{J}_{\textit{PPO}}(\theta)=\mathbb{E}_{q\sim P(Q),o\sim\pi_{\theta_{old}}(O|q)}\frac{1}{|o|}\sum_{t=1}^{|o|}\min\left[\frac{\pi_{\theta}(o_ {t}|q,o_{<t})}{\pi_{\theta_{old}}(o_{t}|q,o_{<t})}A_{t},\textrm{clip}\left( \frac{\pi_{\theta}(o_{t}|q,o_{<t})}{\pi_{\theta_{old}}(o_{t}|q,o_{<t})},1-\epsilon ,1+\epsilon\right)A_{t}\right],
    $$

    • \(\pi_{\theta}\) 和 \(\pi_{\theta_{old}}\) 分别是当前和旧策略模型
    • \(q,o\) 是从问题数据集和旧策略 \(\pi_{\theta_{old}}\) 中采样的问题和输出
    • \(\epsilon\) 是PPO中用于稳定训练的剪裁相关超参数
    • \(A_{t}\) 是优势函数 \(A^{\pi_\text{old}}_t\) 的简写,通过 GAE 计算,基于奖励 \(\{r_{\geq t}\}\) 和学习到的价值函数 \(V_{\psi}\)
      • 注:一般实现时,只有最后一步 token 会有 Reward 反馈,其他位置 Reward 都是 0 ,通过折扣奖励的方式可以计算每个 token 对应 GAE
  • 在 PPO 中,需要训练一个价值函数与策略模型并行,并且为了缓解奖励模型的过度优化问题,标准方法是在每个 token 的奖励中添加来自参考模型的每个 token 的KL惩罚(Ouyang et al., 2022),即:
    $$
    r_{t}=r_{\varphi}(q,o_{\leq t})-\beta\log\frac{\pi_{\theta}(o_{t}|q,o_{<t})}{\pi_{ref}(o_{t}|q,o_{<t})},
    $$

    • 其中,\(r_{\varphi}\) 是奖励模型,\(\pi_{ref}\) 是参考模型(通常是初始的SFT模型),\(\beta\) 是KL惩罚的系数
  • 由于PPO中使用的价值函数通常是另一个与策略模型大小相当的模型,这会带来大量的内存和计算负担。此外,在RL训练过程中,价值函数被用作计算优势的基线以减少方差。然而,在LLM的上下文中,通常只有最后一个token会被奖励模型分配一个奖励分数,这可能会使在每个token上准确训练价值函数变得复杂

  • 为了解决这个问题,如图4所示,作者提出了 GRPO ,它避免了PPO中额外的价值函数近似,而是使用对同一问题生成的多个采样输出的平均奖励作为基线。具体来说,对于每个问题 \(q\),GRPO从旧策略 \(\pi_{\theta_{old}}\) 中采样一组输出 \(\{o_{1},o_{2},\cdots,o_{G}\}\),然后通过最大化以下目标来优化策略模型(公式3):
    $$
    \begin{split}
    \mathcal{J}_{GRPO}(\theta)&=\mathbb{E}_{q\sim p(Q),\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\\
    &\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|o_{t}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right]-\beta\text{D}_{\text{KL}}\left[\pi_{\theta}||\pi_{ref}|\right) \right\},
    \end{split}
    $$

    • 其中,\(\epsilon\) 和 \(\beta\) 是超参数,\(\hat{A}_{i,t}\) 是基于组内输出的相对奖励计算的优势,具体细节将在后续小节中详细说明。GRPO通过组内相对奖励计算优势的方式,与奖励模型的比较性质非常契合,因为奖励模型通常是在同一问题的输出比较数据集上训练的
  • 特别说明:GRPO 通过直接在损失函数中添加训练策略与参考策略之间的KL散度来进行正则化(与 PPO 在奖励中添加KL惩罚不同),避免了复杂化 \(\hat{A}_{i,t}\) 的计算

结果监督的 GRPO

  • Outcome Supervision RL with GRPO,对应 ORM 模型
  • 结果监督的GRPO具体步骤如下:
    • 采样 :对于每个问题 \(q\),从旧策略模型 \(\pi_{\theta_{old}}\) 中采样一组输出
      $$\{o_{1},o_{2},\cdots,o_{G}\}$$
    • 评分 :使用奖励模型对这些输出进行评分,得到相应的 \(G\) 个奖励:
      $$\mathbf{r}=\{r_{1},r_{2},\cdots,r_{G}\}$$
    • 归一化&奖励分配 :这些奖励通过减去组平均值并除以组标准差进行归一化。结果监督在每个输出的末尾提供归一化的奖励,并将输出中所有 token 的优势 \(\hat{A}_{i,t}\) 设置为归一化的奖励,即:
      $$\hat{A}_{i,t}=\overline{r}_{i}=\frac{r_{i}-\text{mean}(\mathbf{r})}{\text{std}(\mathbf{r})}$$
      • 注:可以看到,结果监督下,GRPO 同一组的各个 token,奖励完全相同
    • 最后:通过最大化公式(3)中定义的目标来优化策略

过程监督的 GRPO

  • 说明:Process Supervision RL with GRPO,对应 PRM 模型,
  • 结果监督仅在每个输出的末尾提供一个奖励,这可能不足以有效地监督复杂数学任务中的策略,根据Wang et al. (2023b),作者还探索了过程监督,它在每个推理步骤的末尾提供一个奖励,具体步骤如下:
    • 采样 :给定问题 \(q\) 和 \(G\) 个采样输出
      $$\{o_{1},o_{2},\cdots,o_{G}\}$$
    • 评分 :过程奖励模型用于对输出的每个步骤进行评分,得到相应的奖励:
      $$ \mathbf{R}=\{\{r_{1}^{\text{index}(1)},\cdots,r_{1}^{\text{index}(K_{1})}\},\cdots,\{r_{G}^{\text{index}(1)},\cdots,r_{G}^{\text{index}(K_{G})}\}\}$$
      • 其中 \(\text{index}(j)\) 是第 \(j\) 步的结束 token 索引,\(K_{i}\) 是第 \(i\) 个输出中的总步数
    • 归一化 :作者还使用平均值和标准差对这些奖励进行归一化:
      $$\tilde{r}_{i}^{\text{index}(j)}=\frac{r_{i}^{\text{index}(j)}-\text{mean}(\mathbf{R})}{\text{std}(\mathbf{R})}$$
    • 奖励分配 :过程监督将每个 token 的优势计算为后续步骤的归一化奖励之和 ,即:
      $$\hat{A}_{i,t}=\sum_{\text{index}(j)\geq t}\tilde{r}_{i}^{\text{index}(j)}$$
    • 最后:通过最大化公式(3)中定义的目标 \(\mathcal{J}_{GRPO}(\theta)\) 来优化策略

迭代式 GRPO

  • 随着强化学习训练过程的进行,旧的奖励模型可能不足以监督当前的策略模型。因此,作者还探索了迭代式GRPO。如算法(1)所示,在迭代式GRPO中,作者基于策略模型的采样结果为奖励模型生成新的训练集,并通过包含10%历史数据的回放机制持续训练旧的奖励模型。然后,作者将参考模型设置为策略模型,并使用新的奖励模型持续训练策略模型
  • 算法(1)中显示的公式(21)为:
    $$
    GC_{GRPO}(q, o, t, \pi_{\theta_{sm}}) = \hat{A}_{i,t} + \beta \left( \frac{\pi_{ref}(o_{i,t}|\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|\mathbf{o}_{i,<t})} - 1 \right),
    $$
    • 其中 \(\hat{A}_{i,t}\) 是基于组奖励分数计算的

DeepSeekMath-RL的训练与评估

  • 作者基于DeepSeekMath-Instruct 7B进行强化学习。RL的训练数据是来自SFT数据的与GSM8K和MATH相关的链式思维(chain-of-thought)格式的问题,大约包含144K个问题。作者排除了其他SFT问题,以研究RL对在RL阶段缺乏数据的基准的影响。作者按照Wang et al. (2023b)的方法构建奖励模型的训练集
    • 基于DeepSeekMath-Base 7B训练初始奖励模型,学习率为2e-5
    • 对于GRPO,作者将策略模型的学习率设置为1e-6 ,KL系数为0.04
    • 对于每个问题,作者采样64个输出
    • 最大长度设置为1024
    • 训练批次大小为1024
    • 策略模型在每次探索阶段后仅进行一次更新。作者按照DeepSeekMath-Instruct 7B的基准评估DeepSeekMath-RL 7B。对于DeepSeekMath-RL 7B,GSM8K和MATH的链式思维推理可以被视为域内任务(因为训练主要是针对Math做Reward的),而所有其他基准可以被视为域外任务
      • 注:GSM8K数据集是OpenAI创建的一个用于评估数学推理能力的数据集,包含8.5K个高质量的小学数学应用题,题目涵盖多种小学数学知识点,难度适中,且每个问题需要2-8个推理步骤。举例来说:“问题:小明有5个苹果,吃了2个,又买了4个,他现在有多少个苹果? 解答:5 - 2 + 4 = 7,所以小明现在有7个苹果。”
  • 表5展示了使用链式思维和工具集成推理的开放和闭源模型在英语和中文基准上的表现。作者发现:1)DeepSeekMath-RL 7B在GSM8K和MATH上分别达到了88.2%和51.7%的准确率,使用链式思维推理。这一表现超过了所有7B到70B范围内的开源模型,以及大多数闭源模型。2)重要的是,DeepSeekMath-RL 7B仅从DeepSeekMath-Instruct 7B开始,在GSM8K和MATH的链式思维格式的指令调优数据上进行训练。尽管其训练数据的范围有限,但它在所有评估指标上均优于DeepSeekMath-Instruct 7B,展示了强化学习的有效性

各种微调方法的比较

  • 作者从强化学习的视角来看待LLMs的微调,对比了各种方法(包括SFT、RFT、在线RFT、DPO、PPO和GRPO)的数据来源和梯度系数(Gradient Coefficient)(算法和奖励函数)的详细推导

SFT

  • 监督微调的目标是最大化以下目标函数:
    $$
    \mathcal{J}_{\textrm{SFT}}(\theta)=\mathbb{E}_{q,o\sim p_{sft}(Q ,O)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\log\pi_{\theta}(o_{t}|q,o_{<t})\right).
    $$
  • \(\mathcal{J}_{\textrm{SFT}}(\theta)\) 的梯度为:
    $$
    \nabla_{\theta}\mathcal{J}_{\textrm{SFT}}=\mathbb{E}_{q,o\sim p_{sft}(Q,O)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\nabla_{\theta}\log\pi_{\theta}(o_ {t}|q,o_{<t})\right).
    $$
  • 补充:LLMs做SFT时常用交叉熵损失函数:
    $$\mathcal{L}(\theta) = -\frac{1}{|o|}\sum_{t=1}^{m} \log \pi_{\theta}(o_t | x, o_{<t})$$
  • 训练数据来源 :用于SFT的数据集(通常是从各自领域真实场景收集得到的,也可以是其他优质大模型生成的)
  • 奖励函数设计 :可以视为人类的选择
  • 梯度系数(Gradient Coefficient) :始终设置为1

Rejection Sampling Fine-tuning, RFT

  • 拒绝采样微调首先从监督微调的 LLM 中为每个问题采样多个输出,然后在具有正确答案的采样输出上训练 LLM。形式上,RFT 的目标是最大化以下目标函数:
    $$
    \mathcal{J}_{\textrm{RFT}}(\theta)=\mathbb{E}_{q\sim p_{sft}(Q),o\sim\pi_{sft}(O|q)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\mathbb{I}(o)\log\pi_{ \theta}(o_{t}|q,o_{<t})\right).
    $$
  • \(\mathcal{J}_{\textrm{RFT}}(\theta)\) 的梯度为:
    $$
    \nabla_{\theta}\mathcal{J}_{\textrm{RFT}}(\theta)=\mathbb{E}_{q\sim p_{sft}(Q),o\sim\pi_{sft}(O|q)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\mathbb{I}(o )\nabla_{\theta}\log\pi_{\theta}(o_{t}|q,o_{<t})\right).
    $$
  • 训练数据来源 :SFT 数据集中的问题,输出从 SFT 模型中采样
  • 奖励函数设计 :规则(答案是否正确)
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{\textrm{RFT}}(q,o,t)=\mathbb{I}(o)=\begin{cases}1&\text{the answer of \(o\) is correct}\\ 0&\text{the answer of \(o\) is not correct}\end{cases}
    $$

Online Rejection Sampling Fine-tuning, Online RFT, 在线RFT

  • 在线 RFT 和 RFT 的唯一区别在于,在线 RFT 的输出是从实时策略模型 \(\pi_{\theta}\) 中采样,而不是从 SFT 模型 \(\pi_{\theta_{sft}}\) 中采样。因此,在线 RFT 的梯度为:
    $$
    \nabla_{\theta}\mathcal{J}_{\textrm{OnRFT}}(\theta)=\mathbb{E}_{q\sim p_{sft}( Q),o\sim\pi_{\theta}(O|q)}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}\mathbb{I}(o) \nabla_{\theta}\log\pi_{\theta}(o_{t}|q,o_{<t})\right).
    $$

DPO

  • DPO的目标是:
    $$
    \mathcal{J}_{DPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \color{red}{(o^+, o^-) \sim \pi_{sft}(O|q)}} \Big[ \log \sigma \left( \beta \frac{1}{|o^+|} \sum_{t=1}^{|o^+|} \log \frac{\pi_\theta(o_t^+|q, o_{<t}^+)}{\pi_{ref}(o_t^+|q, o_{<t}^+)} - \beta \frac{1}{|o^-|} \sum_{t=1}^{|o^-|} \log \frac{\pi_\theta(o_t^-|q, o_{<t}^-)}{\pi_{ref}(o_t^-|q, o_{<t}^-)} \right)\Big].
    $$
    • 注:\(\sigma(\cdot)\) 表示Sigmod函数 \(\sigma(x) = \frac{1}{1+e^{-x}}\)
  • \(\mathcal{J}_{DPO}(\theta)\) 的梯度为:
    $$
    \nabla_\theta \mathcal{J}_{DPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \color{red}{(o^+, o^-) \sim \pi_{sft}(O|q)}} \left( \frac{1}{|o^+|} \sum_{t=1}^{|o^+|} \color{blue}{GC_{DPO}(q, o, t)} \nabla_\theta \log \pi_\theta(o_t^+|q, o_{<t}^+) - \frac{1}{|o^-|} \sum_{t=1}^{|o^-|} \color{blue}{GC_{DPO}(q, o, t)} \nabla_\theta \log \pi_\theta(o_t^-|q, o_{<t}^-) \right).
    $$
  • 训练数据来源 :SFT数据集中的问题,输出从SFT模型中采样
  • 奖励函数设计 :一般领域的人类偏好(在数学任务中可以是“规则”)
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{DPO}(q, o, t) = \sigma \left( \beta \log \frac{\pi_\theta(o_t^-|q, o_{<t}^-)}{\pi_{ref}(o_t^-|q, o_{<t}^-)} - \beta \log \frac{\pi_\theta(o_t^+|q, o_{<t}^+)}{\pi_{ref}(o_t^+|q, o_{<t}^+)} \right).
    $$
  • DPO不同于其他训练方法,DPO的一个样本是同时包含了好和坏(对应正和负)两个子样本的,根RFT中的样本组织形式有根本区别,在RFT中,正负样本是独立的,负样本权重为0,正样本权重为1,而DPO中没有正负样本之分,只有样本对,上面的 \(GC_{DPO}(q, o, t) \) 就是样本对的系数

PPO

  • PPO的目标是:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)} \Big[\frac{1}{|o|} \sum_{t=1}^{|o|} \min \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t, \text{clip} \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})}, 1 - \epsilon, 1 + \epsilon \right) A_t \right)\Big].
    $$
  • 为了简化分析,假设模型在每次探索阶段后仅进行一次更新,从而确保 \(\pi_{\theta_{old}} = \pi_\theta\) ,在这种情况下,我们可以移除最小值和裁剪操作:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)}\Big[ \frac{1}{|o|} \sum_{t=1}^{|o|} \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t\Big].
    $$
  • \(\mathcal{J}_{PPO}(\theta)\) 的梯度为:
    $$
    \nabla_\theta \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)}\Big[\frac{1}{|o|} \sum_{t=1}^{|o|} A_t \nabla_\theta \log \pi_\theta(o_t|q, o_{<t})\Big].
    $$
    • 这里的梯度中, \(\frac{1}{\pi_{\theta_{old}}(o_t|q, o_{ < t})}\) 部分被求导消掉了,详细求导过程见附录
  • 训练数据来源 :SFT数据集中的问题,输出从策略模型中采样
  • 奖励函数设计 :奖励模型
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{PPO}(q, o, t, \pi_{\theta_{rm}}) = A_t,
    $$
    • 其中 \(A_t\) 是通过广义优势估计(GAE)计算的,基于包含 Actor-Reference KL散度惩罚奖励 \(\{r_{\geq t}\}\) 和学习到的价值函数 \(V_\psi\)
    • \(\pi_{\theta_{rm}}\) 中的 \(rm\) 表示简化版

GRPO

  • GRPO原始目标是:
    $$
    \begin{split}
    \mathcal{J}_{GRPO}(\theta)&=\mathbb{E}_{q\sim p(Q),\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\\
    &\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|o_{t}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right]-\beta\text{D}_{\text{KL}}\left[\pi_{\theta}||\pi_{ref}|\right) \right\},
    \end{split}
    $$
  • GRPO中使用了KL散度的近似形式,该形式可以进一步化简,Approximating KL Divergence —— 来自:Deepseek的RL算法GRPO解读 - AIQL的文章 - 知乎
    • 估计形式为(注意以下式子中右边是左边的无偏梯度的前提是 \(o_{i,t} \sim \pi_\theta(\cdot \vert q,o_{i,< t})\),且此时 \(\pi_\theta(\cdot \vert q,o_{i,< t}) = \pi_{\theta_\text{old}}(\cdot \vert q,o_{i,< t})\) ),于是有:
      $$
      \mathbb{D}_\text{KL}[\pi_\theta\Vert\pi_{\text{ref}}] \approx \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - \log \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - 1, \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,\mathbf{o}_{i,<t})
      $$
      • 为了方便理解,这里给出直观解释 :上面的式子右边满足KL散度的基本特性
        • 当两个分布足够接近时,第一项趋近于1,第二项趋近于0,整体趋近于0;
        • 两个分布不相等时,上式右边取值总是大于0,可以通过求导证明:当 \(x>0\) 时,有 \(x - \log x - 1 \ge 0\)
  • 最终,化简KL散度后,GRPO的目标是(假设 \(\pi_{\theta_{old}} = \pi_\theta\) 以简化分析):
    $$
    \mathcal{J}_{GRPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \{\mathbf{o}_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O|q)} \frac{1}{G} \sum_{i=1}^G \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left( \frac{\pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q, \mathbf{o}_{i,<t})} \hat{A}_{i,t} - \beta \left( \frac{\pi_{ref}(o_{i,t}|q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t})} - \log \frac{\pi_{ref}(o_{i,t}|q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t})} - 1 \right) \right).
    $$
  • \(\mathcal{J}_{GRPO}(\theta)\) 的梯度为:
    $$
    \nabla_\theta \mathcal{J}_{GRPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), \{\mathbf{o}_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O|q)} \frac{1}{G} \sum_{i=1}^G \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \hat{A}_{i,t} + \beta \left( \frac{\pi_{ref}(o_{i,t}|\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|\mathbf{o}_{i,<t})} - 1 \right) \right] \nabla_\theta \log \pi_\theta(o_{i,t}|q, \mathbf{o}_{i,<t}).
    $$
  • 训练数据来源 :SFT数据集中的问题,输出从策略模型中采样
  • 奖励函数设计 :奖励模型
  • 梯度系数(Gradient Coefficient) :
    $$
    GC_{GRPO}(q, o, t, \pi_{\theta_{sm}}) = \hat{A}_{i,t} + \beta \left( \frac{\pi_{ref}(o_{i,t}|\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}|\mathbf{o}_{i,<t})} - 1 \right),
    $$
    • 其中 \(\hat{A}_{i,t}\) 是基于组奖励分数计算的,这里的 \(\hat{A}_{i,t}\) 不包含 Actor-Reference KL散度惩罚
    • \(\beta \left( \frac{\pi_{ref}(o_{i,t}|o_{i, < t})}{\pi_\theta(o_{i,t}|o_{i, < t})} - 1 \right)\) 则是 Actor-Reference KL散度部分,用于控制当前策略不要偏离参考策略太远
    • \(\pi_{\theta_{rm}}\) 中的 \(rm\) 表示简化版

附录:\(\mathcal{J}_{\text{PPO}}(\theta)\) 求导

  • 前置假设:假设模型在每次探索阶段后仅进行一次更新,从而确保 \(\pi_{\theta_{old}} = \pi_\theta\)

  • 对简化后的目标函数 \(\mathcal{J}_{\text{PPO}}(\theta)\) 关于参数 \(\theta\) 求导:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim p_{sft}(Q), o \sim \pi_{\theta_{old}}(O|q)}\Big[ \frac{1}{|o|} \sum_{t=1}^{|o|} \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t\Big].
    $$

  • 仅考虑期望内部的部分:对每个时间步 \(t\),应用对数导数技巧 \(\nabla_\theta\log \pi_\theta = \frac{\nabla_\theta \pi_\theta}{\pi_\theta}\)可得:
    $$
    \nabla_\theta \left( \frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} \right) = \frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} \nabla_\theta \log \pi_\theta(o_t|q, o_{<t}).
    $$

  • 将梯度表达式代入期望,得到最终梯度:
    $$
    \nabla_\theta \mathcal{J}_{\text{PPO}}(\theta) = \mathbb{E}_{q \sim p_{\text{sft}}(Q), o \sim \pi_{\theta_{\text{old}}}(O|q)} \left[ \frac{1}{|o|} \sum_{t=1}^{|o|} \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{\text{old}}}(o_t|q, o_{<t})} A_t \nabla_\theta \log \pi_\theta(o_t|q, o_{<t}) \right].
    $$

  • 结合此时的假设 \(\pi_{\theta_{old}} = \pi_\theta\),于是有最终导数如下:
    $$
    \nabla_\theta \mathcal{J}_{\text{PPO}}(\theta) = \mathbb{E}_{q \sim p_{\text{sft}}(Q), o \sim \pi_{\theta_{\text{old}}}(O|q)} \left[ \frac{1}{|o|} \sum_{t=1}^{|o|} A_t \nabla_\theta \log \pi_\theta(o_t|q, o_{<t}) \right]
    $$


附录:GRPO 传统 RL 场景的应用前景讨论

  • 一个有趣的对比:DeepSeek GRPO在简单控制系统上和PPO的对比 - 王兴兴的文章 - 知乎

    对于整个系统中间过程和信息,比较清晰的问题(中间过程能被价值评价清晰),比如类似上面的控制系统(或者其他机器人系统),PPO还是最简单粗暴出效果很好的;但对于像DeepSeek用来搞数学RL推理,由于中间过程没法很好的描述和计算中间过程的价值,确实还是GRPO更快更方便(只看最终结果);


附录:为什么 GRPO 训练开始时,Loss 函数为 0,并且不降反增?

  • 以下回答参考自:Open-R1 #239 issue: Why does the loss start at 0 when I train GRPO, and then possibly increase?

  • 结论 :损失值从零开始逐渐增加是完全正常的,原因如下:

  • 首先需要理解GRPO目标函数的数学表达:
    $$
    J_{\text{GRPO}}(\theta) = \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} | q, \mathbf{o}_{i,<t})} \hat{A}_{i,t}, \text{clip}\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} | q, \mathbf{o}_{i,<t})}, 1-\epsilon, 1+\epsilon \right) \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right].
    $$

    • \( G \) 是每个提示的生成次数
    • \( \mathbf{o}_i \) 是提示的第\( i \)次生成结果,\( |\mathbf{o}_i| \)表示其token数量
    • \( q \) 是输入提示
    • \( \pi_\theta \) 是策略模型
    • \( \pi_{\theta_{\text{old}}} \) 是更新前的策略模型
    • \( \pi_{\text{ref}} \) 是参考策略
    • \( \hat{A}_{i,t} \) 是第\( i \)次生成中第\( t \)个token的优势估计(详见下文)
    • \( \epsilon \) 和 \( \beta \) 是超参数
  • 为简化说明,假设每次迭代只执行一次探索步骤(这是GRPO的标准实现)。此时\( \pi_{\theta_{\text{old}}} = \pi_\theta \),目标函数自然简化为(接下来的花间仅关心绝对值):
    $$
    \begin{align}
    J_{\text{GRPO}}(\theta) &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})} \hat{A}_{i,t}, \text{clip}\left( \frac{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t} | q, \mathbf{o}_{i,<t})}, 1-\epsilon, 1+\epsilon \right) \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right]. \\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \hat{A}_{i,t}, \text{clip}(1, 1-\epsilon, 1+\epsilon) \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right]. \\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \min\left( \hat{A}_{i,t}, \hat{A}_{i,t} \right) - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right].\\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \left[ \hat{A}_{i,t} - \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}] \right].\\
    &= \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_{i,t} - \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}].
    \end{align}
    $$

  • 注意优势函数 \(\hat{A}_{i,t}\) 实际上与 \( t \) 无关(在GRPO中,一个Response只有一个Reward,这个Reward是Response粒度的,不是token粒度的),因此:
    $$
    \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_{i,t} = \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_i = \hat{A}_i.
    $$

  • 此外,\( \hat{A}_t \)经过归一化处理意味着:
    $$
    \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \hat{A}_t = 0.
    $$

    • 证明:这里的归一化处理是,对于一组给定的 \(G\) 个奖励 \(\mathbf{r}=\{r_{1},r_{2},\cdots,r_{G}\}\):
      $$A_i = \frac{r-\text{mean}(\mathbf{r})}{\text{std}(\mathbf{r})}$$
  • 因此最终可得:
    $$
    J_{\text{GRPO}}(\theta) = -\frac{1}{G} \sum_{i=1}^{G} \frac{1}{|\mathbf{o}_i|} \sum_{t=1}^{|\mathbf{o}_i|} \beta D_{\text{KL}}[\pi_\theta | \pi_{\text{ref}}].
    $$

  • 从绝对值来看,损失等于平均KL散度乘以\( \beta \),由于参考策略与初始策略完全一致,这就是损失从零开始的原因。随着训练进行,策略会逐渐偏离初始参考策略,因此损失值会上升


附录:GRPO 中 KL 散度的近似为何与常规 RLHF 中不一样?

  • 常规RLHF中,KL散度的近似为:
    $$
    \begin{align}
    D_{\text{KL}}(\pi_{\theta_\text{old}}||\pi_{\theta}) &= \mathbb{E}_{a \sim \pi_{\theta_\text{old}}} \left[\log\frac{\pi_{\theta_\text{old}}(a|s)}{\pi_{\theta}(a|s)}\right] &\\
    &\approx \frac{1}{N} \log\frac{\pi_{\theta_\text{old}}(a|s)}{\pi_{\theta}(a|s)} \\
    &= \frac{1}{N} (\log \pi_{\theta_\text{old}}(a|s)- \log\pi_{\theta}(a|s))
    \end{align}
    $$
  • GRPO中,KL散度的近似为(可参考Approximating KL Divergence):
    $$
    \mathbb{D}_\text{KL}[\pi_\theta\Vert\pi_{\text{ref}}] \approx \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - \log \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} - 1, \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,\mathbf{o}_{i,<t})
    $$
    • 为了方便理解,这里给出上式的直观解释 :上面的式子右边满足KL散度的基本特性
      • 当两个分布足够接近时,第一项趋近于1,第二项趋近于0,整体趋近于0;
      • 两个分布不相等时,上式右边取值总是大于0,可以通过求导证明:当 \(x>0\) 时,有 \(x - \log x - 1 \ge 0\) 恒成立
  • 关于KL散度近似的更多讨论可参考:Math——KL散度的近似估计

GRPO 中 KL 近似的推导

  • GRPO的近似式基于以下观察:
    $$
    D_{\text{KL}}(\pi_\theta \Vert \pi_{\text{ref}}) = \mathbb{E}_{a \sim \pi_\theta} \left[ \frac{\pi_{\text{ref}}(a|s)}{\pi_\theta(a|s)} - \log \frac{\pi_{\text{ref}}(a|s)}{\pi_\theta(a|s)} - 1 \right].
    $$
  • 推导思路 :
    • 令\(x = \frac{\pi_{\text{ref}}(a|s)}{\pi_\theta(a|s)}\),当两个分布接近时,\(x \approx 1\)
    • 对函数\(f(x) = x - \log x - 1\)在\(x=1\)处进行泰勒展开:
      $$
      f(x) \approx \frac{1}{2}(x-1)^2 + o((x-1)^2).
      $$
    • 此时,\(\mathbb{E}[f(x)]\)近似为KL散度的二阶项,可用于约束策略更新
  • 此近似将KL散度转换为无需显式计算对数期望的形式,适用于从\(\pi_\theta\)采样的场景,同时保证在\(x \approx 1\)时近似准确

为什么不直接使用更简单的 KL 近似?

  • 比如参考传统RLHF的思路来计算:
    $$
    \begin{align}
    \mathbb{D}_\text{KL}[\pi_\theta\Vert\pi_{\text{ref}}] &= - \log \frac{\pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t})}{\pi_\theta(o_{i,t}\vert q,\mathbf{o}_{i,<t})} , \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,o_{i, < t})\\
    &=\log\pi_\theta(o_{i,t}\vert q,o_{i, < t}) - \log \pi_{\text{ref}}(o_{i,t}\vert q,\mathbf{o}_{i,<t}) , \quad o_{i,t} \sim \pi_\theta(\cdot \vert q,o_{i, < t})
    \end{align}
    $$
  • 上面这个式子更简便也更准确,但是容易出现KL散度为负的情况,特别是对于采样次数不足的时候会更严重,传统的RLHF中就存在这个问题(这个问题也可以描述为方差大)
  • k3估计的KL散度那么不好,为什么GRPO还要坚持用呢? - lym的文章 - 知乎中有详细实验发现,使用 \(k_1\) 估计会导致模型倾向于压低 token 的概率
  • 但是在GRPO的KL散度近似中,两个分布不相等时,取值总是大于0(可以证明方差比上面的式子小),可以通过求导证明:当 \(x>0\) 时,有 \(x - \log x - 1 \ge 0\) 恒成立,最小值在 \(x=1,y=0\)处,其函数图像如下:

附录:为什么 GRPO 中要将 PPO 奖励中的 KL 散度挪出来?

  • 实际上就是实验给的结论!
  • 一些个人理解:
    • KL 散度加到 Reward 上可能影响 GAE 的计算和稳定性
    • KL 散度放到 Reward 上可能出现 Reward Hacking 现象,模型可能会倾向于只输出与参考模型相同的策略
      • 特别地,在每个 Token 上都有 KL 散度反馈,但只有最后一个 Token 才会有 Reward 反馈

附录:GRPO 中损失的平均粒度有什么影响?

  • GRPO :Sample-level 平均
    $$
    \begin{split}
    \mathcal{J}_{\mathrm{GRPO} }(\theta) &=\mathbb{E}_{(\mathbf{q},\mathbf{a})\sim\mathcal{D},\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old} }(\cdot|q)} \\
    &\left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|\mathbf{o}_i|}\Bigg{(}\min\Big{(}r_{i,t}(\theta)\hat{A}_{i,t},\mathrm{clip}\Big{(}r_{i,t}(\theta),1-\varepsilon,1+\varepsilon\Big{)}\hat{A}_{i,t}\Big{)}-\beta D_{\mathrm{KL} }(\pi_{\theta}|\pi_{\mathrm{ref} })\Bigg{)}\right],
    \end{split}
    $$
    • 其中
      $$
      r_{i,t}(\theta)=\frac{\pi_{\theta}(o_{i,t}\mid q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old} }(o_{i,t}\mid q,\mathbf{o}_{i,<t})}.
      $$
    • 从 token 视角看,\(\frac{1}{|\mathbf{o}_i|}\) 相当于是给不同 \(|\mathbf{o}_i|\) 中 token 加上了不同的权重
    • 特别注意:一个容易理解的误区是认为 \(\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|\mathbf{o}_i|}\) 可保证整体的损失和是 token 均值,所以不同 \(|\mathbf{o}_i|\) 中 token 对 Loss 权重不变
      • 这里理解有误,\(\sum_{t=1}^{|\mathbf{o}_i|}\) 只是损失函数累计到一起的动作(可以看做是一个 Batch 的多个样本一起更新模型), \(\color{red}{\frac{1}{|\mathbf{o}_i|}}\) 则是相当于给所有样本都加了一个权重 \(\color{red}{\frac{1}{|\mathbf{o}_i|}}\)
      • 这个权重与 \(\color{red}{\mathbf{o}_i}\) 有关,对不同长度的 response 的 Token 是不公平的,此时,长序列的回复梯度会被缩小(不论正负都会被缩小)),导致模型会倾向于 简短的正确回答 和 较长的错误回答
  • DAPO :号称 Token-level 平均,本质是 Batch-level 平均(因为如果两个 batch 上采样到的 token 数量差异太大也会导致模型更关注短序列的 token)
    $$
    \begin{align}
    \mathcal{J}_{\mathrm{GRPO} }(\theta) &=\mathbb{E}_{(\mathbf{q},\mathbf{a})\sim\mathcal{D},\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old} }(\cdot|q)} \\
    &\left[\frac{1}{\color{red}{\sum_{i=1}^G|\mathbf{o}_i|}}\color{red}{\sum_{i=1}^{G}\sum_{t=1}^{|\mathbf{o}_i|}}\min\Big{(}r_{i,t}(\theta)\hat{A}_{i,t},~\mathrm{clip}\Big{(}r_{i,t}(\theta),1-\varepsilon_\text{low},1+\varepsilon_\text{high}\Big{)}\hat{A}_{i,t}\Big{)}\right] \\
    \text{s.t.}\quad &0 < \left|\{\mathbf{o}_i \mid \texttt{is_equivalent}(a, \mathbf{o}_i)\}\right| < G
    \end{align}
    $$
  • SimpleRL :方法与 DAPO 的处理完全一样(下面是原始论文中的写法,不带期望的形式,原始论文可参考:SimpleRL-Zoo: Investigating and Taming Zero Reinforcement Learning for Open Base Models in the Wild, HKUST & TikTok Meituan, 20250524 & 202508076)
    $$
    \mathcal{J}_{\text{GRPO}}(\theta)=\underbrace{\frac{1}{\color{red}{\sum_{i=1}^{G}\left|o_{i}\right|}} \color{red}{\sum_{i=1}^{G} \sum_{t=1}^{\left|o_{i}\right|}} min \left[r_{i, t}(\theta) \hat{A}_{i}, clip\left(r_{i, t}(\theta) ; 1-\epsilon, 1+\epsilon\right) \hat{A}_{i}\right]}_{\text{Clipped policy update } }-\underbrace{\beta \mathbb{D}_{KL}\left[\pi_{\theta} | \pi_{ref }\right]}_{\text{KL penalty } }
    $$
  • Dr.GRPO :真正的 Token-level 平均 ,无论 batch 间的序列长度如何都可做到按照 token 平均
    $$
    \begin{split}
    \mathcal{J}(\pi_{\theta}) &= \mathbb{E}_{\mathbf{q} \sim p_{Q}, \{\mathbf{o}_{i}\}_{i=1}^{G} \sim \pi_{\theta_{old} }(\cdot|\mathbf{q})} \\
    &\quad \left[\frac{1}{G} \sum_{i=1}^{G} \sum_{t=1}^{|\mathbf{\mathbf{o}_i}|} \left\{\min \left[\frac{\pi_{\theta}(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})}{\pi_{\theta_{old} }(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})} \tilde{A}_{i,t}, \text{clip} \left(\frac{\pi_{\theta}(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})}{\pi_{\theta_{old} }(o_{i,t}|\mathbf{q}, \mathbf{o}_{i,<t})}, 1 - e, 1 + e \right) \tilde{A}_{i,t} \right]\right\}\right],
    \end{split}
    $$
    • 注意:没有 \(\color{red}{\frac{1}{|\mathbf{o}_i|}}\),实际实现时会除以一个 MAX_TOKEN(预设的最大生成长度)
  • 实现中常用参数:
    • token-mean :按照正个 Batch 内部的整体 Token 粒度做平均
    • dr_grpo:特殊的做法,常常单独命名,防止误解
      • Sequence 内部除以固定值(NUM_MAX_TOKEN),再在 Batch 内部的 Sequence 之间求平均
      • 本质可以理解为 seq-mean-fix:
        • 后面的 fix 表示 Sequence 内部除以固定值
        • 前面的 seq-mean 表示 Batch 内部的 Sequence 之间求平均
    • seq-mean-token-sum:
      • 后面的 token-sum 表示 Sequence 内部的 Token 之间做求和
      • 前面的 seq-mean 表示 Batch 内部的 Sequence 之间求平均
      • 整体看就是 Sequence 内部求和再对 Batch 内部(Sequence 之间)求平均
    • seq-mean-token-mean :
      • 后面的 token-mean 表示 Sequence 内部的 Token 之间做平均
      • 前面的 seq-mean 表示 Batch 内部的 Sequence 之间求平均
      • 整体看就是 Sequence 内部求平均再对 Batch 内部(Sequence 之间)求平均

附录:Off-policy 下 GRPO 中的 KL 散度损失项问题

  • 本部分参考自:The critical implementation detail of KL loss in GRPO, Hongyu Zang

整体说明

  • GRPO 相对 PPO 有两个主要创新:
    • 1)它放弃了传统的 Critic 模型,而是选择使用群体得分来估计价值基线
    • 2)它不是在奖励中加入每个 token 的 KL 散度惩罚,而是通过将学习策略与参考策略之间的 KL 散度直接添加到损失函数中来规范学习过程
  • 重点:在 Off-policy 场景中,不能简单地将奖励框架中的 KL 惩罚转移到作为正则化损失项
    • 这需要在整个词汇表上计算 KL 项 ,而不仅仅是依赖于采样的轨迹

Theory recap

  • PPO 中的损失函数定义如下:
    $$
    \mathcal{J}_{PPO}(\theta) = \mathbb{E}_{q \sim P(Q), o \sim \pi_{\theta_{old}}(O|q)} \Big[\frac{1}{|o|} \sum_{t=1}^{|o|} \min \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t, \text{clip} \left( \frac{\pi_\theta(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})}, 1 - \epsilon, 1 + \epsilon \right) A_t \right)\Big].
    $$
    • 在 PPO 设置中,\(\pi_{\theta_{\text{old}}}\) 和 \(\pi_{\text{ref}}\) 之间的 KL 散度被纳入奖励函数,表示为:
      $$ R = r(q, o) - \text{KL}(\pi_{\theta_{\text{old}}}, \pi_{\text{ref}}) $$
    • 在这个奖励函数中,没有任何项依赖于正在优化的策略 \(\pi_\theta\)
    • 在精确损失函数的实现中,可以对这个奖励应用“detach”操作,在代码中有效地表示为 R = R.detach()
    • 这种分离可以防止损失计算中出现不可预测的行为
  • GRPO 的损失函数定义是:
    $$
    \begin{split}
    \mathcal{J}_{GRPO}(\theta)&=\mathbb{E}_{q\sim p(Q),\{\mathbf{o}_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\\
    &\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|\mathbf{o}_i|}\sum_{t=1}^{|o_{t}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})}\hat{A}_{i,t},\text{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,\mathbf{o}_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,\mathbf{o}_{i,<t})},1-\epsilon,1+\epsilon\right)\hat{A}_{i,t}\right]-\beta\text{D}_{\text{KL}}\left[\pi_{\theta}||\pi_{ref}|\right) \right\},
    \end{split}
    $$
  • 注:两者都基于策略 \(\pi_{\theta_{\text{old}}}\) 采样轨迹,也就是说两种方法本质上都是 Off-policy 的
  • 回顾 REINFORCE 算法 :
    • REINFORCE 以 On-policy 方式运行,REINFORCE 的损失函数表示为:
      $$ L = \mathbb{E}_{\pi_\theta}[R] $$
    • 这是一个直接的目标,其中 \(R\) 代表 On-policy \(\pi_\theta\) 下获得的奖励(目标是最大化这个期望奖励)
    • 该损失对应的梯度为:
      $$ \nabla_\theta L = \nabla_\theta \mathbb{E}_{\pi_\theta}[R] $$
    • 由于采样和优化都是相对于相同的策略分布 \(\pi_\theta\) 进行的,我们旨在计算该分布的梯度以更新参数 \(\theta\)
      • 但这提出了一个挑战,因为直接评估期望通常是不可行的(非可微奖励(Non-differentiable Reward)):奖励函数可能不可微,或者可能是一个黑盒函数,这意味着其内部工作不可见,只能观察到输出(High-Dimensional Continuous Control Using Generalized Advantage Estimation)
    • 为了处理这个问题,使用了一种称为得分函数估计器(score function estimator)或 REINFORCE 估计器(REINFORCE estimator)的通用梯度估计器
      • 得分函数定义为:
        $$ \nabla_\theta \log \pi_\theta = \frac{\nabla_\theta \pi_\theta}{\pi_\theta} $$
    • 利用这个得分函数,REINFORCE损失的梯度可以表示为:
      $$ \nabla_\theta L = \mathbb{E}_{\pi_\theta}[R \cdot \nabla_\theta \log \pi_\theta] $$
    • 在这里,梯度计算集中在对数概率项 \(\nabla_\theta \log \pi_\theta\) 上
      • 这种公式有效地将寻找期望梯度(gradient of an expectation)的问题转化为梯度的期望(expectation of gradients) ,且梯度的期望可以通过从 \(\pi_\theta\) 中抽取的样本来估计
      • 这是强化学习中的一个关键 Insight,因为它允许即使在奖励信号稀疏或随机的情况下也能优化策略
  • 为了理解 \(\pi_\theta\) 项在 GRPO 设置中的重要性,从 \(\pi_\theta\) 如何影响 KL 损失中的梯度计算开始
    • 在 GRPO 的背景下,KL 散度以下列期望形式表示:
      $$ \text{KL}(\pi_\theta | \pi_{\text{ref}}) = \mathbb{E}_{\pi_\theta}[\log \pi_\theta - \log \pi_{\text{ref}}] $$
    • 在计算 GRPO 损失的梯度时,需要对两个组成部分进行微分:
      • 1)与优势加权策略项相关的梯度,类似于 PPO
      • 2)与 KL 散度项相关的梯度(GRPO 损失函数设计下独有的部分)
    • 涉及 KL 散度的组成部分需要进行微分,因为它包含了明确依赖于策略参数 \(\theta\) 的项 \(\pi_\theta\)。这种依赖性在计算梯度时至关重要,因为:
      • 对分布的微分(Differentiation Over the Distribution) :由于 \(\pi_\theta\) 代表了对动作的概率分布,\(\theta\) 的任何变化都会影响不同动作的概率分配
        • 因此,推导梯度涉及考虑这些概率如何随参数更新而变化
      • 梯度传播(Gradient Propagation) :KL 散度中的 \(\pi_\theta\) 项直接影响通过其向策略参数反向传播更新的梯度
        • 与 PPO 场景不同,在 PPO 中奖励项(注:包含 KL 散度的奖励项)是分离的,(KL 散度)不会直接影响关于 \(\pi_\theta\) 的梯度,而在这里 \(\pi_\theta\) 主动参与梯度计算
    • 因此,强调 \(\pi_\theta\) 项至关重要,因为它将 KL 散度直接与策略参数联系起来,需要在梯度计算中予以考虑

从实现的视角看

PPO
  • 以 OpenRLHF 仓库 为例:

    • 在 PPO 中,为了计算奖励,需要添加 KL 项

      • 如 openrlhf/models/utils.py 所示,其中 KL 在 trainer/ppo_utils/experience_maker.py 计算,下面的代码来自 openrlhf/models/utils.py
        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
        def compute_approx_kl(
        log_probs: torch.Tensor,
        log_probs_base: torch.Tensor,
        kl_estimator: str = "k1",
        ) -> torch.Tensor:
        """
        Compute the approximate KL divergence between two distributions.
        Schulman blog: http://joschu.net/blog/kl-approx.html

        Args:
        log_probs: Log probabilities of the new distribution.
        log_probs_base: Log probabilities of the base distribution.
        """

        if kl_estimator == "k1":
        log_ratio = log_probs.float() - log_probs_base.float()

        # The k2 estimator is the non negative kl approximation in
        # http://joschu.net/blog/kl-approx.html
        # The k2_loss is approximately equivalent to the
        # one-step KL divergence penalty with the k1 estimator
        # used in https://arxiv.org/pdf/2310.10505.
        if kl_estimator == "k2":
        log_ratio = log_probs.float() - log_probs_base.float()
        log_ratio = log_ratio**2 / 2.0

        # The k3 estimator is the non negative kl approximation in
        # http://joschu.net/blog/kl-approx.html
        if kl_estimator == "k3":
        log_ratio = log_probs.float() - log_probs_base.float()
        log_ratio = -log_ratio
        log_ratio = log_ratio.exp() - 1 - log_ratio

        log_ratio = log_ratio.clamp(min=-10, max=10)
        return log_ratio
    • 值得注意的是,action_log_probs 和 base_action_log_probs 的形状是 [batch_size, response_length]

    • 核心 :一个有趣的问题是,当计算 KL 散度时,应该在整个词汇表分布上计算,而不仅仅是采样的轨迹上

      • 进一步引出问题思考:为什么在这种情况下可以省略 vocab_size 维度?
    • 回答问题:

      • 回想一下,我们讨论过 PPO 中的奖励是定义为:
        $$R = r(q, o) - \text{KL}(\pi_{\theta_{\text{old}}}, \pi_{\text{ref}})$$
      • 将 PPO 损失重写为(简写):
        $$\mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} A\right]$$
      • 进一步忽略价值函数,这个表达式简化为
        $$\mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} (r(q,o) - \text{KL}(\pi_{\theta_{\text{old}}}, \pi_{\text{ref}}))\right] = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}} (r(q,o) - \mathbb{E}_{\pi_{\theta_\text{old}}}(\log \pi_{\theta_{\text{old}}} - \log \pi_{\text{ref}}))\right]$$
      • 由于期望是在相同的分布 \(\pi_{\theta_\text{old}}\) 下取的,而不是在与我们正在优化的参数 \(\theta\) 无关的 \(\pi_\theta\) 下
        • 因此只需计算 \(\pi_{\theta_{\text{old}}}\) 和 \(\pi_{\text{ref}}\) 的对数概率之间的差异就足够了(如Language Models are Few-Shot Learners, NIPS 2020 中所示)
        • 在这种情况下省略 vocab_size 维度是可行的
          • 理解:是因为做了采样,采样就相当于做了分布期望完整估计
GRPO
  • GRPO 中,KL 项被视为损失,特别是当 KL 散度表示为 \(\text{KL}(\pi_\theta || \pi_{\text{ref}})\) 时,不可能使用 \(\pi_\theta\) 和 \(\pi_{\text{ref}}\) 的对数概率之间的差异来近似这个 KL 损失
    • 核心 :因为有必要在 \(\pi_\theta\) 下采样轨迹
  • 同上,我们可以将 GRPO 目标化简表示为:
    $$ \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \text{KL}(\pi_\theta, \pi_{\text{ref}})\right] = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \mathbb{E}_{\pi_\theta}(\log\pi_\theta - \log\pi_{\text{ref}})\right] $$
    • 理解:上述的式子说明,内外层需要分别对 \(\pi_\theta\) 和 \(\pi_{\pi_\text{old}}\) 进行采样,而这两者对不齐
    • 因此,当使用 KL 项作为损失时,必须保持 vocab_size 维度
      • 问题:这跟 vocab_size 有什么关系,主要还是同时需要两个不同的采样导致的吧?
      • 回答:有关系,需要对 \(\pi_\theta\) 采样的原因是无法全部列举 \(\pi_\theta\) 的 可能动作,如果是列举所有动作 (vocab_size),则不再需要采样(理解:评估分布的期望有两种方式:1)采样 or 2)访问所有动作的概率计算期望)
    • 此外,重用上述代码中的 compute_approx_kl 函数是不合适的(理解:这里是按照 \(\pi_{\pi_\text{old}}\) 采样的),因为这样做会导致:
      $$ \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \mathbb{E}_{\pi_{\theta_{\text{old}}}}(\log\pi_\theta - \log\pi_{\text{ref}})\right] $$
      • 因为我们实际上使用 \(\pi_{\theta_{\text{old}}}\) 进行采样,导致失去了 \(\pi_\theta\) 的导数信息

Ways to solve

  • The critical implementation detail of KL loss in GRPO 博客作者在与 @Renbiao Liu 和 @Yiming Liu 讨论后,似乎有三种潜在的方法来解决这个问题:
    • 1)遵循传统的 KL 损失(即重新通过 \(\pi_\theta\) 采样并计算 KL)
    • 2)仅使用 GRPO 的 On-policy 版本
    • 3)将 KL 散度重新加入奖励函数
遵循传统的 KL 损失
  • 注:原始 GRPO 中使用的是 KL 散度的 K3 估计
    $$ k_3 = (r-1) - \log r$$
  • 本节使用传统的 KL 损失,传统 KL 损失可以推导如下:
    $$
    \begin{align}
    &\nabla_\theta\mathbb{E}_{\pi_\theta}\left[\log\pi_\theta-\log\pi_\text{ref}\right] \\
    =& \nabla_\theta\sum\pi_\theta (\log\pi_\theta-\log\pi_\text{ref}) \\
    =& \sum\nabla_\theta\pi_\theta\cdot(\log\pi_\theta-\log\pi_\text{ref})+\pi_\theta\cdot\nabla_\theta(\log\pi_\theta-\log\pi_\text{ref}) \\
    =& \sum\nabla_\theta\pi_\theta\cdot(\log\pi_\theta-\log\pi_\text{ref})+\pi_\theta\cdot\frac{\nabla_\theta\pi_\theta}{\pi_\theta}\\
    =&\sum\pi_\theta\nabla_\theta\log\pi_\theta(\log\pi_\theta-\log\pi_\text{ref})+\sum\nabla_\theta\pi_\theta\\
    =&\mathbb{E}_{\pi_\theta}\left[(\log\pi_\theta-\log\pi_\text{ref})\nabla_\theta\log\pi_\theta\right]
    \end{align}
    $$
  • 理解:从上面可以看出,只需要对 \(\pi_{\theta}\) 采样就可以了,不再需要内层计算期望(也就没有内外层期望的概率分布不一致问题)
  • 也就是说,可以通过基于样本的近似技术(如 On-policy 采样或重要性采样)或通过计算分布概率来进行梯度反向传播来优化它
    • 问题:这里的 On-policy 采样是指真实使用当前策略去重新采样,也就是说 GRPO 迭代的每一步都需要重新采样并计算 KL?
  • 然而,鉴于这些方法通常有一些缺点:
    • 方式一:重新采样,依赖于额外的采样程序(除了从 \(\pi_{\theta_\text{old}}\) 采样外,还可能需要从每一步迭代后的 \(\pi_\theta\) 采样)
    • 方式二:在 vocabulary size 上计算 KL 散度
    • 它们并不特别实用或计算效率高
  • 另一种近似方法可能涉及使用 top-K 软标签(soft labels)进行梯度反向传播,类似于知识蒸馏中使用的方法,尽管这尚未在 RL 场景中被证明是最佳选择
    • 软标签参考链接: Distilling the Knowledge in a Neural Network, NIPS 2015 ;Top-K Sampling for Language Generation, ACL 2020
On-policy GRPO
  • 在 GRPO 的 On-policy 版本中,原始损失函数可以重新表述为:
    $$ \mathbb{E}_{\pi_{\theta}}\left[A-\mathbb{E}_{\pi_{\theta}}\left[\log\pi_\theta-\log\pi_\text{ref}\right]\right]=\mathbb{E}_{\pi_{\theta}}\left[A-(\log\pi_\theta-\log\pi_\text{ref}\right)] $$
  • 相应的导数由下式给出:
    $$ \mathbb{E}_{\pi_\theta}[(A-(\log\pi_\theta-\log\pi_\text{ref}))\cdot\nabla_\theta\log\pi_\theta] $$
  • 因此,当 GRPO 完全 On-policy 时,它与之前使用的公式匹配:
    $$ \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \text{KL}(\pi_\theta, \pi_{\text{ref}})\right] = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old}}}}A - \mathbb{E}_{\pi_\theta}(\log\pi_\theta - \log\pi_{\text{ref}})\right], $$
    • 在 On-policy 条件下,即 \(\pi_\theta = \pi_{\theta_{\text{old}}}\):
      $$ \mathbb{E}_{\pi_{\theta}}\left[\frac{\pi_\theta}{\pi_{\theta}}A - \mathbb{E}_{\pi_\theta}(\log\pi_\theta - \log\pi_{\text{ref}})\right]=\mathbb{E}_{\pi_{\theta}}\left[A - (\log\pi_\theta - \log\pi_{\text{ref}})\right], $$
Adding back to reward function(即将 KL 散度重新加入奖励函数)
  • 从上面的推导可知,传统的 KL 散度损失可以化简为:
    $$
    \begin{align}
    \nabla_\theta\mathbb{E}_{\pi_\theta}\left[\log\pi_\theta-\log\pi_\text{ref}\right] = \mathbb{E}_{\pi_\theta}\left[(\log\pi_\theta-\log\pi_\text{ref})\nabla_\theta\log\pi_\theta\right]
    \end{align}
    $$
  • 在 Off-policy 场景中,KL 损失的为:
    $$
    \mathbb{E}_{\pi_\theta}\left[(\log\pi_\theta-\log\pi_\text{ref})\nabla_\theta\log\pi_\theta\right]=\mathbb{E}_{\pi_{\theta_\text{old} } }[\frac{\pi_{\theta} }{\pi_{\theta_\text{old} } }(\log\pi_\theta-\log\pi_{\text{ref} })\nabla_\theta\log\pi_\theta]
    $$
  • 如果此时忽略价值函数并应用此 KL 损失,则 GRPO 损失变为:
    $$
    \mathbb{E}_{\pi_{\theta_{\text{old} } } }\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old} } } } (r(q,o) - KL(\pi_{\theta}, \pi_{\text{ref} }))\right]
    $$
    • 注:次数 KL 项应 detached(梯度不回传),这里的用法相当于 KL 散度本身就是奖励的一部分,不再通过梯度直接优化 KL 损失了
  • 实际上,PPO 的推导过程中就使用到了重要性采样,同时考虑 KL 散度存在(使得相邻两步策略足够接近,所以可以使用近似策略)
    $$
    \begin{align}
    \nabla_\theta J_{\text{PPO}}(\theta)
    &= \mathbb{E}_{(s_t, a_t) \sim \pi_\theta} \left[ A_\theta(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t|s_t) \right] \\
    &= \mathbb{E}_{(s_t, a_t) \sim \pi_{\theta_\text{old}}} \left[ \frac{\pi_\theta(a_t|s_t) \pi_\theta(s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)\pi_{\theta_\text{old}}(s_t)} A_{\theta}(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t|s_t) \right] \\
    &\approx \mathbb{E}_{(s_t, a_t) \sim \pi_{\theta_\text{old}}} \left[ \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)} A_{\theta_\text{old}}(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t|s_t) \right] \\
    &= \mathbb{E}_{(s_t, a_t) \sim \pi_\theta} \left[ \frac{\nabla \pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)} A_{\theta_\text{old}}(s_t, a_t) \right]
    \end{align}
    $$
    • 注:\(\pi_\theta\) 和 \(\pi_\text{ref}\) 之间的 KL 散度可以通过 \(\pi_{\theta_\text{old} }\) 和 \(\pi_\text{ref}\) 之间的 KL 散度来近似
  • 因此,GRPO 损失函数的一个进一步近似可以表示如下:
    $$
    \nabla_\theta\mathbb{E}_{\pi_{\theta_{\text{old} } } }\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old} } } } (r(q,o) - KL(\pi_{\theta}, \pi_{\text{ref} }))\right]\approx\nabla_\theta\mathbb{E}_{\pi_{\theta_{\text{old} } } }\left[\frac{\pi_\theta}{\pi_{\theta_{\text{old} } } } (r(q,o) - KL(\pi_{\theta_\text{old} }, \pi_{\text{ref} }))\right]
    $$
    • 此时,这正是 Off-policy 版本的 PPO 的表达形式,两者很相似(注:但并不等价)
      • 注:尽管上述 PPO 和 GRPO 的基本损失函数在 Off-policy 版本中看起来很相似,但两者的实际值不同:
        • 此时 GRPO 的奖励是 Trajectory-level 奖励的总和减去 Token-level KL 散度,最终得到 Token-level 奖励
          • 注意:这里是将 KL 散度放入 奖励 以后的 GRPO,原始的 GRPO 是 Trajectory-level 奖励
        • PPO 中使用的是 Token-level 奖励和(potentially)Trajectory-level KL 散度
          • 问题:原始的 PPO 中的 KL 散度是 Token-level 的,这里的 (potentially)Trajectory-level KL 散度 应该是在说某些场景中使用的 KL 散度奖励是 Trajectory-level 奖励
    • 理解:这里与前面的 vanilla GRPO 公式不同
      • 前面 KL 散度在 loss 上,不在奖励中,不能按照上面进行近似推导(KL 散度有梯度,且需要通过损失函数直接向后传递),所以之前存在问题;
      • 现在这种推导虽然做了近似,但是是合理的(因为相邻两步的策略就应该比较近似才对,此时不需要直接通过 loss 进行 KL 散度梯度回传了)
    • 问题:上面的推导中,将 KL 散度放入 GRPO 的奖励,同时不考虑 Advantage 的计算方式,确实 PPO 和 GRPO 就等价了啊,为什么还要绕一圈去证明?
      • 回答:不是严格的等价,毕竟 GPRO 是整个样本粒度的所有 Token 相同的奖励(原始的 PPO RLHF 中,仅最后一个 Token 有奖励,然后通过 GAE 回传到每个 Token 上)

GRPO 核心要点

  • GRPO 采用组优势归一化,而不是在整个经验回放缓冲区上进行优势归一化,这可以在某些基于规则的奖励设置中获得更好的性能
  • 对于 GRPO 的 On-policy 变体,简单的实现就足够了,因为 \(\pi_{\theta_\text{old} }\) 与 \(\pi_\theta\) 是相同的
  • 对于 GRPO 的 Off-policy 版本,将 KL 项加回奖励函数中更为实用,因为它可以节省计算资源和时间,使其再次几乎等同于 PPO(理解:这里的等同主要强调对 KL 散度的处理)

Potential Impact

  • 这里研究的 KL 损失可能不会显著影响策略模型的收敛速度,因为当前研究表明强化学习算法倾向于接近 On-policy ,特别是对于推理型大语言模型
    • 但随着 GRPO 变得更加 Off-policy ,这种差异可能会变得更加明显
  • 这个问题可能普遍存在于许多开源代码库中,例如 OpenRLHF 和 verl
    • 在 trl 代码库中,默认设置为 On-policy 版本,这可能已经足够
  • 由于目前开源代码中尚未提供真正实现的 Off-policy GRPO,并且三种不同的实现方式尚未得到充分的实验和比较,因此 GRPO 不同实现方式之间的区别以及 GRPO 与 PPO 之间的性能差异仍然是需要持续讨论和考虑的课题

DeepSeek-V3.2 的补充

  • DeepSeek-V3.2 中对 GRPO 的 KL 散度重新进行了推导,并给出了无偏的 KL 散度估计
  • DeepSeek-V3.2 解决的问题本质就是本文提出的问题,但是解决的方法是通过在 KL 散度中增加重要性权重而得到无偏的 KL 散度估计

附录:记一次 GRPO 问题排查过程

  • 问题描述:现实场景中发现过 GRPO 训练时,大部分 Step 的 GBS 内部 Advantage 均值微微大于 0 的情况(约 5e-3 量级)

问题分析

  • 最终经过排查发现似乎是因为归一化时,全等的数据因为计算误差出现了均值不为 0 的情况(此时除以特别小的标准差以后得到的值较大)
  • 表现为同一个 Group 内部归一化后的值相等(均值计算出现误差导致),且归一化后正值的概率大于负值的概率(不同原始值得到的正负误差是确定的,我们的场景更容易出现某个正误差的相同值,所以一直偏正)
  • torch.float32 下的问题复现及 torch.float64 的问题修复
    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
    import torch
    import numpy as np

    # float32 时存在误差
    print(f"\n=======\n数据类型 为 float32 时存在误差")
    # values = [0.6666666865348816] * 8
    values = [0.819531261920929] * 8
    tensors = torch.tensor(values) # PyTorch 默认 是 float32
    print(f"数据类型:{tensors.dtype}") # PyTorch 默认 是 float32
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")

    # float32 时存在误差
    print(f"\n=======\n数据类型 为 float32 时存在误差")
    values = [0.6666666865348816] * 8
    # values = [0.819531261920929] * 8
    tensors = torch.tensor(values) # PyTorch 默认 是 float32
    print(f"数据类型:{tensors.dtype}") # PyTorch 默认 是 float32
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")


    # float64 时不存在误差
    print(f"\n=======\n数据类型 为 float64 时不存在误差")
    # values = [0.6666666865348816] * 8
    values = [0.819531261920929] * 8
    tensors = torch.tensor(values, dtype=torch.float64) # 切换回到 float64
    print(f"数据类型:{tensors.dtype}")
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")


    # float64 时不存在误差
    print(f"\n=======\n数据类型 为 float64 时不存在误差")
    values = [0.6666666865348816] * 8
    # values = [0.819531261920929] * 8
    tensors = torch.tensor(values, dtype=torch.float64) # 切换回到 float64
    print(f"数据类型:{tensors.dtype}")
    x1 = tensors.mean()
    print(f"原始数值:{tensors[0].item()}")
    print(f"均值数值:{x1.item()}")
    print(f"原始数值-均值的结果:{(torch.tensor(values[0]) - x1).item()}")


    # =======
    # 数据类型 为 float32 时存在误差
    # 数据类型:torch.float32
    # 原始数值:0.819531261920929
    # 均值数值:0.8195313215255737
    # 原始数值-均值的结果:-5.960464477539063e-08

    # =======
    # 数据类型 为 float32 时存在误差
    # 数据类型:torch.float32
    # 原始数值:0.6666666865348816
    # 均值数值:0.6666666269302368
    # 原始数值-均值的结果:5.960464477539063e-08

    # =======
    # 数据类型 为 float64 时不存在误差
    # 数据类型:torch.float64
    # 原始数值:0.819531261920929
    # 均值数值:0.819531261920929
    # 原始数值-均值的结果:0.0

    # =======
    # 数据类型 为 float64 时不存在误差
    # 数据类型:torch.float64
    # 原始数值:0.6666666865348816
    # 均值数值:0.6666666865348816
    # 原始数值-均值的结果:0.0

解决方法

  • 解决方法1:切换到精度更高的 torch.float64 (PyTorch 默认为 torch.float32)

    1
    2
    3
    4
    5
    original_dtype = rewards.dtype
    rewards = rewards.to(dtype=torch.float64)
    # 其他原始逻辑不变
    advantages = advantages.to(dtype=original_dtype)
    return advantages
  • 解决方法2:当 std 小于某个值时,其实组内 rewards 差异较小,索性将整体 advantages 置为 0

    1
    2
    3
    4
    if rewards_std < 1e-5:  # 这个阈值可适当调整
    advantages = torch.zeros_like(rewards)
    else:
    advantages = (rewards - rewards_mean) / (rewards_std + 1e-8)
  • 解决方法3:

    • drop 这部分 rewards 相同的样本(反正也不提供有效梯度)
  • 解决方法4:

    • 不使用 std 或者使用 Batch 粒度的 std(比如 使用 Dr.GRPO 等,可减少对误差的放大,这种情况依然会有较小误差,但几乎可以忽略)
    • 注:虽然 DeepSeek 自己最新的文章(DeepSeek-V3.2)没有除以 std,但现在大部分文章还是会使用 GRPO 的(Dr.GRPO 是在一些场景会好用一些,但没有确切证明他比 GRPO 好),比如最新的 GLM-5 就还是除以 std 的
  • 修复后效果:

    • 修复后,可以看到 Advantage 的均值严格在 0 附近波动([-1e-8, 1e-8] 之间),远低于之前的 1e-3 量级,符合预期
    • 修复后,特别是使用 mask std 过小的 Group 方式修复后,kl spike 大幅缩小
      • 分析是因为被错误 Advantage 更新的 Token 变少了,特别是 mask std 过小的 Group 的实验组
    • 修复后,kl 偏离程度更低(因为更新的 Token 变少了)
      • float64 修复时可以做到下游分数相同或更高(因为丢弃的都是错误 Advantage 的 Token)
      • 使用 mask std 过小的 Group 的实验组观察到训练的指标有一定下滑(因为更新的 Token 数量变少了)

附录:GRPO 中 Advantage 归一化后的最大值是多少?

  • 假设有一组数字 \(x_1, x_2, \dots, x_N\)
    • 均值为:
      $$ \mu = \frac{1}{N} \sum_{i=1}^N x_i $$
    • 标准差(总体标准差格式)为:
      $$ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} $$
    • 标准化后的数值 \(z_i\) 定义为:
      $$ z_i = \frac{x_i - \mu}{\sigma} $$
  • 构建极端情况(构造最大的差值)
    • 为了让某个 \(z_i\)(假设是 \(z_1\))达到最大值,需要让 \(x_1\) 尽可能远离均值,而让其余的 \(N-1\) 个数字尽可能集中
      设 \(x_1 = a\),其余数字全部相等,即 \(x_2 = x_3 = \dots = x_N = b\)(且 \(a > b\))
  • 计算均值和离差:
    • 此时均值为:
      $$ \mu = \frac{a + (N-1)b}{N} $$
    • 计算 \(x_1\) 与均值的差:
      $$ x_1 - \mu = a - \frac{a + (N-1)b}{N} = \frac{Na - a - (N-1)b}{N} = \frac{(N-1)(a-b)}{N} $$
    • 计算其余 \(x_i (i > 1)\) 与均值的差:
      $$ x_i - \mu = b - \frac{a + (N-1)b}{N} = \frac{Nb - a - Nb + b}{N} = \frac{-(a-b)}{N} $$
  • 计算标准差
    • 方差 \(\sigma^2\) 的计算如下:
      $$ \sigma^2 = \frac{1}{N} \left[ (x_1 - \mu)^2 + (N-1)(x_i - \mu)^2 \right] $$
    • 代入离差:
      $$ \sigma^2 = \frac{1}{N} \left[ \left( \frac{(N-1)(a-b)}{N} \right)^2 + (N-1) \left( \frac{-(a-b)}{N} \right)^2 \right] $$
    • 提取公因子 \(\frac{(a-b)^2}{N^2}\):
      $$
      \begin{align}
      \sigma^2 &= \frac{(a-b)^2}{N^3} \left[ (N-1)^2 + (N-1) \right] \\
      \sigma^2 &= \frac{(a-b)^2}{N^3} \left[ (N-1)(N-1+1) \right] = \frac{(a-b)^2 (N-1)N}{N^3} = \frac{(a-b)^2(N-1)}{N^2}
      \end{align}
      $$
    • 因此,标准差 \(\sigma\) 为:
      $$ \sigma = \frac{(a-b)\sqrt{N-1} }{N} $$
  • 求出最大值 \(z_{max}\)
    • 将结果代入 \(z_1\) 的公式:
      $$ z_1 = \frac{x_1 - \mu}{\sigma} = \frac{\frac{(N-1)(a-b)}{N} }{\frac{(a-b)\sqrt{N-1} }{N} } $$
    • 化简可消去 \((a-b)\),最终得:
      $$ z_1 = \frac{N-1}{\sqrt{N-1} } = \sqrt{N-1} $$
  • 最终结果:
    • 对于 \(N\) 个数字,经过 Z-score 归一化(标准化)后,任意一个数值的最大理论上限是:
      $$ z_{max} = \sqrt{N-1} $$
  • 在 Z-score 中
    • 当 \(N=2\) 时,最大值为 \(\sqrt{2-1} = 1\)
    • 当 \(N=8\) 时,最大值为 \(\sqrt{7} \approx 2.6457\)
    • 当 \(N=16\) 时,最大值为 \(\sqrt{15} \approx 3.873\)
    • 当 \(N=100\) 时,最大值为 \(\sqrt{99} \approx 9.95\)
  • 注:训练过程中,如果最大值超过这个值,则说明有问题
    • 注:一般来说,N 越大时,出现极端值(其他值均相等)的概率越小,所以 N 越大的时候,实践统计的最大值和理论最大值之间的差距越大(但实际最大值和理论最大值都肯定是随着 N 的增大,单调增大的)
  • 注:虽然在极端分布情况(即总能取到最大值场景)下,随着 N 增大,最大值是单调递增的,但是均值是单调递减的(也就是说如果训练模型的话,极端场景下 Token 的 Advantage 均值会单调递减,详情见后面的证明)

补充:其他归一化方式下的最大值情况

  • 如果使用 Min-Max 归一化
    $$ x’ = \frac{x - \min}{\max - \min}$$
    • 最大值恒等于 \(1\)
  • 如果方差的估计是无偏的(即使用样本标准差,分母为 \(N-1\)),推导过程会略有不同,最终的最大值也会发生变化
    • 无偏样本标准差 \(s\) 定义为:
      $$ s = \sqrt{\frac{1}{N-1} \sum_{i=1}^N (x_i - \bar{x})^2} $$
    • 当使用无偏估计的标准差进行归一化时,类似推导可得到,\(N\) 个数字中结果的最大值是:
      $$ z_{max} = \frac{N-1}{\sqrt{N} } $$
    • 使用 无偏样本标准差 \(s\) 时:
      • 当 \(N=2\) 时,最大值为 \(\frac{2-1}{\sqrt{2} } = \frac{1}{\sqrt{2} } \approx 0.707\)
      • 当 \(N=8\) 时,最大值为 \(\frac{8-1}{\sqrt{8} } = \frac{7}{\sqrt{8} } \approx 2.4749\)

补充 Insight:原始方差越小的数,归一化后的最大值越大

  • 首先澄清一个数学前提:归一化(Z-score 标准化)具有“尺度不变性”
    • 也就是说,如果把所有数字同时乘以 2(标准差也随之变为 2 倍),归一化后的结果是完全不变的
  • 这里 “原始方差越小的数,归一化后的最大值越大”,准确的数学表述可以是:
    • 在保持最大值与均值的距离(离差)不变的情况下,如果减小其他数据的离散程度(从而减小整体 std),归一化后的最大值会变大
  • 证明过程(大致证明):
    • 假设有一组数,其最大值为 \(x_{max}\),均值为 \(\mu\),标准差为 \(\sigma\),归一化后的最大值为:
      $$ z_{max} = \frac{x_{max} - \mu}{\sigma} $$
    • 归一化后的最大值大小,本质上取决于最大值的离差(\(x_{max}-\mu\))在整个标准差中所占的权重
      • 如果原始数据 std 越小(意味着其余数据的波动越小),最大值就显得越像一个“离群点”(Outlier),其归一化后的得分就越高
      • 反之,如果原始数据 std 很大(意味着大家都乱跳),那么即使某个数是最大的,它在概率分布中也不显得突出,归一化后的值自然就小了

GRPO 中 Advantage 归一化后的绝对值的均值是多少?(影响训练的学习率)

  • 补充描述:本节要求的是归一化(Z-score标准化)后数值绝对值的均值(即 \(\frac{1}{N}\sum_{i=1}^N |z_i|\) 或数学期望 \(E[|z|]\))
  • TLDR:在不同原始分布情况下,得到的结论不同

原始分布一:极端分布情况

  • 分布构建
    • 设 \(x_1 = a\),其余 \(N-1\) 个样本 \(x_2 = x_3 = \dots = x_N = b\)(且 \(a > b\))
  • 归一化后的值 \(z_i\)
    • 根据您提供的推导,最大值 \(z_1\) 为:
      $$ z_1 = \sqrt{N-1} $$
    • 对于其余的 \(N-1\) 个样本
      • 离差为
        $$x_i - \mu = \frac{-(a-b)}{N}$$
      • 标准差
        $$\sigma = \frac{(a-b)\sqrt{N-1} }{N}$$
      • 代入公式得:
        $$ z_i = \frac{\frac{-(a-b)}{N} }{\frac{(a-b)\sqrt{N-1} }{N} } = \frac{-1}{\sqrt{N-1} } \quad (i > 1) $$
  • 计算绝对值的均值
    • 绝对值均值 \(M\) 的计算如下:
      $$ M = \frac{1}{N} \sum_{i=1}^N |z_i| = \frac{1}{N} \left( |z_1| + (N-1)|z_i| \right) $$
    • 代入 \(z_1\) 和 \(z_i\) 的绝对值:
      $$ M = \frac{1}{N} \left( \sqrt{N-1} + (N-1)\frac{1}{\sqrt{N-1} } \right) $$
      $$ M = \frac{1}{N} \left( \sqrt{N-1} + \sqrt{N-1} \right) = \frac{2\sqrt{N-1} }{N} $$
  • 最终结果 :极端分布下,归一化后绝对值的均值为
    $$\frac{2\sqrt{N-1} }{N}$$
    • 理解:随着 N 的变大,绝对值的均值在逐步降低
      • 比如:如果在极端分布下,使用 Group Norm 的 Advantage 绝对值均值会比 Batch Norm 的大
    • 具体数值示例:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      import math

      for N in [2, 4, 8, 16, 256, 1024, 2048, 2097152]:
      mean_abs = (2 * math.sqrt(N - 1)) / N
      print(f"N = {N:>8} | mean_abs = {mean_abs:.8f}")

      # 可以看到,不同的 N 值下,均值的差异(学习率差异可以是几十倍,甚至几千倍)
      # N = 2 | mean_abs = 1.00000000
      # N = 4 | mean_abs = 0.86602540
      # N = 8 | mean_abs = 0.66143783
      # N = 16 | mean_abs = 0.48412292
      # N = 256 | mean_abs = 0.12475562
      # N = 1024 | mean_abs = 0.06246947
      # N = 2048 | mean_abs = 0.04418338
      # N = 2097152 | mean_abs = 0.00138107 (注:PPO Advantage 粒度做归一化时,样本数量可能非常大,但分布不会这么极端)

原始分布二:正态分布

  • 分布构建
    • 假设原始数据服从正态分布 \(x \sim \mathcal{N}(\mu, \sigma^2)\)
  • 归一化后的分布
    • 经过 Z-score 归一化后,\(z\) 服从标准正态分布,即 \(z \sim \mathcal{N}(0, 1)\)
    • 其概率密度函数为:
      $$ f(z) = \frac{1}{\sqrt{2\pi} } e^{-\frac{z^2}{2} } $$
  • 计算绝对值的期望(均值)
    • 求解 \(E[|z|]\),由于 \(f(z)\) 是偶函数,可化简为:
      $$ E[|z|] = \int_{-\infty}^{\infty} |z| f(z) dz = 2 \int_{0}^{\infty} z \frac{1}{\sqrt{2\pi} } e^{-\frac{z^2}{2} } dz $$
    • 设 \(u = \frac{z^2}{2}\),则 \(du = z dz\):
      $$ E[|z|] = \sqrt{\frac{2}{\pi} } \int_{0}^{\infty} e^{-u} du = \sqrt{\frac{2}{\pi} } \left[ -e^{-u} \right]_0^\infty $$
      $$ E[|z|] = \sqrt{\frac{2}{\pi} } (0 - (-1)) = \sqrt{\frac{2}{\pi} } $$
  • 最终结果 :正态分布下,归一化后绝对值的均值(期望)为
    $$\sqrt{\frac{2}{\pi} } \approx 0.7979$$
    • 理解:此时的均值结果是固定值,平时的大部分情况下,都可以假定 归一化前的 Advantage 服从高斯分布或类似高斯分布

原始分布三:均匀分布

  • 分布构建
    • 假设原始数据服从连续均匀分布 \(x \sim U(a, b)\)
  • 计算均值与标准差
    • 均值 \(\mu = \frac{a+b}{2}\)
    • 方差 \(\sigma^2 = \frac{(b-a)^2}{12}\),标准差 \(\sigma = \frac{b-a}{2\sqrt{3} }\)
  • 归一化后的分布
    • 归一化后的 \(z = \frac{x-\mu}{\sigma}\) 依然服从均匀分布
    • 计算 \(z\) 的边界:
      $$
      \begin{align}
      z_{max} &= \frac{b - \frac{a+b}{2} }{\frac{b-a}{2\sqrt{3} } } = \frac{\frac{b-a}{2} }{\frac{b-a}{2\sqrt{3} } } = \sqrt{3} \\
      z_{min} &= -\sqrt{3}
      \end{align}
      $$
    • 因此,\(z \sim U(-\sqrt{3}, \sqrt{3})\),其概率密度函数为 \(f(z) = \frac{1}{2\sqrt{3} }\)
  • 计算绝对值的期望(均值)
    • 求解 \(E[|z|]\),同样利用偶函数性质:
      $$
      \begin{align}
      E[|z|] &= \int_{-\sqrt{3} }^{\sqrt{3} } |z| \frac{1}{2\sqrt{3} } dz = 2 \int_{0}^{\sqrt{3} } z \frac{1}{2\sqrt{3} } dz \\
      &= \frac{1}{\sqrt{3} } \left[ \frac{z^2}{2} \right]_0^{\sqrt{3} } = \frac{1}{\sqrt{3} } \times \frac{3}{2} = \frac{\sqrt{3} }{2}
      \end{align}
      $$
  • 最终结果 :均匀分布下,归一化后绝对值的均值(期望)为
    $$ \frac{\sqrt{3} }{2} \approx 0.8660$$

补充:真实场景说明

  • 现象:在真实 PPO 训练场景中(Advantage Batch Norm),统计看到的 Advantage 的绝对值的均值约在 [0.78, 0.93] 之间波动
    • 原因是因为分布在不断变化,不同分布下得到的 Advantage 绝对值的期望值是不一样的,故而训练过程中存在波动
    • 同理:GRPO 训练过程中,Group 内归一化后的 Advantage 绝对值的均值也会存在波动

NLP——LLM对齐微调-Pass@k-Training

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:Pass@k Training for Adaptively Balancing Exploration and Exploitation of Large Reasoning Models, 20250814, RUC & ByteDance Seed
    • 相关博客:几行代码改个reward,让RL效果起飞

Paper Summary

  • 整体理解:
    • 论文在 RLVR 框架内提出了 Pass@k Training 方法:实现大语言模型探索和利用能力的相互提升,从而突破其整体性能的极限
    • 论文证明了使用 Pass@k 作为奖励可以有效增强模型探索多样化输出的能力,进而提高其利用能力
    • 为了提高训练效率和有效性,论文引入了 bootstrap 采样机制和优势函数的解析推导,以优化 Pass@k Training 过程
    • 为了更好地理解 Pass@k Training 的内在机制,论文从不同方面提出了五个研究问题,以解答 Pass@k Training 为何有效以及能带来哪些益处
    • 检查优势值曲线,论文初步确定了促成 Pass@k Training 成功的两个关键因素 ,即:
      • 绝对优势之和 \(\eta\) 的 argmax
      • 绝对优势之和 \(\eta\) 的趋势(trend)
  • 背景和问题:RLVR 通常采用 Pass@1 作为奖励,在平衡探索(exploration)和利用(exploitation)方面面临挑战,导致策略倾向于保守行为,收敛到局部最优
    • Pass@k 在之前的工作中已被用于评估,但它与 RLVR 中 LLM 探索能力的关联在很大程度上被忽视了
    • 论文使用 Pass@k 作为奖励来训练策略模型(即 Pass@k Training ),并观察到其探索能力的提升
    • 论文还推导了 Pass@k Training 优势的解析解,形成了一个高效且有效的流程
  • 作者通过分析得到以下发现:
    • 探索和利用并非本质上相互冲突的目标,反而可以相互促进
    • 带有解析推导的 Pass@k Training 本质上涉及直接设计优势函数
  • 受此启发,论文初步探索了 RLVR 的优势设计,展示了良好的结果,并指出了一个潜在的未来方向
  • 思考:论文的重点是公式 14 和 公式 15,这种给与负样本一定的奖励的方式究竟和普通的 RLVR 有何区别,还需要深思

Introduction and Discussion

  • RLVR 用于解决复杂推理任务,并显著提升大型语言模型 LLM 的推理能力(2024)
  • 在 RLVR 训练过程中,LLM 基于给定的提示生成各种响应,并根据响应获得奖励(2024)
  • LLM 从结果级(outcome-level)监督中学习,能够生成更全面的推理过程(2025),从而在下游任务上取得更好的性能
  • 大型推理模型(large reasoning models, LRMs,如 OpenAI o1(2024)和 DeepSeek R1(2025))的成功,表明 RLVR 训练突破了 LLM 的能力极限
  • 当前 RLVR 训练通常优化 Pass@1 目标,也称为 ** Pass@1 Training**
    • LLM 从自身探索中学习,并为给定提示生成最自信的响应(2025),这带来了探索与利用平衡的重大挑战(2025)
  • 通常,探索指的是执行新颖且多样的行为(2024),而利用则要求 LLM 调用验证器在已知行为中偏好的可靠行为(2024)
  • 在 Pass@1 Training 过程中,LLM 倾向于模仿在先前尝试中能提高奖励分数的行为 ,并避免获得低奖励的行为(2024, 2025)
    • 但在结果监督(这是流行的 Pass@1 Training 设置(2025))中,答案正确但推理错误的解会获得正奖励 ,而推理正确但答案错误的解会被赋予负奖励(2024, 2025)
    • 在这种情况下,包含正确思路的不成功探索往往不会获得奖励,代价很高,导致利用与探索失衡(2025),可能使策略放弃探索并收敛到局部最优(2021)
    • 受强化学习方法(如 PPO 和 GRPO)下奖励的次优性质限制(2013, 2024, 2025),LLM 面临进一步学习的挑战,限制了 RLVR 流程的有效性和提升潜力
  • 为了缓解 Pass@1 Training 中 LLM 探索能力受损的问题,论文提出一种以优化为中心的方法,对错误响应有更高的容忍度 ,因为这些响应可能包含有用的思路或推理行为 ,防止模型陷入局部最优 ,从而扩展其能力上限 ,使其逐渐接近全局最优
  • Pass@k 已被用于评估策略是否能在 k 次尝试内生成正确响应,这是评估 LLM 能力边界的常用指标(2024)
    • 与 Pass@1 指标相比,Pass@k 指标允许策略生成多个错误响应
    • 论文考虑是否可以在 RLVR 过程中利用 Pass@k 指标来突破 LLM 的能力边界
  • 在 Pass@k 评估中,为了最大化 k 个样本中至少有一个成功的概率,“聪明的(smart)” 的策略会生成 k 个彼此不同且覆盖解空间不同区域的候选解 ,而不是 k 个高度相似的样本
    • 更强的探索能力使模型能够获得更全面的知识和更强的鲁棒性
    • 理解:为了提升 Pass@k 指标的分数,聪明的策略应该是生成差异较大的多个解,而不是很相似的,这样才能最大化分数(广撒网,总能捞到鱼)
  • 论文利用 Pass@k 指标作为奖励,持续训练一个已经过 Pass@1 Training 的模型(称为 Pass@k Training )
    • 论文发现,通过这种方法训练的模型在测试集上能获得更高的 Pass@k 分数,同时保持其 Pass@1 分数
  • Pass@k Training 的朴素实现存在几个关键问题,论文进一步采用 bootstrap 采样(2004, 2006)和解析推导来优化训练过程,实现了高效且有效的 Pass@k Training(第 2 节)
  • 为了进一步理解 Pass@k Training 的特征和内在机制,论文提出了五个研究问题,以探究 Pass@k Training 在 RLVR 训练过程中如何平衡 LLM 的探索和利用能力
  • 论文还观察到 Pass@k 阻止了策略分布熵的自然下降,熵也是指示策略探索能力的关键指标(2025)(第 3 节)
  • 从隐式奖励设计的角度,论文分析了 Pass@k Training 有效性的关键因素,并探索了其优化的几种可能途径(第 4 节)
  • 总体而言,论文工作的主要收获可以总结如下:
    • 与 Pass@1 Training 相比,Pass@k Training 显著增强了 LLM 的探索能力,在提高 Pass@k 性能的同时不损害 Pass@1 分数
      • 在其三个渐进式变体中,bootstrap 采样比全采样具有更高的训练效率,而解析推导作为其理论渐近形式,减轻了采样引入的方差(第 2 节)
    • 与 Pass@1 Training 及其变体相比,Pass@k Training 对 k 的不同取值具有鲁棒性,并且在不同领域和任务中具有可推广性
      • LLM 探索能力的增强有助于通过持续训练提高其利用能力,使 7B 规模的 LLM 超越强大的 LLM(如 GPT-4o 和 Claude-3.7),凸显了 Pass@k Training 的实用价值(第 3 节)
    • 带有解析推导的 Pass@k Training 直接设计优势函数,可被视为一种隐式奖励设计形式
      • 实证实验表明,隐式奖励设计允许更精细的优化控制,例如专注于更难的问题或提高训练效率,而无需复杂的理论推导,这使其成为未来 RLVR 发展的一个有前景的方向(第 4 节)

Pass@k as Reward in RLVR Training

  • 本节的内容如下,
  • 首先阐述推理任务的公式化表达,回顾传统的 Pass@1 Training (第 2.1 节)
  • 介绍如何在 RLVR 训练过程中使用 Pass@k 作为奖励(第 2.2 节),然后提出两种渐进式增强方法来提高训练效率和有效性(第 2 节和第 2.4 节)
  • 论文在图 2 中展示了概述,并在附录 C 中提供了伪代码,展示 Pass@k Training 的实现细节

Formulation of Reasoning Tasks and Pass@1 Training

  • 复杂推理任务可以评估 LLM 的推理和逻辑能力
  • 一般来说:
    • 来自数据集 \(D\) 的一个问题包含描述 \(x\) 和真实答案 \(y\)
    • 策略 \(\pi_{\theta}\)(即具有参数 \(\theta\) 的 LLM)需要基于 \(x\) 生成响应
      $$\hat{y}=\{t_{1}, t_{2}, …, t_{l}\}$$
      • 其中 \(t_{i}\) 和 \(l\) 分别指第 \(i\) 个 Token 和响应 \(\hat{y}\) 的长度
    • 在获得生成的响应 \(\hat{y}\) 后,验证器用于验证 LLM 响应的正确性,并提供奖励
      $$ R(y, \hat{y}) \in \{R_\text{neg}, R_\text{pos}\}$$
      • \(R_\text{neg} < R_\text{pos}\)
      • \(R_\text{neg}\) 用于负响应
      • \(R_\text{pos}\) 用于正响应
    • 为了简化符号,论文用 \(R\) 表示 \(R(y, \hat{y})\)
    • 在论文的实验中,论文采用 \(R_\text{neg}=0\) 且 \(R_\text{pos}=1\)
  • 基于上述推理任务的公式化表达,在 Pass@1 Training 过程中(例如,GRPO(2024)),优势通过同一组内响应奖励的平均值和标准差来估计,如下所示:
    $$\overline{R}=\frac{1}{N_\text{rollout } } \sum_{i=1}^{N_\text{rollout } } R_{i}, \\
    \sigma=\frac{1}{N_\text{rollout } } \sqrt{\sum_{i=1}^{N_\text{rollout } }\left(R_{i}-\overline{R}\right)^{2} }, \\
    \hat{A}_{i, 1}=\hat{A}_{i, 2}=\cdots=\hat{A}_{i,\left|\hat{y}_{i}\right|}=\frac{R_{i}-\overline{R} }{\sigma},$$
    • \(N_\text{rollout}\) 表示对应问题的 rollout 响应数量
    • \(R_{i}\) 和 \(\hat{y}_{i}\) 分别指第 \(i\) 个响应的奖励和生成的响应
  • 获得优势值后,GRPO 利用以下方程计算目标函数 \(T(\theta)\),该函数用于执行梯度下降并优化模型参数:
    $$\mathcal{J}(\theta)=\mathbb{E}_{(q, a) \sim D,\left\{o_{i}\right\}_{i=1}^{G} \sim \pi_{\theta}(\cdot | q)}\left[\frac{1}{G} \sum_{i=1}^{G} \frac{1}{\left|\hat{y}_{i}\right|} \sum_{t=1}^{\left|\hat{y}_{i}\right|}\left(min \left(r_{i, t} \hat{A}_{i, t}, clip\left(r_{i, t}, 1-\varepsilon, 1+\varepsilon\right) \hat{A}_{i, t}\right)-\beta D_{kL}\right)\right] .$$
  • 由于在 GRPO 中每个 Token 共享相同的优势值,论文在后续讨论中将不再区分 Token 级别,而是用 \(\hat{A}_{i}\) 表示第 \(i\) 个响应的优势值
  • 为了提高 RLVR 训练过程的有效性和效率,论文在后续实验中采用了 GRPO 的一个变体(即 DAPO(2025)),仅保留 clip-higher 和 Token 级策略梯度损失

Pass@k Training

  • 论文考虑是否可以采用 Pass@k 指标作为奖励来突破 LLM 的能力边界(因为 Pass@k 可以反映 LLM 的探索能力)
  • 下面先介绍 Pass@k 指标的定义,在将 Pass@k 指标纳入 RLVR 的奖励函数中
  • Pass@k 指标的定义(Definition of Pass@k Metric) :
    • 给定问题 \(x\),策略模型通过特定的解码策略或搜索算法(例如,基于采样的解码策略或蒙特卡洛树搜索)rollout \(k\) 个响应
    • 第 \(i\) 个采样响应 \(\hat{y}_{i}\) 将获得由验证器提供的奖励 \(R_{i}\)
    • Pass@k 指标的值定义为从 \(k\) 个采样响应中获得的预期最大奖励。形式上,Pass@k 指标可以通过以下方程计算:
      $$Pass @ k=\mathbb{E}_{(x, y) \sim D,\left\{\hat{y}_{i}\right\}_{i=1}^{k} \sim \pi_{\theta}(\cdot | x)}\left[max \left(R_{1}, …, R_{k}\right)\right] .$$
  • Pass@k 实现:全采样(Pass@k Implementation: Full Sampling) :
    • 为了将 Pass@k 指标集成到 RLVR 过程中,论文通过全采样机制提出一种基本实现
    • 首先利用策略 \(\pi_{\theta}\) 为给定问题 rollout \(N_\text{rollout}\) 个响应
      $$ \hat{\mathcal{Y}}=\{\hat{y}_{1}, …, \hat{y}_{N_\text{rollout} }\} $$
      • 在这种情况下,这些响应被分成 \(N^\text{group}=\left\lfloor\frac{N_\text{rollout} }{k}\right\rfloor\) 个组,多余的响应被丢弃
        • 问题:这里有毒吧,生成时刻意生成整数倍的 rollout 就好了,为什么要生成了然后又丢掉?
      • 其中第 \(j\) 个组包含 \(k\) 个响应
        $$ \hat{\mathcal{Y}}^{j}=\{\hat{y}_{k \times(j-1)+1}, …, \hat{y}_{k \times(j-1)+k}\} $$
    • 然后论文根据每个组的 Pass@k 值为其分配奖励分数:
      • 验证器将为每个响应提供奖励,组奖励通过该组内响应的奖励的最大值计算
      • 遵循 DAPO 算法中的优势估计方法,可以计算第 \(j\) 个组的优势值 \(\hat{A}^{j}\)
      • 论文将组优势分配给该组包含的响应 ,即
        $$ \hat{A}_{k \times(j-1)+1}=\cdots=\hat{A}_{k \times(j-1)+k}=\hat{A}^{j}$$
        • 问题:这种分组是随机的,得到的结果真的置信吗?是否仅仅是增加熵损失或者随机对 rollout 结果进行 SFT 也能拿到收益?
          • 回答:也不是完全随机,绝对正确的样本始终能拿到正向的奖励
      • 最后,我们可以利用采样的响应及其优势值来优化模型参数
  • 实证见解:提高探索能力(Empirical Insight: Improving Exploration) :
    • 为了评估采用 Pass@k 作为奖励的有效性,论文比较了全采样的 Pass@k Training 与常规 Pass@1 Training 的性能,如图 3 所示
    • 论文观察到,在 Pass@1 Training 过程中,下游任务的 Pass@k 性能保持稳定且仅有轻微提升
      • 虽然 Pass@1 指标在训练初期有所提高,但在后期阶段停滞不前,表明模型已陷入局部最优
    • 相比之下,在 RLVR 过程中采用 Pass@k 作为奖励时,LLM 在下游任务上的 Pass@k 性能持续提升 ,更多的训练步骤或更多的 rollout 次数不断带来 LLMs 性能的进一步提升
      • 这表明 Pass@k Training 具有可扩展性
    • 特别说明:Pass@k Training 不会损害模型的 Pass@1 性能,甚至会带来 Pass@1 性能的提升
      • 这表明 Pass@k Training 和 Pass@1 Training 具有相似的优化目标和方向,并且它们可以一起得到改善
  • 图 3 基线设置下 Pass@1 Training 和全采样的 Pass@k Training 的训练进度
  • Takeaway from Section 2.2
    • 与使用 Pass@1 作为奖励函数的传统 RLVR 训练方法相比,使用 Pass@k 作为 RLVR 训练的奖励函数可以有效提高模型在下游任务上的 Pass@k 性能,同时不损害其 Pass@1 性能

Efficient Pass@k Training via Bootstrap Sampling(通过 Bootstrap 采样可实现高效的 Pass@k Training )

  • Pass@k Training 可以突破 LLM 的能力极限,但随着 \(N^\text{group}\) 的增加,rollout 次数显著增加,会消耗更多的计算资源
  • 论文考虑利用 bootstrap 采样机制来减少 rollout 次数,同时保持组的数量不变
  • 在 rollout 过程中,首先使用策略模型 \(\pi_{\theta}\) 为给定问题 \(x\) 生成 \(N_\text{rollout}\) 个响应
    $$ \hat{\mathcal{Y}}=\{\hat{y}_{1}, …, \hat{y}_{N_\text{rollout} }\} $$
  • 构建用于后续优化过程的 \(N^\text{group}\) 个组的过程
    • 从先前生成的响应集 \(\hat{\mathcal{Y}}\) 中随机采样 \(k\) 个响应,这些采样的响应共同构成一个组
      • 问题:上面这句话有点多余?
    • 为了构建第 \(j\) 个组,论文从 1 到 \(N_\text{rollout}\) 的范围内选择 \(k\) 个不同的值,得到集合
      $$ \mathcal{P}=\{p_{j, 1}, …, p_{j, k}\}$$
      • 然后,索引在集合 \(\mathcal{P}\) 中的响应构成当前组
        $$ \hat{\mathcal{Y}}^{j}=\{\hat{y}_{p_{j, 1} }, …, \hat{y}_{p_{j, k} }\}$$
    • 这个过程将重复 \(N^\text{group}\) 次,收集 \(N^\text{group}\) 组响应
  • 获得这些组后,我们可以估计每个组的优势值并将其分配给响应
  • 由于论文使用 bootstrap 采样策略来构建组,一些响应可能出现在多个组中
  • 对于每个响应,论文通过对其所属的所有组的优势求和来计算其最终优势,即:
    $$\hat{A}_{i}=\sum_{j=1}^{N^\text{group } } \hat{A}^{j} \cdot \mathbb{I}\left[\hat{y}_{i} \in \hat{\mathcal{Y} }^{j}\right],$$
    • 其中 \(\mathbb{I}[\hat{y}_{i} \in \hat{\mathcal{Y}}^{j}]\) 是一个指示函数,当且仅当第 \(i\) 个响应 \(\hat{y}_{i}\) 属于第 \(j\) 个组 \(\hat{\mathcal{Y}}^{j}\) 时返回 1,否则返回 0
    • 在实践中,论文为了高效的 RLVR 过程设置 \(N^\text{group}=N_\text{rollout}\)
  • 实证见解:减少训练预算(Empirical Insight: Reduction in Training Budget) :
    • 为了评估 bootstrap 采样对 Pass@k Training 的有效性,论文进行了 Pass@1 Training 和具有不同 rollout 次数的全采样 Pass@k Training (如第 2.2 节所述)作为基线方法,并在图 4 中展示了评估结果
    • 在相同的 rollout 次数 \(N_\text{rollout}\) 下
      • 即“\(N_\text{rollout}=32\) 采用全采样”与“\(N_\text{rollout}=32\) 采用 bootstrap 采样”,bootstrap 采样优于全采样
      • 这种改进源于 bootstrap 采样生成了更多的组 ,这反过来减少了采样奖励分布相对于真实分布的方差 ,从而得到更稳定和有效的训练
      • 理解:这种 bootstrap 采样的方式更合适,看似能够较为精确的区分相应的优劣(错误的回复是以概率被赋值奖励为 0 的),但本质是一样的,还是所有正确的回复都是正奖励,错误的回复以一定概率获得0奖励 or 正奖励
    • 在相同的组数量 \(N^\text{group}\) 下
      • 与全采样相比(即“\(N_\text{rollout}=128\) 采用全采样”),bootstrap 采样在 Pass@k 指标上不会导致显著的性能下降,并且它只需要理论计算成本的四分之一,从而实现更高的训练效率
      • 此外,它在 Pass@1 指标上达到了与全采样相当的性能
    • 总之,带有 bootstrap 采样的 Pass@k Training 优于 Pass@1 Training ,并提高了全采样训练过程的效率
  • 图 4 不同 \(N_\text{rollout}\) 下 Pass@1 Training 和带有 Bootstrap 采样的 Pass@k Training 的训练进度
  • Takeaway from Section 2.3
    • 与基于全采样的 Pass@k Training 方法相比,基于 bootstrap 采样的训练方法在相同的 rollout 次数下可以获得更好的训练结果
    • 在相同的组数量下,它可以减少计算开销,同时达到相当的性能

Analytical Derivation(解析推导)of Efficient and Effective Pass@k Training

  • 基于第 2.3 节中描述的 bootstrap 采样机制的想法,论文推导了响应优势(即 \(\hat{A}_\text{pos}\) 和 \(\hat{A}_\text{neg}\))的解析解,以消除构建组时的采样操作带来的方差
    • 推导的细节在附录 B 中呈现
  • 为了推导出优势的解析公式,论文首先分析组的优势奖励和标准差,即 \(\bar{R}^\text{group}\) 和 \(\sigma^\text{group}\)
  • 包含至少一个正响应的组(称为正组)将被分配正奖励 \(R_\text{pos}\),而其他组(称为负组)将被赋予负奖励 \(R_\text{neg}\)
  • 遵循 DAPO 的优势估计方法,计算组奖励分数的平均值和标准差至关重要
  • 首先,组的平均奖励可以表述为以下方程:
    $$\overline{R}^\text{group}=\frac{1}{N_\text{total }^\text{group} } × \left( N_\text{pos}^\text{group } × R_\text{pos }+N_\text{neg }^\text{group } × R_\text{neg }\right) ,\tag{7}$$
    • \(N_\text{total}^\text{group}\) 指组的总数
    • \(N_\text{pos}^\text{group}\) 和 \(N_\text{neg}^\text{group}\) 分别表示正组和负组的数量
  • 为了计算正组和负组的数量,论文首先定义正响应的数量为 \(N_\text{pos}\),负响应的数量为 \(N_\text{neg}\),通常有:
    $$ N_\text{pos}+N_\text{neg}=N_\text{rollout}$$
  • 基于上述定义,由于每个组由选择的 \(k\) 个响应构成,我们可以得到组的总数 \(N_\text{total}^\text{group}\) 如下:
    $$N_\text{total }^\text{group }=\left(\begin{array}{c}N_\text{rollout } \\ k \end{array}\right) =N_\text{pos}^\text{group }+N_\text{neg }^\text{group } .\tag{8}$$
  • 由于负组不包含正响应,当且仅当从所有响应中随机采样 \(k\) 个负响应时,这些采样的响应才能构成负组。因此,负组的数量可以计算如下:
    $$N_\text{neg }^\text{group }=\left(\begin{array}{c} N_\text{neg } \\ k \end{array}\right) .\tag{9}$$
  • 根据方程 8 和方程 9,我们可以得到正组的数量:
    $$N_\text{pos }^\text{group}=N_\text{total}^\text{group}-N_\text{neg}^\text{group}=\left( \begin{array}{c}{N_\text{rollout} } \\ {k}\end{array} \right)-\left( \begin{array}{c}{N_\text{neg} } \\ {k}\end{array} \right) .\tag{10}$$
  • 将方程 8、方程 9 和方程 10 代入方程 7,我们可以得到组的平均奖励 \(\bar{R}^\text{group}\):
    $$\overline{R}^\text{group }=1-\frac{\left(\begin{array}{c} N_\text{neg } \\ k \end{array}\right)}{\left(\begin{array}{c} N_\text{rollout } \\ k \end{array}\right)} .\tag{11}$$
  • 基于组的平均奖励 \(\bar{R}^\text{group}\),标准差可以计算如下:
    $$\sigma ^\text{group}=\sqrt {\overline {R}^\text{group}× \left( 1-\overline {R}^\text{group}\right) } .\tag{12}$$
  • 基于奖励分数的平均值(方程 11)和标准差(方程 12),论文最终可以推导出正组 \(\hat{A}_\text{pos}^\text{group}\) 和负组 \(\hat{A}_\text{neg}^\text{group}\) 的优势如下:
    $$\hat{A}_\text{pos}^\text{group}=\frac{R_\text{pos}-\overline{R}^\text{group} }{\sigma^\text{group} }=\frac{1-\overline{R}^\text{group} }{\sigma^\text{group} }, \hat{A}_\text{neg}^\text{group}=\frac{R_\text{neg}-\overline{R}^\text{group} }{\sigma^\text{group} }=-\frac{\overline {R}^\text{group} }{\sigma ^\text{group} } .\tag{13}$$
  • 为了将前一节中获得的组相关优势 \(\hat{A}_\text{pos}^\text{group}\) 和 \(\hat{A}_\text{neg}^\text{group}\) 转换为响应相关优势 \(\hat{A}_\text{pos}\) 和 \(\hat{A}_\text{neg}\),论文需要考虑每个响应所属组的正确性,并按比例计算优势值
    • 通常,一个响应将属于 \(\left(\begin{array}{c}N_\text{rollout }-1 \\ k-1\end{array}\right)\) 个组,因为当且仅当从剩余的 \(N_\text{rollout}-1\) 个响应中选择 \(k-1\) 个响应时,才能与当前响应形成一个组
    • 此外,对于正响应,它所属的组总能通过 Pass@k 验证(即正组)
    • 因此,正响应的优势 \(\hat{A}_\text{pos}\) 可以计算如下:
      $$ \color{red}{\hat{A}_\text{pos }=\frac{1-\overline{R}^\text{group } }{\sigma^\text{group } } } .\tag{14}$$
  • 然后,考虑负响应,它所属的组是负组当且仅当其他 \(k-1\) 个响应都是负响应。在这种情况下,所需的组数量是 \(\left(\begin{array}{c}N_\text{neg }-1 \\ k-1\end{array}\right)\),即当前响应可以与从剩余的 \(N_\text{neg}-1\) 个负响应中选择的任何 \(k-1\) 个响应形成负组
    • 基于负组的数量,我们可以通过从组的总数中减去负组的数量来计算正组的数量,即 \(\left(\begin{array}{c}N_\text{rollout }-1 \\ k-1\end{array}\right)-\left(\begin{array}{c}N_\text{neg }-1 \\ k-1\end{array}\right)\)
    • 因此,负响应的优势 \(\hat{A}_\text{neg}\) 可以计算如下:
      $$ \color{red}{ \hat{A}_\text{neg}=\left(1-\overline{R}^\text{group }-\frac{\left(\begin{array}{c} N_\text{neg }-1 \\ k-1 \end{array}\right)}{\left(\begin{array}{c} N_\text{rollout }-1 \\ k-1 \end{array}\right)}\right) \times\left(\sigma^\text{group }\right)^{-1} }.\tag{15}$$
    • 问题:使用这种相对固定的(因为分母上存在方差,所以不算是严格的固定),比正样本小一些的奖励,是否等价于不给任何奖励啊?
  • 在获得响应相关优势 \(\hat{A}_\text{pos}\) 和 \(\hat{A}_\text{neg}\) 的解析解后,论文直接将它们用于优势估计过程,然后优化模型参数
    • 通过检查优势值的解析解,论文观察到它仅取决于采样响应的总数 \(N_\text{rollout}\)、正响应的数量 \(N_\text{pos}\)、负响应的数量 \(N_\text{neg}\) 以及 \(k\) 的值
    • 因此,在 rollout 过程之后,我们可以直接计算每个响应的优势值用于 RLVR 训练,而无需经过前面描述的繁琐奖励计算过程
    • 问题:这是否再次说明了,实际上随机挑选一部分负样本给与一定权重(权重可以是超参数)奖励就可以,不需要那么复杂做什么 Pass@k Training?
  • 实证见解:Pass@k 的进一步改进(Empirical Insight: Further Improvement on Pass@k) :
    • 为了进行评估和比较,论文将 rollout 次数 \(N_\text{rollout}\) 统一设置为 32,并比较了 Pass@1 Training 以及带有 bootstrap 采样和解析推导的 Pass@k Training 的训练效果
    • 实验结果如图 5 所示
    • 为了进行全面评估,论文还进行了不同 LLM 在各种任务上的外部实验,并在附录 E 中展示了结果
    • 在实验中,我们可以观察到两种 Pass@k Training 都比 Pass@1 Training 取得了更好的结果,这进一步证实了 Pass@k Training 的有效性
    • 当训练步骤增加时,基于 bootstrap 采样的 Pass@k Training 在 400 步时经历了相对剧烈的性能波动,Pass@k 性能下降,这表明该方法存在一定的不稳定性
      • 理解:不稳定的原因是因为采样,而使用带有解析推导的 Pass@k Training 则没有采样,会更稳定
    • 相比之下,对于基于 bootstrap 采样的方法,带有解析推导的 Pass@k Training 消除了构建组所需的采样过程
    • 它通过解析解的计算直接减少了采样过程引起的方差,从而提供了更稳定的训练过程
    • 因此,带有解析推导的 Pass@k Training 方法可以减少训练过程中的波动,并随着训练步骤的增加带来持续的性能提升
  • Takeaway from Section 2.4
    • 带有解析推导的 Pass@k Training 不仅避免了全采样中大量 rollout 带来的计算开销,还消除了 bootstrap 采样中采样引入的方差。这使得 RLVR 训练过程更高效和有效,并且可以引导模型的探索能力随着训练步骤的增加而不断提高

Balancing Exploration and Exploitation with Pass@k Training

  • 在本节中,论文进一步研究 Pass@k Training 的特征和有效性
  • 第 3.1 节:论文将 Pass@k Training 与常用的增强模型探索能力的方法(2025, 2025)进行比较,以进一步验证其有效性
  • 第 3.2 节:为了更深入理解 Pass@k Training 如何影响模型的探索能力,论文考察了模型响应的多样性和策略分布的熵
  • 第 3.3 节:论文想知道 Pass@k Training 带来的改进是否可以迁移到其他领域或任务中,进而评估其泛化性能
  • 第 3.4 节:由于 RLVR 的稳定性和鲁棒性受到广泛关注(2023, 2025, 2025),论文分析了 k 值对 Pass@k Training 过程的影响
  • 第 3.5 节:由于 Pass@1 在实际应用中是一个更重要的指标,论文探索了如何将 Pass@k Training 的收益迁移到模型的 Pass@1 性能上,实验结果证明了 Pass@k Training 的高实用价值

How does Pass@k Training Compare to Noise Rewards or Entropy Regularization?(Pass@k Training 与噪声奖励或熵正则化相比)

  • 受 Pass@k Training 流程(第 2.2 节)和先前工作(2025)的启发,论文将 Pass@k Training 与两种基线方法(即噪声奖励(Noise Rewards)和熵正则化(Entropy Regularization))进行了比较
  • 噪声奖励(Noise Rewards) :
    • 回顾利用 Pass@k 指标作为奖励的 RLVR 流程(如第 2.2 节所述),论文注意到,如果某些负响应属于正组,它们可能会获得正奖励 \(R_\text{pos}\)
      • 这引发了一个问题:Pass@k 分数的提升是否部分源于从这些带有反事实正奖励的负响应中学习
    • 为了探究这一点,论文进行了一项实验,其中一定比例(即 10%、30% 和 50%)的负响应奖励被翻转
    • 结果如图 6a 所示,实证结果表明:
      • 鼓励 LLM 从负响应中学习对提高其推理能力没有帮助 ,相反,在奖励中引入更高比例的噪声会显著降低模型性能
      • 随着翻转奖励比例的增加,模型在 Pass@1 和 Pass@k 指标上的性能均逐渐下降
      • 随着训练步骤的增加,性能继续下降
      • 理解:翻转的负样本得到的奖励太高,不行,应该给与较小的奖励才公平?
    • 这些发现表明,直接在奖励中加入噪声并不能增强 LLM 的推理能力
      • 相反,必须仔细控制噪声比例,例如通过 Pass@k 指标的结构化设计,这可以引导 LLM 突破其现有推理能力的限制
  • 熵正则化(Entropy Regularization) :
    • 大量研究(2025)指出,熵可以指示 LLM 的探索能力,并且可以纳入目标函数以保持其探索能力
    • 遵循先前的工作(2025),论文在 RLVR 训练过程中采用系数为 {0.001, 0.003, 0.005} 的熵正则化,并在图 6b 的右侧部分展示结果
    • 结果表名:
      • 高熵正则化系数可能导致模型崩溃(例如将系数设置为 0.005 时)
      • 尽管小的熵正则化系数不会使 LLM 崩溃,但它仍然无法优于 Pass@k Training,甚至会随着训练步骤的增加导致 LLM 的性能下降
    • 上述现象表明,熵正则化可能会影响训练的有效性和稳定性
  • 关于其他熵引导方法的讨论(Discussion about Other Entropy-guided Approaches) :
    • 论文比较了 Pass@k Training 与熵引导方法的朴素实现(即熵正则化)的有效性
    • 此外,还有其他几种方法,例如将熵集成到优势函数中(2025)或关注具有高协方差的 Token(2025)
    • 同样,这些方法可能会引入新的权衡:
      • 过于严格的约束可能导致欠拟合和模型训练不足,而过于宽松的约束可能导致训练过程中的不稳定性,潜在地影响训练有效性和模型性能(2023, 2025, 2025),因为熵与 Pass@1 指标相冲突
    • 因此,在上述方法中,应仔细选择超参数以带来 LLM 的性能提升
    • 实际上,这些方法与 Pass@k Training 是正交的 ,这意味着也可以将这些方法与 Pass@k Training 相结合以获得更好的训练结果
    • 为了验证这一点,论文在第 4.2.3 节中进行了实验,评估基于策略熵指导的 Pass@k Training 的有效性,结果显示有显著改进
  • Takeaway from Section 3.1
    • Pass@k Training 优于噪声奖励和熵正则化:随机翻转负响应的奖励可能会降低 LLM 的性能,而引入熵正则化会带来新的权衡问题,难以实现持续改进

Does Pass@k Training Really Improve the Exploration Ability of LLMs?(是否提高 LLM 的探索能力?)

  • 为了分析 RLVR 训练过程中 LLM 探索能力的变化,论文从答案多样性和策略分布熵的角度进行了相关实证研究,并在图 7 中展示了相应结果
  • 负响应的答案多样性(Answer Diversity of Negative Responses) :
    • 论文统计了 Pass@k 和 Pass@1 Training 的负响应中答案的准确性和不同答案的比例,如图 7a 所示,旨在评估 LLM 对不确定答案的探索能力
    • 根据结果,论文观察到在 RLVR 训练过程中,负响应的答案多样性保持在同一水平,这表明 LLM 在探索过程中试图选择“安全”的行为,并倾向于生成相似的答案,限制了探索范围并制约了 RLVR 的有效性
    • 不同的是,在 Pass@k Training 中,模型被鼓励获得更高的 Pass@k 分数,并在对问题没有足够信心时自然地学习生成多样化答案的策略
    • 在这种情况下,LLM 的探索能力得到增强,进而提高了其利用能力(即 Pass@1 分数)
  • 策略分布的熵(Entropy of Policy Distribution) :在图 7b 中,结果与论文之前关于答案多样性的讨论得出了相似的结论
    • Pass@k Training 将策略分布的熵保持在相对较高的水平,而 Pass@1 Training 导致熵收敛到较低的值
    • 这一现象表明,LLM 在 Pass@k Training 过程中能够保持其探索能力,但在 Pass@1 Training 过程中会丧失探索能力
    • 另一方面,论文还可以观察到,从 RLVR 过程的 200 步开始,Pass@k Training 导致熵增加。这一现象验证了论文的假设,即使用 Pass@k 作为训练目标可以鼓励模型进行更多探索,从而自然地增加熵
  • 总之,探索和利用并不相互冲突,它们可以相互促进,且Pass@k Training 能够实现这一目标
  • Takeaway from Section 3.2
    • Pass@k Training 可以鼓励模型进行更多探索,在模型没有足够信心生成正确答案时,生成多样化的答案,自然地导致熵的增加

hat is the Generalization Ability of LLMs After Pass@k Training?(泛化能力如何)

  • 为了分析 Pass@k Training 的泛化能力,论文进行了相应的实验,并在表 1 中展示了结果
  • 我们可以观察到,Pass@1 和 Pass@k Training 都能增强模型在域内和域外任务上的能力 ,这表明 RLVR 训练过程具有很强的泛化能力
  • 比较这两种训练方法的性能,通过 Pass@k Training 的模型优于通过 Pass@1 Training 的模型 ,其原因是:
    • Pass@k Training 鼓励模型探索更好的解决方案,这些解决方案可以很容易地泛化到其他任务
    • Pass@1 Training 使 LLM 行为保守,从而影响 LLM 的域外(OOD)性能
  • Takeaway from Section 3.3
    • Pass@k Training 比 Pass@1 Training 表现出更强的泛化能力,在域内和域外测试中都比基础模型有更大的改进

How does the Value of k Affect Pass@k Training?(k 值对 Pass@k Training 的影响)

  • 为了分析 Pass@k Training 的鲁棒性,论文将 k 值调整为 4、8、16,在迷宫(Maze)任务上进行 RLVR 训练,并分别在图 8a 和图 8b 中展示训练奖励和测试集的 Pass@k 性能
    • 无论 k 值如何,随着训练的进行,训练奖励都能提高到相对较高的水平,这表明 k 值并不是帮助 LLM 摆脱 Pass@1 Training 局部最优的关键因素
    • 随着 k 值的增加,改进速度减慢,影响训练效率
    • 通过分析优势值的解析解(即公式 14 和公式 15),我们可以意识到,更大的 k 值会带来更小的优势值 ,导致更短的优化步骤,从而降低训练效率
  • 基于这一现象,论文研究了缩放学习率(LR)以扩大优化步骤是否能提高训练效率
    • 基于这一想法,论文在 \(N=32\) 和 \(k=8\) 的设置下采用 \(1×10^{-6}\)、\(2×10^{-6}\)、\(4×10^{-6}\) 的学习率,并在图 8c 和图 8d 中展示结果
    • 随着学习率的增加,拐点出现得更早,表明训练效率更高
    • 当论文采用 \(4×10^{-6}\) 作为学习率时,Pass@8 训练的训练效率甚至超过了 Pass@4 训练
    • 这些结果表明,训练效率问题可以很容易地得到缓解
  • Takeaway from Section 3.4
    • Pass@k Training 对 k 值的选择具有很强的鲁棒性,能够实现稳定且有效的训练过程
    • 尽管随着 k 值的增加,模型的优化效率会有所下降,但这一问题可以通过增大学习率轻松解决

Can the Benefits from Pass@k Training Be Transferred to Pass@1 Performance?(将 Pass@k Training 的收益迁移到 Pass@1 上?)

  • 为了将 Pass@k Training 带来的收益迁移到 LLM 的 Pass@1 性能上,一种自然的实现方式是在经过 Pass@k Training 的模型上继续进行 Pass@1 Training
  • 论文在 RLVR 训练过程中采用了这种方法,并分别在表 2 和表 3 中展示了 Qwen 模型在谜题(Puzzle)任务上以及 Seed1.5-VL-Small(内部版本)在多模态推理任务上的结果
  • 为了进行全面评估,论文还在附录 E 中进行了不同 LLM 在 Enigmata 和数学任务(例如,AIME 2024和 AIME 2025)上的外部实验
  • 第一,在 Pass@k Training 之后进行 Pass@1 Training 可以显著提高 LLM 的推理能力,实现显著的 Pass@1 性能
    • 根据结果,我们可以观察到,即使是 7B 模型也能超越强大的闭源 LLM,包括 Grok-2、GPT-4o 和 Claude-3.7-Sonnet
    • 这可能是因为 Pass@k Training 增强了 LLM 的探索能力,引导其摆脱局部最优,并在后续的 RLVR 训练中释放 LLM 的潜力
  • 第二,无论是小规模还是大规模的 LLM(例如,具有 7B 或 32B 参数的 Qwen2.5)都能从 Pass@k Training 中受益
    • 此外,模型架构和模型系列不会影响持续 Pass@1 Training 的改进。Qwen 模型是密集型模型,而 Seed1.5-VL-Small(内部版本)是 MoE 模型
    • 它们的 Pass@1 性能在 Pass@k Training 后都能进一步提高
  • 第三,下游任务的领域和形式也不会影响 LLM 的 Pass@k 性能到其 Pass@1 性能的迁移
    • 论文的评估包括用自然语言表达的合成谜题任务,以及问题描述中包含图片的多模态推理任务
    • 这些任务要求 LLM 具备不同类别的能力,而论文的 Pass@k Training 可以有针对性地增强相应的能力,表现出很强的有效性
  • Takeaway from Section 3.5
    • Pass@k Training 带来的收益可以迁移到 LLM 的 Pass@1 性能上,这不受模型参数规模(例如,7B 或 32B)、模型架构(例如,密集型模型或 MoE 模型)、模型系列(即 Qwen 模型或 Seed 模型)或下游任务(自然语言任务或多模态任务)的影响

Generalizing Pass@k Training via Implicit Reward Design(隐式奖励设计推广 Pass@k Training)

  • 如第2节 所述,论文通过推导优势函数的解析形式,实现了高效且有效的 Pass@k Training
  • 在本节中,论文将从优势函数的角度进一步探究 Pass@k Training 成功的关键因素(4.1节)
  • 优势函数设计可被视为一种隐式奖励设计,受此启发,论文将探索在难以从奖励函数推导出解析解的场景下,如何基于优化目标直接设计优势函数(4.2节)

Difference Between Pass@1 and Pass@k Training

Analysis Based on Advantage Value Curves
  • 为了分析 Pass@k Training 为何能帮助 LLM 摆脱局部最优,论文首先可视化了 Pass@1 Training 和 Pass@k Training 在不同正确性水平响应上的优势曲线
    • 在 GRPO 及其变体中,优势值仅取决于模型响应的正确性
    • 在优化过程中,优势值直接与梯度相乘,可被解释为梯度的缩放因子
    • 在这种情况下,优势值的绝对值越大,意味着梯度的缩放程度越大,相应样本的更新步长也就越大
    • 这表明模型会对优势值绝对值较大的样本投入更多的优化精力
  • 作者认为优势值的绝对值也是一个值得研究的重要方面
  • 基于这一见解,为简化分析,论文计算了所有响应的绝对优势值之和\(\eta\) ,定义如下:
    $$
    \eta = N_\text{pos} \times \left|\hat{A}_\text{pos}\right| + N_\text{neg} \times \left|\hat{A}_\text{neg}\right|,
    $$
  • 论文将 \(\eta\) 的曲线(称为绝对优势之和(Sum of Absolute Advantage))添加到可视化中,并展示在图9中
  • 对比 Pass@1 Training 和 Pass@k Training 的 \(\eta\) 曲线,论文发现存在三个主要差异
    • 绝对优势之和的最大值 :
      • Pass@1 Training 方法的 \(\eta\) 最大值远高于 Pass@k Training 方法
      • 正如论文在3.4节中讨论的,最大优势值可能会影响训练效率,通过在损失函数上添加系数来调整优势值可以缓解这一问题
      • 因此,最大值并非 Pass@k Training 优于 Pass@1 Training 的关键因素
    • 绝对优势之和的 argmax :
      • 根据图9中的曲线,Pass@1 Training 和 Pass@8 Training 的 \(\eta\) 的 argmax 存在显著差异
        • 对于 Pass@1 Training,\(\eta\) 的最大值出现在正确率为 50% 的位置(即 \(N_\text{pos} = 0.5 \times N_\text{rollout}\))
        • 对于 Pass@8 Training,最大值的位置为正确率 25%(即 \(N_\text{pos} = 0.25 \times N_\text{rollout}\))
      • 这一现象表明,Pass@k Training 侧重于优化更难的问题,而 Pass@1 Training 则侧重于中等难度的问题
        • 理解:因为优势函数是权重,权重越高的问题,模型就更侧重他们 \(\eta\) 的 argmax 则表明了模型在关注哪部分问题
      • 这进一步证明,Pass@k Training 倾向于引导模型解决先前未解决的或困难的问题,而不是过拟合于已经掌握的问题
    • 绝对优势之和的趋势 :
      • Pass@1 Training 和 Pass@k Training 的函数曲线之间的另一个关键差异在于函数本身的趋势
      • 在 Pass@k Training 的\(\eta\)曲线中,其值先上升至峰值,然后逐渐下降至零
      • 在这种设置下,当问题相对容易时(即正确率高于60%),模型施加的优化强度(由\(\eta\)的值表示)会小于对更难问题的优化强度
      • 这进一步表明, Pass@k Training 更注重优化模型尚未掌握的问题
      • 相比之下,在 Pass@1 Training 中,\(\eta\)曲线关于最大值点对称,表明训练过程对简单问题和困难问题给予同等关注
Analysis Based on Model Performance
  • 正如论文在前面章节中讨论的,绝对优势之和 \(\eta\) 的 argmax 和趋势对模型性能的影响仍不明确
  • 因此,在本节中,论文设计了相应的实验,基于模型性能来分析它们的有效性
  • 此外,论文设计了两种介于 Pass@1 和 Pass@k Training 之间的训练方法,即移除简单问题的优势值,以及基于当前提示的正确率结合 Pass@1 和 Pass@k 的优势估计方法
  • 这四种训练方法的 \(\hat{A}_\text{pos}\)、\(\hat{A}_\text{neg}\) 和 \(\eta\) 的曲线如图18a和图18b所示
  • 第一,当响应的正确率较高时,论文设计优势函数逐渐减小至零
    • 这种设置使得优化过程中的训练奖励能够稳步增加,表明模型避免陷入局部最优(即蓝线和紫线)
    • 当移除这种优化时,训练集上的奖励无法继续增加,这表明模型已经收敛到局部最优,并且在RLVR过程中不再学习新知识(即红线和绿线)
    • 这一现象表明,过度从简单示例中学习是导致模型陷入局部最优的关键因素
    • 因此,减少对简单问题的学习程度有助于防止模型陷入此类次优解
  • 第二,简单地将简单问题的奖励设置为零并不足以有效防止模型对其过度优化;这只是延迟了模型陷入局部最优的时间点
    • 如图10所示,移除对简单问题的优化(以红线表示)比基线(以绿线表示)带来了更高的训练奖励和更好的测试性能
    • 然而,两条曲线呈现出相似的趋势:在初始阶段的改进之后,模型性能逐渐趋于平稳,难以取得进一步进展
  • 第三,关于 \(\eta\) 函数的 argmax 位置的选择 ,对比图10中的曲线可以发现,将 argmax 向前移动会带来更高的优化效率
    • 具体而言,模型能够更快地摆脱局部最优,并且训练奖励的转折点出现得更早
    • 这一现象表明,困难问题对模型改进的贡献更大,并且能产生更好的优化效果
    • 因此,为更难的问题分配更大的优化强度可以有效提高训练效率,使模型用更少的训练步骤达到更好的性能
  • 基于上述结果和讨论,可以得出一些初步结论,即 \(\eta\) 的 argmax 会影响训练效率,而 \(\eta\) 的趋势会防止模型陷入局部最优
    • 此外,需要注意的是,这只是论文的初步结论。需要针对特定任务和场景进行更全面的实验以进一步验证
  • Takeaway from Section 4.1 :
    • 在 RLVR 训练过程中,简单问题很容易导致过拟合
    • 适当地降低对简单问题的优化强度,有助于防止模型陷入局部最优,从而获得更好的整体性能

RLVR Training Through Implicit Reward Design

  • 基于前一节对优势值曲线特性的分析,论文在本节中探索对优势函数的初步修改,即隐式奖励设计
  • 论文的目标是探索隐式奖励设计的潜力,并为未来的研究提出几个有前景的方向
Exceeding Pass@k Training
  • 在之前的讨论中,论文发现 \(\eta\) 函数的最大值位置会影响训练目标(侧重于 Pass@1 还是 Pass@k)
  • 基于这些观察和结论,论文假设\(\eta\)函数的峰值出现得越早, Pass@k Training 的优化性能就越好
  • 为了验证这一假设,论文设计了一个转换函数如下:
    $$
    f\left(N_\text{pos}\right) = \frac{4}{10 \log \left(N_\text{pos} + 0.5\right)}, \hat{A}’ = f\left(N_\text{pos}\right) \times \hat{A}.
    $$
  • 应用转换函数后的优势值曲线如图18c所示
  • 论文观察到,在转换后的曲线中,\(\eta\) 函数的峰值向前移动到正确率为 \(\frac{1}{32}\) 的位置,根据论文的假设,这种优势函数的修改有望为 Pass@k Training 带来更好的优化性能
  • 论文将这种转换函数集成到 RLVR 训练过程中(称为超越 Pass@k Training (Exceeding Pass@k Training)),相应的训练结果如图 11 所示
  • 从实验结果中,论文观察到超越 Pass@k Training 能够在训练早期有效提高模型的 Pass@k 性能
    • 但由于这种方法过分强调困难问题,下游任务的 Pass@1 性能改进进展较为缓慢
  • 基于这些观察和分析,论文假设可以根据模型的当前状态自适应地调整优势值的计算(论文将其留作未来的研究方向)
Combination of Pass@1 and Pass@k Training
  • 从之前的分析中,论文观察到 Pass@k Training 更注重优化更难的问题,并防止模型过拟合于简单问题
  • 受此观察启发,论文考虑将 Pass@1 Training 和 Pass@k Training 结合起来是否有益
  • 因此,论文设计了以下公式来估计最终的优势值:
    $$
    \hat{A} = \frac{N_\text{pos} }{N} \times \hat{A}_{Pass@k} + \left(1 - \frac{N_\text{pos} }{N}\right) \times \hat{A}_{Pass@1}, \tag{18}
    $$
    • 其中,\(\hat{A}_{Pass@k}\) 和 \(\hat{A}_{Pass@1}\) 分别表示通过 Pass@k 和 Pass@1 Training 方法估计的优势值
  • 在上述公式(称为组合训练(Combination Training))中
    • 当采样响应的正确率较低时,来自 Pass@1 Training 的优势值会被赋予更高的权重并主导训练过程,从而带来较高的训练效率
    • 当采样响应的正确率较高时,来自 Pass@k Training 的优势值会被赋予更大的权重,从而避免大语言模型过拟合于已经掌握的问题
  • 在图12 中,论文展示了 Qwen 系列模型在 Enigmata 基准上的训练结果
  • 论文观察到,对于 Pass@ 和 Pass@8 指标,通过组合训练得到的模型始终优于通过标准 Pass@k Training 得到的模型
  • 在组合训练过程中,模型性能提升迅速,并保持较高的增长率,相比之下, Pass@k Training 导致性能提升较慢
    • 这是因为:
      • 1)困难问题需要模型进行大量探索才能有效学习,因此难以快速改进
      • 2)简单问题在训练过程中获得较低但足够的优化强度
    • 以上这两个因素共同导致 Pass@k Training 的优化效率低于组合训练
  • 上述分析进一步支持了基于模型当前状态调整优势函数可以有效提升模型性能的观点
Adaptive Training based on Policy Entropy
  • 基于前一节的见解,论文探索是否可以在整个 RLVR 过程中自适应地调整训练目标
  • 如先前的工作(2025)所讨论的,策略分布的熵可以指示其探索能力
  • 论文进行了基于策略熵指导的 Pass@k Training (称为自适应训练(Adaptive Training))
  • 具体而言,论文首先计算每个问题的采样响应的平均熵 \(\bar{E}\),然后根据 \(\bar{E}\) 对每个问题进行排序
  • 论文将前 50% 指定为高探索问题,其余为低探索问题
    • 对于高探索问题,论文使用 Pass@1 优势函数来帮助模型利用先前的探索成果
    • 对于低探索问题,论文应用 Pass@k 优势函数来鼓励进一步探索
    • 这种方法利用策略熵来指导优势计算,使论文能够结合不同训练策略的优势
  • 论文在图13 中展示了实验结果
  • 图13 的实验结果表明:
    • 在自适应训练下,模型在 Pass@1 和 Pass@k 性能上都取得了有效的提升,优于 Pass@1 Training 和 Pass@k Training
      • 这表明 Pass@1 Training 和 Pass@k Training 是互补的
    • 通过设计适当的适应机制,有可能更好地利用两种训练方法的优势,使模型在下游任务上取得更好的性能
    • 这也证实了策略分布的熵可以作为模型探索能力的指标,并且与 Pass@k Training 能够很好地结合
    • 使用熵作为监控信号来调整 RLVR 训练比直接将其用作训练目标能产生更好的结果
  • Takeaway from Section 4.2 :
    • 隐式奖励设计可以更好地控制优化过程,避免复杂的理论推导
    • 具体而言,增加对更困难问题的优化强度可以有效提升模型解决这些问题的能力(即 Pass@k 性能),而结合或动态调整不同形式的优势估计可以同时提升探索和利用能力

Related Work

Reinforcement Learning with Verifiable Rewards

  • 为了释放 LLM 的推理能力,DeepSeek 直接在 DeepSeek-V3 上采用 RLVR ,得到了大型推理模型 DeepSeek-R1-Zero(2025),该模型能够执行具有复杂推理动作(如反思和验证)的推理过程
  • 鉴于 DeepSeek-R1 的成功,大量研究(2025;)探索了 RLVR 在流行的开源大语言模型上的有效性,如 Qwen(2024)、Mistral(2023)和 LLaMA(2024)
  • 此外,RLVR 训练范式可以帮助大语言模型控制其推理时间(2025)、切换推理模式(2025;)、增强特定性能指标(2025),以及在无监督的情况下提升自身能力(2025;)
  • 然而,最近的研究指出,流行的 RLVR 算法(如 PPO(2017)和 GRPO(2024))仍然面临严峻挑战,如训练不稳定性、模型崩溃和奖励噪声(2025;)
  • 为了缓解这些问题,现有研究提出了对采样策略(2025)、目标函数设计(2025;)和数据选择(2025)的优化
  • 具体而言,先前的工作(2025)将 Pass@k 用作策略梯度算法(1992)的奖励,以鼓励模型解决更难的问题
  • 然而,Pass@k RLVR 训练与大语言模型探索能力之间的内在联系尚未得到充分认识
  • 论文通过三种方法(图5)在 GRPO 及其变体中进一步采用 Pass@k 指标,并推导了 RLVR 训练中 Pass@k 奖励的优势值解析解
  • 此外,根据实证实验和理论分析,论文讨论了 Pass@k Training 在平衡大语言模型 RLVR 训练过程中的探索和利用能力方面的益处,展示了 Pass@k RLVR 训练的巨大潜力,并指出了未来有前景的研究方向
Effective Exploration in Test-time Scaling
  • 最近,测试时扩展被提出,它旨在通过在推理时消耗更多计算资源来提高大语言模型的性能(2025)
  • 由于大语言模型不断利用探索获得的经验来优化其性能,因此在测试时扩展过程中,有效的探索是重要且必要的(2025;2025)
  • 但现有工作表明,探索能力受到相应基础模型的限制,阻碍了模型性能的持续扩展(2025)
  • 为了缓解这一问题,先前的工作提出了几种方法,包括
    • 通过调整采样超参数(2025;2025;2025)
    • 执行自我验证和自我反思(2025;2025;2025)
    • 利用外部模型验证推理过程(2025;2025)
  • 除了从模型外部角度出发的这些方法外,通过模型内部机制探索其探索能力也同样重要
  • 当前研究从策略分布的熵的角度出发,指出熵可以指示大语言模型的探索能力(2025;2025),并且高熵 token 对模型优化至关重要(2025)
  • 基于这些发现,在 RLVR 训练过程中采用了训练关键 token(2025)和添加正则化(2025;2025)的方法,以避免大语言模型探索能力的下降
  • 此外,一些研究专注于通过选择有用的采样经验(2025;2025)、将熵集成到优势估计中(2025)来增强大语言模型的探索能力

附录 A:Experiment Setup

A.1 Details of Downstream Tasks

  • 本节介绍每个下游评估任务的详细信息
  • 迷宫(Maze)
    • 论文遵循先前工作提出的框架来合成不同大小的迷宫
    • 每个迷宫用文本表示,包含 n 行 n 列,共 n×n 个字符。具体来说,每个字符是以下四种之一:“S”“E”“*”和“.”,分别表示起点、终点、可通行区域和不可通行区域
    • 给定迷宫,LLM 可以先生成思路或推理过程,然后生成最终答案,包括“U”“D”“L”“R”四种动作之一,分别表示向上、向下、向左、向右移动
    • 对于训练数据,论文构建了 9×9、11×11、13×13 和 15×15 大小的迷宫,以增加训练数据的多样性
    • 对于测试数据,为了评估 RLVR 过程的泛化能力,论文不仅使用与训练数据集相同大小的迷宫,还收集了 7×7、17×17、19×19 和 21×21 大小的迷宫
    • 为确保实验的有效性,论文在生成训练和测试数据后进行了严格的去重操作
    • 数据集的统计信息如表4所示
    • 为了更清晰地呈现实证见解,论文在上述正文中只展示了 9×9 迷宫的结果,其余结果在附录E.3中呈现
  • Enigmata
    • 为评估大语言模型的推理和逻辑能力,Enigmata 提出了一个综合基准,包括 36 类合成可验证谜题,分属 7 个主要类别,包括密码谜题(Crypto Puzzle)、算术谜题(Arithmetic Puzzle)、逻辑谜题(Logic Puzzle)、网格谜题(Grid Puzzle)、图形谜题(Graph Puzzle)、搜索谜题(Search Puzzle)和序列谜题(Sequential Puzzle)
    • 每个类别都能评估大语言模型的不同能力
    • 为便于理解,论文在图15 中展示了一个测试实例
  • MathVision
    • MathVision 从人类数学竞赛中选取了 3,040 道高质量题目,每道题都附有相关图像
    • 解决这些问题需要仔细解读视觉信息和严谨的数学推理
    • MathVision 为评估模型的多模态理解能力以及严谨的数学推理能力提供了基准
    • 为便于理解,论文在图16 中展示了一个测试实例
  • MMMU
    • MMMU 包括六个学科的大学水平推理和理解任务,包括艺术与设计(Art & Design)、商业(Business)、科学(Science)、健康与医学(Health & Medicine)、人文与社会科学(Humanities & Social Science)以及技术与工程(Tech & Engineering)
    • 此外,MMMU 包含多种图像类型,能够全面评估模型处理和推理不同形式视觉信息的能力
    • 为便于理解,论文在图17中展示了一个测试实例
A.2 Implementation Details
  • 训练(Training)
    • 在论文的实验中,论文采用 Qwen2.5-7B-Instruct 和 Qwen2.5-32B-Instruct 作为骨干模型,并通过 DAPO 进行训练
    • 为提高训练过程的效率,论文只保留 clip-higher(即 \(\varepsilon_{low}=0.2\) 和 \(\varepsilon_{high}=0.28\))和 token-lebel 策略梯度损失,移除其他优化
    • 对于训练超参数,论文将策略模型的学习率设置为 \(1×10^{-6}\),预热步骤为10步,并分别采用 128、32 和 32 作为提示批大小 \(BS_{prompt}=128\)、小批大小 \(BS_{mini}=32\) 和 采样次数 \(n_\text{rollout}=32\)
    • 对于奖励,通过验证的响应(称为正响应)被赋予正奖励\(R_\text{pos}=1\),其他响应(称为负响应)被赋予负奖励\(R_\text{neg}=0\)
    • 论文不采用任何正则化方法,如 KL 或 熵正则化
  • Evaluation
    • 为评估大语言模型的性能,论文采用 temperature= 1.0 和 top_p=0.95
    • 对于每个问题,论文为迷宫任务从大语言模型中采样 32 个响应,为其他任务采样 8 个响应,然后利用采样的响应计算 Pass@1 和 Pass@k 分数

附录 B:Details of Analytical Derivation(解析推导)

  • 论文在2.4节中提到了解析推导过程的细节,包括组奖励的平均值、组奖励的标准差以及响应相关优势的推导

B.1 Derivation of the Average of Group Reward

$$
\begin{aligned}
\overline{R}^\text{group} &= \frac{1}{N_\text{total}^\text{group} } \times \left(N_\text{pos}^\text{group} \times R_\text{pos} + N_\text{neg}^\text{group} \times R_\text{neg}\right) \\
&= \frac{1}{\binom{N_\text{rollout} }{K} } \times \left( \left( \binom{N_\text{rollout} }{K} - \binom{N_\text{neg} }{K} \right) \times 1 + \binom{N_\text{neg} }{K} \times 0 \right) \\
&= 1 - \frac{\binom{N_\text{neg} }{K} }{\binom{N_\text{rollout} }{K} }.
\end{aligned}
$$

B.2 Derivation of the Standard Deviation of Group Reward

$$
\begin{aligned}
\sigma^\text{group} &= \sqrt{ \frac{1}{N_\text{total}^\text{group} } \left( N_\text{pos}^\text{group} \times \left(1 - \overline{R}^\text{group}\right)^2 + N_\text{neg}^\text{group} \times \left(0 - \overline{R}^\text{group}\right)^2 \right) } \\
&= \sqrt{ \overline{R}^\text{group} \times \left(1 - \overline{R}^\text{group}\right) }.
\end{aligned}
$$

B.3 Derivation of the Response-Relative Advantage

$$
\begin{aligned}
\hat{A}_\text{pos} &= \frac{1}{\binom{N_\text{rollout}-1}{K-1} } \times \left( \binom{N_\text{rollout}-1}{K-1} \times \hat{A}_\text{pos}^\text{group} + 0 \times \hat{A}_\text{neg}^\text{group} \right) \\
&= \frac{1 - \overline{R}^\text{group} }{\sigma^\text{group} }.
\end{aligned}
$$

$$
\begin{aligned}
\hat{A}_\text{neg} &= \frac{1}{\binom{N_\text{rollout}-1}{K-1} } \times \left( \left( \binom{N_\text{rollout}-1}{K-1} - \binom{N_\text{neg}-1}{K-1} \right) \times \hat{A}_\text{pos}^\text{group} + \binom{N_\text{neg}-1}{K-1} \times \hat{A}_\text{neg}^\text{group} \right) \\
&= \left( 1 - \frac{\binom{N_\text{neg}-1}{K-1} }{\binom{N_\text{rollout}-1}{K-1} } \right) \times \frac{1 - \overline{R}^\text{group} }{\sigma^\text{group} } + \frac{\binom{N_\text{neg}-1}{K-1} }{\binom{N_\text{rollout}-1}{K-1} } \times \left( -\frac{\overline{R}^\text{group} }{\sigma^\text{group} } \right) \\
&= \left( 1 - \overline{R}^\text{group} - \frac{\binom{N_\text{neg}-1}{K-1} }{\binom{N_\text{rollout}-1}{K-1} } \right) \times \left( \sigma^\text{group} \right)^{-1}.
\end{aligned}
$$


附录 C: Pass@k Training 的伪代码(Pseudo Code for Pass@k Training)

  • 论文给出了全采样(Algorithm 1)、bootstrap采样(Algorithm 2)和解析推导(Algorithm 3)的 Pass@k Training 伪代码

算法1:全采样的 Pass@k Training 伪代码

  • 伪代码:
  • 具体步骤:
    • 输入:问题响应的奖励张量\(R \in \mathbb{R}^{N_\text{rollout} }\)、采样响应数量\(N_\text{rollout}\)以及Pass@k指标中的k
    • 输出:该问题响应的估计优势张量\(\hat{A} \in \mathbb{R}^{N_\text{rollout} }\)
    • 1 # 构建组并丢弃冗余实例
    • 2 将\(R \in \mathbb{R}^{N_\text{rollout} }\)分成\(\left\lfloor \frac{N_\text{rollout} }{K} \right\rfloor\)个组,每个组包含k个实例
    • 3 使用公式5计算组的奖励\(R^\text{group} \in \mathbb{R}^{\left\lfloor \frac{N_\text{rollout} }{K} \right\rfloor}\)
    • 4 # 遵循GRPO优势估计方法计算组相关优势
    • 5 使用公式1计算组的平均奖励\(\bar{R}^\text{group}\)
    • 6 使用公式2计算组的标准差\(\sigma^\text{group}\)
    • 7 基于\(\bar{R}^\text{group}\)和\(\sigma^\text{group}\),使用公式3计算组相关优势\(\hat{A}^\text{group}\)
    • 8 # 计算响应相关优势
    • 9 将\(\hat{A}^\text{group}\)分配给组所包含的响应,得到响应相关优势A

算法2:bootstrap采样的 Pass@k Training 伪代码

  • 伪代码:
  • 具体步骤:
    • 输入:问题响应的奖励张量\(R \in \mathbb{R}^{N_\text{rollout} }\)、采样响应数量\(N_\text{rollout}\)以及Pass@k指标中的k
    • 输出:该问题响应的估计优势张量\(\hat{A} \in \mathbb{R}^{N_\text{rollout} }\)
    • 1 # 通过bootstrap采样构建组
    • 2 对于i从1到\(N^\text{group}\):
    • 3 从R中随机采样k个实例构建第i个组
    • 4 使用公式5计算第i个组的奖励
    • 5 得到组的奖励\(R^\text{group} \in \mathbb{R}^{N^\text{group} }\)
    • 6 # 遵循GRPO优势估计方法计算组相关优势
    • 7 使用公式1计算组的平均奖励\(\bar{R}^\text{group}\)
    • 8 使用公式2计算组的标准差\(\sigma^\text{group}\)
    • 9 基于\(\bar{R}^\text{group}\)和\(\sigma^\text{group}\),使用公式3计算组相关优势\(\hat{A}^\text{group}\)
    • 10 # 计算响应相关优势
    • 11 基于\(\hat{A}^\text{group}\),使用公式6计算响应相关优势A

算法3:解析推导的 Pass@k Training 伪代码

  • 伪代码:
  • 具体步骤:
    • 输入:问题响应的奖励张量\(R \in \mathbb{R}^{N_\text{rollout} }\)、采样响应数量\(N_\text{rollout}\)以及Pass@k指标中的k
    • 输出:该问题响应的估计优势张量\(\hat{A} \in \mathbb{R}^{N_\text{rollout} }\)
    • 1 # 计算组奖励分数的平均值和标准差
    • 2 使用公式11计算组的平均奖励\(\bar{R}^\text{group}\)
    • 3 使用公式12计算组的标准差\(\sigma^\text{group}\)
    • 4 # 计算响应相关优势
    • 5 使用公式14计算正响应的优势\(\hat{A}_\text{pos}\)
    • 6 使用公式15计算负响应的优势\(\hat{A}_\text{neg}\)
    • 7 基于\(\hat{A}_\text{pos}\)、\(\hat{A}_\text{neg}\)和R,为每个实例分配优势,得到响应相关优势A

附录 D:Curves of Advantage Function

  • 论文在图18中展示了不同训练方法的优势函数曲线,包括无简单问题的 Pass@k Training (Pass@k Training w/o easy problems)、带组合的 Pass@k Training (Pass@k Training w/ combination)、超越 Pass@k Training (Exceeding Pass@k Training)和组合训练(Combination Training)

附录 E:Experiments on Various LLMs and Tasks

  • 在本节中,为进一步验证 Pass@k Training 的有效性,论文提供了通过 Pass@k Training 的各种大语言模型在数学任务(即AIME 2024、AIME 2025和OlymMATH(2025))和合成谜题任务(即Enigmata(2025))上的性能

E.1 数学任务上的 Pass@k Training (Pass@k Training on Mathematical Tasks)

  • 论文遵循附录A.2 中描述的实验设置,在 LLaMA 模型(2024)(即 LLaMA3.2-3B-Instruct 和 LLaMA3.1-8B-Instruct)和DeepSeek-R1-Distill-Qwen(2025)(即1.5B和7B版本)上进行 Pass@k Training
  • 对于LLaMA模型,论文将最大提示长度和响应长度分别设置为 2048 和 6144
  • 对于DeepSeek-R1-Distill-Qwen,论文将响应长度扩展到 10240
  • 具体而言,为使大语言模型适应数学任务,论文在 RLVR 训练过程中采用了先前工作(2025)中使用的训练数据
  • 此外,论文遵循附录A.2中的设置进行评估,结果如表5 所示
  • 由于单轮 Pass@k Training 后再进行 Pass@1 Training 可以显著提高大语言模型的Pass@1性能,论文在表5 中进行了上述训练过程多轮的实验,称为“(P@k T. + P@1 T.) × 2”

E.2 Enigmata任务上的 Pass@k Training (Pass@k Training on Enigmata Task)

  • 论文遵循附录A.2 中描述的实验设置,在各种大语言模型(即 LLaMA3.2-3B-Instruct(2024)和 LLaMA3.1-8B-Instruct(2024))上进行 Pass@k Training ,并将最大提示长度和响应长度都设置为 4096
  • 结果如表6所示(对于评估,论文遵循附录A.2中描述的设置)

E.3 迷宫任务上的 Pass@k Training (Pass@k Training on Maze Task)

  • 在本部分中,论文在表7中展示了 Pass@k Training 在迷宫任务上的完整结果
  • 没有任何 RLVR 训练时,模型很难解决迷宫任务,因此,论文没有报告骨干模型的性能

NLP——Agentic-AI相关技术简介

本文仅包含简单介绍,更详细的描述可以搜索本人其他博客

  • 参考链接:
    • 可参考:Generative to Agentic AI: Survey, Conceptualization, and Challenges,但我们可以简单了解一下

Agentic AI 相关技术整体介绍

  • 定义:LLM agentic 技术是指让 LLM 具备智能代理(Agent)能力的相关技术
  • 常见的LLM agentic技术包括:记忆技术 ,工具使用技术 ,推理与计划技术 和 多智能体协作技术

记忆技术

  • 通常包括短期记忆和长期记忆
  • 短期记忆 :主要实现对当前会话历史的记忆,最直接的方法是使用模型的上下文窗口,将完整的对话历史作为输入提示的一部分。对于上下文窗口较小的模型,或者当对话历史较大时,可以改用另一个 LLM 来总结到目前为止发生的对话
  • 长期记忆 :通常将所有之前的互动、行动和对话存储在一个外部向量数据库中,构建数据库之后,通过检索增强生成(RAG)方式检索相关信息

工具使用技术

  • 模型调用工具实现一些 LLM 无法实现的功能,相关协议和工具如下
  • Toolformer :是最早实现训练用于决定调用哪些 API 以及如何调用的模型,通过工具使用增强 LLM的 能力并弥补其不足
  • 模型上下文协议(MCP) :为天气应用和 GitHub 等服务标准化了 API 访问,由以下三个组件组成:
    • MCP 主机(LLM 应用,管理连接)
    • MCP 客户端(与 MCP 服务器保持一对一连接)
    • MCP 服务器(为 LLM 提供上下文、工具和能力)

Reasoning 与 Planning 技术(核心技术)

  • 这个技术是最复杂的,相关论文和方法也最多,关键技术包括 ReAct、Self-Refine、Reflexion、Plan-and-Execute 和 Retroformer 等

ReAct (Reasoning + Acting)

  • 论文参考:ReAct: Synergizing Reasoning and Acting in Language Models, Shunyu Yao, 2022 & ICLR 2023
    • 算是 Agent 领域开创性的工作
  • 基本思路:结合Reasoning和行动(Acting),通过动态生成推理步骤和交互动作(如调用工具、搜索)来完成任务
    • 强调在推理过程中与环境互动以获取额外信息
  • 一句话目标总结:通过动态推理与实时环境交互完成任务
  • 方法流程简述:推理 -> 行动 -> 观察 -> 循环
    • 接收任务(如“回答复杂问题”)
    • 生成推理步骤(如“需先查证XX数据”)
    • 执行动作(调用工具/搜索API)
    • 观察结果(获取工具返回信息)
    • 循环(结合新信息继续推理或终止)
    • 最终输出 :最终答案或解决方案

Self-Refine

  • 论文参考:Self-Refine: Iterative Refinement with Self-Feedback, NeurIPS 2023, NVIDIA & Google Deepmind
  • 基本思路:模型通过自我反馈迭代优化输出。首先生成初始结果,然后自我批评(Self-Critique)并修正错误,无需外部监督
  • 一句话目标总结:通过自我迭代优化单次输出质量
  • 方法流程简述:生成 -> 批评 -> 修正 -> 循环
    • 生成初始输出(如一段代码)
    • 自我批评(检查语法/逻辑错误)
    • 修正输出(基于批评重新生成)
    • 重复 直至满足条件(如无错误或达到最大迭代次数)
    • 最终输出 :优化后的文本/代码

Reflexion

  • 论文参考:Reflexion: Language Agents with Verbal Reinforcement Learning, NeurIPS 2023
  • 基本思路:赋予模型“记忆”能力,通过保存历史交互的反思(Reflection)来指导未来决策,避免重复错误,帮助代理从之前的失败中学习,包含了行动者、评估者和自我反思三个 LLM 角色
  • 一句话目标总结:通过记忆历史反思改进长期策略
  • 方法流程简述:行动 -> 反馈 -> 反思 -> 存储 -> 未来检索
    • 执行任务(如对话/游戏动作)
    • 接收反馈(用户评分/任务成败)
    • 生成反思(如“失败因未查询用户偏好”)
    • 存储反思至记忆库
    • 未来任务优先检索相关反思指导行动
    • 最终输出 :持续优化的长期表现

Plan-and-Execute

  • 代表方法 :Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models, 2023 和 HuggingGPT (利用LLM协调专家模型) 等
  • 基本思路:将任务分解为规划(Plan)和执行(Execute)两阶段:首先生成高层次计划,再逐步执行子任务
  • 一句话目标总结:通过分阶段规划与执行解决复杂任务
  • 方法流程简述:规划 -> 执行子任务 -> 整合
    • 任务分解 :生成高层次计划(如“写论文需:1.查资料 2.列大纲 3.写作”)
    • 执行子任务 :按顺序完成各步骤
    • 整合结果 :合并子任务输出
    • 最终输出 :结构化任务结果

Retroformer

  • 论文参考:Retroformer: Retrospective large language agents with policy gradient optimization, ICLR 2024, Salesforce AI Research
  • 基本思路:通过逆向推理(Retrospective Reasoning)生成假设并验证,结合前向和后向推理提升逻辑一致性
  • 一句话目标总结:通过逆向推理验证逻辑合理性
  • 方法流程简述:正向假设 -> 逆向验证 -> 修正 -> 输出
    • 生成假设(如数学证明的中间结论)
    • 逆向验证 :从目标反推假设是否成立
    • 修正假设 :若验证失败,调整推理路径
    • 输出最终结论
    • 最终输出 :逻辑严谨的结果

Reasoning 与 Planning 技术对比总结

方法 核心能力 交互性 适用场景 关键局限
ReAct 推理+环境交互 高 动态信息获取 依赖环境反馈
Self-Refine 自我迭代优化 无 生成任务优化 可能陷入错误循环
Reflexion 记忆与反思 中等 长期学习/对话 记忆管理复杂
Plan-and-Execute 分阶段任务分解 低 复杂任务规划 规划错误传导
Retroformer 双向推理验证 中等 逻辑严谨性要求高的任务 计算成本高

多智能体协作技术

  • 这个技术是 AI Agent 没有的,Agentic AI 特有的
  • 由专业化的 Agent 组成,每个 Agent 都配备了自己的一套工具,并由一个主管监督,主管管理 Agent 之间的通信,并为专业化的代理分配特定的任务,以解决单个Agent 存在的工具选择复杂、上下文复杂和任务专业化等问题

NLP——LoRA和QLoRA

本文主要介绍LoRA和QLoRA


LoRA

参考链接

  • LoRA(Low-Rank Adaptation)详解——知乎,大师兄

  • 神经网络模型参数一般都是矩阵形式,比如在Self-Attention中

    • 广义上 \(W_q,W_k,W_v,W_o\) 等分别是 \(d_{model}\times d_k, d_{model}\times d_k, d_{model}\times d_v, d_v \times d_{model}\) 维度的(这里的 \(d_v\) 表示所有头的长度的和,与Transformer原论文有所区别,原始论文中 \(d_v\) 是单个头的长度)
    • 而实际在Transformer中(包括Transformer原论文和GPT等),如果不考虑多头(或者多头数 \(h=1\) ),常常有 \(d_k = d_v = d_{model}\)
    • 在面对多头Attention时,常常有 \(d_v = d_v^{MH} \times N_{head}\),(再次强调,注意这里与原始论文表示不同,原始论文中 \(d_v\) 是单个头的维度,即 \(d_{model} = d_v * h\) )
  • LoRA通常用于预训练模型的微调阶段,训练时在预训练模型上加一个旁路,替代已有的网络模型参数(一般是特别大的参数矩阵,比如Attention参数 \(W_q\) 等

    • 对应的模型LoRA代码实现:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      input_dim = 768 # 例如,预训练模型的隐藏大小
      output_dim = 768 # 例如,层的输出大小
      rank = 8 # 低秩适应的等级'r'
      W = ... # 来自预训练网络的权重,形状为 input_dim x output_dim
      W_A = nn.Parameter(torch.empty(input_dim, rank)) # LoRA权重A
      W_B = nn.Parameter(torch.empty(rank, output_dim)) # LoRA权重B
      # 初始化LoRA权重
      nn.init.kaiming_uniform_(W_A, a=math.sqrt(5))
      nn.init.zeros_(W_B)
      # 以下写法与论文中公式 h = W @ x不一样的原因是因为这里x是行向量,论文中x是当做列向量来看的
      def regular_forward_matmul(x, W):
      h = x @ W
      return h

      def lora_forward_matmul(x, W, W_A, W_B):
      h = x @ W # 常规矩阵乘法
      h += x @ (W_A @ W_B) * alpha # 使用缩放的LoRA权重
      return h
  • 假设原始模型中,某个参数矩阵为 \(W^{d \times k}\) (也可以不是方阵),LoRA网络可以用两个小矩阵来表示 \(B^{d\times r}, A^{r\times k}\)

    • 在没有LoRA时,参数 \(W_0\) 的前向过程是(下面的 \(h\) 表示参数对应的隐藏层向量, \(x, h\) 均为列向量):
      $$h = W_0 x$$
    • 加入LoRA时,该参数的前向过程为:
      $$h = W_0 x + \frac{\alpha}{r}\Delta W x = W_0 x + \frac{\alpha}{r}BAx$$
      • 原始论文中提到,一般可以使用 \(\frac{\alpha}{r}\) 来设置LoRA权重
        • 理解:权重与 \(r\) 有关的原因是 \(r\) 越大,LoRA矩阵包含的信息越多,对原始模型的影响越大,论文中提到,为了减少超参数数量, \(\alpha\) 的设置一般可以使用 \(\alpha=r\) (we simply set α to the first r we try and do not tune it),揭秘LoRA与QLoRA:百次实验告诉你如何微调LLM!则给出了更为详细的说明,并得出在LLM中使用 \(\alpha=2r\) 会更好
        • 个人观点: \(\alpha\) 理论上可以不调整,因为如果LoRA参数初始化时同时缩放 \(\frac{\alpha}{r}\) 倍,同时调整学习率为 \(lr = \frac{\alpha}{r} \times lr\),则与在 \(\Delta W\) 前使用 \(\frac{\alpha}{r}\) 实现的效果完全一致?
    • 由于 \(r << min(d,k)\),LoRA可以极大减少参数量,训练时,除了计算量外,优化器需要存储的中间变量与参数量相关,相对全量微调,使用LoRA微调的显存和计算量会极大减少
    • 模型存储时,可以将LoRA参数换算成矩阵加到原来的参数权重中,从而保证在推理时不增加额外显存和计算量
      $$W_{save} = W_0 + \frac{\alpha}{r}BA$$
      • 这里用到了矩阵运算的分配律 \((A+B)C = AC + BC\)
  • 其中 \(A\) 矩阵权重参数使用正太分布初始化, \(B\) 矩阵权重参数使用0初始化,保证了如果LoRA部分参数全为0,则无法训练LoRA

    • 为什么要这样初始化,换个方式不可以吗?如果B不为0,A为0,或者两个都为0呢?以下回答参考自LoRA与QLoRA快速介绍

      这里有一些细节需要注意,LoRA的两个矩阵A和B中,一个是零向量初始化,一个是随机初始化。个人观点是,A和B哪个是0都可以,也可以两个都是0;但至少要有一个是0,这样才能保证未经训练的LoRA作为旁路加到预训练模型中时,LoRA不会对模型的预测产生任何影响,模型能够基于当前性能进一步学习。此外,为什么可以用低秩矩阵来模拟原始矩阵?已有研究发现,大模型往往是过度参数化的,模型实际用到的维度(模型内在维度)可能并没有那么高,所以用低秩矩阵来拟合目标任务也能达到不错的效果

  • 从网络结构上理解,LoRA相对于普通的全连接层,相当于把之前的一层网络拆解成两层,但中间层没有激活函数


QLoRA

  • QLoRA(Quantized LoRA)详解
  • QLoRA是一个使用量化思想对LoRA进行优化的量化算法

QLoRA的优化有三个核心要点

  • 4-bit NormalFloat Quantization : 首先是定义了一种4位标准浮点数(Normal Float 4-bit,NF4)量化,基于分块的分位数量化的量化策略
  • Double Quantization :其次是双重量化,包含对普通参数的一次量化和对量化常数的再一次量化,可以进一步减小缓存占用
    • 量化常数 :一次量化中,每组被量化的参数都会存储一个绝对值的最大值absmax,这个值通常一般是高精度保存,也会占用大量的显存。【问题:分组这么多吗?能不能通过减少分组来实现】
  • Paged Optimizers :最后是分页优化器(Page Optimizer),用来在显存过高时用一部分内存代替显存

LLM中的LoRA

  • 每个模型会按照自己的命名习惯为不同的参数模块分配名称
  • 一般用target_modules参数指定LoRA微调目标(目标即模型中的模块名称,每个模块代表一组对应的参数),常用的模型和可作为LoRA目标的,常用配置可参考聊聊LoRA及其target_module配置
    • 经常被用来作为LoRA微调对象的是 \(W_q, W_v\),对应target_modules=[q_proj,v_proj]* 为什么 \(W_k\) 不常被用于LoRA微调呢?参考【思考】为什么大模型lora微调经常用在attention的Q和V层而不用在K层呢
      • 直观上看, \(W_q, W_v\) 分别影响Attention的权重部分和值部分,理论上Attention的表示能力都能被影响到了
      • 实践中发现调整 \(W_q, W_v\) 基本够用了
      • 也有的模型是 \(W_q, W_k, W_v\) 同时调整的,甚至同时调整其他很多模块
  • 模块在模型中代表的含义可以打印模型结构来看
  • 对比使用LoRA前后模型可训练参数数量,参考自LLM微调(一)| 单GPU使用QLoRA微调Llama 2.0实战
    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
    def print_number_of_trainable_model_parameters(model):
    trainable_model_params = 0
    all_model_params = 0
    for _, param in model.named_parameters():
    all_model_params += param.numel()
    if param.requires_grad:
    trainable_model_params += param.numel()
    print(f"trainable model parameters: {trainable_model_params}. All model parameters: {all_model_params} ")
    return trainable_model_params
    ​
    ori_p = print_number_of_trainable_model_parameters(model)
    ​
    # 输出
    # trainable model parameter: 262,410,240

    ## =================

    # LoRA config
    model = prepare_model_for_kbit_training(model)
    peft_config = LoraConfig(
    r=8,
    lora_alpha=32,
    lora_dropout=0.1,
    target_modules=["q_proj", "v_proj"],
    bias="none",
    task_type="CAUSAL_LM",
    )
    model = get_peft_model(model, peft_config)
    ​
    ### compare trainable parameters #
    peft_p = print_number_of_trainable_model_parameters(model)
    print(f"# Trainable Parameter \nBefore: {ori_p} \nAfter: {peft_p} \nPercentage: {round(peft_p / ori_p * 100, 2)}")
    ​
    # 输出
    # trainable model parameter: 4,194,304

NLP——基于vLLM的RAG服务部署

  • 参考连接:
    • 实操用Langchain,vLLM,FastAPI构建一个自托管的Qwen-7B-Chat - FunHPC的文章 - 知乎

系统说明和环境安装

系统说明

  • 本文采用 Ubuntu 22.04 LTS

Python基础环境准备

  • 包括 anaconda, python 等环境安装

创建虚拟环境

  • conda创建python环境
    1
    conda create -n llm_py310 python==3.10

安装相关包

  • 安装下面的依赖项

    1
    2
    3
    pip install pytorch langchain vllm gptcache modelscope
    pip install transformers accelerate tiktoken einops scipy transformers_stream_generator==0.0.4 peft deepspeed
    `
    • 如果出错建议一个个安装

huggingface命令行工具安装

  • 安装工具
    1
    git lfs install

下载模型到本地(可跳过)

  • 使用 git 命令下载 huggingface 项目(方便从本地启动)

    1
    git clone https://huggingface.co/Qwen/Qwen3-0.6B
  • 推荐使用 modelscope,这样不需要科学上网

    1
    2
    3
    pip install modelscope
    modelscope download --model Qwen/Qwen3-0.6B # 缓存到本地 ~/.cache/modelscope/hub/models/Qwen/Qwen3-0.6B/ 目录下
    modelscope download --model Qwen/Qwen3-0.6B --local_dir ./Qwen3-0.6B/ # 保存到 ./Qwen3-0.6B/ 目录下

生成检索 embedding

  • 这里可能遇到一些问题:
    • modelscope 版本问题,遇到相关报错时改用 1.15.0 版本解决
    • 可能需要安装 langchain_community

加载模型时显存爆炸问题

  • 显存可能爆炸(即使加载很小的模型,亲测24G显存会被 Qwen3-0.6B直接占满)
  • 加载模型会默认将整个GPU 所有显存都占用(原因未知)
  • 解决方案:
    • 可以增加 gpu_memory_utilization=0.8 来指定模型的显存使用,也可以根据需要使用其他值,比如0.7,但需要满足最低使用要求
  • 注:除模型参数外的其他显存占用要求
    • 模型需要提前分配 KV Cache,且该值与max_model_len有关,且默认使用比较大的值(比如 max_model_len=40960,导致需要提前分配较大的 KV Cache,从而增加显存)

Bug 记录

  • 遇到 AttributeError: 'State' object has no attribute 'engine_client'
  • 问题详情见:[Bugfix] Fix AttributeError: ‘State’ object has no attribute ‘engine_client’
  • 使用 vllm==0.9.0 及以上或者降低到 vllm==0.8.0 (降低到 0.8.0 亲测有效)

附录:vLLM 使用代码示例

  • 以下是一个简单的 vLLM 使用示例,展示了如何使用 vLLM 加载模型并生成文本:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    from vllm import LLM, SamplingParams

    model_name = "llama-2-7b-chat-hf"
    llm = LLM(model=model_name)
    sampling_params = SamplingParams(
    temperature=0.7,
    top_p=0.95,
    max_tokens=1024
    )
    prompts = [
    "介绍一下人工智能的发展历程",
    "解释一下量子计算的基本原理",
    "推荐几部好看的科幻电影"
    ]

    outputs = llm.generate(prompts, sampling_params)

    for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"提示: {prompt}")
    print(f"生成内容: {generated_text}")
    print("-" * 80)

NLP——开源大模型结构汇总

本文主要汇总开源大模型核心结构,持续更新

  • 参考链接:
    • LLM开源大模型汇总- 假如给我一只AI的文章 - 知乎

整体说明

  • 现有开源大模型都是对传统 Transformer 的改进,传统的 Transformer 结构可参考DL——Transformer
  • 借用 Decoder-Only Transformers: The Workhorse of Generative LLMs 中给出了 Decoder-Only Transformer 的核心结构图:
  • 一些细节说明:
    • 图中的 FFNN 是 Typo,应该是 FFN(Feed Forward Network)
    • FNN是一个 \(n \times d \rightarrow n \times h_{ffn} \rightarrow n \times d\) 的过程,原始 Transformer 论文中使用的是 \(h_{ffn} = 4d\)(与这里一致)
  • CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Benchmarking on HumanEval-X, KDD 2024, THU & Huawei中也给出了一个更为详细的 Transformer Decoder Layer 的结构图:
  • 上图不是原始的 Transformer 参数配置,比如:
    • 原始 Transformer 的 FFN 层激活函数是 ReLU,这里使用的是 FastGeLU (MLP Layers 层)
    • 原始 Transformer 是 6 层,这里是 39 层
    • 原始 Transformer 多头是 8,这里是 40
    • 原始 Transformer d_model 是 512,这里是 5120
  • 常见LLM结构梳理(一)- LLama、Llama2、Llama3 - mingming的文章 - 知乎 提供了另一个不错的 GPT 基本框架图(Decoder-Only 架构):
  • 注:图中 multi-head attention 中还分别包含着 Attention 前(QKV变换) 和 后(多头合并后) 各一个 Linear Layer,作者未显式画出:
  • 特别补充:连夜读完了Qwen3的2000行代码,我画出了Qwen3的结构图 中有非常清晰的 Transformer 实现图,但是针对 Qwen3 的
  • 其他说明:
    • 归一化位置 :传统 Transformer 中归一化是在 Attention 层和 FFN 层之后(Post-Norm),目前的大部分模型都会将 归一化层放到 Attention 层和 FFN 层之前(Pre-Norm)
      • Pre-Norm在深层Transformer中容易训练(容易训练不代表效果好,Pre-Norm的拟合能力一般不如Post-Norm),目前很多模型还是会使用Pre-Norm,因为它更稳定
    • Decoder和Encoder选择 :自从 ChatGPT 问世以来,大部分模型都开始朝 Decoder-Only的方向迭代了
    • Tie Embedding :传统 Transformer 中,嵌入层(Embedding Layer)和输出投影层(Unembedding Layer / Output Projection Layer)是绑定,优势是节约存储、训练稳定;缺点是表达能力受限、梯度冲突可能严重(比如输入和输入的词分布差异大),所以后来的一些模型会选择不绑定

Llama 系列(Meta)

  • LLaMA Github链接:meta-llama/llama(分支 llama_v1, llama_v2分别表示不同版本),以及meta-llama/llama3
  • LLaMA HuggingFace链接:meta-llama

LLama

  • 参考链接:(LLaMA1 官方文档)LLaMA: Open and Efficient Foundation Language Models.pdf
  • LLama 发布时间是 2023年2月,包含 Llama-7B,Llama-13B,Llama-30B,Llama-65B 四个版本
  • 整体结构图:
  • 接下来主要介绍 Llama在原始 Transformer 上的改进
  • 改动点一:使用 RMSNorm 替代 LayerNorm
  • 改动点二:使用 RoPE 替代 Sinusoidal 位置编码
  • 改动点三:使用 SwiGLU 激活函数 替换 FFN 层的 ReLU 激活函数
    • ReLU 激活函数对应的 FFN:
      $$ FFN(\mathbf{X}) = ReLU(\mathbf{X}\mathbf{W}^U)\mathbf{W}^D $$
    • SwiGLU 激活函数对应的 FFN:
      $$
      \begin{align}
      FFN(\mathbf{X}) &= SwiGLU(\mathbf{X}\mathbf{W}^U)\mathbf{W}^D \\
      &= (Swish_1(\mathbf{X}\mathbf{W}_1^U) \odot \mathbf{X}\mathbf{W}_2^U )\mathbf{W}^D
      \end{align}
      $$
      • 其中 \(\mathbf{W}_1,\mathbf{W}_2\)都是两个矩阵的乘积(两个矩阵相乘还是矩阵,可以合并)
      • SwiGLU 激活函数的公式为:
        $$
        \begin{align}
        SwiGLU(x, W, V, b, c, \beta) &= Swish_\beta(xW + b) \odot (xV + c) \\
        &= Swish_\beta(xW’) \odot (xV’)
        \end{align}
        $$
      • 由于 \(Swish_1(\mathbf{X}\mathbf{W}_1^U)\) 部分是一个门控结构,所以很多地方也称 \(\mathbf{X}\mathbf{W}_1^U\) 为 Gate 或 \(\mathbf{X}\) 的 gate projection
  • 改动点四:使用 Pre-normalization 替换 Post-normalization
    • 传统 Transformer 中,归一化操作通常是在 Attention 层和 FFN 层之后(Post-normalization(后归一化))
    • Llama系列使用 Pre-normalization,把归一化操作移到了 Attention 层和 FFN 层之前,能提升训练稳定性 ,并加快收敛速度
    • Post-normalization :
      • MHA:\( \text{Output}_{attn} = \text{LayerNorm}( \text{MultiHeadAttention}(x) + x) \)
      • FFN:\( \text{Output}_{ffn} = \text{LayerNorm}( \text{FeedForward}( \text{Output}_{attn}) + \text{Output}_{attn}) \)
    • Pre-normalization :
      • MHA:\( \text{Output}_{attn} = \text{MultiHeadAttention}(\text{LayerNorm}(x)) + x \)
      • FFN:\( \text{Output}_{ffn} = \text{FeedForward}(\text{LayerNorm}( \text{Output}_{attn})) + \text{Output}_{attn} \)
    • 提升训练稳定性 :在训练过程里,随着网络层数的增加,梯度可能会出现不稳定的状况,例如梯度消失或者梯度爆炸。Pre-normalization可以让梯度在反向传播时更加稳定,从而避免这些问题,让模型能够更平稳地收敛
    • 加快收敛速度 :由于梯度更加稳定,模型在训练时可以使用更大的学习率,这样就能够加快收敛速度,减少训练所需的时间
  • 改动点五:使用 AdamW 替代 Adam 优化器
  • 改动点六:嵌入层(Embedding Layer)和输出投影层(Unembedding Layer / Output Projection Layer)参数解绑(原始 Transformer 中是绑定的)
  • Llama 上下文长度为 2048 tokens
  • 训练预料约 1.4T tokens
  • 详细模型版本参数和训练时长如下:
    params dimension \(n\) heads \(n\) layers learning rate batch size \(n\) tokens GPU Type GPU - hours
    6.7B 4096 32 32 \(3.0e^{-4}\) 4M 1.0T A100-80GB 82,432
    13.0B 5120 40 40 \(3.0e^{-4}\) 4M 1.0T A100-80GB 135,168
    32.5B 6656 52 60 \(1.5e^{-4}\) 4M 1.4T A100-80GB 530,432
    65.2B 8192 64 80 \(1.5e^{-4}\) 4M 1.4T A100-80GB 1,022,362
    • 耗时与模型参数大小成正比,与训练token量成正比
    • 简单换算一下可知,训练 6.7B 的模型,训练 1.0T 的数据,在 1,000 块 A100-80G上,训练时间大约是 \(82432/1000/24 \approx 3.43\) 天

Llama2

  • 参考链接:万字长文超详细解读LLama2模型,值得收藏!
  • LLama2 发布时间是 2023年7月,包含 Llama-7B,Llama-13B,Llama-34B,Llama-70B 四个版本
  • LLama2 不同参数量版本的模型结构不完全一致
  • Llama2-7B 和 Llama2-13B 结构和 Llama 基本一致
  • Llama2-34B 和 Llama2-70B 结构在 Llama 结构的基础上增加使用了 GQA 结构
    • Grouped-Query Attention(GQA):Q拆开成多个头,K,V按照组分组,每个头的Q不同,同一组头K,V相同,不同组头之间K,V不同
  • Llama2将上下文扩展至 4096 tokens
  • 训练语料 2.0T tokens

Llama3

  • 参考链接:(LLaMA3 官方文档)Introducing Meta Llama 3: The most capable openly available LLM to date 以及 LLaMA3 其他文档:测试一下Llama3,并探讨一下不用MoE的原因
  • Llama3 发布时间是 2024年4月,发布了包含 Llama3-8B 和 Llama3-70B 两个版本
  • 上下文是 8k(8192)tokens
  • Llama-3 使用 GQA
  • Llama-3 采用更高效的分词器:使用 Tiktoken 分词器 替换了之前的 SentencePiece
  • 部分社区开发者也将 Llama3的长度最长扩展到了几十万甚至上百万 tokens
  • 训练预料 15T tokens

Llama3.x

  • Llama3.1 模型分批发布,发布时间为:
    • 2024 年 7 月发布的 Llama-3.1 包含 8B、70B 和 405B 四个版本
    • 2024 年 11 月发布的 Llama-3.2 包括 1B、3B、11B 和 90B 四个版本(其中 11B 和 90B 是支持视觉的多模态模型)
    • 2024 年 12 月发布的 Llama-3.3 包含 70B 参数版本
  • Llama3.x 模型结构和 Llama3结构一致,但 Llama3.1、Llama3.2和Llama3.3 的上下文都扩展到了 128k tokens

Llama4

  • 参考链接:(LLaMA4 官方文档)The Llama 4 herd: The beginning of a new era of natively multimodal AI innovation
  • Llama4 发布于 2025年4月5日 包含了多个版本,均采用 MoE 架构(注:这是Llama系列首次采用 MoE 架构),且均是多模态模型
    • Llama 4 Scout:总参数量 109B,激活参数 17B,专家数 16(每次激活一个) + 共享专家 1,上下文长度为 1000万 tokens,可 INT4 量化后部署到单 NVIDIA H100 GPU 上
    • Llama 4 Maverick:总参数量 400B,激活参数 17B,专家数 128(每次激活一个) + 共享专家 1,上下文长度为 100万 tokens
    • Llama 4 Behemoth(仍在训练中,尚未发布):总参数量 2,000B,激活参数 288B,专家数 16(每次激活一个)+ 共享专家 1,目前主要用于内部蒸馏使用
  • 多模态的支持使用了早期融合(Early fusion)技术:
    • Early fusion 发生在特征提取的早期阶段,将原始数据或初步处理后的数据直接合并,然后共同进行特征提取
    • 举例:在多模态学习中,将图像像素和文本词嵌入直接拼接后送入网络;

Qwen 系列(Alibaba)

  • Qwen系列参考链接:Qwen官方博客

Qwen

  • 参考链接:Qwen Technical Report 和 (官方)谁是Qwen?通义千问开源模型技术解析
  • Qwen 发布时间是 2023年8月,开源了Qwen-1.8B、Qwen-7B、Qwen-14B 和 Qwen-72B多个版本模型
  • Qwen发布了一系列模型各个模型之间的关系是:
  • 接下来主要介绍 Qwen 在原始 Transformer 上的改进(实际上 Llama 使用到的优化点,Qwen 都使用到了)
  • 改动点一:使用 RMSNorm 替代 LayerNorm
  • 改动点二:使用 RoPE 替代 Sinusoidal 位置编码
  • 改动点三:使用 SwiGLU 激活函数 替换 FFN 层的 ReLU 激活函数
  • 改动点四:使用 Pre-normalization 替换 Post-normalization
  • 改动点五:使用 AdamW 替代 Adam 优化器
  • 改动点六:为了稳定性而移除了 Bias 参数, 但为了保证 RoPE外推性,在Attention 的 QKV Layer 中保留了 Bias
    • 移除 Bias的做法参考了 PaLM: Scaling language modeling with pathways, 2022, Google:

      No biases - were used in any of the dense kernels or layer norms. We found this to result in increased training stability for large models.

  • 改动点七:嵌入层(Embedding Layer)和输出投影层(Unembedding Layer / Output Projection Layer)参数解绑
  • 训练数据量:2-3T tokens
  • Qwen 上下文长度为 32K tokens

Qwen1.5

  • Qwen1.5 分批发布:
    • 2024年2月6日 发布了 0.5B、1.8B、4B、7B、14B、72B 模型,(官方)Qwen1.5来了,开源LLM增加到6款,支持多平台调用
    • 2024年3月29日 发布了MoE模型 Qwen1.5-MoE-A2.7B,(官方)通义千问开源首个MoE模型
    • 2024年4月7日 发布了 32B 模型,通义千问开源320亿参数模型
    • 2024年4月16日 发布了 CodeQwen1.5-7B 模型,通义千问开源320亿参数模型
    • 2024年4月25日 发布了 110B 模型,通义千问开源千亿级参数大模型
  • 在 Qwen 的基础上进行改动
  • 在 32B 和 110B 模型上使用了 GQA (所以发布较晚)
  • Qwen1.5 上下文仍然是 32K tokens

Qwen2

  • 参考链接:(官方)Hello Qwen2
  • Qwen2 发布于 2024年6月7日
  • 包括 Qwen2-0.5B, 1.5B, 7B, 57B-A14B, 和 72B 模型
  • Qwen2所有模型都使用 GQA 注意力机制
  • Qwen2中 0.5B 和 1.5B 使用了 Tie Embedding,其他模型都使用 Embedding 解耦方案
  • Qwen2 最大上下文长度是 128K tokens
  • Qwen2 模型详细配置:
Qwen2-Math
Qwen2-Audio
Qwen2-VL

Qwen2.5

  • 参考链接:Qwen2.5 Technical Report
  • Qwen2.5 发布了很多版本,时间线也很长,其中最早发布时间是 24年9月,也是模型发布最多的一次
  • 发布于 2024年9月((官方)Qwen2.5-LLM:扩展大型语言模型的边界 和(官方)Qwen2.5:基础模型大派对!),包括以下模型:
    • Qwen2.5:0.5B,1.5B,3B,7B,14B,32B,以及72B;
    • Qwen2.5-Coder:1.5B,7B,32B(即将推出,事实上24年9月-11月才逐步发布);
    • Qwen2.5-Math: 1.5B,7B,72B
  • 以上模型均为 Dense 模型,详细参数为:
  • 上下文为 32K 或 128K tokens,生成长度均为 8K tokens
Qwen2.5-1M
  • 2025年1月25日 发布了 Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M,将上下文长度扩充到 100W tokens,(官方)上新!支持100万Tokens上下文的Qwen2.5-1M 开源模型来了
  • Qwen2.5-7B-Instruct-1M、Qwen2.5-14B-Instruct-1M Context Length: Full 1,010,000 tokens and generation 8192 tokens
    • 注:大部分模型都有输出长度限制,包括 DeepSeek-V3 和 DeepSeek-R1 等,可能是训练时为针对超长文本进行优化,输出太长效果不佳?
  • 上下文训练:
Qwen2.5-VL
  • 参考链接:Qwen2.5-VL Technical Report
  • 2025年1月26日发布了 Qwen2.5-VL-3B,Qwen2.5-VL-7B,Qwen2.5-VL-72B 三个多模态模型,(官方)Qwen2.5-VL!Qwen2.5-VL!!Qwen2.5-VL!!!
  • Qwen2.5-VL 架构如下:
  • Qwen2.5-VL-72B 模型效果评估如下:
  • Qwen2.5-VL-72B 的视觉能力跟 GPT-40-0513 和 Claude-3.5-Sonnet-0620 在不同 Benchmark 表现各异,但整体有来有回;Qwen2.5-VL-72B 的文本能力全面超越 Llama-3.1-70B,且在部分指标上超过 Qwen2.5-72B
Qwen2.5-Coder
  • 参考链接:Qwen2.5-Coder Technical Report
  • Qwen2.5-Coder 发布于 2024年9月20日,开源了 1.5B、7B 两个尺寸 (官方)Qwen2.5-Coder: 码无止境,学无止境!
  • 2024年11月12日 正式开源 0.5B、3B、14B、32B 四个尺寸 (官方)Qwen2.5-Coder全系列来咯!强大、多样、实用
  • Qwen2.5-Coder 训练策略如下:
  • Qwen2.5-Coder-32B 模型效果评估如下:
  • Qwen2.5-Coder-32B 与 GPT-4o-20240806 基本持平,全面优于其他(DeepSeek-Coder-V2-Instruct等)模型

Qwen2.5-Math

  • 参考链接:Qwen2.5-Math Technical Report: Toward mathematical expert model via self-improvement 和 Qwen2.5-Math: The world’s leading open-sourced mathematical LLMs
  • Qwen2.5-Math 开发 Pipeline 如下:
Qwen2.5-Max
  • Qwen2.5-Max 发布于 2025年1月29日 (官方)Qwen2.5-Max 发布,探索大规模 MoE 模型的智能
  • Qwen2.5-Max 是超大规模 MoE 模型,使用了超过 20T tokens 预训练,同时还经过了 SFT 和 RLHF 进行后训练
  • 是闭源模型,仅支持API调用,模型大小未知
  • 仿照 DeepSeek-R1 训练?
Qwen2.5-Omni
  • 参考链接:Qwen2.5-Omni Technical Report
  • Qwen2.5-Omni 是基于 Qwen2.5 的端到端模型,支持文本、音频、图像、视频和自然语音交互

    End-to-End Omni (text, audio, image, video, and natural speech interaction) model based Qwen2.5

  • Qwen2.5-Omni 发布于 2025年 包含 Qwen2.5-Omni-3B 和 Qwen2.5-Omni-7B
  • Omni 源自拉丁语([ˈɒmni]),意为“全部”或“所有”,在英语中通常作为前缀使用,表示“全面的、无所不包的”
  • Qwen2.5-Omni 介绍如下:
  • Qwen2.5-Omni 架构 Overview 如下:

QwQ

  • 参考链接:QwQ-32B: Embracing the Power of Reinforcement Learning
  • QwQ 发布于 2024年11月28日,(官方)新成员QwQ,邀你一起思忖未知之界
  • 发布版本为 QwQ-32B-Preview,是实验性研究模型,专注于增强 AI 推理能力
  • 24年 Qwen 开源时间线:

QVQ

  • QVQ 发布于 2024年12月25日,(官方)刚刚,多模态推理模型QVQ全新开源
  • 发布版本为 QVQ-72B-Preview,是一个基于 Qwen2-VL-72B 构建的开源多模态推理模型
  • QVQ-Max:2025年3月发布的新模型,是 QVQ-72B-Preview 的迭代版本,参考QVQ-Max: Think with Evidence

Qwen3

  • 参考链接:Qwen3_Technical_Report, 0513开放
  • Qwen3 发布于 2025年4月29日 (官方)Qwen3:思深,行速,英文版本:Qwen3: Think Deeper, Act Faster
  • 截止到2025年5月的开源 No.1!
  • 本次开源包含 2 个 MoE 模型(Qwen3-235B-A22B 和 Qwen3-30B-A3B)和 6 个 Dense 模型(包括 Qwen3-32B、Qwen3-14B、Qwen3-8B、Qwen3-4B、Qwen3-1.7B 和 Qwen3-0.6B),详细配置如下:
    Models Layers Heads (Q / KV) Tie Embedding Experts (Total/Activated) Context Length
    Qwen3–0.6B 28 16 / 8 Yes - 32K
    Qwen3–1.7B 28 16 / 8 Yes - 32K
    Qwen3–4B 36 32 / 8 Yes - 32K
    Qwen3–8B 36 32 / 8 No - 128K
    Qwen3–14B 40 40 / 8 No - 128K
    Qwen3–32B 64 64 / 8 No - 128K
    Qwen3–30B–A3B 48 32 / 4 - 128 / 8 128K
    Qwen3–235B–A22B 94 64 / 4 - 128 / 8 128K
  • Qwen3 训练流程:
  • Qwen3 的一个核心亮点引入了一个新的能力,可开关慢思考(即打开或关闭思考模式):这种方式的实现是通过修改对话模板chat_template,在模型输出内容中(注意:和直接修改Prompt的结果不一样)插入 <think>\n\n</think> 来实现,详情见:Qwen3是如何实现混合推理(快慢思考)的? - Xode的文章 - 知乎
  • Qwen3 训练数据量是 36T tokens
  • Qwen3-0.6B Context Length: 32,768
  • Qwen3-8B、Qwen3-32B、Qwen3-30B-A3B Context Length: 32,768 natively and 131,072 tokens with YaRN,
  • Qwen3-235B-A22B Context Length: 32,768 natively and 131,072 tokens with YaRN

Qwen3-Turbo(未开源)

  • 首次上线(快照版):2025年4月28日(阿里云百炼平台上架 qwen-turbo-2025-04-28)
  • Qwen3-Turbo(正式版):2025年6月23日(原 qwen-turbo-latest 正式升级为 Qwen3 架构)

Qwen3-Plus(未开源)

  • 首次上线(快照版)2025年4月28日(阿里云百炼平台上架 qwen-plus-2025-04-28)
  • Qwen3-Plus(正式版):2025年6月23日(原 qwen-plus-latest 正式升级为 Qwen3 架构)

Qwen3-Max(未开源)

Qwen3-Max-Preview
  • 上新!超万亿参数的Qwen3-Max-Preview来了, 20250906
  • 20250906 凌晨发布 Qwen3-Max-Preview (Instruct),这是阿里迄今为止最大的模型,参数量超 1 万亿!

    Qwen3-Max-Preview 在多项主流权威基准测试中展现出全球领先的性能。在通用知识(SuperGPQA)、数学推理(AIME25)、编程(LiveCodeBench v6)、人类偏好对齐(Arena-Hard v2)以及综合性能力评估(LiveBench)评测中,Qwen3-Max-Preview 超越了 Claude-Opus 4(Non-Thinking),以及 Kimi-K2、DeepSeek-V3.1 和我们此前的开源最佳 Qwen3-235B-A22B-Instruct-2507
    在我们的内部测试和早期用户测评中,Qwen3-Max-Preview 的确表现出更强的智能水平,更广的知识面,更优秀的对话能力,在Agent任务与指令遵循等方面拥有更强劲的性能
    这证明了,规模化扩展(Scaling)仍然有效,更大的模型拥有更强的性能
    目前,Qwen3-Max-Preview 已正式上线阿里云百炼平台,可通过API直接调用。同时,Qwen Chat 也同步上线新模型,支持免费使用
    欢迎大家体验我们的新模型,也敬请期待正式版Qwen3-Max的发布!
    🔗体验地址:Qwen Chat: https://chat.qwen.ai/

Qwen3-Max-Instruct
  • 发布于 2025年10月15日
Qwen3-Max-Thinking
  • 发布于 2026年1月26日(最强推理版本)

Qwen3-Next

  • HugggingFace:
    • huggingface.co/Qwen/Qwen3-Next-80B-A3B-Instruct
    • huggingface.co/Qwen/Qwen3-Next-80B-A3B-Thinking
    • 其他还包括:Qwen3-Next-80B-A3B-Instruct-FP8 和 Qwen3-Next-80B-A3B-Thinking-FP8 等
  • 博客链接:(官方)Qwen3-Next:迈向更极致的训练推理性价比
    • Qwen3-Next 中认为 Context Length Scaling 和 Total Parameter Scaling 是未来大模型发展的两大趋势,所以提出了 Qwen3-Next 的模型结构,使用了 混合注意力机制、高稀疏度 MoE 结构
  • Qwen3-Next 的模型结构为(3x Gated DeltaNet + 1x Gated Attention):
Gated-Attention Layer
  • Gated-Attention 解决了 Attention Sink 现象
    • Attention Sink 现象是指:初始 token(如序列第一个 token)占据过度集中的注意力权重 的现象
      • 标准 softmax 注意力的 Attention Sink 本质是 “非负归一化导致的冗余注意力累积”
      • 初始 token 的注意力分数会因 softmax 的行归一化(权重总和为 1),在后续 token 的注意力计算中不断累积,形成 “越早期 token 权重越重” 的循环
      • Attention Sink 可能影响模型关注其他更重要的语义 Token 的能力,最终导致模型效果不佳、训练不稳定、以及限制模型长上下文能力等
    • 稀疏门控在 SDPA 输出后直接对注意力权重进行 “动态裁剪”,即使 softmax 生成了初始 token 的高分数,门控也会将其与 Query 无关的部分抑制(因为这里的 Gate 是与 Query 有关的),避免冗余分数进入后续层的 residual 流
      • 以输入依赖的稀疏门控为核心,结合头部特异性设计,既直接削弱初始 token 的过度权重,又避免全局偏置导致的冗余累积,最终打破标准 softmax 注意力中 “初始 token 主导注意力分配” 的循环
  • 门控机制增强注意力层 (Augmenting Attention Layer with Gating Mechanisms),图中 \(G_1, \cdots, G_5\) 是五选一的关系,不是都使用了
  • 门控机制形式化定义为:
    $$Y^{\prime}=g(Y,X,W_{\theta},\sigma)=Y\odot\sigma(XW_{\theta}),$$
    • \(Y\) 是待调制(Modulate)的输入,在上图的 \(G_1\) 中(论文最终选择的节点),使用的是注意力加权后的 Value
    • \(X\) 是用于计算门控分数的另一个输入,在上图的 \(G_1\) 中,使用的是 Query 的 Hidden State
    • \(W_{\theta}\) 指门的可学习参数
    • \(\sigma\) 是一个激活函数(例如 sigmoid)
    • \(Y^{\prime}\) 是门控后的输出
  • 门控分数 \(\sigma(XW_{\theta})\) 有效地充当了一个动态过滤器,通过选择性地保留或擦除其特征来控制来自 \(Y\) 的信息流
  • Gated-Attention Layer 的探索集中在五个关键方面:
    • (1) 位置 (Positions) :作者研究了在不同位置应用门控的效果,如图 1 所示:
      • (a) 在 \(Q, K, V\) 投影之后,对应图 1 中的位置 \(G_{2}, G_{3}, G_{4}\)
      • (b) 在 SDPA(Scaled Dot-Product Attention)输出之后 (\(G_{1}\))
      • (c) 在最终拼接后的多头注意力输出之后 (\(G_{5}\))
      • 注:从图中可以看出,在 SDPA 输出之后 (\(G_{1}\)) 的效果是最好的
    • (2) 粒度 (Granularity) :作者研究了门控分数的两个粒度级别:
      • (a) 逐头(Headwise):单个标量门控分数调制整个注意力头的输出
      • (b) 逐元素(Elementwise) :门控分数是与 \(Y\) 维度相同的向量,支持细粒度的、逐维度的 Modulate
      • 注:Elementwise 和 Headwise 均优效果提升 ,且两者各有优劣
        • elementwise 门控在核心指标上表现更优,不过 headwise 门控在参数效率上更具优势
        • 文章建议根据使用场景选择需要的方式:
          • 若追求极致性能(如高精度语言建模、复杂任务推理):选择elementwise 门控,细粒度调制能最大化模型的表达能力和任务适配性,尤其在 3.5T 大 token 量训练后,性能优势更明显
          • 若追求参数效率(如轻量化部署、低算力训练):选择headwise 门控,其以极小的参数增量实现接近 elementwise 门控的效果,同时仍能保留门控机制的核心优势(如提升训练稳定性、缓解 attention sink)
    • (3) 头特定或头共享 (Head Specific or Shared) :考虑到注意力的多头性质,作者进一步考虑:
      • (a) Head Specific :每个注意力头有其特定的门控分数,支持对每个头进行独立调制
      • (b) Head Shared:\(W_{\theta}\) 和门控分数在头之间共享
      • 注:Head Specific 效果最好
    • (4) 乘性或加性 (Multiplicative or additive) :对于将门控分数应用于 \(Y\),论文考虑
      • (a) 乘性门控(Multiplicative) :门控输出 \(Y^{\prime}\) 计算为:\(Y^{\prime}=Y\cdot\sigma(X\theta)\)
      • (b) 加性门控(Additive):\(Y^{\prime}=Y+\sigma(X\theta)\)
      • 注:Multiplicative 效果最好
    • (5) 激活函数 (Activation Function) :论文主要考虑两种常见的激活函数:SiLU (2020) 和 sigmoid
      • 由于 SiLU 的无界输出范围,论文仅将其用于加性门控,而 sigmoid 仅给出 \([0,1]\) 范围内的分数
      • 此外,为了进一步剖析门控有效性的机制,论文还考虑了恒等映射或 RMSNorm (2019)
      • 注:sigmoid 效果最好
  • 最终,论文采用 \(G_1\) 位置 ,Head Specific、乘性门控 ,并使用 sigmoid 激活函数 (\(\sigma(x)=\frac{1}{1+e^{-x} }\))
    • 注:Elementwise 和 Headwise 均优效果提升 ,且两者各有优劣,要根据场景来选择
Gated DeltaNet(GDN)
  • GDN 是一种与 Mamba2 类似的架构,采用了粗糙的 head-wise 遗忘门
附录:关于 Qwen3-Next 的缺点
  • 根据博客 Qwen3-Next 首测!Qwen3.5的预览版?但为什么我的测试一塌糊涂? 的测评对比发现:
    • 推理效率上,Qwen3-Next-80B-A3B-Instruct 的推理时间是 Qwen3-32B 的 39%
    • 在 BABILong 任务上测试(注:一个简单的检索任务)上效果不如 Qwen3-32B
      • Qwen3-32B 的效果在 2k 后开始低于 100,但性能保持到 32k 开始逐步降低(开始低于 80),256k 时跌为 0
      • Qwen3-Next-80B-A3B-Instruct 从最开始的 0K 开始就有跌幅,且 4k 后的表现为 0
      • 进一步分析原因是:Qwen3-Next-80B-A3B-Instruct 循环输出 “!”,直到结束,且 Qwen3-Next-80B-A3B-Thinking 也有类似情况

Qwen3.5

  • 官方博客:Qwen3.5:迈向原生多模态智能体
  • Qwen3.5 发布于 20260216,发布了两款模型:
    • Qwen3.5-397B-A17B
    • Qwen3.5-397B-A17B-FP8
  • 补充:20260225,再发布了多款小模型(均是多模态的):
    • Qwen3.5-122B-A10B
    • Qwen3.5-35B-A3B
    • Qwen3.5-35B-A3B-Base
    • Qwen3.5-27B
  • 再补充:20260303,再再发布了多款跟小的 Mini 模型及其一些 Base 模型(均是多模态的):
    • Qwen3.5-0.8B
    • Qwen3.5-0.8B-Base
    • Qwen3.5-2B
    • Qwen3.5-2B-Base
    • Qwen3.5-4B
    • Qwen3.5-4B-Base
    • Qwen3.5-9B
    • Qwen3.5-9B-Base
  • 最大卖点:原生多模态(原生视觉-语言模型)
  • 模型结合了线性注意力(Gated Delta Networks)与 MoE,
  • 评估结果:
    • 与当前 SOTA 模型比较,在 IFBench, BrowseComp 和 OmmiDocBench v1.5 等指标上处于领先地位
  • RL Infra:
  • API 使用注意:
    • 模型名:”qwen3.5-plus”
    • 开启推理、联网搜索与 Code Interpreter 等高级能力,只需在 extra_body 字段传入以下参数:
      • enable_thinking:开启推理模式(链式思考)
      • enable_search:开启联网搜索与 Code Interpreter
  • 博客 Qwen3.5:迈向原生多模态智能体 中演示的能力包括:
    • 网页开发
    • OpenClaw 接入
    • 将 Qwen3.5 作为底层模型接入 Qwen Code 支持 Vibe Coding
    • GUI 智能体
    • 视觉编程:

      Qwen3.5 能将手绘界面草图转化为结构清晰的前端代码,对简单游戏视频进行逻辑还原,或将长视频内容自动提炼为结构化网页或可视化图表

    • 空间智能:物体计数、相对位置判断、空间关系描述等任务
    • 带图推理:可根据迷宫图片找到最短路径
    • 视觉推理:如给出多张相似图片,找出图片中不同的一个

DeepSeek 系列(幻方量化)

DeepSeek-V1

  • 跟已经开源的 Llama 结构基本差不多,无确定结构说明(DeepSeek-V2中提到有有Dense 67B 版本)
  • 训练数据量约 2T tokens

DeepSeek-MoE

  • 原始论文:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models
  • 有时候也将这个模型归为 DeepSeek-V1
  • DeepSeekMoE 开源了 deepseek-moe-16b-base 和 deepseek-moe-16b-chat 两个模型
  • 采用了 MoE 结构

DeepSeek-Math

  • 原始论文:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
  • 提出了 GRPO

DeepSeek-V2

  • 参考链接:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model
  • DeepSeek-V2 发布于 2024年5月,开源 DeepSeek-V2(MoE-236B)参数
  • 在DeepSeek-MoE 的基础上,沿着 MoE负载均衡继续做了3个优化
  • 提出并使用了 Multi-head Latent Attention(MLA)
  • 训练数据量约 8T tokens
  • 上下文长度为 128K tokens

DeepSeek-V3

  • 参考链接:DeepSeek-V3 Technical Report
  • 发布时间为:2024年12月26日,
  • 训练数据量约 14T tokens
  • 引入了 Multi-Token Prediction(MTP)技术,训练时可作为辅助损失提升模型效果,推理时仅使用多一个 token 预测
  • DeepSeek-V3 和 DeepSeek-V3-Base,都是 671B-A37B,上下文长度 128K
  • 新发布版本 DeepSeek-V3-0324

DeepSeek-R1-Zero

  • 在 DeepSeek-V3 上直接使用 强化学习方法(GRPO)得到的模型(注意不需要使用 SFT)

DeepSeek-R1

  • 参考链接:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
  • DeepSeek-R1 训练过程:
    • 注意:根据 DeepSeek-V3 辅助材料给出的结论,下图中存在问题(已补充),DeepSeek-R1 和 DeepSeek-R1-Zero 均是从 DeepSeek-V3-Base 训练而来,图中给的是 DeepSeek-V3 (这是 DeepSeek-V3-Base 的微调版本);部分训练数据(监督微调数据中的非推理类数据)确实来源于 DeepSeek-V3
  • DeepSeek-R1 发布时间为 2025年1月20日,并同步开源模型权重(注:2024年11月20日,DeepSeek-R1-Lite 预览版正式上线网页端)

DeepSeek-V3.2-Exp

  • 原始论文:DeepSeek-V3.2-Exp: Boosting Long-Context Efficiency with DeepSeek Sparse Attention, 20250929, DeepSeek-AI
  • HuggingFace:huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp
  • vLLM: DeepSeek-V3.2-Exp Usage Guide
  • DeepSeek-V3.2-Exp 是一个实验性的稀疏注意力模型,通过持续训练,在 DeepSeek-V3.1-Terminus 的基础上增加了 DeepSeek 稀疏注意力 (DeepSeek Sparse Attention, DSA)
  • DSA 是一种由 lightning 索引器(lightning indexer)驱动(powered by)的细粒度稀疏注意力机制(fine-grained sparse attention mechanism) ,借助 DSA,DeepSeek-V3.2-Exp 在训练和推理效率上均取得了显著提升,尤其是在长上下文场景中
  • 模型检查点可在 huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp 获取

DeepSeekMath-V2

  • 发布时间:20251127
  • GitHub:github.com/deepseek-ai/DeepSeek-Math-V2
  • HuggingFace:huggingface.co/deepseek-ai/DeepSeek-Math-V2
  • 参考博客:DeepSeek开源世界首个奥数金牌AI,正面硬刚谷歌
  • 基于 DeepSeek-V3.2-Exp-Base 开发
  • 特别在 IMO-ProofBench 指标上处于第一梯队
DeepSeekMath-V2 文档介绍
  • LLM 在数学推理领域取得了显著进展(该领域不仅是 AI 的重要测试基准,若进一步突破,更可能对科学研究产生深远影响)
  • 当前方案:通过 RL 对推理过程进行 scaling,并以正确的最终答案为奖励信号,LLMs 在一年内实现了性能飞跃:
    • 从最初的表现不佳,到如今在AIME(美国数学邀请赛)、HMMT(哈佛-麻省理工数学竞赛)等定量推理竞赛中达到性能饱和(saturating)状态
  • 问题提出:但以上这种方法存在根本性局限:
    • 追求更高的最终答案准确率,无法解决一个核心问题:正确答案并不意味着正确的推理过程
    • 此外,定理证明(theorem proving)等诸多数学任务,要求严格的分步推导(step-by-step derivation)而非仅输出数值结果,这使得“以最终答案为奖励”的机制完全不适用
  • 为突破深度推理的极限,作者认为有必要对数学推理的完整性(comprehensiveness)与严谨性(rigor) 进行验证
    • 自验证(self-verification)对于缩放测试时计算量(test-time compute)尤为重要,尤其是在处理无已知解的开放问题(open problems)时
  • 针对可自验证数学推理这一目标,作者开展了以下研究:
    • 1)验证器(verifier):训练一个 LLM-based 精准且可信(accurate and faithful)verifier,用于定理证明任务
    • 2)证明生成器(proof generator):以该验证器作为奖励模型(reward model),训练一个 proof generator
      • 并激励生成器在最终定稿前,自主识别并解决其证明过程中的尽可能多的问题;
    • 3)为避免生成器性能提升后出现“生成-验证差距(generation-verification gap)”,作者提出通过 scale verification compute,自动标注新的“难验证证明(hard-to-verify proofs)”,并以此构建训练数据,进一步迭代优化 verifier
      • 理解:这里的生成-验证差距是什么?
  • 最终模型 DeepSeekMath-V2 展现出强大的定理证明能力:
    • 在 2025 年国际数学奥林匹克(IMO 2025)和 2024 年中国数学奥林匹克(CMO 2024)中斩获金牌级分数(gold-level scores);
    • With scaled test-time compute,在 2024 年普特南数学竞赛(Putnam 2024)中取得 118/120 的近乎满分成绩
  • 尽管仍有大量工作亟待推进,但这些结果表明:可自验证数学推理是一条可行的研究方向 ,有望助力开发更具能力的数学 AI 系统

DeepSeek-V3.2

  • 20251201日,同时发布 DeepSeek-V3.2 和 DeepSeek-V3.2-Speciale
  • HuggingFace:
    • huggingface.co/deepseek-ai/DeepSeek-V3.2-Speciale
    • huggingface.co/deepseek-ai/DeepSeek-V3.2
  • DeepSeek-V3.2
    • 目标是平衡推理能力与输出长度,适合日常使用,例如问答场景和通用 Agent 任务场景
    • 在公开的推理类 Benchmark 测试中,DeepSeek-V3.2 达到了 GPT-5 的水平,略低于 Gemini-3.0-Pro;
    • 相比 Kimi-K2-Thinking,V3.2 的输出长度大幅降低,显著减少了计算开销与用户等待时间
  • DeepSeek-V3.2-Speciale
    • 目标是将极致性能,a model that harmonizes high computational efficiency with superior reasoning and agent performance
    • V3.2-Speciale 是 DeepSeek-V3.2 的长思考增强版,同时结合了 DeepSeek-Math-V2 的定理证明能力
    • V3.2-Speciale 模型具备出色的指令跟随、严谨的数学证明与逻辑验证能力,在主流推理基准测试上的性能表现媲美 Gemini-3.0-Pro

Kimi 系列(月之暗面)

Kimi-VL

  • 原始论文:Kimi-VL Technical Report, Kimi Team, 20250410-20250623
    • 2506 增加了一个模型:Kimi-VL-Thinking-2506
  • Kimi-VL 包含一个 Native-resolution Vision Encoder(原生分辨率视觉编码器) MoonViT
    • Native-resolution Vision Encoder 是一种能直接处理原始分辨率与宽高比图像、无需先统一缩放 / 裁剪的视觉编码模块,核心是基于 ViT 架构,用动态 token 与适配性位置编码(如 2D RoPE)保留细节并适配任意尺寸输入, Qwen2-VL 也使用了 Native-resolution Vision Encoder 实现

Step 系列(阶跃星辰, StepFun)

Step1X-3D

  • 参考链接:
    • Github:github.com/stepfun-ai/Step1X-3D
    • 技术报告:Step1X-3D: Towards High-Fidelity and Controllable Generation of Textured 3D Assets
  • 发布时间:20250514日
  • 最强开源:开源全链路代码和部分高质量数据(约800K高质量 3D 数据)
  • 能力:可生成 3D 内容

Step 3.5 Flash

  • 参考链接:Step 3.5 Flash: Open Frontier-Level Intelligence with 11B Active Parameters, 20260211 & 20260223, StepFun
  • 开源时间:2026 年 2 月 2 日

GLM 系列(智谱AI)

GLM

  • 参考链接:GLM: General Language Model Pretraining with Autoregressive Blank Infilling
  • 是Prefix LM(前缀语言模型),也称为 Prefix Decoder,前缀之间可以互相看到,但后续生成的token也只能看到历史,是 Encoder-Decoder 和 Causal Decoder 的一个折中方案

GLM2

GLM3

GLM4

GLM4.5

  • 开源时间:20250728日,同时还开源了 GLM 4.5 Air 版本
  • 截止到发布时间,号称 “全球第三、国产第一、开源第一”
    • 全球前两位是:GPT-o3 和 Grok4
  • 原始论文:GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models, Zhipu AI & Tsinghua University, 20250808
  • 训练方式:
  • 性能评估:
  • 后训练使用了一个智谱 AI 自己开发的后训练框架 slime,开源地址是:github.com/THUDM/slime
  • 数据量 23T,参数量 335B-A32B

GLM 4.6

GLM 4.7

GLM 5

  • HuggingFace: huggingface.co/zai-org/GLM-5
  • 技术博客:GLM-5: From Vibe Coding to Agentic Engineering
  • GLM-5 发布于 20260212,发布即国内 LMArena SOTA
  • 数据量 28.5T,参数量 744B-A40B
  • for 长文:使用了 DSA(DeepSeek Sparse Attention)
  • 同样基于 GLM 子集的 RL 开源框架 slime 进行训练

MiniMax 系列(上海稀宇科技)

MiniMax-Text-01

MiniMax-M1

  • 开源时间:2025 年 6 月 17 日发布
  • MiniMax-M1 是全球首个开源的大规模混合架构推理模型,采用混合门控专家架构(MOE)与 Lightning Attention 注意力机制相结合的创新设计,支持 100 万 token 的上下文输入和 8万 token 的推理输出能力,与谷歌 Gemini 2.5 Pro 的长文本处理能力持平
  • 总参数量为 456B,单次激活45.9B,开源版本包括具有 40K 和 80K COT长度的两个版本
    • 在 SWE-bench 代码验证基准测试中,MiniMax-M1-40k 和 MiniMax-M1-80k 分别取得 55.6% 和 56.0% 的成绩,略逊于 DeepSeek-R1-0528 的 57.6%,但显著超越其他开源权重模型
    • 在长上下文理解任务中,MiniMax-M1 全面超越所有开源权重模型,甚至超越 OpenAI o3 和 Claude 4 Opus,全球排名第二,仅以微弱差距落后于 Gemini 2.5 Pro
    • 在代理工具使用场景(TAU-bench)中,MiniMax-M1-40k 领跑所有开源权重模型,并战胜 Gemini-2.5 Pro
  • MiniMax-M1 API 定价采用阶梯式策略:
    • 0-32k 输入长度时,输入 0.8元/百万token,输出 8元/百万token;
    • 32k-128k 输入长度时,输入 1.2元/百万 token,输出 16元/百万token;
    • 128k-1M 输入长度时,输入 2.4元/百万token,输出24元/百万token
    • MiniMax App 与 Web 端保持不限量免费使用

MiniMax-M2

  • 开源时间:2025 年 10 月 27 日发布并开源
  • 基于 MIT 开源许可证,采用 230B 参数的 MoE 架构,单次推理时激活约 10B 参数
  • 在全球权威测评榜单 Artificial Analysis中,MiniMax-M2 总分位列全球前五、开源第一,跻身全球第一梯队
    • 其在推理与代码生成任务中的表现超过了谷歌的 Gemini 2.5 Pro,API 使用成本约为 Anthropic Claude Sonnet 4.5 的 8%,推理速度快了接近一倍
  • MiniMax-M2 专为端到端开发工作流打造,在编码、指令遵循和 Agent 等核心任务上表现卓越
    • 可以准确规划并稳定执行复杂长链条工具调用任务,协同调用Shell、Browser、Python代码执行器和各种MCP工具
    • 其综合成本 API 价格定在每百万 Token 输入 0.3 美元(2.1 元人民币),输出 1.2 美元(8.4 元人民币),同时在线上提供 TPS(每秒输出 Token数)在 100 左右的推理服务
  • MiniMax M2 通过 MiniMax API 向全球开发者免费开放,试用期至 2025 年 11 月 7 日,并兼容 Hugging Face 与 vLLM 等主流框架
  • MiniMax-M2 使用的是 Full-Attention,许多人在质疑开倒车,但预训练负责人站出来发了博客进行讨论(核心观点:目前实现的系数注意力都是有损的,团队实践经验发现了问题才使用的 Full-Attention)
    • 原始博客:Why Did MiniMax M2 End Up as a Full Attention Model?
    • 解读:MiniMax M2预训练负责人关于Full Attention的亲笔博客(一种更深入浅出的探讨)
  • MiniMax-M2 未放出详细的技术报告
  • MiniMax-M2 在代码方面的能力很强, 已经被 AnyCoder 作为默认模型了
    • 最新进展:默认模型已经是 DeepSeek-V3.2

MiniMax-M2.1

  • 发布时间:20251223
  • HuggingFace:huggingface.co/MiniMaxAI/MiniMax-M2.1

MiniMax-M2.5

  • 发布时间:20260212
  • HuggingFace:huggingface.co/MiniMaxAI/MiniMax-M2.5
  • 从 2025 年 10 月底到 2026 年 2 月,仅 3 个半月, 完成 M2 -> M2.1 -> M2.5 三代迭代,SWE-Bench Verified 成绩从 69.4% 提升至 80.2%

OLMo 系列(AI2)

  • OLMo 系列是艾伦人工智能研究所(AI2, Allen Institute for AI)推出的完全开源大模型家族
  • OLMo 是 Open Language Model 的缩写
  • 优点:其开源不仅公开模型权重,还会披露训练数据、代码、中间检查点等全套资源

OLMo 初代系列

  • 技术报告:OLMo: Accelerating the Science of Language Models, AI2(Allen Institute for AI), 20240201 & 20240607
  • 开源时间 2024年2月 ,此次开源包含 1 个 1B 参数模型和 4 个不同配置的 7B 参数模型(如 OLMo 7B、OLMo 7B (not annealed)等),所有模型均经过至少 2T token 训练
    • 同时开源的还有 3T token 的预训练语料库、完整训练代码、训练日志、超 500 个训练检查点以及评估工具套件,且均采用 Apache 2.0 许可证,支持免费商用

OLMoE

  • 开源时间 2024年9月 ,这是系列内首个专家混合模型
    • 核心型号为 OLMoE-1B-7B(总参数 7B 但每个输入 token 仅激活 1B 参数)
    • 还同步推出了指令微调版本 OLMoE-1B-7B-INSTRUCT
      • 该模型在 5T token 上完成预训练,在同算力成本模型中性能领先,甚至能与 Llama2-13B 等更大规模模型竞争
  • 此次开源同样披露了模型、数据、代码和训练日志等全套资源

OLMo 2 系列

  • 开源时间:2024年底-2025年初
  • 包含 7B 和 13B 两个参数版本,训练数据量高达 5T token
    • 该系列模型在英文学术基准测试中,性能比肩甚至优于同规模开源模型,且能与 Llama 3.1 等开源权重模型一较高下
    • 同时推出了指令微调版本OLMo 2-Instruct
  • 此次开源延续全公开策略,除模型权重外,还公开了训练数据、代码、中间检查点、日志及超参数选择等
  • 2025年10月 ,OLMo 系列迎来参数升级,推出OLMo 2-32B模型
    • 这一 32B 参数的模型仅用三分之一的计算量就达到了与 Qwen-2.5-32B相近的性能,且在多技能学术基准测试中超越 GPT-3.5-Turbo 和 GPT-4o- mini
    • 同期 AI2 还补充开源了 OLMo-7B/13B/34B 等型号,依旧公开了训练数据来源、清洗流程和评估指标等全部核心资源,适配学术研究与商用场景的多样化需求

OLMo 3系列

  • 开源日期 2025年11月20日
  • 包含 7B 和 32B 两个规模,共四个核心变体
    • 基础预训练版 OLMo-3-Base
    • 推理增强版 OLMo-3-Think
    • 指令跟随版 OLMo-3-Instruct
    • RL 对齐研究专用的 OLMo-3-RL-Zero
  • 优点1:该系列上下文长度提升至 65K,且延续极致开源策略,完整披露训练数据集、数据处理流程、训练代码等全部技术细节
  • 优点2:32B 参数的 OLMo-3-Think 模型,在仅用六分之一训练数据量的情况下,性能接近同规模的 Qwen3-32B 模型

Gemma

Gemma 4

  • 开源时间 20260402
  • Gemma 4 模型系列共包含四种型号,移动端设备 and 高性能工作站
    • E2B 和 E4B 这两个型号专为手机等边缘设备设计,追求极致的计算和内存效率,可在设备上实现离线、低延迟运行
    • 26B MoE / 31B Dense 为高性能型号
  • Gemma 4 E2B (Effective 2B)
    • 参数量: 有效参数约 2.3B,总参数 5.1B
    • 上下文窗口: 128K tokens
    • 核心特点: 作为系列中最轻量的模型,它在保持多模态能力的同时,将内存占用优化至极低水平,部分设备可低于1.5GB
    • 原生支持音频输入,可用于语音识别和翻译等场景
  • Gemma 4 E4B (Effective 4B)
    • 参数量: 有效参数约 4.5B,总参数 8B
    • 上下文窗口: 128K tokens
    • 核心特点: 在 E2B 的基础上提供了更强的性能,同样为端侧设备优化,并原生支持音频输入
  • Gemma 4 26B-A4B (MoE)
    • 参数量: 总参数 25.2B,激活 3.8B
    • 上下文窗口: 256K tokens
  • Gemma 4 31B (Dense)
    • 参数量: 30.7B
    • 上下文窗口: 256K tokens
    • 核心特点: Gemma 4 系列中性能最强的型号,在权威评测中表现优异,位列全球开源模型前三(截止到 0402 日,总榜 27,超越 Gemini-2.5-Pro)

其他开源和闭源系列总结

  • 开源模型:Mistrial(法国 Mistral AI), MiniMax(上海稀宇科技),Gemma(Google DeepMind),BELLE(贝壳网),Bloom(BigScience 研究小组)
    • BELLE 基于 Bloomz-7b1-mt 和 LLAMA-7b 等为基础,针对中文进行了优化
    • Bloom 由 BigScience 研究小组主导开发,该项目是一个开放的研究合作项目,由 Hugging Face 主导并协调,代码和模型均开源
  • 闭源模型:GPT系列(OpenAI),Claude(美国 Anthropic),文心一言(百度),Doubao(字节)
  • 先开源后闭源的一些模型系列:
    • Baichuan系列(百川智能)Baichuan,Baichuan2是开源的,Baichuan3是闭源的
    • Mistral(法国 Mistral AI)初始是开源的,微软投资后新发布的 Mistral Large 是闭源的
    • GLM(智谱AI)初始发布的3个版本是开源的,今年1月发布的GLM-4走向了闭源,7月底发布的 GLM4.5 又开源了
  • 先闭源后开源的一些模型系列:
    • MiniMax(上海稀宇科技)最早是闭源的,25年1月发布了 MiniMax-01 系列开源模型,2025年5月发布的 MiniMax-Speech-02 是闭源
  • Qwen 也有闭源模型,20250906 凌晨发布 Qwen3-Max-Preview (Instruct) 是闭源的模型;此外,Qwen 还发布了 Qwen3-Turbo 和 Qwen3-Plus 等闭源模型

一些闭源系列的简单介绍

Doubao 系列(字节)

Doubao-1.5-pro
  • 参考连接:Doubao-1.5-pro

    模型使用 MoE 架构,并通过训练-推理一体化设计,探索模型性能和推理性能之间的极致平衡。Doubao-1.5-pro 仅用较小激活参数,即可超过一流超大稠密预训练模型的性能,并在多个评测基准上取得优异成绩

  • Doubao-1.5-pro 模型评估结果如下:
  • 从图上看,截至到Doubao发布时,效果还是不错的
  • Doubao-1.5-pro亮点 :
    • 高性能推理系统 :高度稀疏的 MoE 模型,针对 Prefill/Decode 与 Attention/FFN 构成的四个计算象限采用异构硬件结合不同的低精度优化策略,在确保低延迟的同时大幅提升吞吐量,在降低总成本的同时兼顾 TTFT 和 TPOT 的最优化目标
    • 扎实数据标注,坚持不走捷径 :

      在 PostTraining 阶段,我们精心构建了一套高度自主的数据生产体系,该体系通过高效标注团队与模型自提升技术的深度融合,持续且精准地优化数据质量,严格遵循内部标准,坚持不走捷径,不使用任何其他模型的数据,确保数据来源的独立性和可靠性
      SFT 阶段,开发了一套算法驱动的训练数据优化系统,涵盖训练数据多样性优化以及精确人题匹配功能,并结合模型自演进(Self-evolve)技术,提升数据标注的多样性和难度,形成了模型性能提升的良性循环
      Reward Model 部分,我们建立了包含 prompt 分布优化、response 筛选、多轮迭代和 active learning 的完整数据生产 pipeline。通过融合同等规模的合成与挖掘数据,有效规避了数据冲突和 pattern hacking 问题;设计了多阶段 Reward Model 训练框架,实现了模型在各类数据分布上的稳定判断能力;基于梯度筛选和迭代过滤技术,用 25% 的数据达到近似全量的训练效果,提高迭代效率;实现了 Verifier 和 Reward Model 的深度融合,构建了统一的 Reward 框架,实现了模型在数学、编程、知识、对话等多维度能力的均衡提升;提出了不同于传统判别式 RM 的生成式 RM 建模方法,在 OOD 泛化性能和 reward hacking 防御上取得显著提升
      RL 阶段,基于 veRL 打造了高并行化的多角色训练推理一体框架,兼容不同类型的数据和奖励方式;通过自适应数据分布调节机制,解决了多任务训练中的冲突问题;攻克了价值函数训练难点,实现 token-wise 稳定建模,收敛速度提升 4 倍,在高难度任务上的性能提升超过 10 个绝对点;通过对比学习方法,有效提升了 LLM 的表现并显著缓解了 reward hacking 问题。在数据、算法、模型层面全面实现了 Scaling,完成算力到智力的有效转换
      此外,依托字节在推荐、搜索和广告领域的 AB Test 经验,研发了基于用户反馈的高效 PostTraining 全流程,基于豆包的大规模用户反馈,我们构建了从问题发现、数据挖掘、人机结合标注到快速迭代的闭环优化系统,通过用户数据飞轮持续提升模型的实际使用体验

    • 多模态
    • 深度思考模式
  • 据说 Doubao-1.5-pro 的参数量是 200B-A20B(参考自 阿里通义千问 Qwen3 系列模型正式发布,该模型有哪些技术亮点? - 橘鸦的回答 - 知乎)
Doubao-1.6
  • 发布日期:20250611
  • Doubao-1.6 系列包含3个版本,都支持256K上下文
    • Doubao-seed-1.6
    • Doubao-seed-1.6-thinking,在推理能力和指令执行测评中超越DeepSeek-R1-0528
    • Doubao-seed-1.6-flash,低延迟
开源预告
  • 预告:20250820日,网络爆出字节 Seed 将开源一个 36B 模型,详情见 PR github.com/huggingface/transformers/pull/40272 及其
    • 具体参数在:src/transformers/models/seed_oss/configuration_seed_oss.py 文件中

Claude 系列(Anthropic)

  • Claude 1.3 :2023年3月推出的初代模型
  • Claude 2 :2023年7月11日发布,性能有所提升,支持更长文本响应,编程、数学、推理能力增强
  • Claude 2.1 :2023年11月21日发布,上下文窗口提升至200K
  • Claude 3系列 :2024年3月4日发布,包括
    • Claude 3 Haiku
    • Claude 3 Sonnet
    • Claude 3 Opus
    • 以上三个子模型,在上下文理解、多模态处理能力以及整体性能方面表现出色,首次实现多模态能力,能处理图像和视频帧输入
  • Claude 3.5 :于2024年6月推出Sonnet版本
    • 在推理、知识和编程能力上达到行业新标准,在理解微妙语义、幽默和复杂指令方面表现突出,能输出更自然、高质量文本,视觉推理上可精确转录图像中文本并生成洞察
  • Claude 4 的猜测:据说 Claude 4 是划时代的
Claude 3 有趣的命名
  • Claude 3系列模型命名含义如下
    • Haiku:含义是 日本的“俳句”,因为俳句简短,暗示该模型是轻量级的,是响应速度最快、成本最低的选项,适用于简单日常工作流
    • Sonnet:含义是 英文的“十四行诗”,暗示模型就像十四行诗在文学体裁中具有一定的复杂性和表现力,该模型推理能力不错,能处理中等复杂度任务,是性价比之选
    • Opus:含义是 音乐“巨作”,表明它是性能顶配的模型,具有强大的推理、数学和编码能力,适用于处理高度复杂的任务

Gemini(Google)

  • Gemini 2.5 Pro:2025年3月25日发布(号称地表最强推理模型),2025年6月18日进入稳定阶段,可稳定支持生产级应用开发

Grok(xAI)

  • 参考链接:Grok 4在两大测试中全面刷新记录,直接屠榜
  • 发布时间:2025年7月10日
  • Grok 4 在多个基准上取得最好成绩,在 AIME2025 上取得满分,在 HLE 上最高可拿到 50% 的分数:
    • 原始的 Grok 4(不使用任何工具)
      • HLE: 26.9% (TEXT ONLY)
      • HLE: 25.4% (FULL HLE)
    • 调用“工具”的 Grok 4(搜索引擎、计算器、编程语言)
      • HLE: 41% (TEXT ONLY)
      • HLE: 38.6% (FULL HLE)
    • 多个 Agent 组合的 Grok 4(“parallel testing agents”或者“multiple agents”)
      • HLE: 50% (TEXT ONLY)
      • HLE: 44.4% (FULL HLE)
  • Grok 4 定价:输入 $3/100万 token,输出 $15/100万 token
    • Sonnet 4:输入 $3/100万 token,输出 $15/100万 token
    • Claude Opus 3:输入 $2/100万 token,输出 $8/100万 token
    • GPT-4.1:输入 $2/100万 token,输出 $8/100万 token

OpenAI(GPT系列)

  • ChatGPT :是一款主打聊天功能的模型,发布于 2022年11月30日,基于 OpenAI 的 GPT-3.5 架构
  • GPT-4 :发布于 2023年3月14日,是大型多模态模型 ,可接受文本或图像输入并输出文本,具有更广泛的常识和先进的推理能力,能更准确地解决难题
  • DALL·E 3 :2023年11月发布,是 OpenAI 的图像生成模型,通过图像API提供服务,支持根据自然语言描述创建逼真图像和艺术作品,还能创建特定大小的新图像
  • GPT-4o :发布于 2024年5月13日,“o”代表“omni” ,意为“全能”,是多模态模型,接受文本或图像输入并输出文本。它具有与GPT-4 Turbo相同的高智能,但效率更高,生成文本速度提高2倍,成本降低50%
  • GPT-4o mini :2024年7月18日 发布,是 OpenAI 当时最强大且成本效益最高的小型模型,在学术基准测试中超越GPT-3.5 Turbo等小型模型,在文本智能和多模态推理方面表现出色
  • o1-preview :2024年9月 发布,是旨在解决跨领域难题的推理模型
  • o3 :发布于 2025年4月,是 OpenAI 当时最强大的推理模型,在编程、数学、科学、视觉感知等多个维度的基准测试中刷新纪录,在分析图像等视觉任务中表现突出
  • o4-mini :2025年4月 发布,是专为快速、经济高效的推理而优化的小模型,在非STEM任务以及数据科学领域超过了前代的o3-mini
  • GPT-OSS系列 :2025年8月5日 发布,包含 120B 与 20B 双版本,采用 MoE架构,Apache2.0许可,支持免费商用
    • 支持 MXFP4 量化
    • 单卡 80GB GPU 能够支持 120B 规模的模型
    • 20B 模型可在消费级 16GB 显存硬件上流畅推理,实现低成本本地化部署
  • GPT-5 :2025年8月7日 发布,由多个子模型组成,可根据问题复杂程度自动切换模型。其上下文窗口提升至256K tokens,推理能力大幅增强,在编程、数学等领域表现出色,语音交互更稳定流畅
  • GPT-5 mini :2025年8月7日 随 GPT-5 一同发布,是 GPT-5 的精简版本,当免费用户使用GPT-5达到次数限制后会切换为该模型
  • GPT-5 Nano :2025年8月7日 发布,具体细节未详细披露,与GPT-5、GPT-5 mini共同构成了GPT-5系列,应是针对特定场景或资源受限环境设计的更轻量化模型

附录:LLM 名称前后缀及其含义

  • -Base :通常是指未经特定任务微调的基础预训练模型,可用于进一步的微调,以适应特定任务或应用场景
    • 包含大量通用知识,但未对特定任务进行优化
  • -Chat :针对对话系统设计和优化的模型,用于生成自然语言对话,能够理解上下文并生成连贯且有意义的回复,可应用到聊天机器人、智能助理等
    • 经过大量对话数据微调,具备更好的上下文理解能力和对话生成能力
  • -Instruct :旨在遵循指令或完成特定任务而设计和优化的模型,用于执行具体指令,如回答问题、生成文本、翻译等任务
    • 经过指令数据集微调,能够更好地理解和执行用户提供的指令
  • -4bit(或-Int4) :表示该模型是基于4位量化技术的版本
    • 量化是一种将模型参数表示为较低精度数据类型的技术,4bit量化可以显著减少模型的存储空间和计算量
  • -AWQ :表示采用了激活值感知的权重量化(Activation-aware Weight Quantization)方法
    • 这种方法通过统计激活值的绝对值均值,保留1%的关键权重通道为FP16精度,其余通道量化为4位整数(INT4),并通过缩放因子降低量化误差
  • -GPTQ-Int4 :表示采用了生成式预训练变压器量化(Generative Pretrained Transformer Quantization)方法
    • 将模型权重量化为4位整数(Int4),以减少模型存储空间和计算量,提高推理效率
  • -GPTQ-Int8 :与 -GPTQ-Int4 类似的 Int8 版本
  • -GGUF :表明该模型采用的是 GPT-Generated Unified Format 格式存储,这是一种专为大语言模型设计的二进制文件格式
    • 这种存储旨在实现模型的快速加载和保存,同时易于读取,支持动态量化与混合精度配置,适用于不同硬件资源场景
    • .gguf采用紧凑的二进制编码格式和优化的数据结构来保存模型参数,兼顾存储效率、加载速度、兼容性和扩展性
    • 以codeqwen-1_5-7b-chat-q5_k_m.gguf为例,q5_k_m 是 GGUF 格式中关于模型量化的标识,其中 q5 表示模型的主量化精度为 5 比特;k 代表量化过程中采用的是 k-quant 算法;m 表示混合精度优化级别为中等,即中等混合,更多块使用高精度,以平衡速度和精度
  • Code :表示专门为Code任务微调的模型
  • -1M :表是上下文长度是 100W tokens(名字出自 Qwen2.5-7B-Instruct-1M和Qwen2.5-14B-Instruct-1M)
  • -AxxB :表示 MoE 模型的激活参数,比如 Qwen2-57B-A14B 表示总参数量 57B,每次激活参数量 14B
  • [None] :特别地,如果没有任何后缀,则有可能是 Pretraining 的基础版本(-Base版本),也可能是经过 Pretraining+Post-training 的版本,详细信息可以从 Model Card 中查看,比如:
    • Qwen/Qwen2.5-32B : Training Stage: Pretraining
    • Qwen/Qwen3-32B : Training Stage: Pretraining & Post-training
  • -turbo :表示原模型的增强版,OpenAI 常用
  • -mini :表示原模型缩小尺寸的版本,OpenAI 常用
  • -nano :表示比 mini 还小的更小尺寸模型,OpenAI 常用
  • -oss :OSS 代表 “Open-Source Series”,一般是闭源公司的 “开源系列” 模型, 比如 OpenAI 的 gpt-oss-120b 和 gpt-oss-20b
  • -omni :“omni” 常用来表示全模态,像 GPT-4o 中的 “o” 代表 “omni”,意味着全能的,”omni” 也常用于科技、学术、哲学等领域来表示全范围、全功能等概念
1…151617…66
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

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