酒呑ガジェット

〜静かな環境であなたに...こちらは音のでないコンテンツです。〜

【悲報】「メモリが足りません」の一行で終わるはずだった話、8GBのノートPCが350億のAIを毎秒39.3トークンで動かしてしまう

【悲報】「メモリが足りません」の一行で終わるはずだった話、8GBのノートPCが350億のAIを毎秒39.3トークンで動かしてしまう

「メモリが足りません」。自分のPCで大きめのAIを動かそうとして、多くの人がこの一行で挫折してきた。350億パラメータのモデルは普通に保持すれば70GB。最もきつく4ビットまで量子化しても17GBを超えるため、VRAM 8GBのノートパソコンにはどう頑張っても収まらない。ところが今週、その8GBのノート(RTX 4060 Laptop)で350億のMoEモデルが毎秒39.3トークンを出したという報告が現れた。カリフォルニア大学バークレー校とマサチューセッツ工科大学の研究者らによる推論エンジン「FreeToken」で、論文と実装(Apache License 2.0)が同時に公開されている。モデルは一切小さくしていない。変えたのは、置き場所と仕事の分け方だけである。

ノートパソコンの上に浮かぶ輝くニューラルネットワークのホログラムとGPU・メモリチップを描いた先端的なテクノロジーイメージ

なぜ入らないのか — 70ギガの壁とMoEという前提

まず壁の正規化から。モデルはパラメータという数の集まりで、1つを2バイトで持つなら350億個で70GBになる。量子化で1つを4ビットに削っても17GB超であり、8GBの倍以上だ。削るだけでは解決しない。ここで前提となるのがMoE(混合エキスパート)という方式だ。中身を専門分野ごとに分業させた作りで、道具箱に工具が何百も入っていて、ネジ1本回すのに手に取るのは数本だけ、というイメージである。350億のうち1回の計算で実際に動くのは30億ほどだ。

問題は「どの工具を取るか」がその場になるまで決まらないことにある。使うのはわずかでも、箱全体を手元に置いておかなければならない。計算は軽いのに、置き場所だけは重いまま。これがMoEの一番厄介な性質で、今回の話はこの重い箱の置き方をどう変えたかという話なのである。

従来のオフロードの二つの弱点

昔からの手は「線を引く」ことだ。層構造の途中までをグラボ、そこから先を本体メモリとCPUに置くオフロード方式で、llama.cppやOllamaもこの仕組みを持つ。ただし弱点が二つある。一つは線を引く場所の正解が機械ごとに違うこと。VRAM、本体メモリ、CPUの速さはすべて別物で、従来はユーザーが数字を手で調整するしかなかった。もう一つは線が起動時に引かれたまま固定されること。会話が長くなるとKVキャッシュと呼ばれる記録が膨らみ、多めに取ればモデルの場所が減って遅くなり、少なめに取れば長い話の途中で落ちる。どっちに転んでも困る構造だった。

鍵は4つ — 走らせたまま組み替える

FreeTokenの一つ目の工夫は、VRAMを線で区切らず一つの池として扱い、稼働したまま配分を変えることだ。「モデル部品の棚」と「会話の記録」が場所を取り合っている構造を見抜き、話が長くなれば記録側を広げ、短い仕事に戻れば棚へ返す。冷蔵庫の棚板を中身に合わせて動かすような発想で、再読込のために何十秒も飛ぶ事故を防ぐ。

二つ目は棚の中身の取捨選択だ。呼ばれる回数は部品によって偏るので、よく呼ばれるものをVRAMに残す。従来は起動時の決め打ちだったが、FreeTokenは走らせながら呼ばれ方を観測し、しばらく呼ばれていないものから退避させる。同じ容量で比較すると、空振り率は決め打ちの41%から16%まで低下した。

三つ目が山場で、棚から外れた残り16%の扱いである。道は二本ある。本体メモリからPCIe経由で部品を運んでGPUで計算する道と、運ばずにその場のCPUで計算して答えの数字だけ返す道だ。前者は道が細いことが詰まりになり、後者はCPUの演算自体が遅い。FreeTokenは両方を同時に使い、二つの道の太さの比で割り振って両列が同時に終わるよう調整する。この比は機械ごとに違うため、設定ファイルに書いておくやり方はそもそも通用せず、測って決める設計になっている。

四つ目は同じ前置きを二度読まない工夫だ。エージェント用途では長い文脈を毎回送り直しがちだが、途中の状態に印を置いておけば次回はそこから再開できる。しおりの挿入である。

数字で見る効果 — 待ち時間179秒が44秒未満へ

最初の一文字が出るまでの時間(TTFT)は衝撃的で、全ワークロードでFreeTokenは44秒未満。同じ条件でOllamaは179秒、llama.cppは232秒、KTransformersは946秒だった。読む段階のプレフィルも16,000トークンを毎秒6,700で処理している。生成速度では、RTX PRO 6000(96GB)でGLM-5.2(総数7530億)をllama.cppの毎秒7.3に対して14.9とちょうど2倍に引き上げ、最初の一文字までは7.5秒対7.8秒でほぼ互角という切り分けも明確だ。RTX 5090機ではQwen3.6-35B-A3Bが毎秒77〜83(ベースライン比1.8〜2.3倍)、DeepSeek-V4-Flash(2840億)が毎秒22〜25(同1.5〜1.9倍)。そして冒頭のノートPCの39.3トークンは、論文が比較基準として挙げるCodexのデコード速度中央値33を上回る数字である。

注意書き4つ — 「8GBで動く」の本当の意味

都合の悪い条件も四つ押さえておきたい。第一に、ノートPCの回だけ同一機でのベースライン値が論文に載っておらず、「ノートで2倍速い」とは言えないこと。第二に、「8GBで動く」は「8GBしか使わない」ではないこと。当該ノートは本体メモリ32GBを積み、モデル本体はそちらに置かれている。第三に、RTX 5090の検証機はXeon Gold 2基・メモリ180GBのサーバー級構成で、一般的なゲーミングデスクトップとは同一視できない。第四に、すべて著者本人による測定で、第三者の追試はまだ確認できていないことだ。なお実装は公開されているので、誰でも自身の機械で検証できる。

ネットの反応

Windows, GPU:RTX 4060(8GB), メモリ:64GB で、Qwen3.6-35B-A3B NVFP4 を使って「C言語で、Hello, world! を出力するプログラムを教えて。」は正しく出ることが確認できました。応答完了まで 1m17s、13.3 tok/s でした。

AI やってると RTX PRO 6000 欲しくなるけど手、出せないよなぁ…高くなる前ですら1枚で100万 Over は趣味でやる範囲超えすぎてる

TTFTが179秒から44秒未満というのはエージェント常用者には死活問題レベル。往復が多いほど効くってのは納得の条件付きだけど。

グラボ買い替えの前に動かし方を変える余地があるってのが一番の持ち帰り。VRAMだけ見て諦めるのはもったいないという話、正直に条件書いてあるのも信頼できる。

AIの所感

この研究の本質は「ハードウェアの増強ではなく、配置と分担の知恵で壁を越えた」点にあると思う。70GBの壁は物理法則のように見えて、実は運用の固定観念が生んだ壁だった。特に示唆的なのは、帯域の異なる二つの道に仕事を比率で振り分ける発想で、「どちらか一方を選ぶ」という従来の二択を溶解させている。一方で「8GBしか積んでいない機械では土俵に乗らない」という正直さも重要だ。華々しい数字の裏には必ず条件があり、それを明示する姿勢こそが追試と普及の第一歩になる。買い替えの前に、今の機械の伸び代を測ってみる価値は十分にあるだろう。

-パソコン