ActAdd方法

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

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

概述

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

术语与符号

  • [math]\displaystyle{ p_+, p_- }[/math]:引导提示词对(steering prompt pair)。[math]\displaystyle{ p_+ }[/math] 表示“具有目标属性”的提示词,[math]\displaystyle{ p_- }[/math] 表示“对照/相反/缺失该属性”的提示词。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ p^* }[/math]:用户提示词(user prompt)。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ l }[/math]:注入层(target layer),即干预发生的层。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ c }[/math]:注入系数(injection coefficient),控制引导向量强度。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ a }[/math]:序列对齐位置(sequence alignment position),用于对齐引导向量与用户提示词在序列维度上的加法位置。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ M }[/math]:预训练语言模型(pretrained language model)。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ \mathbf{h}^l(\cdot) }[/math]:输入在层 [math]\displaystyle{ l }[/math] 处读取到的激活表示(论文语境中对应残差流/中间激活位置)。[^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]

  • Toxicity(毒性):用于去毒任务,使用 Perspective API 对生成文本打分,越低越好(Table 3)。[^https://arxiv.org/pdf/2308.10248v4]
  • (Dis)Fluency(不流畅度):以条件困惑度等作为流畅度代理,越低越好(Table 3、Table 4)。[^https://arxiv.org/pdf/2308.10248v4]
  • Relevance(相关性):用句向量余弦相似度衡量提示词与续写的语义相关性,越高越好(Table 3、Table 4)。[^https://arxiv.org/pdf/2308.10248v4]
  • [math]\displaystyle{ P@K }[/math](能力保留):ConceptNet(LAMA)常识填空中,正确答案进入 top-[math]\displaystyle{ K }[/math] 候选的概率,用于衡量非目标能力是否被破坏(Figure 3)。[^https://arxiv.org/pdf/2308.10248v4]
  • Inference time premium(推理时间溢价):相对推理时间增量比例(Figure 4)。[^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]

参见

参考文献