华盛顿大学Pedro Domingos:当神经网络遇上逻辑推理,Tensor Logic能否成为AI的通用语言? 原创

华盛顿大学Pedro Domingos教授提出的张量逻辑是一种革命性的AI编程语言,它通过将逻辑推理与张量代数在数学层面统一,实现了符号AI和神经网络的深度融合。该语言仅使用张量方程这一种构造,就能优雅地实现从Transformer到形式推理、从核机器到图模型等多种AI范式,更重要的是开辟了在嵌入空间中进行可靠推理的新方向,有望解决大型语言模型的幻觉和不透明性问题,成为推理、数学和编码模型的理想语言。

在科技发展史上,每个领域的腾飞往往伴随着一种专属语言的诞生。物理学因微积分而起飞,电气工程因复杂数的引入而发展,互联网的繁荣离不开HTML。

华盛顿大学Pedro Domingos:当神经网络遇上逻辑推理,Tensor Logic能否成为AI的通用语言?

华盛顿大学计算机科学与工程学院的Pedro Domingos教授在2025年10月发表的这项研究中,提出了一个雄心勃勃的想法:人工智能是否也需要找到自己的专属语言?这篇发表于arXiv的论文给出了他的答案——张量逻辑(Tensor Logic),一种试图统一神经网络和符号推理的全新编程语言。

当前,Python虽然是人工智能领域事实上的标准语言,但这个原本并非为AI设计的语言正显露出力不从心的迹象。PyTorch和TensorFlow等深度学习框架虽然提供了自动微分和GPU加速等重要功能,但它们本质上只是Python的补充工具包,在自动推理和知识获取等关键任务上帮助有限。研究团队长期以来一直试图用各种临时方案来弥补这些缺陷,但效果并不理想。另一方面,像LISP和Prolog这样的经典AI语言虽然在符号推理方面表现出色,却在可扩展性和学习能力上存在明显短板。

这项研究的核心创新在于发现了一个令人惊讶的事实:逻辑规则和爱因斯坦求和(Einstein summation)本质上是同一种运算。基于这个观察,Pedro Domingos提出的张量逻辑将张量方程作为唯一的语言构造,通过这种简洁而强大的方式,优雅地实现了包括Transformer、形式推理、核机器和图模型在内的各种AI范式。更重要的是,张量逻辑还开辟了全新的可能性,比如在嵌入空间中进行可靠推理——这种方法既具有神经网络的可扩展性和可学习性,又保留了符号推理的可靠性和透明度。

AI的语言困境:为什么现有工具都不够好?

回顾历史,每当一个领域找到合适的表达语言时,就会迎来爆发式发展。牛顿发明微积分之后,物理学才真正腾飞;没有向量微积分记号,麦克斯韦方程组将无法使用;现代芯片设计依赖硬件描述语言,数据库管理依靠关系代数。一个好的符号系统能为该领域的从业者节省时间,集中注意力,甚至改变思维方式,使关键问题变得显而易见,避免反复从头开始解决问题。

然而,人工智能是否已经找到了自己的语言呢?LISP作为最早的高级编程语言之一,确实使符号AI成为可能,Prolog在20世纪80年代也曾风靡一时。但这两种语言都因可扩展性差和缺乏学习支持而最终被Java和C++等通用语言取代。概率图模型为概率AI提供了通用语言,但其适用性受到推理成本的限制。马尔可夫逻辑等形式系统虽然能无缝结合符号AI和概率AI,但同样因推理成本过高而受限。

Python目前是AI领域事实上的标准语言,但它从未为AI而设计,这一点日益明显。PyTorch和TensorFlow等库虽然提供了自动微分和GPU实现等重要功能,但在自动推理和知识获取等关键任务上却毫无帮助。神经符号AI试图通过将深度学习模块与符号AI模块结合来改善这一状况,但往往同时具有两者的缺点。总而言之,AI显然还没有找到真正属于自己的语言。

一个理想的AI语言应该具备哪些特征?与Python不同,它应该隐藏所有与AI无关的细节,让AI程序员专注于真正重要的事情。它应该便于将先验知识整合到AI系统中,并对其进行自动推理。它还应该促进自动学习,生成的模型应该透明且可靠。它必须能够轻松扩展。符号AI具备其中一些特性,深度学习具备另一些特性,但两者都不完整。因此,研究团队需要将它们合并。

张量逻辑正是通过统一两者的数学基础来实现这一目标。这个统一基于一个观察:几乎所有神经网络都可以用张量代数构建,所有符号AI都可以用逻辑编程构建,而这两者在根本上是等价的,只是使用的原子数据类型不同。研究首先简要回顾了逻辑编程和张量代数的基础知识,然后定义了张量逻辑并描述了其推理和学习引擎。接着展示了如何在张量逻辑中优雅地实现神经网络、符号AI、核机器和图模型。最后展示了张量逻辑如何实现在嵌入空间中进行可靠且透明的推理。

逻辑编程与张量代数:两个世界的共同语言

符号AI中使用最广泛的形式系统是逻辑编程。最简单的逻辑编程语言Datalog由规则和事实组成。事实是形如r(o1, ..., on)的陈述,其中r是关系名称,o是对象名称。例如,Parent(Bob, Charlie)表示Bob是Charlie的父母,Ancestor(Alice, Bob)表示Alice是Bob的祖先。规则的形式为A0 ← A1, ..., Am,其中箭头表示"如果",逗号表示逻辑"与",每个A的形式为r(x1, ..., xn),r是关系名称,x是变量或对象名称。

举个例子,规则Ancestor(x, y) ← Parent(x, y)表示父母是祖先,而规则Ancestor(x, z) ← Ancestor(x, y), Parent(y, z)表示如果x是y的祖先且y是z的父母,那么x是z的祖先。非正式地说,规则表示如果存在已知事实使其右侧(主体)的所有关系同时为真,则其左侧(头部)为真。

在数据库术语中,Datalog规则是一系列连接操作后跟投影操作。两个关系R和S的(自然)连接是由R和S中对相同参数具有相同值的元组形成的所有元组的集合。当两个关系没有共同参数时,它们的连接退化为笛卡尔积。关系R在其参数子集G上的投影是通过从R中的元组中丢弃不在G中的所有参数而获得的关系。

逻辑编程中的两种常见推理算法是前向链接和后向链接。在前向链接中,规则被反复应用于已知事实以推导新事实,直到无法推导出更多事实为止。结果称为程序的演绎闭包或不动点,所有感兴趣的问题都可以通过检查它来回答。后向链接试图通过查找与之匹配的事实或以其为头部的规则以及与主体匹配的事实来回答问题,依此类推递归进行。Datalog中的前向和后向链接都是可靠的推理过程,这意味着它们给出的答案保证在逻辑上遵循程序中的规则和事实。逻辑程序既有声明性语义又有过程性语义,这意味着规则既可以被解释为关于世界的陈述,也可以被解释为通过调用主体中的过程并组合结果来计算给定参数的头部的过程。

归纳逻辑编程(ILP)领域关注从数据中学习逻辑程序。例如,ILP系统可能从一个小型父母和祖先关系数据库中归纳出上述规则。一旦归纳出来,这些规则可以回答有关任意长度和涉及任何人的祖先链的问题。一些ILP系统还可以进行谓词发明,即发现数据中未明确出现的关系,类似于神经网络中的隐藏变量。

张量由两个属性定义:类型(实数、整数、布尔等)和形状。张量的形状包括其秩(索引数)和每个索引的大小(元素数)。例如,视频可以由形状为(t, x, y, c)的整数张量表示,其中t是帧数,x和y是帧的宽度和高度(以像素为单位),c是颜色通道数(通常为3)。矩阵是秩为2的张量,向量是秩为1的张量,标量是秩为0的张量。

爱因斯坦记号通过省略所有求和符号并隐式地对所有重复索引求和来简化张量方程。例如,AijBjk表示矩阵A和B的乘积,对j求和并产生索引为i和k的矩阵。更一般地,两个张量A和B具有公共索引β的爱因斯坦和(或简称einsum)是张量C,使得Cαγ = Σβ AαβBβγ,其中α、β和γ是索引集,α是A的索引中不出现在B中的子集,α和β的元素可以以任何顺序交错,B和γ同理。神经网络中几乎所有的线性和多线性运算都可以简洁地表示为einsum。

