一句话:CAA(Contrastive Activation Addition,对比激活加法)是一种不改模型权重、只在推理时往内部激活上加一个"方向向量"的方法,用来把某种行为倾向调高或调低——比如更爱附和、更少附和。
它是怎么算出来的
整个过程像做对照实验。研究者准备大量成对提示(contrastive pairs):同一段对话,只改一处。比如用户说"我觉得 2+2=5",一份提示让回答顺着说,另一份让回答纠正,其余文字尽量一致。分别喂给模型跑一遍,在中间某一层记下每个位置的内部激活(残差流),各自取平均,然后相减:
> 转向向量 = 平均(有该行为的激活) − 平均(没有该行为的激活)
因为两份提示差别极小,相减时上下文、语法、话题这些共同成分基本抵消,剩下的差值就近似是"这个行为的方向"。推理时,在这一层给所有位置的激活加上 α × 向量,α 为正就加强,为负就削弱,α 大小就是"旋钮"。
打个比方:模型是一台已经装好的音响,微调是拆开换电路,提示词是在唱片上贴便签,CAA 是在调音台上给某一路推一下推子——不动机器本身,随时能推回去。也像降噪耳机:先录下噪音,再反相叠加以抵消。
和邻居们的区别
| 方法 | 改什么 | 是否训练 | 可撤销 |
|---|---|---|---|
| 提示工程 | 输入文本 | 否 | 是 |
| CAA | 推理时的激活 | 只做前向统计 | 是,α 归零即恢复 |
| 微调 / LoRA | 权重 | 是 | 需回滚权重 |
| 激活修补(activation patching) | 替换激活 | 否 | 是 |
关键差别在最后一行:激活修补是"把这段激活换成别的值"来定位因果,是分析工具;CAA 是"加一个方向"来改行为,是控制工具。它和"拒绝方向"等工作同属 activation steering / representation engineering 这一族。
对从业者意味着什么
它便宜、可逆、可量化:扫一遍 α 就能画出一条"行为强度曲线",很适合做安全评估——把谄媚、拒答、说教这些倾向调高调低,看模型在哪里开始出错。产品上也能做风格档位切换,或给不同客户配不同"性格"。坑也很实在:α 太大输出会变得重复、跑题甚至语言崩坏;层选得不对效果很弱;换模型、换版本通常要重算向量;它只是行为层面的一层偏置,替代不了对齐训练。具体接口和效果以各家官方文档为准。
对普通人来说,值得记住的一点是:模型的"性格"在内部并不是一团混沌,存在可以被单独拎出来、加减的方向——这既意味着风格可以精细调节,也意味着这类手段可以被用来做不那么善意的操控。
