PUBLIC

Chapter 2 なぜ手元のPCで動くのか / 2-1

必要メモリの見積もり式

パラメータ数 × 0.6 + KVキャッシュ。実在モデル4つで誤差5%以内に当たる。

70Bのモデルは、1パラメータ2バイトなら140GBです。でも実際には128GBのマシンで動いています。というか、32GBのGPUで27Bのモデルが動くのも計算が合いません。27B × 2バイト = 54GB。載るはずがない。

答えは量子化です。まず、そこを織り込んだ見積もり式を覚えてください。

必要メモリ = パラメータ数 × 1パラメータあたりのバイト数
            + KVキャッシュ
            + オーバーヘッド(1GB程度)

1パラメータを何バイトで持つか。ここが可変です。

精度1パラメータあたり呼び方
FP16 / BF162.0 バイト量子化なし
Q8_0約 1.06 バイト8bit量子化
Q4_K_M約 0.6 バイト事実上の標準
Q2_K約 0.35 バイトかなり攻めた設定

まず覚えるべきは Q4_K_M の「0.6」です。これが今の事実上の標準なので、この数字ひとつで大体の見積もりが立ちます。

実在するモデルで検算してみる

「約0.6」なんてざっくりした数字で本当に合うのか。確かめます。

モデルパラメータ数式の予測実際のサイズ
Qwen3.8 27B27B16.2 GB約 17 GB
Llama 3.3 70B70B42.0 GB約 43 GB
DeepSeek V4 Flash285B171.0 GB約 175 GB
GLM-5.3 Flash320B192.0 GB約 200 GB

4つとも誤差5%以内。パラメータ数に0.6を掛けるだけで、実際のファイルサイズがほぼ当たります。

70B × 2.0バイト(FP16)  = 140 GB  ← 載らない
70B × 0.6バイト(Q4_K_M) = 42 GB   ← 載る

量子化していたから動いていたんですね。ダウンロードしたモデルは、ほぼ例外なく量子化済みのものです。

自分のマシンで何が動くか、動かして確かめる

式が分かったら、あとは数字を入れるだけです。モデルサイズ・量子化・コンテキスト長を変えて、どこで壁にぶつかるかを見てください。

Interactive

メモリ計算機

モデルサイズ・量子化・コンテキスト長を変えると、必要メモリと「どのマシンで動くか」が変わります。

モデルを選ぶ
総パラメータ数27B
量子化0.6 バイト / パラメータ
コンテキスト長32K トークン
22.2GB 必要

重み 16.2 + KVキャッシュ 5.0 + オーバーヘッド 1

GPU 8GBRTX 4060 など・実効 7.5GB
✗ 載らない
GPU 12GBRTX 4070 など・実効 11.5GB
✗ 載らない
GPU 16GBRTX 5060 Ti など・実効 15.5GB
✗ 載らない
GPU 24GBRTX 4090 / 3090・実効 23GB
△ ギリギリ
RTX 509032GB GDDR7・実効 31GB
✓ 動く
Mac 64GBユニファイド・実効 48GB
✓ 動く
Mac / DGX Spark 128GBユニファイド・実効 96GB
✓ 動く
DGX Spark ×2256GB・実効 192GB
✓ 動く

KVキャッシュは「40層・KVヘッド8・ヘッド次元128・FP16」を仮定した概算です(0.16 MB/トークン)。実際の値はモデルの設定によって変わります。 ユニファイドメモリ機の実効値は、既定でGPUに割り当てられる約75%としています。

触ってみると、いくつか気づくことがあると思います。コンテキスト長を伸ばすとKVキャッシュが一気に効いてくること。 そしてMoEを選んでも必要メモリは総パラメータ数で決まること ── なのに1トークンあたりの読み出し量だけが小さい。この不一致が、後の「速度」の章の伏線になります。

MODEL SIZE vs RAM REQUIRED (Q4量子化 + 8Kコンテキスト)重み (Q4)KVキャッシュ16GB 壁(M4 Mac / RTX 4080)32GB 壁(RTX 5090 / PC)64GB 壁128GB (M5 Max/Studio)8B モデル約 6.5 GB16GBマシンで余裕14B モデル約 10.5 GB16GB〜32GBで快適32B モデル約 22 GB32GB GPUでちょうど収まる70B モデル約 46 GB64GB〜128GBの統合メモリが必要
モデルが大きくなるほど、対応できるマシンが1台ずつ脱落していく。

よくある失敗

「ギリギリ載る一番大きいモデル」は、実は使いにくい。モデルだけで容量を使い切ると、KVキャッシュの余地がなくなり、長い会話の途中で落ちます。 1段小さいモデルを選んで、その分をコンテキストに回すほうが安定します。

式が合わないときもあります

動的量子化のモデル(Unsloth の UD- 付きなど)は、全部の層を同じビット数で潰していません。効く層は高精度で残すので、名前が「Q2」でも平均3〜4bit相当だったりします。 またMoEの補助パラメータは計算に使わなくてもメモリには載るため、式より膨らみます。

なので式は「当たりをつける道具」として使ってください。最終的には配布元の実ファイルサイズを見るのが確実です。それでも、式が頭に入っているかで判断の速さが全然違います。