DeepSeek-R1模型的数学原理(说人话)

文章目录

  • 1、什么是GRPO
  • 2、数学原理
  • 3、比喻
  • 4、流程总结

🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,前三年专注于Java领域学习,擅长web应用开发,目前已转行人工智能领域。
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌻gitee地址:xzl的人工智能代码仓库
✈ 您的一键三连,是我创作的最大动力🌹

最近的DeepSeek-R1模型可谓是火遍全球,男女老少都知道。
在这里插入图片描述

但是它的原理你了解吗?
今天这篇文章就通俗易懂的讲一讲什么是DeepSeek-R1模型使用的GRPO算法。
在这里插入图片描述

1、什么是GRPO

GRPO指的是:群体相对策略优化算法

群体相对策略优化(GRPO)是一种强化学习(RL)算法,专门设计用于增强大规模语言模型(LLM)的推理能力。

与传统的RL方法不同,后者通常依赖外部评估者(批评者)来引导学习,GRPO通过评估一组响应之间的相对关系来优化模型。

这种方法提高了训练效率,使GRPO在需要复杂问题解决和长链思维的推理任务中表现尤为出色。


传统的RL方法,如近端策略优化(PPO),在应用于LLM的推理任务时面临着显著挑战:

1.依赖批评模型

PPO需要一个独立的批评模型来估计每个响应的价值,这增加了内存和计算的负担。

训练批评模型复杂且容易出错,尤其是对于需要主观或细致评估的任务。

2.高计算成本

RL管道通常需要大量计算资源来反复评估和优化响应。

将这些方法扩展到大型LLM时,计算成本进一步增加。

3.可扩展性问题

绝对奖励评估在处理多样化任务时困难,难以在不同推理领域间实现泛化。


GRPO如何解决这些挑战?

  • 无批评模型优化:GRPO通过比较一组响应之间的相对关系,消除了对批评模型的需求,从而显著减少了计算开销。
  • 相对评估:GRPO不依赖外部评估者,而是利用群体内部的动态来评估一个响应相较于同批次其他响应的表现。
  • 高效训练:通过专注于基于群体的优势,GRPO简化了奖励估算过程,使其更快、更具可扩展性,适用于大型模型。

2、数学原理

DeepSeek-R1模型采用了组相对策略优化(GRPO)算法,以强化学习的方式提升推理能力。

其目标函数( J GRPO ( θ ) J_{\text{GRPO}}(\theta) JGRPO(θ))的数学表达式如下:

J GRPO ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ old ( O ∣ q ) ] 1 G ∑ i = 1 G ( min ⁡ ( π θ ( o i ∣ q ) π θ old ( o i ∣ q ) A i , clip ( π θ ( o i ∣ q ) π θ old ( o i ∣ q ) , 1 − ϵ , 1 + ϵ ) A i ) − β D KL ( π θ ∣ ∣ π ref ) ) , D KL ( π old ∥ π ref ) = π ref ( o i ∣ q ) π old ( o i ∣ q ) − log ⁡ ( π ref ( o i ∣ q ) π old ( o i ∣ q ) ) − 1 J_{\text{GRPO}}(\theta) = \mathbb{E}[q \sim \mathcal{P}(Q), \{o_i\}_{i=1}^G \sim \pi_{\theta \, \text{old}}(O|q)] \frac{1}{G} \sum_{i=1}^G \left( \min \left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta \, \text{old}}(o_i|q)} A_i, \, \text{clip}\left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta \, \text{old}}(o_i|q)}, 1-\epsilon, 1+\epsilon \right) A_i \right) - \beta D_{\text{KL}} (\pi_\theta || \pi_{\text{ref}}) \right), D_{\text{KL}}(\pi_{\text{old}} \parallel \pi_{\text{ref}}) = \frac{\pi_{\text{ref}}(o_i|q)}{\pi_{\text{old}}(o_i|q)} - \log \left( \frac{\pi_{\text{ref}}(o_i|q)}{\pi_{\text{old}}(o_i|q)} \right) - 1 JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(Oq)]G1i=1G(min(πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ϵ,1+ϵ)Ai)βDKL(πθ∣∣πref)),DKL(πoldπref)=πold(oiq)πref(oiq)log(πold(oiq)πref(oiq))1
各符号的含义如下:

  • q q q:查询(query),模型需要回答的问题。
  • o i o_i oi:模型生成的第 i i i个输出。
  • G G G:每次训练中生成的输出数量。
  • π θ ( o i ∣ q ) \pi_\theta(o_i|q) πθ(oiq):当前策略下,给定查询 q q q时生成输出 o i o_i oi的概率。
  • π θ old ( o i ∣ q ) \pi_{\theta_{\text{old}}}(o_i|q) πθold(oiq):旧策略下,给定查询 q q q时生成输出 o i o_i oi的概率。
  • A i A_i Ai:第 i i i个输出的优势函数值,衡量该输出相对于其他输出的优劣。
  • ϵ \epsilon ϵ:用于裁剪的阈值,防止策略更新过大。
  • β \beta β:KL散度的权重系数,控制策略与参考策略之间的差异。
  • D KL ( π θ ∣ ∣ π ref ) D_{\text{KL}} (\pi_\theta || \pi_{\text{ref}}) DKL(πθ∣∣πref):当前策略与参考策略之间的KL散度,衡量两者的差异。

