【RLHF】深入浅出:完整解析人类反馈强化学习的预训练、SFT与RL微调三阶段
完整解析RLHF的预训练、SFT与RL微调三阶段
- 一、LLM的核心推理机制
- 二、Pre-Training 大规模预训练
- 三、Post-Training 后训练
- 四、总结
人类反馈强化学习(RLHF)已成为塑造现代大语言模型行为的关键技术。然而,其过程远非一蹴而就,而是一个环环相扣、层层递进的系统工程。本文将深入浅出地完整解析RLHF的三大核心阶段:首先,在“预训练”阶段,模型在海量数据中汲取知识,奠定其通用的语言与推理能力根基;继而,通过“有监督微调(SFT)”,模型学习理解并遵循人类指令,从“通才”转变为“专家”;最终,在最具挑战的“强化学习微调”阶段,模型借助人类偏好数据,进行价值观层面的精细对齐,优化其输出的有用性、安全性与人性化程度。

一、LLM的核心推理机制
大型语言模型(LLM)的推理机制是一个基于自回归生成(autoregressive generation)的序列到序列(sequence-to-sequence)过程,核心在于使用Transformer架构逐步预测下一个token,直到生成完整文本。
1.1. 文本Tokenization(分词)
-
过程:输入文本 → tokens(IDs)
输入的自然语言文本通过一个tokenizer(BPE、WordPiece或SentencePiece)被映射为一系列的tokens。Tokens是文本的子单元(如单词、子词或字符),每个token对应一个唯一的ID在模型的词汇表中。
例如,输入文本"Hello, world!“可能被token化为:[“Hello”, “,”, " world”, “!”],并转换为ID序列[101, 102, 103, 104] -
目的:将非结构化的文本转换为模型可处理的数值序列。Tokenization解决了词汇表外(OOV)问题,并允许模型处理多种语言和格式。
-
专业细节:Tokenization方法取决于模型训练时的选择。例如,GPT系列使用BPE(Byte-Pair Encoding),而BERT使用WordPiece。这个过程还包括添加特殊tokens,如开始token(BOS)或分隔token(SEP),以指示序列边界。
a.BPE (Byte-Pair Encoding):选择相邻符号对出现频率最高的符号对进行合并,形成新的符号。
b.WordPiece:倾向于合并那些经常共现但各自频率不高的符号对。
c.SentencePiece:将文本视为字节流,应用BPE或Unigram算法,语言无关,端到端处理

