简介:本文深度解析DeepSeek-R1模型训练中使用的GRPO奖励函数公式,从理论基础到数学推导,结合代码示例说明其优化目标、优势及实践应用,为开发者提供可落地的技术参考。
在强化学习(RL)框架中,奖励函数(Reward Function)是驱动模型行为优化的核心组件。DeepSeek-R1作为基于大规模语言模型的生成式AI系统,其训练过程面临两大挑战:生成结果的多样性控制与任务目标的精准对齐。传统RL方法(如PPO)依赖环境反馈的稀疏奖励,难以直接应用于文本生成场景;而GRPO(Group Relative Policy Optimization,组相对策略优化)通过引入相对优势评估机制,有效解决了这一问题。
GRPO的核心思想是:不依赖绝对奖励值,而是通过比较同一批次中不同生成样本的相对表现,动态调整策略概率。这种设计使得模型在缺乏明确环境反馈时,仍能通过组内对比学习到更优的生成策略。在DeepSeek-R1中,GRPO被用于微调阶段,优化生成文本的质量、相关性和安全性。
GRPO的奖励函数可表示为:
[
R(s, a) = \frac{1}{N} \sum{i=1}^{N} \left[ \log \pi\theta(ai|s) \cdot \left( \hat{Q}(s, a_i) - \frac{1}{M} \sum{j=1}^{M} \hat{Q}(s, a_j) \right) \right]
]
其中:
(1)相对优势计算
公式中的核心项是(\hat{Q}(s, ai) - \frac{1}{M} \sum{j=1}^{M} \hat{Q}(s, a_j)),即当前动作价值与组内平均价值的差值。这种设计使得:
(2)概率加权机制
通过(\log \pi_\theta(a_i|s))对相对优势进行加权,确保:
(3)组内对比学习
与传统RL不同,GRPO通过组内样本(如同一输入的不同生成结果)构建相对基准,无需外部环境交互。在DeepSeek-R1中,组内样本可通过以下方式生成:
文本生成任务中,奖励信号通常来自人工标注或预训练奖励模型(如BERT评分),存在主观性和噪声。GRPO通过组内对比:
传统PPO需要维护价值网络和策略网络,而GRPO仅需策略网络和奖励模型,参数更少。在DeepSeek-R1的分布式训练中,GRPO的轻量级特性显著减少了通信开销。
以下是一个简化的GRPO奖励计算伪代码:
import torchdef grpo_reward(log_probs, q_values):"""log_probs: (N,) 张量,组内各动作的对数概率q_values: (N,) 张量,组内各动作的估计价值"""baseline = q_values.mean() # 组内平均价值advantages = q_values - baseline # 相对优势weighted_advantages = log_probs * advantages # 概率加权return weighted_advantages.mean() # 平均奖励# 示例调用log_probs = torch.tensor([-1.2, -0.8, -1.5]) # 三个候选token的对数概率q_values = torch.tensor([0.9, 0.7, 0.3]) # 对应的奖励模型评分reward = grpo_reward(log_probs, q_values) # 输出: -0.0467
此示例中,第二个token因相对优势最高((0.7 - \frac{0.9+0.7+0.3}{3} = 0.1))且概率较高,获得正奖励,策略将倾向于生成它。
组大小选择
奖励模型设计
温度参数调优
GRPO奖励函数通过相对优势评估和组内对比学习,为DeepSeek-R1的文本生成优化提供了高效、鲁棒的解决方案。其核心价值在于:
未来方向包括:
对于开发者,建议从简单任务(如文本摘要)入手,逐步调整组大小和奖励模型权重,最终实现复杂生成任务的优化。”