大模型算法:强化学习、微调与对齐 - 余昌叶

系统地讲解了大模型技术、训练算法(包括强化学习、RLHF、PPO、GRPO、DPO、SFT 与 CoT 蒸馏等)、多种效果优化措施及其实践。
关于作者
余昌叶 是大模型技术领域的专家:
- AI 研究员:专注于大语言模型和强化学习研究
- 技术实践者:在大模型训练和对齐方面有丰富实战经验
- 技术布道师:致力于将复杂的大模型算法以系统化的方式传播
- 开源贡献者:参与多个大模型相关开源项目
余昌叶以其"理论与实践并重"的写作风格著称,不仅讲解算法原理,更注重实际应用和工程实践。
核心内容
1. 大模型技术概览
大模型发展脉络:
1. 预训练时代 (Pre-training)
- GPT 系列:生成式预训练
- BERT 系列:双向编码
- T5:文本到文本转换
2. 指令微调时代 (Instruction Tuning)
- InstructGPT
- ChatGPT
- 遵循指令的能力
3. 对齐时代 (Alignment)
- RLHF:人类反馈强化学习
- DPO:直接偏好优化
- 价值观对齐
4. 高效微调时代 (PEFT)
- LoRA:低秩适配
- Prefix Tuning
- 参数高效微调
2. 强化学习基础
强化学习核心概念:
1. 基本框架
- 智能体 (Agent):决策者
- 环境 (Environment):交互对象
- 状态 (State):环境描述
- 动作 (Action):决策行为
- 奖励 (Reward):反馈信号
2. 马尔可夫决策过程 (MDP)
- 状 态转移概率
- 奖励函数
- 折扣因子
3. 价值函数
- V(s):状态价值
- Q(s,a):动作价值
- 贝尔曼方程
4. 策略梯度
- 策略函数π(a|s)
- 梯度上升优化
- REINFORCE 算法
5. Actor-Critic
- Actor:策略网络
- Critic:价值网络
- 优势函数 A(s,a)
3. PPO 算法详解
PPO (Proximal Policy Optimization):
1. 核心思想
- 限制策略更新幅度
- 避免训练不稳定
- clipped 目标函数
2. 重要性采样
- off-policy 到 on-policy
- 修正分布差异
- 权重计算
3. Clipping 机制
ratio = π_new(a|s) / π_old(a|s)
clipped_ratio = clip(ratio, 1-ε, 1+ε)
L = min(ratio * A, clipped_ratio * A)
4. 价值函数损失
- 预测价值与真实回报
- 均方误差最小化
5. 熵正则化
- 鼓励探索
- 避免过早收敛
6. 训练流程
- 收集轨迹
- 多轮 PPO 更新
- 更新旧策略
4. RLHF:人类反馈强化学习
RLHF (Reinforcement Learning from Human Feedback):
1. 三阶段流程
阶段 1:监督微调 (SFT)
- 收集高质量示范数据
- 监督学习训练
- 学习基本任务能力
阶段 2:奖励模型训练
- 收集人类偏好数据
- 训练奖励模型
- 学习人类价值判断
阶段 3:强化学习优化
- 使用 PPO 算法
- 奖励模型作为信号
- 优化策略模型
2. 偏好数据收集
- 模型生成多个回答
- 人类标注优劣
- 构建偏好数据集
3. 奖励模型设计
- 输入:prompt + response
- 输出:奖励分数
- 学习目标:偏好排序
4. 挑战与解决
- 奖励欺骗:正则化
- 分布偏移:KL 散度约束
- 标注成本:主动学习
5. DPO:直接偏好优化
DPO (Direct Preference Optimization):
1. 核心洞察
- RLHF 复杂且不稳定
- 奖励模型是中间环节
- 可以直接从偏好学习策略
2. 数学原理
- Bradley-Terry 偏好模型
- 隐式奖励函数
- 直接优化策略
3. 损失函数
L_DPO = -log[σ(β * log(π(y_w|x)/π_ref(y_w|x))
- β * log(π(y_l|x)/π_ref(y_l|x)))]
y_w: 优选回答
y_l: 劣选回答
π_ref: 参考模型
4. 优势
- 无需奖励模型
- 训练更稳定
- 计算效率更高
- 超参数更少
5. 与 RLHF 对比
RLHF:SFT → 奖励模型 → PPO
DPO:SFT → 直接优化
6. GRPO 算法
GRPO (Group Relative Policy Optimization):
1. 动机
- PPO 需要价值网络
- 价值网络训练成本高
- 用群体优势替代
2. 核心思想
- 对同一 prompt 生成多个回答
- 计算组内相对优势
- 基于排名优化
3. 优势计算
- 生成 G 个回答
- 获得奖励 {r_1, r_2, ..., r_G}
- A_i = (r_i - mean(r)) / std(r)
4. 优化目标
- 类似 PPO 的 clipping
- 使用组内优势
- 无需价值网络
5. 优势
- 节省显存
- 简化训练
- 效果相当