LLM 的对齐与安全:RLHF 简介
模型预训练出来是"续写机器",能变成"有用的助手"靠的是对齐——RLHF/DPO 那一套。本文用大白话讲清对齐在干什么、RLHF 和 DPO 的区别、为什么对齐既是"安全"也是"能力",以及作为应用开发者理解对齐边界的重要性——知道模型为什么有时"过度拒绝"、怎么和它相处。
本文要点
- 主题聚焦:AI、大模型
- 适合人群:独立开发者、全栈工程师、AI 应用开发者
- 核心价值:快速理解背景、实践路径、常见误区和工程建议
你用的 Claude/GPT,预训练出来时其实只是个"超级续写器"——给它任意开头,它续写下去,可能续出有害内容、可能答非所问。它能变成"有用的助手",靠的是对齐(Alignment)——RLHF/DPO 这套训练。理解对齐,你才能理解模型为什么会"过度拒绝"、怎么更好地用它。
一、预训练模型的"原始状态"
预训练(next-token prediction)训练出的模型,能力很强但"不懂规矩":
- 它学到的是"互联网文本的统计规律",包括谣言、偏见、有害内容。
- 它不知道"什么该说、什么不该说"。
- 它不会"回答问题",只会"续写文本"(你问"你好",它可能续写下一句"你好"而不是回答)。
对齐就是在这个基础上,把它**对齐到"有用、诚实、无害"(HHH)**的助手行为。
二、对齐在干什么
对齐的核心:让模型的行为符合人类期望——有用(帮用户)、诚实(不瞎编)、无害(不帮倒忙)。
它解决三件事:
- 指令遵循:让模型"回答问题"而非"续写"。
- 价值观:不该做的(教制毒、歧视)拒绝。
- 风格:用助手的口吻,而非网上随便的语气。
三、RLHF:经典对齐方法
RLHF(Reinforcement Learning from Human Feedback) 是 ChatGPT 带火的方法,三步:
1. SFT(监督微调)。人工写一批"高质量问答"示范,让模型学着"像助手一样回答"。这步让模型从"续写器"变"初步的助手"。
2. 训练奖励模型(RM)。让人工对模型输出的多个版本排序("这个回答好、那个差"),用这些偏好训练一个"打分模型"——它学会"什么样的回答人类觉得好"。
3. RL 优化。用强化学习(PPO)让主模型"追求奖励模型的高分"——生成 RM 更喜欢的回答。这步把模型推向"人类偏好"。
RLHF 效果好,但复杂、不稳、贵(训 RM + PLO 调参难)。
四、DPO:更简单的替代
DPO(Direct Preference Optimization) 是后来流行的简化方法:
- 不单独训 RM,直接用偏好数据("A 比 B 好")通过一个简化的目标优化主模型。
- 数学上等价于某种 RL,但实现简单、稳定、省资源。
现在很多对齐用 DPO(或其变体)替代 RLHF——效果接近,工程门槛低很多。
五、对齐是安全,也是能力
对齐不只关乎"安全"(无害),也关乎"能力"(有用):
- 没对齐的模型:能续写,但不会好好答问题、不遵循指令、风格混乱——作为助手几乎不可用。
- 对齐后的模型:遵循指令、用助手口吻、该拒的拒——变成可用产品。
所以对齐既是"加安全约束",也是"加助手能力"。你用的所有旗舰模型的能力感,一大部分来自对齐,不是纯预训练。
六、过度对齐:模型的"过度拒绝"
对齐的副作用:过度拒绝(over-refusal)。模型为了"无害",把无害的请求也拒了。
经典例子:
- "怎么杀死进程"(编程语境)→ 模型可能拒(误判"杀"有害)。
- "帮我写个反派角色的台词"→ 可能拒(误判"反派"有害)。
原因:对齐时见了一堆"有害拒绝"样本,模型学得过度保守。各家都在调这个平衡(Claude 较克制、有的模型较敏感)。
作为应用开发者,遇到过度拒绝的应对:
- prompt 更明确语境。"在编程场景,'kill process' 指终止进程,帮我写这段代码"——给足无害语境。
- 换更宽松的模型/版本(不同模型对齐策略不同)。
- 系统 prompt 设定角色。"你是编程助手,所有请求都在编程语境"。
- 自部署开源模型(自己控制对齐程度,但失去了商业模型的对齐保护,要自己负责安全)。
七、对齐与"越狱"的猫鼠游戏
用户试图绕过对齐("越狱"/jailbreak),让模型说它不该说的。对齐团队不断打补丁,用户不断找新招——经典的猫鼠。
作为应用开发者:
- 别依赖模型对齐做你的安全边界。模型对齐是"通用保护",不是你应用的安全策略。你的应用该有自己的安全层(参考提示注入文章)。
- 对齐是动态的。模型升级,对齐行为可能变——你的 prompt 今天能用,明天可能被拒。要测。
八、对应用开发者的实际意义
理解对齐,对开发者的实际价值:
- 理解模型行为边界。知道哪些请求会被拒、为什么——避免在和模型较劲上浪费时间。
- 更好地写 prompt。给模型清晰的无害语境,减少过度拒绝。
- 选模型。不同模型对齐策略不同(有的严有的松),按场景选。
- 做自己的安全层。不把应用安全寄托在模型对齐上。
- 微调时尊重对齐。微调可能"破坏"对齐(让模型变不安全),要评估。
小结
对齐(RLHF/DPO)是把预训练的"续写器"变成"有用助手"的关键训练:
- 解决:指令遵循、价值观、风格。
- RLHF:SFT + 奖励模型 + RL,经典但复杂。
- DPO:直接偏好优化,更简单稳定,渐成主流。
- 副作用:过度拒绝(无害请求被误拒)。
- 对开发者:理解边界、写好 prompt、做自己的安全层、别依赖模型对齐做产品安全。
记住一句:你用的"好用的模型",能力一半来自预训练,一半来自对齐。 理解对齐,你不再把模型当黑盒"它怎么这样",而是知道"它为什么这样、我该怎么和它相处"——这是从"会用 AI"到"懂 AI"的差别。
Related