DeepSeek 背后的技术:GRPO,基于群组采样的高效大语言模型强化学习训练方法详解

news/2025/2/15 16:03:11/

强化学习(Reinforcement Learning, RL)已成为提升大型语言模型(Large Language Models, LLMs)推理能力的重要技术手段,特别是在需要复杂推理的任务中。DeepSeek 团队在 DeepSeek-Math [2] 和 DeepSeek-R1 [3] 模型中的突破性成果,充分展示了强化学习在增强语言模型数学推理和问题解决能力方面的巨大潜力。

这些成果的取得源于一种创新性的强化学习方法——群组相对策略优化(Group Relative Policy Optimization, GRPO)。该方法有效解决了将强化学习应用于语言模型时面临的特殊挑战。本文将深入分析 GRPO 的工作机制及其在语言模型训练领域的重要技术突破,并探讨其在实际应用中的优势与局限性。

PPO 与 GRPO 的对比分析

近邻策略优化(Proximal Policy Optimization, PPO)[1] 一直是语言模型强化学习微调的主流算法。PPO 的核心是一种策略梯度方法,通过裁剪(clipping)机制来限制策略更新的幅度,从而防止策略发生过大的破坏性变化。PPO 的目标函数可表示为:

GRPO 首次在文献 [2] 中提出,它在 PPO 的基础上引入了多项关键创新,使其在语言模型训练中具有更高的效率和适用性:

  1. 无需价值网络,显著降低了内存占用和计算开销
  2. 采用群组采样方法,实现更高效且稳定的优势估计
  3. 通过强化目标函数和奖励的惩罚机制,实现更保守的策略更新

更详细的对比:

具体的PPO 原理和Pytorch代码可以参考我们前几天发布的文章。

GRPO 技术深析

语言模型作为策略网络

在 GRPO 框架中,语言模型充当策略网络(actor),将问题 q 作为输入观察 s,输出一系列词元(tokens)作为动作。策略分布在词元序列上进行分解:

注: 原始论文 [2] 使用 o_t 表示时间步 t 的输出词元,而本文采用 a_t 以符合强化学习动作的标准记号。

序列化词元生成

基于 Transformer 架构和语言模型的自回归特性,生成过程具有严格的序列性:

  1. 每个词元的生成都依赖于之前生成的词元序列
  2. 策略网络(语言模型)维护持续更新的上下文信息
  3. 每个词元生成步骤都可视为强化学习框架中的一个动作 a_t

奖励计算与优势估计

GRPO 对每个生成序列中的词元奖励计算如下:

GRPO 摒弃了传统的价值网络,转而通过对参考策略产生的多个输出样本进行群组奖励归一化来估计基线优势值 A。这些输出样本都是针对同一输入问题生成的:

优势估计的详细步骤:

  1. 群组采样: 对于每个问题,使用旧策略生成多个不同的输出序列。
  2. 奖励计算: 计算每个输出序列的累积奖励。
  3. 奖励归一化: 对群组内的奖励进行归一化处理,例如减去均值并除以标准差。
  4. 优势估计: 使用归一化后的奖励作为优势函数的估计值。

GRPO 目标函数

对于每个问题 𝑞,GRPO 从旧策略 𝜋𝜃𝑜𝑙𝑑 中采样一组输出 {𝑜1, 𝑜2, · · · , 𝑜𝐺},然后通过最大化 GRPO 目标函数来优化策略模型。完整的 GRPO 目标函数综合了以下要素:

该目标函数的特点:

  1. 同时在群组和序列长度维度上进行平均
  2. 使用裁剪机制确保策略更新的保守性
  3. 引入 KL 散度估计作为惩罚项,防止策略与参考模型产生过大偏离

目标函数的详细解释:

  • 第一项: 策略梯度项,鼓励模型生成更高奖励的动作序列。
  • 第二项: 裁剪项,限制策略更新的幅度,防止策略崩溃。
  • 第三项: KL 散度惩罚项,防止新策略与旧策略偏离过大,保证训练的稳定性。

GRPO 的优势与局限性

优势:

  • 高效性: 无需价值网络,降低了计算和内存开销。
  • 稳定性: 群组采样和 KL 散度惩罚提高了训练的稳定性。
  • 适用性: 特别适用于大规模语言模型的微调。