像矩阵一样,张量可以分解为较小张量的乘积。特别是,Tucker分解将张量分解为相同秩的更紧凑的核心张量和k个因子矩阵,每个因子矩阵将核心张量的一个索引扩展为原始张量的一个索引。

张量逻辑的核心:当关系遇上张量

张量逻辑基于两个关键问题的答案:张量和关系之间有什么联系?Datalog规则和einsum之间有什么联系?

第一个问题的答案是,关系是稀疏布尔张量的紧凑表示。例如,社交网络可以用邻接矩阵Mij表示,其中i和j的范围是个人,如果i和j是邻居则Mij = 1,否则为0。但对于大型网络来说,这是一种低效的表示,因为几乎所有元素都是0。网络可以通过关系更紧凑地表示,每对邻居有一个元组;不在关系中的对被假定为不是邻居。更一般地,秩为n的稀疏布尔张量可以通过n元关系紧凑地表示,每个非零元素有一个元组,效率提升通常随n呈指数增长。

第二个问题的答案是,Datalog规则是对布尔张量的einsum,并对结果逐元素应用阶跃函数。考虑规则Aunt(x, z) ← Sister(x, y), Parent(y, z)。将关系Aunt(x, z)、Sister(x, y)和Parent(y, z)分别视为布尔矩阵Axz、Sxy和Pyz,那么Axz = H(SxyPyz) = H(Σy SxyPyz)当且仅当对于至少一个y,Sxy和Pyz都为1时才为1。换句话说,einsum SxyPyz实现了Sister(x, y)和Parent(y, z)的连接。如果x是z的姑姑或姨妈,y就是x的兄弟姐妹,同时也是z的父母。阶跃函数是必要的,因为一般来说,对于给定的(x, z)对,可能有多个y使得Sxy = Pyz = 1,导致结果大于1。然后阶跃函数将其减少到1。

由于张量和关系以及einsum和Datalog规则之间存在直接对应关系,因此也应该有直接对应于数据库连接和投影的张量运算。研究因此定义了张量投影和张量连接。张量T在其索引子集α上的投影是πα(T) = Σβ Tαβ,其中β是T的不在α中的索引集。换句话说,T在α上的投影是对α的每个值,T的所有具有该α值的元素的总和。两个张量U和V沿公共索引集β的连接是(U ?? V)αβγ = UαβVβγ,其中α是U的维度中不在V中的子集,γ和V同理。换句话说,两个张量在公共索引子集β上的连接对具有相同β值的每对元素有一个元素,该元素是它们的乘积。

张量逻辑程序是一组张量方程。张量方程的左侧(LHS)是正在计算的张量。右侧(RHS)是一系列张量连接后跟张量投影,以及可选地逐元素应用于结果的单变量非线性函数。张量由其名称后跟索引列表表示,索引以逗号分隔并括在方括号中。连接符号被省略,投影是到LHS上的索引。例如,单层感知器由张量方程Y = step(W[i] X[i])实现,其中在i上连接并将其投影出来实现了W和X的点积。

注意,与NumPy、PyTorch等中的einsum实现一样,张量方程比原始爱因斯坦记号更通用:被求和的索引是那些不出现在LHS中的索引,因此重复索引可能被求和也可能不被求和。张量元素默认为0,具有相同LHS的方程被隐式求和。这既保持了与逻辑编程的对应关系,又使张量逻辑程序更短。张量类型可以声明或推断。将张量设置为等于文件会将文件读入张量。读取文本文件会产生一个布尔矩阵,如果文本中的第i个位置包含词汇表中的第j个单词,则其第ij个元素为1。

这就是张量逻辑的完整定义。除此之外没有关键字、其他构造等。但是,允许一些语法糖是方便的,虽然不会增加语言的表达能力,但使编写常见程序更加方便。例如,研究允许:一个方程中的多个项、索引函数、归一化、其他张量函数、替代投影运算符、切片和过程附加。张量逻辑接受Datalog语法;用括号而不是方括号表示张量意味着它是布尔的。

