事情发生在一个周三的深夜。我打开自己写的Bookmark Brain,输入了一个真实困扰我的问题:“关于API版本管理,2017年的我和2023年的我,到底谁更有道理?”
这个工具的原理很简单——它把我从2016年至今收藏在X(原Twitter)上的所有书签和点赞,一共7万条,塞进了一个RAG(检索增强生成)管道。每次我提问,它就从这7万条历史碎片里,找出语义上最接近的那几条,拼凑出一段听起来很像我会说的回答。不夸张地说,当它回答技术品味问题时,比我特意提示其他大模型“请用我的风格写作”逼真得多。
但那天晚上,它抛给我的,只是一段光滑到无可挑剔的答案。而我期待的是一个截然不同的东西:一个和解。
因为我知道,2017年的我和2023年的我,在同一个问题上,曾经有过几乎相反的判断。Bookmark Brain没有指出这一点,它甚至仿佛没看见。它只是挑出一个离提问最近的观点,然后把它包装得像我此时此地的立场。那一瞬间我意识到,这个系统完美地完成了我设计它时赋予的任务,却在我最需要它的时刻暴露了一个它无法跨越的断层。
它找不到矛盾,更不必说调和矛盾。
这不是我的管道出了bug。这是整个检索式AI这一类东西,注定做不到的事。
后来我把这个发现跟一个朋友讲,朋友是搞认知科学的。他听完沉默了几秒,说了一句让我记到现在的话:“你这个东西,离爱因斯坦的诊断只差一层纸。”
他是对的。
2014年,一位名叫Amni Rusli的作者发过一篇博客,标题叫《不可替代的我们》。那篇文章几乎预言了我此刻的困惑,只不过她没有RAG管道可以举例。她写道,机器永远只能在给定的参数空间里优化,你喂给它数据和代码,它就能在那个池子里穷尽一切可能性。但它永远无法主动跳进另一个完全不同的参数池,然后把东西捞回来。
她的案例是爱因斯坦和狄拉克。她说,爱因斯坦之所以成为爱因斯坦,不是因为他比别人更擅长在经典物理的池子里调整公式,而是因为他敢说:这个池子本身的设定,可能是错的。他读了休谟和马赫的哲学,最终下了一个决断——把“绝对同时性”扔掉。那个决定对经典物理来说不是参数调整,是一次池子更换。
另一个例子是狄拉克。当时克莱因已经给出了一个相对论性的电子波动方程,但那个方程存在一些理论上的不完美。狄拉克对玻尔说,那不算真正解决了问题。然后他带着近乎偏执的信念出门左转,另起炉灶,因为他觉得现有答案不符合他心中“最美丽的理论”。他后来得到的狄拉克方程,不是克莱因版本的微调,而是另一个物种。
这种跳跃,让任何仅仅在向量空间里寻找最相似项的检索系统,一夜回到侏罗纪。
为了把这件事说清楚,我可能需要借用地质学里的一段记忆。
我大学读的是地球物理,整个专业教会我一句核心心法:你永远看不到你想研究的那个东西本身。你拿到的是一条地震波形,是一个重力异常曲线,是一条电阻率测井线。那不是岩石。那只是岩石穿过层层介质后留下的回声。你的全部工作,就是对着这道回声,去想象一个地下结构,这个结构要能刚好产生这个回声,绝无其他可能,并且没有人会在事后递给你一份标准答案。
你要从结果,反向推断出那个产生结果的“案情”。
这个手艺,在逻辑学里有一个正式的名字,就叫“溯因推理”(abduction)。
这么多年我一直没再想起这个词,直到今年1月,Google DeepMind发表了一篇论文,标题干脆利落:《LLMs Can't Jump》。论文的第一作者Tom Zahavy从爱因斯坦亲手画过的一个示意图讲起。那个图画在一封给朋友索洛文的信里,意思是:感官经验需要“跳”到一套公理体系,然后演绎才从那里向前推演。
皮尔士,19世纪的逻辑学家,给这个“跳”的间隙起过三个名字,刚好把推理分成三种。
第一种叫演绎:给你一个规则和一个案例,你推出一个结果。这是唯一保证真理的模式,也是数学和代码运行的默认逻辑。第二种叫归纳:给你一堆案例和结果,你推出一个规则。大语言模型在海量文档上训练,本质就是在做这件事,只不过规模大到可以模拟出类似直觉的东西。而第三种,就是溯因:给你一个规则和一个令人惊讶的结果,你要去构想一个新的案例,或者干脆换一条新的规则,来解释这个结果。
那篇DeepMind的论文说得毫不含糊:大语言模型,至今只会演绎和归纳。溯因的那个跳跃,它们做不到。
请注意,这并不是说它们不够聪明,或者模型规模不够大。论文明确把这个缺陷定位在架构层面,而非能力曲线上的某一点。你喂再多数据,堆再多层Transformer,也只不过让两个池子里的鱼互相记住彼此的气泡,它们依然不会自己挖一条水道游过去。
现在把这三个推理放回我的Bookmark Brain前面。
当它检索到我2017年一篇关于“API应该保持向后兼容、宁可冗余不可激进”的书签,又发现我2023年的一条点赞暗示“兼容层本身就是技术债,长痛不如短痛”,它面对的就是一个溯因问题:同样一个工程师,为什么会在不同时间持有矛盾的技术主张?如果它只是用语义距离决定选哪一条来回答我,那就是在执行一次隐性的演绎——把离得近的案例套进一个预设规则,然后吐出一个结果。至于那个矛盾本身意味着什么,它连提都不会提。
在我搞地球物理的年代,我们管这种眼睛只盯着最近邻的行为叫做“只认最强反射层”。标准操作是:你必须同时解释整条剖面,尤其是那些互相打架的反射轴。解释不清楚的地方,很可能藏着新的构造。
我的书签库里面同样藏着新的构造,但Bookmark Brain选择了绕行。
这其实不是工具的耻辱,从某种意义上说,这正是检索式AI的分工边界。
可是如果你把这个思路推得更远一些,你就会发现,当下对AI的大部分恐慌和大部分期待,都站错了位置。
一方面,很多人焦虑AI会不会在某天具备爱因斯坦那样的创造力。我对这个问题的答案,在那篇DeepMind论文出来之后,反而更踏实了。不是说绝对不能,而是说,如果某天它真能做到了,那必然是因为人类改变了把模型扔进“归纳大海”的基本方式,让它拥有了某种能够主动发现矛盾、主动重构公理的机制。简而言之,你需要给它装备一块“溯因芯片”,而不是继续让它在概率分布上做体操。
另一方面,也有很多人把当前AI的流畅输出误解为深层的理解。他们看到聊天机器人能写诗、能辩论、能翻译法律条文,就以为这背后一定有个小小的爱因斯坦在运算。但真相更像是一个超级厉害的“回声解释器”——它能在给定参数空间里找到那个最符合所有已知反射剖面的地下结构,但它永远不能跳出来质疑:“是不是我们连反射剖面的采集方式都搞错了?”
Amni Rusli在她的博客里还说过一句很有意思的话:机器可以优化,但无法重新定义什么是“好”。因为“好”的定义,本身就在那个池子的外面。
这就解释了为什么,当我们看到AI在围棋上击败人类顶尖选手时,我们惊叹的是它能在既定规则下找到超出人类想象的最优解,但从未有一次,是AI在下棋之前忽然说:“我觉得19×19的棋盘应该改成21×
热门跟贴