当前位置: 首页 > news >正文

【多模态学习】QA7: GRPO算法?KL散度指的是什么?什么叫做长思维连冷启动?模型退火是什么意思?

Q&A

    • 什么是GRPO算法?
      • 1. GRPO 是什么?
      • 2. 背景:从 RLHF 到 GRPO 的驱动力
      • 3. GRPO 的核心思想
      • 4. GRPO 的工作流程
      • 5. GRPO 的优势与特点
      • 6. GRPO 与 PPO 的关系
      • 总结
  • KL散度指的是什么?
      • 1. 核心思想:衡量“差异”
      • 2. 数学定义
      • 3. 关键特性
      • 4. 在机器学习和GRPO中的应用
        • 在GRPO和RLHF中的用法
        • 在其他机器学习领域的应用
      • 总结
  • 什么叫做长思维连冷启动?
      • 第一部分:什么是“长思维”?
      • 第二部分:什么是“冷启动”?
      • 第三部分:“长思维连冷启动” —— 组合起来是什么意思?
        • 如何解决“长思维连冷启动”问题?
      • 总结
  • 模型退火是什么意思?
      • 1. 背景:文本是如何生成的?
      • 2. 核心参数:“温度”
      • 3. 什么是“模型退火”?
      • 结论

什么是GRPO算法?

GRPO是当前大语言模型(LLM)训练领域的核心算法之一,理解它对于理解如何用强化学习对齐大模型至关重要。

1. GRPO 是什么?

  • 全称Generalized Reinforcement Policy Optimization
    • 广义强化策略优化
  • 提出者:由 DeepMind 在其2023年的论文《Generalized Reinforcement Policy Optimization》中提出。
  • 核心定位:它是一种专门为大语言模型等生成式模型设计的、无需训练奖励模型的策略优化算法。可以看作是 PPO 算法的一个强大演进。

为了理解GRPO,我们最好先回顾一下它要解决的问题以及它的前身——RLHF。

2. 背景:从 RLHF 到 GRPO 的驱动力

RLHF(基于人类反馈的强化学习) 是训练ChatGPT等模型的关键技术,它分为三个主要步骤:

  1. 监督微调(SFT):用高质量的问答数据微调一个预训练好的LLM。
  2. 奖励模型(RM)训练:训练一个独立的“奖励模型”,让它学会根据人类的偏好(比如哪个回答更好)来给任何一段文本打分。
  3. 强化学习(RL)优化:使用PPO等算法,让SFT模型(现在作为“策略”)生成回答,然后由RM给出奖励。通过优化,让模型学会生成能获得高奖励(即更符合人类偏好)的回答,同时不能偏离SFT模型太远(防止模型“胡说八道”或性能崩溃)。

RLHF的痛点

  • 训练成本高:需要训练和维护两个模型(策略模型和奖励模型)。
  • 过程复杂:整个流程 pipeline 非常复杂,难以稳定训练。
  • 稳定性问题:PPO算法本身包含很多技巧和超参数,调优困难。

GRPO的目标就是解决这些痛点,它提出:能否省去训练奖励模型这一步?

3. GRPO 的核心思想

GRPO的核心思想非常巧妙:直接利用一个预训练的“参考模型”来衡量生成文本的质量,从而省去奖励模型的训练。

这个“参考模型”通常就是第1步得到的SFT模型

它的奖励函数由两部分构成:

总奖励 = 基础奖励 + 策略偏离惩罚

R(x,y)=Rbase(x,y)−β∗KL[πθ(y∣x)∣∣πref(y∣x)]R(x, y) = R_{base}(x, y) - β * KL[π_θ(y|x) || π_{ref}(y|x)]R(x,y)=Rbase(x,y)βKL[πθ(yx)∣∣πref(yx)]