作为另一个简单示例,多层感知器可以通过方程X[i, j] = sig(W[i, j, k] X[i-1, k])实现,其中i的范围是层,j和k的范围是单元,sig()是sigmoid函数。不同的层可以具有不同的大小(相应的权重矩阵隐式地用零填充以构成完整的张量)。基本的循环神经网络(RNN)可以通过X[i, ∗t+1] = sig(W[i, j] X[j, ∗t] + V[i, j] U[j, t])实现,其中X是状态,U是输入,i和j的范围是单元,t的范围是时间步。∗t符号表示t是虚拟索引:不为其分配内存,X[i]向量的连续值被写入同一位置。由于RNN是图灵完备的,上述实现意味着张量逻辑也是图灵完备的。

推理与学习:让AI系统自动优化

张量逻辑中的推理使用前向和后向链接的张量泛化来执行。在前向链接中,张量逻辑程序被视为线性代码。张量方程依次执行,每个方程计算必要输入可用的张量元素;这重复进行,直到无法计算新元素或满足停止标准。在后向链接中,每个张量方程被视为函数。查询是顶层调用,每个方程调用其RHS上张量的方程,直到数据中有所有相关元素或子查询没有方程。在后一种情况下,(子)查询元素默认分配为0。是使用前向链接还是后向链接取决于应用。

因为张量逻辑中只有一种类型的语句——张量方程——自动微分张量逻辑程序特别简单。除了单变量非线性函数外,张量方程的LHS对RHS上张量的导数只是RHS上其他张量的乘积。更精确地说,如果Y[...] = T[...] X1[...] ... Xn[...],那么∂Y[...]/∂T[...] = X1[...] ... Xn[...]。

因此,张量逻辑程序的梯度也是张量逻辑程序,每个方程及其RHS上的张量都有一个方程。省略索引以简洁起见,损失L对张量T的导数是∂L/∂T = ΣE (dL/dY)(dY/dU)ΠU\T X,其中E是T出现在其RHS中的方程,Y是方程的LHS,U是其非线性函数的参数,X是U中的张量。

学习张量逻辑程序需要通过一个或多个张量方程指定损失函数及其应用的张量。例如,要通过最小化最后一层输出的平方损失来学习MLP,可以使用方程Loss = (Y[e] − X[∗e, N, j])²,其中e的范围是训练样例,j的范围是单元,Y包含目标值,X是如上定义的扩展了虚拟索引的MLP,N是层数。默认情况下,所有未作为训练数据提供的张量都将被学习,但用户可以指定是否应保持任何张量不变(例如,超参数)。优化器本身可以用张量逻辑编码,但通常会使用预先提供的优化器。

虽然传统神经网络中的反向传播对所有训练样例应用于相同的架构,但在张量逻辑中,结构可能因样例而异,因为不同的方程可能适用于不同的样例,通过所有可能的样例推导的并集进行反向传播将是浪费的。幸运的是,通过结构反向传播已经有了解决方案,它为每个样例更新每个方程的参数,次数等于它在样例推导中出现的次数。将此应用于RNN会产生通过时间反向传播的特殊情况。

学习由一组固定方程组成的张量逻辑程序非常灵活,因为方程可以表示具有相同连接结构的任何规则集。此外,张量逻辑中的张量分解实际上是谓词发明的泛化。例如,如果要学习的程序是方程A[i, j, k] = M[i, p] M'[j, q] M''[k, r] C[p, q, r],并且A是唯一的数据张量,学习的M、M'、M''和C形成A的Tucker分解;将它们阈值化为布尔值会将它们转变为发明的谓词。

实现各种AI范式:从神经网络到符号推理

卷积神经网络是具有卷积层和池化层的MLP。卷积层在图像的每个位置应用滤波器,可以通过形式为Features[x, y] = relu(Filter[dx, dy, ch] Image[x+dx, y+dy, ch])的张量方程实现,其中x和y是像素坐标,dx和dy是滤波器坐标,ch是RGB通道。池化层将附近滤波器块组合为一个,可以通过Pooled[x/S, y/S] = Features[x, y]实现,其中/是整数除法,S是步幅。

