オリオン:CoreMLをバイパスしてLLMをApple Neural Engine上で直接実行およびトレーニングする方法

LLMワークロードのための直接ANEアクセス
Orionは、CoreMLを完全にバイパスし、LLMをApple Neural Engine(ANE)上で直接実行およびトレーニングするエンドツーエンドのObjective-Cシステムを提供します。このアプローチにより、開発者はANEを直接制御できるようになります。これまでCoreMLによってブラックボックススケジューラとして扱われ、直接制御やトレーニングの能力が剥奪されていたANEに対して、直接的なコントロールが可能になります。
技術的実装と制約
このプロジェクトは、非公開のANEClientおよびANECompiler APIをマッピングしたリバースエンジニアリングの成果に基づいています。ANEは、開発者が「ハードウェアインピーダンスミスマッチ」と呼ぶ17のプログラミング制約を提示しており、そのうち11は完全に文書化されていませんでした。主な制約には以下が含まれます:
- concat操作は即座に、サイレントなコンパイラエラーを引き起こす
- BLOBFILEウェイトはチャンクヘッダーから64バイトのオフセットを必要とし、そうでないとサイレントな数値破損が発生する
- ANEは内部状態を維持しており、プロセスあたり約119回のコンパイルでハードキャップされ、その後サイレントに失敗する
トレーニング課題への解決策
以前のANEトレーニングの試みでは、1ステップ後にNaN発散が発生していました。Orionは以下によってこの問題を解決します:
- 遅延コンパイルパイプラインを構築する
- fp16オーバーフロー連鎖を防ぐための厳密なアクティベーションクランプを実装(アクティベーションを-65504から+65504にクランプ)
- 119回コンパイル制限を回避するために、各トレーニングステップ後にexec()プロセス再起動ループを使用する
パフォーマンス結果
コンパイラは、27オペレーションのグラフIRを5つの最適化パスを通じてANEネイティブのMILに変換します。現在のパフォーマンスには以下が含まれます:
- GPT-2 124Mデコードで170+トークン/秒
- 110Mパラメータのトランスフォーマーでの機械的に安定した多段階トレーニング(ハードウェアの「コヒーレンス上限」)
- 1,000ステップ以上にわたり、損失が12.3から6.2に減少し、NaNはゼロ
現在の制限
ANEはコンパイル時にウェイトを固定するため、トレーニングの更新ごとに約4.2秒の再コンパイルペナルティが発生します。ANEはfp16で約19 TFLOPSを発揮しますが、その使用における根本的な制約は計算能力ではなく、ネイティブなオーケストレーションレイヤーの完全な欠如でした。
📖 完全なソースを読む: r/LocalLLaMA
👀 See Also

ジェネラルボット:セルフホスト型エンタープライズ自動化のためのオープンソースAIエージェントプラットフォーム
General Botsは、2019年に開始されたオープンソースプラットフォームで、AIエージェント、ワークフロー自動化、ドキュメント処理、ローカルAIモデルサポートとの統合を提供し、自社インフラストラクチャを完全に制御したい組織向けに設計されています。

プネウマ:記述からソフトウェアが具現化するAI生成デスクトップ環境
Pneumaは、ユーザーが欲しいものを記述するだけで、CPUモニター、ゲーム、メモアプリ、データビジュアライザーなど、機能するプログラムが数秒で具現化するデスクトップコンピューティング環境です。このシステムは自己完結型のRustモジュールを生成し、WebAssemblyにコンパイルした後、wgpuによるGPUレンダリングを備えたサンドボックス化されたWasmtimeインスタンスで実行します。

マウス: AIコーディングエージェントのための座標ベースの編集ステージング変更とアトミックロールバック
Mouseは、文字列置換編集を6つの座標ベース操作(INSERT、DELETE、ADJUST)と、アトミックロールバック可能なステージング変更で置き換え、AIエージェントに外科的なファイル編集精度を提供します。

開発者が共有するハイブリッドAIコーディングワークフロー:計画にはClaude、実行にはローカルモデル
開発者がClaude 3.5 Sonnetをタスク計画に、Ollama経由のローカルQwen2.5-Coderモデルをコード生成に使用するパイプラインを構築し、Claudeのみを使用する場合と比較して85%のトークン削減を達成しました。