Helldez/BigMoeOnEdge
Run MoE models bigger than your RAM. Frontier-size MoE on a 12 GB phone, lossless, on stock llama.cpp
解決する課題
BigMoeOnEdge は、スマートフォンや CPU のみを使う PC など、RAM が非常に限られたデバイス上で巨大な Mixture-of-Experts(MoE)モデルを実行できるようにします。モデルが利用可能なシステムメモリより大きい場合、通常は OS のページング/スワップによってクラッシュしたり極端に遅くなったりする問題を解決します。フラッシュストレージをメモリ階層の一部として扱うことで、出力品質を損なわずに、デバイスの RAM より数倍大きいモデルを実行できます。
仕組み
このエンジンは llama.cpp の公開 API の上に構築され、重み管理にストリーミング方式を採用しています。モデル全体を RAM にロードするのではなく、必須の非エキスパート重みだけを常駐させ、生成される各トークンに必要な特定の「エキスパート」を、必要な瞬間にフラッシュストレージから直接読み取ります。
主な技術的仕組みは次のとおりです:
- エキスパートキャッシュ:よく使われるエキスパートを RAM に保持し、ストレージ読み取りを減らします。
- 並列 I/O レーン:複数のエキスパートスライスを同時に読み取り、フラッシュストレージの帯域を飽和させます。
- ダイレクト I/O:OS のページキャッシュを迂回し、冗長なメモリ使用を防ぎます。
- I/O と計算のオーバーラップ:現在の層がまだ計算している間に、次に必要な重みを先読みします。
- 行ギャザーテーブル:密なテーブル(トークン埋め込みなど)を完全にロードするのではなく、有界のウィンドウでフラッシュからストリーミングします。
対象ユーザー
最先端の大型 MoE モデル(DeepSeek V4 Flash や Qwen シリーズなど)を、ハイエンド GPU や大量の RAM なしでエッジデバイス(Android スマートフォン、ノート PC)上で実行したい開発者や愛好家。
ハイライト
- RAM 非依存の実行:RAM が 12 GB しかないデバイスでもモデル(例:284B パラメータモデル)を実行できます。
- ロスレスストリーミング:出力はモデルをメモリに完全常駐させて実行した場合とバイト単位で同一です。
- 幅広い互換性:llama.cpp がサポートするすべての量子化フォーマット、トークナイザー、チャットテンプレートをサポートします。
- NPU アクセラレーション:Snapdragon Hexagon NPU でのオプションのプリフィル高速化。
- 決定モード:専用の
--decideモード。単一のプリフィルで多肢選択問題に回答し、遅いトークン単位のデコードを回避します。 - マルチシャード対応:マージ手順なしでマルチシャード GGUF ファイルをネイティブに読み取ります。
関連
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト