“ActAdd方法”的版本间的差异

来自集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织
跳到导航 跳到搜索
第66行: 第66行:
 
== 实验结果摘要(按图表组织) ==
 
== 实验结果摘要(按图表组织) ==
 
=== Table 3:去毒(RealToxicityPrompts)===
 
=== Table 3:去毒(RealToxicityPrompts)===
−
作者在 RealToxicityPrompts 上报告 ActAdd 与多类基线方法的对比,并用 Toxicity、(Dis)Fluency、Relevance 三指标衡量“毒性降低”与“质量/[[相关性]]代价”的权衡。ActAdd 在 OPT 与 LLaMA-3 上均报告了毒性下降,同时保持较低的质量损失。[^https://arxiv.org/pdf/2308.10248v4]
+
作者在 RealToxicityPrompts 上报告 ActAdd 与多类基线方法的对比,并用 Toxicity、(Dis)Fluency、Relevance 三指标衡量“毒性降低”与“质量/[[相关性]]代价”的权衡。ActAdd 在 OPT 与 LLaMA-3 上均报告了毒性下降,同时保持较低的质量损失。
 +
 
 +
* '''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]
  
 
=== Table 4:情感控制(IMDb)===
 
=== Table 4:情感控制(IMDb)===
第73行: 第77行:
 
=== Figure 3:非目标能力保留(ConceptNet 的 <math>P@K</math>)===
 
=== Figure 3:非目标能力保留(ConceptNet 的 <math>P@K</math>)===
 
Figure 3 展示 baseline 与 “with act-add” 在不同 <math>K</math> 下的 mean <math>P@K</math> 曲线几乎重合。作者据此认为 ActAdd 对非目标任务[[概率分布]]的影响可以忽略,从而支持“控制不显著损害通用知识能力”的主张。[^https://arxiv.org/pdf/2308.10248v4]
 
Figure 3 展示 baseline 与 “with act-add” 在不同 <math>K</math> 下的 mean <math>P@K</math> 曲线几乎重合。作者据此认为 ActAdd 对非目标任务[[概率分布]]的影响可以忽略,从而支持“控制不显著损害通用知识能力”的主张。[^https://arxiv.org/pdf/2308.10248v4]
 +
 +
* '''<math>P@K</math>(能力保留)''':ConceptNet(LAMA)常识填空中,正确答案进入 top-<math>K</math> 候选的概率,用于衡量非目标能力是否被破坏(Figure 3)。[^https://arxiv.org/pdf/2308.10248v4]
  
 
=== Figure 4:推理开销([[Inference]] time premium)===
 
=== Figure 4:推理开销([[Inference]] time premium)===
−
作者测量 ActAdd 相对基线推理速度的额外开销,并在不同规模模型上估计该溢价的变化趋势。论文据此认为 ActAdd 的额外开销在相对比例上稳定或随模型增大呈下降趋势,从而具有[[可扩展性]]。[^https://arxiv.org/pdf/2308.10248v4]
+
作者测量 ActAdd 相对基线推理速度的额外开销,并在不同规模模型上估计该溢价的变化趋势。论文据此认为 ActAdd 的额外开销在相对比例上稳定或随模型增大呈下降趋势,从而具有[[可扩展性]]。
 +
 
 +
* '''Inference time premium(推理时间溢价)''':相对推理时间增量比例(Figure 4)。[^https://arxiv.org/pdf/2308.10248v4]
  
 
== 与[[提示词]]工程的关系 ==
 
== 与[[提示词]]工程的关系 ==

2026年3月15日 (日) 15:34的版本

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)上报告了其对主题、情感、风格等属性的可控性,并在去毒与情感控制任务上给出对比实验,同时展示其对非目标能力影响较小(见文献[2]中的图3)。

ActAdd算法的示例效果如下表所示

表 1:应用 ActAdd 前(“无”)与应用后(“ActAdd”)的输出对比。使用的引导向量分别为(Love − Hate)以及(“我一直在谈论婚礼” − “我并不一直在谈论婚礼”)。详细见[2]中的表1
提示词(Prompt) + 引导(steering) = 续写(completion)
我恨你,因为…… 无 ……你是我见过最恶心的东西。
我恨你,因为…… ActAdd(love) ……你太美了,我想永远和你在一起。
我走到朋友面前说…… 无 ……“对不起,我帮不了你。”
“不,”他说。“你能帮。”
我走到朋友面前说…… ActAdd(weddings) ……“我在这一集《婚礼季》(Wedding Season)里要聊婚礼。我觉得这一集真的很好。它讲的是你应该怎么谈论婚礼。”

核心算法

直观解释

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

这里:

  • [math]\displaystyle{ p_+, p_- }[/math]:分别表示引导提示词对(steering prompt pair)。[math]\displaystyle{ p_+ }[/math] 表示“具有目标属性”的提示词,[math]\displaystyle{ p_- }[/math] 表示“对照/相反/缺失该属性”的提示词。
  • [math]\displaystyle{ p^* }[/math]:用户提示词(user prompt)。
  • [math]\displaystyle{ l }[/math]:进行注入操作的目标层(target layer),即干预发生的层。
  • [math]\displaystyle{ c }[/math]:注入系数(injection coefficient),控制引导向量强度。

ActAdd算法

以下为与论文[2]中的 Algorithm 1 等价的算法表述(略去实现细节,仅保留关键步骤):

  1. 对齐 token 长度:将 [math]\displaystyle{ (p_+,p_-) }[/math] 右侧填充到相同 token 长度,得 [math]\displaystyle{ (p'_+,p'_-) }[/math]。
  2. 将[math]\displaystyle{ (p'_+,p'_-) }[/math]分别输入模型,并在第[math]l[/math]层,读取模型的激活值:
    • [math]\displaystyle{ \mathbf{h}^l_+ = \mathbf{h}^l(p'_+) }[/math]
    • [math]\displaystyle{ \mathbf{h}^l_- = \mathbf{h}^l(p'_-) }[/math]
  3. 根据激活值[math]\displaystyle{ \mathbf{h}^l_+,\mathbf{h}^l_- }[/math]计算引导向量的差分:
    • [math]\displaystyle{ \mathbf{h}^l_A = \mathbf{h}^l_+ - \mathbf{h}^l_- }[/math]
  4. 读取用户提示词的激活:
    • [math]\displaystyle{ \mathbf{h}^l_* = \mathbf{h}^l(p^*) }[/math]
  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]

超参数与实现要点

  • 注入系数 [math]\displaystyle{ c }[/math]:代表干预强度。论文报告常用绝对值约 [math]\displaystyle{ 3 }[/math]–[math]\displaystyle{ 15 }[/math],并可用网格搜索选择。
  • 注入层 [math]\displaystyle{ l }[/math]:作者指出中间层往往更有效,并展示了对各层扫描时的效果变化。
  • 为何使用差分 [math]\displaystyle{ p_+ - p_- }[/math]:作者报告仅使用 [math]\displaystyle{ p_+ }[/math] 往往不如差分有效(见附录中无效例),因此采用对比提示词对来“隐式指定方向”。
  • 预训练语言模型(pretrained language model)[math]\displaystyle{ M }[/math]。
  • 输入在层 [math]\displaystyle{ l }[/math] 处读取到的激活表示(论文语境中对应残差流/中间激活位置)[math]\displaystyle{ \mathbf{h}^l(\cdot) }[/math]:访问中间激活的要求:方法需要缓存并暴露中间激活,因而更适用于开源/研究环境或可访问激活的部署方式。
  • 序列对齐位置(sequence alignment position) [math]\displaystyle{ a }[/math]:用于对齐引导向量与用户提示词在序列维度上的加法位置.

评估指标与实验设置

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

Table 3:去毒(RealToxicityPrompts)

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

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]

  • [math]\displaystyle{ P@K }[/math](能力保留):ConceptNet(LAMA)常识填空中,正确答案进入 top-[math]\displaystyle{ K }[/math] 候选的概率,用于衡量非目标能力是否被破坏(Figure 3)。[^https://arxiv.org/pdf/2308.10248v4]

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

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

与提示词工程的关系

作者将 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]

参见

参考文献

  1. ↑ 模板:Cite journal=arXiv
  2. ↑ 2.0 2.1 2.2 引用错误:无效<ref>标签;未给name属性为ActAdd的引用提供文字