サイジングガイド・9分で読了

# モデルが実際に必要とするVRAMの量

これを決めるのは2つの数字です。固定された重みと、提供するコンテキストの量に応じて増えるKVキャッシュです。誤った答えのほとんどは、後者を前者から推定しようとすることから生じます。

簡潔な答え

- **Weights:** パラメータ数（十億単位） × パラメータあたりのバイト数。70Bを4-bitにすると**35 GB**になります。
- **KVキャッシュ:** 2 × レイヤー数 × KVヘッド数 × ヘッド次元 × バイト数（トークンあたり）。パラメータ数とは無関係です。
- **Overhead:** アクティベーション、CUDAコンテキスト、アロケーターの断片化のために約**15%**を加算します。
- **落とし穴:** 重みを4-bitに量子化しても、キャッシュは**量子化されません**。一般的などのスタックでもFP16のままです。

## 計算式

ここには、2つ目のモデルに直面しても通用する経験則はありません。計算全体はわずか3行なので、係数を鵜呑みにするよりも、実際に計算する価値があります。

総VRAM(GB)

```
# 1. Weights
weights_gb   = parameters_in_billions × bytes_per_parameter

# 2. KV cache, per token — then multiplied by the context you serve
bytes_per_tok = 2 × layers × kv_heads × head_dim × cache_bytes
cache_gb      = bytes_per_tok × context_tokens × batch / 1024³

# 3. Everything else
total_gb      = (weights_gb + cache_gb) × 1.15
```

`2`となっているのは、トークンごとにKとVという2つのテンソルがあるためです。`bytes_per_parameter`はBF16で2、FP8で1、4-bitで0.5です。`cache_bytes`は*別枠*の数値であり、この区別を怠ることが誤った答えの最も多い原因です。詳しくは[下記](https://gpuserver.io/ja/guides/vram-sizing#wrong)をご覧ください。

## 重み

簡単な半分です。パラメータ数に対して正確に線形であり、決めるべきことは精度だけです。

**重みのメモリ量（精度別、モデルサイズの一例）**

| モデル | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) |
|---|---|---|---|
| Llama 3.1 8B 8Bパラメータ | 16.0 GB | 8.0 GB | 4.0 GB |
| Qwen 3 32B 32Bパラメータ | 64.0 GB | 32.0 GB | 16.0 GB |
| Llama 3.3 70B 70Bパラメータ | 140.0 GB | 70.0 GB | 35.0 GB |
| Llama 3.1 405B 405Bパラメータ | 810.0 GB | 405.0 GB | 202.5 GB |

4-bit量子化は品質を犠牲にしますが、その度合いは手法よりもモデルに大きく左右されます。カード1枚と4枚の違いを生むのであれば理にかなったトレードオフですが、すでに余裕がある状況では割に合いません。

## KVキャッシュ

難しい半分であり、あるマシンが4kでは十分でも128kでは全く足りないかを決めるのはこちらです。これはレイヤー数とKVヘッド数に左右され、モデルの大きさには*左右されません*。

**規模が大きく異なる2つのモデルを並べて比較します。** Llama 3.3 70Bは80層、8個のKVヘッドを持つため、 1トークンあたり320 KBになります。 Gemma 3 27B（パラメータ数の3分の1）は62層、16個のKVヘッドを持つため、 1トークンあたり496 KBとなり、これは 1.6×*多い*数値です。 パラメータ数だけからスケーリングした見積もりは、この関係を取り違えます。

**KVキャッシュサイズ（モデル・コンテキスト長別、FP16キャッシュ精度、1リクエスト）**

| モデル | トークンあたり | 4kコンテキスト | 8kコンテキスト | 32kコンテキスト | 128kコンテキスト |
|---|---|---|---|---|---|
| Llama 3.1 8B 32層 · 8個のKVヘッド | 128 KB | 0.5 GB | 1.0 GB | 4.0 GB | 16.0 GB |
| Gemma 3 27B 62層 · 16個のKVヘッド | 496 KB | 1.9 GB | 3.9 GB | 15.5 GB | 62.0 GB |
| Llama 3.3 70B 80層 · 8個のKVヘッド | 320 KB | 1.3 GB | 2.5 GB | 10.0 GB | 40.0 GB |
| DeepSeek V3 671B-A37B (MoE) 潜在アテンション | 70 KB | 0.3 GB | 0.5 GB | 2.2 GB | 8.8 GB |
| Llama 3.1 405B 126層 · 8個のKVヘッド | 504 KB | 2.0 GB | 3.9 GB | 15.8 GB | 63.0 GB |

