

在芯片制造中往往会有一些器件是坏的,传统做法是避开这些坏器件,亦或是直接判定整块芯片报废。香港大学教授李灿团队在近期两篇论文里换了一个不一样的思路。
第一篇相关论文发表在 Nature Communications,他和团队让芯片在训练过程中能够主动适应自身硬件的缺陷,把不完美的器件纳入计算以后,存储容量反而实现了超线性的增长。
第二篇相关论文发表在 Nature Electronics,他和团队用数学变换绕过故障器件,在将近四成器件失效的芯片上依然实现了超过 99.999% 的计算精度。两篇论文共同指向了一个判断,那就是不完美的硬件也能做可靠的计算。
为什么会这样?让我们先从电脑的内存说起,当你存一张照片到电脑里,电脑需要知道它到底在哪个位置,就像图书馆里每本书都有编号一样,找一本书得先查编号。但人脑不是这么干活的,当你听到一首歌的前奏,就能想起来整首歌。当你看到半张脸,就能认出来老朋友,这种能力便叫联想记忆。
联想记忆在计算机科学里是一个经典的问题。科学家一直想让机器也能拥有这种能力,因为它在很多场景下都要比精确寻址更高效。譬如你在模糊的照片里识别一个人,亦或是在一个残缺的图案里补全缺失的部分,这些任务都需要依赖联想记忆。过去的系统存在一个限制,就是存储的模式越多,就越容易互相干扰。想存更多的话,就只能把网络建得更大,这其实就是所谓的容量上限。
李灿和团队想做的事情,是让芯片也掌握这种联想能力,并且能够打破这个容量上限。他们研究的器件叫作忆阻器,它可以像人脑的突触一样工作,把存储和计算放在同一个器件里面。忆阻器的好处在于省去了数据搬运的功耗,在边缘设备上非常有吸引力。但是忆阻器有一个麻烦,制造工艺决定了它不可能每个器件都是完美的,总有坏的、不准的以及卡死的。
之前的做法是建更大的网络来存更多的东西。当网络越大,能够存的模式越多,但是也越容易混淆。这就像图书馆面积越大,藏书越多,找起来就越麻烦一样。李灿和团队开发了一种新的训练算法,让芯片在训练过程中测量并去补偿每个器件的真实缺陷。李灿表示,这个训练算法和之前的算法完全不同。假如没有缺陷,系统能自适应地探索怎么更高效地存储。假如器件有缺陷,它会在训练中把不理想的器件给规避掉,让整个系统仍然是可用的。
他们还引入了一种多层结构,多层结构在隐藏层之中加入了非线性操作,拓展了网络的复杂程度。用李灿的话来说,这等于让存储容量变得更高效了。多层结构的价值在于,它让网络可以表达更复杂的映射关系,而不用把单层网络做得无限的大。这就像盖房子一样,以前只能往宽了去盖,现在可以往高了去盖。
实验数据显示,同一个系统同时处理二值和连续值数据的时候,所使用的器件数量最多减少 95%,芯片存储容量大约是此前最先进设计方案的两倍。在结构化的真实数据上,容量增长速度超过了网络规模本身的速度,实现了超线性的扩展。整个网络只需更新一次就能完成,回忆时间缩短了最高 99.7%,能效提升了最高 8.8 倍。据了解,这些结果是在包含多个 64×64 忆阻器阵列的完整集成芯片上完成的。
一般来说,网络规模翻倍之后,容量也会翻倍。超线性意味着网络规模翻倍之后,容量增长的幅度比翻倍要更多。这说明系统在利用缺陷的过程之中,找到了一种更加高效的存储方式。假如器件没有缺陷,这个算法也能够让系统自己去探索怎么更高效地存储。这其实是一个自我探索的过程,算法不是被固定死的,它自己会在训练中寻找最优解。
第二篇论文面对的是另一个技术问题。模拟计算天然地容易受器件故障影响,精度和可靠性比较受限。已有的容错技术包括冗余和重训练,在很多应用中根本不够用。冗余的意思是多用几个器件来作备份,坏了一个还有替补的。重训练的意思是发现错误之后重新调整参数。但这两种方法都有代价,冗余会增加面积和功耗,重训练会增加时间成本。
李灿和团队提出了一种无故障矩阵表示方法,让任何目标矩阵都能够分解成两个可调子矩阵的乘积,编程到模拟硬件之上,这种间接的自适应表示让数学优化可以绕过故障器件。李灿解释说,这个方法的核心思路在于,任何一个线性矩阵都能够分解成两个不同的矩阵,分解方式是多种多样的,分解时可以针对某个器件的缺陷程度去规避它。假如器件只能编程到某个值,就会去编程它周围的器件,以便做更好的矩阵表达。
这个过程跟神经网络训练有点相似,但它是做了一个矩阵分解。矩阵分解是线性代数里的一个经典操作,就是把一个矩阵拆成两个更简单的矩阵相乘。李灿和团队的创新在于,他们把矩阵分解和硬件缺陷的规避结合在了一起,分解的时候是看着硬件的缺陷情况来拆。遇到哪个器件坏了,分解方案就会绕开它。
传统方法一般用两个器件表达一个矩阵值,以及用两个器件的差来表达正值或负值。这样做的问题在于,两个器件中任何一个坏掉了,表达范围就会受限。本次新方法用多个器件综合表示某个矩阵值,能够在分解时规定某一行全为正、某一行全为负,从而可以规避差分对的产生,同时使用更少的器件表达同样的矩阵。
差分对是模拟计算里一个非常常见的结构,能够用两个器件相减来表示一个带符号的数值。它的问题在于占用器件多,并且一旦一个器件出问题,整个数值就会偏了。本次新方法通过矩阵分解把符号问题在数学层面解决掉,这样一来硬件层面就不用再搞差分对了。
这项工作有着两个效果,第一个是容错,第二个是容量更高。容错的意思就是器件坏了系统还能用,容量更高的意思就是用同样数量的器件能表达更多的矩阵信息。当这两个效果叠加在一起,对于大规模矩阵计算来说价值很大。
实验数据显示,在离散傅里叶变换矩阵上,哪怕器件故障率达到39%,系统仍能实现超过 99.999% 的余弦相似度。余弦相似度是衡量两个向量方向一致性的重要指标,越接近 1 就表示越相似,99.999% 说明计算结果和理想结果几乎完全一致。
在无线通信的原型机上,误码率降低到了原来的五十六分之一。误码率则是通信系统里衡量传输质量的指标,降低到原来的五十六分之一意味着信号传输的可靠性大幅提升。在大矩阵的跨领域基准测试之中,密度提升超过了 194%,能效提升了 164%。
这项技术对智能手表、传感器这些边缘设备到底意味着什么?李灿对 DeepTech 表示,这项技术可能会拓展更多的功能,让边缘设备更能够像人脑一样工作。当前的存储方式主要是数字的零和一,存了什么就会拿什么。本次新技术能做模糊的回忆功能,让智能边缘设备像人脑一样进行工作。他认为更省电是直接的成果体现,但更关键的是拓展功能。
要知道智能手表现在能测心率、计步、识别睡眠,这些功能往往依赖简单的信号处理。假如手表里的芯片能做联想记忆,它就有可能识别更复杂的模式。譬如它可以通过你手腕的动作判断你在做什么运动,亦或是通过心率变化的模式判断你的情绪状态。这些任务在云端做并不难,然而要放在手表上实时做,就需要芯片既得省电又得足够聪明。
李灿表示其成果转化方向更有可能是在边缘计算,和做存内计算以及模拟计算的初创公司可能是合作关系。这个定位和他两篇论文的方向保持一致,即都指向边缘设备上的智能计算。边缘计算的特点是设备离用户比较近,对功耗和实时性要求比较高,对硬件缺陷的容忍度非常低。李灿团队研发的技术恰好解决了这个矛盾,让有缺陷的硬件也能可靠地工作。
参考资料:
https://doi.org/10.1038/s41467-026-69958-0
运营/排版:何晨龙
注:封面/首图由 AI 辅助生成















