震撼全网,AlphaEvolve矩阵乘法突破被证明为真,开发者用代码证实

日期:2025-05-20 10:38:29 / 人气:7

"太震撼了,有开发者代码实证后发现,谷歌AlphaEvolve的矩阵乘法突破,被证明为真!Claude辅助下,他成功证明,它果然仅用了48次乘法,就正确完成了4×4矩阵的乘法运算。接下来,可以坐等AlphaEvolve更「奇点」的发现了。
  就在刚刚,有人用Claude写代码证实——
  谷歌DeepMind的AlphaEvolve求解矩阵乘法的突破,100%正确!
  即使已经过去好几天,AI圈依然有许多人沉浸在这个AI的余震中。
  在时隔半个世纪(56年)后,AlphaEvolve将4×4的复数矩阵计算次数,从1969年Strassen的49次减少到了48次。
  
  这相当于百米世界纪录从9.58秒挤进9.57秒——虽然只有百分之一秒,却再一次刷新人类极限的认知。
  不过也有较真的人发出疑问了:AlphaEvolve这个发现保真吗?
  一位不信邪的开发者小哥,花了一整天时间,用代码来验证了一番。
  结果,他真的眼看着这个矩阵乘法突破的算法,在自己眼前运行了起来。那一刻,简直太震撼了!
  
  AlphaEvolve的巨大威力,果然诚不我欺。如今,就差一个值得AI发现的想法,然后输入进去等着它去验证了。
  现在,小哥已经发帖讲述了自己实证的具体过程,并在GitHub上上传了代码。
  开源Github证明,谷歌DeepMind说的没错
  
  具体来说,怎么验证这个算法真的有效呢?
  小哥使用了Claude来帮忙。
  首先,他实现了标准矩阵乘法(64次乘法)和Strassen算法(49次乘法)。
  
  然后,他开始尝试用DeepMind论文中的张量分解,来实现AlphaEvolve算法。
  但第一次,他碰壁了。一开始测试时,结果完全不对,数值误差非常大。
  怎么办?小哥求助Claude后,它帮他理解了分解中使用的张量索引,并修复了实现中的问题。
  然后,他用Claude,自动将张量分解逆向工程,得出了直接的代码实现!
  
  而代码的各项指标,都令人喜出望外。
  无论是正确性、数值稳定性还是性能,各项指标都与Google论文中的官方报告保持一致!
  正确性(对实值与复值4 × 4 矩阵均能给出完全一致的结果)
  数值稳定性(经优化后误差控制在机器精度,约 10⁻¹⁶)
  性能(展平的直接实现速度领先原始张量式实现)
  甚至,为了得到更有说明意义的结果,小哥使用了澳大利亚国立大学的量子随机数生成器提供的量子随机矩阵,来测试所有算法!
  
  小哥上传GitHub的代码中,包括——
  各种矩阵乘法实现(标准版、Strassen、AlphaEvolve)
  一个张量分解分析器,用于反向解析算法
  使用量子随机数进行验证和基准测试的代码
  
  Github地址:https://github.com/PhialsBasement/AlphaEvolve-MatrixMul-Verification
  目睹这个过程的网友们,也赞叹道,谷歌AlphaEvolve实在是太划时代了。
  只是目前很多人还意识到,它的意义究竟有多重大,有多疯狂。
  
  所以,AlphaEvolve是怎样突破矩阵乘法难题的?
  硬的来了,矩阵乘法难题是怎么解决的
  如果想了解这个过程,就需要首先理解AlphaEvolve解决的这个问题——4 × 4矩阵乘法的最小乘法次数。
  
  按照大一的「线性代数」,4 × 4 矩阵乘法按照传统的方法,需要64次乘法计算+48次加法运算。
  
  其实很好理解,以矩阵a第一行和矩阵b第一列的计算生成结果矩阵c的第一个结果为例,需要4次乘法运算和3次加法:
  
  而结果矩阵依然是4×4,也就是16个元素,所以总得计算次数就是,64次乘法和48次加法。
  
  这种传统的办法被称为「标量乘法」,在硬件和能耗上远贵于加法,算法界把「减少乘法」当作衡量算法能力的第一指标。
  我们都知道,现代计算机计算,都是把所有运算最终转化为了二进制的加减法。
  如果能减少乘法运算次数,就能大大减少芯片最底层的开销。
  
  这是最基础的、最底层的数学科学研究,如果能取得突破,将极大的影响芯片运算,进而影响整个计算机生态。
  1969年,Strassen用两级递归将4 × 4矩阵乘法的计算从64减少到了49了,他是如何做到的?
  Strassen最早处理的是两个2×2矩阵相乘,传统方法2×2矩阵乘法要8次乘法。
  
  Strassen就想,既然结果C矩阵中每个数值都是类似「a*e+b*g」这样的排列组合,有没有能够减少乘法次数的办法?
  结果,还真的让他给想出来了!
  那就是「自定义」计算元素和序列,来组合出最终结果,如下图所示,比如设置M3=a*(f-h),M5=(a+b)*h。
  那么最终结果矩阵C中的「a*f+b*h」就能等价于M3+M5(简直太天才了!)
  
  于是整个传统的矩阵乘法就变成了上述的「自定义」计算模块的组合。
  这些模块中虽然加(减)法次数增多了,但是乘法次数从8次降低到了7次——从M1到M7个自定义模块,每个模块只有一次乘法!
  好了,现在2×2矩阵相乘中乘法次数降低了,那么4×4矩阵呢?
  Strassen接着说,如果一个4×4矩阵可以划分成4个2×2块,那就可以用刚才的方法来处理「块矩阵」。
  
  这下关键就来了,用Strassen方法来做每个2×2块的乘法(只需7次标量乘法),总乘法数将减少!
  这样,不论是A11、A12和B11这种内部划分后的「小块」,还是外部的大块都使用Strassen方法!
  Strassen在4×4矩阵里不是只用一次Strassen,而是继续对2×2块内部再用Strassen方法!
  Strassen再进一步递归:不是直接做8个2×2矩阵乘法(每个2×2里面是7次乘法),而是用「Strassen方法组合」来只做7次小矩阵乘法。
  最终,Strassen用两级递归做法:顶层用Strassen算法(做7次2×2小矩阵乘法),然后每个小矩阵再用Strassen算法(每个小矩阵需要7次标量乘法),所以最后只需要7×7=49!
  再次感叹,天才之作!
  Strassen将4×4标量乘法次数从64降到49,通过递归分解矩阵、使用「聪明」的加减组合,可以在保持结果正确的前提下,把原本的「傻算」乘法次数减少。
  这种「减少乘法」的思路,为之后几十年更快的矩阵乘法算法打下了基础。
  半个世纪以来,4×4矩阵的最小乘法一直都是49,再也没有新的算法出现。
  但是这次,谷歌的AlphaEvolve在自我进化中发现了新的答案!
  
  它是如何突破这个极限的?
  上面的例子解释了,想要发现新的「算法」,你就需要找到新的「自定义」计算模块,来尽可能减少乘法运算。1969年的Strassen通过「人工」的方式,找到了这个解。
  现在有了计算机,可以在数学上把矩阵乘法C=AB「升维」成张量线性操作的方式C=T·A·B。
  这样可以构造一个三阶张量T来「描述整个矩阵乘法计算图」,在这种张量表示下,张量T告诉你如何组合A和B的元素来生成C的每一个元素。
  
  如果你能把张量T分解成如下形式,
  
  也就是把T表示为R个张量的加和(也就是
  
  )。
  DeepMind几年前就发明了AlphaTensor在TensorGame中的有限因子空间内找到张量分解。
  
  所以整个问题就变成了:用R次乘法操作来重建整个乘法过程!
  而AlphaEvolve的任务,就是找到这个最小的R。
  乘法次数「-1」
  在实验中,AlphaEvolve总共测试了54种不同规模的矩阵乘法问题。这些规模大致涵盖了形如⟨

作者:先锋娱乐




现在致电 xylmwohu OR 查看更多联系方式 →

COPYRIGHT 先锋娱乐 版权所有