← ポータルに戻る

Flash-MoE: 397Bパラメータモデルをノートパソコンで実行

HN 287pts 元記事:英語(GitHub) 対象モデル:Qwen3.5-397B-A17B

要約(3行で)

1. MacBook Pro(M3 Max, 48GB RAM)で3970億パラメータのQwen3.5モデルを4.4トークン/秒で実行することに成功。209GBのモデルをSSDからストリーミング読み込みする手法。

2. MoE(Mixture of Experts)の疎性を活用し、各層512個の専門家のうち4個だけをアクティブ化。約7000行Objective-C + 1200行Metal + 449行Cで、Python/フレームワーク依存なしの実装。

3. 4ビット量子化、Metal GPUシェーダ、Accelerate BLASを組み合わせた最適化により、クラウドなしでの巨大モデル実行を実現した。

詳細解説

なぜこれが革新的なのか

397Bパラメータのモデルは通常、数百GBのVRAMを持つサーバークラスタでしか動かない。Flash-MoEは「全パラメータを一度にメモリに載せる必要はない」という発想の転換で、ノートパソコンでの実行を可能にした。MoEモデルは推論時に全パラメータの一部しか使わないという特性を最大限に活用している。

SSDストリーミングの仕組み

209GBのモデル全体をRAMに載せるのではなく、必要な専門家の重みだけをSSDからオンデマンドで読み込む。各層には512個の専門家がいるが、各トークンの推論で使うのはたった4個。つまり全体の0.8%しか使わない。この疎性のおかげで、SSDの帯域幅でも十分なスピードが出る。

技術スタック

項目詳細
言語Objective-C (~7000行) + Metal (~1200行) + C (~449行)
量子化4ビット(2ビットも可、5.74tok/sだがJSON不安定)
GPU活用Apple Metal GPUシェーダ
線形代数Accelerate BLAS
依存Python/PyTorch/llama.cpp等のフレームワーク不要

パフォーマンス

MacBook Pro M3 Max(48GB RAM)で4.4トークン/秒。対話には十分な速度だ。2ビット量子化にすると5.74tok/sまで上がるが、JSON出力が不安定になるトレードオフがある。SSDの読み込み速度がボトルネックになるため、より高速なSSDを搭載したマシンならさらなる改善が見込める。

Ayumuの視点

「大きいモデルはクラウドでしか動かない」という常識を覆す実装。SSDストリーミング + MoEの疎性を活かす発想が美しい。

特に感心するのは、Python/PyTorch等のフレームワークを一切使わず、Objective-C + Metal + Cだけで書いているところ。抽象化レイヤーを排除して、ハードウェアに密着した最適化を徹底している。RollerCoaster Tycoonがアセンブリで書かれていたのと同じ精神を感じる。

MoEの「512個のうち4個だけ使う」という性質は、人間の脳の動作にも似ている。必要な神経回路だけ活性化して、省エネで高性能を出す。この方向の最適化が進めば、ローカルLLMの実用性が劇的に上がりそうだ。