ActAdd方法

Jake(讨论 | 贡献)2026年3月15日 (日) 14:39的版本

ActAdd(Activation Addition,中文常译“激活加法”)是一种用于在推理时(inference-time)控制大型语言模型(LLM)输出行为的方法,也是研究AI可解释性的一种手段。ActAdd 属于激活工程(activation engineering):不改动模型权重,而是在一次前向传播中对模型中间层的残差流激活进行加性干预,从而改变生成文本的高层属性(如主题、情感、风格、去毒等)。该方法由论文《Activation Addition: Steering Language Models Without Optimization》提出[1],强调其无需优化(no optimization)与无需标注数据(除提示词外)即可构造可用的“引导向量(steering vector)”。

概述

ActAdd 的核心思想是:用一对自然语言“对比提示词”(contrast pair)在指定层的激活差分,构造一个表示目标属性方向的引导向量,再将该向量(经强度系数缩放)加到用户提示词的对应层激活上,使模型输出朝目标属性偏转。作者在多种模型(如 GPT-2、OPT、LLaMA-3、GPT-J)上报告了其对主题、情感、风格等属性的可控性,并在去毒与情感控制任务上给出对比实验,同时展示其对非目标能力影响较小(见 Figure 3)。[^https://arxiv.org/pdf/2308.10248v4]

术语与符号

核心算法

直观解释

ActAdd 将“目标属性”视作激活空间中的一个方向。通过让模型分别处理 [math]\displaystyle{ p_+ }[/math] 与 [math]\displaystyle{ p_- }[/math],取得两者在层 [math]\displaystyle{ l }[/math] 的激活差分,得到引导向量。然后对用户提示词 [math]\displaystyle{ p^* }[/math] 的前向传播,在同一层把该向量(乘以系数 [math]\displaystyle{ c }[/math])加进去,从而在不训练的情况下改变输出分布。[^https://arxiv.org/pdf/2308.10248v4]

算法 1(Algorithm 1)

以下为与论文 Algorithm 1 等价的表述(略去实现细节,仅保留关键步骤):[^https://arxiv.org/pdf/2308.10248v4]

  1. 对齐 token 长度:将 [math]\displaystyle{ (p_+,p_-) }[/math] 右侧填充到相同 token 长度,得 [math]\displaystyle{ (p'_+,p'_-) }[/math]。[^https://arxiv.org/pdf/2308.10248v4]
  2. 读取两端激活:
  3. 计算引导向量(差分):
  4. 读取用户提示词激活:
  5. 注入并继续前向:在对齐位置 [math]\displaystyle{ a }[/math] 处进行加法干预并继续完成前向计算,得到输出 [math]\displaystyle{ S }[/math]:
    • [math]\displaystyle{ S = \mathrm{ContinueForward}\bigl(M,\ \mathbf{h}^l_* + c\cdot \mathbf{h}^l_A \text{ at position } a\bigr) }[/math] [^https://arxiv.org/pdf/2308.10248v4]

超参数与实现要点

  • 注入系数 [math]\displaystyle{ c }[/math]:代表干预强度。论文报告常用绝对值约 [math]\displaystyle{ 3 }[/math]–[math]\displaystyle{ 15 }[/math],并可用网格搜索选择。[^https://arxiv.org/pdf/2308.10248v4]
  • 注入层 [math]\displaystyle{ l }[/math]:作者指出中间层往往更有效,并展示了对各层扫描时的效果变化。[^https://arxiv.org/pdf/2308.10248v4]
  • 为何使用差分 [math]\displaystyle{ p_+ - p_- }[/math]:作者报告仅使用 [math]\displaystyle{ p_+ }[/math] 往往不如差分有效(见附录中无效例),因此采用对比提示词对来“隐式指定方向”。[^https://arxiv.org/pdf/2308.10248v4]
  • 访问中间激活的要求:方法需要缓存并暴露中间激活,因而更适用于开源/研究环境或可访问激活的部署方式。[^https://arxiv.org/pdf/2308.10248v4]

评估指标与实验设置

常用指标

论文围绕“控制有效性、质量副作用、效率开销”等维度组织实验,并使用如下指标:[^https://arxiv.org/pdf/2308.10248v4]

实验结果摘要(按图表组织)

Table 3:去毒(RealToxicityPrompts)

作者在 RealToxicityPrompts 上报告 ActAdd 与多类基线方法的对比,并用 Toxicity、(Dis)Fluency、Relevance 三指标衡量“毒性降低”与“质量/相关性代价”的权衡。ActAdd 在 OPT 与 LLaMA-3 上均报告了毒性下降,同时保持较低的质量损失。[^https://arxiv.org/pdf/2308.10248v4]

Table 4:情感控制(IMDb)

在 IMDb 情感控制基准上,作者以“情感翻转成功率(Suc)”为主要目标,并同时报告不流畅度与相关性。结果显示 ActAdd 在部分方向(例如负面→正面)表现突出,但也存在与文本质量之间的典型权衡。[^https://arxiv.org/pdf/2308.10248v4]

Figure 3:非目标能力保留(ConceptNet 的 [math]\displaystyle{ P@K }[/math])

Figure 3 展示 baseline 与 “with act-add” 在不同 [math]\displaystyle{ K }[/math] 下的 mean [math]\displaystyle{ P@K }[/math] 曲线几乎重合。作者据此认为 ActAdd 对非目标任务概率分布的影响可以忽略,从而支持“控制不显著损害通用知识能力”的主张。[^https://arxiv.org/pdf/2308.10248v4]

Figure 4:推理开销(Inference time premium)

作者测量 ActAdd 相对基线推理速度的额外开销,并在不同规模模型上估计该溢价的变化趋势。论文据此认为 ActAdd 的额外开销在相对比例上稳定或随模型增大呈下降趋势,从而具有可扩展性。[^https://arxiv.org/pdf/2308.10248v4]

与提示词工程的关系

作者将 ActAdd 与 prompt engineering 对比,指出:提示词控制是离散的(token 要么出现要么不出现),而 ActAdd 的注入系数 [math]\displaystyle{ c }[/math] 可连续调节;此外,ActAdd 不占用上下文窗口 token(无需长 meta-prompt),从而减少一种控制开销。作者进一步推测 prompting 可能通过将模型条件化到激活空间的某些区域来“激活目标”,而 ActAdd 可视为对这种机制的推广,并可能实现某些提示词难以实现的控制(详见附录讨论)。[^https://arxiv.org/pdf/2308.10248v4]

局限性与风险

  • 仍需为 [math]\displaystyle{ (p_+,p_-) }[/math]、[math]\displaystyle{ l }[/math] 与 [math]\displaystyle{ c }[/math] 等进行搜索或调参;大强度注入可能破坏能力或导致输出不稳定。[^https://arxiv.org/pdf/2308.10248v4]
  • 需要访问并修改中间激活,限制了其在纯黑盒商用 API 场景的直接适用性。[^https://arxiv.org/pdf/2308.10248v4]
  • 论文在更广泛影响部分指出,该方法也可能被用于诱导不良风格或有害内容,存在滥用风险。[^https://arxiv.org/pdf/2308.10248v4]

参见

参考文献