该目标函数的核心思想是:

  1. 最大化高奖励输出的概率:通过优势函数 A i A_i Ai和策略比率 π θ ( o i ∣ q ) π θ old ( o i ∣ q ) \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{\text{old}}}(o_i|q)} πθold(oiq)πθ(oiq),鼓励模型生成高奖励的输出。
  2. 限制策略更新幅度:使用裁剪函数(clip)限制策略比率的范围,防止策略更新过大导致训练不稳定。
  3. 控制策略与参考策略的差异:通过KL散度项,限制当前策略与参考策略之间的差异,避免策略偏离过远。

优势函数 A i A_i Ai的计算公式为: A i = r i − mean ( { r 1 , r 2 , ⋯ , r G } ) std ( { r 1 , r 2 , ⋯ , r G } ) A_i = \frac{r_i - \text{mean}(\{r_1, r_2, \cdots, r_G\})}{\text{std}(\{r_1, r_2, \cdots, r_G\})} Ai=std({r1,r2,,rG})rimean({r1,r2,,rG})

其中:

  • r i r_i ri:第 i i i个输出的奖励值。
  • mean ( { r 1 , r 2 , ⋯ , r G } ) \text{mean}(\{r_1, r_2, \cdots, r_G\}) mean({r1,r2,,rG}):所有输出奖励值的均值。
  • std ( { r 1 , r 2 , ⋯ , r G } ) \text{std}(\{r_1, r_2, \cdots, r_G\}) std({r1,r2,,rG}):所有输出奖励值的标准差。

3、比喻

组相对策略优化(GRPO) 是一种让智能体(比如机器人或游戏AI)通过不断学习和改进,变得更好的方法。

它的核心思路是:

  1. 分组比较:把不同的策略(可以理解为不同的“做事方法”)分成小组,组内的策略互相比较,看看谁的表现更好。
  2. 优化改进:根据比较结果,改进那些表现不太好的策略,让它们向表现好的策略学习。
  3. 反复迭代:不断重复这个过程,直到策略变得足够好。

举个例子:

假设你在教一群学生踢足球,你可以:

  • 把学生分成几个小组,组内互相比赛。
  • 观察每个学生的表现,找出谁踢得好,谁需要改进。
  • 让踢得不好的学生向踢得好的学生学习,改进自己的技术。
  • 重复这个过程,直到所有学生都踢得不错。

优点:

  • 效率高:不需要每个人都去试错,通过组内比较就能快速找到好方法。
  • 稳定性强:组内互相学习,不容易走偏。
  • 适应性强:无论是踢足球、玩游戏,还是控制机器人,这种方法都能用。

总结来说,GRPO就是一种通过分组比较和互相学习,让智能体(或学生)不断进步的方法。

