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

RLHF(基于人类反馈的强化学习),DPO(直接偏好优化), GRPO(组相对偏好优化)技术概述

一、RLHF(基于人类反馈的强化学习)概述

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习) 是一种让AI模型对齐人类价值观和意图的关键技术。它通过将人类偏好转化为强化学习的奖励信号,指导模型生成更安全、有用、符合期望的输出。

1.1  为什么需要RLHF?

SFT的局限性

  • 监督微调(SFT)依赖静态的“输入-输出”数据,无法覆盖开放场景。

  • 模型可能生成无害但无用(如“我不确定”)、有用但不安全(如提供危险建议)或偏离人类偏好的回答。

目标差异:语言模型的预训练目标是预测下一个token(概率最大化),而人类需要的是安全、真实、有帮助的对话。

💡 核心矛盾模型的目标函数人类期望的行为之间存在鸿沟。
RLHF的使命:将人类偏好注入模型优化过程,弥合这一鸿沟。


1.2  RLHF 技术框架(三阶段流程)

阶段1:监督微调(SFT)
  • 输入:预训练基础模型(如LLaMA、GPT)。

  • 过程:在高质量指令-回答数据集上微调,使模型初步学会遵循指令。

  • 输出SFT模型(后续流程的起点)。

阶段2:奖励模型训练(Reward Modeling, RM)
  • 目标:构建一个能量化回答质量的“人类偏好评判器”。

  • 关键步骤

    1. 数据收集:对同一提示(prompt),让SFT模型生成4-9个不同回答。然后进行人工标注:让标注员对这些回答按质量排序(如A > B > C)。

    2. 模型构建

      • 使用对比学习框架(如Bradley-Terry模型)。

      • 输入:提示x + 回答y

      • 输出:标量奖励值r(x,y)

    3. 损失函数(Pairwise Ranking Loss):loss = -log(\sigma (r(x,y_{win}) - r(x,y_{lose})))

      强制高质量回答y_win的奖励 > 低质量回答y_lose的奖励。

  • 输出奖励模型(RM),可自动评估回答是否符合人类偏好。

🔍 奖励模型特点

  • 参数量通常小于SFT模型(如6B RM配13B SFT)

  • 训练数据量:约10万-100万条排序样本

阶段3:强化学习微调(PPO)
  • 目标:用RM的奖励信号优化SFT模型,使其生成高奖励回答。

  • 框架近端策略优化(Proximal Policy Optimization, PPO)

  • 关键组件

    组件角色
    策略模型待优化的SFT模型(参数θ)
    奖励模型提供奖励信号 r(x,y)
    参考模型固定参数的SFT模型(防偏离)
    价值模型估计状态价值(可选)
  • 优化目标函数max E[ r(x,y) - \beta * KL(\pi _\theta ||\pi _{ref}) ]

    • r(x,y):RM对回答y的奖励评分

    • KL(\pi _\theta ||\pi _{ref}):当前策略与参考策略的KL散度(防过度偏离原始能力)

    • \beta:KL惩罚系数(典型值:0.1-0.2)

  • 训练流程

    1. 对每个提示x,策略模型生成回答y

    2. RM计算奖励r(x,y)

    3. 计算KL惩罚项。

    4. 用PPO算法更新策略模型参数θ。

1.3  RLHF 的核心技术挑战

1. 奖励黑客(Reward Hacking)

  • 问题:模型通过欺骗RM获取高奖励(如生成冗长但空洞的回答)。

  • 解法:KL散度约束(锚定参考模型);多维度奖励模型(分别评估安全性、有用性等)

2. 人类标注偏差

  • 问题:标注员偏好不一致;文化/认知偏差被植入RM。

  • 解法:多标注员投票 + 模糊样本剔除;对抗性提示检测(Adversarial Prompting)

3. 训练不稳定性

  • 问题:PPO超参数敏感,易发散。

  • 解法:自适应KL系数(如β随训练动态调整);混合监督微调(定期用SFT数据“校准”模型)

1.4  RLHF vs. 替代方案

技术所需资源优势局限
RLHF大量人工标注 + 高算力行为控制精准,对齐效果好实现复杂,成本极高
DPO偏好数据 + 中等算力无需RM训练,简化流程对参考模型质量敏感
RLAIFAI反馈(替代人工) + 高算力可扩展性强,降低成本AI反馈质量依赖基础模型

二、DPO(直接偏好优化) 概述

