SCANS: Mitigating the Exaggerated Safety for LLMs via Safety-Conscious Activation Steering
SCANS: Mitigating the Exaggerated Safety for LLMs via Safety-Conscious Activation Steering
AAAI
一、论文概览
1. 核心问题
安全对齐(Safety Alignment)是大型语言模型(LLMs)抵御恶意指令威胁的关键,但现有安全对齐LLMs普遍存在过度安全(Exaggerated Safety)问题:因良性查询与有害查询在词汇层面相似(如“kill”在“关灯”场景中无恶意),模型会误拒绝良性查询,严重削弱其“有用性(Helpfulness)”。
现有解决方案存在局限:
- 训练基方法:过度安全相关训练数据稀缺,对“词汇层面有害但语义良性”的查询仍有高误拒率;
- 无训练基方法:依赖解码阶段的token分布对比,推理时额外成本高且缓解效果差。
2. 主要贡献
- 提出无训练、无推理额外成本的表示工程方法SCANS(Safety-Conscious Activation Steering),通过激活引导控制模型拒绝行为,无需微调或额外解码操作;
- 发现LLM中间层提取的拒绝引导向量(Refusal Steering Vectors) 会提升“cannot”“reject”等拒绝token的生成概率,引导该层激活可显著降低误拒率;
- SCANS在缓解过度安全的同时,不损害模型的“足够安全(Adequate Safety)”与通用能力:在XSTest和OKTest基准上,平均误拒率分别降低24.7%和26.3%,对有害查询的防御能力及困惑度、MMLU准确率等指标几乎无波动。
3. 研究方法
SCANS的核心逻辑是“从LLM隐藏状态中挖掘安全相关信息,通过定向激活引导平衡‘过度安全’与‘足够安全’”,分为三个关键步骤:
- 提取拒绝引导向量:利用有害查询集$Q^-$与良性查询集$Q^+$的激活差,生成各层拒绝引导向量,捕捉“从‘愿意回答’到‘拒绝回答’的方向”;
- 锚定安全关键层:通过词汇投影(结合PCA与输出嵌入矩阵点积)发现,中间层的引导向量与拒绝token(如“cannot”“reject”)关联最强,确定中间层为安全关键层;
- 识别引导方向:设计基于隐藏状态转移的相似度分类方法$\sigma(q)$:将查询$q$与正向响应(如“Sure”)拼接,计算其隐藏状态转移与“参考伤害方向”的余弦相似度,判断$q$为良性(反向引导)或有害(正向引导),最终调整安全关键层的激活。
二、各章节详解
1. 引言(Introduction)
- LLMs安全对齐背景:LLMs虽在NLP任务中表现突出,但预训练数据中的有害内容使其易遵循恶意指令;安全对齐技术(如RLHF、监督微调)虽提升安全性,却引发过度安全问题(图1示例:“kill the lights”被误判为有害而拒绝)。
- 现有方法缺陷:训练基方法受限于数据稀缺,无训练基方法(如提示工程、对比解码)成本高或效果差。
- 研究动机:基于“LLM表示空间包含安全信息”的观察,通过分析有害查询触发的隐藏状态变化,设计激活引导方法SCANS,解决过度安全问题。
2. 相关工作(Related Works)
| 研究方向 | 核心内容 | 与本文的关联 |
|---|---|---|
| LLM安全(LLM Safety) | 聚焦有害内容检测与缓解,主流方法为监督微调、RLHF,但易导致过度安全(过度防御)。 | 本文针对“过度安全”这一安全对齐的副作用展开研究。 |
| 过度安全(Exaggerated Safety) | 由Röttger等人首次提出,指对齐模型误拒良性查询;现有方法在XSTest、OKTest等基准上表现差。 | 本文提出的SCANS是首个基于表示工程的无训练方法,显著优于现有基准。 |
| 表示工程(Representation Engineering) | 通过操纵模型表示控制行为(如真实性、情感),常用“均值差”方法提取目标表示。 | 本文沿用“均值差”提取拒绝引导向量,首次将其用于缓解过度安全问题。 |
3. 方法论(Methodology)
3.1 提取拒绝引导向量(Inducing the Refusal Steering Vectors)
- 核心逻辑:有害查询$Q^-$会触发模型的防御机制(激活偏向“拒绝”),良性查询$Q^+$会触发“帮助”响应(激活偏向“回答”),二者的激活差即为“拒绝引导向量”。
- 数学公式:对第$l$层,拒绝引导向量$v_r^l$定义为:
$$v_{r}^{l}=\frac{1}{\left|Q^{-}\right|} \sum_{q^{-} \in Q^{-}} a^{l}\left(q^{-}\right)-\frac{1}{\left|Q^{+}\right|} \sum_{q^{+} \in Q^{+}} a^{l}\left(q^{+}\right)$$
其中$a^l(q)$表示查询$q$在第$l$层最后一个token的激活值。 - 物理意义:$v_r^l$代表“从良性回答倾向到有害拒绝倾向”的方向,减去该向量可削弱模型的误拒倾向。
3.2 锚定安全关键层(Anchoring the Safety-Critical Layers)
-
核心逻辑:若对所有层引导,可能破坏模型输出连贯性;需筛选对拒绝行为影响最大的“安全关键层”。
-
筛选方法:
- 将模型层分为前层(Former Layers)、中间层(Middle Layers)、后层(Latter Layers);
- 对各层$v_r^l$做PCA提取第一主成分,与输出嵌入矩阵(LM Head)做点积,得到“词汇投影”(反映该层激活与token的关联);
-
关键发现(表1):中间层的词汇投影中,“rejected”“cannot”等拒绝token占比最高,证明中间层是安全关键层,仅引导中间层即可平衡“缓解过度安全”与“保留模型能力”。