最初の列より先に、最後の列を読んでください。4kコンテキストでは、ここに挙げたどのモデルでもキャッシュは誤差の範囲です。128kになると、4-bitの70Bモデルの重みよりも大きくなります。DeepSeek V3が例外なのは、その潜在アテンションが設計上キャッシュを圧縮するためです。だからこそ、このリストで最大のモデルでありながら長いコンテキストでも使用できるのです。

## 見積もりが誤る箇所

**キャッシュをパラメータ数から推定すること。**最もよくある誤りで、上で示した例そのものです。27Bモデルが70Bモデルより多くのキャッシュを必要とすることもあります。

**4-bitの重みはキャッシュも4-bitになると思い込むこと。**実際はそうなりません。AWQとGPTQが量子化するのは重みだけで、FP8 KVを明示的に有効にしない限りキャッシュはFP16のままです。70Bモデルの場合、4-bit・128kコンテキストで重みが35 GB、キャッシュが40 GBになります。

**1リクエスト分だけでサイジングすること。**キャッシュは同時実行シーケンスごとに必要です。8人のユーザーに同時に提供するには、キャッシュも8倍必要になります。詳しくは[下記](https://gpuserver.io/ja/guides/vram-sizing#batch)をご覧ください。

**オーバーヘッドを見落とすこと。**アクティベーション、CUDAコンテキスト、アロケーターの断片化は実在するものです。15%は意図的に余裕を持たせた見積もりであり、これを完全に無視すると、「収まるはずの」モデルが読み込めないという事態を招きます。

**複数カードのVRAM合計だけで数えること。**24 GBカード4枚は96 GBカード1枚ではありません。テンソル並列化でモデルを分割することはできますが、その場合レイヤーごとにリンク越しの同期が発生します。詳しくは[NVLinkガイド](https://gpuserver.io/ja/guides/nvlink-vs-pcie)をご覧ください。

**MoEをアクティブパラメータでサイジングすること。**DeepSeek V3はトークンあたり37Bを活性化させますが、メモリには671B全体を保持する必要があります。アクティブパラメータが予測するのは*速度*であり、読み込めるかどうかを決めるのは総パラメータ数です。

## 具体例

8kコンテキスト・1リクエストにおける、重み・キャッシュ・オーバーヘッドを合わせた必要メモリの総量です。これは、コンフィギュレーターがカタログ内のすべての構成に対して実行しているのと同じ計算です。

**8kコンテキストで必要な総VRAM（モデル・精度別）**

| モデル | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) | 収まる最小のノード |
|---|---|---|---|---|
| Llama 3.1 8B 8Bパラメータ | 20 GB | 10 GB | 6 GB | [NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $125/mo · 1枚のカードで · ~34 tok/s |
| Mistral Small 24B 24Bパラメータ | 57 GB | 28 GB | 15 GB | [NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $125/mo · 1枚のカードで · ~11 tok/s |
| Gemma 3 27B 27Bパラメータ | 67 GB | 33 GB | 20 GB | [NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $125/mo · 1枚のカードで · ~10 tok/s |
| Qwen 3 32B 32Bパラメータ | 76 GB | 38 GB | 21 GB | [NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $125/mo · 1枚のカードで · ~8 tok/s |
| Llama 3.3 70B 70Bパラメータ | 164 GB | 82 GB | 43 GB | [2 × NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $285/mo · ノード全体に分割 · ~7 tok/s |
| Mixtral 8×22B (MoE) 141B中39Bがアクティブ | 326 GB | 163 GB | 83 GB | [4 × NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $564/mo · ノード全体に分割 · ~4 tok/s |
| Qwen 3 235B-A22B (MoE) 235B中22Bがアクティブ | 542 GB | 271 GB | 137 GB | [8 × NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $1,106/mo · ノード全体に分割 · ~10 tok/s |
| DeepSeek V3 671B-A37B (MoE) 671B中37Bがアクティブ | 1,544 GB | 772 GB | 386 GB | [8 × NVIDIA A100 PCIe](https://gpuserver.io/ja/gpu/a100-80gb) $7,906/mo · ノード全体に分割 · ~37 tok/s |
| Llama 3.1 405B 405Bパラメータ | 936 GB | 468 GB | 237 GB | [10 × NVIDIA L4](https://gpuserver.io/ja/gpu/nvidia-l4) $1,371/mo · ノード全体に分割 · ~3 tok/s |

最後の列は、モデルを4-bit・8kコンテキストで収められる、当社カタログの中で最も安価なノードと、メモリ帯域幅が許す単一ストリームの生成速度です。スループットの数値は意図的に控えめに設定され、公開されている測定値と照らし合わせて調整されています。保証ではなく、下限の目安として扱ってください。

## 複数のリクエストに同時対応する

デモ向けにサイジングしたマシンが、製品を提供できないマシンになるのはここです。重みは一度だけ必要ですが、キャッシュは同時実行シーケンスごとに必要になります。

**Llama 3.3 70Bの4-bit時の総VRAM（同時リクエスト数・コンテキスト別）**

| 同時リクエスト数 | 4kコンテキスト | 8kコンテキスト | 32kコンテキスト |
|---|---|---|---|
| 1件のリクエスト | 42 GB 80GBカード1枚 | 43 GB 80GBカード1枚 | 52 GB 80GBカード1枚 |
| 4件のリクエスト | 46 GB 80GBカード1枚 | 52 GB 80GBカード1枚 | 86 GB H200 1枚 |
| 16件のリクエスト | 63 GB 80GBカード1枚 | 86 GB H200 1枚 | 224 GB マルチGPUノード |
| 64件のリクエスト | 132 GB H200 1枚 | 224 GB マルチGPUノード | 776 GB マルチGPUノード |

Llama 3.3 70Bは4-bitにすると、どうやっても重みが35 GBになります。この表で35 GBを超える分はすべてキャッシュです。だからこそ、「ノートパソコンでは問題なく動いた」のと「本番環境では落ちた」が、同じモデル・同じカードでの出来事になり得るのです。

**キャッシュ用メモリを取り戻す2つの方法** お使いのスタックが対応していれば、FP8 KVキャッシュを有効にしてください。上記の数値が半分になり、品質への影響は通常見分けがつきません。また、`--max-model-len`は実際に提供するコンテキストに上限を合わせてください。vLLMは宣言された最大値に対してキャッシュを確保するため、実際には8kしか提供しないのに128kと宣言すると、必要な量の16倍のメモリを無駄にします。

## それが意味するマシン

これまでの内容から導かれる、実践的な3つのルールです。重要な順に並んでいます。

1. **可能な限り、複数枚より1枚が優れています。**シャーディングも、レイヤー間の同期も、インターコネクトへの配慮も不要です。使用するコンテキストでモデルが1枚のカードに収まるなら、そのカードを選んでください。
2. **モデルの公称最大値ではなく、実際に使うコンテキストと実際の同時実行数でサイジングする。**公称最大値は能力であって、要件ではありません。
3. **シャーディングが避けられない場合は、NVLinkを選ぶ。**PCIeカード4枚への分割も機能しますが、NVLinkカード4枚への分割も機能し、かつ明確に高速です。その差にどれだけの価値があるかは、まさに[次のガイド](https://gpuserver.io/ja/guides/nvlink-vs-pcie)で扱います。

[コンフィギュレーター](https://gpuserver.io/ja/configure)は、この計算を全41構成に対してリアルタイムで実行します。モデル、精度、コンテキスト長を選ぶと、どのノードに収まるか、どのノードが1枚のカードに収められるか、そして月額費用がいくらかを表示します。使われている計算式はこのページと同じものなので、当社の計算に異論があれば、どこが違うのか正確に指摘できます。

## お使いのモデルを、当社が貸し出すすべてのマシンと照合します。

コンフィギュレーターは、お支払いいただく前に、この計算を全41構成に対して実行します。

[コンフィギュレーターを開く](https://gpuserver.io/ja/configure) [ガイドを読む](https://gpuserver.io/ja/guides)

## その他のガイド

- [サイジング · 7分 NVLinkかPCIeか：ジョブに必要なのはどちらか カード間の接続がスループットを左右する場合、まったく影響しない場合、そして間違ったノードに支払う前にどちらの状況かを見分ける方法。 ガイドを読む](https://gpuserver.io/ja/guides/nvlink-vs-pcie)
- [サイジング · 9分 画像・動画モデル向けのカード選び FLUX、SDXL、SD 3.5、Wan 2.1がそれぞれ必要とするVRAM、カタログ内でそれを収められるカード、そして収まる中で最も安いカードが借りるべき最適解とは限らない理由。 ガイドを読む](https://gpuserver.io/ja/guides/gpu-for-flux-sdxl)
- [サイジング · 10分 量子化フォーマットの選び方 AWQ、GPTQ、GGUF、FP8それぞれがメモリ、速度、品質の面で払う代償。そして、重みが最も小さい形式が、最も小さいモデルになるとは限らない理由。 ガイドを読む](https://gpuserver.io/ja/guides/awq-vs-gptq-vs-fp8)

---

出典: https://gpuserver.io/ja/guides/vram-sizing/。このファイルはウェブサイトと同じデータから生成されています。ここに記載された数値がページの内容と異なる場合、ページの内容が正となり、このファイルは古い情報です。正式な出典はhttps://gpuserver.io/です。
