线性探针(linear probing)是一种「读出」技术:把训练好的模型冻住,取出某一层的内部激活(activation),在这堆数字上训练一个极简单的线性分类器——通常就是逻辑回归——看它能不能预测某个属性。能预测,就说明这个属性在该层的表示中是「线性可解码的」(linearly decodable)。
它怎么工作
假设想验证模型是否知道句子里的名词是单数还是复数。做法是:喂入大量句子,记录第 N 层每个位置(token)的激活向量,把这些向量和「单数/复数」标签配对,训练一个线性分类器。测试准确率高,结论就是:这一层的表示里,单复数信息以线性方式明摆着。
打个比方:模型是个黑箱厨房,探针不是进去改菜谱,而是拿温度计贴在锅壁上。锅壁温度能推出里面在煮什么,但推不出全部;温度计本身也不会做饭。探针的「笨」正是它的优点——一个只会画直线的分类器如果想赢,信息必须是直接摆在那儿的,而不是靠它自己脑补出来。
和邻近概念的区别
| 方法 | 动不动原模型 | 主要目的 |
|---|---|---|
| 探针 probing | 冻结,不改 | 读出某层里有什么信息 |
| 微调 fine-tuning | 改权重 | 提升下游任务表现 |
| 因果干预(激活替换、消融) | 改激活 | 判断该信息是否被下游真正使用 |
| AI 词典:稀疏自编码器">稀疏自编码器 sparse autoencoder | 冻结,额外训一个网络 | 把激活分解成可解释的特征方向 |
关键差别:探针是相关性工具,不是因果工具。
最容易说过头的地方
第一,可解码 ≠ 被使用。某层能读出「这句话是假的」,不代表模型作答时会用上这个信号。信息可能只是输入留下的回音,下游层压根不理。要证明「用了」,得做干预:把这个方向抹掉或替换,看输出变不变。
第二,探针可能作弊。分类器容量太大、数据太少、标签和句子长度或标点相关,它就会学捷径。于是常见做法包括控制容量、加对照任务(control task)、看随机初始化的模型上能不能也探出同样的东西。
第三,准确率不能跨实验比较。层不同、数据不同、训练步数不同,数字之间没有可比性。
第四,探针只说明信息「在那里」,不说明模型内部就真的按线性方式组织——线性可解码性仅仅意味着:存在一条直线能把它分开。
为什么值得关注
对从业者,探针是便宜好用的诊断工具:定位事实性知识大致存在哪几层、做模型编辑时找对位置、为幻觉(hallucination)检测提供「内部是否知道」的信号、在安全场景里监测意图。
对普通人,它给了一个有用的区分:模型「知道」什么和模型「说」什么,是两件事。
一句话总结:探针是贴在黑箱上的温度计,读数很值钱,但别把它当成对厨房的完整描述。
