首页 文章 精选 留言 我的

精选列表

搜索[个人博客],共10000篇文章
优秀的个人博客,低调大师

个人开发者也能训练推理模型?GRPO 技术详解

编者按: 还在为训练推理模型烧光算力预算而发愁?当开源小模型遇上数学题就"智商掉线",如何低成本突破性能瓶颈? 传统 RLHF 动辄百万级算力投入,让多少团队在强化学习门前望而却步;格式混乱、逻辑断层、答案偏差------这些模型推理的顽疾是否也在阻碍你的 AI 产品落地? 本文深入解析 DeepSeek 团队突破性的 GRPO(群组相对策略优化)技术,这项创新将强化学习所需计算资源几乎减半,甚至可以结合 LoRA 在普通消费级 GPU 上进行模型训练。作者通过亲身实践,成功在仅需 16GB 显存的环境下将 1B 参数的 Llama 3.2 转化为推理模型(后续文章会分享相关细节),完全颠覆了传统强化学习的资源需求认知。 作者 | Greg Schoeninger 编译 | 岳扬 不久前,我们深入研究了 DeepSeek-R1 背后的技术原理,但是没有详细介绍其训练流程中采用的一项名为"群组相对策略优化"(Group Relative Policy Optimization, GRPO)的关键技术。 GRPO 本质上是一种旨在提升模型推理能力的强化学习算法。该技术最早发表于其研究论文《DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models》[1],随后也被应用于 DeepSeek-R1 的后训练阶段。 在《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》这一论文[2]中,研究团队详细阐述了从基础预训练语言模型到最终推理模型的完整构建路径。虽然之前我们未深入探讨 GRPO 的数学原理和代码实现,但今天这篇文章将全面解析 GRPO 的技术细节,助力各位读者掌握这项技术的核心要义并应用于实际工作。 01 要点回顾:DeepSeek-R1如何运用GRPO技术 为帮助理解,我们首先梳理从基础模型到推理模型的完整训练流程。该流程通过监督式微调(SFT)与群组相对策略优化(GRPO)的交替迭代实现模型能力跃升: 1.监督式微调(SFT)阶段 a.冷启动训练:采用数千条人工标注的高质量数据微调模型 b.数据验证:所有样本均通过人工审核确保可靠性 2.GRPO 强化学习阶段 a.推理轨迹训练 :引导模型生成结构化推理过程(具有标签的推理轨迹) b.三重确定性奖励:基于格式规范性、逻辑一致性、答案正确性设计奖励机制 3.增强型 SFT 阶段 a.合成数据生成:创建 80 万条合成训练样本并进行筛选 b.模型自检过滤:通过"LLM As A Judge"机制剔除错误响应 4.最终 GRPO 对齐阶段 a.价值观校准:确保模型输出兼具实用性与安全性 在这篇文章中,我们将深入探讨 GRPO 的细节,助您掌握这项推动大模型推理能力突破的关键技术。笔者已开展基于 GRPO 的小模型训练实验,后续将发布完整代码与工程实践细节,通过可复现案例串联理论知识与实际应用。 02 为什么 GRPO 很重要? TLDR ~ 大幅降低了计算需求且简化了强化学习流程。与 ChatGPT(PPO)使用的基于人类反馈的强化学习(RLHF)相比,所需的计算资源几乎减半。当你结合 LoRA 使用时,即使"GPU poor"(译者注:GPU 的性能不足)也能进行强化学习训练。我试过了,确实有效。我成功地将 1B 参数的 Llama 3.2 模型改造成了仅需 16GB 显存的推理模型。后续文章会分享代码和硬件要求细节。 我们只需在云 GPU 服务上花不到 100 美元,就能从自家车库训练推理模型。如果用自己的硬件跑小模型,基本上算是"免费"。其底层原理是什么呢?下一节将讨论从 PPO 到 GRPO 的演变过程。 03 从 PPO 到 GRPO 传闻 ChatGPT 背后的强化学习(RL)技术是 PPO(Proximal Policy Optimization,近端策略优化)。该流程在 InstructGPT 论文[3]中被提出,用于创建能够遵循指令而不仅仅是简单预测下一个单词的模型。 训练过程需要收集大量标注数据。对于给定的用户查询,模型需生成多个候选响应,然后由人类或 AI 在循环中对输出进行标注并按质量从优到劣排序。这些数据可用于训练"奖励模型",其职责是为新接收的提示词计算"奖励值"。该奖励值应体现给定用户查询下模型响应的优劣程度。 收集完所有这些经过排序和标注的数据后,即可启动 PPO 来训练大语言模型(LLM)。 问题在于 PPO 的训练成本可能非常高昂。 GRPO 论文[1]中的相关图表展示了 PPO 和 GRPO 过程中涉及的不同 LLM。下方蓝色和黄色方框中共有 4 个不同的 LLM。 为了帮助大家理解上图的一些术语,我在这里给出了一些简单的定义: 策略模型(Policy Model) - 对当前正在训练的 LLM 的别称 参考模型(Reference Model) - 被训练原始 LLM 的冻结版本 奖励模型(Reward Model) - 基于人类偏好训练的模型(来自上文提到的 InstructGPT 技术) 价值模型(Value Model) - 试图估算特定动作长期奖励的模型 04 通过 GRPO 减少内存使用量 在 PPO 算法中,策略模型和价值模型都包含需要通过反向传播进行优化的可训练参数。反向传播过程需要消耗大量内存资源。 从上面的架构图可以看出,GRPO 算法移除了价值模型模块。 PPO 算法中混合使用了 4 个大语言模型(LLMs),这些模型都需要消耗大量的内存和计算资源。其中价值模型和奖励模型的参数量通常与正在训练的目标语言模型相当。参考模型通常是训练初期的语言模型的冻结副本。 这种实现方法不仅带来高昂的计算成本,还存在诸多需要协调的动态组件,而且还有多个模型需要优化。组件数量越多,通常意味着优化难度越大。GRPO 通过精简架构有效降低了系统复杂度。 出于兴趣,我在 H100 上测试了不同参数规模的模型,观察使用 GRPO 进行微调的难易程度。 如果想了解具体技术细节,可以查阅相关文档: https://www.oxen.ai/blog/grpo-vram-requirements-for-the-gpu-poor 若您理解了所有系统需求的来源,就可以开始参与开源项目贡献,或像我最近看到的 trl 仓库的这个 PR 那样,动手优化自己的机器学习库: 05 群组相对优势(Group Relative Advantages) 在强化学习过程中,我们从语言模型(LLMs)中获取的主要信号是代表"优势"(Advantage)的"A"。这个信号为更新原始语言模型的权重提供了方向指导:当优势值较高时,我们需要鼓励模型重复当前行为;当优势值较低时,则需要引导模型尝试不同的行为。 在 PPO 算法中,传统价值模型的核心任务是评估生成内容的质量,或者说预测这些内容获得高奖励值(high reward)的可能性。为了完成这项评估工作,需要训练大语言模型作为价值判断模块。那么 GRPO 是如何摆脱对价值模型的依赖的呢? 第一个技巧是:GRPO 不再针对单个查询生成单一输出,而是开始生成多个候选回答。 具体来说,如果问题是一道数学题,模型可能会尝试几种不同的解题方法。以下面这个数学问题为例: Mr. Curtis has 325 chickens on his farm where 28 are roosters and the rest are hens. Twenty hens do not lay eggs while the rest of the hens do. How many egg-laying hens does Mr. Curtis have on his farm? Curtis 先生的农场有 325 只鸡,其中 28 只是公鸡,其余是母鸡。其中有 20 只母鸡不下蛋,问有多少只产蛋母鸡? 模型可能会尝试多种解题思路,有的正确(答案为 227),有的不正确(答案为 305)。 正确推理路径: First, let's find out how many hens there are. The total number of chickens is 325, and 28 are roosters. So, the number of hens is 325 - 28 = 297. Of these 297 hens, 20 do not lay eggs, so the number of egg-laying hens is 297 - 20 = 277. 277 首先,我们来看看有多少只母鸡。鸡的总数是 325 只,公鸡有 28 只。因此,母鸡的数量是 325 - 28 = 297。在这 297 只母鸡中,有 20 只不下蛋,所以下蛋母鸡的数量是 297 - 20 = 277。 277 错误推理路径: You need to subtract the 20 hens that do not lay eggs from the total number of hens to find the number of egg-laying hens. So, the number of egg-laying hens is 325 - 20 = 305. 305 您需要从母鸡总数中减去不下蛋的 20 只母鸡,才能求出下蛋母鸡的数量。因此,产蛋鸡的数量为 325 - 20 = 305。 305 然后我们对每个输出根据其回答质量计算"奖励值"(reward)。可能存在多个评估不同响应属性的奖励函数。我们暂时将奖励函数视为黑盒,但知道它们会返回数值型结果------如果响应质量较好则数值较高,较差则较低,例如: Formatting(格式规范度)=1.0 Answer(答案正确性)=0.0 Consistency(逻辑一致性)=0.5 当获得所有输出的奖励值 (r) 后,GRPO 通过计算奖励值的均值 μ 和标准差 σ,生成群组相对优势 A。具体公式为: 这个公式在机器学习特征工程中非常实用,它可以将任意数值归一化为更易学习的正负信号。 其直观含义是:"这个数据点偏离平均值多少个标准差?" 让我们来看几个例子。 若用原生 numpy 代码表示可能如下: 再试另一组数值: 通过归一化,将奖励值转换为以均值为中心(0.0)的相对优势值。正值表示优于平均水平,负值表示劣于平均水平。这为我们建立了一套基准:"给定当前提示词,平均响应的质量如何?"在训练过程中,强化表现好的输出(提高其概率),抑制表现差的输出(降低其概率),从而引导模型优化方向。 这与传统价值模型的目标相似:预测给定响应的奖励值。由于我们现在训练的是语言模型,只需调整 temperature 参数即可生成多个候选回答,所有生成回答的平均奖励值即可作为衡量当前模型表现的良好信号,以及决定是否需要强化该行为。 06 KL 散度 这个方程的最后一项是 KL 散度项。 无需深入数学细节,这就是我们在训练过程中始终保留"参考模型"的原因。我们不希望新模型偏离原始模型太远,对于每个词元(token),都要确保新模型的预测结果不会与原始模型的预测结果产生过大偏差。 强制执行 KL 散度的直接原因是:初始模型已经具备生成连贯语句和遵循指令的能力。我们不希望新模型通过"奖励欺骗"(reward hack)或利用奖励信号中某些与原始模型不匹配的特性来取巧。例如,如果模型发现使用"pamplemousse"(葡萄柚的法语,发音有趣且较罕见)这个词能获得高奖励,但该词在预训练阶段并不常用,我们就要阻止模型过度依赖这种用词行为。 将这些要素整合,就得到了完整的最终方程! 或者就像我们值得信赖的"牛人 Eric"说的那样... 这个数学公式看起来比实际复杂... 07 奖励信号机制 DeepSeek-R1-Zero 研究的突破性在于,他们通过完全弃用"神经奖励模型"进一步大幅降低了内存消耗。 这意味着什么?简而言之,他们直接使用正则表达式(regex)和字符串匹配技术生成奖励信号。研究团队认为,这种方法既能规避"奖励欺骗"(reward hacking)问题,又能简化整个训练流程。 如果将前文提到的"准确性奖励(Accuracy Rewards)"和"格式奖励(Format Rewards)"规则转化为代码,其代码实现可能如下所示: reference: https://gist.github.com/willccbb/4676755236bb08cab5f4e54a0475d6fb 训练过程中完全无需引入额外的奖励模型 LLM,仅需保留策略模型和参考模型作为主要内存占用源。将所需 LLM 数量从 4 个削减至 2 个,显著降低了 GPU 资源需求。 若你的直觉此时感到不对劲,质疑"这种奖励函数是否具备泛化能力?",那么你是对的。这类奖励机制仅在预设的特定任务(如数学推理和格式规范)上表现良好,但无法扩展到其他实用场景。 例如,模型可能擅长生成格式的数学解题过程,却无法完成开放式对话或创意写作。 我的预测是"苦涩的教训"(The Bitter Lesson)[4]将在此重现:当计算资源和数据量足够时,模型更倾向于自主学习。我们越是减少人工编码规则,让模型自主探索,其表现就越优异。当前 GRPO 的奖励机制仍显人工干预痕迹 ------ 为何不让模型自行学习奖励信号的权重呢? 尽管如此,尝试不同的奖励机制其实挺有意思的。GRPO 的亮点在于: 只要能用代码定义奖励函数(输入响应、输出数值),即可基于此进行优化。甚至可以通过外部 API 调用其他 LLM 生成奖励信号。 我预感未来几周/月内,因为 GRPO 训练门槛的降低,开发者将开始探索各种创意奖励机制的设计。 Thanks for reading! Hope you have enjoyed and learned new things from this blog! END 本期互动内容 🍻 ❓对于文中提到的"不到100美元训练推理模型",你有何看法?欢迎在评论区畅所欲言。 🔗文中链接🔗 [1]https://arxiv.org/abs/2402.03300 [2]https://arxiv.org/abs/2501.12948 [3]https://arxiv.org/abs/2203.02155 [4]http://www.incompleteideas.net/IncIdeas/BitterLesson.html 原文链接: https://ghost.oxen.ai/why-grpo-is-important-and-how-it-works/

