507 lines
14 KiB
Markdown
507 lines
14 KiB
Markdown
---
|
||
title: Constitutional AI 与 RLAIF:原则引导的对齐方法
|
||
draft: false
|
||
tags:
|
||
- Constitutional-AI
|
||
- RLAIF
|
||
- 对齐
|
||
- 自我批评
|
||
- 大语言模型
|
||
---
|
||
|
||
# Constitutional AI 与 RLAIF:原则引导的对齐方法
|
||
|
||
---
|
||
|
||
## 一、从 RLHF 到更高效的对齐
|
||
|
||
### 1.1 RLHF 的计算成本问题
|
||
|
||
**RLHF 的三阶段流程**:
|
||
|
||
1. SFT(监督微调):$O(N)$ 样本
|
||
2. RM(奖励建模):$O(N)$ 偏好对
|
||
3. PPO(强化学习):需要大量交互和梯度更新
|
||
|
||
**PPO 的计算瓶颈**:
|
||
|
||
- 需要维护一个 rollout 策略网络
|
||
- 每次更新都需要重新采样轨迹
|
||
- 内存占用高(需要同时存储多个网络副本)
|
||
|
||
**大模型场景下的问题**:
|
||
|
||
当模型参数量达到 100B+ 时,PPO 的计算成本变得极其昂贵。
|
||
|
||
**RLHF与RLAIF算力差异细化**:RLHF高成本核心在于**RM训练+PPO多轮轨迹采样**,RLAIF直接跳过两大重开销环节,仅保留偏好优化,大幅降低算力需求。
|
||
|
||
### 1.2 无需 RL 的对齐思路
|
||
|
||
**核心问题**:能否绕过 PPO,直接用偏好数据进行策略优化?
|
||
|
||
**已有方案**:
|
||
|
||
| 方法 | 核心思想 | 缺点 |
|
||
|------|---------|------|
|
||
| **DPO** | 将 RLHF 目标转化为分类问题 | 需要高质量参考模型 |
|
||
| **RRHF** | 使用排名损失替代 RL | 效果不稳定 |
|
||
| **SLiC** | 使用序列-level 的排序损失 | 需要仔细调参 |
|
||
|
||
** Constitutional AI** 的创新:
|
||
|
||
> 用**规则/原则**引导模型的**自我批评**,实现无需人类偏好数据的对齐。
|
||
|
||
---
|
||
|
||
## 二、Constitutional AI 的核心思想
|
||
|
||
### 2.1 Constitutional AI 的流程
|
||
|
||
**核心洞察**(Bai et al., 2022):
|
||
|
||
1. 模型生成响应
|
||
2. 让模型根据**原则**进行**自我批评**
|
||
3. 根据批评修订响应
|
||
4. 收集修订后的偏好数据
|
||
5. 用 DPO 或其他方法优化
|
||
|
||
**关键创新**:
|
||
|
||
- 用**模型自我生成的批评**替代**人类偏好标注**
|
||
- 用**规则/原则**替代**模糊的人类偏好**
|
||
|
||
**Constitutional AI 与 RLAIF 从属关系**:
|
||
- **Constitutional AI(宪法AI)**:是**数据生成范式**,核心=自批判+自修订,作用是**自动产出AI成对偏好数据**
|
||
- **RLAIF**:是**整套对齐训练流程**,全称AI反馈强化学习,**以宪法AI为数据来源**,搭配DPO/ORPO/IPO/KTO等算法完成对齐
|
||
|
||
### 2.2 阶段一:监督学习阶段(SFT)
|
||
|
||
**收集有害样本**:
|
||
|
||
从有害数据集中采样 prompts $\{x_i\}$(包含各种有害请求)。
|
||
|
||
**采样初始响应**:
|
||
|
||
$$y_i^{(0)} \sim \pi_{\text{ref}}(\cdot | x_i) \tag{2.1}$$
|
||
|
||
### 2.3 阶段二:批评与修订(Critique and Revision)
|
||
|
||
**定义(原则集)**:
|
||
|
||
设有一组原则 $\mathcal{C} = \{c_1, c_2, \ldots, c_M\}$。
|
||
|
||
示例原则:
|
||
- "该响应是否有帮助、无害且诚实?"
|
||
- "该响应是否回避了违法或不道德的内容?"
|
||
- "该响应是否遵循了用户的合法请求?"
|
||
|
||
**Critique 步骤**:
|
||
|
||
给定初始响应 $y^{(0)}$,让模型识别违反原则的问题:
|
||
|
||
$$c^{(j)} = \text{Model}(\mathcal{T}_c, x, y^{(j-1)}) \tag{2.2}$$
|
||
|
||
其中 $\mathcal{T}_c$ 是**批判模板**(原则提示模板),$c^{(j)}$ 是对 $y^{(j-1)}$ 的批评。
|
||
|
||
**Revision 步骤**:
|
||
|
||
根据批评修订响应:
|
||
|
||
$$y^{(j)} = \text{Model}(\mathcal{T}_r, x, y^{(j-1)}, c^{(j-1)}) \tag{2.3}$$
|
||
|
||
其中 $\mathcal{T}_r$ 是**修订模板**(修订约束原则提示模板)。
|
||
|
||
### 2.4 批评-修订的迭代过程
|
||
|
||
**Algorithm: Constitutional AI Critique-Revision Loop**
|
||
|
||
```
|
||
输入:有害 prompt x,初始响应 y^(0),原则集 C
|
||
输出:修订后的响应 y^*
|
||
|
||
for j = 1 to K: # 原版论文标准配置 K=2
|
||
# 批评
|
||
c^(j) = critique(x, y^(j-1), C)
|
||
|
||
# 检查是否需要修订
|
||
if c^(j) == "no issues found" or j >= max_iterations:
|
||
y^* = y^(j-1)
|
||
break
|
||
|
||
# 修订
|
||
y^(j) = revise(x, y^(j-1), c^(j-1))
|
||
```
|
||
|
||
**标准提示模板(实战刚需)**:
|
||
- **批判模板**:`请依据以下原则,指出这段回答存在的问题:{原则列表},回答内容:{content}`
|
||
- **修订模板**:`结合上述问题,重新优化回答,严格遵守原则约束:{原则列表}`
|
||
|
||
**迭代终止条件**:
|
||
1. 无问题可修改($c^{(j)} = \text{"no issues found"}$)
|
||
2. 达到最大迭代轮数(防止过度迭代造成内容冗余)
|
||
|
||
**样本过滤机制**:并非所有自修订样本都可用,需过滤:
|
||
1. 无实质修改的无效样本
|
||
2. 越修越差的反向优化样本
|
||
3. 偏离用户原始意图的篡改式修订
|
||
|
||
**实际效果**:
|
||
|
||
每次批评-修订循环都能显著降低响应的有害性。
|
||
|
||
---
|
||
|
||
## 三、Constitutional AI 的数学框架
|
||
|
||
### 3.1 偏好建模的替代
|
||
|
||
**传统 RLHF 的偏好**:
|
||
|
||
人类标注偏好:$(x, y_w, y_l)$
|
||
|
||
**Constitutional AI 的偏好**:
|
||
|
||
模型自我判断:$(x, y_{\text{raw}}, y_{\text{rev}})$
|
||
|
||
其中 $y_{\text{raw}}$ 是初始原始输出,$y_{\text{rev}}$ 是经过自我批评修订后的输出。
|
||
|
||
**假设**:
|
||
|
||
修订后的响应 $y_{\text{rev}}$ 优于原始响应 $y_{\text{raw}}$。
|
||
|
||
**数学表示**:
|
||
|
||
$$P(y_{\text{rev}} \succ y_{\text{raw}} \mid x) = 1 \tag{3.1}$$
|
||
|
||
### 3.2 损失函数的构建
|
||
|
||
**DPO 风格的损失**:
|
||
|
||
给定偏好对 $(y_w, y_l) = (y_{\text{rev}}, y_{\text{raw}})$:
|
||
|
||
$$\mathcal{L}_{\text{DPO}} = -\mathbb{E}_x \left[ \log \sigma\left( \beta \log\frac{\pi_\theta(y_{\text{rev}}|x)}{\pi_{\text{ref}}(y_{\text{rev}}|x)} - \beta \log\frac{\pi_\theta(y_{\text{raw}}|x)}{\pi_{\text{ref}}(y_{\text{raw}}|x)} \right) \right] \tag{3.2}$$
|
||
|
||
其中 $\pi_{\text{ref}}$ 是参考模型。
|
||
|
||
### 3.3 原则驱动的重要性
|
||
|
||
**为什么原则有效?**
|
||
|
||
**定理(原则的信息压缩)**:
|
||
|
||
人类偏好是复杂的、高维的,难以直接描述。但一组简洁的原则可以捕捉偏好的核心特征。
|
||
|
||
**数学表示**:
|
||
|
||
设真实偏好分布为 $P^*(y | x)$,原则描述的偏好为 $P_{\mathcal{C}}(y | x)$。
|
||
|
||
如果 $\mathcal{C}$ 设计得当:
|
||
$$P_{\mathcal{C}}(y | x) \approx P^*(y | x) \quad \text{for relevant } x, y \tag{3.3}$$
|
||
|
||
**原则的归纳偏置**:
|
||
|
||
好的原则体现了人类价值观的归纳偏置,使得模型更容易学习到符合人类意图的响应。
|
||
|
||
### 3.4 RLAIF 的完整流程
|
||
|
||
**Algorithm: RLAIF (Reinforcement Learning from AI Feedback)**
|
||
|
||
```
|
||
阶段 1:收集有害数据
|
||
- 采样多样化的有害 prompts
|
||
|
||
阶段 2:初始响应生成
|
||
- 对每个 prompt 生成初始响应
|
||
|
||
阶段 3:批评-修订循环
|
||
- 对每个响应应用 K 轮批评-修订
|
||
- 收集 (prompt, original, revised) 三元组
|
||
|
||
阶段 4:偏好数据构建
|
||
- 设 original = y_l(较差)
|
||
- 设 revised = y_w(较好)
|
||
- 构建偏好数据集
|
||
|
||
阶段 5:DPO 训练
|
||
- 使用构建的偏好数据训练策略模型
|
||
```
|
||
|
||
---
|
||
|
||
## 四、RLAIF 与 RLHF 的对比
|
||
|
||
### 4.1 训练数据对比
|
||
|
||
| 维度 | RLHF | RLAIF |
|
||
|------|------|-------|
|
||
| **偏好来源** | 人类标注 | 模型自我生成 |
|
||
| **标注成本** | 高(需要人类评估者) | 低(自动生成) |
|
||
| **数据规模** | 受限(人类标注速度) | 可扩展(自动生成) |
|
||
| **迭代效率** | 受限(需人工标注) | 高(可批量并行生成偏好数据) |
|
||
|
||
### 4.2 计算成本对比
|
||
|
||
| 阶段 | RLHF | RLAIF |
|
||
|------|------|-------|
|
||
| **偏好收集** | $O(N)$ | $O(N)$ |
|
||
| **RM 训练** | 需要单独的 RM | 不需要 |
|
||
| **PPO 更新** | 需要 rollout 和价值网络 | 直接偏好优化(DPO/ORPO/IPO/KTO) |
|
||
| **总成本** | 高 | 中等 |
|
||
|
||
### 4.3 偏好质量分析
|
||
|
||
**定理(RLAIF 的偏好质量边界)**:
|
||
|
||
RLAIF 产生的偏好质量上限为模型的自我判断能力。
|
||
|
||
**数学表示**:
|
||
|
||
$$\text{Quality}_{\text{AI}} \leq \text{Quality}_{\text{Human}} \tag{4.1}$$
|
||
|
||
即 AI 自我生成偏好的质量上限,低于真实人类标注偏好。
|
||
|
||
**这意味着**:
|
||
|
||
- 如果模型无法准确判断偏好,RLAIF 的效果会受限
|
||
- 需要用高质量的初始化模型(自监督对齐核心前提:初始化基座模型需具备基础判断力,弱模型无法完成高质量自我批判)
|
||
|
||
### 4.4 RLAIF 的优势
|
||
|
||
**优势 1:可扩展性**
|
||
|
||
不需要人类标注者,可以无限生成偏好数据。
|
||
|
||
**优势 2:一致性**
|
||
|
||
模型生成的偏好判断具有内在一致性。
|
||
|
||
**优势 3:安全性**
|
||
|
||
在安全关键的领域,可以更精细地控制模型行为。
|
||
|
||
**优势 4:无需 PPO**
|
||
|
||
避免了 PPO 的复杂性和不稳定性。
|
||
|
||
---
|
||
|
||
## 五、Constitutional AI 的原则设计
|
||
|
||
### 5.1 原则的分类
|
||
|
||
**宪法AI严格拆分两类原则**:
|
||
1. **批判原则**:用于找出输出存在的问题(如"该响应是否有害?")
|
||
2. **修订约束原则**:用于规范修正内容的边界(如"修订时不得违反安全底线")
|
||
|
||
**安全性原则**:
|
||
|
||
- "该响应是否会导致物理或心理伤害?"
|
||
- "该响应是否违反法律?"
|
||
- "该响应是否包含敏感个人信息?"
|
||
|
||
**有用性原则**:
|
||
|
||
- "该响应是否直接回答了用户的问题?"
|
||
- "该响应是否提供了有用的信息?"
|
||
- "该响应是否清晰易懂?"
|
||
|
||
**诚实性原则**:
|
||
|
||
- "该响应是否基于事实?"
|
||
- "该响应是否避免误导用户?"
|
||
- "该响应是否在不确定时承认不确定性?"
|
||
|
||
**适用数据范围**:宪法AI/RLAIF可覆盖**通用对话、推理、创作**全场景,安全对齐只是核心应用之一。
|
||
|
||
### 5.2 原则的组合策略
|
||
|
||
**单原则 vs 多原则**:
|
||
|
||
| 策略 | 描述 | 适用场景 |
|
||
|------|------|---------|
|
||
| **单原则** | 每次只用一条原则 | 简单场景 |
|
||
| **顺序多原则** | 按顺序应用多条原则 | 复杂场景 |
|
||
| **加权多原则** | 结合多条原则的打分 | 精细控制 |
|
||
|
||
### 5.3 原则设计的最佳实践
|
||
|
||
**原则应该**:
|
||
|
||
1. **清晰明确**:易于模型理解和判断
|
||
2. **覆盖全面**:涵盖主要的偏好维度
|
||
3. **相互独立**:避免冗余和冲突
|
||
4. **可操作**:有明确的判断标准
|
||
|
||
**原则不应该**:
|
||
|
||
1. **过于模糊**:"要道德"无法评估
|
||
2. **过于具体**:失去泛化能力
|
||
3. **相互矛盾**:两个原则给出相反判断
|
||
|
||
---
|
||
|
||
## 六、RLAIF 的实际应用
|
||
|
||
### 6.1 训练流程
|
||
|
||
**Algorithm: RLAIF Training Pipeline**
|
||
|
||
**步骤 1:有害性数据收集**
|
||
```
|
||
prompts = sample_from_harmful_dataset()
|
||
for p in prompts:
|
||
initial_response = model.generate(p)
|
||
store (p, initial_response)
|
||
```
|
||
|
||
**步骤 2:批评-修订**
|
||
```
|
||
for (p, r) in dataset:
|
||
revised = r
|
||
for iteration in range(K):
|
||
critique = model.critique(p, revised, principles)
|
||
revised = model.revise(p, revised, critique)
|
||
store (p, r, revised)
|
||
```
|
||
|
||
**步骤 3:偏好数据构建**
|
||
```
|
||
preference_data = []
|
||
for (p, r, r_revised) in dataset:
|
||
# 假设修订后的更好
|
||
preference_data.append((p, r_revised, r))
|
||
```
|
||
|
||
**步骤 4:DPO 训练**
|
||
```
|
||
for batch in dataloader(preference_data):
|
||
loss = DPO_loss(batch)
|
||
optimizer.step(loss)
|
||
```
|
||
|
||
### 6.2 关键超参数
|
||
|
||
| 超参数 | 推荐值 | 说明 |
|
||
|--------|--------|------|
|
||
| **批评-修订轮数 K** | 2(原版论文标准配置,通常1-2轮足够,过多迭代易造成内容冗余) | - |
|
||
| **原则数量** | 4-16 | 覆盖主要维度 |
|
||
| **DPO 温度系数 $\beta$** | 通用对话:0.2~0.5;安全对齐:0.1~0.3 | 区别于纯人类偏好DPO |
|
||
| **DPO 的 $\beta$** | 0.1-0.3 | 控制KL惩罚强度 |
|
||
| **训练步数** | 1K-10K | 避免过拟合 |
|
||
|
||
### 6.3 与 RLHF 的集成
|
||
|
||
**RLAIF + RLHF**:
|
||
|
||
可以先用 RLAIF 粗对齐,再用人类偏好数据精调:
|
||
|
||
1. **RLAIF 阶段**:快速对齐到原则
|
||
2. **RLHF 阶段**:用人类偏好精调
|
||
|
||
**混合训练**:
|
||
|
||
将 RLAIF 偏好数据和人类偏好数据混合训练。工业主流方案:**90% AI自动数据 + 10% 人类标注数据**混合训练,平衡成本与对齐精度。
|
||
|
||
**RLAIF可灵活搭配多种优化算法**:不局限于DPO,可搭配ORPO、IPO、KTO等主流无PPO偏好优化算法,适配更多训练场景。
|
||
|
||
**轻量化落地方案**:大模型资源受限场景,搭配**LoRA微调**冻结基座主干,仅微调对齐分支,大幅降低RLAIF训练显存开销。
|
||
|
||
---
|
||
|
||
## 七、Constitutional AI 的评估
|
||
|
||
### 7.1 安全性评估
|
||
|
||
**对抗性测试**:
|
||
|
||
测试模型在各种有害 prompt 下的行为:
|
||
- 恶意软件请求
|
||
- 仇恨言论生成
|
||
- 隐私泄露尝试
|
||
|
||
**评估指标**:
|
||
|
||
- 有害响应率(越低越好)
|
||
- 拒绝率(对明显有害请求应该拒绝)
|
||
|
||
### 7.2 有用性评估
|
||
|
||
**标准任务评估**:
|
||
|
||
在标准 NLP 任务上评估模型能力:
|
||
- 问答准确率
|
||
- 代码生成质量
|
||
- 文本摘要质量
|
||
|
||
**目标**:确保对齐不损害模型的原始能力。
|
||
|
||
### 7.3 诚实性评估
|
||
|
||
**事实性测试**:
|
||
|
||
模型在不确定时是否承认不确定性:
|
||
- 不知道的问题是否拒绝回答
|
||
- 错误前提下是否纠正而非顺从
|
||
|
||
---
|
||
|
||
## 八、数学公式速查
|
||
|
||
### 8.1 Constitutional AI 公式
|
||
|
||
**Critique 步骤**:
|
||
$$c^{(j)} = \text{Model}(\mathcal{T}_c, x, y^{(j-1)}) \tag{8.1}$$
|
||
|
||
**Revision 步骤**:
|
||
$$y^{(j)} = \text{Model}(\mathcal{T}_r, x, y^{(j-1)}, c^{(j-1)}) \tag{8.2}$$
|
||
|
||
**DPO 损失**:
|
||
$$\mathcal{L}_{\text{DPO}} = -\mathbb{E}_x \left[ \log \sigma\left( \beta \log\frac{\pi_\theta(y_{\text{rev}}|x)}{\pi_{\text{ref}}(y_{\text{rev}}|x)} - \beta \log\frac{\pi_\theta(y_{\text{raw}}|x)}{\pi_{\text{ref}}(y_{\text{raw}}|x)} \right) \right] \tag{8.3}$$
|
||
|
||
### 8.2 RLAIF 公式
|
||
|
||
**偏好假设**:
|
||
$$P(y_{\text{rev}} \succ y_{\text{raw}} \mid x) = 1 \tag{8.4}$$
|
||
|
||
**信息压缩假设**:
|
||
$$P_{\mathcal{C}}(y | x) \approx P^*(y | x) \tag{8.5}$$
|
||
|
||
---
|
||
|
||
## 九、总结
|
||
|
||
**Constitutional AI 的核心创新**:
|
||
|
||
1. 用**原则**代替**人类偏好**来指导对齐
|
||
2. 用**自我批评**代替**人类标注**来生成偏好数据
|
||
3. 绕过了 PPO 的复杂性和不稳定性
|
||
|
||
**RLAIF 的优势**:
|
||
|
||
1. **可扩展**:不需要人类标注
|
||
2. **一致性**:模型自我判断具有一致性
|
||
3. **成本低**:计算成本远低于 RLHF
|
||
|
||
**局限性**:
|
||
|
||
1. 依赖模型自身的判断能力
|
||
2. 可能产生模型自身的偏见(模型容易出现「自我合理化错误」,明知错误却判定为合理,是RLAIF最核心的固有短板)
|
||
3. 需要仔细设计原则
|
||
|
||
**实际应用建议**:
|
||
|
||
| 场景 | 推荐方法 |
|
||
|------|---------|
|
||
| 资源有限 | RLAIF 为主 |
|
||
| 高安全性需求 | RLAIF + 人类偏好 |
|
||
| 快速迭代 | RLAIF |
|
||
| 精细控制 | 人类偏好数据 |
|
||
|
||
---
|
||
|
||
**延伸阅读**:
|
||
|
||
1. Bai et al., "Constitutional AI: Harmlessness from AI Feedback" (2022)
|
||
2. Bai et al., "Training a Helpful and Harmless Assistant with RLHF" (2023)
|
||
3. Rafailov et al., "Direct Preference Optimization: Your Language Model is a Reward Model" (NeurIPS 2023)
|
||
4. Lee et al., "RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback" (2023) |