1.2. 初始模型推理与概率分布预测
-
过程:tokens输入transformer模型,得到下一个token的概率分布
Token序列被输入到Transformer模型中(如GPT、LLaMA)。Transformer模型通过自注意力机制和前馈神经网络处理序列,输出每个位置的下一个token的logits(未归一化的分数)。然后,logits通过softmax函数转换为概率分布,表示每个可能的下一个token的概率。 -
目的:模型基于当前上下文预测下一个最可能的token。例如,给定输入tokens [“The”, “cat”], 模型可能输出概率分布,其中"sat"的概率最高。
-
专业细节:Transformer模型是自回归的,但在推理时,通常只使用解码器(decoder-only)架构(如GPT),或编码器-解码器(encoder-decoder)架构(如T5)。
Decoder-only 架构- 核心: 仅使用Transformer解码器,单向自回归生成,续写模式,训练简单
- 特点: 掩码自注意力,只能看到左侧上下文
- 典型模型: GPT系列、LLaMA、ChatGLM
- 适用: 纯生成任务(文本创作、代码生成)
Encoder-Decoder 架构- 核心: 编码器+解码器组合,理解+生成分离,改的模式,训练复杂
- 特点: 编码器双向理解,解码器单向生成,通过交叉注意力连接
- 典型模型: T5、BART、mBART
- 适用: 理解+生成任务(翻译、摘要、问答)
1.3. Token选择与采样策略
-
过程:通过贪婪搜索或采样选择下一个token
从概率分布中选择下一个token。常见策略包括:- 贪婪搜索(Greedy Search):直接选择概率最高的token。这种方法简单高效,但可能导致重复或缺乏多样性的文本。
- 采样(Sampling):引入随机性以提高多样性
Top-k采样:从概率最高的k个token中随机采样(例如,k=50)。这平衡了确定性和创造性。
Top-p采样:从累积概率超过阈值p的最小token集合中采样(例如,p=0.9),动态调整候选集。
温度缩放:(Temperature Scaling),在softmax前调整logits的温度参数(T),T>1使分布更平滑(更多样),T<1使分布更尖锐(更确定)。 -
目的:控制生成文本的质量和多样性,避免模型陷入局部最优。
-
专业细节:采样策略是LLM推理的关键超参数,影响生成文本的流畅性和创造性。在代码中,通常使用如torch.multinomial或tf.random.categorical实现采样。
1.4. 自回归序列生成(Autoregressive Generation)
- 过程:将新token追加到输入序列,循环生成
将新选择的token与输入序列和之前生成的tokens拼接,形成新的输入序列,然后重复步骤2和3。例如,初始输入为tokens A,模型输出token B;新输入变为[A, B],模型输出token C;以此类推。这个过程持续直到:结束条件:模型输出结束token(EOS token),或达到预设的最大序列长度(max length)。 - 目的:逐步构建输出序列,模拟人类语言的逐词生成过程。
- 专业细节:自回归生成利用了Transformer的因果注意力(causal attention),确保每个token只关注左侧上下文。为了优化效率,在实际实现中常使用键值缓存(KV caching)来避免重复计算之前token的键值对,从而加速推理。
1.5. Detokenization(反分词)
- 过程:输出tokens → 文本
当生成过程结束后,将输出的token IDs序列通过相同的tokenizer映射回自然语言文本。例如,输出IDs [101, 102, 103, 104]可能被转换为"Hello, world!"。 - 目的:将模型内部的数值表示转换为人类可读的文本。
- 专业细节:Detokenization可能需要处理token合并(如子词合并为完整单词)和特殊token移除(如EOS token)。某些tokenizer(如Hugging Face的tokenizers)提供便捷的decode方法。
二、Pre-Training 大规模预训练
预训练是整个大语言模型能力的奠基阶段,其核心目标是让模型从海量无标注文本中学习通用的语言规律和广泛的世界知识。训练模型成为一个强大的概率模型,具体体现为掌握 “下一个词预测” 的能力。即,给定一个上文序列(如前文词句),模型能够计算出词汇表中所有词作为下一个词出现的概率,并选择最可能的那个:P(下一个token | 上文context)
2.1. 训练方法与模型架构
- 训练方法:预训练是一种
自监督学习。它不需要人工标注数据,因为训练标签就来自于数据本身——每个句子的下一个词就是它的标签。 - 核心架构:目前主流的LLM(如GPT系列、LLaMA系列)均采用
仅解码器的Transformer架构。 - 优势:这种架构天然适合自回归的生成任务。它通过
掩码自注意力机制,确保模型在预测第i个词时,只能看到前i-1个词,而无法看到“未来”的信息,从而完美契合“下一个词预测”的任务要求。
自监督学习是一种机器学习范式,其核心思想是:从数据本身自动生成标签,然后利用这些生成的标签来训练模型。
Pretext Task:给定上文,预测下一个词。
过程:
- 我们有原始文本:“今天天气真好,阳光明媚。”
- 我们输入前半句 “今天天气真好,” 作为“问题”。
- 自动生成的标签就是紧跟着的下一个词:“阳光”。
- 模型任务:模型需要根据上文 “今天天气真好,”,计算出词汇表中所有词作为下一个词的概率,并期望它给出 “阳光” 的高概率。
- 学习成果:通过这个任务,模型学会了语言的流畅性、逻辑连贯性和世界知识(好天气常与阳光关联)。
2.2. 预训练的局限性
尽管基础模型知识渊博,但它存在明显的局限性:
-
“知而不善”:它不知道如何与人类进行有效、安全、有帮助的对话。
-
缺乏指令遵循:它不擅长理解并执行“总结下文”、“以邮件格式回复”等具体指令。
-
内容不可控:可能会生成有害、有偏见或不符合事实的内容,因为它只是对训练数据的概率分布进行模仿,而没有“对齐”人类的价值观和偏好。
预训练是赋予模型“智商”的阶段,让它变得博学;而后续的指令微调(SFT)和对齐(RLHF)则是培养其“情商”和“道德观”的阶段,让它变得有用、无害。
三、Post-Training 后训练
后训练(Post-training)是大语言模型开发的关键阶段,旨在让预训练模型更好地适应特定任务、遵循指令并与人类价值观对齐。通常包含以下三个关键环节:
- 监督微调SFT:基于高质量的
指令-回答对数据,对预训练模型进行有监督微调,赋予模型初步的指令理解和遵循能力。 - 奖励模型建模:通过人工标注的
对比数据(对同一提示词的不同回答进行质量排序)训练一个奖励模型,使其能够量化评估生成内容与人类偏好的一致性。 - 强化学习优化:以SFT模型作为初始化策略,在奖励模型所提供的
奖励信号指导下,采用强化学习算法(如PPO)对策略进行优化。其核心目标是学习一个能够最大化从奖励模型获得回报的生成策略,从而使模型的输出更好地对齐人类偏好。

