AI基石 | 对齐技术:从 RLHF 到 DPO —— 赋予大模型“三观”的终极进化

前言

如果 SFT(监督微调)后的模型是一个“懂事”的练习生,那么对齐后的模型就是一个“老练”的专家。

练习生虽然知道问答的格式,但依然存在两个致命伤:

  1. 幻觉(Hallucination):为了完成对话,它会一本正经地胡说八道。
  2. 偏见与有害性:它可能会输出歧视性言论,或教你如何制作危险物品。

要解决这些问题,靠“喂标准答案(SFT)”是不够的,因为标准答案穷尽不了所有错误。我们需要教给 AI 一种**“审美观”**,让它学会:在无数种可能的回答中,哪一个才是人类最喜欢的。

一、 RLHF:大模型世界的“胡萝卜加大棒”

RLHF (Reinforcement Learning from Human Feedback) 是让 ChatGPT 封神的底层技术。它的过程非常精妙,像是一个“套娃”系统。

1. 核心流程:三步走

  1. 采样与打分:让模型针对同一个问题生成 4-5 个不同的回答(有的啰嗦,有的简练,有的有错)。人类标注员对这些回答按好坏排序。
  2. 训练奖励模型 (Reward Model):训练一个“小模型”,专门学习人类的打分标准。它的目标是:看到好回答给高分,看到烂回答给低分。
  3. 强化学习优化 (PPO):这是最难的一步。让大模型不断生成回答,让“奖励模型”给它打分。大模型根据分数的高低,利用 PPO 算法 调整自己的参数,目标是拿到最高分。

2. 难点:PPO 算法的“娇贵”

RLHF 虽然强大,但 PPO(近端策略优化)算法在训练时极度不稳定。它对超参数非常敏感,且需要同时运行 4 个模型(演员模型、评论家模型、参考模型、奖励模型),显存压力极大。


二、 DPO:不需要“中间商”的直接进化

由于 RLHF 太复杂,斯坦福的研究者在 2023 年提出了 DPO (Direct Preference Optimization)。它现在已经成为微调开源模型(如 Llama 3)的主流对齐方案。

1. 核心逻辑:数学上的降维打击

DPO 的天才之处在于:它证明了我们可以绕过训练奖励模型,直接通过数学变换,将对齐目标转变为一个简单的二元分类问题

  • RLHF:人类排序 -> 训练奖励模型 -> 强化学习训练 -> 得到模型。
  • DPO:人类排序 -> 直接通过损失函数更新模型。

2. 损失函数的直觉

DPO 的 Loss Function 实际上在玩一个“拔河游戏”:

对于每一组偏好数据 (x,ygood,ybad)(x, y_{good}, y_{bad})(x,ygood,ybad)

  • 它会让模型生成 ygoody_{good}ygood 的概率变大
  • 它会让模型生成 ybady_{bad}ybad 的概率变小

三、 代码实战:使用 TRL 库进行 DPO 微调

在大模型开发的第二阶段(工具链阶段),我们主要使用 Hugging Face 的 trl 库。

1. 准备数据格式

DPO 需要的是“三元组”数据:prompt (问题), chosen (人类选的好答案), rejected (人类抛弃的烂答案)。

{
  "prompt": "如何评价人工智能的未来?",
  "chosen": "人工智能未来充满了机遇,但同时也面临伦理和就业的挑战...",
  "rejected": "AI 很快就会统治世界,人类将变成奴隶,哈哈哈哈。"
}

2. 核心训练代码

from trl import DPOTrainer
from transformers import TrainingArguments

# 1. 定义 DPO 配置
dpo_trainer = DPOTrainer(
    model=model,            # 已经过 SFT 后的模型
    ref_model=None,         # 参考模型,用来防止模型跑偏(通常可以设为原模型镜像)
    args=TrainingArguments(
        output_dir="./dpo_results",
        per_device_train_batch_size=2,
        learning_rate=5e-7, # DPO 的学习率极低,因为只是“微调分寸”
        remove_unused_columns=False
    ),
    beta=0.1,               # [核心参数] beta 越大,对人类偏好的忠诚度越高
    train_dataset=train_dataset,
    tokenizer=tokenizer,
)

# 2. 开始对齐
dpo_trainer.train()

四、 RLHF 与 DPO 的终极对比

特性 RLHF (PPO) DPO
训练稳定性 极不稳定,容易崩坏 非常稳定,类似分类任务
计算资源 极高(需运行多个模型) 较低(仅需当前模型+参考模型)
实现难度 顶级专家才能玩转 开发者友好
上限 理论上限更高,适合超大规模模型 在中小型模型上效果极佳

五、 结语:让 AI 拥有“温度”

对齐技术是 AI 迈向人类社会的最后一道关卡。

  • 预训练 给 AI 注入了知识
  • SFT 给 AI 穿上了工装
  • RLHF/DPO 给 AI 注入了三观

只有经历了对齐,AI 才会学会拒绝你的危险指令,学会在回答中表现得更加谦卑和客观。


下一阶段预告:

至此,我们已经完成了从数学基础到模型训练(微调/对齐)的完整闭环。接下来,我们要把这些“聪明”的模型装进真实的业务系统里。

我们将进入 第三阶段:领域方向选择。首当其冲的就是目前最火的 RAG(检索增强生成):如何让大模型不再胡说八道,而是查着你公司的内部文档来回答问题?

你想先看 RAG 的“外挂大脑”架构,还是想看如何用向量数据库(FAISS)管理你的知识库?

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