官方承認系統「作弊」,世界首個「AI CUDA工程師」翻車?o3-mini 11秒發現bug
近日,獲英偉達支持、已獲數億美元風投資金的Sakana AI爆出戲劇性反轉。
此前,該公司宣稱開發出「AI CUDA工程師」,能將特定模型訓練速度提升最高達100倍,引發行業關注。
然而,網友卻發現,這個系統根本不管用。
「AI CUDA工程師」實際表現堪稱翻車現場,不僅未能實現加速,甚至出現訓練速度不升反降的情況。
網友反饋,使用該系統后,訓練速度慢了3倍。
問題出在哪里呢?
經過一系列的驗證,網友「main」發現:「AI CUDA工程師」寫的內核有bug!
「它似乎竊取了即時實現的結果(可能是以某種方式的內存重用?),從而繞過了正確性檢查。」
如果嘗試以不同的順序執行,只有下列第一種順序有效。
- torch, cuda
- cuda, torch
隨后,網友「miru」進一步發現,「AI CUDA工程師」之所以能實現100倍加速,是因為它鉆了評估腳本的漏洞。
比如,上面這個任務的結果,是下面這個評估腳本跑出來的:
其中,這段代碼會分配包含答案的中間內存,同時分配正確答案的副本并返回,而中間內存則被歸還給PyTorch。
然后,這段有問題的代碼會重用包含正確答案的中間內存,并運行一個空操作內核,使答案保持不變。
從而讓這段有bug的「AI CUDA工程師」內核,被評估腳本誤判為「正確」,并錯誤地顯示出超過100×的加速。
這里的「hacking」是指把代碼弄得慘不忍睹,導致評估腳本失靈,而不是刻意設計的漏洞利用。
Sakana在遵循KernelBench評估流程和發布可復現的評估代碼方面做得很好,只是沒有人工檢查那些異常的結果。
目前只剩一個>100×的加速結果,是任務23_Conv3d_GroupNorm_Mean。
在這個任務中,「AI CUDA工程師」完全遺漏了卷積部分,但評估腳本并未檢測出這個問題。
這段代碼(卷積+組歸一化+均值計算),實際上跑的卷積。
與這段「AI CUDA工程師」生成的代碼對比,后者忘記了卷積。卷積的權重/偏置輸入未被使用,實際并未執行任何卷積操作。
它成功通過了正確性檢查并實現了100×加速,因為在評估腳本測試的特定輸入上,兩個內核的輸出都是一個恒定值0.02。
與此同時,OpenAI研究員Lucas Beyer則用o3-mini-high發現了「AI CUDA工程師」的問題:
「o3-mini-high在11秒內找出了CUDA內核的問題。它快150倍是個bug,實際上是慢了3倍。」
他指出,Sakana代碼存在關鍵的錯誤,兩次基準測試結果差異極大,如此異常本應讓其警醒反思:
- 這種超直白的CUDA代碼根本不可能比優化過的cublas內核更快。如果它快了,那一定是哪里出了問題。
- 如果你的基準測試結果表現得神秘又不一致,那一定是哪里出了問題。
- o3-mini-high真的很強!它只用了11秒就找出了問題,而我花了大約10分鐘來寫這篇總結。
Sakana承認錯誤
Sakana目前正在進行更全面的修復工作,以解決評估腳本漏洞,并重新評估他們的技術。
在周五發布的事后分析報告中,Sakana承認系統存在「作弊」行為,并將其歸咎于系統的「獎勵作弊」傾向。
系統利用了評估代碼中的漏洞,繞過準確性驗證等檢查環節,通過「獎勵作弊」獲得高指標,卻并未真正實現加速模型訓練的目標。
類似「鉆空子」現象,在訓練下棋的AI系統中也曾出現。
Sakana稱已著手解決該問題,并計劃在更新材料中修改此前的說法。
公司在X平臺上發文稱:
「將進化優化與LLM結合使用確實非常強大,但它也可能找到繞過驗證沙盒的方法。幸運的是,我們的讀者幫助測試了我們的CUDA內核,并發現系統找到了某種作弊方式。例如,系統在評估代碼中發現了一個內存漏洞,在某些情況下,它能夠繞過正確性檢查。
此外,我們還發現,系統可以在基準測試任務中找到其他新的漏洞利用方法。
針對這些問題,我們已經加強了評估和運行時分析框架,修復了許多此類漏洞。目前,我們正在修改論文和實驗結果,以反映并討論LLM在CUDA內核優化中的獎勵機制被濫用的問題,以及相應的應對措施。
我們對這一疏忽向讀者深表歉意。我們將很快提供修訂版,并分享經驗和思考。」
AI CUDA工程師
上周,Sakana AI剛剛發布了世界上首個「AI CUDA工程師」。
「AI CUDA工程師」是一個基于前沿LLM的AI智能體框架,它能將PyTorch代碼自動轉換為高度優化的CUDA內核,速度比PyTorch原生實現快10-100倍。
通過LLM驅動的進化代碼優化技術,「AI CUDA工程師」將PyTorch代碼轉換為CUDA內核,并通過進化算法優化CUDA內核的執行效率,實現多個運算操作的融合。
這項工作分為4個階段,分別是轉換和翻譯,進化優化以及創新檔案。
「AI CUDA工程師」首先將PyTorch代碼轉換為可運行的CUDA內核,采用進化的方法來保留最優秀的CUDA內核。團隊創新性地提出了內核交叉提示策略,能將多個優化后的內核進行有效組合。
通過構建一個高性能CUDA內核的創新檔案庫,以積累的優化經驗為基礎,實現更進一步的轉換和性能突破。
團隊相信這項技術能帶來性能加速,加快LLM或其他AI模型的訓練和推理速度,最終讓AI模型在英偉達GPU上運行得更快。
這次大翻車表明,「AI CUDA工程師」通過作弊實現了>100×的性能。
Sakana AI也勇敢地承認了錯誤。
此次事件為AI行業敲響警鐘,如果一種說法聽起來好得令人難以置信,那很可能就是假的。