DPO(Direct Preference Optimization,直接偏好优化) 技术是一种替代 RLHF(基于人类反馈的强化学习) 来微调和对齐大语言模型的新兴、高效方法。理解 DPO 的核心在于认识到它要解决的问题以及它如何巧妙地绕过了传统 RLHF 的复杂性。

2.1  背景:RLHF 的痛点

在介绍 DPO 之前,回顾一下它要替代的 RLHF 流程很重要:

  1. 监督微调: 在高质量指令-响应对数据集上微调基础模型,得到 SFT 模型。关于什么是SFT,请参考:大模型微调(Fine-tuning)技术综述-CSDN博客https://blog.csdn.net/qq_54708219/article/details/149268823?spm=1001.2014.3001.5502

  2. 奖励模型训练:首先,收集人类对模型生成结果(通常是成对的输出 (y_w, y_l),其中 y_w 是人类更偏好的,y_l 是较不受欢迎的)的偏好数据。然后训练一个奖励模型,其目标是学会预测人类偏好:RM(y_w, x) > RM(y_l, x)(给定提示 x,偏好响应的奖励分数应高于非偏好响应)。

  3. 强化学习微调:使用训练好的奖励模型 RM 作为奖励信号。利用强化学习算法(最常用的是 PPO - Proximal Policy Optimization)来优化 SFT 模型。这一步的目标是: 最大化从 RM 获得的期望奖励,同时通过 KL 散度惩罚确保微调后的模型不会偏离原始 SFT 模型太远(防止模型“胡说八道”或过度优化奖励模型的弱点)。

根据以上内容,总结出RLHF 的主要痛点:

1.复杂性高: RL(尤其是 PPO)本身就是一个复杂且难以稳定训练的领域。它涉及多个组件(策略网络、价值网络、奖励模型)、超参数敏感、需要精心设计的技巧来稳定训练。

2.计算成本高: RL 训练过程通常需要大量的采样(模型生成)和多次模型前向/反向传播,计算开销巨大。

3.不稳定: PPO 训练可能不稳定,容易崩溃或陷入局部最优,导致结果不可预测。

4.奖励模型瓶颈: RLHF 的性能高度依赖于奖励模型的质量和鲁棒性。如果 RM 有缺陷(如易被“欺骗”、不能泛化、有偏见),RL 优化的模型也会继承这些缺陷,甚至更糟(过度优化)。

而DPO就是一种优雅的替代方案。DPO 的核心思想非常巧妙:它绕过了显式训练奖励模型和复杂的强化学习过程,直接将人类偏好数据转化为一个简单的、仅使用监督学习(SFT风格)的目标函数来优化语言模型本身。

2.2  DPO 的核心原理

  1. 理论基础 - Bradley-Terry 模型: DPO 假设人类偏好数据的生成遵循 Bradley-Terry 模型。该模型认为,给定一对响应 (y_1, y_2) 和提示 x,人类选择 y_1 优于 y_2 的概率可以表示为:
    P(y_1 \succ y_2 | x) = \sigma (r^*(x, y_1) - r^*(x, y_2))
    其中:

    • \sigma 是 sigmoid 函数 (\sigma (z) = 1/(1+exp(-z)))。

    • r^*(x, y) 是某个隐式的、真实的奖励函数(我们最终想通过模型行为体现出来的偏好标准)。

  2. 关键洞察 - 奖励即策略: DPO 论文做出了一个关键的数学洞察:在最优 RLHF 解中(即通过 RL 优化得到的最终策略模型 \pi _\theta),其最优策略 \pi ^* 和最优奖励函数 r^* 通过以下关系紧密相连:
    r^*(x, y) = \beta * log\frac{\pi ^*(y|x)}{\pi _{ref}(y|x)}+ \beta * log Z(x)
    其中:

    • \pi_{ref} 是参考策略(通常是 SFT 模型)。

    • β 是一个控制偏离参考策略程度的超参数(类似于 RLHF 中的 KL 惩罚强度)。

    • Z(x) 是一个只依赖于提示 x 的配分函数(归一化项)。

  3. 从奖励到策略的转变: 这个公式意味着,最优策略 \pi ^* 本身隐式地定义了最优的奖励函数! 反之亦然。DPO 利用了这个关系。

  4. 构建 DPO 损失函数:

    • 将上述 r^* 的表达式代入 Bradley-Terry 模型的概率公式中。

    • 神奇的事情发生了:复杂的配分函数 Z(x) 和显式的 r^* 在计算偏好概率时相互抵消了!

    • 最终得到的偏好概率只依赖于 待优化的策略 \pi_{\theta } 和 参考策略 \pi_{ref}
      P(y_w \succ y_l \mid x) = \sigma\left( \beta \cdot \log\left(\frac{\pi_\theta(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)}\right) - \beta \cdot \log\left(\frac{\pi_{\theta}(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)}\right) \right)

    • DPO 损失函数: 目标就是最大化人类偏好数据((x, y_w, y_l) 三元组)的似然概率。这等价于最小化以下负对数似然损失:
      \mathcal{L}_{\text{DPO}}(\pi_\theta; \pi_{\text{ref}}) = - \mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \beta \log \frac{\pi_\theta(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)} \right) \right]

