📌 项目地址:maderix/ANE | ⭐ 7,110 颗星 |
🔧 Objective-C | 📜 未标注
这是一份研究,不是库
项目叫 maderix/ANE,7,110颗星,Objective-C
写的。作者通过逆向工程调用了两个私有 API——_ANEClient 和
_ANECompiler——在 M4 芯片的 Neural Engine
上跑通了反向传播。
作者自己说得很清楚:这是一个研究项目,不是生产框架。他不会把它发展成社区项目,PR
合并很慢,功能请求基本不理。他的精力在自己的研究上(编译器基础设施、边缘
AI 优化),维护开源项目是副业。
为什么这个事情值得关注
Apple 的 Neural Engine(ANE)硬件上能跑训练,但 CoreML
只开放了推理接口。作者认为瓶颈从来不在硬件,而在软件封锁。他证明了一件事:只要你绕过
CoreML,直接给 ANE 喂计算图,训练是可行的。
这是目前唯一公开的、能在 ANE 上执行反向传播的代码库。演示了私有 API
能做什么,也暴露了距离可用还差多远。
现实表现:5%利用率,到处都是CPU回退
作者测出来的 ANE 计算利用率只有峰值的 5%~9%。很多逐元素运算还是回退到
CPU 执行。对于当前实现,不要指望它能训练任何有实用价值的模型。
他发过三篇博客详细记录了逆向过程、基准测试和训练方法: – Part 1:
Reverse Engineering – Part 2: Benchmarks – Part 3: Training
所有数字和限制都写在那里面。
和苹果官方工具对比
| 工具 | 训练能力 | 硬件途径 | 维护状态 | 适用场景 |
|---|---|---|---|---|
| maderix/ANE | 有,但效率极低 | ANE 私有 API | 个人研究,慢更新 | 探索 ANE 硬件极限 |
| CoreML | 仅推理 | ANE 公开 API | 苹果持续维护 | 生产推理 |
| MLX | 在 GPU/CPU 上训练 | 统一内存 | 苹果积极维护 | 学术与工程 |
如果你想在 Mac 上训练模型,现在还是用 MLX 或 PyTorch MPS
比较现实。这个项目更适合读源码,理解 ANE 的 SRAM
行为、计算单元组织和私有 API 调用方式。
如果你想试试,先看清代价
- 需要关闭
SIP,不然调不了私有框架。这有安全风险,你自己负责。 - 仅限 Apple Silicon 设备(M1 及以上),作者主要在 M4
上测试,其他型号不一定能跑。 - 私有 API
随时可能因系统更新失效,没有向后兼容保障。 - 没有标准训练脚本。仓库里全是 Objective-C
源码,你得自己读、自己编译。具体的步骤,去看作者的博客文章。
代码里没有给任何命令行示例。你如果打算跑,就得读
ANECompiler 和 ANEClient
的实现,理解怎么加载模型、分配 ANE
缓冲区、调用私有方法做前向和反向。
这就是全部事实。7,110颗星不代表它好用,只代表很多人好奇。