4、流程总结

GRPO目标函数的工作流程如下:

  • 为一个查询生成一组响应。
  • 根据预定义的标准(如准确性、格式)计算每个响应的奖励。
  • 在群体内比较响应,计算它们的相对优势( A i A_i Ai)。
  • 更新策略,偏向具有较高优势的响应,并通过裁剪确保稳定性。
  • 规范化更新,防止模型偏离其基线太远。

为什么GRPO有效

  • 无需批评模型:GRPO通过依赖群体比较避免了对独立评估者的需求,从而降低了计算成本。
  • 稳定学习:裁剪和KL正则化确保模型平稳改进,避免剧烈波动。
  • 高效训练:通过关注相对表现,GRPO非常适合像推理这样的任务,其中绝对评分很难实现。

现实生活类比:

想象一组学生在解决问题。

与其由老师单独批改每个学生的答案,不如让学生们自己相互比较答案。

那些答得更好的学生会得到鼓励,而其他学生则从错误中学习。

随着时间的推移,整个小组会集体进步,变得更加准确和一致。

GRPO将这一原理应用于训练AI模型,使它们能够高效且有效地学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15034.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧停车场解决方案(文末联系,领取整套资料,可做论文)

一、方案概述 本智慧停车场解决方案旨在通过硬件设备与软件系统的深度整合,实现停车场的智能化管理与服务,提升车主的停车体验,优化停车场运营效率。 二、硬件架构 硬件设备说明: 车牌识别摄像机:安装在停车场入口和…

对“云原生”的初印象

一、背景 最近因为在工作中以及一些技术博客中听的比较火的一个关键词 "云原生",于是产生了好奇,云原生到底是什么东西?自己对云原生也是一个纯小白,于是带着这个问题去好好了解一下,什么是"云原生&qu…

物联网软件开发与应用方向应该怎样学习,学习哪些内容,就业方向是怎样?(文末领取整套学习视频,课件)物联网硬件开发与嵌入式系统

随着物联网技术的飞速发展,物联网软件开发与应用方向成为了众多开发者关注的焦点。那么,如何在这个领域中脱颖而出呢?本文将为你提供一份详细的学习指南,帮助你从零开始,逐步掌握物联网软件开发与应用的核心技能。 一…

数据结构-基础

1、概念: 程序 数据结构 算法 2、程序的好坏 可读性,稳定性,扩展性,时间复杂度,空间复杂度。 3、数据结构 是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构, 能…

蓝耘智算平台与DeepSeek R1模型:推动深度学习发展

公主请阅 前言何为DeepSeek R1DeepSeek R1 的特点DeepSeek R1 的应用领域DeepSeek R1 与其他模型的对比 何为蓝耘智算平台使用蓝耘智算平台深度使用DeepSeek R1代码解释:处理示例输入:输出结果: 前言 在深度学习领域,创新迭代日新…

神经网络(Neural Network)

引言 神经网络,作为人工智能和机器学习领域的核心组成部分,近年来在诸多领域取得了显著的进展。受生物神经系统的启发,神经网络通过模拟人脑神经元的工作机制,能够从大量数据中学习复杂的模式和关系。其强大的非线性建模能力使其在图像识别、自然语言处理、语音识别和预测…

基于python多线程多进程爬虫的maa作业站技能使用分析

基于python多线程多进程爬虫的maa作业站技能使用分析 技能使用分析 多线程(8核) import json import multiprocessing import requests from multiprocessing.dummy import Pooldef maa(st):url "https://prts.maa.plus/copilot/get/"m …

npm无法加载文件 因为此系统禁止运行脚本

安装nodejs后遇到问题: 在项目里【node -v】可以打印出来,【npm -v】打印不出来,显示npm无法加载文件 因为此系统禁止运行脚本。 但是在winr,cmd里【node -v】,【npm -v】都也可打印出来。 解决方法: cmd里可以打印出…

2.9寒假作业