2.3  DPO 的直观理解

  • 目标: 损失函数的核心部分 \beta \left( \log \frac{\pi_\theta(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \log \frac{\pi_\theta(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)} \right) 衡量了模型 \pi _\theta 对偏好响应 y_w 和 y_l 的相对提升程度(相对于参考模型 \pi_{ref})。

  • 优化方向:

    • 模型被鼓励增加生成偏好响应 y_w 的概率(\pi_\theta(y_w|x) 增大),但更重要的是,相对于参考模型 \pi_{ref} 生成 y_w 的可能性(\frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} 增大)。

    • 模型被鼓励降低生成非偏好响应 y_l 的概率(\pi_\theta(y_l|x) 减小),但更重要的是,相对于参考模型 \pi_{ref} 生成 y_l 的可能性(\frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)} 减小)。

  • KL 约束: β 参数至关重要:

    • 低 β 模型可以更自由地调整策略以适应偏好数据,但也可能过度偏离参考模型(SFT),导致不可控或“胡说八道”。

    • 高 β 模型被强烈约束在参考模型 \pi_{ref} 附近,优化更保守,稳定性更高,但可能无法充分学习偏好信息。

    • 这本质上实现了 RLHF 中 KL 惩罚项的作用,但以一种内嵌的方式在损失函数中完成。

2.4  DPO 的训练流程(对比 RLHF)

输入:

  • 一个经过监督微调(SFT)的基础模型 \pi_{ref}
  • 一个包含提示 x 和成对人类偏好响应 (y_w, y_l) 的数据集 D
  • 超参数 β

过程:

  • 像训练一个分类器一样,使用标准梯度下降优化器(如 AdamW)。

  • 对于数据集 D 中的每个样本 (x, y_w, y_l)

    • 用当前模型 \pi_{\theta } 和参考模型 \pi_{ref} 分别计算 y_w 和 y_l 的对数概率 log \pi_\theta(y_w|x)log \pi_{ref}(y_w|x),log \pi_\theta(y_l|x)log \pi_{ref}(y_l|x), 。

    • 计算损失 \mathcal{L}_{\text{DPO}}(\pi_\theta; \pi_{\text{ref}}) = - \mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \beta \log \frac{\pi_\theta(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)} \right) \right]

    • 反向传播梯度并更新模型 \pi _\theta 的参数 θ

输出: 优化后的策略模型 \pi _\theta,其行为更符合人类偏好。

2.5  DPO 的主要优势和局限性

优势:

  1. 简单性: 最大的优势!完全避免了复杂的 RL 训练框架(PPO)和显式奖励模型的训练。训练过程就是一个标准的监督学习任务(带有一个特殊设计的损失函数)。

  2. 高效性: 计算成本显著低于 RLHF。不需要在训练过程中采样新响应,也不需要维护额外的策略网络、价值网络或奖励模型。只需要计算现有响应序列的对数概率。

  3. 稳定性: 训练过程通常比 RLHF/PPO 更稳定、更鲁棒。超参数调整相对简单(主要是 β)。

  4. 性能: 在多项基准测试和人类评估中,DPO 已被证明能够达到甚至超越 RLHF 的性能,同时训练更简单更快。

  5. 隐式奖励建模: 模型 \pi_{\theta } 本身直接编码了人类偏好,无需额外维护一个可能脆弱的奖励模型。

局限性与挑战:

  1. 对参考模型的依赖: DPO 的性能依赖于初始 SFT 模型 \pi_{ref} 的质量。如果 SFT 模型很差,DPO 的效果也会受限。

  2. 对偏好数据质量的敏感: 和 RLHF 一样,DPO 高度依赖偏好数据的质量、一致性和覆盖范围。噪声大或有偏见的偏好数据会导致模型学到错误的偏好。

  3. 处理复杂/多轮偏好: 标准的 DPO 处理的是单轮提示下的成对偏好。处理多轮对话中的复杂偏好或绝对评分(而非相对比较)可能需要扩展。

  4. 离线训练: DPO 是离线算法,使用静态的偏好数据集进行训练。它不像在线 RL 那样可以在训练过程中主动探索和收集新数据(尽管可以结合迭代数据收集策略)。

  5. “赢家通吃”风险: DPO 损失强烈鼓励模型将概率质量从 y_l 转移到 y_w。如果偏好数据集中某个 y_w 并非绝对最优(只是相对 y_l 更好),或者存在多个合理响应,DPO 可能会过度抑制其他合理的响应模式。