3.1. 监督微调(SFT,Supervised Fine-Tuning)
SFT 是 LLM 从 “预训练通用能力” 向 “人类对话习惯适配” 的核心过渡环节,核心目标是让模型学习 “指令 - 响应” 的匹配逻辑,解决预训练模型输出不符合人类交互预期的问题。其关键流程可分为两步:
3.1.1. 高质量训练数据构建
数据质量直接决定 SFT 模型的行为边界,主流数据来源包括两类:
- 人工标注数据:通过专业标注团队设计真实场景下的对话样本(如客服问答、知识讲解),确保数据贴合实际使用需求,但需承担较高人力成本(如 OpenAI 早期的大规模人工标注工作);
- 模型蒸馏数据:为降低成本,后续开发者常基于强基线模型(如 GPT、DeepSeek)生成数据,具体方式包括:
- 设计通用或垂直领域 Prompt,引导基线模型同时输出 “问题” 与 “符合人类逻辑的回答”;
- 若拥有垂直领域百科知识(如医疗、法律),可通过 Prompt 引导基线模型对知识进行 “润色、拓展”,生成结构化问答样本。
a. SFT模型的效果非常
依赖于SFT数据的质量,天花板取决于SFT数据标注的质量;
b. 对标注要求高,对一条指令来说,要标注很高质的回答其实是一件非常困难的事情,既耗时又耗力。
3.1.2. 模型微调执行
以预训练模型为初始参数,加载上述高质量指令-响应数据,通过监督学习方式(标签为 “符合人类偏好的回答”)更新模型参数,最终使模型具备 “理解指令并输出贴合人类习惯响应” 的能力,完成初步指令对齐。
3.2. 奖励模型(RM,Reward Model)训练
RM 的核心目标是构建一个能为模型输出 “打分” 的模型,通过分数量化回答质量,为后续强化学习提供优化依据。其训练流程以 SFT 模型为基础,具体步骤如下:
3.2.1. 对比性训练数据构造
需生成 “同一 Prompt 下不同质量的回答”,并标注质量优先级,常见数据来源包括:
- 人工对比标注:给定一个 Prompt,让标注者对多个 LLM(如 SFT 模型、其他基线模型)的输出进行质量排序,明确 “更优回答(chosen)” 与 “更差回答(rejected)”(无需精确打分,仅需确定相对好坏);
- 模型蒸馏构造:通过设计特定 Prompt(如 “生成一个不符合逻辑的回答”“生成一个简略且不完整的回答”),引导基线模型同时输出 “优质回答” 与 “劣质回答”,直接获得对比样本。
3.2.2. RM 模型构建与训练
- 模型初始化:以 SFT 模型为基础,在其
输出层后增加一个 “分类 / 回归头”,使模型最终能输出一个 “分数”(而非具体 token),该分数代表回答的质量等级。 - 训练目标:通过对比学习优化模型参数,确保 “优质回答(chosen)” 的输出分数显著高于 “劣质回答(rejected)”,即
最大化 “chosen 分数 - rejected 分数” 的差值。 - 最终能力:训练完成的 RM 可
对任意 “Prompt - 回答” 对输出分数(通常取回答结束 token 的 logit 作为最终分数),实现对回答质量的量化评估。
3.3. 强化学习(RL,Reinforcement Learning)微调(RLHF)
3.3.1 为什么要采用RLHF?
在大语言模型训练中引入基于人类反馈的强化学习(RLHF),主要源于其在以下关键方面发挥的不可替代作用:
-
实现整体性优化,超越逐词拟合
传统的监督微调(SFT)通常以逐词(token-level)为优化目标,强调模型输出与标准答案的局部匹配。而强化学习(RL)则以整段生成结果(sequence-level)作为反馈对象,不局限于特定词汇的选择。这种全局优化机制更适应自然语言的灵活性,能够鼓励表达多样性,同时增强模型对语义细微差异的敏感度,从而更好地捕捉语言中“同义不同形”的表达方式。 -
缓解模型幻觉问题
根据用户输入类型,大语言模型的任务可大致分为:- (a)文本理解型:基于给定文本回答问题;
- (b)知识问答型:依赖模型内部知识给出真实答案;
- (c)创意生成型:进行开放性的内容创作。
在知识问答任务中,SFT 容易因强制输出倾向导致模型在不确定时仍生成错误内容,即产生“幻觉”。RLHF 则可通过设计奖励函数,对正确答案赋予高回报、对“拒绝回答”给予中性评分,并对错误答案施以显著惩罚,从而引导模型学会在不确定时主动放弃回答,增强回答的可靠性。
- 建模多轮对话中的长期交互影响
多轮对话能力要求模型在生成回复时兼顾历史上下文与整体对话目标,而这类跨轮次的语义连贯性与任务完成度难以通过 SFT 直接建模。RLHF 能够通过设计合理的奖励机制,将当前回复对对话长期效果的影响纳入优化目标,从而提升模型在复杂交互场景下的整体表现。
3.3.2 核心挑战
-
训练稳定性:策略梯度方法方差较大
-
灾难性遗忘:模型可能遗忘预训练获得的知识和能力
-
奖励黑客(Reward Hacking):模型可能找到奖励模型的漏洞而非真正优化目标
3.3.4 近端策略优化(PPO,Proximal Policy Optimization)
3.3.4.1 核心思想
在RLHF中,PPO算法的核心思想是在优化策略模型(LLM)以最大化期望奖励的同时,确保新策略(更新后的LLM)与旧策略(更新前的LLM)之间的偏差不会过大,从而维持训练稳定性和避免策略崩溃。这主要通过两个关键机制实现:
-
重要性采样与比率裁剪:利用重要性采样来估计旧策略下的期望值,并通过裁剪策略比率来限制更新幅度。 -
价值函数与KL散度惩罚:使用价值函数(Critic)来估计状态值,并引入KL散度惩罚项来约束新策略与参考模型(如预训练模型)之间的差异,防止过度优化。
3.3.4.2 核心模型
PPO在RLHF框架中涉及四个关键模型组件:
-
策略模型 Policy Model(Actor Model):这是被训练的主力模型,也是最终希望提升的模型。它通常由
SFT模型初始化。在强化学习框架中,它负责根据给定的上文(提示),执行“动作”——即预测下一个token的概率分布,并生成完整的回答序列。 -
价值模型 Value Model(Critic Model):价值模型是一个独立的模型,需要训练。它的任务是进行状态价值评估,即
预测从当前状态(已生成的部分序列)开始,未来所能获得的累积奖励的期望。该预测值用于计算优势函数,计算的方法一般使用GAE(广义优势估计,generalized advantage estimation)),以更准确地衡量每个生成“动作”(token)的实际好坏。 -
奖励模型 Reward Model:此即上一阶段训练好的模型。它在RL训练过程中参数被固定,不参与更新。其职责是
为策略模型生成的每一个完整回答给出一个即时奖励,评估该回答的最终质量。 -
参考模型 Reference Model:在训练开始时与策略模型完全相同(同样是SFT模型的副本),但其参数在整个RL训练过程中被
固定。它的作用是作为一个行为基准,通过与策略模型输出的概率分布计算KL散度,来施加约束,防止策略模型为追求高奖励而过度偏离其原始语言能力与通顺度。
3.3.4.3 策略优化目标
PPO的策略优化目标函数结合了策略提升和约束,其一般形式为:

