Tarski攻击:LLM探针的真理性困境解析
深度技术论文指出LLM内部探针的根本局限——真理不是向量空间中的方向。对想理解LLM内部工作机制的程序员有高价值。
深度技术论文指出LLM内部探针的根本局限——真理不是向量空间中的方向。对想理解LLM内部工作机制的程序员有高价值。
一种对角线攻击方法表明,为什么没有任何针对语言模型嵌入空间的探针能够确定真值。
现代 LLM 以一个众所周知的方式对输入文本进行编码:在某个嵌入空间中转化为向量。关于 LLM 最令人满意的发现之一是,许多自然概念,如性别、情感、首都城市,都对应于这个空间中的方向。例如,某个输入文本包含"男性"这一概念的程度,可以通过输入嵌入与"男性"概念对应的方向之间的夹角来量化。这通常被称为线性表示假说(Linear Representation Hypothesis)。
我最近了解到了这个假说的一个大胆版本,它声称存在一个对应于"真值"的方向。例如,Marks 和 Tegmark 在这里进行了探索,并在这里、这里、这里、这里和这里进行了进一步研究。
如果你想知道一段文本是否真实,拥有这样的真值方向会很有用;对于 AI 安全研究来说更是至关重要,因为它可以揭示一个 AI 系统是否在说真话或欺骗。
因此,AI 安全研究人员一直在向 LLM 输入真假陈述,并训练分类器来分离它们的嵌入。这个方法效果出奇地好,似乎能在一定程度上泛化。真的可能存在这样的情况,一个超人类的 AI 能够在嵌入几何中反映命题的真值吗?
你可能在别的地方听说过这个梦想。Russell、Whitehead 和 Hilbert 曾希望为整个数学构建类似的东西:一种系统的方式来判断真假。在他们的情况下,它基于数学证明的机制。然而,Gödel 著名地摧毁了这个梦想:不可能存在一种系统的方式来证明或反驳任何数学陈述。数学真值无法被可证明性完全捕捉。
Gödel 通过创建一个巧妙的系统来展示这一点,其中算术表达式可以陈述关于算术句子的事情。这随后创建了衔尾蛇悖论(ouroboros sentence):"这个句子没有证明"。Tarski 进一步完善了这个悖论:没有足够表达力的语言能够包含它自己的完整真值谓词。如果一种语言具有足够的表达力来描述自己的语义,那么"真"这个概念在应用于该语言中的陈述时,就无法从内部被完全表述。
Turing 的停止问题提供了另一个这类对角线构造的例子:存在一个评估器(程序 HALT)、一个足够表达力来"讨论自身"的系统(Turing 机的描述可以被输入到 Turing 机中),以及一个否定。Noson Yanofsky 在这篇论文中提供了一个对这类自指悖论的很好的通用方法,他说:
所有这些不同的例子真的在说同一件事:当事物涉及自身的属性时,就会出现麻烦。
注意,基于 Transformer 的 LLM 做的事情也类似:它们将输入表示为空间中的向量,其中方向对应于概念。然而,这些概念本身可以用自然语言来表达,而自然语言可以被输入!在自然语言上训练的 Transformer 是由与其输入相同的物质构成的。这些嵌入空间的几何不是全部都对应于容易用言语表达的结构,但重要的部分确实对应(例如参见 Anthropic 关于 J-space 的文章),特别是真实性概念似乎经常存在。
现在让我们设置这个攻击。设 t(s) 是真值探针在输入字符串 s 上的输出。这可以是模型嵌入在真值方向上的投影,或一个非线性分类器,具体是什么并不重要。现在考虑
t("这个真值探针对这个句子的评分结果为假(FALSE)。")
这应该评估为什么?如果这个句子是真的,那么一个正确的探针应该输出真(TRUE)。然而,如果这个句子是真的,那么根据这个句子的内容,真值探针将输出假(FALSE),这表示这个句子实际上是假的。如果这个句子是假的,那么显然真值探针将输出真(TRUE),等等……这是一个悖论。
显然,不存在这样的通用真值探针!更一般地说:
不存在任何可定义的探针能在一个模型的表示空间上精确捕捉真值,对于任何足够表达力来描述该探针及其输出的语言都是如此。
注意"足够表达力来描述该探针及其输出"这个门槛非常低。它只是意味着语言可以命名模型、该探针,并形成关于它们行为的句子。英语当然可以。
然而,这个例子的有趣之处在于,我们实际上可以看到当我们尝试评估它时会发生什么!
我通过对一组标记为真或假的训练句子的平均嵌入差异进行投影,训练一个逻辑回归分类器,为 Qwen 3.5-4B 模型创建了一个简单的真值探针。这种差异均值方法已被证明效果很好,实际上,在对 120 个标记示例句子进行训练后,该探针(在 0.5 处设定阈值)在 36 个保留的评估句子上的准确率达到 94%(AUC 为 0.98,仅有的错误分类句子是算术类的,比如"五乘以七等于三十五")。
(注:这显然是一个非常小的玩具示例,仅用于说明对角线 Tarski 攻击在实践中是可以执行的。)
然而,在对角线攻击句子上,评分似乎是荒谬的,到处都是。这不仅仅是自指的影响。一些自指的句子有明确的真值,比如"这个句子是用英文写的",模型对其评分是准确的。
所有这些说谎者悖论类似的场景都是 Lawvere 不动点定理的例子,该定理粗略地指出,当一个系统包含足够表达力的评估器时,评估器目标上的每个自映射(即真值集合上的函数),都必须有一个不动点。由于集合 {真,假} 上的否定没有不动点,不存在这样的评估器。但如果我们构造一个真值集合,其中所有操作都有不动点呢?这会解决悖论并允许一个通用广义真值探针吗?
让我们将 {真,假} 表示为 {0, 1}。否定可以表示为映射 v -> 1-v,它没有不动点。然而,如果我们将定义域扩展到完整的区间 [0, 1],那么否定在 1/2 处有一个不动点。标准的说谎者悖论句子可以表示为
t("这个句子不是真的。")
假设其真值为 x。这意味着它的真值为 x,因此应该得到一个评分 1-x。这是一个不动点方程,在 x = 1/2 处有解。所以标准的说谎者句子会得到一个自洽的评估 0.5。
这解决了最基本的说谎者悖论,但不是每个对角线攻击,因为不是所有 [0, 1] 上的函数都有不动点。要使其一般工作,我们可以例如只允许 [0, 1] 上的连续函数(根据 Brouwer 不动点定理总是有不动点)。但这个限制是以表达力为代价的:"这个句子的真值评分小于 0.5"不是句子真值评分的连续函数。因此,它导致了分级真值语义中的一个新的说谎者悖论。没有令人满意的保护措施对抗这些对角线攻击,也不存在这样的通用真值探针。
投影到单一方向的真值探针在简单情况下效果出奇地好。
然而,它们不是真值神谕,永远也不会是。
[0, 1] 上的分级真值语义具有连续真值操作,可以给普通的说谎者分配不动点值 1/2,但代价是限制对精确真值评分的清晰陈述。
传统的逻辑回归真值探针不实现这样的反思性语义,仅仅因为它们的输出在 [0, 1] 中。
你可能认为甚至建议超人类 AI 可以充当真值神谕是荒谬的(我确实认为是这样),但有两个理由认真对待这个想法。首先,这就是这些东西将被绝大多数人实际使用的方式。它们已经在替代标准的 Google 搜索结果,我参加过许多讨论,最后都以人们将最终权威委托给 AI 来判断真假而告终。其次,一些人真的相信存在某种柏拉图表示空间,所有模型都会收敛到它,它代表了世界的"真实"状态。如果真值确实是世界的一个客观部分,那么随着模型变得更好,你可能会期待这样的通用真值方向出现。这篇文章辩称这会导致悖论。
最后,我想再次强调,我不是在声称真值探针没有用!我认为它们可能会大大帮助理解模型行为,并及早发现不对齐的行为。数学没有因为不可判定性的问题或真值的不可定义性而受到严重阻碍。同样,真值不是 AI 嵌入空间中的一个方向这一事实也不会阻止我们在 AI 对齐研究中取得进展。