巨大MoEモデルをスマホで動かす、llama.cpp活用の新レイヤーが登場

スマホの中で、巨大なAIモデルがサクサク動く日が来るのか。Hacker Newsの「Show HN」に投稿された「BigMoeOnEdge」は、ローカル推論の定番エンジンllama.cppの上に層を重ね、大型のMoEモデルをスマホとノートPCでストリーミング実行できるようにする試みです[1]。投稿はポイント1・コメント0で、まさに始まったばかりの話題です。とはいえ、この小さな投稿の土台には、ローカル推論コミュニティで積み重ねられてきた工夫があります。

MoE(Mixture of Experts)は、トークンごとに「エキスパート」と呼ぶ小さなニューラルネットワークの一部だけを選んで計算する仕組みです。モデル全体のサイズと、実際に動くサイズが別々に数えられるのが特徴で、例えばDeepSeek V3は総パラメータ671Bのうち、1回の計算で動くのは37Bだけです[2]。内部はattention、必要に応じた密なFFN、共有エキスパート、そして振り分け先のエキスパートに分かれます。最初の3つは毎回の計算で必ず動く部分です。一方、モデルの大半を占めるのはエキスパート部分ですが、使われるのはそのごく一部です。トークンごとに一部だけが動く、これがMoEの魅力であり、同時に厄介な問題の種でもあります。動かないエキスパートも「どこかに置いておく」必要があるからです。

ここがスマホやノートPCの壁になります。llama.cppはエキスパートを含むモデル全体を保持しなければならず、16GBや24GBのメモリ環境ではこれが最大の制約です[3]。定番の回避策がオフロードで、GPUに置く層とシステムRAMに置く層を段階的に分ける指定(–n-cpu-moe)を使います。速度を犠牲にしてメモリの余裕を確保する、層ごとの調整です[3]。CPUとGPUに分けるときは、毎回使うattentionなどの部分をすべてGPUに割り当て、エキスパートをCPU側に逃がすのが最適だとするガイドも公開されています[2]。モデルがRAMとGPUのメモリ(VRAM)の合計に収まることに加え、OSなど他のプログラム分の余裕も見込んでおく必要があります[2]。この方法なら、Qwen3-Coderの30Bクラス(同時に動くのは3B)を16GBのGPUカードで実用にできるという報告もあります[3]。ガイドの冒頭には「十分なRAMを事前にダウンロードしておくことが前提」という冗談めいた一言も添えられています[2]。

さらに踏み込んだのが、ディスクからのストリーミングです。どのエキスパートを使うかを決める計算は、attentionの計算が終わる前に完了します。この隙間時間に、次の層で必要なエキスパートを先取りして読み込めば、読み込みと計算を重ねられるわけです。従来はエキスパートをあらかじめRAMに全部載せる前提でしたが、この方法ではディスクから必要な分だけをその都度読み込みます[3]。コミュニティの実装では、この重ね合わせによって処理速度(スループット)が約2倍に向上したという話も出ています[3]。すでに少なくとも5通りの独立した実装が存在し、関心の高さがうかがえます[3]。

しかし、スマホとなると話はもう一段複雑になります。モバイルデバイスでの効率的な推論を狙う「Mixture of Cache-Conditional Experts」と題する研究が、arXivや学術誌TMLR、レビューサイトOpenReviewで公開されています[5][6][7]。タイトルからは、キャッシュ(よく使うデータを手元に残しておく領域)に何を残すかを条件に、エキスパートの選び方を制御するアプローチだと読み取れます。ストレージの読み出しがさらに厳しいスマホでは、必要な時に読み込むだけでは足りず、メモリに残す部分まで設計に組み込む必要があるようです。GitHubではMoE推論の最適化を目的としたllama.moeというプロジェクトも公開されており[4]、手法の模索は複数の路線で進んでいます。

今回の投稿自体は、まだ検証が始まったばかりです。ポイント1・コメント0の状態で、スマホ上の実際の速度や、どのモデルをどの程度快適に動かせるかは明示されていません[1]。効果のほどは今後の報告を待つ段階です。それでも各素材に共通するのは、MoEの「一部だけ動く」という性質を、スマホやノートPCの限られたメモリにどう収めるかという一点に絞った工夫です。巨大モデルを手元で動かす技術は、計算の速さそのものより、重みの置き方と読み方を磨く方向へ進んでいる、と言えそうです。

関連記事

CALENDAR

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

ARCHIVES

CATEGORIES