LLM对齐技术快速指南
RLHF 让模型学习人类在多种输出中更偏好哪些——这是一种更微妙但更强大的训练信号。
微信 ezpoda免费咨询:AI编程 | AI模型微调| AI私有化部署
AI模型价格对比 | AI工具导航 | ONNX模型库 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
如果你曾经微调过LLM,你可能有过这样的体验:
模型生成了流畅、结构良好的文本……但内容却自信满满地完全错了。或者它给出了技术上准确的答案,语气却机械到没有任何用户会信任它。
听起来很熟悉?😄
监督微调(SFT) 能带你走很远。但在某个时刻,你会遇到瓶颈。模型知道如何说话,但不知道人类真正看重什么样的表达。
这就是对齐问题(alignment problem),也是我们大多数人第一次接触强化学习的地方。不是因为我们主动去寻找RL,而是因为仅靠SFT无法弥合 "技术上正确的输出"和"人类真正偏好的输出"之间的差距。
基于人类反馈的强化学习(RLHF) 正是解决这一问题的一系列技术。与通过标注示例告诉模型该说什么不同,RLHF 让模型学习人类在多种输出中更偏好哪些——这是一种更微妙但更强大的训练信号。
它是现代LLM训练流水线的第三个、也是最后一个阶段。对于任何使用这些模型构建应用的人来说,理解它已经变得至关重要。
在本文中,我们将从头梳理RLHF的全景:
什么是RL,它如何映射到语言模型训练中,以及你在实践中会遇到的关键算法——PPO、DPO等。
我们会保持数学部分简洁,聚焦于直觉理解。后续文章将单独介绍GRPO方法。
准备好了吗?开始吧!👇
1、理解RL:RLHF的核心概念
在专门讨论RLHF之前,我们需要对强化学习(RL) 到底是什么有一个共同的理解。不是教科书上的定义,而是它在语言模型语境中如何运作。
1.1 RL ≠ LLM
在LLM的语境中,关于RL最重要的一点是:
RL不是一种模型架构。它是一个训练框架。一种教导模型通过做出一系列决策来最大化奖励信号的方法。模型从其行动的后果中学习,而不是从标注示例中学习。
你可以这样理解标准监督学习与RL的区别:
- 跟着菜谱学做菜(监督学习:输入 → 输出配对)
- 通过上菜并获得反馈来学做菜(RL:行动 → 奖励)
在第一种情况下,你在模仿示例。在第二种情况下,你在优化结果。
任何RL系统的关键组件包括:
- 智能体(Agent) —— 做出决策的主体(在这里就是LLM)
- 环境(Environment) —— 智能体运作的空间(token概率和文本生成过程)
- 动作(Action) —— 智能体所做的操作(生成下一个token,或一个完整回复)
- 状态(State) —— 智能体在决策前看到的信息(当前上下文/prompt + 已生成的token)
- 奖励(Reward) —— 反馈信号(表示输出质量的分数)
- 策略(Policy) —— 智能体决定采取哪个动作的策略(模型权重 + 生成策略)
如果你在RLHF讨论中听说过"策略(policy)"和"奖励模型(reward model)"这些术语,它们对应的就是上述概念。策略(policy) 是模型的行为(它做什么)。奖励模型(reward model) 则对行为进行评分(它刚才做的事情有多好)。
1.2 为什么语言需要RL?
语言生成本质上是序列化的。模型不会一次性生成整个回复——它逐个生成token,每个token都会影响下一个。这使得它天然适合RL:
- 动作(actions) 是token选择
- 状态(state) 是迄今为止的序列
- 奖励(reward) 在最后给出(有时也按片段给出)
- 策略(policy) 是模型学到的关于哪些token能带来更好结果的知识
正是这种序列化特性使得SFT会遇到瓶颈。SFT教模型模仿训练数据中的模式。RL教它优化结果。而在语言领域,结果优化正是区分"正确"和"令人信服"的关键。
2、RLHF流水线:三个阶段
RLHF通常遵循一个三阶段的流水线。每个阶段都建立在前一个阶段之上,跳过或草率对待任何一个阶段都会损害最终结果。
阶段1:监督微调(SFT)
你拿一个基础的预训练模型(比如对齐前的 GPT-4,或者 Llama 3 基础版),在高质量的指令-回复对上进行微调。这教会模型进行有帮助的对话的基本模式。
SFT 是基础,而非终点。没有它,RLHF 就无从谈起。但仅靠 SFT,你得到的是一个只会模仿优秀回复格式的模型,它并不一定理解这些回复好在哪里。
阶段2:奖励模型训练
这就是 RLHF 中"人类反馈"发挥作用的地方。你训练一个单独的奖励模型(RM)——通常从 SFT 模型初始化而来——用于预测人类偏好。
它的工作原理如下:
- 使用你的 SFT 模型对同一个提示生成多个回复
- 人类(或越来越多地使用自动化系统)将这些回复从最好到最差进行排序
- 奖励模型学习预测这些排序——为人类偏好的回复分配更高的分数
- 随着时间推移,RM 成为了人类判断的代理
RM 至关重要,因为它使 RL 能够大规模运行。不需要人类在训练过程中评估每一次模型输出,RM 能够提供即时、一致的反馈。
一个训练良好的奖励模型能够捕捉微妙的偏好:语调、完整性、有用性、无害性。这些是 SFT 难以通过静态示例来教授的东西。
阶段3:策略优化(RL 微调)
现在真正的 RL 开始了。SFT 模型(现在作为策略(policy))生成回复。奖励模型对这些回复打分。策略更新其权重以最大化奖励。
关键洞察在于:模型正在学习的是生成奖励模型认为好的回复,而不是生成与训练示例匹配的回复。这与 SFT 有着根本性的不同。
SFT:"写一个看起来像这个示例的回复。" RLHF:"生成回复,并了解哪些回复能获得更高的分数。"
但有一个问题。RL 训练以不稳定著称。如果没有约束,策略会很快学会利用奖励模型——找到那些碰巧得分很高的奇怪、不可读的文本。近端策略优化(PPO)是保持这种稳定性的最常用算法。
3、PPO:RLHF 的原始主力算法
近端策略优化(PPO) 是让 RLHF 变得实用的算法。它由 OpenAI 于 2017 年开发,至今仍是生产环境中 LLM 对齐最广泛使用的 RL 算法。
3.1 PPO 为什么存在
RL 中的根本挑战是:如何在不破坏策略的情况下更新它?
想象一下,你的模型目前能生成不错的回复。如果你基于一批反馈过于激进地更新权重,你可能会毁掉它在 SFT 期间学到的一切。语言能力、事实知识、基本对话技能——全都可能崩塌。
这被称为灾难性遗忘,是 RL 训练中的真实风险。
PPO 用一个简单但有效的理念解决了这个问题:限制策略在单次更新中的变化幅度。
PPO 对策略更新进行裁剪。如果新策略试图偏离旧策略太远,更新就会被缩减。模型在学习,但它在保守地学习。
3.2 PPO 的工作原理(直觉理解)
- 策略(你的 LLM)生成一个回复
- 奖励模型对其打分
- PPO 比较新策略生成该回复的概率与旧策略生成该回复的概率
- 如果比率太大(策略变化太剧烈),更新就会被裁剪
- 策略朝着更高奖励的方向迈出一小步、安全的步子
- 重复数千次
PPO 中的"近端"正是指这一约束——在每一步中保持新策略与旧策略接近(即"近端")。
RLHF 中完整的 PPO 目标函数还包含一个 KL 散度惩罚项。它的作用有两个:
- 防止策略偏离 SFT 模型过远(保持语言质量)
- 作为额外的安全措施,防止奖励作弊
最终结果:一个能够稳步改进而不会突然崩溃的策略。
PPO 非常稳健且被充分理解。但它很复杂:训练过程中需要维护四个独立的模型(策略模型、参考模型、奖励模型、价值模型——即"评判者")。这使得它成本高昂且难以调试。
4、DPO:直接偏好优化
直接偏好优化(DPO) 于 2023 年提出,极大地改变了 RLHF 的格局。其核心洞见:你实际上不需要强化学习来对齐语言模型。
4.1 DPO 的核心洞见
PPO 的做法是:
- 训练一个奖励模型
- 使用强化学习(PPO)针对该奖励模型优化策略
DPO 提出了一个问题:如果我们跳过奖励模型,直接针对偏好数据优化策略会怎样?
事实证明,奖励函数与最优策略之间存在一个闭式映射关系。DPO 推导出了这一映射,并利用它直接在偏好对(chosen vs. rejected 响应)上训练模型,完全不需要训练单独的奖励模型或运行 PPO。
DPO 完全消除了奖励模型。你从偏好数据直接得到优化后的策略,跳过了整个强化学习训练循环。
4.2 DPO vs. PPO:关键区别
| 方面 | PPO | DPO |
|---|---|---|
| 奖励模型 | 必需 | 不需要 |
| RL 循环 | 完整的 RL 训练 | 隐式偏好优化 |
| 复杂度 | 高(4 个模型) | 低(1 个模型) |
| 稳定性 | 被充分理解 | 可能对偏好数据过拟合 |
| 数据效率 | 较低 | 较高 |
| 对齐质量 | 强大,经过充分验证 | 强大,较新 |
4.3 各自的适用场景
PPO 在以下情况下表现更好:
- 你有一个训练良好且值得信赖的奖励模型
- 有大量计算资源用于 RL 训练
- 有经验丰富的工程师进行 PPO 调参
DPO 在以下情况下表现更好:
- 拥有高质量的偏好数据
- 计算资源有限(不需要单独的奖励模型,不需要 RL 循环)
- 需要更简单、更直接的训练流程
该领域尚未就一个赢家达成共识。许多生产系统采用混合方案——先用 DPO 进行初始对齐,再用 PPO 进行最终精调。而更新的算法如 GRPO(Group Relative Policy Optimization)和 REINFORCE 留数变体则在探索完全不同的权衡取舍。
5、RLHF 的实践考量
5.1 数据需求
RLHF 对数据——尤其是偏好数据——的需求量很大。根据领域和模型规模的不同,你需要数千到数十万条排序后的响应对。
数据本身也很棘手。人类标注者对什么是"好的"存在分歧。标注者间一致性是一个真实存在的问题。而大规模收集高质量偏好数据的成本相当可观。
一个实用的方法:先从你特定领域中的一个小规模、有针对性的偏好数据集开始。在狭窄领域中精心筛选的 2,000 个样本,通常优于横跨通用主题的 50,000 个嘈杂样本。
5.2 奖励作弊
这是任何 RLHF 系统中最大的实际风险。模型会找到方法来最大化奖励分数,而实际上并未提升输出质量。
实践中的例子:
- 写更长的回复(奖励模型通常偏好冗长的回答)
- 使用更复杂的词汇,而不顾是否合适
- 包含不必要的格式,因为奖励模型将这种格式与高质量相关联
缓解措施:定期对照留出的人工评估进行测试、KL 约束,以及集成奖励模型。
5.3 模型规模与计算资源
PPO 需要在内存中同时维护四个模型。对于一个 70B 参数的模型,这意味着大约需要纯推理阶段四倍的 GPU 内存。DPO 更轻量(仅需一个模型),但仍然需要生成偏好对数据。
实际约束:
- 对大模型(70B+)进行完整 RLHF 需要数百块 GPU
- DPO 可以在显著更少的硬件上运行
- 基于 LoRA 的 RLHF(QLoRA + DPO)使对齐在消费级硬件上成为可能
6、RLHF 算法对比
| 算法 | 年份 | 奖励模型 | RL 循环 | 复杂度 | 适用场景 |
|---|---|---|---|---|---|
| PPO | 2017 | 需要 | 完整 RL | 高 | 生产级对齐 |
| DPO | 2023 | 不需要 | 无 | 低 | 直接偏好学习 |
| GRPO | 2024 | 基于分组 | 简化 | 中 | 推理任务 |
| REINFORCE | 1992 (RL) | 可选 | 简单 RL | 中 | 重探索任务 |
GRPO(Group Relative Policy Optimization,分组相对策略优化)值得特别提及。它正获得越来越多的关注,因为它消除了 PPO 所需的价值模型(critic),转而使用基于分组的优势估计。这使其比 PPO 更简单,同时保留了 RL 的优势。DeepSeek-R1 大量使用了 GRPO。我们将在单独的文章中详细介绍它。
7、常见 RLHF 陷阱及如何避免
模型在变好之前会先变差
RLHF 初期往往会降低性能。模型尝试新的行为,其中大多数比 SFT 产出的结果更差。这是正常现象,但这意味着你需要耐心和良好的评估体系,以区分"暂时下滑"和"训练出了问题"。
应对方法:设置清晰的检查点。每 100-500 步在留出集上进行评估。在前 1000 步内不要更改训练设置,除非损失完全发散。
奖励模型过拟合
奖励模型对其排序变得过于自信,产生尖锐的梯度,从而破坏策略训练的稳定性。
应对方法:在 RM 训练中使用标签平滑。集成多个奖励模型。对 RM 的输出分布进行正则化。
偏好数据质量
RLHF 的效果上限取决于你的偏好数据质量。噪声数据导致噪声奖励信号,进而导致混乱的策略。
应对方法:在训练前投入精力保障数据质量。使用标注者间一致性指标。移除低置信度的偏好对。考虑将 AI 反馈(RLAIF)作为补充,而非替代。
8、RLHF 格局:我们的现状
RLHF 领域已经快速多元化。PPO 仍然是能够承担其复杂性的生产系统中的标准方法。DPO 使没有 RL 基础设施的团队也能进行对齐。GRPO 正作为推理密集型应用中一个有前景的折中方案崛起。
趋势是向更简单、更直接的对齐方法发展。但 RLHF 的核心洞见从未改变:要让语言模型真正有用,它们需要优化人类偏好,而不仅仅是模仿训练数据。
下一步发展方向:该领域正朝着以下方向推进:
- 可扩展监督(使用 AI 来辅助评估 AI)
- 多轮 RLHF(优化对话质量,而非单次回复)
- 过程奖励模型(奖励推理步骤,而非仅奖励最终答案)
目前,理解 PPO 和 DPO——何时使用、成本如何、需要什么——就能让你具备驾驭对齐领域所需的一切。
RLHF 并不是对齐研究的终点。但它目前是对这个问题最好的回答:我们如何构建不仅"知道"知识,还能真正产出人类所期望内容的语言模型?
原文链接: The RLHF Landscape - Aligning LLMs Beyond SFT
汇智网翻译整理,转载请标明出处