Steering Llama 2 via Contrastive Activation Addition
什么是steering vectors
在transformer的残差流中,正面示例和反面示例的激活差异就构成了激活向量。
激活差异:
对于选定的层 $l$,提取正面和负面样例在该层最后一个token的激活,并计算其差值作为激活差异。
$$
\Delta a_j^l=a^l_{jail}-a^l_{base}
$$mean difference method:
数据集上的所有正样本和负样本的差异的平均值就是转移向量。对于每个越狱类型 $j$ 和第 $l$ 层,我们取数据集 $D$ 中越狱和非越狱提示之间最后一个指令令牌处残差流激活的平均差异。这样,我们就每个越狱类型 $j$ 获得一个越狱向量 $v_j^l$ 的 $l$ 层
$$
v_j^l=\frac{1}{|D|}\sum \Delta a^l_j
$$
abstract
在推理过程中,通过利用正负样例获得的转移向量在模型prompt后的所有token位置进行相加或者相减,从而控制模型的输出。
introduction
大模型对齐方法有很多包括 RLHF、指令微调、prompt工程等。然而仍然存在许多问题,包括为目标行为收集多样化和具有代表性的数据集、防止幻觉以及减轻分布外失败。此外,这些方法的工作方式通常是不透明的。
通过对模型激活进行针对性扰动的工作称之为“activation engineering” or “representation engineering”。
method

这篇论文以选择题来构建转移向量,prompt对由多项选择题组成,末尾附加答案字母(“A”或“B”)。这两个提示包含相同的问题,但以不同的答案结尾;“正面”提示以与相关行为相对应的字母结尾,“负面”提示以与其相反行为相对应的字母结尾
给定数据集$D$(prompt $p$,正例$c_p$,已经负例$c_n$),$L$层的转移向量按照下面的方式构建($a_L()$代表给定提示和答案在第$L$层的激活,在答案的标记位置的特定层提取的激活。):
$$
v_{MD}=\frac{1}{|D|}\sum_{p,c_p,c_n \in D} a_L(p,c_p)-a_L(p,c_n)
$$
这个转移向量会在推理时在模型的每一个token位置进行相加从而控制模型输出。

如图2(a)所示,由于在提示模板的影响下,激活本身就具有原始的分离(A,B)。但是在第10层开始突然出现了明显的语义分离,这表明越高的层提取到了越高的表征特征。
转移向量的作用探究
- 重要层探究
为了找到转向的最佳层,我们扫描所有层并执行乘数为 -1 和 1 的 CAA,评估对保留测试问题的效应大小。这些扫描的图表如图 3 所示。每行对应不同的行为。我们找到了一组具有最显着效应大小的最佳层。在 7B 模型中,这对应于第 13 层和相邻层。13B 模型中的最佳层通常是 14 或 15。

开放生成问题
这里的开放生成问题其实就是把选择题的问题去掉得到的,因此它的转移向量也是按照上面的方式来的。
如下图

并且更大的乘数会导致生成效果下降
- 转移向量和每个token激活的相似度

通过计算转移向量和token激活之间的相似度,可以发现与转移向量相似度大的(蓝色),反应出更强烈的行为动机。
不同层转移向量的关系

当从第13层提取的向量应用于其他层时,效果会转移。此外,对于一些早期的层,这种效应更为显著,表明CAA产生的激活方向不是特定于层的,而是目标行为的一般表示。然而,在第 17 层左右,效果大小急剧下降。这可能表明,在某个时候,有关抽象表示的相关信息已被用于进一步处理,并且不能再以相同的方式进行作