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. 主要贡献

  1. 提出无训练、无推理额外成本的表示工程方法SCANS(Safety-Conscious Activation Steering),通过激活引导控制模型拒绝行为,无需微调或额外解码操作;
  2. 发现LLM中间层提取的拒绝引导向量(Refusal Steering Vectors) 会提升“cannot”“reject”等拒绝token的生成概率,引导该层激活可显著降低误拒率;
  3. SCANS在缓解过度安全的同时,不损害模型的“足够安全(Adequate Safety)”与通用能力:在XSTest和OKTest基准上,平均误拒率分别降低24.7%和26.3%,对有害查询的防御能力及困惑度、MMLU准确率等指标几乎无波动。

3. 研究方法

SCANS的核心逻辑是“从LLM隐藏状态中挖掘安全相关信息,通过定向激活引导平衡‘过度安全’与‘足够安全’”,分为三个关键步骤:

  1. 提取拒绝引导向量:利用有害查询集$Q^-$与良性查询集$Q^+$的激活差,生成各层拒绝引导向量,捕捉“从‘愿意回答’到‘拒绝回答’的方向”;
  2. 锚定安全关键层:通过词汇投影(结合PCA与输出嵌入矩阵点积)发现,中间层的引导向量与拒绝token(如“cannot”“reject”)关联最强,确定中间层为安全关键层;
  3. 识别引导方向:设计基于隐藏状态转移的相似度分类方法$\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)

  • 核心逻辑:若对所有层引导,可能破坏模型输出连贯性;需筛选对拒绝行为影响最大的“安全关键层”。

  • 筛选方法:

    1. 将模型层分为前层(Former Layers)、中间层(Middle Layers)、后层(Latter Layers);
    2. 对各层$v_r^l$做PCA提取第一主成分,与输出嵌入矩阵(LM Head)做点积,得到“词汇投影”(反映该层激活与token的关联);
  • 关键发现(表1):中间层的词汇投影中,“rejected”“cannot”等拒绝token占比最高,证明中间层是安全关键层,仅引导中间层即可平衡“缓解过度安全”与“保留模型能力”。

    image-20251029170853010

3.3 识别引导方向(Identifying the Steering Direction)

  • 核心挑战:需先判断查询$q$是否为良性,才能确定“反向引导(削弱拒绝,用于良性$q$)”或“正向引导(增强拒绝,用于有害$q$)”。
  • 解决方案:基于“隐藏状态转移”的分类方法$\sigma(q)$,步骤如下:
    1. 构造输入$q+r_{pos}$($r_{pos}$为正向响应,如“Sure”),提取两个激活:
      • $a_p^l$:$q$部分最后一个token的激活(反映模型对$q$的初始判断);
      • $a_e^l$:$q+r_{pos}$整体最后一个token的激活(反映模型对“$q$+正向响应”的判断);
    2. 计算隐藏状态转移$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$偏向“伤害方向”);
    3. 计算参考伤害方向$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)$$
    4. 计算相似度$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)$$
    5. 分类规则:若$s_q < T$($T$为阈值,如Llama2-7b-chat设为0.75),则$q$为良性,$\sigma(q)=-1$(反向引导);否则为有害,$\sigma(q)=1$(正向引导)。
  • 激活引导:对安全关键层,调整后的激活为:
    $$\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 主要结果

  1. 缓解过度安全效果显著(表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. 保留足够安全与模型能力(表2、3):

    • 对AdvBench、Malicious等有害数据集,SCANS的拒绝率维持在98%以上,与原模型几乎一致;
    • 模型能力无显著下降:13B模型的MMLU准确率下降≤1%,XSum的ROUGE指标偏差≤1%,WikiText-2/C4困惑度增加≤1(7B模型下降稍高,但仍可控)。
  3. 推理成本极低(表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安全领域的应用提供了参考。