Flash-MoE:純粋なC/MetalでMacBook Pro上で397BパラメータのQwenモデルを実行

技術実装
Flash-MoEは、60のトランスフォーマーレイヤーを持つ3970億パラメータのMixture-of-ExpertsモデルであるQwen3.5-397B-A17Bを実行します:45のGatedDeltaNet(線形アテンション)+ 15の標準フルアテンション。各レイヤーには512のエキスパートがあり、トークンごとにK=4が活性化され、1つの共有エキスパートが追加されます。隠れ次元は4096です。
パフォーマンスベンチマーク
- 4ビットエキスパート、FMAカーネル: 4.36トークン/秒、優れた品質、完全なツール呼び出し、ディスク上209GB(現在最良)
- 4ビットエキスパート、ベースライン: 3.90トークン/秒、優れた品質
- 2ビットエキスパート、OS信頼: 5.74トークン/秒、良好な品質、ディスク上120GB(JSON/ツール呼び出しが壊れる)
- 2ビットピークシングルトークン: 7.05トークン/秒、良好な品質(ツール使用には不向き)
注:2ビット量子化はJSON出力で"name"の代わりに\name\を生成するため、ツール呼び出しが信頼できません。4ビットが本番構成です。
ハードウェア要件
- マシン: Apple M3 Max搭載MacBook Pro
- チップ: 16コアCPU(12P + 4E)、40コアGPU、16コアANE
- メモリ: 48 GB統合(〜400 GB/s帯域幅)
- SSD: 1TB Apple Fabric、17.5 GB/sシーケンシャル読み取り(測定値)
- macOS: 26.2(Darwin 25.2.0)
主要技術
SSDエキスパートストリーミング
エキスパート重み(4ビットで209GB)は、GCDディスパッチグループによる並列pread()を介してNVMe SSDからオンデマンドで読み込まれます。レイヤーごとにK=4の活性化エキスパートのみがロードされます(各〜6.75MB)。OSページキャッシュはカスタムキャッシュなしでキャッシングを管理し(「OSを信頼する」原則)、自然に〜71%のヒット率を達成します。
FMA最適化デカントカーネル
4ビットデカント行列-ベクトル乗算の内部ループは、数学を(ニブル * スケール + バイアス)* xからfma(ニブル, スケール*x, バイアス*x)に再配置します。スケール*xとバイアス*xを事前計算することで、GPUの融合乗算加算ユニットがデカント+乗算を1命令で実行でき、素朴な定式化より12%高速なパフォーマンスをもたらします。
Metalコンピュートシェーダー
手書きのMetalカーネルには以下が含まれます:
- 4ビットおよび2ビットデカント行列-ベクトル乗算(タイル化、SIMD削減、共有入力キャッシュ、FMA最適化)
- 融合SwiGLU活性化
- RMS正規化(2パス:二乗和削減 + 適用)
- フルアテンションレイヤーのためのバッチGPUアテンション(Q@K^T、softmax、scores@V)
- GPU RoPE(QデインターリーブとK正規化と融合)
- MoE結合 + 残差 + sigmoidゲート(融合カーネル)
遅延GPUエキスパート計算
CMD3(エキスパートフォワードパス)は待機せずに送信されます。GPUはCPUが次のレイヤーを準備している間にそれを実行します。結合 + 残差 + 正規化もGPU上で行われ、次のレイヤーのアテンション投影に直接供給されます。
線形アテンションのためのAccelerate BLAS
GatedDeltaNet再帰は、64ヘッド × 128×128状態行列更新のためにcblas_sscal、cblas_sgemv、cblas_sgerを使用し、スカラーコードより64%高速なパフォーマンスを達成します。
パイプラインパフォーマンス
4ビットでのレイヤー平均:4.28ms
- CMD3(前)→ CMD1:アテンション投影 + デルタネット [1.22ms GPU]
- CPU:結果フラッシュ [0.01ms CPU]
- CMD2:o_proj + 正規化 + ルーティング + 共有 [0.55ms GPU]
- CPU:softmax + topKルーティング [0.003ms]
- I/O:並列pread K=4エキスパート [2.41ms SSD]
- CMD3:エキスパートフォワード + 結合 + 正規化 [0.04msエンコード、遅延]
アーキテクチャ制約
Apple Siliconでは、SSD DMAとGPU計算は同じメモリコントローラーを共有し、有益にオーバーラップできません。GPUのデカントカーネルは〜418 GiB/sで帯域幅飽和しています。小さなバックグラウンドSSD DMAでさえ、メモリコントローラー調停を介して不均衡なGPU遅延スパイクを引き起こし、シリアルパイプラインを必要とします。
📖 完全なソースを読む: HN AI Agents
👀 See Also

オープンブレイン:オープンソースMCPサーバーが、自動グラフ化とセマンティック検索による永続的メモリをClaudeに追加
Open Brainは、自動的なエンティティ抽出、意味的な重複排除、思考間の関連性の自動グラフ化を備え、Claudeにセッションを超えた永続的なメモリを提供するオープンソースのMCPサーバーです。Supabase(pgvector)とDeno Edge Functionsを使用し、セルフホスティング可能で、グラフ探索、エンティティ閲覧、週次レビュー合成のための16のMCPツールを含んでいます。

ローカルMCPメモリシステムとAI会話のための統合
ある開発者が、AIクライアント向けの永続的なローカルメモリを提供するMCPサーバーを構築しました。Qwen 2.5-7Bを使用して、6時間ごとの会話を構造化された知識ドキュメントに統合します。このシステムは完全にユーザーのハードウェア上で動作し、意味的重複排除、適応的スコアリング、FAISSベクトル検索を備えています。

OpenClawエージェントのためのHarrier埋め込みを用いた局所意味記憶検索
MicrosoftのHarrierモデルを使用してローカル埋め込みサーバーを実行し、Ollama互換APIを公開、OpenClawのmemorySearch設定を接続して、外部サービスを使わずにローカルセマンティックメモリ検索を実現する方法。

インタラクティブなマインドマップがClaudeツールエコシステムを可視化
開発者がD3.jsを使用してインタラクティブなHTMLマインドマップを作成し、ClaudeのChat、Cowork、Codeツール間の機能、プラットフォームの利用可否、価格の違い、コネクタの互換性を追跡できるようにしました。