Apple Neural Engine上でトランスフォーマーをトレーニング - ANE GitHub
March 03, 2026
カテゴリ:
実用的なオープンソースプロジェクト
Revolutionary: Training Transformers Directly on Apple Neural Engine
AppleのNeural Engine(ANE)はM4チップで15.8 TFLOPSの推論性能を提供しますが、トレーニングは?公式には不可能です。これまで。
画期的な進歩:純粋なANEトレーニング
ANE Trainingは、リバースエンジニアリングされたプライベートAPIを使用して、ANEハードウェア上でフルトランスフォーマートレーニングループ(前方パスおよび後方パス)を直接実行するゼロからの実装です。CoreMLトレーニングAPIなし。Metalシェーダーなし。GPUフォールバックなし。純粋なANE計算。
現在のベンチマーク(M4, dim=768, seq=512): - 9.3 ms/ステップ - 11.2% ANE利用率(1.78 TFLOPS持続) - トレーニングステップあたり6回のANEカーネルディスパッチ
アーキテクチャの詳細
システムはトレーニングステップあたり6つの特殊化されたANEカーネルを調整します:
| カーネル | 機能 | 主要イノベーション |
|---|---|---|
| kFwdAttn | RMSNorm + QKV + SDPA | 前方タップがCPU再計算を回避 |
| kFwdFFN | SwiGLU FFN | ANE RMSNorm融合 |
| kFFNBwd | FFN後方 | チャネルファーストレイアウト |
| kSdpaBwd1/2 | SDPA後方 | Wo^T融合でカーネル数を削減 |
| kQKVb | QKV後方 | GCD非同期cblasオーバーラップ |
CPUが扱うのは: RMSNorm後方、残差、損失、dW蓄積(Accelerate cblas)、Adam更新のみ。
重要な最適化
- チャネルファーストレイアウト - ANE IOSurface [1,C,1,S]に適合し、転置オーバーヘッドを排除
- vDSP RMSNorm - 10倍高速化(6.7ms → 0.7ms)
- ANE RMSNorm融合 - 前方カーネルに組み込み
- 遅延cblas - 最大ANE/CPUオーバーラップ
- exec()再起動 - 119コンパイル制限を回避
性能進化: 33.5ms → 9.3msの体系的最適化による。
数分で開始
# macOS 15+ Apple Silicon必須
xcrun clang -O2 -framework Foundation -framework IOSurface \
-framework CoreML -framework Accelerate -ldl -lobjc \
-o train_large training/train_large.m
./train_large
システムフレームワーク以外の依存関係ゼロ。
ファイル構造のハイライト
api_exploration.m- プライベートAPI発見inmem_bench.m- ANEディスパッチ遅延sram_probe.m- SRAM帯域幅探求training/train_large.m- 本番単層トレーナー
制限とロードマップ
✅ 分解による因果マスキング ✅ 勾配蓄積/チェックポイント ✅ Adamオプティマイザ
🔄 多層パイプライン 🔄 実トークン化データセット 🔄 フルモデルトレーニング
法的注意
研究/教育目的で未文書APIのランタイム内省を使用(DMCA §1201(f))。Appleの独自コードは含まれていません。
2.1k stars, 362 forks - Apple Silicon ML革命に参加:https://github.com/maderix/ANE
元の記事:
オリジナルを見る