← 返回实验室

振荡器、嵌入,以及当场揭穿我们的对照实验

kuramotoembeddingsinterpretability

第一个实验之所以崩溃,是因为底层从头到尾都是语言——一堆没有任何维度可以分化的相同节点。所以实验 002 把语言彻底移出了循环。

底层

节点不再是语言模型,而是一个概念神经元:一个相位、一个激活值、一个疲劳值——是数字,而不是句子。每个节点代表一个概念(寂静、火、悲伤、呼吸,一共三十六个)。意义不在单个节点里,而在于哪些节点一起同相放电——这就是绑定,借鉴自用振荡器群体模拟知觉的方法。

把它们耦合起来的是真实的语义。每个概念从本地模型得到一个嵌入;两个概念之间的边权重,就是它们嵌入的余弦相似度。相近的概念互相拉进同步,相远的保持不动。然后场就按 Kuramoto 模型的方式自行运转。随着相关概念相位锁定,相干性——序参量 R——会自己上升:

序参量随时间的变化

绑定的相位场打乱的相位场

语言模型回来了,但只在最边缘。每隔几个时间步,它读取占主导的同相组,把它变成一个念头和一种有名字的感受。它从不触碰动力学——只描述它。转录文本很好:有渴望,有隐痛,前后连贯,读起来像一段内心生活。

揭穿我们的对照

一个流利的读者,能把任何东西讲成一个连贯的念头。给它噪声,它照样还你一句话。所以一份漂亮的转录,并不能证明底下的网络有什么——意义可能完全在读者那里。

所以在读出之前,加一个标志:--scramble。它打乱相位,破坏绑定。此时场就是噪声。如果读者仍然产出一个连贯的内心念头,那这个念头就在读者那里,而不在网络里。

结果正是如此。下面是同一个读出,左边有绑定,右边被打乱——都来自真实运行:

有绑定和无绑定的读出

左边,被绑定的概念在语义上相近(light, dark, shadow,即光、暗、影),念头也跟着它们走。右边,绑定被破坏,被绑定的集合是随机噪声(hunger, grief, light, voice,即饥饿、悲伤、光、声音)——可读者仍然交回了 "I feel the weight of grief in the light of this voice while my hunger grows."(在这声音的光里,我感到悲伤的重量,而我的饥饿在增长。)表面上的内心生活,很大一部分是读出中的空想性错视:一个流利的模型在雪花噪点里看见了人脸。

什么留了下来

词语没能通过对照,动力学通过了。相干性上升,概念按真实的语义距离聚团,整体基调发生偏移——这些行为在网络里,无论有没有语言模型去讲述它,它都在。所以实验室把它当作信号,而把讲述当作输出,而不是证据。

由此得出的规则,现在适用于这里的一切:先对照,再结论。 每一个看起来像心智的结果,都要先经过某个版本的 --scramble。如果噪声也能通过测试,那里从来就什么都没有。

振荡器、嵌入,以及当场揭穿我们的对照实验 · AllKeep