优秀的个人博客,低调大师

雷蛇(Razer)数据泄漏暴露了游戏玩家的个人信息

游戏硬件制造商雷蛇(Razer)在线商店的一个不安全的数据库在网上被曝光后,遭遇了数据泄露。 Razer是一家新加坡裔美国游戏硬件制造商,以其鼠标,键盘和其他高端游戏设备而闻名。 8月19日左右,安全研究员 Bob Diachenko 发现了一个不安全的数据库,该数据库暴露了大约10万人从Razer在线商店购买商品的信息。 暴露的信息包括客户的姓名、电子邮件地址、电话号码、订单号、订单明细以及帐单和送货地址,如下所示。 不安全数据库公开的Razer数据 几周以来,Diachenko试图联系Razer的人,以使他们可以保护暴露的数据库。 Razer对Diachenko在LinkedIn(领英)的文章发表的声明中说,他们最终于在9月9日保护了数据库服务器,并感谢研究人员的帮助。 Volodymyr先生让我们意识到服务器配置错误,可能会暴露订单详细信息、客户和发货信息。没有其他敏感数据(如:信用卡号码或密码)被曝光。服务器的错误配置已经在9月9日被修复,之后才被公之于众。 我们非常感谢您,对于此问题已深表歉意,并已采取一切必要措施解决该问题,并对我们的IT安全性和系统进行了彻底的审查。我们将继续致力于确保所有客户的数字安全性。 Razer用户应该怎么做? 如果威胁行为者访问了这些数据,他们可以在有针对性的网络钓鱼活动中使用这些信息来收集更敏感的信息,如密码和信用卡详细信息。 虽然尚不确定是否有威胁行动者在修补之前就已获得了暴露的数据,但对于用户来说,对潜在的鱼叉式网络钓鱼活动保持警惕是至关重要的。 如果您曾经从Razer的在线商店购买过东西,请小心任何来自游戏公司的电子邮件。 此外,如果您收到声称来自Razer的电子邮件,请确认登录的是razer.com网站,千万不要在其他域名下进行操作。 本文翻译自: https://www.bleepingcomputer.com/news/security/razer-data-leak-exposes-personal-information-of-gamers/ 【责任编辑: 赵宁宁 TEL:(010)68476606】

