一文搞懂DeepSeek核心技术-GRPO

大家好,我是皮先生!!

本文将深入剖析DeepSeek模型核心技术-GRPO强化学习算法的工作原理、技术创新,希望对大家的理解有帮助。

目录

PPO(近端策略优化)

PPO公式

PPO算法存在的问题

GRPO(群组相对策略优化)

GRPO公式

GRPO的算法流程

结论

参考资料


目前,大模型训练大体可以分为3种模式:

  • 预训练(Pretraining):是指在大规模通用数据集上对模型进行初步训练,使其学习到通用特征和表示的过程。这一过程通常采用无监督学习方法,通过自监督学习或无监督学习技术,使模型能够捕捉输入数据的统计规律和潜在结构,从而为后续特定任务的微调提供高质量的基础特征。
  • 有监督微调Supervised Fine-Tuning,SFT):SFT让模型通过学习训练数据数据分布的方式来提高模型在特定任务或指令上的表现。
  • 强化学习(Reinforcement Learning):RL使用人类反馈来定义奖励函数,然后通过强化学习算法优化模型,让模型能生成符合人类喜好的回复。

GRPO(群组相对策略优化)可以算作是PPO(近端策略优化)的计算效率优化版本,在保持效果的同时,降低计算资源消耗。

PPO(近端策略优化)

强化学习中,Actor-Critic算法是策略(Policy Based)和价值(Value Based)相结合的方法。

一般来说,PPO需要使用4个模型。

1.Actor模型(Policy Model):由SFT模型初始化,就是进行强化学习的主模型,是我们想要最终获得的模型。它不断产生action(输入一段上文,输出下一个token的概率分布)并被Critic模型所评价,计算loss进行训练(我们想要训练的目标语言模型)

2.Reference模型:一般也是从SFT模型初始化,RLHF中Reference模型并不更新参数,只是作为Actor模型的参考使用通过约束Actor模型和Reference模型的KL penalty等,可以防止Actor模型在训练过程中出现过大偏差。(给语言模型增加一些“约束”,防止目标语言模型训歪)

“防止模型训歪”换一个更详细的解释是:我们希望训练出来的Actor模型既能达到符合人类喜好的目的,又尽量让它和SFT模型不要差异太大。简言之,我们希望两个模型的输出分布尽量相似。那什么指标能用来衡量输出分布的相似度呢?我们自然而然想到了KL散度。

3.Reward模型:提前用偏好数据训练好的,用于对Actor模型的预测进行打分,评估模型对于当前输出的即时收益,RLHF中Reward模型的参数是冻结的(计算即时收益)

4.Critic模型(Value Model):一般由Reward模型进行初始化,参数可训练,用于预测Actor模型生成的token的总收益。该总收益不仅考虑当前token的质量,还需要衡量当前token对后续文本生成的影响。(计算预估总收益)

PPO公式

是通过应用广义优势估计(GAE)计算的优势,基于奖励和一个可学习的价值函数。

在PPO中,价值函数需要与策略模型一起训练,并且为了减轻奖励模型的过度优化,标准方法是在每个Token的奖励中添加一个来自参考模型的每个Token KL惩罚。

PPO算法存在的问题

  • 由于PPO中采用的价值函数通常是另一个与策略模型大小相当的模型,因此它带来了大量的内存和计算负担。
  • 此外,在RL训练期间,价值函数被视为计算方差减少优势的基线。而在LLM上下文中,通常只有最后一个标记被奖励模型分配奖励分数,这可能使在每个标记处精确的价值函数的训练变得复杂。

GRPO(群组相对策略优化)

传统的 PPO 使用 Value 模型来估计模型回复的总收益,这实际上是对未来模型回复各种可能性的一个平均分值估计。

GRPO算法 :通过大模型根据当前的上文输入进行多次采样,生成多个预测结果 ,并分别使用 Reward 模型对这些预测结果进行评分得到,最后取这些评分的平均值来替代 Value 模型的预期总收益估计。通过这种方式,GRPO 在训练过程中可以减少一个模型的前向和反向传播计算,从而降低计算资源的消耗。

优势与特点

  • 资源效率:由于无需独立的价值网络,GRPO减少了模型训练的计算和内存消耗。
  • 训练稳定性:通过组内基线和KL散度约束,GRPO能够更稳定地进行策略更新,避免梯度爆炸或爆炸性变化。
  • 适应性:GRPO适用于需要多步推理和复杂链式思维的任务,如数学推理和对话系统。

GRPO公式

GRPO不是在奖励中添加KL惩罚,而是通过直接将训练策略和参考策略之间的KL散度添加到损失中来进行调整。

与PPO中使用的KL惩罚项不同,GRPO使用无偏估计量来估计KL散度。

GRPO的算法流程

  1. 采样多输出:对于一个输入,模型基于当前策略生成多个输出(比如生成4个不同的答案)。
  2. 计算奖励:将这些输出送入奖励模型,得到每个输出的奖励值。
  3. 计算群组基准(baseline):取这些输出的平均奖励作为基准值(baseline)。
  4. 计算相对优势每个输出的奖励减去基准值,得到它的“相对优势”(advantage)。
  5. 策略更新:用相对优势来更新模型策略,同时加入KL散度约束,防止更新过大。
  6. 迭代优化:重复上述步骤,直到模型性能收敛。

结论

Deepseek的GRPO(群组相对策略优化)算法是一种创新的强化学习方法,专为提升大型语言模型的推理能力而设计。它通过基于群组的评估方法和相对奖励优化机制,有效增强了模型的推理性能。与传统PPO算法相比,GRPO无需依赖独立价值模型,从而显著降低了内存和计算成本,同时提高了训练过程的稳定性。

参考资料

DeepSeekMath:https://arxiv.org/abs/2402.03300

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值