新智元報道
編輯:Aeneas 定慧
【新智元導讀】太震撼了,有開發者代碼實證后發現,谷歌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?1?)
性能(展平的直接實現速度領先原始張量式實現)
甚至,為了得到更有說明意義的結果,小哥使用了澳大利亞國立大學的量子隨機數生成器提供的量子隨機矩陣,來測試所有算法!
小哥上傳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種不同規模的矩陣乘法問題。這些規模大致涵蓋了形如?,,?的情況,其中2≤,≤5,并對做了合理的截斷。
由于矩陣乘法張量本身具有對稱性,對于三維軸的任意排列,存在等價的算法,因此只關注按順序排列的規模,即≤≤。
在所有情況下,AlphaEvolve提供的都是精確算法,分解中使用的是整數或半整數的系數。
對于?3,4,7?、?4,4,4?和?4,4,8?這三種矩陣情況,AlphaEvolve發現的算法使用了復數乘法,這些算法可用于對復數矩陣或實數矩陣進行精確乘法運算。
谷歌的研究人員說,他們當時并沒有指望AlphaEvolve能知道比49次更好的方案,他們只是想要用AlphaEvolve來驗證上述那張表格,來出個圖。
(原話是:我們就是希望畫這張圖,用來放在論文里,顯得好看)
沒想到,AlphaEvolve給了他們莫大的驚喜!
同時,谷歌提供了AlphaEvolve求解兩個4×4矩陣相乘所對應的三維張量的Rank(可以簡單理解為上述的乘法次數)為48的求解方法。
而現在,谷歌研究者的結論,已經被開發者小哥確認:AlphaEvolve的算法的確有效!
僅用48次乘法,就能正確地計算4×4矩陣的乘積,并且數值穩定性非常好,誤差僅在10^-16(機器精度)量級。
這實在是太振奮人心了。
AlphaEvolve利用進化搜索 + LLM引導直接在三階張量上找到低秩分解,乘法?加法配比為48次加法+183次乘法。
相比傳統的64次乘法+48次加法,雖然加法次數變多,但是這對于計算機來講都是小case,只要降低乘法次數,計算效率就能指數級提升。
而和1969年的Strassen方法相比,AlphaEvolve的乘法次數「-1」,這一枚「?1」不僅刷新了數學紀錄,更象征AI?for?Science正在成為攻克深層數學難題的新范式。
AI突破半個世紀矩陣乘法
研究員當場驚呆
在Youtube采訪中,我們可以看到更多細節。
就如上文所說,AlphaEvolve打破這項紀錄,連谷歌DeepMind的研究者都沒想到。
對于通常情況下的矩陣,仍然沒有比使用四十九次乘法進行兩次Strassen更好的辦法。
開始,研究者們也壓根沒有期待它能找到更好的結果,因為他們已經用AlphaTensor嘗試了很長時間了。
結果,出乎所有人意料,一個更快的算法,居然被它發現了!
這次,算法使用了48次,而不是49次乘法,徹底打破紀錄。
當看到一位同事發消息通知這一結果時,研究者表示自己簡直不敢相信。
反復檢查三遍后,他們終于確認——
AI不斷增強的能力,可以生成全新的、可證明準確的算法,從而推動科學的邊界!
在專訪中,當主持人問道:你可以舉出一些系統做出真正有想象力的跳躍的例子嗎?
研究者舉的例子,就是AlphaEvolve發現矩陣乘法算法的過程。
實際上,他們只是讓它設計了一個基于梯度的搜索算法,也即一個能找出的算法的算法,或者說元算法。
第一個搜索算法,是從一個非常簡單的代碼框架開始的。
研究者并未給它任何東西,只告訴它「用梯度」,然后,它就寫出了這些復雜的損失函數和更新函數,而且以完全出人意料的方式引入了隨機性。
就在那一刻,研究者驚呼:太厲害了!
當然,這種代碼也有可能是人類寫出的,但他們真的會想到寫出這段特定代碼嗎?
那一刻,他仿佛頓悟了——AlphaEvolve做的,是一些類似人類的事情,但又顯然不是人類會嘗試的東西。
而哥大的算法設計助理教授Josh Alman也表示,AlphaEvolve似乎的確在產生新的想法,而不是在訓練中學到的內容的重新組合。
DeepMind研究者表示,他們有時會將一個算法的想法作為提示輸入,從而產生有趣的新結果。
這就提高了人類科學家和類AlphaZero系統合作的可能性。
如今,AlphaEvolve可能是人類的一小步,但已經是AI的一大步。
從AlphaGo、AlphaFold到AlphaEvolve,下一個Alpha,谷歌DeepMind還會給我們帶來什么樣的驚喜?
參考資料:
http://github-phialsbasement/AlphaEvolve-MatrixMul-Verification:VerificationofGoogleDeepMind'sAlphaE
https://www.wired.com/story/google-deepminds-ai-agent-dreams-up-algorithms-beyond-human-expertise/
https://www.reddit.com/r/singularity/comments/1kouabz/i_verified_deepminds_latest_alphaevolve_matrix/
https://www.youtube.com/watch?v=vC9nAosXrJw&t=2s
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.