2.6  总结

DPO(Direct Preference Optimization)是一种革命性的技术,用于直接使用人类偏好数据来微调和对齐大语言模型。

  • 核心创新: 它通过数学推导,揭示了在最优解中策略和奖励函数的内在联系,从而能够将最大化人类偏好似然的目标,转化为一个仅依赖于待优化策略参考策略的简单监督损失函数。

  • 核心优势: 简单、高效、稳定。它完全绕过了显式奖励模型训练和复杂的强化学习(如 PPO),大大降低了训练的计算成本和工程复杂度。

  • 核心目标: 通过优化损失函数 \mathcal{L}_{\text{DPO}},模型学习调整其生成概率分布,使其相对于参考模型更倾向于生成人类偏好的响应,同时抑制非偏好响应,并通过参数 β 控制偏离参考模型的程度。

  • 意义: DPO 已成为 RLHF 的有力替代品,显著推动了开源社区和工业界在高效、高性能语言模型对齐方面的进展。它使得训练出更符合人类意图和价值观的聊天助手、指令跟随模型等变得更加可行。

简而言之,DPO 提供了一条更直接、更高效的路径,让语言模型学会“什么才是人类更喜欢的回答”。

特性RLHFDPO
核心方法强化学习 (RL - 通常用 PPO)监督学习 (带特殊损失函数)
关键组件奖励模型 (RM) + 策略模型 + 价值模型 (可选)待优化策略模型 + 固定的参考策略模型 (SFT)
训练流程复杂:RM 训练 + RL 微调 (在线采样/训练)简单:单阶段监督微调 (离线)
计算成本 (需采样、多模型、RL 迭代) (只需计算响应概率,标准梯度下降)
稳定性较低 (PPO 调参敏感,易崩溃)较高 (更类似 SFT,更鲁棒)
显式 RM需要 训练和维护单独的 RM不需要 (偏好信息内嵌在策略优化中)
理论基础强化学习理论Bradley-Terry 模型 + 策略-奖励对偶性
主要优势理论上可在线交互收集数据简单、高效、稳定、易于实现
主要挑战工程复杂、成本高、不稳定、RM 瓶颈依赖参考模型质量、偏好数据质量敏感、离线学习
代表应用ChatGPT (早期版本), Claude, InstructGPTZephyr-7B, Mistral Instruct, 众多开源微调模型

三、GRPO(组相对偏好优化)概述

GRPO(Group Relative Preference Optimization,组相对偏好优化) 是一种新兴的大语言模型对齐技术,可视为 DPO(Direct Preference Optimization)的增强变体。它通过引入组内对比学习显式KL约束,显著提升了偏好学习的稳定性和效果。

3.1  GRPO 诞生的背景

DPO 的局限性:

  1. 单样本敏感:DPO 使用单对样本 (y_{win}, y_{lose}) 计算损失,易受噪声样本干扰。

  2. 隐式KL约束:DPO 的KL散度约束通过参考模型实现,控制力不足,可能导致模型偏离基础能力。

  3. 偏好建模粗糙:无法建模多回答间的细粒度排序关系(如 y_A > y_B > y_C)。

GRPO 的突破:

3.2  GRPO 核心原理