让我们来拆解这个公式:

  1. 基础奖励(Rbase(x,y)R_{base}(x, y)Rbase(x,y)

    • 这是任务相关的、最核心的奖励信号。
    • 它不是一个模型,而是一个可以直接计算的函数。
    • 例子1(代码生成):给定一个自然语言指令 x(如“写一个排序函数”),模型生成代码 y。我们可以通过单元测试的通过率来直接计算Rbase(x,y)R_{base}(x, y)Rbase(x,y)。通过了就是高分,没通过就是低分。
    • 例子2(文本摘要):给定长文章 x,模型生成摘要 y。我们可以通过计算与参考摘要的ROUGE分数来作为 RbaseR_{base}Rbase
    • 关键RbaseR_{base}Rbase任务本身提供的、无需训练的、可量化的评估标准
  2. 策略偏离惩罚(−β∗KL[πθ(y∣x)∣∣πref(y∣x)]- β * KL[π_θ(y|x) || π_{ref}(y|x)]βKL[πθ(yx)∣∣πref(yx)]

    • KLKullback-Leibler 散度,用于衡量两个概率分布的差异。这里衡量的是当前正在训练的模型(策略 π_θSFT参考模型(π_ref 在输出分布上的差异。
    • β:一个超参数,控制惩罚的强度。
    • 作用:这个惩罚项确保模型在追求高 R_base 奖励的同时,不会为了“投机取巧”而偏离参考模型太远。这防止了模型崩溃或产生无意义的乱码来“欺骗”奖励函数(例如,在代码生成中,如果只关心测试通过,模型可能会生成一些取巧但不合逻辑的代码)。

4. GRPO 的工作流程

  1. 准备

    • 有一个预训练好的大语言模型。
    • 使用高质量的监督数据对其进行监督微调(SFT),得到 参考模型(π_ref。这个模型将被冻结(参数不更新)。
    • 复制一份SFT模型作为当前策略(π_θ,这是我们要用强化学习优化的对象。
  2. 训练循环
    a. 采样:从数据集中采样一个提示(Prompt)x
    b. 生成:让当前策略模型 π_θx 生成多个回答 y
    c. 计算奖励
    * 对于每个生成的 y,使用任务相关的评估函数(如单元测试、ROUGE)计算 R_base(x, y)
    * 计算当前策略 π_θ 与参考模型 π_ref 关于 (x, y) 的KL散度。
    * 根据公式 R_total = R_base - β * KL 得到总奖励。
    d. 策略优化:使用类似于PPO的优化器,根据得到的总奖励来更新当前策略模型 π_θ 的参数,目标是最大化期望总奖励。

5. GRPO 的优势与特点

  • 简化流程:无需训练和存储庞大的奖励模型,整个流程只需要一个参考模型和一个策略模型。
  • 降低成本:大大减少了计算和存储开销。
  • 更稳定:避免了奖励模型过拟合或泛化能力差带来的问题。
  • 通用性:只要任务有可量化的评估标准(R_base),就可以应用GRPO,使其非常适用于代码生成、文本摘要、机器翻译等任务。
  • 安全性:KL惩罚项有效地约束了模型的行为,防止其过度优化而丧失通用性和安全性。

6. GRPO 与 PPO 的关系

GRPO不是完全抛弃PPO,而是对PPO框架的一种革新和泛化

  • PPO in RLHF:PPO的奖励来自一个训练好的奖励模型
  • GRPO:PPO的奖励被替换为 R_base - β * KL 的形式。它把奖励的来源从一个“学出来的模型”泛化到了任何“可计算的函数”加上一个“分布稳定性约束”。因此,它被称为“广义的”策略优化。

总结

GRPO是一种强大且实用的强化学习算法,它通过直接利用任务相关的、可计算的评估指标 结合 KL散度正则化,巧妙地省去了RLHF中训练奖励模型的复杂步骤。这使得利用强化学习对齐大语言模型的过程变得更加简单、经济和稳定,特别在代码生成等有明确客观评价标准的领域显示出巨大潜力。它代表了RLHF技术发展的一个重要方向:简化流程、提升效率、增强稳定性

KL散度指的是什么?

1. 核心思想:衡量“差异”

KL散度,全称是 Kullback-Leibler Divergence,中文常译为相对熵

它的核心目的是衡量两个概率分布之间的差异。你可以把它想象成两个分布之间的“距离”,但严格来说它不是真正的距离(因为它不对称,不满足三角不等式)。

一个直观的比喻:
想象你有两本书:

  • 书 P:《正统烹饪指南》
  • 书 Q:《创意 fusion 菜谱》

这两本书都讲做菜,但风格不同。KL散度要回答的问题是:“如果我习惯了按照书 Q 的菜谱做菜,那么用书 P 的菜谱会让我感到多么‘意外’或‘不适应’?”

这种“意外感”的大小,就是 KL散度。

2. 数学定义

对于两个离散概率分布 P 和 Q(对于连续分布,求和换成积分即可),KL散度定义为:

DKL(P∣∣Q)=∑iP(i)log⁡(P(i)Q(i))D_{KL}(P || Q) = \sum_{i} P(i) \log\left(\frac{P(i)}{Q(i)}\right)DKL(P∣∣Q)=iP(i)log(Q(i)P(i))

让我们拆解这个公式:

  • P(i): 在分布 P 中,事件 i 发生的真实概率。
  • Q(i): 在分布 Q 中,事件 i 发生的近似理论概率。
  • log( P(i) / Q(i) ): 这部分是“惊喜度”。如果 P(i) 很大(某事经常发生),但 Q(i) 很小(你认为它很少发生),那么 P(i)/Q(i) 会很大,log 值也会很大,表示“非常意外”。
  • P(i) * ...: 我们对所有可能的 i,用其真实发生的概率 P(i) 对“惊喜度”进行加权平均。

所以,D_{KL}(P || Q) 的含义是:当真实分布是 P,而你用 Q 来近似 P 时,所产生的平均额外信息量(或者说“意外”的程度)。

3. 关键特性

  1. 非负性D_{KL}(P || Q) ≥ 0

    • KL散度永远大于等于零。
    • 当且仅当 P 和 Q 完全相同时,KL散度等于零。 这意味着如果两个分布一模一样,你就不会感到任何“意外”。
  2. 不对称性D_{KL}(P || Q) ≠ D_{KL}(Q || P)

    • 这是它最重要的特性,也是它不能被称为“距离”的原因。
    • D_{KL}(P || Q) 衡量的是 用 Q 来近似 P 的代价。
    • D_{KL}(Q || P) 衡量的是 用 P 来近似 Q 的代价。
    • 这两者通常是不同的。

    回到烹饪书的例子:

    • D_{KL}(正统 || fusion):一个吃惯正统菜的人,看到 fusion 菜谱有多惊讶?(可能发现很多奇怪的食材组合)
    • D_{KL}(fusion || 正统):一个吃惯 fusion 菜的人,看到正统菜谱有多惊讶?(可能觉得规矩太多,缺乏创意)
    • 显然,这两种“惊讶”是不同的。

4. 在机器学习和GRPO中的应用

在GRPO和RLHF中的用法

在GRPO中,公式是 KL[π_θ(y|x) || π_ref(y|x)]

  • π_ref: 是参考分布,即经过监督微调(SFT)后的模型。它代表了“正确”、“安全”、“高质量”的基准。
  • π_θ: 是当前正在被强化学习优化的策略模型。

KL项的作用是惩罚当前模型 π_θ 偏离参考模型 π_ref 的程度。

  • 为什么用这种方向(π_θ || π_ref)?
    • 这意味着我们把 π_ref 看作是“真实”的、我们信任的分布。
    • 我们惩罚的是模型 π_θ 在那些 π_ref 认为概率高的事件上,分配了过低的概率;或者是在 π_ref 认为概率低的事件上,分配了过高的概率。
    • 这种方向能有效防止模型“走火入魔”。例如,为了防止获得高奖励,模型可能会开始生成人类无法理解的乱码(π_θ 的分布变得很奇怪),但由于 π_ref(SFT模型)几乎不会生成这种乱码,它们之间的KL散度会非常大,从而受到强烈惩罚,阻止模型这么做。
在其他机器学习领域的应用
  • 变分自编码器(VAE): 用于衡量编码器的输出分布与标准正态分布之间的差异,作为正则项。
  • 模型压缩/知识蒸馏: 让学生模型的输出分布(Q)尽量接近教师模型的输出分布(P),即最小化 D_{KL}(P || Q)
  • 贝叶斯推理: 用一个简单的分布 Q 去近似一个复杂的后验分布 P。

总结

你可以把KL散度理解为一个 “分布差异衡量器”“意外度测量器”

  • 核心: 衡量一个分布与另一个分布的差异。
  • 关键特性不对称D_{KL}(A||B)D_{KL}(B||A) 含义不同。
  • 在GRPO中的作用: 作为一个正则项,确保强化学习优化后的模型不会为了追求高奖励而偏离原始SFT模型太远,从而保持生成文本的质量和稳定性,防止模型崩溃。

什么叫做长思维连冷启动?

第一部分:什么是“长思维”?

“长思维”这个概念主要来源于Google DeepMind的一篇著名论文《Long-term memory for large language models through information retrieval》以及后续的一系列工作,但其核心思想更广为人知的是在“思维链”的演进中。

你可以把它理解为一种让模型通过生成非常长且详细的“内心独白”或“推理过程”来解决复杂问题的方法

  • 基础:思维链: 首先,回想一下“思维链”。当我们让模型在给出答案之前,先输出“Let’s think step by step…”时,它就是在进行一个短程的、连续的思考。
  • 进阶:长思维: “长思维”将这个理念推向了极致。它强制模型进行长时间的、多步骤的、甚至是多路径的思考。这个过程可以非常长,生成数百甚至数千个令牌,远远超过普通的“思维链”。

长思维的典型实现方式:

  1. 自我对话与提问: 模型会自己向自己提问,例如:“要解决这个问题,我首先需要理解什么概念?”“第一步应该做什么?”“让我验证一下这个结果是否合理。”
  2. 分解子问题: 将一个宏大复杂的问题,分解成一系列小而具体的子问题,然后逐个击破。
  3. 多假设与探索: 对于不确定的步骤,模型可能会生成多种可能的解决方案或假设,然后像在头脑中模拟一样,逐一推导它们的后果,最后选择最优路径。
  4. 总结与复盘: 在推理的最后,对整个过程进行总结,提炼出最终答案。

目标: 模仿人类解决复杂问题时的深度思考过程,通过“慢思考”来弥补模型在逻辑和数学推理上可能存在的“快思考”缺陷。


第二部分:什么是“冷启动”?

在推荐系统和机器学习中,“冷启动”指的是当一个新用户新物品进入系统时,由于缺乏历史交互数据,系统难以对其进行有效推荐或理解的难题。

在大语言模型的推理语境下,“冷启动”被借用来描述一种类似的困境:

当模型面对一个全新的、复杂的、信息不足的问题时,它不知道应该如何开始它的“思维链”或“长思维”过程。它的“推理引擎”不知道如何点火启动。

  • 表现: 模型可能陷入沉默,或者生成一些泛泛而谈、不得要领的内容,无法切入问题的核心。
  • 根源: 因为模型的训练是基于概率的,如果问题的开头几个token的概率分布非常平坦(即有很多种可能的方式开始),模型就会“迷失方向”。

第三部分:“长思维连冷启动” —— 组合起来是什么意思?

现在我们把这两个词组合起来看。

长思维连冷启动”描述的正是这样一种技术或现象

为了应对复杂问题,我们要求模型进行“长思维”推理,但在一开始,模型就遇到了“冷启动”难题——它不知道如何迈出这漫长推理的第一步,或者不知道如何构建一个有效的初始思考框架。

这就像一个学生面对一道极其复杂的奥数题,他知道需要写很多步骤,但盯着题目看了半天,却连第一个公式都不知道该写什么。

如何解决“长思维连冷启动”问题?

研究人员设计了一些技巧来帮助模型“热启动”它的长思维过程:

  1. 更精巧的提示工程

    • 不仅仅是说“逐步思考”,而是给出一个更结构化、更具体的指令
    • 例如:“请按以下步骤解决这个问题:1. 定义问题中的核心概念。2. 列出所有已知条件和未知量。3. 回忆可能用到的公式或定理。4. 尝试将已知和未知联系起来…”
    • 这相当于给了模型一个“思考模板”,帮它打破了最初的僵局。
  2. 提供少量示例

    • 在提示中包含一两个类似的、已解决的复杂问题示例(即少样本学习)。
    • 模型可以通过模仿示例中的推理开头和结构,来启动自己的思考过程。
  3. 自我提问提示

    • 直接指令模型:“在开始解答前,先提出三个能帮助你理解这个问题的关键问题并回答它们。”
    • 这强制模型进行一种特定的、简单的初始思考活动,从而打破冷启动状态。
  4. 使用特定的推理框架

    • 比如引导模型使用“归因”或“反思”模式。例如:“首先,请解释这个问题为什么是一个具有挑战性的XX类问题。然后,再开始你的解决方案。”
    • 这为模型的思考提供了一个明确的“第一推动力”。

总结

“长思维连冷启动” 是一个生动的说法,它指出的核心问题是:

我们期望模型能进行漫长而复杂的推理(长思维),但这个过程最困难、最关键的部分往往是如何让它找到一个正确且有效的起点(克服冷启动)。

解决这个问题的核心策略,就是通过更精细、更结构化的外部提示,为模型的漫长思考之旅提供一个坚实的“起点”和清晰的“路线图”。这也是当前提示工程和Agent设计中的一个重要研究方向。

模型退火是什么意思?

主要发生在模型生成文本的阶段(即解码过程)。

1. 背景:文本是如何生成的?

大语言模型通过不断预测下一个词的概率来生成文本。给定已有的文本,它会计算出一个所有可能的下一个词的概率分布

2. 核心参数:“温度”

这个参数直接控制着生成文本的随机性和创造性

  • 温度 = 0(贪婪搜索)

    • 模型总是选择概率最高的那个词。
    • 结果: 生成内容确定、可预测、保守,但可能非常枯燥和重复。这就像金属快速冷却,结构固定。
  • 温度 > 0(退火过程)

    • 模型会根据调整后的概率分布随机抽样选择下一个词。温度越高,概率分布被“熨”得越平,低概率的词也有机会被选中。
    • 结果: 生成内容更有创意、更多样化,但也可能更不连贯或无厘头。

3. 什么是“模型退火”?

在LLM的语境下,“模型退火”通常指的是在文本生成过程中,将温度参数设置为一个大于0的值。这个过程就是在引入“热扰动”,让模型的选择不那么确定,从而生成更丰富、更自然的文本。

更高级的用法:动态退火
在一些复杂的应用中,温度不是固定不变的,而是在生成过程中动态变化的,这更接近冶金退火中“缓慢冷却”的理念。

  • 例如:在生成一篇故事时,开头为了激发创意,使用较高的温度;到了中间需要保持逻辑连贯性时,逐渐降低温度;在结尾需要给出确定结论时,使用很低的温度

结论

当您听到“模型退火”这个词时,在当今的AI讨论中,绝大多数情况指的是在大语言模型生成文本时,通过设置温度参数来增加输出的随机性和创造性。这是一种为了获得更高质量、更人性化输出而广泛使用的技术。

http://www.dtcms.com/a/456990.html

相关文章:

  • 无人机_鲁棒性
  • 用自己的计算机做服务器建网站海外模板网站有哪些
  • 检测MODBUS通讯连接 (MODBUS POLL)
  • 数据结构(陈越,何钦铭)期末考试
  • 接口测试-Postman的关联
  • 重庆网站建设快忻科技国外h5汇总网站
  • 解决 LÖVE 引擎 liblua.so.5.4 库缺失问题
  • 从原始数据到实时防御:与 John Hammond 的对话
  • JavaScript事件流:冒泡与捕获的深度解析
  • 避免网站侵权免费域名申请 freenom最新
  • 【C++进阶】---- 红黑树实现
  • 【多模态学习】QA6: 什么是MOE架构?Router Z Loss函数是指什么?
  • 做seo网站公司jsp做网站还
  • 本地部署javaweb项目到Tomcat的三种方法
  • 中秋月满,心却不满
  • VSCode 中 c_cpp_properties.json 配置项 includePath 通配符“**”含义
  • 电商网站建设要多少钱建设银行官方网站入口
  • VS Code配置Python开发环境系列(1)___VScode的安装 ,VScode常用快捷键
  • Redis 集群分片算法
  • 【MYSQL】SQL学习指南:从常见错误到高级函数与正则表达式
  • 个人网站开发 怎么赚钱吗wordpress阿里图标库
  • 镇江网站推广排名有回定ip怎么做网站
  • Windows 11系统鼠标键盘被禁用问题的全面解决方案
  • 多字节串口收发IP设计(一)概述
  • python如何使用abd操作手机
  • PHP SimpleXML 深入解析与应用
  • C# MVC 修复DataTable时间排序以及中英文系统的时间筛选问题
  • 【netty实战】从零构建一个带GUI的简易聊天室
  • 阿里云无主体新增网站阿里云网站用什么做的
  • 做营销策划的上哪个网站好做房产的网站排名