局限性:

  • 对参考策略的依赖: GRPO 的性能受到参考策略质量的影响。
  • 超参数敏感: 目标函数中的超参数(如裁剪范围和 KL 散度系数)需要仔细调整。
  • 理论分析的缺乏: 相比于 PPO,GRPO 的理论分析还不够完善。

实际应用案例

DeepSeek-Math 和 DeepSeek-R1 是 GRPO 在实际应用中的成功案例。这些模型在数学推理和问题解决能力方面取得了显著的提升,证明了 GRPO 在增强语言模型推理能力方面的有效性。

DeepSeek-Math: 通过 GRPO 训练,DeepSeek-Math 在数学问题解决能力上超越了许多其他大型语言模型。

DeepSeek-R1: DeepSeek-R1 利用 GRPO 提高了在复杂推理任务中的表现,例如阅读理解和逻辑推理。

总结

GRPO 在将强化学习应用于语言模型方面取得了重要突破。通过取消价值网络依赖并引入群组相对优势估计,该方法实现了更高效和稳定的训练过程。DeepSeek-Math 和 DeepSeek-R1 的成功实践充分验证了这种方法的实际效果。

GRPO 的核心创新——群组采样、相对优势估计以及价值网络的简化——为语言模型训练的未来发展提供了重要的技术参考。随着语言模型能力边界的不断拓展,GRPO 等创新技术将在充分发挥语言模型潜力方面发挥关键作用。未来的研究方向包括:

  • 改进优势估计方法: 探索更精确和高效的优势估计方法。
  • 自适应超参数调整: 开发自动调整 GRPO 超参数的算法。
  • 理论分析: 加强对 GRPO 算法的理论分析,理解其收敛性和泛化能力。

参考

[1] Schulman, John, et al. Proximal Policy Optimization Algorithms. arXiv:1707.06347

[2] Shao, Zhihong, et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300,

[3] DeepSeek-AI, et al. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948,

https://avoid.overfit.cn/post/05d4b8fb001b4adeb4e050fb323cd21f


http://www.ppmy.cn/news/1572286.html

相关文章

建造者模式详解(Java)

建造者模式(Builder Pattern)是一种创建型设计模式,通过将复杂对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。这种模式提供了一种灵活的方式来构建复杂对象,从而提高代码的可读性和可维护性。本文将从建造者模式的原理、背景、优缺点、应用场景以及实际…

恒创科技:如何重新启动 Windows 服务器

重新启动 Windows 服务器对于应用更新、解决问题和维护系统性能至关重要。定期重新启动有助于确保服务器运行最新软件、解决冲突并清除临时文件。本教程将介绍如何使用不同的方法重新启动 Windows 服务器。 注意:重新启动服务器之前保存所有工作,以避免丢…

DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

第二章:基础概念精讲 - 第二节 - Tailwind CSS 颜色系统和主题定制

颜色系统基础 1. 默认调色板 Tailwind CSS 提供了一套精心设计的默认颜色系统: // tailwind.config.js 默认颜色示例 module.exports = {theme: {colors: {// 灰度gray

AI时代前端开发:创造力的新引擎?

在AI时代,前端开发领域正经历着翻天覆地的变化。从简单的静态页面到复杂的交互式应用,技术的飞速发展对前端开发工程师提出了更高的要求。然而,在追求效率的同时,我们更需要关注的是:如何才能在AI技术的浪潮中&#xf…

秘密信息嵌入到RGB通道的方式:分段嵌or完整嵌入各通道

目录 1. 将秘密信息分为三部分的理由 (1)均匀分布负载 (2)提高鲁棒性 (3)容量分配 2. 不将秘密信息分为三部分的情况 (1)嵌入容量 (2)视觉质量 &#…

Pytorch深度学习教程_1_Python基础快速掌握

欢迎来到PyTorch深度学习教程系列!在本系列中,我们将从零开始学习如何使用PyTorch进行深度学习开发。本篇是系列的第一篇,我们将快速掌握Python编程基础,为后续的深度学习学习打下坚实的基础。 对于深度学习环境配置及pytorch的下…

Day65_20250213图论part9_dijkstra(堆优化版)|Bellman_ford算法精讲

Day65_20250213图论part9_dijkstra(堆优化版)|Bellman_ford算法精讲 dijkstra(堆优化版) 题目 https://www.programmercarl.com/kamacoder/0047.%E5%8F%82%E4%BC%9Adijkstra%E5%A0%86.html 小明参加科学大会 思路 思路 朴素版的dijkstra,时间复杂度为O(n^2)&am…