图神经网络(GNN)将深度学习应用于图结构数据(例如社交网络、分子、代谢网络、Web)。GNN的实现包括多个组件:网络的图结构由Neig(x, y)关系定义,每个相邻的(x, y)对有一个事实;主张量Emb[n, l, d]包含每个层l中每个节点n的d维嵌入;初始化将每个节点的第0层嵌入设置为其特征;然后网络执行L次消息传递迭代,每层一次。每次迭代首先对每个节点应用一个或多个感知器层,然后通过连接张量Neig(n, n')和Z[n', l, d]来聚合每个节点邻居的新特征Z。对于每个节点,这会将所有非邻居的贡献清零;结果是邻居特征的总和。

注意力机制是大型语言模型的基础,在张量逻辑中也很容易实现。给定嵌入矩阵X[p, d],其中p的范围是项目(例如文本中的位置),d的范围是嵌入维度,查询、键和值矩阵通过将X乘以相应的权重矩阵获得。然后可以分两步计算注意力,第一步将每个位置的查询与每个键进行比较,第二步返回由相应比较加权的值向量的总和。

研究团队展示了如何用仅十几个张量方程实现整个Transformer。文本可以用关系X(p, t)表示,说明文本中的第p个位置包含第t个标记。然后通过将X(p, t)乘以嵌入矩阵Emb[t, d]获得文本的嵌入EmbX[p, d]。下一个方程实现位置编码。然后将残差流初始化为文本嵌入和位置编码的总和。注意力按上述方式实现,每个张量有两个额外的索引:b表示注意力块,h表示注意力头。然后将注意力头的输出连接起来,添加到残差流并进行层归一化。MLP层的实现与之前相同,具有块和位置的额外索引,它们的输出也被归一化并添加到流中。最后,通过将流与每个标记的输出权重向量点乘并通过softmax获得输出(标记概率)。

Datalog程序是有效的张量逻辑程序。因此,任何可以在Datalog中完成的事情都可以在张量逻辑中完成。这足以实现许多符号系统,包括在无函数域中的推理和规划。