1. 组偏好构建(Group Preference)

  • 输入

    • 提示 x

    • 组回答\left \{ y_1, y_2, ..., y_k\right \}(含1个正向样本 + k-1个负向样本)

  • 排序关系:人工标注组内回答的质量排序(如 y_3 > y_1 > y_2

  • 优势:单提示下建模多级质量差异,抗噪能力更强。

2. 损失函数设计

GRPO 损失函数融合两个关键部分:

\mathcal{L}_{\text{GRPO}} = \mathcal{L}_{\text{GroupRank}} + \beta \cdot D_{\text{KL}}[\pi_\theta \parallel \pi_{\text{ref}}]

  • 组排序损失(GroupRank Loss)

    \mathcal{L}_{\text{GroupRank}} = -\mathbb{E}_{(x, \mathcal{Y})} \left[ \sum_{y_i \succ y_j} \log \frac{\exp(r_\theta(x, y_i))}{\sum_{y \in \mathcal{Y}_{\succ y_j}} \exp(r_\theta(x, y))} \right]

    • 其中:r_\theta(x,y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}(隐含奖励函数)

    • 实质:强制高质量回答的奖励分数 > 低质量回答(组内对比)。

  • 显式KL惩罚

    • 添加显式KL散度项 D_{\text{KL}}[\pi_\theta \parallel \pi_{\text{ref}}],直接约束策略模型偏离参考模型的程度。

    • 系数 \beta 平衡偏好学习与保守性(典型值0.1-0.3)。

3. 训练流程

3.3  GRPO 的技术优势

1. 稳定性提升

指标DPOGRPO
训练波动高(单样本噪声敏感)低(组平均抑制噪声)
KL控制隐式/间接显式/直接
灾难性遗忘易发生显著缓解

2. 数据效率优化

  • 组内信息复用:单组数据包含 C(k,2) 个偏好对(如 k=4 → 6对关系)

  • 减少标注需求:同等数据量下,GRPO 比 DPO 收敛快 ≈30%(论文实证)。

3. 细粒度对齐能力

  • 可建模多级偏好(如 y_A > y_B > y_C),避免DPO的二值化信息损失。

  • 支持部分排序(Partial Ordering):允许组内存在质量等价样本。


3.4  GRPO vs. 主流对齐方法

方法训练目标数据需求稳定性计算开销
RLHF奖励最大化 + KL约束极高(需RM训练)极高
DPO偏好对概率排名中等
CPO条件偏好优化中等
GRPO组排序 + 显式KL中低

💡 适用场景

  • GRPO 在小规模高质量数据集上表现最佳(医疗/法律等专业领域)

  • DPO 更适合大规模通用偏好数据

  • RLHF 仍是计算资源充足时的黄金标准

3.5  GRPO 的局限性

  1. 组标注成本:需人工对组内样本排序,标注效率低于二值偏好(DPO)。

  2. 超参数敏感\beta 和 k 需精细调参(建议网格搜索 \beta \in [0.1,0.3], k \in {4,5,6})。

  3. 长文本挑战:组内长文本比较对奖励建模提出更高要求。

3.6  总结

GRPO 通过“组对比学习+显式KL约束”双机制,实现了更稳定、更高效的偏好对齐

  1. 技术本质

    • 组排序损失 → 提升抗噪性和细粒度理解

    • 显式KL项 → 锚定模型基础能力,防止过偏离

  2. 适用场景:高价值领域(医疗/金融/法律);小规模高质量偏好数据

  3. 未来方向:半自动组构建(LLM辅助排序);多目标GRPO(同时优化安全性/有用性/简洁性)

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

相关文章:

  • 鸿蒙开发--端云一体化--云对象
  • 龙虎榜——20250718
  • 【C++】红黑树,“红“与“黑”的较量
  • 【18位数据次方提高数据输出速度】2022-3-9
  • 多线程-1-基础写法
  • 顺理成章学RL-1(based Stanford CS234 Reinforcement Learning)
  • Webstorm 前端断点调试
  • pom.xml文件中的${}变量从哪里传值
  • Couchbase 可观测性最佳实践
  • ModbusRTU转profibus网关与涡街液体流量计通讯读取流量计温度
  • Android性能优化之启动优化
  • python学智能算法(二十三)|SVM-几何距离
  • Python 入门手札:从 0 到会--第九天Python的模块化编程--模块、包以及常见系统模块和第三方模块总结
  • 微店平台商品详情接口技术实现指南
  • C语言:预处理
  • 软件测试全谱系深度解析:从单元到生产的质量保障体系
  • JavaScript笔记
  • 功能安全之BIST的基本原理
  • 关于tftp怎么把res文件夹传输给开发板的操作步骤:
  • 通过代码识别大小端模式
  • 先让 AI 学会害怕,再让它握紧方向盘
  • Unity 多人游戏框架学习系列六
  • YT Config Tool 添加FreeRTOS模块
  • 【linux V0.11】kernel(水)
  • 2025年6月GESP(C++二级): 幂和数
  • 游戏盾能否保护业务免受DDoS攻击吗?
  • Django母婴商城项目实践(五)- 数据模型的搭建
  • 【Python练习】 049. 编写一个函数,实现简单的文本编辑器功能,支持增删改查
  • 你的品牌需要一个AI首席内容官——解构BrandCraft如何解决内容创作的终极痛点
  • 枚举算法入门