![]()
你有没有想过,当一个AI模型突然学会了看图说话,它内部到底发生了什么?
不是黑箱式的"训练完就能用",而是真的问:模型里哪些神经元、哪些计算方向,是专门为了处理图像而重新组织起来的?
这个问题听起来像是在做脑科学研究,而事实上,牛津大学这批研究者干的正是这件事。他们把一个纯文本训练出来的语言模型,和它经过多模态训练之后的版本放在一起做对比,试图揪出那些"因为要看图而发生了改变"的内部结构。这篇论文的名字叫MMDiff,它不满足于"知道模型能看图",而是要回答"模型内部到底是哪些部分学会了看图,能不能把这些部分单独拎出来操控"。
这件事的难度,咱们先从当前技术的局限说起。
问题出在哪:稀疏自编码器很强,但用错了地方
先说说背景。多模态大模型(MLLM,能同时理解图像和文字的AI模型,比如能看图回答问题、读取图片里的文字、判断图片是否安全的那类系统)这几年发展很猛,能做视觉问答、能做OCR文字识别、能做空间推理,甚至能判断一张图片配一段话是不是有安全隐患。
但这些能力从哪来,没人说得清楚。你知道它能读图里的招牌文字,但你不知道是哪一层、哪一组参数在负责这件事。这就带来一个实际问题:模型出错了,你不知道去哪修;模型生成了不该生成的内容,你不知道去压哪个开关。
要打开这个黑箱,业内常用的工具是稀疏自编码器。
> 稀疏自编码器(SAE):一种把模型内部杂乱的激活值重新整理成一组"稀疏、可解释的方向"的技术。简单说,模型内部一个神经元可能同时编码好几个不相关的概念(这叫"叠加"),SAE的作用就是把这些概念拆开,变成一个个单独的、人类能看懂的特征方向。
问题是,如果你直接在一个多模态模型的内部激活上训练一个SAE,你得到的是一锅粥。这锅粥里既有语言模型原本就有的特征(比如"这是一个名词""这是过去式"这种语言层面的东西),也有因为多模态训练新长出来的特征(比如"这里有文字""这是空间关系")。两者混在一起,你没法单独挑出后者来做操控。
这就好比你想找出一个人搬到新城市之后交的新朋友,但你拿到的通讯录里新朋友和老朋友的名字混在一起,没有标注。你怎么筛选?
如果不做区分会怎样,论文里给出了直接证据:在后面的消融实验中,研究者训练了一个完全从零开始、直接在多模态模型激活上训练的SAE,结果排名靠前的空间特征全部挤在同一层,而且在测试样本上百分之百激活,这说明筛选机制已经失效了,因为一个特征如果对所有样本都激活,你根本没法说它专门对应哪个任务。把这些"看起来很显著"的特征拿去消融,对空间推理准确率几乎没有影响(平均只有+0.22%的变化),而用MMDiff方法筛出来的特征,消融后准确率平均下降10.11%。同样的模型,同样的消融操作,差了将近10个百分点,区别就在于筛选特征时有没有做"新老朋友"的区分。
核心思路:拿基础语言模型的SAE字典做"锚点"
MMDiff的解决办法说起来不复杂:既然多模态模型的语言主干本来就是一个预训练好的纯文本模型(比如LLaMA、Gemma),那这些骨干模型本身早就有现成的、公开发布的SAE字典可以用。
MMDiff不是从零训练一个新字典,而是拿这个"基础版"字典去做热启动(用已有参数初始化,而不是随机初始化),然后让它在多模态模型的激活上继续训练微调。
这么做的好处在于,同一个特征在两个字典里保持着相同的编号位置。你可以直接比较"第176号特征"在基础模型里长什么样,在多模态模型里长什么样,看它有没有发生变化。这就是论文里反复提到的模型差分(model diffing,通过比较模型在不同训练阶段的内部表示,追踪特征是否保持稳定、发生旋转,或者被重新用于新用途)。
打个比方,这就像给一个人拍两张X光片,一张是他大学毕业时拍的,一张是他工作十年后拍的。如果两张片子里骨骼的编号方式完全一致(同一根骨头在两张片子里都叫"第37号"),你就能精确地看出这根骨头有没有变形、有没有增生。而如果两次拍片用的编号系统完全不同,你就没法做这种精确对比,只能笼统地说"骨骼看起来不太一样了",却指不出具体是哪根骨头出了问题。
论文里专门做了一个验证实验来确认这套"编号系统"是靠得住的:他们对完整的PaliGemma 2字典(26层、每层16384个特征)做了显式匹配,检查每个特征的最佳匹配对象是不是还在原来的位置上。结果显示,96.41%的特征保持原样,3.36%在原地发生了旋转(也就是我们要找的目标),完全"搬家"到别的位置的比例是0%,新冒出来的特征只占0.23%。这说明热启动之后,特征基本不会乱窜位置,拿同一索引做比较是站得住脚的。
怎么判断一个特征"被多模态训练改造过"
光有编号对应还不够,你还得有个标准来判断哪些特征真的发生了实质性改变。MMDiff用了两个信号。
第一个信号叫几何重定向,说白了就是看这个特征的"方向"变了多少。每个SAE特征在数学上对应一个解码器方向向量,你可以算这个向量在训练前后的余弦相似度。
> 余弦相似度:衡量两个向量方向有多接近的指标,取值在-1到1之间,1表示方向完全一致,0表示完全垂直(没关系),负值表示方向相反。这里用来衡量一个特征的"语义方向"在多模态训练前后偏移了多少。
相似度高,说明这个特征基本没变,还在干原来的活;相似度低,说明这个方向被"重新征用"了,被安排去干别的事情。
第二个信号叫视觉能量,衡量这个特征在处理图像输入时激活强度有多大。毕竟一个方向哪怕转了个大角度,如果它压根不响应图像,那也没什么用。MMDiff要求这两个条件同时满足:视觉能量要够高,余弦相似度要够低(排在后25%)。
这套双重筛选下来,在LLaVA-MORE模型里只筛出了大约5%的特征算是"被改造过",在PaliGemma 2里是大约20%,在InternVL3.5里是大约13%。这个筛选比例本身也说明了一件事:大部分特征其实是"继承"下来的,真正因为要处理视觉信息而发生实质改变的,只是一小撮。
如果不做视觉能量这一步筛选会怎样,论文的消融实验(第6.1节的Table 7)给出了答案:只用"对比激活频率"这一个条件去挑特征,挑出来的东西看起来对目标任务的影响更大(VSR准确率降幅达到-15.1%),但同时对通用视觉问答能力(VQA)造成了24%到26%的损伤。这说明这种筛选方式挑出来的其实是那些"随便动一下就会让整个模型垮掉"的敏感神经元,而不是真正专门负责某个能力的特征。只有把视觉能量、几何旋转、词汇不变性筛选三者叠加在一起,才能做到既有效又精准:让目标任务掉12.3%,却几乎不影响通用能力(只掉0.1%)。
第二步:怎么从"被改造的特征"里挑出"管特定任务的特征"
前面这一步筛出来的还是一大片,里面既有专门管空间推理的,也有专门管OCR识别的,还有专门管安全判断的。你得再往下细分。
MMDiff用的办法是逐token的对比激活分析。具体做法是:给模型喂两批数据,一批是普通的、没有特定倾向的视觉问答(当基准),另一批是明显带有目标属性的数据(比如全是关于"左边""上面""前面"这种空间关系的问题)。然后统计每个特征在这两批数据里的激活频率有多大差异。
> 优势比(Odds Ratio):一种统计量,用来衡量某个特征在目标数据里激活的概率,相对于在基准数据里激活的概率,高出了多少倍。这里用来判断一个特征是不是"专门对空间任务敏感",如果优势比很高,说明这个特征几乎只在处理空间相关内容时才会被点亮。
这一步用的是Fisher精确检验(一种统计显著性检验方法,专门用来分析像"激活/不激活"这种二分类数据之间是否存在有意义的关联),配合优势比阈值大于3、激活频率差距大于5%的双重标准来筛选候选特征。
但这里还藏着一个陷阱:如果一个特征只是因为"看到了提示词里的某个词"就激活,而不是真的因为图像内容,那这个特征其实是个假货。研究者管这个叫词汇伪影,也就是特征其实响应的是问题里的字面词汇,而不是图片里真实存在的空间关系。
为了排除这种情况,MMDiff引入了一个词汇不变性过滤:拿一批完全中性、不带任何目标关键词的提示语(比如把"这个东西在杯子的左边吗"换成"描述一下这些物品是怎么摆放的"),重新跑一遍,看这个特征还激不激活。如果换了个说法它就哑火了,说明它认的是词,不是图,直接淘汰。论文提到,在空间任务的筛选中,大约60%的候选特征通过了这道词汇过滤关卡。
这一整套流程打个比方,有点像招聘时的背景调查。有的候选人简历写得很漂亮,一问细节就露馅,说明简历上那些"闪光点"其实是包装出来的,不是真本事。词汇不变性过滤就是把提示词换个说法重新问一遍,看这个特征是不是真材实料,还是只会背题。
三层筛选叠加下来,最后拿到手的是一个真正干净的、任务专属的特征集合。以空间任务为例,在MMDiff-Gemma模型里最终剩下大约1400个特征(从41.6万个总特征里筛出来),在MMDiff-Llama里是711个(从超过100万个总特征里筛出来)。安全相关的候选特征是1061个,OCR相关的是1070个。
找到特征之后:怎么用它们做操控
光找到特征还只是第一步,论文的另一半重点是拿这些特征去做实际的干预,一种是"移除",一种是"增强"。
移除的做法叫因果消融,具体是把某个特征对应的解码器方向,从模型每一层的残差流里正交投影掉(也就是让这个方向的分量归零),只在文本token的位置操作,不动图像token。这样做的目的是隔离出这个方向对语言主干的贡献,而不影响视觉投影器本身的工作。
结果怎样,研究者在三个模型家族、三个任务领域上都做了测试。
在空间推理任务上,消融排名靠前的空间特征,VSR(Visual Spatial Reasoning,一个专门测试模型空间关系理解能力的数据集)准确率平均下降10%到15%,三个模型分别是MMDiff-Llama降10.1%、MMDiff-Gemma降12.3%、MMDiff-Qwen降14.6%,而通用视觉问答能力几乎不受影响(变化不超过1.5%)。
在多模态安全任务上,研究者用了VLSBench(一个专门设计的、只看文字看不出危险,必须结合图片才能判断出安全隐患的评测集),每个安全类别里排名第一的特征被消融之后,攻击成功率下降17%到28%,同时对正常问答能力和良性场景的干扰都控制在1%以内。
在OCR识别任务上,拿OCRBench(专门测试模型识别图片文字能力的基准)做评测,顶部特征被消融之后,对应类别的识别准确率平均下降16.9%,同样对无关任务影响很小。
**这三组数据放在一起说明一件事:找到的这些特征确实是"专职"的,动它只影响它该管的那摊事,不会牵连整个模型。**
这里有个特别有意思的细节值得单独说一下。研究者拿PaliGemma 2的预训练版本(只有视觉编码器和投影器,还没经过指令微调)做了同样的消融实验,对比指令微调之后的版本。结果发现,同样的特征在预训练阶段的因果影响力普遍要小得多,指令微调之后影响力平均放大了大约3倍。更有意思的是,有两个特征(分别对应"behind"和"facing"这两种空间关系)在预训练阶段消融后反而是正向的微小波动,更像是噪声,但在指令微调之后变成了明确的负向影响。这说明这些具体的空间推理能力,更多是多模态指令微调阶段才真正塑造出来的,不是从纯文本预训练里直接继承来的。
增强的做法:MMDiff-CAA是怎么把两种方法叠在一起的
除了移除,论文里还提出了一种叫MMDiff-CAA的增强方法,用来把某种能力往上拉,而不是压下去。
这个方法名字里的CAA指的是对比激活加法(Contrastive Activation Addition,一种通过对比正例和负例样本的平均激活差值,得到一个"方向向量",然后在推理时把这个向量按一定强度加进模型残差流里,从而让模型的输出朝某个方向偏移的技术)。
传统的CAA做法比较简单粗暴:找一个固定的中间层,算出正负样本的激活均值差,当作一个统一的方向,加进去就完了。MMDiff-CAA做得更精细,它把两种信号叠加在一起使用。第一种是多层版本的CAA方向,不只在一层做,而是在多个层(研究者称之为任务相关层)分别提取对比方向并注入。第二种是前面通过特征发现流程找到的那个特定特征的解码器方向,只在这个特征所在的层额外叠加进去,而且叠加的强度可以调节(论文里试了1倍、3倍、10倍三种系数)。
这个设计思路可以这样理解:如果只用传统CAA,相当于只调了一个总闸门,让整体氛围往某个方向偏;而加上特定特征的解码器方向,相当于在那个特定的位置又加了一个精准的开关,专门推动这一个具体的能力。如果没有这第二层精准干预会发生什么,论文里做了拆解实验:单独用一个SAE特征方向做引导,VSR准确率只能提升2.63%;单独用传统单层CAA,能提升8.96%;把CAA扩展到多层但不加特征方向,提升到10.78%;把两者结合起来的完整MMDiff-CAA,达到12.59%。这说明层的选择和特征方向的注入,两者各自都贡献了实打实的提升,缺一个效果都打折扣。
在具体任务上,MMDiff-CAA相比传统CAA,在空间推理上平均多提升3.6个百分点(在"ahead of"这个关系上甚至从CAA的15.38%直接翻倍到30.77%),在OCR任务上平均多提升1.8个百分点(在"Scene Text-centric VQA"类别的一个特征上从2.88%提升到10.58%)。
顺带做的两件验证工作:找到底是哪些注意力头在干活,以及自动化解释每个特征在说什么
除了消融和引导,论文还做了两项辅助性的分析工作,进一步坐实前面找到的特征确实是"真的"。
第一项是归因补丁(Attribution Patching,一种比传统激活补丁效率高得多的因果分析技术,利用梯度的线性近似,只需要两次前向传播和一次反向传播,就能估算出模型内部某个组件对目标行为的贡献大小,而不必对每个组件都单独做一次完整的干预实验)。研究者用这个方法去定位,到底是哪几个注意力头在驱动某个空间特征的激活。结果发现,归因分数在层的维度上呈现出明显的中间层峰值,这和前面发现的空间特征主要集中在中间层是吻合的。在头的维度上,两种不同的归因计算方法都稳定地指向了同一小撮头,其中有一个头(论文里编号为L13H1)反复出现在多个相关的空间关系查询里,而且注意力图显示它确实聚焦在图片里语义相关的区域上,比如问"什么东西在马桶上面"的时候,这个头就真的盯着马桶上方的物体看。
第二项是自动化解释,借助GPT-4o-mini给每个特征生成一句话描述,并用一个小规模的分类任务给这句描述打一个F1置信度分数。比如第16层第176号特征,被自动总结为"这个神经元对朝向关系激活",从展示的样例图看,不管是问"飞机是不是对着镜头"还是"斑马是背对着长颈鹿",这个特征都稳定地被点亮,F1分数是0.8。
全篇结果汇总一览
下面这张表把三个模型在不同任务上的核心消融结果放在一起,方便直观对比:
| 模型 | 任务 | 目标指标下降 | 通用能力影响 | 对照组影响 |
| MMDiff-Llama | 空间推理 | -10.1% | ≤1.5% | 接近0 |
| MMDiff-Gemma | 空间推理 | -12.3% | ≤1.5% | 接近0 |
| MMDiff-Qwen | 空间推理 | **-14.6%** | ≤1.5% | 接近0 |
| MMDiff-Gemma | 多模态安全 | -9.67%(平均) | -0.03% | +0.41% |
| MMDiff-Gemma | OCR识别 | -16.9%(平均) | ≤1.6% | ≤1.8% |
在增强方向上,MMDiff-CAA相比传统CAA的平均提升是:
| 任务 | 传统CAA平均提升 | MMDiff-CAA平均提升 |
| 空间推理 | +8.96% | **+12.59%** |
| OCR识别 | +2.21% | **+4.02%** |
这套方法目前还有哪些边界
论文自己也承认了几个局限。首先,完整的三项应用(空间、安全、OCR)只在PaliGemma 2这一个模型上全部跑通了,另外两个模型主要验证的是空间推理这一项,把整套流程搬到更大的模型、混合专家架构,或者Qwen-VL、Pixtral这类结构上,还需要进一步验证。
其次,MMDiff-CAA这套增强方法依赖于同时拥有基础模型和指令微调后模型这两个版本,如果只有其中一个,这套方法就退化成普通的SAE特征引导,拿不到那部分额外的提升。
另外,论文提到少数安全相关的候选特征在被消融之后,并没有让模型输出"拒绝回答",而是直接导致生成内容崩溃(也就是输出变得语无伦次),这种情况目前需要靠人工事后过滤来排除,还不能自动识别。
写在后面
读完这篇论文,最触动我的其实是那个"预训练版本 vs 指令微调版本"的对比实验。这个细节很容易被一带而过,但它其实回答了一个更根本的问题:模型的能力到底是"天生"的还是"后天学"的。研究者证明了,至少在PaliGemma 2这个案例里,那些负责空间关系判断的中间层特征,主要是指令微调阶段才真正被激活和强化的,而不是视觉编码器和语言模型简单拼接之后就自带的。这意味着,如果你想改进一个多模态模型的某项具体能力,与其去动预训练阶段的底座,不如去精细调整指令微调这一步,因为这才是能力真正"长出来"的地方。
还有一个让我意外的地方是,那个用随机初始化训练出来的对照组SAE,居然完全失效了,不是效果差一点,而是消融了它挑出来的"顶级特征"之后,VSR准确率几乎纹丝不动(平均只变化0.22%)。这说明如果没有一个可比较的基础模型字典作为锚点,单靠"哪个特征激活频率高"这个信号,是找不到真正有因果作用的特征的,你挑出来的可能只是碰巧总是激活的特征,而不是真正管事的特征。这对以后想做类似模型解剖的研究者来说,是个挺重要的提醒:光看激活模式不够,你得有一个"变化前"的参照系。
这套方法目前还没有触及的一个问题是,当模型不是从"能看图"到"更能看图"这种单一升级,而是同时叠加了多种能力(比如既能看图又能听音频)的时候,这套差分对比的思路还能不能干净地把每种能力单独拆出来?这个问题我觉得值得继续追问下去。
Q&A
Q1:MMDiff是什么?
A:MMDiff是牛津大学团队提出的一套多模态模型差分分析框架,通过对比一个纯语言模型和它经过多模态训练后的版本,找出内部哪些特征方向是因为要处理视觉信息而被重新塑造的,并进一步利用这些特征做消融和引导操控。
Q2:MMDiff能用来做什么实际的事?
A:它可以精准地压制模型的不安全生成行为(安全任务上攻击成功率降低最多28%),也可以增强模型在空间推理和OCR文字识别上的表现(准确率分别平均提升3.6%和1.8%),而且这些操控几乎不影响模型正常的视觉问答能力。
Q3:MMDiff是怎么找到"专门管某个任务"的特征的?
A:先用几何旋转和视觉响应强度两个指标筛出"被多模态训练改造过"的特征集合,再用逐token对比激活分析加上词汇不变性过滤,进一步筛出真正对应特定任务(比如空间关系或文字识别)而不是响应提示词字面内容的特征。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.