web:[SWPUCTF 2022 新生赛]ez_ez_php(revenge) 打开环境,进行代码审计 下面有提示访问游戏flag.php,尝试看看 提示了正确的flag,还有要使用为协议,之前也了解过,关于执行包含文件例如include可使用为协议绕…

【Matlab优化算法-第13期】基于多目标优化算法的水库流量调度

一、前言 水库流量优化是水资源管理中的一个重要环节,通过合理调度水库流量,可以有效平衡防洪、发电和水资源利用等多方面的需求。本文将介绍一个水库流量优化模型,包括其约束条件、目标函数以及应用场景。 二、模型概述 水库流量优化模型…

Mybatis

入门 配置SQL提示 JDBC介绍 JDBC:(Java DataBase Connectivity),就是使用Java语言操作关系型数据库的一套API 本质 sun公司官方定义的一套操作所有关系型数据库的规范,即接口 各个数据库厂商去实现这套接口,提供数据库驱动jar包 我们可以使…

Deepseek的MLA技术原理介绍

DeepSeek的MLA(Multi-head Latent Attention)技术是一种创新的注意力机制,旨在优化Transformer模型的计算效率和内存使用,同时保持模型性能。以下是MLA技术的详细原理和特点: 1. 核心思想 MLA技术通过低秩联合压缩技术,将多个注意力头的键(Key)和值(Value)映射到一…

使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8

文章目录 1. 安装 SDKMAN!2. 查找可用的 Java 8 版本3. 安装 Java 84. 验证安装5. 切换 Java 版本(可选)6. 解决 ARM 架构兼容性问题总结 可以使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8。SDKMAN! 是一个强大…

HAL库外设宝典:基于CubeMX的STM32开发手册(持续更新)

目录 前言 GPIO(通用输入输出引脚) 推挽输出模式 浮空输入和上拉输入模式 GPIO其他模式以及内部电路原理 输出驱动器 输入驱动器 中断 外部中断(EXTI) 深入中断(内部机制及原理) 外部中断/事件控…

Windows 本地部署大模型 OpenWebUI+Ollama

安装Ollama Ollama官方网址:https://ollama.com 下载运行大模型 在Ollama官网中查看需要下载的大模型 https://ollama.com/library 复制图片中的链接 打开cmd,运行此命令(此过程会时间会很久) 下载Miniconda Miniconda作用是…

【大模型】Ubuntu下安装ollama,DeepSseek-R1:32b的本地部署和运行

1 ollama 的安装与设置 ollama官网链接:https://ollama.com/ 在左上角的【Models】中展示了ollama支持的模型在正中间的【Download】中课可以下载支持平台中的安装包。   其安装和模型路径配置操作流程如下: ollama的安装 这里选择命令安装curl -fsSL …

Ollama实现deepseek本地部署

Ollama实现deepseek本地部署 1.Ollama下载与安装2.ollama获取模型并部署2.1 使用ollama pull2.2 通过ollama create 创建自定义模型2.3 本地运行 3.使用streamlit实现网页版RAG部署3.1 加载相关包3.2 文档上传、加载与切块3.3 初始化向量存储3.4 初始化向量存储3.5 加载模型&am…

Django开发入门 – 0.Django基本介绍

Django开发入门 – 0.Django基本介绍 A Brief Introduction to django By JacksonML 1. Django简介 1) 什么是Django? 依据其官网的一段解释: Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. …

苍穹外卖-新增菜品(阿里云OSS文件上传mybatis主键返回批量保存口味表数据)

新增菜品 2.1 需求分析与设计 2.1.1 产品原型 后台系统中可以管理菜品信息,通过 新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传菜品图片。 新增菜品原型: 当填写完表单信息, 点击&quo…

只需两步,使用ollama即可在本地部署DeepSeek等常见的AI大模型

只需两步,使用ollama即可在本地部署DeepSeek等常见的AI大模型 1.下载ollama,进入ollama官网即可将ollama下载到本地,之后按照提示安装ollama。 https://ollama.com/download/windows 2.安装大模型 进入ollama官网模型页面,找到所需的模型及版…