解锁语言模型:激活向量控制

12月 3, 2024 · 2 分钟阅读时长

(这篇博文用英文攥写并翻译自ChatGPT)

相关论文:


近来,自然语言处理(NLP)的发展揭示了无需昂贵的微调或再训练即可控制大型语言模型(LLM)的新方法。在这些方法中,通过操纵LLM的潜在激活进行控制已成为一种强大的手段。从Subramani et al. (2022) 提出的潜在控制向量,到Turner et al. (2024) 提出的激活相加(ActAdd),该领域扩展出了自适应激活控制(ACT)和指令遵循控制(IFS),进一步完善了激活工程的概念。本文深入探讨了这些进展,重点介绍其机制、优势及应用。


1. 控制向量的起源

Subramani et al. (2022) 提出了控制向量的概念,即从预训练模型中提取的潜在表示,用于在推理过程中指导模型输出。这些向量注入到GPT-2等模型的中间层,从而精确控制生成的内容。这种方法避免了微调或提示工程,充分利用了模型中已编码的知识。

研究的主要发现包括:

  • 接近完美的句子恢复:通过操纵潜在表示,控制向量实现了BLEU分数超过99%的句子重建。
  • 无监督情感迁移:通过向量运算,控制向量可以有效地改变文本的情感表现,在无监督设置中甚至优于某些定制模型。
  • 语义相似性:控制向量比传统嵌入方法更好地编码了句子语义,非常适合文本相似性分析等任务。

实验显示,将控制向量注入模型的中间层(例如12层Transformer的第6或第7层)效果最佳,即便仅在第一个时间步注入。

image.png


2. 激活相加:控制的突破

基于这些基础,Turner et al. (2024) 提出了激活相加(ActAdd),这是一种通过对比提示激活计算控制向量的轻量级方法。ActAdd 在推理过程中提供了精确的输出控制,解决了传统提示方法的局限性。

ActAdd 使用两个提示 $p_+$(理想属性,例如 “love”)和 $p_-$(相反属性,例如 “hate”)来计算控制向量 $h^l_A$。关键步骤如下:

  1. 对每个提示执行模型前向传播

    $$ h^l_{+} = M(p_+), \quad h^l_{-} = M(p_-) $$

    其中 $h^l_{+}$ 和 $h^l_{-}$ 分别表示第 $l$ 层对 $p_+$ 和 $p_-$ 的激活向量。

  2. 计算激活的差值

    $$ h^l_A = h^l_{+} - h^l_{-} $$
  3. 将控制向量注入残差流的第 $l$ 层

    $$ h^l = c h^l_A + h^l_{*} @ a $$

    其中:

    • $c$:注入系数,用于缩放 $h^l_A$,
    • $h^l_*$:用户输入提示 $p^*$ 的激活,
    • $a$:序列对齐,用于匹配令牌位置。
  4. 继续前向传播以生成输出

    $$ S = \text{Forward}(h^l) $$

    其中 $S$ 是最终的控制输出。

image.png

研究表明,ActAdd 可:

  • 降低目标主题的困惑度(perplexity)。
  • 调整令牌概率以更符合正负控制主题(控制模型生成的主题)。
  • 控制模型讨论的内容。
  • 使用注入系数 $c$ 调节主题相关性。
  • 降低生成的毒性。
  • 控制情感。
  • 保留模型的通用知识。

3. 自适应激活控制(ACT)

Wang et al. (2024) 提出了自适应激活控制(ACT),以改进LLM输出的真实度,解决“知而不言”的问题。尽管LLM通常具有正确的知识,但有时表达错误,导致幻觉现象。

机制

  1. 动态控制强度

    • 基于激活的真实度调整控制强度,从而实现更精细的干预: $$ h^l_{\text{new}} = h^l + \alpha (1 - p_{\text{truth}}(h^l)) \cdot h^l_A $$
    • 其中,$p_{\text{truth}}(h^l)$ 是估计真实度的探测器,$\alpha$ 是调整系数。
  2. 多样化控制向量

    • ACT 通过聚类生成多个控制向量,为不同的幻觉类别量身定制干预。

影响

  • 在如LLaMA2和Vicuna等模型中,ACT 显著提高了38种幻觉类别的真实度。
  • 可扩展至更大规模模型(13B, 33B, 65B)。

4. 指令遵循控制(IFS)

Stolfo et al. (2024) 探讨了通过激活控制增强LLM指令遵循能力的方法。该研究并未提出新的方法,而是分析了从有无指令输入的对比激活中计算出的控制向量如何指导模型遵循多种约束,如输出格式、长度及词语相关要求。

主要发现

  1. 指令类别
    • 研究集中于三类指令:
      • 格式:如JSON格式或大小写要求。
      • 长度:如限制回答的句子数量。
      • 词语特定:如要求包含或排除某些关键词。
  2. 控制效果
    • 即使输入中未明确包含指令,控制向量也可提高指令遵循能力。
    • 若输入中提供了指令,控制进一步提升了指令执行的准确性,并减少了指令偏移。
  3. 组合性
    • 控制可以同时处理多条指令,展现出组合性。例如,模型成功地同时应用格式和长度限制。
  4. 跨模型迁移
    • 在指令调优模型上计算的控制向量可迁移至基础模型,显示出跨模型对齐指令遵循行为的潜力。

Stolfo et al. 的研究凸显了激活控制在改进指令遵循性能方面的实用价值。这些发现拓展了控制技术的应用范围,为实现更细粒度的生成任务控制开辟了新途径。


5. 总结

这些研究展示了激活工程在控制LLM输出方面的多样性和实用性。通过潜在控制向量、激活相加、自适应激活控制和指令遵循控制,它们提供了高效、可解释且精确的方法,适用于真实度控制、情感调整及指令遵循等任务。随着这一领域的进步,这些方法为构建更安全、可靠和可控的AI系统铺平了道路,释放了其在现实世界中的应用潜力。