DeepSeek-R1 面试 -—— GRPO
DeepSeek训练中应用的GRPO算法,它源自于强化学习领域的PPO算法。GRPO与PPO算法之间存在哪些差异?这两种算法各自的优劣何在?为何DeepSeek选择采用GRPO算法而非PPO算法?本文将对这些问题提供解答。
一、PPO算法
PPO(Proximal Policy Optimization)算法,是OpenAI在2017年公开的算法。PPO 的思路:Actor + Critic + Clip + KL 惩罚。
Actor :
强化学习需要一个参考线(baseline),来促进学习效率。类似图片分类,类别A训练的好能达到80分,类别B训练的不到位30分,假设baseline设为60分,A学到80分则奖励,B学到30分则惩罚,谁学的分多,谁就奖励的多。一开始听上去没毛病,但结果就有两个问题:
1. 不公平:如果类别B从 30 分进步到 60 分,付出了非常大的代价,却依然比不过类别A随便能达到80分, B得不到有效奖励,无法促进B进步。
2. 不稳定:类别A能达到80分,总能获得奖励,会导致类别A总能获得奖励,进而发生过拟合。对训练集能得到高奖励,对测试数据会变成惩罚,导致奖励信号也忽上忽下。
这样一来,只拿绝对分数当作 Reward,类别A容易过拟合,类别B得不到应有的奖励,训练轮数多了,B就没动力进步了。
Critic:
针对上面的问题,“不能光看绝对分,而要看看每个类别在自己水平线之上进步多少才是关键。”Critic用”预期分数“来改善奖励机制。
critic动态设置预期分数,对类别A将baseline设置为85分,对类别B将baseline设置为40分。每个类别实际 Reward 超过了 Critic 的预期分数,就会得到奖励;低于预期分数,就会得到惩罚。critic不断动态调整预期分数,就将类别A和类别B都激励的得分更高。
Clip
设置一个最大、最小的步伐,在优化过程中每次进步不能太大,退步也不能太大。防止个别奇点数据对训练造成坏影响。
KL 惩罚
防止极端训练情况出现的一个附加约束,新的状态不能和这个初始策略差太远,否则就要受到惩罚。防止Actor 为了短期 Reward 而脱离原本的合理范围,保证模型在进化过程中不会偏得太离谱。
二、GRPO算法
Group Relative Policy Optimization(GRPO):用”历史多次预测值的平均值“代替baseline。
其核心要点包括:
不需“学习”一个独立的价值网络作为 Critic;
而是针对同一问题、同一状态,先利用旧策略进行多次输出采样,然后将这些输出的平均 Reward 作为基准(baseline);
高于平均值的 Reward 表示“正向 Advantage”,而低于平均值则表示“负向 Advantage”。
三、PPO和GRPO的区别
四、面试题:
算法核心机制
1. GRPO中Clip方法和KL Penalty的作用与区别是什么?
Clip方法:通过截取新旧策略的重要性采样比率(如限制比率在1−ε,1+ε范围内),直接限制策略更新的幅度,防止单一样本的过度优化导致策略突变。
KL Penalty:在目标函数中加入新旧策略之间的KL散度惩罚项,间接约束策略变化幅度,自适应调整惩罚强度以平衡探索与稳定性。
区别:Clip通过“硬约束”直接限制更新范围,实现简单;KL Penalty通过动态调整惩罚系数实现“软约束”,更适合复杂任务但对计算资源要求更高。
2. GRPO为何同时使用Clip和KL Penalty?有何优劣势?
优势:双重约束显著提升训练稳定性,尤其适用于大模型训练中的策略收敛问题。
劣势:实现复杂度增加(需同时计算截取比率和KL散度),且资源消耗更高(如显存占用)。
3. GRPO与PPO的核心差异是什么?
优势估计方式:
PPO依赖Critic网络(价值模型)计算广义优势估计(GAE)。
GRPO通过组内样本奖励的标准化计算相对优势(如组内均值方差归一化),无需Critic网络。
资源效率:GRPO节省了Critic网络的计算和显存开销,更适合大规模模型训练。
4. GRPO相比PPO的优劣势是什么?
优势:
资源节约:去除Critic网络降低显存占用,提升训练速度。
过程奖励利用:组内对比能更灵活捕捉过程奖励信号(如中间步骤的格式正确性)。
劣势:
依赖样本质量:若组内样本多样性不足或质量差(如全错误答案),标准化后的优势估计失效。
探索能力受限:Clip的固定阈值可能限制策略的探索空间。
5.为何DeepSeek选择GRPO而非PPO?
规则化奖励场景适配:DeepSeek训练中多使用基于规则的奖励(如数学答案准确性、输出格式规范),无需复杂Critic模型,GRPO的组内相对优势计算更高效。
资源优化需求:去除Critic网络后,GRPO在千亿参数模型训练中显存占用减少约30%,加速迭代效率。
6.GRPO的适用场景与局限性?
适用场景:
显存资源受限的大模型训练
奖励规则明确、无需复杂价值估计的任务(如数学解题、格式校验)。
局限性:
组内样本需保证多样性(如不同难度、正负样本混合),否则优势估计失真。
动态任务中需频繁调整组大小(如N值),增加调参成本。
7. GRPO的组大小(N)如何影响训练效果?
小N(如N=16):优势估计波动大,但对显存友好,适合简单任务。
大N(如N=124):估计更稳定,但需更高并行计算能力,适合复杂长序列任务。
8.如何缓解GRPO的样本质量依赖问题?
数据预处理:对组内样本进行多样性筛选(如聚类去重)。
混合训练:结合Critic网络的稀疏调用,周期性校准优势估计。
相关文章:
DeepSeek-R1 面试 -—— GRPO
DeepSeek训练中应用的GRPO算法,它源自于强化学习领域的PPO算法。GRPO与PPO算法之间存在哪些差异?这两种算法各自的优劣何在?为何DeepSeek选择采用GRPO算法而非PPO算法?本文将对这些问题提供解答。 一、PPO算法 PPO(Pr…...
AI作曲DiffRhythm原理及本地部署
1.原理简介 最近AI在音乐生成方面的进展引起了极大的关注,但现有的方法面临着严重的限制。一些当前的生成模型只能合成人声或伴奏轨道。虽然一些模型可以生成组合的人声和伴奏,但它们通常依赖于精心设计的多阶段级联架构和复杂的数据管道,阻…...
农业电商|基于SprinBoot+vue的农业电商服务系统(源码+数据库+文档)
农业电商服务系统 目录 基于SprinBootvue的农业电商服务系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能实现 5.2后台模块实现 5.2.1管理员模块实现 5.2.2商家模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码…...
深度学习有哪些算法?
深度学习包含多种算法和模型,广泛应用于图像处理、自然语言处理、语音识别等领域。以下是主要分类及代表性算法: 一、基础神经网络 多层感知机(MLP) 最简单的深度学习模型,由多个全连接层组成,用于分类和回…...
鸿蒙开发-一多开发之媒体查询功能
在HarmonyOS中,使用ArkTS语法实现响应式布局的媒体查询是一个强大的功能,它允许开发者根据不同的设备特征(如屏幕尺寸、屏幕方向等)动态地调整UI布局和样式。以下是一个使用媒体查询实现响应式布局的实例: 1. 导入必要…...
历年华中科技大学计算机考研复试上机真题
历年华中科技大学计算机考研复试上机真题 2022华中科技大学计算机考研复试上机真题 2021华中科技大学计算机考研复试上机真题 2019华中科技大学计算机考研复试上机真题 在线评测:https://pgcode.cn 八进制 题目描述 输入一个整数,将其转换成八进制数…...
卷积神经网络(CNN)的主要架构
卷积神经网络(CNN, Convolutional Neural Networks)是深度学习中最重要的模型之一,广泛应用于计算机视觉、目标检测、语义分割等任务。自 LeNet 诞生以来,CNN 结构经历了多个重要发展阶段,出现了许多经典架构ÿ…...
IDEA:项目结构不见了,项目文件消失解决
IDEA:看不见目录结构了。 1、确认项目是否仍存在:检查项目文件夹是否仍然存在于磁盘上。如果项目文件夹被删除或移动了,您需要将其还原或重新导入到IDEA中。 2、重新导入项目:如果项目文件存在,在 IDEA 中找到项目文…...
基于ssm的宠物医院信息管理系统(全套)
一、系统架构 前端:html | layui | vue | element-ui 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页…...
How to install a package in offline scenario in Ubuntu 24.04
概述 做过信创项目的兄弟们在工作上每天可能面对很多需要解决的问题,不过,有一类问题可能是大家经常遇的,比方说,有时候我们不得不硬着头皮在离线生产环境中安装某些软件包,相信很多兄弟被这种细碎的小事搞得焦头烂额…...
将pdf或者word转换成base64格式
废话不多说直接上代码: function fileToBase64(file) {return new Promise((resolve, reject) > {const reader new FileReader();reader.readAsDataURL(file);reader.onload function (event) {const base64Data event.target.result.split(,)[1];resolve(b…...
使用Nodejs基于DeepSeek加chromadb实现RAG检索增强生成 本地知识库
定义 检索增强生成(RAG)的基本定义 检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种结合了信息检索技术与语言生成模型的人工智能技术。RAG通过从外部知识库中检索相关信息,并将其作为提示&…...
乐观锁VS分布式锁实现抢单服务
司机开始接单,乘客填写出发地——目的地,开始下单 service-order模块 Operation(summary"司机抢单") GetMapping("/robNewOrder/{driverId}/{orderId}") public Result<Boolean> robNewOrder(PathVariable Long driverId,P…...
通过特征值和特征向量实现的图像压缩和特征提取
前文,我们在学习人工智能的线性代数基础的时候,就了解到,矩阵在人工智能中被广泛使用,接下来我们就从大家非常常见的图像开始,深度理解矩阵在人工智能中的应用。有关线性代数基础的文章可以看的我CSDN:人工智能中的线性…...
ranger集成starrock报错
org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驱动缺失:运行环境中没有安装 MySQL …...
第J2周:ResNet50V2算法实现01(Tensorflow硬编码版)
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 使用tensorflow实现ResNetV50V2的网络结构。本次根据第一层的细节手动硬编码,没有任何的优化,只为了更好的理解细节。 目录结构&…...
论文分享 | HE-Nav: 一种适用于复杂环境中空地机器人的高性能高效导航系统
阿木实验室始终致力于通过开源项目和智能无人机产品,为全球无人机开发者提供强有力的技术支持,并推出了开源项目校园赞助活动,助力高校学子在学术研究与技术创新中取得更大突破。近日,香港大学王俊铭同学,基于阿木实验…...
【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式
【mysql】centOS7安装mysql详细操作步骤! linux系统安装mysql版本 需要 root 权限,使用 root 用户进行命令操作。使用tar文件包,安装,gz包也可以但是还需要配置用户,tar包虽然大,但是全啊! 1. …...
java学习笔记1
程序编译步骤 java程序执行步骤 相关代码及解释: /* 对第一个java程序进行总结 1. java程序编写-编译-运行的过程 编写:我们将编写的java代码保存在以".java"结尾的源文件中 编译:使用javac.exe命令编译我们的java源文件。格式&am…...
强大的数据库DevOps工具:NineData 社区版
本文作者司马辽太杰, gzh:程序猿读历史 在业务快速变化与数据安全日益重要的今天,生产数据库变更管理、版本控制、数据使用是数据库领域的核心挑战之一。传统的解决方式往往采用邮件或即时通讯工具发起审批流程,再通过堡垒机直连数…...
「Unity3D」UGUI运行时设置元素的锚点Anchor,维持元素Rect的显示不变,即待在原处
在编辑器中,通过设置Raw edit mode,可以切换两种,元素锚点的改变模式: 一种是锚点单独改变,即:不开启原始模式,保持原样,改变anchoredPosition与sizeDelta。一种是锚点联动显示&…...
深入解析大语言模型的 Function Call 实现—— 以 Qwen2.5为例
引言 在现代大语言模型(LLM)中,Function Call(函数调用)能力极大地提升了模型的实用性,使其能够调用外部 API、执行复杂计算或获取实时数据。例如,在 OpenAI API 和 Qwen2.5-7B-Instruct 这样的…...
鸿蒙路由 HMrouter 配置及使用一
1、学习链接 HMRouter地址 https://gitee.com/hadss/hmrouter/blob/dev/HMRouterLibrary/README.md 2、工程配置 下载安装 ohpm install hadss/hmrouter 添加编译插件配置 在工程目录下的build-profile.json5中,配置useNormalizedOHMUrl属性为true (我这项目创…...
驾驭 DeepSeek 科技之翼,翱翔现代学习新天际
在当今这个信息爆炸的时代,学习的方式和途径正在经历着前所未有的变革。人工智能技术的飞速发展,为我们的学习带来了全新的机遇和挑战。DeepSeek 作为一款强大的大语言模型,凭借其卓越的性能和丰富的功能,为现代学习注入了新的活力…...
[Windows] 轻量级景好鼠标录制器 v2.1 单文件版,支持轨迹+鼠标键盘录制复刻
[Windows] 轻量级景好鼠标录制器 链接:https://pan.xunlei.com/s/VOLHz0rPyqdhV4bgyTYuW6W7A1?pwd98uj# 软件特性: 高效播放控制:动作间隔优化至100 ms,进度条可视化,支持随机循环/多次播放。 深度自定义࿱…...
C#生产型企业ERP系统管理软件PCB行业ERP进销存MRP管理系统BOM管理
背景 本软件为为苏州某生产型电子科技企业开发的ERP管理软件。 功能说明 希哲管理系统v1.0是一款在流览器上使用的企业管理软件,使用上与客户端版的优势是: 1.安装更新部署方便,只需服务器部署了软件,其它客户端的用户无需安装&am…...
【Linux内核系列】:文件系统
🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz ★★★ 本文前置知识: 文件系统初识 那么在我们此前关于文件的学习中,我们学习的都是进程与打开的文件之间的关系,以及打开的文件如何进行管理…...
工程化与框架系列(35)--前端微服务架构实践
前端微服务架构实践 🏗️ 引言 随着前端应用规模的不断扩大,微服务架构在前端领域的应用越来越广泛。本文将深入探讨前端微服务架构的实现方案、最佳实践和相关工具。 微服务架构概述 前端微服务架构主要包括以下方面: 应用拆分…...
多条件下的免杀webshell
前言 在做webshell免杀的时候,很多情况下都是对system,eval等命令执行函数进行匹配,如果说把变量当做一个函数来使用的话,那是不是可以bypass了呢?这今天刚好看见有一个回调函数有这样的功能,而且也不会报毒ÿ…...
【算法】动态规划
⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 动态规划总结1、常见动态规划Fibonacci数列杨辉三角最小花费爬楼梯孩子们的游戏 2、组合方案李白打酒加强版(lqb&…...
MySQL事务及索引复习笔记
本文参考小林coding,地址事务隔离级别是怎么实现的? | 小林coding 事务 一、事务是什么? 比如一个程序是转账,你要扣减a的余额,增加b的余额,但是如果程序执行扣减成功然后挂了,就会出现a的余额…...
API调用大模型推理与第三方API实现业务整合
基于Python实现大模型推理与第三方API调用的集成,需要结合Function Call机制与提示词工程。 一、技术架构设计 双阶段流程 推理阶段:大模型解析用户意图,生成结构化API调用指令执行阶段:Python代码解析指令并触发第三方API # 示例…...
GreenKGC: A Lightweight Knowledge Graph Completion Method(论文笔记)
CCF等级:A 发布时间:2023年7月 代码位置 25年3月17日交 目录 一、简介 二、原理 1.整体 2.表示学习 3.特征修剪 4.决策学习 三、实验性能 1.主要结果 2.消融实验 四、结论和未来工作 一、简介 传统知识图谱补全方法中,嵌入维度…...
Android Composable 与 View 的联系和区别
在 Android 开发中,Composable(Jetpack Compose)与View(传统 View 系统)是两种不同的 UI 构建范式。本文将从核心联系、核心区别、代码实现三方面展开对比,并通过实例代码帮助开发者理解其应用场景…...
微信小程序wx.request接口报错(errno: 600001, errMsg: “request:fail -2:net::ERR_FAILED“)
来看看报错 报错如下: 请求发送部分,代码如下: uni.request({url: self.serverUrl "/getRealName",method: GET,data: {"code": self.info.code,},header: {"Authorization": uni.getStorageSync(tokenHead) uni.getStorageSync(token)}}…...
多线程与并发编程 面试专题
多线程与并发编程 面试专题 线程的基础概念基础概念线程的创建线程的状态线程的终止方式start 与 run 区别线程的常用方法 锁锁的分类深入synchronized深入ReentrantLock死锁问题 阻塞队列线程池 线程的基础概念 基础概念 进程与线程 进程:指运行中的程序。 比如我…...
大语言模型-1.2-大模型技术基础
简介 本博客内容是《大语言模型》一书的读书笔记,该书是中国人民大学高瓴人工智能学院赵鑫教授团队出品,覆盖大语言模型训练与使用的全流程,从预训练到微调与对齐,从使用技术到评测应用,帮助学员全面掌握大语言模型的…...
【C++】每日一练(轮转数组)
本篇博客给大家带来的是用C语言来解答轮转数组! 🐟🐟文章专栏:每日一练 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想:不服输的少年啊…...
dify本地源码win10部署
我的win10版本还比较老,winR,输入winver 只要高于我这个版本的都没啥大问题吧,我的安装docker Desktop,搞死人了, 就是win10的Win10 22H2 64之前的版本 win10低版本安装,里面包含wdl2安装程序 https://…...
Spring Cloud Config - 动态配置管理与高可用治理
引言:为什么需要配置中心? 在微服务架构中,配置管理面临分散化、多环境、动态更新三大挑战。传统基于application.yml等配置文件的硬编码方式,导致以下问题: • 环境差异:开发、测试、生产环境配置混杂&a…...
大模型最新面试题系列:微调篇之微调框架(一)
一. 在DeepSpeed中配置零冗余优化(ZeRO)实现显存优化的步骤 核心原理 ZeRO通过分片(Sharding)技术将模型参数、梯度和优化器状态分布到多卡,消除冗余存储。三个阶段逐步减少显存占用: Stage 1࿱…...
windows第十三章 GDI绘图技术
文章目录 GDI绘图函数介绍设备上下文函数m_hDC GDI对象画笔画刷位图字体区域 案例分享 GDI绘图函数介绍 绘图函数在CDC类里 设备上下文 DC:device context 设备上下文,显卡驱动程序,控制硬件,每个厂商的都不同,操作系统层面&am…...
使用 Nginx 进行前端灰度发布的策略与实践
1. 引言 灰度发布的概念 灰度发布,也称为金丝雀发布,是一种软件发布策略,通过向一小部分用户群体逐步推出新版本,收集反馈并监控性能,以确保新版本在大规模部署前不会出现问题。这种方法可以有效降低发布风险&#x…...
有了大语言模型还需要 RAG 做什么
一、百炼平台简介 阿里云的百炼平台就像是一个超级智能的大厨房,专门为那些想要做出美味AI大餐的企业和个人厨师准备的。你不需要从头开始做每一道菜,因为这个厨房已经为你准备了很多预制食材(预训练模型),你可以根据…...
pytest快速入门 - 目录:半天掌握pytest
1 pytest快速入门 - 目录 本系列文章将快速的带领用户进入pytest领域,通过阅读本专栏,用户将可以熟练掌握pytest的基本用法,同时对测试前置条件的构造、后置条件的清理等有较深入的了解,特别是后置条件的执行完备度有一个认识。 …...
2.4 python网络编程
在当今数字化的时代,网络连接着世界的每一个角落。从简单的网页浏览到复杂的分布式系统,网络编程无处不在。Python 作为一种功能强大且易于学习的编程语言,在网络编程领域占据着重要的地位。它丰富的库和简洁的语法使得开发者能够高效地构建各…...
网络变压器的主要电性参数与测试方法(4)
Hqst盈盛(华强盛)电子导读:网络变压器的主要电性参数与测试方法(4).. 今天我们继续来看看网络变压器的2个重要电性参数与它的测试方法: 1.反射损耗(Return loss&…...
【Springboot知识】开发属于自己的中间件健康监测HealthIndicate
文章目录 **一、技术栈****二、项目结构****三、依赖配置 (pom.xml)****四、配置文件 (application.yml)****五、自定义健康检查实现****1. Redis健康检查****2. Elasticsearch健康检查****3. Kafka健康检查****4. MySQL健康检查** **六、自定义健康检查接口 (可选)****七、测试…...
蓝桥杯备赛-二分-技能升级
问题描述 小蓝最近正在玩一款 RPG 游戏。他的角色一共有 NN 个可以加攻击力的技能。 其中第 ii 个技能首次升级可以提升 AiAi 点攻击力, 以后每次升级增加的点数 都会减少 Bi。「AiBi⌉Bi。「BiAi⌉ (上取整) 次之后, 再升级该技能将不会改变攻击力。 现在小蓝可以…...
【GPT入门】第18课 langchain介绍与API初步体验
【GPT入门】langchain第一课 langchain介绍与API初步体验 1. langchain介绍定义特点1. 模块化与灵活性2. 链式调用机制3. 数据连接能力4. 记忆管理功能5. 提示工程支持6. 可扩展性 2.langchain核心组件架构图3. 最简单的helloworld入门 1. langchain介绍 LangChain 是一个用于…...