Claude破解苹果神经引擎!Mac变身AI训练神器,成本暴跌至电费零头(1/2)
核心摘要
开发者借助Claude,成功对苹果神经引擎(ANE)进行了逆向工程,绕过了苹果官方的CoreML框架限制,首次在M4芯片的ANE上实现了神经网络训练。这证明Mac设备内置的NPU具备强大的训练潜力,可能将低成本、高能效的AI训练带入个人电脑时代。
AI界迎来新突破,这次的主角是苹果Mac mini和其内置的神经引擎。
近期,一项由开发者Manjeet Singh主导的项目成功破解了苹果神经引擎(Apple Neural Engine, ANE)的软件限制。他利用Claude进行逆向工程,剖析了底层的MIL语言与E5二进制,绕过了高层的CoreML框架,直接与ANE硬件对话,并成功训练了一个单层Transformer模型。
这并非意味着现在任何人都能用Mac训练大语言模型,但它确实为研究者和爱好者打开了一扇门:你可以在自己的MacBook上,利用ANE芯片,以极低的功耗进行小规模AI实验。

人机协作的逆向工程
整个破解过程深度依赖Claude的辅助。开发者Manjeet Singh表示,他主要扮演“富有直觉的架构师”角色,负责引导探索方向;而Claude则充当“编写代码和设计实验的工程师”,进行数据推理、撰写分析报告并生成代码。这种新颖的人机协作模式,为复杂的系统逆向工程提供了新思路。

项目地址:http://github.com/maderix/ANE

突破性成果:在Mac上训练Transformer
通过Claude的智能分析,项目成功钩住了苹果的私有方法,绕过了CoreML,直接操控ANE硬件实现了神经网络的前向传播和反向传播。
初步测试显示,一个单层Transformer(维度768,序列长度512)在ANE上单步训练仅需9.3毫秒,峰值能效比高达6.6 TFLOPS/瓦。作为对比,这一能效数据远超主流数据中心GPU。
更进一步的更新显示,项目已成功在ANE上完整训练了一个拥有1.09亿参数(12层Llama-2架构)的Stories110M模型,在TinyStories数据集上实现了损失函数的实时下降,而功耗却低于一瓦特。
这意味着什么?
你的桌面Mac,可能从此不再仅仅是一台消费设备。它有机会成为一台低成本、高能效的AI训练机器,将过去需要数万美元云端算力的实验成本,降低到几乎只需支付电脑本身的电费。
AI训练的门槛正在被迅速拉低。未来,个人在本地、私密地微调或训练模型将成为可能。
什么是苹果神经引擎(ANE)?
苹果神经引擎是一种NPU(神经网络处理单元),专为加速机器学习任务(如卷积、矩阵乘法)而设计。它不同于通用的CPU/GPU,是一种固定功能的加速器:开发者提交一个已编译好的完整神经网络计算图,ANE会将其作为一个原子操作一次性执行完毕。

自2017年在A11芯片中首次引入后,ANE的规模持续扩展。本次研究的对象是苹果M4芯片中的ANE(代号H16G),它拥有16个核心,并具备精细的功耗控制能力。

推理芯片为何能用于训练?
ANE本身性能强大,但苹果通过CoreML框架将其严格限制在“推理”用途。真正的障碍并非硬件能力,而是软件支持。

该项目的关键洞察在于,发现了绕过CoreML、直接访问底层AppleNeuralEngine.framework的途径。通过逆向私有API,开发者搭建了一条定制化的训练流水线,释放了ANE被封印的训练潜力。
为什么要在NPU上训练?核心答案是:能效。
ANE在峰值算力下的功耗仅约2.8瓦,其超高的能效比(6.6 TFLOPS/瓦)让传统GPU望尘莫及。当然,目前该方案仍处于早期研究阶段,存在利用率低、部分运算需回退至CPU等工程挑战,尚无法替代GPU进行大规模训练,但对小型研究模型和微调(如LoRA)极具启发意义。
令人惊讶的测试结果
测试揭示了一个关键信息:苹果官方宣传的“38 TOPS”峰值算力在技术层面虽无错误,但在实际访问模式下极具误导性,普通开发者难以触及理论峰值。
他们从基础的矩阵乘法测试开始:

测试发现两大现象:
1. 调度开销巨大:对于256×256的小矩阵,大部分时间消耗在系统通信上,实际计算占比很低。
2. 性能悬崖:当矩阵尺寸增至4096时,性能从2048尺寸时的5.7 TFLOPS显著下降至4.0 TFLOPS,表明遇到了资源瓶颈。

SRAM性能悬崖
(此为第一部分结尾,下文将深入分析性能瓶颈的具体原因及更多技术细节。)
SRAM性能悬崖与片上容量推断
当矩阵尺寸从2048增大到4096时,性能出现骤降,这直接体现了SRAM的性能瓶颈。
一次矩阵乘法运算涉及三个矩阵(A、B、C)。

以FP16精度进行分析:
* 当尺寸为2048×2048时,计算集总容量约为24 MB,可完全容纳于芯片的SRAM中,因此能达到约5.7 TFLOPS的峰值运算吞吐量。
* 当尺寸增至4096×4096时,计算集容量跃升至约96 MB,远超SRAM容量,导致数据必须在SRAM与DRAM之间频繁交换,致使吞吐量下降约30%。
性能在24MB(快速)和96MB(慢速)区间内的剧烈变化,表明苹果神经引擎(ANE)的片上SRAM容量约为32 MB。

性能并非在达到容量界限时瞬间崩溃,而是呈现逐渐下降的趋势,这暗示ANE可能采用了类似缓存的分层存储架构,而非单一的固定容量便签式存储器。
卷积运算相较于矩阵乘法的优势
苹果官方文档未明确指出的是: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吞吐量的关键原则如下:
1. 构建深度图,而非广度图:在一个MIL(模型中间语言)程序中链接16至64个运算。孤立的单次运算会浪费约70%的硬件能力。
2. 优先使用卷积而非矩阵乘法:1×1卷积能利用快速数据通路,其速度可比等效的矩阵乘法快3倍。
3. 严格控制数据在SRAM容量内:确保每个张量的内存占用不超过32 MB。数据一旦溢出到DRAM,将严重损害吞吐量。
4. 避免受限于调度的微小运算:任何执行时间低于约1毫秒的操作,其主要耗时可能来自于约0.095毫秒的调度开销。
CoreML与_ANEClient的性能开销对比
通过对比相同运算在CoreML框架和直接调用底层_ANEClient API两条路径上的性能,可以量化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/核心)计算出的理论峰值相符。在32层以上的深度网络中达到94%的利用率,意味着几乎测量到了硬件的原始极限能力。
能效:ANE的核心优势
若仅比较绝对吞吐量,GPU占据优势。但ANE真正的王牌在于其惊人的能效。

ANE具备零功耗待机能力。它采用了硬性电源门控技术——在闲置时不仅关闭时钟,而是完全切断电源,从而消除了任何泄漏电流和待机电量消耗。
在峰值负载下,其能效可达6.6 TFLOPS/瓦,显著领先于GPU:

这意味着,ANE在执行每个浮点运算时的能效,大约是NVIDIA A100 GPU的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的研究还将详细演示一项苹果官方未明确支持的功能:在神经引擎上训练神经网络。
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/24774
