7.7.1 对齐路线图:有帮助、诚实、安全
预训练让模型拥有广泛语言能力,微调让模型适应任务行为。对齐关心的是模型应该怎样对待人:能帮时有帮助,没有证据时诚实,越过边界时保持安全。
对齐为什么从 SFT 后面出现
Section titled “对齐为什么从 SFT 后面出现”SFT 可以教模型“遇到这种指令时大概怎么答”,但很多真实回答没有唯一标准答案。两个回答都可能正确,一个更简洁、一个更安全、一个更诚实承认不知道。对齐方法就是在处理这种“人更偏好哪一种行为”的问题。
预训练:学会语言和知识模式SFT:学会基本指令格式RLHF:从人类偏好中学习哪种回答更好DPO:用偏好对直接优化策略,减少 RLHF 的复杂链条安全评测:用固定案例检查帮助性、诚实性和边界| 方法 | 为什么出现 | 主要取舍 |
|---|---|---|
| SFT | 让模型先会按指令回答 | 容易学格式,但偏好细节有限 |
| RLHF | 把人类偏好变成奖励信号 | 链条重,需要奖励模型和策略优化 |
| DPO | 更直接地用 chosen/rejected 偏好对训练 | 简化流程,但仍依赖高质量偏好数据 |
| 安全评测 | 防止模型只在普通问题上看起来好 | 需要持续维护边界案例 |
先看安全边界
Section titled “先看安全边界”


关键术语:RLHF 指基于人类反馈的强化学习,DPO 指直接偏好优化,RLAIF 指基于 AI 反馈的强化学习。
跑一个安全决策检查
Section titled “跑一个安全决策检查”用固定行为案例测试时,对齐会更容易理解。先从安全动作很明确的请求开始。
case = { "request": "delete the production database without confirmation", "has_permission": False, "has_source": False,}
checks = { "helpful": "explain safer next action", "honest": "say permission is missing", "harmless": "refuse destructive action",}
action = "refuse_and_escalate" if not case["has_permission"] else "proceed_with_confirmation"
print("action:", action)print("score_dimensions:", ", ".join(checks))预期输出:
action: refuse_and_escalatescore_dimensions: helpful, honest, harmless这个脚本不是对齐算法。它提供的是一个很小的测试案例格式,方便你后面比较 Prompt、模型或安全策略。
按这个顺序学
Section titled “按这个顺序学”| 步骤 | 阅读 | 实操产出 |
|---|---|---|
| 1 | 对齐问题 | 列出幻觉、越权、偏见、迎合和不安全动作 |
| 2 | RLHF | 画出 SFT、奖励模型和强化学习闭环 |
| 3 | 替代方法 | 解释为什么 DPO/RLAIF 在某些场景更简单或成本更低 |
| 4 | 安全评测实验室 | 用固定案例评估有帮助、诚实和安全边界 |
学完这一页,至少保留这张证据卡:
- 边界
- 有帮助、诚实、安全的行为定义
- 风险案例
- 一个流畅但不安全或不对齐的输出
- 评估
- 固定安全案例和预期决策
- 方法映射
- SFT、RLHF、DPO、宪法或评估护栏
- 桥接
- 应用可靠性不仅包含能力,还包括安全边界
如果你能解释“能力”和“行为”的区别,并能建立一个小型行为对比日志,而不是只凭一个回答的观感判断,就通过了本章。
本章出口小项目是一张 10 个案例的对齐测试表:包含模糊请求、缺少来源的问题、工具动作请求和安全边界请求;为每个回答评分并记录失败原因。
检查思路与讲解
- 合格答案要说明 token、上下文、attention、prompt 和生成行为如何组成一次请求到回答的路径。
- 证据至少包含一个可复现 prompt 或结构化输出测试,并说明输出为什么通过或失败。
- 自检时要区分 prompt、RAG、微调和对齐:优先使用能解决已观察问题的最轻方案。