LLM对齐技术快速指南

RLHF 让模型学习人类在多种输出中更偏好哪些——这是一种更微妙但更强大的训练信号。

LLM对齐技术快速指南
微信 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,它如何映射到语言模型训练中,以及你在实践中会遇到的关键算法——PPODPO等。

我们会保持数学部分简洁,聚焦于直觉理解。后续文章将单独介绍GRPO方法。

准备好了吗?开始吧!👇

1、理解RL:RLHF的核心概念

在专门讨论RLHF之前,我们需要对强化学习(RL) 到底是什么有一个共同的理解。不是教科书上的定义,而是它在语言模型语境中如何运作。

1.1 RL ≠ LLM

在LLM的语境中,关于RL最重要的一点是:

RL不是一种模型架构。它是一个训练框架。一种教导模型通过做出一系列决策来最大化奖励信号的方法。模型从其行动的后果中学习,而不是从标注示例中学习。

你可以这样理解标准监督学习与RL的区别:

  • 跟着菜谱学做菜(监督学习:输入 → 输出配对)
  • 通过上菜并获得反馈来学做菜(RL:行动 → 奖励)

在第一种情况下,你在模仿示例。在第二种情况下,你在优化结果。

任何RL系统的关键组件包括:

  1. 智能体(Agent) —— 做出决策的主体(在这里就是LLM)
  2. 环境(Environment) —— 智能体运作的空间(token概率和文本生成过程)
  3. 动作(Action) —— 智能体所做的操作(生成下一个token,或一个完整回复)
  4. 状态(State) —— 智能体在决策前看到的信息(当前上下文/prompt + 已生成的token)
  5. 奖励(Reward) —— 反馈信号(表示输出质量的分数)
  6. 策略(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 模型初始化而来——用于预测人类偏好。

它的工作原理如下:

  1. 使用你的 SFT 模型对同一个提示生成多个回复
  2. 人类(或越来越多地使用自动化系统)将这些回复从最好到最差进行排序
  3. 奖励模型学习预测这些排序——为人类偏好的回复分配更高的分数
  4. 随着时间推移,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 的工作原理(直觉理解)

  1. 策略(你的 LLM)生成一个回复
  2. 奖励模型对其打分
  3. PPO 比较新策略生成该回复的概率与旧策略生成该回复的概率
  4. 如果比率太大(策略变化太剧烈),更新就会被裁剪
  5. 策略朝着更高奖励的方向迈出一小步、安全的步子
  6. 重复数千次

PPO 中的"近端"正是指这一约束——在每一步中保持新策略与旧策略接近(即"近端")。

RLHF 中完整的 PPO 目标函数还包含一个 KL 散度惩罚项。它的作用有两个:

  • 防止策略偏离 SFT 模型过远(保持语言质量)
  • 作为额外的安全措施,防止奖励作弊

最终结果:一个能够稳步改进而不会突然崩溃的策略。

PPO 非常稳健且被充分理解。但它很复杂:训练过程中需要维护四个独立的模型(策略模型、参考模型、奖励模型、价值模型——即"评判者")。这使得它成本高昂且难以调试。

4、DPO:直接偏好优化

直接偏好优化(DPO) 于 2023 年提出,极大地改变了 RLHF 的格局。其核心洞见:你实际上不需要强化学习来对齐语言模型。

4.1 DPO 的核心洞见

PPO 的做法是:

  1. 训练一个奖励模型
  2. 使用强化学习(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

汇智网翻译整理,转载请标明出处