📌 项目地址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
    源码,你得自己读、自己编译。具体的步骤,去看作者的博客文章。

代码里没有给任何命令行示例。你如果打算跑,就得读
ANECompilerANEClient
的实现,理解怎么加载模型、分配 ANE
缓冲区、调用私有方法做前向和反向。

这就是全部事实。7,110颗星不代表它好用,只代表很多人好奇。

这篇文章对你有帮助吗?

发表回复