RLHF整体流程
人类反馈强化学习完整流程解析
什么是RLHF
RLHF(Reinforcement Learning from Human Feedback)是一种利用人类反馈来训练语言模型的方法。 通过让人类对模型输出进行偏好标注,训练奖励模型,再用强化学习优化语言模型, 使其输出更符合人类期望和价值观。
# RLHF三阶段
Stage 1: Supervised Fine-Tuning (SFT)
Stage 2: Reward Model Training (RM)
Stage 3: Reinforcement Learning (PPO)
第一阶段:监督微调(SFT)
使用高质量的指令-回答数据对预训练模型进行监督微调,使其具备基本的指令跟随能力。
# SFT数据示例
Instruction: "解释什么是机器学习"
Response: "机器学习是人工智能的一个分支..."
数据来源:人工编写、模型生成+人工审核、开源数据集
第二阶段:奖励模型训练(RM)
偏好数据收集
让模型对同一提示生成多个回答,人类标注员对这些回答进行排序或打分。
# 偏好数据格式
prompt: "写一首关于春天的诗"
completion_A: "春风吹绿柳树梢..."
completion_B: "春天来了花开了..."
preference: A > B (人类偏好A)
奖励模型架构
奖励模型通常基于SFT模型,将最后的softmax层替换为线性头输出标量奖励值。
# 训练目标
loss = -log(σ(r(x, y_winner) - r(x, y_loser)))
# 最大化胜者与败者奖励值之差
第三阶段:PPO强化学习
使用PPO算法优化语言模型,使其生成的文本能获得更高的奖励值。
# PPO目标函数
L = E[min(r(θ)A, clip(r(θ), 1-ε, 1+ε)A)]
# r(θ) = πθ(a|s) / πθ_old(a|s)
# A = 优势函数估计
KL散度约束
添加KL散度惩罚项,防止模型偏离SFT模型太远导致输出质量下降。
objective = reward - β × KL(π || π_sft)
# β控制KL惩罚强度
完整流程图
┌─────────────────┐
│ Pre-trained LM │
└────────┬────────┘
↓
┌─────────────────┐
│ SFT微调 │ ← 高质量指令数据
└────────┬────────┘
↓
┌────┴────┐
↓ ↓
┌───────┐ ┌───────┐
│ RM │ │ Policy│
│ Training│ │ (SFT) │
└───┬───┘ └───┬───┘
│ │
↓ ↓
┌─────────────────┐
│ PPO优化 │ ← 奖励信号
└────────┬────────┘
↓
┌─────────────────┐
│ Aligned Model │
└─────────────────┘
关键挑战
奖励模型过拟合
模型学会欺骗奖励模型而非真正提升质量
训练稳定性
PPO训练容易出现不稳定,需要仔细调参
数据质量依赖
偏好数据质量和一致性直接影响效果
----