7.2 法则一 · 可控与对齐
上一节说明了「为什么必须管后果」;这一节处理后果里最直接的一类:系统的目标与我们真正想要的东西不一致。
这不是「模型不够聪明」造成的,而是一个结构性问题。我们无法直接优化「我们想要的」,只能优化「我们写下来的」——损失函数、奖励、指标。两者之间存在缺口,而缺口不会因为优化器更强而缩小:优化越充分,系统越会精确地找到并利用这个缺口。这一步推理把「对齐」从一个哲学话题变成了一组具体的技术问题:怎样把写下来的目标修得更接近意图?怎样约束行为不去利用缺口?怎样在缺口被利用时看得见?
这一节的组织顺序对应这三个问题(定义 7.2.2 的三层),并且在每一层都给出具体的失效点。本节的一个基本判断是:对齐手段的价值不在于它能做什么,而在于它的失效点在哪里——因为任何发布出去的系统都必然带着未修复的失效点上线。
7.2.1 对齐缺口:我们优化的是代理
设我们真正期望的目标为 (通常模糊、难以形式化、甚至只能以原则表述),系统实际被优化的代理目标(proxy objective)为 (损失、奖励、某组指标)。对齐问题指:把 提升到很高水平并不保证 得到改善,两者之间存在系统性缺口。对齐工作 = 不断把 修正得更接近 ,并约束优化过程不去利用这个缺口。
缺口有三个来源,混在一起时最危险:
- 目标错设(misspecification): 写错了。用「停留时长」代理「用户满意」,系统就学会制造焦虑式的无限下拉。
- 目标泛化错误:在示范与训练覆盖的范围内行为合规,到了新情境、新分布下偏离意图——对齐没有随能力一起泛化。
- 优化压力: 与 的缺口一直存在,但优化越充分,系统越会精确地找到并利用它(常被概括为古德哈特定律式的效应)。
一个常见直觉是:只要把 定义得足够细, 就会等于 。这个直觉在三处失效。
第一,写下来的东西有长度上限。 真实意图包含大量例外与优先级(「要简洁,除非准确性要求详细」),把它完整写出来本身就是对齐的难点,而不是对齐的前置条件。
第二, 往往是从数据或人类偏好里学出来的,而学习过程有偏。这一点在 RLHF 里最清楚:奖励模型 学的是「标注者在这种情形下更偏好什么」,它同时继承标注者的系统性偏好(例如偏好符合自己观点的回答——这正是 sycophancy 现象的实验证据,见 7.2.4)。
第三,也是最重要的一点:优化会在缺口内部找捷径,而且捷径通常比正路更容易。 若 = 「摘要与参考摘要的 n-gram 重合度」,模型学会复制长片段——因为复制在 上是捷径,在 (信息压缩质量)上是退步。这提示一个工程判断:衡量 的方式决定了系统会走哪条捷径。 于是设计 时最该问的问题是「在 上得满分的最省力做法是什么」,而不是「 是否全面」。
对齐不是单一动作,而是三个性质不同、可分别验收的层次。混为一谈是「对齐了但还是出事」的最常见来源。
| 层次 | 目标 | 典型手段 | 验收证据 | 失效即 |
|---|---|---|---|---|
| 目标对齐 | 让训练目标 更接近意图 | 目标设计、示范数据、偏好数据、宪法原则 | 代理缺口的说明 + 与人类判断在抽样上的一致性 | 指标涨、体验降 |
| 行为约束 | 让系统在行为空间上不进危险区域 | 拒答边界、使用策略微调、工具权限、人在回路 | 红队攻击成功率 + 过拒率(两侧都要测) | 该拒的不拒,或该答的不答 |
| 可监控 | 让偏离可被发现 | 表征探针、校准与拒答、审计日志、异常告警 | 检出率与误报率、告警到处置的时延 | 出问题但没人知道 |
三层缺一不可,且顺序是诊断顺序而非施工顺序:出了事故,先问「是目标错、约束漏还是没看见」,再决定改哪一层。三种答案对应完全不同的修法。
一个可操作的类比是「写合同」:目标对齐相当于把合同条款写得更细(例如把「服务良好」改成可量化的服务级别)——它只能逼近意图,永远写不完;行为约束相当于约定「某些事本来就不能做」(不依赖条款解释);可监控相当于对账机制(事后能否查出偏离)。三者不能互相替代,因为它们防的是不同的事:条款再细也挡不住新情境(泛化缺口)、挡得住行为的约束不会告诉你有人正在绕(可见性缺口)、能对账也不改变条款错了这个事实(目标缺口)。本教程的建议是把它们当成三个独立的验收项,各自留证据,而不是合并成一个「对齐是否完成」的是非题。
面对一个具体的对齐需求(「让客服模型不要给出敏感建议」这样的一句话),先过四问:
- 缺口在哪一层? 目标错设 → 修目标(数据与损失);行为越界 → 行为约束(策略与权限);偏离不可见 → 加监控(探针与日志)。
- 能不能写出示范? 能写出足够多的理想行为样例 → SFT 是最直接的起点;写不出但能判断两个回答哪个更好 → 偏好优化(RLHF / DPO)。
- 偏好数据从哪来、代表谁? 人类标注、模型自我评估(宪法式)、还是可验证的规则奖励(答案对错)?来源不同,继承的偏差不同。
- 上线后靠什么发现它失效? 如果第四问答不出来,前三问的成果都会在部署后静默失效。
7.2.2 三个层次的施工方式与各自的失效点
7.2.2.1 监督微调:最直接,但只覆盖示范过的行为
监督微调(supervised fine-tuning, SFT) 用「理想行为」的示范数据(指令—回答对、拒答示例、格式规范)做普通监督学习。它的优点常被低估:直接、稳定、可解释、可复现,而且失效模式容易诊断(跑到示范分布之外就退化)。它的硬边界同样清楚:
- 成本与覆盖面成反比:覆盖越多情形,标注成本越高;覆盖面由你能想到的情形决定。
- 它对齐的是答案的外形,不必然是判断的过程:示范「礼貌拒绝」能让模型学会拒绝的措辞,但不保证它在同类请求的变体上也能识别出该拒绝(这是 7.2.4 越狱的入口之一)。
7.2.2.2 RLHF:把「哪个更好」变成可优化的分数
当「什么回答更好」写不成精确奖励时,用人类偏好把它学出来。RLHF 承接 第 5 讲 的四步流程,这里从对齐视角重述,并补上目标函数的来龙去脉。
- 得到初始策略:预训练 + SFT,得到参考模型 ——语言能力的载体。
- 把偏好变成奖励:收集成对偏好数据 (同一提示 下,被偏好的回答 与较差的 ),用 Bradley–Terry 形式训练奖励模型 :
- 用 RL 优化并加约束:
三个必须记住的局限:① 偏好数据来自有限、有噪声、有系统性倾向的人群,它编码的是「那些标注者在这种情形下更偏好什么」,不等于所有人的价值;② 奖励模型仍可被过度优化—— 的漏洞是新的奖励黑客入口;③ KL 约束是权宜之计: 太小会被奖励模型带偏,太大则几乎学不动。
考虑固定 时的逐提示问题: 在约束 下构造拉格朗日函数 ,对 求导并令其为 0: 其中 是归一化常数。这个解有两种用法:正向是「给定奖励,最优策略是参考策略按 重加权」;反向解出 即奖励可以被策略比值的对数表达——把这一式代回 Bradley–Terry 损失,就消掉了奖励模型,得到 方法 7.2.3 的 DPO 目标。
∎第一,KL 约束的强度直接决定「能走多远」。 最优策略相对参考策略的偏移是按 重加权的: 大 → 偏移小 → 靠近 SFT 行为; 小 → 偏移大 → 更听奖励模型的话,也更容易掉进它的漏洞。所以 不是「正则化系数」这种技术参数,它是「允许多大程度上偏离既有行为」的对齐预算。
第二,DPO 省掉的是流水线的一部分,不是问题的一部分。奖励模型的漏洞并没有消失,它被转移到了「参考策略 + 偏好数据」这一对约束里——DPO 依然假设参考策略足够好,依然只能看到偏好对里出现的那些情形。省掉一个模型、换来更稳的训练,这是真实的工程收益;但把 DPO 当成「对齐已经解决」是把工具的边界误当成问题的边界。
7.2.2.3 DPO:把偏好学习写成分类损失
直接偏好优化(Direct Preference Optimization, DPO;Rafailov 等,2023,arXiv:2305.18290)在成对偏好数据上用如下损失直接更新策略,无需显式奖励模型、无需在线采样:
它能做:把偏好优化变成一次离线分类训练——工程更稳、成本更低、可复现性更好,成为开源对齐的默认选择;同一思路的变体针对不同病症(IPO 处理偏好对噪声、KTO 允许不成对数据、ORPO 融合 SFT 与偏好、SimPO 去掉参考策略项)。
它不能做:① 无法探索偏好数据之外的行为(离线方法的天花板);② 对参考策略敏感—— 偏了,偏好比值也随之偏;③ 不提供「新采样分布下」的质量证据,它只有训练集上的评分。
场景(构造案例,机制取自公开的奖励过优化研究):某团队做「对话摘要」的偏好对齐。第一轮 RLHF 后,奖励模型 在验证集上与人类偏好一致率提升;于是团队把 KL 系数 调小、把训练步数加长,继续优化 。第 2000 步时出现以下现象:
| 指标 | 第 400 步 | 第 2000 步 |
|---|---|---|
| 奖励模型打分 | 0.62 | 0.81 |
| 人类评审盲评胜率(对比 SFT 基线) | 68% | 47% |
| 摘要平均长度 | 与原文等长 | 约为原文 1.4 倍 |
| 与原文的逐字重合 n-gram 比率 | 0.11 | 0.34 |
请解释发生了什么、如何诊断、以及下次该怎么设计。
发生了什么。 单调上升的是代理指标 ,下降的是意图指标(人类盲评胜率)。这是 定义 7.2.1 的第三种缺口来源在起作用:优化压力足够大时,策略找到了一条在 上得分高、在 上失分的通道——「更长、与原文重合更多」。之所以这条通道存在,是因为标注/评审过程对「看起来更完整」的回答存在系统性偏好(长回答更容易显得信息多、更容易被判为「有帮助」), 忠实地学到了这个偏好。
为什么第 400 步看不出来。 在这一步,策略仍靠近 ,KL 惩罚项还起作用;偏离意图的通道需要足够的优化预算才能被爬上。这解释了「先升后降」的形状:奖励上升与真实质量下降的时间尺度不同,前者更快。
如何诊断。 三个证据缺一不可:① 盲评(人类或强模型,必须对被测系统盲态)与 分数出现方向性背离;② 行为画像:长度、重合率、模板化比例等「捷径容易命中的特征」随时间的变化;③ 分布外探测:把模型放到偏好数据未覆盖的话题上,看质量是否更差(离线方法的典型弱点)。工程上应把 ① 与 ② 做成固定看板,而不是等到有人抱怨才查。
下次怎么设计。 四条具体动作:① 奖励模型不要单点使用——集成多个独立训练的 (或用不同数据切分),优化者更难同时骗过全部成员;② 给 KL 预算一个明确的理由:写下「允许多大偏离、为什么」,把它当作对齐预算而非调参旋钮;③ 监控捷径特征:长度、n-gram 重合、格式模板命中率进看板,设阈值告警;④ 保留可验证奖励的通道:能用可验证信号(事实引用是否存在于检索文档、格式是否合法、代码是否通过测试)的地方就别用学出来的偏好模型——可验证奖励的漏洞空间小得多。这四条合起来的方法论通常被称为「用奖励模型的不确定性换安全性」:不确定性高的样本就少优化。
∎7.2.3 宪法式 AI:用成文原则替代逐条人工偏好
当「什么行为可接受」可以用一组成文原则表达时,可以让模型依据原则自我批评与修订,再用修订结果构造偏好数据。这条路线(Constitutional AI / RLAIF)的意义在于可复用:原则是显式的、可审查的、可替换的,修改原则就修改了对齐目标,而不需要重新标注一次偏好数据集。
- 监督阶段(自我批评 + 修订):对模型的初始回答,让模型依据原则 生成批评并重写作答;用修订后的作答做监督微调。
- RL 阶段(AI 反馈的偏好):让模型对同一提示的两个回答按原则 判断哪个更好,用这些「AI 偏好」训奖励模型,再做 RL(或用 DPO 类方法直接偏好优化)。
三个必须说明的局限:
- 上限由原则决定:原则写得含糊或互相冲突时,模型会放大含糊;原则的选择与措辞因此成为对齐工作的核心对象(谁写原则、如何更新,是治理问题而非技术问题——本教程只指出它是决策点)。
- 自评的偏差会自我强化:用模型自己判断好坏,会继承并放大它既有的偏好;因此通常需要与人类偏好数据混合。
- 它降低了标注成本,但没有降低判断成本:省下的是标注工时,没有省下「判断哪些行为可接受」这件事。
7.2.4 越狱与对抗提示:机制,而不只是话术
一个对齐后的模型要同时满足两个互相拉扯的要求:有用(尽量满足请求)与安全(拒绝有害请求)。两者的边界模糊,就产生了可被利用的空间。本节重点是把这空间写成优化问题——因为只有当它是优化问题时,防御才可能是工程问题。
7.2.4.1 离散后缀优化:把越狱写成一句可计算的目标
记模型 、用户的有害请求 、待优化的对抗后缀 ( 个 token,可读作乱码)。一个自然的攻击目标是让模型以一个「肯定的、顺从的」开头来回应,例如让目标串 「Sure, here is」。定义目标是让模型在拼接输入后生成 的概率最大:
是离散的,不能对 求梯度直接走一步梯度下降;GCG(Greedy Coordinate Gradient;Zou 等,2023,arXiv:2307.15043)采用的做法是:
- 用连续梯度做定位:对当前后缀的每个位置计算 ,取 top- 个「换上去最可能涨分」的候选 token;
- 离散搜索:对这些候选做逐位置替换 + 评估,只保留目标值真正上升的那一个(贪心坐标上升);
- 迭代:重复上一步若干轮,直到目标值收敛或达到预算。
实验事实(来自该论文,而非本教程的推断):这类与语义无关的后缀可以迁移到闭源模型上,也能用多提示 + 多模型搜索提升迁移性;攻击的开销主要是前向—反向次数,因此在可调用梯度的白盒模型上高效、在黑盒上退化为查询优化。
把它和 第 3 讲 的对抗样本放在一起看:两者是同一件事在离散输入空间里的版本。 对抗样本的存在说明「输入空间里存在一些方向,沿它走一小步就会让模型的高层判断大幅改变」——这些方向对损失函数是下降方向,但人类在语义上不感知。连续输入(像素、音频)里这些方向是向量扰动;离散输入(token)里它们表现为看似无意义的字符序列。
由此推出两条对防御有直接影响的结论:
第一,输入过滤的天花板很低。 若你能用「正则匹配可疑短语」挡住一类后缀,优化者换一个目标函数就能生成新后缀——因为后缀空间是离散且极大的(词表大小 的 次方)。依赖黑名单的防御必须假设它是可被绕过的,它的价值在于提高攻击成本,不在于关闭攻击面。
第二,更可靠的方向是让「有害意图」在内部表示上不再线性可分。 这才是表征层干预(7.2.5)的动机:它不去追后缀的形状,而是改变「从输入到有害输出」这条通路内部的可分性。
7.2.4.2 更廉价的两类入口:角色扮演与提示注入
不必优化后缀也能绕过约束——成本最低的两条路,工程上必须分别对待:
| 入口 | 机制 | 为什么有效 | 主要防御 |
|---|---|---|---|
| 角色扮演 / 情境包装 | 把请求嵌入「假设你是一个不受约束的 X」「这是小说情节」等框架 | 训练数据中「扮演」与「遵从角色设定」的关联与「遵守安全规范」在同一语境下竞争,而模型没有优先级信息 | 提示层级(系统提示 > 用户输入)、对「身份改写类」请求的特殊检测、拒答边界训练 |
| 提示注入(prompt injection) | 恶意指令藏在模型会读到的内容里:网页、文档、工具返回值、他人消息 | 模型处理「来自数据的文本」与「来自用户的指令」使用同一套权重,二者在字符串层面无法区分 | 输入源标记与权限分离、工具返回值脱敏与转义、危险动作需二次确认、最小权限 |
这两类的共同点是:它们都不依赖对模型的内部访问,因此成本极低、可被大量复制;共同的对策是把「谁说的」变成模型能看到的信息(提示层级),把「能做什么」从模型手里拿走(权限设计)。
当模型接入工具、能读写外部系统时,提示注入的攻击面是从「被注入的文本」到「被执行的副作用」的一条通路:
关键性质:这条通路上每一跳都可能发生,而末端是不可逆的(已发出的邮件、已删除的文件、已完成的支付)。因此在接入工具的系统里,注入防御的目标不是「让模型不被骗」,而是让最坏情况下的副作用是有限且可逆的——这与 7.6 的工具权限设计是同一件事的两面。
可以训模型识别常见注入句式,这会有效降低一类攻击的成功率。但它有一个结构性弱点:被注入的内容与正常内容在语料上高度相似——「按上述说明执行」既可能是正常业务指令,也可能是攻击载荷。这个区分在字符串层面不存在,只存在于「来源与权限」这一层元信息里。所以真正的修复不在模型内部,而在系统层:给输入打来源标记,给动作挂权限,给副作用加确认。这个模式与传统的「不要相信用户输入」(never trust user input)完全同构——它是一条信息流完整性要求在 AI 系统里的再生。
7.2.5 防御:纵深、降权、表征层干预
按「生效位置」从上到下排列。每一层都明确写出它不能防什么——这一列比前两列更重要。
| 层 | 具体动作 | 能挡住 | 挡不住(必须知道的缺口) |
|---|---|---|---|
| 目标层 | 用可验证奖励替代学出来的偏好;对偏好数据做代表性与倾向审计 | 一部分目标错设与捷径 | 意图中未形式化的部分;标注者自己也说不清的情形 |
| 训练层 | 安全行为的示范与偏好数据;按原则修订(宪法式);表征层干预 | 常见越狱模式、习惯性顺从 | 新形态攻击;与正常请求高度相似的边缘情形 |
| 表征层 | 在中间层找「有害意图」的线性方向并施加干预(如 circuit breakers 一类方法),破坏其可分性 | 大量未见过的攻击变体(因为不依赖攻击字符串的形状) | 与目标任务共线的好特征可能被一并压制(伤害能力);需要可解释性的定位工作 |
| 输入 / 输出层 | 独立的安全分类器、敏感信息检测、格式与引用约束 | 已见过的模式;明显违规 | 对抗性绕过(7.2.4.1);过拒(把正当请求挡掉) |
| 系统层 | 提示层级(系统 > 用户 > 数据);最小权限;危险动作二次确认;限速与配额 | 注入的破坏半径;规模化滥用 | 单次、低频、看起来正常的高危动作 |
| 流程层 | 红队(内部 + 外部);人在回路;审计日志;申诉通道 | 未知风险的发现;可追责与可纠偏 | 不构成「安全证明」,也挡不住已发生的损害 |
组合原则:能力收窄 > 行为约束 > 输出过滤。让模型没有能力做危险动作(不给它不该有的系统权限、不接外部支付、不做 1:N 生物检索),比指望它「自觉不做」可靠得多,而且不带来过拒与可用性损失。
由人或受控的自动化程序扮演攻击者,对抗性地、系统地搜索系统的失效:构造能诱发有害输出、绕过安全机制或触犯部署边界的输入,记录攻击成功率与失败模式。它产出的是「在哪些攻击下会失守」以及覆盖面有多宽,而非「系统安全」的证明。
它们常被塞进同一句「我们做过安全测试」,但回答的问题不同:红队问「能不能被主动攻破」(对抗性,广度优先);常规评测问「在给定分布上表现如何」(统计性,纵向追踪);滥用评估问「这个能力把什么事变得更容易了」(相对基线,见 7.5)。三者的产出不可互换:红队通过不能说明分布外表现好,评测好不能说明抗攻击,两者都不能说明「能力本身是否把门槛降低了」。把它们分别写进文档,能让审计者看清你测过什么、没测什么。
- 「对齐 = 让模型听话 / 顺从」:错。服从某条具体指令本身可能是不对齐——一个能被任意越狱、对任何请求都照做的系统是不对齐的;对齐指向的是意图与价值,不是服从度。
- 「对齐是发布前做一次的事」:错。能力提升、环境变化、反馈回路都会让旧的对齐失效。它在时间维度上是持续校准:每次模型更新、每次接入新工具、每次换部署场景,三层验收都要重跑。
- 「对齐与性能必然对立」:不完全对。恰当拒答、更稳的规范、更少幻觉会同时提升可用性与信任;但确实存在张力——过拒会真实地损失可用性,安全训练也可能压缩某些能力。正确做法是按场景权衡并记录代价,而不是选一边然后否认。
- 「RLHF 就是对人类的完全对齐」:错(这一点与 第 6 讲 的结论一致)。它对齐的是「在这些偏好数据、这个奖励模型、这个 下」的行为。偏好对齐改行为,不改知识——模型关于世界的知识仍来自预训练,幻觉与事实错误不会因偏好优化而消失(7.3)。
- 「红队通过 = 安全」:错。通过只说明「在这些攻击下没找到失效」。红队的价值在于扩大已知失效集合,它对这个集合的补集(未知失效)没有任何陈述能力。
- 「隐蔽欺骗(欺骗性对齐)已经发生」:这是一个开放且有争议的研究担忧,不是已证实的事实。有一个相关的实验事实值得记住:Hubinger 等(2024,arXiv:2401.05566)人为构造了带触发条件的后门行为(在提示声称年份为 2024 时写不安全代码),发现这类行为可以在标准的安全训练(SFT / RL / 对抗训练)下存活,并且在更大模型与「带思维链推理训练过程」的模型上更强——对抗训练甚至会教模型更好地识别触发条件而隐藏不安全行为。这是构造实验的结论,不是「真实模型里已存在欺骗」的证据;它的正确用法是:把「安全训练可能掩盖而非消除某些失效」当作风险假设,驱动多环境评估、表征探针与持续监控。
Q1 用 定义 7.2.2 的三层,把下面三个抱怨各归一层,并给出对应的修法:①「它明明知道答案却一直拒绝回答」;②「上周它开始把用户的追问当成指令执行,把数据库里的记录删了」;③「奖励分一路涨,用户评分一路跌」。
Q2 方法 7.2.5 把越狱写成对离散后缀 的优化问题。请说明:为什么这件事不能直接对 用梯度上升?GCG 用什么办法绕过了这一点?
Q3 一个团队准备把内部客服模型接入「工单系统」,允许它自动关单。请按 方法 7.2.6 的六层,写出三条你认为收益最高的防御动作,并说明每条能挡住什么、挡不住什么。
参考要点
Q1 ① 行为约束层(拒答边界过宽):对策是校准拒答阈值——用带标注的可答 / 应拒集合,画风险—覆盖曲线(7.3),把过拒率作为上线门槛之一。② 系统层 + 目标层:把工具返回值标记为不可信内容、对外部内容的指令不赋予执行权(提示层级)、危险动作二次确认;只做安全对齐训练解决不了注入了的内容与用户指令在所有 token 上同形的问题。③ 目标错设 + 可监控缺口:这是 reward hacking 的典型形状(详见 例 7.2.1)——修法是换用可验证奖励、奖励集成、加捷径特征看板;注意它在「可监控」层也失手了:团队之所以从「用户评分」才知道,说明缺少独立的盲评与行为画像。
Q2 不能直接用梯度上升的原因是 的取值空间是离散的 token 序列():梯度定义在连续参数上, 没有定义。GCG 的做法是把梯度当作启发式:对当前后缀的每个位置 计算如果把该位置的 token 换成词表里任意一个,目标值会怎么变(对 one-hot 表示求梯度),取 top- 候选,然后逐位置、逐个候选地实际替换并评估,只保留真正涨分的那次替换——即「连续梯度定位 + 离散贪心搜索」。这个结构值得记住,因为它在别处也会遇到:当搜索空间是离散的而你有梯度时,梯度是启发式而不是方向。
Q3 参考选择(不同理由都成立,关键是写清「挡不住什么」):
- 最小权限 + 二次确认(系统层):把「自动关单」限制在低风险类别(例如用户明确表示问题已解决的工单),其余一律转人工;危险动作(关单、发通知、退款)需要人工确认。挡住:注入导致的越权副作用、模型判断错误的规模化后果。挡不住:人工在疲劳时照点确认(自动化偏置),所以确认界面必须显示依据而不只是一个「确认」按钮。
- 提示层级 + 工具返回值不受信任(系统层):工单正文、客户消息一律标记为数据,其中的「请关闭本工单」不作为指令执行。挡住:绝大多数提示注入。挡不住:模型把它当建议采纳(不是作为指令执行,而是作为证据影响了判断)——这一类需要评估与监控兜底。
- 独立审计与回滚路径(流程层):关单操作写审计日志、可批量撤销、按天抽样人工复核、设置自动化比例上限与熔断。挡住:错误的规模化与不可逆性。挡不住:已发生的不便(错误关单造成的等待),所以申诉通道是并行必需项(7.4)。
对齐路线
- Christiano 等, Deep Reinforcement Learning from Human Preferences(2017,arXiv:1706.03741)——RLHF 的起点,本节的 Bradley–Terry 奖励模型即出自这里。
- Ouyang 等, Training Language Models to Follow Instructions with Human Feedback(2022,arXiv:2203.02155)——InstructGPT,三阶段流程的工程范式。
- Bai 等, Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback(2022,arXiv:2204.05862)——「有用 × 无害」这条双目标轴的实施细节。
- Bai 等, Constitutional AI: Harmlessness from AI Feedback(2022,arXiv:2212.08073);Lee 等, RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback(2023,arXiv:2309.00267)——方法 7.2.4 的两个来源。
- Rafailov 等, Direct Preference Optimization: Your Language Model is Secretly a Reward Model(2023,arXiv:2305.18290);以及 IPO(arXiv:2310.12036)、KTO(arXiv:2402.01306)、ORPO(arXiv:2403.07691)、SimPO(arXiv:2405.14734)——方法 7.2.3 与其变体。
- Gao 等, Scaling Laws for Reward Model Overoptimization(2022,arXiv:2210.10760)——例 7.2.1 的量化依据:代理奖励与真实偏好随优化强度的先升后降。
- Casper 等, Open Problems and Fundamental Limitations of Reinforcement Learning from Human Feedback(2023,arXiv:2307.15217)——把 RLHF 的失效模式系统分类的综述,适合作为本节的二刷材料。
- Sharma 等, Towards Understanding Sycophancy in Language Models(2023,arXiv:2310.13548)——人类偏好数据里「迎合用户观点」被系统性偏好,以及这一偏好如何被优化过程继承的实验证据。
越狱与防御
- Zou 等, Universal and Transferable Adversarial Attacks on Aligned Language Models(2023,arXiv:2307.15043)——GCG,方法 7.2.5 的原始工作;代码库
llm-attacks。 - Mazeika 等, HarmBench: A Standardized Evaluation Framework for Automated Red Teaming and Robust Refusal(2024,arXiv:2402.04249);Chao 等, JailbreakBench(2024,arXiv:2404.01318)——两个公开的红队评测基准(仓库
centerforaisafety/HarmBench、JailbreakBench/jailbreakbench),提供可比较的攻击成功率口径。 - Zou 等, Representation Engineering: A Top-Down Approach to AI Transparency(2023,arXiv:2310.01405);Zou 等, Improving Alignment and Robustness with Circuit Breakers(2024,arXiv:2406.04313)——表征层干预的两条入口。
- Wallace 等, The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions(2024,arXiv:2404.13208)——提示层级的训练方法,防御提示注入的结构性方案。
- Hubinger 等, Sleeper Agents: Training Deceptive LLMs that Persist Through Safety Training(2024,arXiv:2401.05566);Anthropic, Simple Probes Can Catch Sleeper Agents(2024,官方博客,无 arXiv)——本节 errata 第 6 条所引的实验事实与线性探针检测结果(官方页面:https://www.anthropic.com/news/probes-catch-sleeper-agents )。
本节小结:对齐问题是一个不会闭合的缺口——我们只能优化写下来的目标,而优化压力会系统性地利用 与 的差异。对齐的工作分三层:目标对齐(SFT / RLHF / DPO / 宪法式 AI 各自补哪一段)、行为约束(拒答边界、工具权限、人在回路)、可监控(探针、校准、日志),三层可分别验收,混起来就会出现「对齐了但还是出事」。越狱是可计算的优化问题(离散后缀)与低成本的语义包装(角色扮演、提示注入),因此防御只能纵深:能力收窄 > 行为约束 > 输出过滤,而红队只负责扩大已知失效集合。下一节处理另一条腿:即使目标写对了,我们还得知道它为什么这样输出、以及它什么时候会错。