大模型工程面试经典(八)—对比PPO和GRPO算法核心原理

409 阅读7分钟

前言

又是一年“金九银十”秋招季,大模型相关的技术岗位竞争也到了白热化阶段。为满足大家碎片化时间复习补充面试知识点的需求(泪目,思绪回到前两年自己面试的时候),笔者特开设 《大模型工程面试经典》 专栏,持续更新工作学习中遇到大模型技术与工程方面的面试题及其讲解。每个讲解都由一个必考题和相关热点问题组成,小伙伴们感兴趣可关注笔者掘金账号和专栏,更可关注笔者同名微信公众号: 大模型真好玩,免费分享学习工作中的知识点和资料。

一、面试题 请对比PPO和GRPO的算法原理?

1.1 问题浅析

虽然是大模型工程领域的面试,但面试官也很可能会考察一些算法知识,如何使用通俗易懂的语言叙述算法的核心原理是回答这类问题的关键。

PPO和GRPO都是强化学习的热门算法,PPO((Proximal Policy optimization)算法也被称作近端策略优化,是由OpenAI 在 GPT-3.5提出RLHF强化学习(Reinforcement Learning from Human Feedback) 框架之后该框架下最流行的强化学习算法。借助PPO可以快速让模型行为向人类偏好对齐,提升模型的推理能力、代码能力、Agent性能等。

GRPO(Group Relative Policyoptimization 组相对策略优化) 是DeepSeek团队在2024年论文《DeepSeekMath: Pushing the Limits of MathematicalReasoning in Open Language Models》中提出的一种新锐的强化学习算法,GRPO是DeepSeek R1模型推理能力背后的功臣,今天我们看到的如Claude4,Gemini2.5, Qwen3等模型背后都是采用了类GRPO的强化学习算法使模型获得推理能力,自然也是面试的高频考点。

1.2 标准答案

第一段首先回答PPO算法的原理

PPO(ProximalPolicyoptimization) 是一种基于 Actor-Critic 架构的策略梯度方法,广泛用于大模型的 RLHF 训练。它同时训练两个网络:策略网络(Actor) 负责在给定状态下输出动作分布;价值网络(Critic) 负责估计当前状态的价值。训练时,首先由策略网络生成动作,然后由价值网络进行预估,并通过 奖励函数(RewardFunction) 对该动作打分;然后将奖励函数打分结果与价值网络的预估结果结合,计算出优势函数(Advantage),用来衡量“这个动作相比预估结果好多少”’。如果优势为正就提升该动作的概率; 为负则降低其概率最终让模型的生成行为持续对齐人类偏好。

举例说明,策略网络负责生成一个动作,这里的策略网络就是指大模型,大模型生成一句话就是策略网络生成的动作,例如“你好,好久不见”。而价值网络则负责估计当前状态下这个动作的价值,例如输出“你好,好久不见”这个回答在当前语境下得分0.6,这个分数就是对模型回答的打分。此外PPO还需要一个奖励函数,奖励函数是基于人类偏好设计的一个评估函数,例如假设人类更希望模型输出的是“你好,好久不见!最近过的怎么样”,那奖励函数就会对“你好,好久不见”打比较低的分比如0.5分。有了价值网络的估值和奖励得分之后,PPO就会计算一个优势函数,最简单的优势函数可能是A=Reward - Value = 0.5 - 0.6 = -0.1, 分值为负说明“你好,好久不见”这个回答比预期回答要差,未来PPO训练过程就会努力让模型避免这么回复。反过来如果模型生成了“你好,好久不见,最近过的怎么样”,奖励函数的分数会变为0.8, 而价值网络的分数因为语义i相同打了0.65A=0.8-0.65=0.15, 优势函数动作为正,说明这个动作比模型预期的更好,PPO在未来训练过程中就会努力让模型这样回复。PPO通过这样的机制使得模型不断朝着奖励函数定义的方向优化,好的输出结果被提升概率,差的输出结果被抑制概率,最终逐渐对齐人类偏好,这就是PPO算法基础原理。原理示意图如下:

16.png

第二段回答GRPO算法的原理以及和PPO区别

GRPO 是Deepseek提出的强化学习算法,它的核心思想是省略掉传统 PPO 中的价值网络,通过在同一个状态下采样一组动作,然后基于组内相对奖励进行归一化,来得到优势函数,进而进行策略更新。这种方法减少了训练开销,保证了稳定性,在大模型的微调任务中展现出极高的训练效率。

17.png

在PPO训练过程中一个非常现实的问题就是训练价值网络非常昂贵,而且价值网络的估计有可能存在误差容易导致训练不稳定,于是DeepSeek在大模型实践中提出了一个创新思路: 不要价值网络

举例说明,我们将策略函数(大模型)比作班里考试的学生,而价值函数比作助教老师,同时班里还有一名老师奖励函数对学生的回答进行打分,比如给出85, 92, 70的的的得分。对PPO来说会先让助教预测评分,比如预测同学可得分80,如果同学实际得了85分,比助教的预测多了5分,此时优势函数取值为正,反馈就为正,之后同学就会继续按照这种方式回答问题。而GRPO不再依赖助教来预测“应该得多少分”,而是让学生书写多个答案作为一组回答,让学生的每个回答和组内做对比。假如学生回答了ABC三个答案:

18.png

A,B答案都高于均值,反馈为正, C答案低于均值,反馈为负。那模型就会按照A,B的回答风格进行回答。这种简单的思想在简化PPO训练步骤的同时获得优异性能。

二、相关热点问题

2.1 为什么会有越来越多的模型倾向采用 GRPO而不是 PPO?

答案: 主要原因有三点:第一,GRPO不需要训练 Critic(价值网络),工程上更轻量;第二,大模型可以轻松在同一提示下生成多组候选结果,满足组内对比的条件,GRPO实际训练效率很高;第三,GRPO更加适合强化模型的数学、编程等方面能力,而这也是目前大模型主流训练方向。

2.2 GRPO 相比 PPO 最大的风险是什么?

答案: GRPO 依赖在同一提示下采样多条候选,如果采样不足或奖励模型区分能力有限就可能导致训练信号不足或过拟合。此外,没有Critic(价值网络)作为全局基线,GRPO可能在长地平线任务中收敛不稳定。

2.3 在工程上,GRPO 的组大小k 应该如何选择?

答案: 通常 k 设置在 4-8 之间比较合适。k太小,标准化效果不明显; k太大,显存和算力消耗会显著增加。如果奖励模型非常稳定,k可以取小一些;如果奖励噪声较大则建议增大k 来提升训练的稳定性。

三、总结

本期分享详细介绍了PPO算法和GRPO算法的核心原理以及两者最大的区别。总的来说强化学习微调是新锐的大模型技术,也是面试官非常关注的问题,大家按模板回答一定是加分项!小伙伴们阅读后感兴趣可关注笔者掘金账号和专栏,更可关注笔者同名微信公众号: 大模型真好玩,免费分享学习工作中的知识点和资料。