3.3 识别引导方向(Identifying the Steering Direction)
- 核心挑战:需先判断查询$q$是否为良性,才能确定“反向引导(削弱拒绝,用于良性$q$)”或“正向引导(增强拒绝,用于有害$q$)”。
- 解决方案:基于“隐藏状态转移”的分类方法$\sigma(q)$,步骤如下:
- 构造输入$q+r_{pos}$($r_{pos}$为正向响应,如“Sure”),提取两个激活:
- $a_p^l$:$q$部分最后一个token的激活(反映模型对$q$的初始判断);
- $a_e^l$:$q+r_{pos}$整体最后一个token的激活(反映模型对“$q$+正向响应”的判断);
- 计算隐藏状态转移$a_t^l(q)$:
$$a_{t}^{l}(q)=a_{p}^{l}\left(q+r_{p o s}\right)-a_{e}^{l}\left(q+r_{p o s}\right)$$
(良性$q$的$a_t^l$偏向“帮助方向”,有害$q$的$a_t^l$偏向“伤害方向”); - 计算参考伤害方向$d_{harm}^l$(所有有害查询$q^-$的$a_t^l$均值):
$$d_{harm }^{l}=\frac{1}{\left|Q^{-}\right|} \sum_{q^{-} \in Q^{-}} a_{t}^{l}\left(q^{-}\right)$$ - 计算相似度$s_q$($a_t^l(q)$与$d_{harm}^l$的余弦相似度均值):
$$s_{q}=\frac{1}{|\mathcal{L}|} \sum_{l \in \mathcal{L}} \cos \left(a_{t}^{l}(q), d_{harm }^{l}\right)$$ - 分类规则:若$s_q < T$($T$为阈值,如Llama2-7b-chat设为0.75),则$q$为良性,$\sigma(q)=-1$(反向引导);否则为有害,$\sigma(q)=1$(正向引导)。
- 构造输入$q+r_{pos}$($r_{pos}$为正向响应,如“Sure”),提取两个激活:
- 激活引导:对安全关键层,调整后的激活为:
$$\tilde{a}^{l}=a^{l}+\sigma(q) \cdot \alpha \cdot v_{r}^{l}$$
其中$\alpha$为引导强度(推荐2-4,过大易生成无意义内容)。
4. 实验(Experiment)
4.1 实验设置
- 模型:Llama2-7b-chat、Llama2-13b-chat、vicuna-7b-v1.5、vicuna-13b-v1.5(附录扩展至Qwen1.5-32B、Llama3-8B、Gemma2-9b);
- 数据:
- 引导向量提取:AdvBench(有害查询)、TruthfulQA(良性查询)各采样64条;
- 过度安全评估:XSTest(200有害+250良性)、OKTest(300“词汇有害-语义良性”查询);
- 足够安全评估:AdvBench(456有害)、Malicious(100有害)、RepE-Data(混合查询);
- 模型能力评估:MMLU(多任务QA)、XSum(摘要,ROUGE指标)、WikiText-2/C4(困惑度);
- 基准方法:
- 无训练:Prompt(提示工程)、Self-CD(对比解码);
- 训练基:SafeDecoding(安全感知解码)、DRO(连续安全提示优化);
- 指标:拒绝率(误拒率反映过度安全,有害查询拒绝率反映足够安全)、ROUGE-1/2/L、MMLU准确率、困惑度、推理速度/显存。
4.2 主要结果
-
缓解过度安全效果显著(表2、8):
- SCANS在XSTest和OKTest上的平均误拒率分别降低24.7%和26.3%,显著优于所有基准(如Llama2-7b-chat的XSTest良性查询拒绝率从58.00%降至9.20%);
- 对混合查询集(XSTest、RepE-Data),SCANS同时保证“良性查询低拒绝率”与“有害查询高拒绝率”,平均处理准确率达97.26%-98.40%。
-
保留足够安全与模型能力(表2、3):
- 对AdvBench、Malicious等有害数据集,SCANS的拒绝率维持在98%以上,与原模型几乎一致;
- 模型能力无显著下降:13B模型的MMLU准确率下降≤1%,XSum的ROUGE指标偏差≤1%,WikiText-2/C4困惑度增加≤1(7B模型下降稍高,但仍可控)。
-
推理成本极低(表4):
- Llama2-7b-chat加SCANS后,推理速度从40.60 tokens/s降至39.62 tokens/s,显存从29324MB增至29694MB,远优于Self-CD、SafeDecoding等需额外解码操作的方法。
4.3 关键分析
-
分类方法$\sigma(q)$性能优异(图4、表11):
$\sigma(q)$在XSTest上的F1得分为0.911,仅低于GPT-4(0.921),优于Llama Guard(0.819)、GradSafe(0.900)等专用检测方法,证明“隐藏状态转移”能有效区分良性/有害查询。 -
消融研究验证设计合理性(表5、6、7、图5):
- 引导层选择:前层引导会导致困惑度骤升(如Llama2-7b-chat前层引导的WikiText-2困惑度达2946),中间层引导在“缓解过度安全”与“保留能力”间平衡最优;
- 引导强度$\alpha$:$\alpha$在2-4时效果稳定,过大(如$\alpha=10$)会生成无意义内容;
- 阈值$T$:$T=0.75$为Llama2-7b-chat的最优值,过小会增加误拒率,过大则降低有害查询拒绝率;
- 分类层选择:中间层与后层的“隐藏状态转移-参考伤害方向”相似度区分度最高(图5),证明分类层选择的合理性。
5. 结论(Conclusion)
SCANS通过“提取拒绝引导向量、锚定中间安全关键层、基于相似度分类引导方向”的激活引导策略,有效缓解了安全对齐LLMs的过度安全问题。实验证明,SCANS在不损害足够安全与模型能力的前提下,显著降低了误拒率,且推理成本极低。该工作为“用表示工程解决LLMs安全-有用性权衡”提供了新思路,未来将进一步优化分类方法的准确性,并扩展更大模型的对比实验。
三、一句话总结
该论文基于“LLM隐藏状态包含安全防御机制,中间层存在拒绝行为向量”的假设,提出SCANS方法:通过提取有害/良性查询的激活差得到拒绝引导向量、锚定中间安全关键层、基于隐藏状态转移相似度分类引导方向来定向调整激活;实验表明,SCANS在XSTest/OKTest上使平均误拒率分别降低24.7%/26.3%,同时保持足够安全与模型能力、推理成本低;最终结论为SCANS是缓解LLMs过度安全问题的高效无训练方法,为表示工程在LLM安全领域的应用提供了参考。