LLM を動かすのに必要なメモリは?

言語モデルに必要なメモリは、3 つの数字で決まります。パラメータの数、1 つあたり何ビットで保存するか、そしてどれだけのコンテキストを渡すかです。よくあるモデルサイズとすべての Mac について計算したので、どんなモデルでも自分で答えを出せます。

更新日

要点

  • 重み:パラメータ数 × 1 重みあたりのビット数 ÷ 8。MLX の 4 ビット形式なら 10 億パラメータあたり約 0.56GB、8 ビットで約 1.06GB、16 ビットで 2GB です。
  • つまり 8B モデルは 4 ビットで約 4.5GB、32B モデルは約 18GB、70B モデルは約 39GB 必要です。ここにコンテキスト分が加わります。
  • コンテキスト(KV キャッシュ)は上乗せされ、トークンごとに増えます。Qwen3 8B の場合、32,000 トークンのコンテキストで約 4.8GB と、4 ビットの重みより大きくなります。
  • Mac では初期設定で GPU がユニファイドメモリの約 75% を使えるので、16GB の Mac ならモデルに使えるのは約 12GB です。PC でフルスピードで動かすには、モデルがグラフィックカード自身の VRAM に収まる必要があります。

1計算式:パラメータ数 × ビット数

モデルの大部分は重みで、パラメータ 1 つにつき 1 つの数値です。16 ビットで保存すると 1 つあたり 2 バイトなので、10 億パラメータあたり 2GB が必要です。量子化は各重みをより少ないビット数で保存し、モデルをほぼ比例して小さくします。4 ビットなら、たいていのモデルは元の品質に近いままです。

量子化形式は、重みを復元するための少しの追加データも保存します。Apple の MLX は初期設定で、64 個の重みのグループごとにスケールとバイアスをモデル本来の 16 ビット型で持つため(MLX)、1 重みあたり 0.5 ビット増えます。サイズは次のとおりです。

精度1 重みあたりのビット数10 億パラメータあたりの GB
16 ビット(元のまま)162.0
8 ビット8.5約 1.06
6 ビット6.5約 0.81
4 ビット4.5約 0.56
3 ビット3.5約 0.44
2 ビット2.5約 0.31
MLX のアフィン量子化、初期設定のグループサイズ 64 の場合。同じ精度の GGUF ファイルもほぼ同じサイズになります。

4 ビットを下回ると、品質は急に落ちていきます。余裕をもって収まる範囲で最も高い精度を選ぶのが、よい基本方針です。

2モデルサイズ別の必要メモリ

モデルサイズ16 ビット8 ビット4 ビット3 ビット
1B2GB1.1GB0.6GB0.4GB
3B6GB3.2GB1.7GB1.3GB
8B16GB8.5GB4.5GB3.5GB
14B28GB14.9GB7.9GB6.1GB
32B64GB34GB18GB14GB
70B140GB74.4GB39.4GB30.6GB
120B240GB127.5GB67.5GB52.5GB
235B470GB249.7GB132.2GB102.8GB
405B810GB430.3GB227.8GB177.2GB
671B1,342GB712.9GB377.4GB293.6GB
上の計算式による重みだけの値です。コンテキストと、ランタイム用の余裕を足してください。

最初から低い精度で配布されるモデルもあります。OpenAI の gpt-oss-120b は 1,170 億パラメータを持ち、Mixture-of-Experts の重みを 4 ビット形式の MXFP4 で保存しているため、80GB の GPU 1 枚に収まります(OpenAI)。個別のモデルについては、そのページを開いてください:すべてのオープンモデルと必要な Mac、たとえば gpt-oss-120b や Llama 3.3 70B。

3コンテキストもメモリを使う

モデルは読み書きする間、会話のトークンごとにキーとバリューを各層に保持します。これが KV キャッシュです。サイズは 2 × 層数 × KV ヘッド数 × ヘッドサイズ × 値あたりのバイト数 × トークン数です。

たとえば Qwen3 8B は 36 層、KV ヘッド 8、ヘッドサイズ 128 で、16 ビットで保存されます(config)。1 トークンあたり 147,456 バイトです。

コンテキストQwen3 8B の KV キャッシュ(16 ビット)
8,192 トークン約 1.2GB
32,768 トークン約 4.8GB
40,960 トークン(最大コンテキスト)約 6.0GB
4 ビットの重みは約 4.6GB(82 億パラメータ)なので、長いコンテキストではモデル本体より多くのメモリが必要になることがあります。

このモデルのように Grouped-Query Attention を使うモデルは、KV ヘッドをアテンションヘッドより少なく持つため(32 に対して 8)、それだけでキャッシュが 4 分の 1 になります。キャッシュを量子化すればさらに節約でき、mlx-lm のサーバーは --kv-bits 4 を受け付けます(mlx-lm)。チャットなら数千トークンのコンテキストで十分ですが、エージェント、長い文書、コードには数 GB を見込んでおきましょう。