其中:
L CLIP ( θ ) L^{\text{CLIP}}(\theta) LCLIP(θ) 是裁剪后的策略损失项,确保策略更新稳定。
L VF ( ϕ ) L^{\text{VF}}(\phi) LVF(ϕ) 是价值函数损失项,使价值估计接近实际收益。
KL [ π θ ∣ π ref ] \text{KL}[\pi_{\theta} | \pi_{\text{ref}}] KL[πθ∣πref] 是KL散度惩罚项,约束新策略与参考模型的差异。
c 1 c_1 c1 和 c 2 c_2 c2 是超参数,用于平衡各项的权重。
具体地,目标函数旨在最大化期望优势,同时限制策略变化。
3.3.4.4 重要性采样与比率裁剪
重要性采样允许我们使用旧策略
π
θ
old
\pi_{\theta_{\text{old}}}
πθold 的样本来估计新策略
π
θ
\pi_{\theta}
πθ 的期望。策略比率
r
t
(
θ
)
r_t(\theta)
rt(θ) 定义为:

其中
a
t
a_t
at 是动作(如生成的token),
s
t
s_t
st 是状态(如上下文序列)。
比率裁剪通过限制
r
t
(
θ
)
r_t(\theta)
rt(θ) 的取值来防止过大更新。裁剪后的损失项
L
CLIP
(
θ
)
L^{\text{CLIP}}(\theta)
LCLIP(θ) 为:

其中:
A ^ t \hat{A}_t A^t 是优势函数估计,表示动作 a t a_t at 的相对收益。
ϵ \epsilon ϵ 是裁剪超参数(通常取 0.1 或 0.2),用于定义比率的允许范围。
clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) clip(rt(θ),1−ϵ,1+ϵ) 将比率限制在 [ 1 − ϵ , 1 + ϵ ] [1 - \epsilon, 1 + \epsilon] [1−ϵ,1+ϵ] 内。
该机制确保策略更新不会因比率过大而变得不稳定:当优势为正时,鼓励增加动作概率,但不超过裁剪上限;当优势为负时,鼓励减少动作概率,但不低于裁剪下限。
3.3.4.5 价值函数与KL散度惩罚
价值函数
V
ϕ
(
s
t
)
V_{\phi}(s_t)
Vϕ(st) 用于估计状态
s
t
s_t
st 的期望累积收益,从而计算优势函数
A
^
t
\hat{A}_t
A^t。优势函数通常通过广义优势估计(GAE)计算:


其中 δ t = r t + γ V ϕ ( s t + 1 ) − V ϕ ( s t ) \delta_t = r_t + \gamma V_{\phi}(s_{t+1}) - V_{\phi}(s_t) δt=rt+γVϕ(st+1)−Vϕ(st) 是时序差分误差, γ \gamma γ 是折扣因子, λ \lambda λ 是GAE参数。
价值函数损失 L VF ( ϕ ) L^{\text{VF}}(\phi) LVF(ϕ) 使价值估计接近实际收益:

其中
R
^
t
\hat{R}_t
R^t 是实际累积收益估计,通常为折扣奖励和。
KL散度惩罚项
KL
[
π
θ
∣
π
ref
]
\text{KL}[\pi_{\theta} | \pi_{\text{ref}}]
KL[πθ∣πref] 确保新策略
π
θ
\pi_{\theta}
πθ 与参考模型
π
ref
\pi_{\text{ref}}
πref 的分布不会偏离太远,防止过度优化导致模型退化。其计算为:

在优化中,该惩罚项被添加到目标函数中,以软约束形式保持策略的合理性。
3.3.4.6 具体实现步骤
在RLHF中,PPO的训练以批次数据进行,每个批次包含多个样本(如文本序列)。
数据采样阶段(一次采样)
初始状态与序列生成:在当前状态 s t s_t st 下,使用未更新前的策略模型 π θ o l d \pi_{\theta_{old}} πθold 和价值模型 V ϕ o l d V^{old}_{\phi} Vϕold:对样本提示 q q q,使用策略模型(Actor Model)进行一次采样生成:

奖励计算:使用奖励模型(Reward Model)计算生成序列 o o o 的分数;计算参考模型(Reference Model)与策略模型之间的KL散度,将两者结合作为即时奖励。价值估计:使用价值模型(Critic Model) V ϕ o l d V^{old}_{\phi} Vϕold 计算每个token的收益。优势函数计算:每个token的奖励计算不仅考虑当前token的分数,还考虑对后续tokens分数的影响,结合第2步的即时奖励,就是本次采样的优势(Advantage Function) A A A。
至此完成一次采样,获得PPO训练的参考数据:优势函数 A A A和价值估计 V ϕ o l d V^{old}_{\phi} Vϕold
模型更新阶段(K次迭代)
-
策略比率计算:策略模型对相同提示 q q q 重新生成: π θ ( a t ∣ s t ) \pi_{\theta}(a_t | s_t) πθ(at∣st),计算与旧策略的更新比率:

-
策略优化方向判断:- 当 A > 0 A > 0 A>0 时:参考采样为正收益(质量较好),应提升 r t ( θ ) r_t(\theta) rt(θ)
- 当 A < 0 A < 0 A<0 时:参考采样为负收益,应降低 r t ( θ ) r_t(\theta) rt(θ)
-
策略比率裁剪:为避免训练不稳定,对策略比率进行裁剪:

价值函数更新:价值模型对新生成进行价值评估 V ϕ n e w V^{new}_{\phi} Vϕnew,目标:近似参考奖励 R = A + V ϕ o l d R = A + V^{old}_{\phi} R=A+Vϕold
应用裁剪机制:

-
模型参数更新:使用两个独立的损失函数分别更新:- 策略模型 π θ \pi_{\theta} πθ
- 价值模型 V ϕ n e w V^{new}_{\phi} Vϕnew
-
迭代循环与模型同步:循环完成K次模型更新迭代后:- 更新旧策略模型: π o l d ← π θ \pi_{old} \leftarrow \pi_{\theta} πold←πθ
- 更新旧价值模型: V o l d ϕ ← V n e w ϕ V^{old}{\phi} \leftarrow V^{new}{\phi} Voldϕ←Vnewϕ
完成当前批次的所有训练后,进入下一批次数据的训练流程。
3.3.5 直接偏好优化(DPO,Direct Preference Optimization)
与传统的强化学习从人类反馈中学习方法不同,DPO不需要训练一个显式的奖励模型(Reward Model),而是直接利用策略模型(Policy Model)和参考模型(Reference Model)来优化偏好数据。这降低了计算成本和训练复杂度,同时保持了稳定性和性能。
3.3.5.1 核心思想
-
训练数据:使用偏好对数据,即每个样本包含一个输入 x x x,一个偏好(chosen)响应 y w y_w yw 和一个非偏好(rejected)响应 y l y_l yl。
-
目标:通过优化策略模型 π θ \pi_\theta πθ,使其对 y w y_w yw 的概率高于对 y l y_l yl 的概率,但同时约束策略模型与参考模型 π ref \pi_{\text{ref}} πref 的概率分布不要偏离太远。
-
奖励隐含表示:在DPO中,策略模型本身隐含地充当了奖励模型的角色。
3.3.5.2 损失函数
损失函数的核心目标是最大化偏好响应
y
w
y_w
yw 相对于非偏好响应
y
l
y_l
yl 的偏好概率。通过计算策略模型与参考模型的对数概率比值的差异,并使用sigmoid函数将其转换为概率形式,最终通过负对数似然进行优化:

符号解释:
L DPO \mathcal{L}_{\text{DPO}} LDPO:DPO损失函数值
π θ \pi_\theta πθ:待优化的策略模型
π ref \pi_{\text{ref}} πref:参考模型(固定不变)
x x x:输入提示
y w y_w yw:偏好响应(赢家)
y l y_l yl:非偏好响应(输家)
D \mathcal{D} D:训练数据集
β \beta β:温度参数
σ \sigma σ:sigmoid函数
3.3.5.3 隐含奖励函数

符号解释:
r ( x , y ) r(x, y) r(x,y):样本 ( x , y ) (x, y) (x,y) 的隐含奖励值
β \beta β:温度参数
π θ ( y ∣ x ) \pi_\theta(y | x) πθ(y∣x):策略模型对响应 y y y 的条件概率
π ref ( y ∣ x ) \pi_{\text{ref}}(y | x) πref(y∣x):参考模型对响应 y y y 的条件概率
该公式定义了DPO中的隐含奖励函数,它表示策略模型相对于参考模型的对数概率比值,乘以温度参数 β \beta β。这个隐含奖励避免了显式训练奖励模型的需求。
基于隐含奖励的DPO损失:

这是使用隐含奖励重新表达的DPO损失函数,更直观地显示了损失函数的本质:最大化偏好响应与非偏好响应之间的奖励差异。
3.3.6 组相对策略优化(GRPO,Group Relative Policy Optimization)
GRPO是DeepSeekMath论文中提出的一种强化学习算法,它是PPO的变体。GRPO旨在增强语言模型的数学推理能力,同时显著优化PPO的内存使用。
3.3.6.1 核心思想
GRPO的核心创新在于摒弃了传统的critic模型,转而使用组内相对得分来估计基线(baseline)。具体来说:
- 对于每个问题,从当前策略中采样一组输出
- 使用奖励模型对这些输出进行评分
- 基于组内得分的相对比较来计算优势函数
- 避免了训练独立的价值函数,大幅减少训练资源

优势
-
显著减少训练资源:不需要训练额外的价值函数模型,大幅降低了内存和计算需求
-
与奖励模型兼容性好:利用组内相对得分计算优势,与奖励模型的训练方式一致
-
训练稳定性:通过组内标准化和 KL 散度正则化保持训练过程的稳定性
-
效果显著:在数学推理任务上展现出强大的性能提升
3.3.6.2 目标函数
GRPO算法的核心目标函数建立在PPO的基础上,但进行了重要改进。该算法通过采样一组输出来计算相对优势,避免了传统PPO中需要训练额外价值函数的需求。目标函数包含两个关键部分:策略比率裁剪项和KL散度正则项,前者确保策略更新的稳定性,后者防止策略偏离参考模型太远。
GRPO 优化以下目标函数:

其中:
q
q
q:输入的问题
o i o_i oi:对于问题 q q q 的第 i i i 个输出响应
G G G:组大小,即每个问题采样的输出数量
π θ \pi_{\theta} πθ:当前待优化的策略模型
π θ o l d \pi_{\theta_{old}} πθold:旧的策略模型(用于采样的模型)
π r e f \pi_{ref} πref:参考模型(通常为SFT模型)
A ^ i , t \hat{A}_{i,t} A^i,t:在输出 o i o_i oi 的时间步 t t t 的优势函数估计
ϵ \epsilon ϵ:裁剪参数,限制策略更新的幅度
β \beta β:KL散度正则项的系数
o i , < t o_{i,<t} oi,<t:输出 o i o_i oi 在时间步 t t t 之前的所有token
o i , t o_{i,t} oi,t:输出 o i o_i oi 在时间步 t t t 的token
3.3.6.2 优势函数计算
结果监督模式:

符号解释:
r i r_i ri:输出 o i o_i oi 的奖励得分
r \mathbf{r} r:组内所有输出的奖励得分集合 r 1 , r 2 , ⋯ , r G {r_1, r_2, \cdots, r_G} r1,r2,⋯,rG
mean ( r ) \text{mean}(\mathbf{r}) mean(r):组内奖励得分的平均值
std ( r ) \text{std}(\mathbf{r}) std(r):组内奖励得分的标准差
r ‾ i \overline{r}_i ri:标准化后的相对奖励
过程监督模式:

符号解释:
i n d e x ( j ) index(j) index(j):第 j j j 个推理步骤的结束位置索引
r i i n d e x ( j ) r_i^{index(j)} riindex(j):输出 o i o_i oi 在第 j j j 个推理步骤的奖励得分
r ‾ i i n d e x ( j ) \overline{r}_i^{index(j)} riindex(j):标准化后的步骤奖励得分
K i K_i Ki:输出 o i o_i oi 中的总推理步骤数
3.3.6.3 KL 散度无偏估计

