鲁棒性与可解释性

探针分类器(probing classifiers)

/ PROH-bing KLASS-uh-fy-erz /

探针分类器,是你挂接到一个大模型内部的一个小巧、简单的模型,用来追问:「这里头是不是含有某一类特定的信息?」大模型在处理输入时,会把每个输入变成一串内部的数值表示。探针拿起这些内部数值,去试着预测某个我们关心的属性——这个隐藏状态知不知道这个词的词性?它有没有编码情感?它有没有跟踪代词指的是谁?如果一个简单的探针能把那个属性读出来,就说明那信息本就在那儿、等着被读。

可以把它想成:往机器的肚子里插一个传感器,去测某一根管道里流过的是什么信号。你不去重新接线,只是测量而已。探针已成为可解释性研究的主力工具,对语言模型尤其如此,因为它能给「网络的哪个部位浮现出语法结构?」这类问题一个量化的答案——在不同的层上训练探针,看着那个属性一层层地浮现、又消退。

探针之所以要紧,是因为它把可解释性从「轶事」推向了「测量」。但它带着一个著名而微妙的陷阱。如果你的探针本身很强大,它可能是自己学会了那个属性,而非仅仅读出模型早已编码好的东西——于是探针的高准确率反倒会误导人。还有关键的一条:发现信息「在场」,并不能证明模型在它真正的任务里用到了它。探针显示的是「从一个表示中能解码出什么」,而非「模型拿它来做什么」;因此研究者会拿对照组来比较,并刻意偏爱「弱探针」,以保持这项检验的诚实。

研究者在一个语言模型的隐藏状态上训练了一个简单的线性探针,发现它能以95%的准确率读出一个名词是单数还是复数——尽管模型从未被明确教过语法。结论是:单复数信息就摆在那些表示里。可它答不上来的那个悬而未决的问题是:模型在选下一个词时,真的依赖它吗?

探针表明信息被编码了——却表明不了模型是否用到了它。

探针的头条铁律:「能解码」不等于「被使用」。如果一个探针提取出了某个属性,你所证明的,仅仅是这个属性能从表示中被还原——可能是因为探针太强,也可能是因为那信息只是顺带存在。要证明模型确实依赖它,需要做「干预」实验,光靠探针不行。

又称
probediagnostic classifier探针探测分类器探針探測分類器