![]()
新智元報道
編輯:KingHZ
【新智元導讀】Claude立大功!開發者靠它剖析MIL語言與E5二進制,繞過CoreML直達硬件,證明NPU訓練從來不是硬件不行,而是蘋果不讓用。
AI界再迎地震,LLM訓練未來或從此改變!
OpenClaw引起全球AI龍蝦熱潮,意外讓蘋果Mac mini賣爆——
美國百強連鎖店之一的microCenter,本來主打的個人消費級PC,最近甚至宣稱「Mac mini和OpenClaw天生一對」!
![]()
還有好消息:MAC mini養完小龍蝦,不用吃灰了——
剛剛,蘋果神經引擎(Apple Neural Engine,ANE)被破解,可能引爆AI訓練革命!
工程師Manjeet Singh用Claude逆向工程Apple Neural Engine了,還訓練了一個單層Transformer。
想象一下:不用GPU,不用TPU,就在M4芯片上完成的。
這并不意味著現在任何人都能構建LLM。還沒到那一步。但現在你已經可以在自己的MacBook上用一個小數據集做家庭實驗了。
無需CoreML,無需Metal,無需GPU。純粹利用高速運行的ANE芯片。
如果屬實,這無疑意義重大——
![]()
![]()
而且Claude深度參與了破解全程,包括整個逆向工程、基準測試以及訓練代碼的開發——由人類的直覺引領探索方向,由AI進行數據推理并撰寫分析報告。
Manjeet Singh直言一切都靠Claude,他只是引導方向:
我們認為,這種人機協作是進行系統研究的一種新穎且自然的方式:
一個伙伴扮演富有直覺的架構師,另一個則充當編寫代碼和設計實驗的工程師。
![]()
![]()
鏈接:http://github.com/maderix/ANE
Mac就能訓單層Transformer!
Claude在這里扮演了關鍵角色。
通過Claude的智能分析,開發者鉤住了私有方法、剖析了MIL語言的秘密,并拆解了E5二進制的迷霧,最終繞過CoreML框架,直接操控ANE硬件實現前向和反向傳播。
![]()
一個單層Transformer(dim=768, seq=512)僅需9.3毫秒一步,峰值效率高達6.6 TFLOPS/W——
這是A100的80倍,H100的50倍以上。
這一發現讓無數人的算力賬單顯得像個笑話。
更驚人的是,最新更新已實現完整Stories110M模型(109百萬參數,12層Llama-2架構)在TinyStories數據集上的訓練,損失實時下降,功耗低到「小于一瓦特」。
你的桌面Mac,從此不再是消費工具,而是AI訓練的超級電腦,成本暴降至電費的零頭。
這將改變世界。
首次,任何擁有Mac的人都可以在本地、私密地以遠低于云GPU的成本微調、訓練或迭代大規模模型。
不再租用4萬美元的A100集群。不再排隊等待。不再留下巨大的碳足跡。
過去動輒數萬甚至數十萬美元的訓練成本?如今暴跌至幾乎只需幾美分——基本就是你那臺閑置Mac本就在消耗的電費。
AI革命剛剛從耗資數十億美元的數據中心轉移到了你的桌面。
我們才剛剛起步,但大門已經敞開——今天是單層,明天就是完整模型。
超低成本的設備端訓練時代已經到來。
未來不是即將來臨,它已經在你的Mac上運行。不過,我們西岸看一下什么是ANE?
什么是蘋果神經引擎ANE?
大多數新款iPhone和iPad都配備了神經引擎,這是一種能極大加速機器學習模型的特殊處理器,但關于這款處理器實際工作原理的公開信息并不多。
蘋果神經引擎(簡稱 ANE)是一種NPU,即神經網絡處理單元。
NPU類似于GPU,但GPU加速圖形處理,而NPU則加速卷積、矩陣乘法等神經網絡運算,是一種定制化的固定功能加速器。
它接收的是已經編譯好的神經網絡計算圖,然后將整張圖作為一個原子操作一次性執行完畢。
你無法像操作CPU或GPU那樣逐條發出乘加指令(multiply-accumulate)。你提交的是一份描述完整計算圖的編譯程序,而硬件會從頭到尾一次性跑完。
ANE并非唯一的NPU——
除了神經引擎,最著名的NPU當屬谷歌的TPU(張量處理單元)。
2017年,Apple在A11 芯片中首次引入Neural Engine,當時是雙核心設計。
![]()
此后每一代都在擴展規模。
![]()
此次研究的對象,是蘋果M4芯片的ANE(代號H16G):
16核心,支持127條評估請求的隊列深度;
具備獨立的DVFS(動態電壓/頻率調節);
并且擁有嚴格的電源門控機制,空閑時功耗精確降至0毫瓦。
推理芯片竟能用于訓練,能效還很高!
ANE本身性能極其強大,但蘋果通過CoreM將它限制在「僅推理」用途。
真正的障礙,從來不是硬件能力,而是軟件支持。
以下是完整的ANE軟件堆棧的樣子,從公共的CoreML API到硬件:
![]()
關鍵洞察:CoreML不是唯一的入口。AppleNeuralEngine.framework中的_ANEClient類提供了對編譯→加載→評估流程的直接訪問。CoreML只是頂部的一個便利層。
而Manjeet Singh想證明在Apple Neural Engine(ANE)上進行訓練——以及在其他NPU上進行訓練——是可行的。
![]()
起因是他買了一臺Mac mini M4,想利用它的算力來完成他的編譯器項目。
這個項目通過逆向私有API,繞過了這一限制,展示了當你真正釋放硬件能力時,它能做到什么。
這款NPU宣稱擁有38 TFLOPS的INT8算力(但它實際是FP16處理器,所以實際算力減半)。
最終,他搭建了一個定制化的訓練流水線,成功訓練了一個1.1億參數的微型GPT模型。
實際上,目前無法用單芯片訓練更大的模型,但理論上,通過集群或許可以訓練更大規模的模型。不過即使單臺設備,也應該能對30億或70億參數的模型進行LoRA微調。
再次強調,為什么要在NPU上訓練?
因為能效極高。
ANE在峰值算力下功耗僅2.8W,19 TFLOPS能效比高達6.6 TFLOPS/瓦,堪稱瘋狂!
對比之下,Metal GPU只有為1 TFLOPS/瓦,H100為1.4 TFLOPS/瓦)
需要明確的是:
訓練是可行的,但利用率很低(約峰值的 2-3%),并且還存在重大的工程挑戰。
許多逐元素運算仍然會回退到 CPU 執行。
目前,這除了用于小型研究模型外,還不能替代GPU訓練。
測試結果令人驚訝
最后的發現令人驚訝:
雖然「38 TOPS」這個數字在技術層面沒有錯誤,但卻極具誤導性。
蘋果從未公開過關于如何榨取ANE最大吞吐量的優化模式。
這里多解釋一下——
TOPS是Tera Operations Per Second的縮寫,1TOPS代表處理器每秒鐘可進行一萬億次(10^12)操作。
它主要衡量理論最大吞吐量,而非實際吞吐量。由于大多數運算都是乘加運算(MAC),因此TOPS的計算公式為:(乘積累加運算MAC單元數量)x(MAC操作頻率)x 2。
這是決定AI運行速度的最重要的參數。
矩陣乘法擴展:基礎測試
他們從最簡單的基準測試開始:對遞增尺寸的方陣執行乘法運算。
![]()
測試結果揭示兩大關鍵現象:
256×256矩陣受限于調度開銷:在0.101毫秒的運行時間中,大部分(約0.095毫秒)消耗于XPC和IOKit框架的通信,真正的計算僅占約0.006毫秒。
性能在4096尺寸時顯著下降:從2048尺寸時的5.7 TFLOPS降至4096尺寸時的4.0 TFLOPS,這表明存在資源溢出問題。
![]()
SRAM性能懸崖
2048到4096尺寸的性能驟降正是SRAM性能懸崖的體現。
一次矩陣乘法的計算集包含三個矩陣(A、B、C)。
![]()
以FP16精度計算:
當尺寸為2048×2048時,24 MB的計算集完全適配芯片上的SRAM,因此能達到峰值單次運算吞吐量(5.7 TFLOPS)。
當尺寸增至4096×4096時,96 MB的計算集遠超SRAM容量(約3倍),迫使數據頻繁交換至DRAM,導致吞吐量銳減30%。
這一性能在24MB(快速)和96MB(慢速)之間的劇烈變化,表明ANE的片上SRAM容量約為32 MB。
![]()
性能并非在達到界限時突然崩潰,而是逐漸下降,這暗示其采用了一種類似緩存的分層架構,而非固定的便簽式存儲器。
卷積運算優于矩陣乘法
蘋果文檔中并未明確的一點是:ANE本質上是一個為卷積設計的引擎。將相同的計算任務表達為1×1卷積,而非矩陣乘法,能獲得顯著提升的吞吐量。
一個矩陣乘法運算 C[M,N] = A[M,K] @ B[K,N] 可以通過重塑數據,完美轉化為一個1×1卷積:
輸入重塑為:(1, K, 1, M)
權重重塑為:(N, K, 1, 1)
輸出重塑為:(1, N, 1, M)
運算量和最終結果完全相同,但ANE的卷積數據通路能以高得多的效率處理這種形式。
深度圖網絡能填滿流水線
單個矩陣乘法操作僅能利用ANE約30%的峰值能力。
![]()
該硬件專為處理圖網絡而設計——即能夠持續讓全部16個核心保持忙碌狀態的運算鏈條。
鏈接的運算越多,就越接近理論上的峰值性能。
![]()
最大化ANE吞吐量的黃金法則:
構建深度圖,而非廣度圖:在一個MIL程序中鏈接16至64個運算。孤立的單次運算會浪費70%的硬件能力。
優先使用卷積而非矩陣乘法:1×1卷積能利用快速數據通路,而矩陣乘法的速度要慢3倍。
嚴格控制數據在32MB以內:確保每個張量的內存占用不超過SRAM容量。數據溢出到DRAM會嚴重損害吞吐量。
避免受限于調度的微小運算:任何執行時間低于約1毫秒的操作,其主要耗時都來自于約0.095毫秒的調度開銷。
CoreML究竟損失了多少性能?
可以通過兩條路徑測量相同的運算,來計算性能損失:
![]()
對于小型運算,CoreML增加了2-4倍的開銷。
在高吞吐量配置下,由于ANE計算時間占主導,這一差距會縮小。但對于延遲敏感型的工作負載(如大語言模型的token解碼、實時推理),CoreML帶來的性能損失相當嚴重。
![]()
INT8 = FP16:「38 TOPS」的現實含義
蘋果宣稱M4神經引擎擁有「38 TOPS」的算力。以下是這一數字的真實含義。
在FP16和INT8兩種精度下,測量了完全相同的運算:
![]()
最后發現:
INT8并未帶來預期的2倍速度提升。
INT8和FP16的吞吐量幾乎相同。ANE在執行計算前,會將INT8權重反量化為FP16格式。
INT8僅節省了內存帶寬(從DRAM內存加載更小的權重),并未節省計算周期。
蘋果的「38 TOPS INT8」是這樣計算出來的:19 TFLOPS FP16 × 2。
這符合行業慣例,即將INT8操作數視為FP16的兩倍。但硬件實際上并不能以兩倍的速度執行INT8運算。
真正的峰值性能是19 TFLOPS FP16,無論你使用何種量化精度,所獲得的最高性能就是如此。
這恰好是根據硬件配置(16核心×約 1.2 TFLOPS/核心)計算出的理論峰值的100%。
在32層以上的深度網絡中達到94%的利用率,意味著幾乎測量了硬件的原始極限能力。
能效:ANE隱藏的王者
如果只看吞吐量,GPU穩贏。
但ANE真正的優勢在于其驚人的效率。
![]()
![]()
零功耗待機。ANE 采用了硬性電源門控技術——它不僅關閉時鐘,而是在閑置時完全切斷電源。這消除了任何泄漏電流和待機電量消耗。
在峰值負載下,它能實現 6.6 TFLOPS/瓦的能效,遙遙領先GPU:
![]()
這意味著,ANE在執行每個浮點運算時的能效,能效大約是A100的80倍。當然,A100擁有50倍于ANE的總吞吐量。但對于依賴電池供電的設備端推理而言,ANE性能非凡。
ANE與SME:何時選擇使用哪種
M4的CPU核心還配備了蘋果的SME(可擴展矩陣擴展)功能。
以下是兩者的對比:
![]()
適合使用ANE的場景:大批量推理、包含16層以上的深度圖網絡、對能耗有嚴格限制的場景、需要持續高吞吐量的任務。
適合使用SME的場景:單token解碼(零調度開銷)、ANE不支持的自定義運算、小矩陣運算、任何需要FP32+精度的計算。
在M4上進行理想的大語言模型推理策略是混合模式:預填充階段(大批量、高吞吐量)使用ANE,解碼階段(單token、對延遲敏感)使用SME。
![]()
這次挖掘了ANE的真實能力:在2.8W功耗下,配合正確的網絡結構,可實現19 TFLOPS FP16的性能。
而接下來,Manjeet Singh還將詳細演示蘋果明確不支持的功能:在神經引擎上訓練神經網絡。
參考資料:
https://www.reddit.com/r/LocalLLaMA/comments/1rhx5pc/reverse_engineered_apple_neural_engineane_to/
https://x.com/ronaldmannak/status/2028560995875168292
https://maderix.substack.com/p/inside-the-m4-apple-neural-engine
https://maderix.substack.com/p/inside-the-m4-apple-neural-engine-615
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.