核机器可以通过方程Y[Q] = f(A[i] Y[i] K[Q, i] + B)实现,其中Q是查询样例,i的范围是支持向量,f()是输出非线性函数(例如sigmoid)。然后核K由其自己的方程实现。例如,多项式核是K[i, i'] = (X[i, j] X[i', j])^n,其中i和i'的范围是样例,j的范围是特征,n是多项式的次数。高斯核是K[i, i'] = exp(−(X[i, j] − X[i', j])²/ Var)。

概率图模型将一组随机变量的联合概率分布表示为因子的归一化乘积。图模型中的构造和运算直接映射到张量逻辑中的构造和运算。因子是张量,边缘化是投影,逐点乘积是连接。每个图模型都可以表示为连接树,这是一个因子树,其中每个因子是原始模型中因子的连接。所有边际和条件查询都可以通过依次边缘化因子并将它们与父因子逐点相乘来在树大小的线性时间内回答。连接树是树状张量逻辑程序,即没有张量出现在多个RHS中的程序。因此,可以通过对该程序进行后向链接来执行线性时间推理。

然而,连接树可能比原始模型大得多,需要近似推理。两种最流行的方法是循环置信传播和蒙特卡洛采样。循环置信传播是表示模型的张量逻辑程序上的前向链接。采样可以通过具有选择性投影的后向链接来实现(即用其项的随机子集替换投影)。

嵌入空间推理:可靠性与灵活性的结合

张量逻辑最有趣的特性是它提出的新模型。研究展示了如何在嵌入空间中执行知识表示和推理,并指出了这种方法的可靠性和透明度。

首先考虑对象的嵌入是随机单位向量的情况。嵌入可以存储在矩阵Emb[x, d]中,其中x的范围是对象,d的范围是嵌入维度。将Emb[x, d]乘以独热向量V[x]然后检索相应对象的嵌入。如果V[x]是表示集合的多热向量,S[d] = V[x] Emb[x, d]是集合中对象嵌入的叠加。某个对象A的点积D[A] = S[d] Emb[A, d]如果A在集合中则约为1,否则约为0(标准差为√(N/D),其中N是集合的基数,D是嵌入维度)。然后在1/2处阈值化告诉我们A是否在集合中,错误概率随嵌入维度而降低。

相同的方案可以扩展到嵌入关系。考虑简单起见的二元关系R(x, y)。那么EmbR[i, j] = R(x, y) Emb[x, i] Emb[y, j]是关系中元组嵌入的叠加,其中元组的嵌入是其参数嵌入的张量积。这是一种张量积表示。方程D[A, B] = EmbR[i, j] Emb[A, i] Emb[B, j]检索R(A, B),即如果元组(A, B)在关系中则D[A, B]约为1,否则为0,因为两个随机单位向量的点积约为0。

关系符号本身可以被嵌入。任意元数的关系可以简化为(关系、参数、值)三元组的集合。因此,整个数据库可以作为单个秩为3的张量嵌入。下一步是嵌入规则。可以通过用嵌入替换Datalog规则的前件和后件来嵌入它:如果规则是Cons(...) ← Ant1(...), ..., Antn(...),其嵌入是EmbCons[...] = EmbAnt1[...] ... EmbAntn[...],其中EmbAnt1[...] = Ant1(...) Emb[...] ... Emb[...],等等。

现在可以通过对嵌入规则进行前向或后向链接来在嵌入空间中进行推理。可以通过将查询的张量与其参数的嵌入连接来提取查询的答案,如上所示对于任何关系。这给出了大致正确的结果,因为每个推断的张量可以表示为嵌入关系的连接的投影之和,并且每个参数的乘积Emb[x, i] Emb[x', i]约为单位矩阵。错误概率随嵌入维度而降低,如前所述。为了进一步降低它,可以定期提取、阈值化和重新嵌入推断的张量(在极限情况下,在每次规则应用后)。

然而,最有趣的情况是当对象的嵌入是学习的。嵌入矩阵及其转置的乘积Sim[x, x'] = Emb[x, d] Emb[x', d]现在是通过嵌入的点积测量每对对象相似性的格拉姆矩阵。相似的对象以与其相似性成比例的权重相互"借用"推理。这导致了一种强大的类比推理形式,它在深度架构中明确结合了相似性和组合性。

如果对每个方程应用sigmoid,σ(x, T) = 1/(1 + e^(-x/T)),将其温度参数T设置为0实际上将格拉姆矩阵减少为单位矩阵,使程序的推理纯粹是演绎的。这与大型语言模型形成对比,后者即使在T = 0时也可能产生幻觉。它也比检索增强生成强大得多,因为它有效地检索规则下事实的演绎闭包而不仅仅是事实。

提高温度使推理越来越类比,相似度越来越低的样例相互借用推理。最佳T将取决于应用,并且对于不同的规则可能不同(例如,某些规则可能是数学真理并且具有T = 0,而其他规则可能用于累积弱证据并且具有高T)。

可以在推理期间的任何时点提取推断的张量。这使得推理高度透明,与基于大型语言模型的推理模型形成对比。在足够低的温度下,它也是高度可靠的并且不受幻觉影响,再次与基于大型语言模型的模型形成对比。同时,它具有嵌入空间推理的泛化和类比能力。这可能使它成为广泛应用的理想选择。

扩展之路:如何处理大规模问题

对于大规模学习和推理,涉及密集张量的方程可以直接在GPU上实现。对稀疏和混合张量的运算可以使用至少两种方法之一来实现。

第一种是关注点分离:密集(子)张量上的运算在GPU上实现,稀疏(子)张量上的运算通过将(子)张量视为关系使用数据库查询引擎实现。然后可以将查询优化的全部能力应用于组合这些稀疏(子)张量。整个密集子张量可以被数据库引擎视为单个元组,带有指向子张量的参数。然后使用GPU连接和投影密集子张量。

第二种也是更有趣的方法是在GPU上执行所有运算,首先通过Tucker分解将稀疏张量转换为密集张量。这比直接对稀疏张量进行运算在效率上高出指数级,并且如前一节所示,即使是随机分解也足够了。代价是会有小概率出错,但这可以通过适当设置嵌入维度和通过阶跃函数对结果进行去噪来控制。通过Tucker分解进行扩展具有显著优势,即它与前面几节中描述的学习和推理算法无缝结合。

至顶AI实验室洞见

张量逻辑不仅仅是一种新的编程语言,更是一种全新的思维方式。它在科学计算领域也可能大有用武之地,因为科学计算本质上就是将方程转换为代码,而张量逻辑使这种转换比以往任何语言都更直接,通常能实现纸上符号与代码符号之间的一一对应。在科学计算中,相关方程被包裹在控制其执行的逻辑语句中。张量逻辑通过将相应的布尔张量松弛为数值张量,并可选地将结果阈值回逻辑,使这种控制结构自动可学习。同样的方法原则上适用于使任何程序可学习。

任何新编程语言都面临着被广泛采用的陡峭攀登。张量逻辑的成功机会如何?AI编程不再是小众领域;张量逻辑可以像Java乘着互联网浪潮一样乘着AI浪潮获得广泛采用。与Python的向后兼容性至关重要,张量逻辑非常适合这一点:它最初可以用作einsum的更优雅实现和Python到推理任务的扩展,随着它的发展,它可以吸收越来越多NumPy、PyTorch等的特性,直到它取代它们。

最重要的是,新语言的采用是由它们治愈的重大痛点和它们支持的杀手级应用驱动的,张量逻辑非常具有这些特性:例如,它有可能治愈大型语言模型的幻觉和不透明性,并且是推理、数学和编码模型的理想语言。围绕张量逻辑培育一个开源社区将是重中之重。张量逻辑适合紧密集成编码、数据整理、建模和评估的集成开发环境,如果它起飞,供应商将竞相支持它。它也非常适合教学和学习AI,这是它可以传播的另一个途径。

论文地址:

https://arxiv.org/pdf/2510.12269

END
本文来自至顶AI实验室,一个专注于探索生成式AI前沿技术及其应用的实验室。致力于推动生成式AI在各个领域的创新与突破,挖掘其潜在的应用场景,为企业和个人提供切实可行的解决方案。

 

Q&A

Q1:张量逻辑与现有的深度学习框架(如PyTorch和TensorFlow)有什么本质区别?

A:张量逻辑与PyTorch、TensorFlow最本质的区别在于它不是Python的补充工具包,而是一种专门为AI设计的编程语言。它只有一种语言构造——张量方程,通过统一神经网络的张量代数和符号推理的逻辑编程,将两者在数学基础上融合。而PyTorch等框架虽然提供了自动微分和GPU加速,但在自动推理和知识获取等符号AI任务上帮助有限。更重要的是,张量逻辑能够在嵌入空间中进行可靠的推理,在温度参数为0时不会产生幻觉,这是大型语言模型无法做到的。

Q2:张量逻辑如何同时实现符号推理的可靠性和神经网络的学习能力?

A:张量逻辑的关键创新在于发现逻辑规则本质上就是对布尔张量的爱因斯坦求和运算。通过这一统一,Datalog规则可以直接转换为张量方程,符号推理变成了张量运算。当对象嵌入是学习的时候,通过调节温度参数,系统可以在纯演绎推理(温度为0,完全可靠)和类比推理(温度较高,允许相似对象相互借用推理)之间连续调节。推断的张量可以在任何时点提取,使推理过程高度透明。同时,由于只有一种语句类型,自动微分变得特别简单,梯度计算也是张量方程,从而实现了自动学习。

Q3:张量逻辑在实际应用中如何处理大规模数据的计算效率问题?

A:张量逻辑提出了两种主要的扩展方法。第一种是关注点分离:密集张量运算直接在GPU上实现,而稀疏张量运算使用数据库查询引擎实现,充分利用查询优化技术。第二种更有趣的方法是通过Tucker分解将所有稀疏张量转换为密集张量后在GPU上操作,这比直接操作稀疏张量的效率高出指数级。即使使用随机分解也能获得足够准确的结果,错误概率可以通过适当设置嵌入维度和应用阶跃函数去噪来控制。这种方法的优势在于它能与学习和推理算法无缝结合,使得大规模符号推理和神经网络训练可以在同一框架下高效进行。

来源:至顶AI实验室

0赞

好文章,需要你的鼓励

2025

10/28

10:56

分享

点赞