4Mac に収まるモデルの大きさ

Mac のメモリは CPU と GPU で共有され、macOS は初期設定で GPU にその一部しか使わせません。当サイトの Compare ページでは約 75% として計算しています。mlx-lm の README には、macOS 15 以降で sudo sysctl iogpu.wired_limit_mb=N を使ってこの上限を引き上げる方法が載っていますが(mlx-lm)、macOS やほかのアプリにも空きが必要です。

Mac のメモリGPU 用(約 75%)4 ビットで最大のモデル8 ビットで最大
8GB6GB約 10B約 5B
16GB12GB約 21B約 11B
24GB18GB約 32B約 16B
32GB24GB約 42B約 22B
36GB27GB約 48B約 25B
48GB36GB約 64B約 33B
64GB48GB約 85B約 45B
96GB72GB約 128B約 67B
128GB96GB約 170B約 90B
256GB192GB約 341B約 180B
512GB384GB約 682B約 361B
重みだけの値です。そのうち数 GB はコンテキスト用に残してください。各容量から、そのメモリでよく動くモデルの一覧へ移動できます。

どのモデルが収まるかはメモリで、どれだけ速く書けるかはメモリ帯域幅で決まります。後半は ローカル LLM に最適な Mac で説明しており、すべての Mac のランキング で両方をまとめて見られます。

5RAM、VRAM、ユニファイドメモリ

グラフィックカードを積んだ PC では、モデルがカード自身のメモリ、つまり VRAM に収まる場合にだけフルスピードで動きます。RTX 5090 なら 32GB です(NVIDIA)。収まらない層は PC のシステム RAM から動かすこともできますが、そのメモリは読み出しがずっと遅いため、モデルは大幅に遅くなります。

Mac には独立した VRAM がありません。GPU は CPU と同じユニファイドメモリを読むので、64GB や 128GB の Mac なら、一般向けのグラフィックカード 1 枚には収まらないモデルも載せられます。同じ仕組みの PC も少し出てきました。CPU と GPU で 128GB を共有する NVIDIA の DGX Spark や AMD の Ryzen AI Max 搭載機などです。M5 Max と DGX Spark、M5 Max と RTX 5090 の比較をご覧ください。

6Mixture-of-Experts モデル

Mixture-of-Experts モデルはすべてのパラメータをメモリに置きますが、トークンごとに使うのはそのごく一部です。必要なメモリは総パラメータ数で、速度はアクティブな部分で決まります。gpt-oss-20b は 210 億パラメータのうちアクティブなのは 36 億で(OpenAI)、メモリは 21B モデル並みに必要ですが、書く速さは 4B モデルとほぼ同じです。

グラフィックカードと比べて帯域幅よりメモリ容量に余裕がある Mac には、Mixture-of-Experts モデルがよく合います。Compare では人気モデルすべてについて両方の数字を表示しています。

7よくある質問

70B モデルを動かすにはどれくらいのメモリが必要?
4 ビットで重みに約 39GB、これにコンテキスト分が加わります。実際には 64GB 以上の Mac か、複数のグラフィックカードが必要です。8 ビットなら約 74GB 必要なので、128GB です。
LLM を動かすのに 16GB のメモリで足りる?
4 ビットで約 14B パラメータまでのモデルなら足ります。16GB の Mac では、初期設定で GPU が約 12GB を使えます。8B モデルならコンテキストの余裕も残して快適に動きます。16GB の Mac におすすめの LLM をご覧ください。
8B モデルに必要な VRAM は?
4 ビットで約 4.5GB、8 ビットで 8.5GB、16 ビットで 16GB です。これに、Qwen3 8B の場合は 8,000 トークンのコンテキストで約 1.2GB が加わります。
コンテキスト長でメモリは増える?
増えます。KV キャッシュは会話のトークンごとに大きくなります。Qwen3 8B では 16 ビットで 1 トークンあたり約 147KB、32,000 トークンで約 4.8GB です。
メモリより大きいモデルを動かせる?
実用的には無理です。重みが収まらないと、システムはスワップしたり遅いメモリから読んだりするため、出力は極端に遅くなります。精度を下げる、小さいモデルや Mixture-of-Experts モデルを使う、または複数のマシンに分散させましょう。Mac で AI クラスタ をご覧ください。

出典

  1. MLXml-explore.github.io
  2. OpenAIhuggingface.co
  3. confighuggingface.co
  4. mlx-lmgithub.com
  5. mlx-lmgithub.com
  6. NVIDIAnvidia.com
  7. OpenAIhuggingface.co

次に読む