符号解释:
D K L [ π θ ∣ ∣ π r e f ] \mathbb{D}{KL} \left[ \pi{\theta} || \pi_{ref} \right] DKL[πθ∣∣πref]:当前策略与参考模型之间的KL散度
π r e f ( o i , t ∣ q , o i , < t ) \pi_{ref}(o_{i,t}|q, o_{i,<t}) πref(oi,t∣q,oi,<t):参考模型在给定上下文下生成当前token的概率
π θ ( o i , t ∣ q , o i , < t ) \pi_{\theta}(o_{i,t}|q, o_{i,<t}) πθ(oi,t∣q,oi,<t):当前策略在给定上下文下生成当前token的概率
3.3.6.4 算法流程
基础GRPO训练流程
-
1.初始化阶段
- 加载预训练的SFT模型作为初始策略 π θ \pi_{\theta} πθ 和参考模型 π r e f \pi_{ref} πref
- 初始化奖励模型(基于SFT模型训练)
-
2.采样阶段
- 对于每个训练问题 q q q,从当前策略 π θ o l d \pi_{\theta_{old}} πθold 中采样 G G G 个输出
- 保存采样时的策略概率用于重要性权重计算
-
3.评估阶段
- 使用奖励模型对每个采样输出进行评分
- 对于过程监督,对每个推理步骤进行独立评分
-
4.优势计算阶段
- 计算组内得分的均值和标准差
- 对奖励进行标准化处理
- 根据监督模式计算每个时间步的优势值
-
5.策略更新阶段
- 计算策略比率(新策略概率与旧策略概率之比)
- 应用裁剪机制限制更新幅度
- 计算KL散度正则项
- 更新策略模型参数
DPO、PPO、GRPO算法比较:

四、总结
RLHF技术路径构建了一个层层递进的能力演化体系:预训练阶段通过海量数据锻造出具备通用语言能力和知识底蕴的基础模型,SFT阶段借助高质量指令数据塑造其遵循指令和对话交互的专项技能,而RLHF阶段则通过人类偏好数据实现价值观层面的精细对齐,整个过程呈现出从应对数据规模挑战到解决数据质量难题、最终攻克人类价值观量化瓶颈的演进脉络,以及从通用能力到专门技能、再到复杂偏好对齐的目标细化路径,最终完成从“知识渊博的学者”到“技能娴熟的专家”再到“善解人意的助手”的能力跃迁,从而系统性地构建出既强大又安全的AI助手。
| 维度 | 预训练阶段 | SFT阶段 | RL微调阶段 |
|---|---|---|---|
| 核心目标 | 获得通用的语言能力、 知识和推理基础 | 学会遵循指令、理解 意图、形成对话风格 | 对齐人类复杂偏好,优化 输出质量、安全性和有用性 |
| 数据要求 | 海量网络文本 (万亿级token) | 高质量指令-回答对 (万到百万级) | 人类偏好对比数据 (万级) |
| 训练方法 | 自监督学习 (下一个token预测) | 有监督学习 (最大似然估计) | 强化学习 (PPO/DPO/GRPO等) |
| 主要挑战 | 数据质量与规模平衡 算力成本极其高昂 训练不稳定性 知识时效性限制 | 高质量数据稀缺昂贵 灾难性遗忘 过拟合与泛化不足 能力与对齐的权衡 | 人类偏好主观且有噪声 奖励黑客问题 训练不稳定易发散 模式崩溃与多样性减少 |
| 关键输出 | 基础语言模型 (Base Model) | 指令微调模型 (Instruct Model) | 对齐后模型 (Chat Model) |
| 评估重点 | 语言建模能力、知 识掌握、基础推理 | 指令遵循能力、对话 质量、任务完成度 | 帮助性、安全性、人类偏好符合度 |
| 资源需求 | 极高(千卡级,数周至数月) | 中等(百卡级,数天至数周) | 高(需运行多个模型,计算密集) |
| 风险类型 | 生成不准确信息、包 含偏见和有害内容 | 过度保守、创造力 受限、知识遗忘 | 价值观扭曲、输出钻营取巧、行为不可预测 |
| 关键方法/技术 | Transformer架构、 扩展定律、数据清洗 | 指令模板设计、高质量 标注、渐进式学习 | 奖励建模、KL惩罚、策略优化算法 |
以上内容仅为个人在学习和实践过程中的一些浅见,旨在抛砖引玉。技术领域日新月异,若有任何理解错误或表述不周的地方,万分欢迎各位读者在评论区指正与讨论。

更多推荐
所有评论(0)