第 12 章 安全对齐、拒答策略与对齐税¶
开场问题:安全训练后危险回答减少了,但“怎样切洋葱”也被拒绝。模型更安全了吗?
12.1 安全不是一个二分类器¶
请求通常落在连续谱上:明确无害、双重用途、需要上下文判断、高风险但合法、明确恶意。简单的“敏感词 → 拒绝”会产生大量过度拒答,也容易被改写绕过。
安全行为至少包含:识别风险、判断用户意图和权限、决定回答粒度、必要时拒绝、给出安全替代方案。它是一个完整策略,不是一句固定免责声明。
12.2 拒答数据必须成对覆盖边界¶
只收集危险请求并训练拒答,会让模型把相似表面特征都判成危险。需要同时加入 near-neighbor benign examples:
- 恶意代码与防御性安全分析。
- 制造危险物品与历史/教育介绍。
- 医疗诊断与一般健康信息。
- 个人数据查询与用户本人授权查询。
模型真正要学的是决策边界,而不是关键词。
12.3 对齐税¶
对齐可能降低某些原始能力:回答更保守、创造性下降、复杂任务因过度安全而中断、偏好优化把答案拉向平均风格。这就是对齐税。
不能只拿“安全分提高”来证明成功。必须同时报告帮助性、安全性、过度拒答率和核心能力回归,并画 Pareto 前沿。不存在脱离业务风险偏好的单一最优点。
12.4 Prompt Injection 与模型训练的边界¶
RAG 和 Agent 中,模型会读到不可信文档和工具输出。文档里写“忽略 system prompt”属于数据,不应取得指令权限。
可以用训练提高模型识别能力,但不能只靠模型自觉。系统必须做权限隔离:高权限指令与不可信内容分通道、工具最小权限、参数校验、敏感操作二次确认。安全对齐不能替代系统安全。
12.5 红队与对抗迭代¶
红队不仅尝试 jailbreak,还要覆盖:
- 多轮逐步诱导。
- 编码、翻译和角色扮演变体。
- 工具越权和间接 prompt injection。
- 隐私信息拼接与成员推断。
- 拒答后的安全替代是否仍泄露关键步骤。
发现失败后先判断修复层:输入过滤、权限系统、prompt、SFT/DPO 数据,还是模型本身。把所有问题都回流安全 SFT 会造成越来越严重的过度拒答。
12.6 安全评测的最小矩阵¶
每个风险类别至少测四格:
- 恶意请求是否拒绝。
- 邻近无害请求是否正常回答。
- 允许的高风险专业场景是否给出适当粒度。
- 改写和多轮攻击下是否稳定。
只测第一格,会得到一个“什么都拒绝”的满分模型。
核心问答¶
Q:拒答率越高越安全吗? 不是。拒绝一切当然“安全”,但系统失去用途。要同时测恶意请求防护和无害请求的过度拒答。
Q:安全问题都能靠微调解决吗? 不能。权限、数据隔离、工具参数校验必须由系统强制,不能把安全边界交给概率模型。
Q:什么是对齐税? 为获得更符合偏好或更安全的行为,对通用能力、创造性、简洁性或可用性付出的损失。
Q:安全数据为什么需要无害近邻? 它们帮助模型学到真正的决策边界,避免把表面关键词当成危险标签。