12GBスマホで284Bモデルを動かすMoEストリーミング層の実力

RAMが12GBのスマホで、2840億パラメータのAIモデルが動き出しました。生成速度は毎秒0.94トークン。速くはありませんが、CPUだけでの実行です[4]。きっかけは、Hacker Newsに投稿された「BigMoeOnEdge」というプロジェクトです。llama.cpp(ローカル推論で定番のオープンソースエンジン)の上に層を重ね、スマホやノートPCで巨大なMoEモデルをストリーミング再生しようというShow HNでした[1]。

なぜストリーミングで動くのか。MoE(専門家混合)モデルは、総パラメータと一度に使うパラメータが別だからです。DeepSeek V3は総数671B、推論時に活性化するのは37Bと説明されています[2]。構成はAttention、任意のDense FFN、任意の共有エキスパート、そしてルーティングされるエキスパートです[2]。前三者は毎トークン必ず使う「常時活性」で、大半のサイズを占めるルーティングエキスパートは、その都度ごく一部しか呼ばれません[2]。BigMoeOnEdgeは毎トークンの生成に必要な分をメモリに置き、残りのエキスパート重みをflashストレージから必要時に読み込みます。RAMの数倍のモデルが素のllama.cppのまま動き、出力も全重みをメモリに載せた場合と同一だとREADMEは説明します[4]。この284Bという規模は、Mediumの記事がDeepSeek V4 Flashのパラメータ数として挙げているものです[4]。

注目は自動計画です。プランナーがまずメモリ容量、ストレージ速度、CPU・GPU・NPUを測ります。測った結果をもとに、何を常駐させ、何をストリーミングし、プロンプト読みと回答生成をどのチップが担うかの計画を組み、選択理由まで表示するといいます。フラグやチューニングは不要とのこと[4]。ローカルでOpenAI互換サーバーとして振る舞う点も実用的です[4]。llama.cppをフォークせず、公開APIとの契約で実装する設計で、ピン留めしたサブモジュールの更新手順まで文書化されています[4]。オプションは–auto、–cache-mb auto、–prefetch K、–drop-cold-experts Fなど[4]。Apache-2.0のC++プロジェクトで、取得時点で約640スター、451コミットという観測値もあります[4]。

一方、マニュアルで設定を突き詰めるやり方もあります。llama.cppのチューニングガイドでは、常時活性のパラメータをGPUに置き、エキスパート(exps)をCPUへ振り分ける-ot指定が解説されています[2]。例はGLM-4.7のQ4_K_M量子化モデル。コンテキスト32768、-ngl 999、-fa on(フラッシュアテンション)で起動し、ブロック0〜30をCUDA0へ、expsをCPUへ振り分ける正規表現を渡す構成です[2]。メモリ不足の切り分けには、自動フィットを切る-fit offが勧められています[2]。なお、このガイドの範囲には実測速度の数値は含まれていませんでした。このほか、–n-cpu-moeとストリーミングを解説する記事[7]、VRAMを節約するオフロードガイド[5]、実機での実測を掲げるベンチリポジトリ、混合精度オフロードの研究HOBBIT[8]、最適化推論を狙うllama.moe[6]まで、関連素材が一気に並びました。

しかし、壁もはっきりしています。まず速度で、0.94トークン/秒は1文字ずつじわじわ出てくる水準です[4]。次に品質の落とし穴で、–drop-cold-experts Fは「フラッシュの節約になる場所だけ品質を落とす」と説明される損失ありのノブです[4]。一方でprefetch設計は、損失ノブを切っていれば出力を変えないと明記されており[4]、速度と品質の線引きが設計の核心のようです。反応もまだ小さく、Hacker Newsの投稿は1ポイント・コメント0件です[1]。なおXの日本のトレンドには「ClaudeDuet」という語が上がりましたが[3]、素材からはこの話題とのつながりは読み取れません。

エッジ端末で巨大モデルを動かす流れは、自動計画が参入の壁を下げ、手動チューニングの知見が上限を引き上げる、二輪で進んでいるようです。速度の現在地は0.94トークン/秒[4]。実機ベンチや混合精度研究[8]の蓄積が、この数字をどこまで押し上げるかが次の見どころです。

関連記事

CALENDAR

2026年10月
日 月 火 水 木 金 土
 123
45678910
11121314151617
18192021222324
25262728293031

ARCHIVES

CATEGORIES