优秀的个人博客,低调大师

暗网地下交易:你的个人数据价值多少钱?

根据Privacy Affairs的说法,在暗网中,信用卡详细信息、在线银行登录名和社交媒体凭据都可以用非常低廉的价格获得。 网上银行登录凭证的平均价格为$ 35(人民币245.64) 完整的信用卡详细信息(包括相关数据),价格为$ 12-20(84.2~140.33) 而一整套允许盗用身份的各种文件和账户详细信息,只要$ 1500(10524.9) 此外,在暗网上还可以看到与被盗数据匹配的驾照、护照、自动保险卡等伪造文件。根据研究人员对暗网市场一系列“产品和服务”价格指数的扫描统计,发现: 网上银行登录:$ 35 网上银行凭证通常包括登录信息、帐户持有人的姓名和地址,以及关于如何在未被发现的情况下访问帐户的具体细节。 完整的信用卡详细信息:$12-20 信用卡详细信息通常采用简单的格式,比如卡号、关联日期和CVV,以及帐户持有人的数据(地址、邮政编码、电子邮件地址和电话号码等)。在信用卡信息之上,如果要获得一整套允许盗用身份的各种文件和账户详细信息,价格则是$ 1285。甚至,犯罪分子还能多花950美元将欧洲身份证换成美国护照。 也就是说,最多花费2235美元,犯罪分子所获得的数据和文件就能支撑他完成任何欺诈行为。 受感染的系统上普遍存在恶意软件 一次可在1000台计算机上远程安装软件,使犯罪分子可以瞄准不同国家并以勒索软件等恶意软件攻击公众,成功率甚至达70%。 被盗数据很容易传播 公众不仅需要意识到身份盗用威胁的普遍性,还应该知道一旦数据被盗,会迅速在暗网市场传播、被利用乃至造成实际损失。因此,应该在日常生活中的各个方面都要保护自己的数据,以此尽可能地降低这些威胁。 【责任编辑: 赵宁宁 TEL:(010)68476606】

优秀的个人博客,低调大师

Chrome 恶意扩展窃取个人资料,已被下载超 3 千万次

谷歌的 Chrome Web Store 受到迄今为止规模最大的监视活动的打击。截止 2020 年 5 月,该活动通过下载超过 3200 万次的恶意扩展程序成功窃取了来自全球用户的数据。 Awake 安全威胁研究团队发布了一份研究报告指出,其发现了一个大规模的全球监视活动,该活动利用 Internet 域注册和浏览器功能的性质来监视和窃取来自多个地区和行业细分市场的用户的数据。研究表明,此犯罪活动是由单个 Internet 域注册商:CommuniGal Communication Ltd. (GalComm)促进的。 并表示, 通过利用作为域名注册商的信任,GalComm 已启用了恶意活动,且该恶意活动已在检查的一百多个网络中被发现。此外,即使在网络安全方面进行了大量投资的复杂组织中,恶意活动也能够通过绕过多层安全控制措施而得以隐藏。 Awake 在报告中指出,通过 GalComm 注册的可访问域有 26,079 个,其中超过 15,000 个域为恶意或可疑。 仅在过去的三个月中,其就使用 GalComm 域收集了 111 个恶意或伪造的 Chrome 扩展程序,这些域用于攻击者的命令和控制基础结构和/或用作扩展程序的加载程序页面。这些扩展名可以截取屏幕截图、读取剪贴板、获取存储在 cookie 或参数中的凭据令牌,以及获取用户的击键(例如密码)等。 引诱安装恶意 Chrome 扩展程序的示例 截止 2020 年 5 月,这 111 个恶意扩展下载次数已达到 32,962,951 次。Awake表示,该公司已与 Google 合作,着手从 Chrome 网上应用店中删除这些扩展程序。 针对此事,GalComm 负责人 Moshe Fogel在与路透社的通信中则指出,“GalСomm 不参与任何恶意活动,可以说恰恰相反,我们与执法和安全机构合作,尽我们所能防止”。在Awake Security 发表报告并列出所有可疑域名后, Moshe Fogel也表示这些域名使用情况几乎都不活跃,并会继续调查其他域名。 有关报告的更多详细信息可查看:https://awakesecurity.com/blog/the-internets-new-arms-dealers-malicious-domain-registrars/

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册