全6のデータセンターが正常稼働中

暗号資産で支払い · 本人確認不要 · 5分未満でrootアクセス

サイジングガイド・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別枠の数値であり、この区別を怠ることが誤った答えの最も多い原因です。詳しくは下記をご覧ください。

重み

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

重みのメモリ量(精度別、モデルサイズの一例)
モデル BF16 / FP16FP84-bit (AWQ, GPTQ)
Llama 3.1 8B8Bパラメータ 16.0 GB 8.0 GB 4.0 GB
Qwen 3 32B32Bパラメータ 64.0 GB 32.0 GB 16.0 GB
Llama 3.3 70B70Bパラメータ 140.0 GB 70.0 GB 35.0 GB
Llama 3.1 405B405Bパラメータ 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倍必要になります。詳しくは下記をご覧ください。

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

複数カードのVRAM合計だけで数えること。24 GBカード4枚は96 GBカード1枚ではありません。テンソル並列化でモデルを分割することはできますが、その場合レイヤーごとにリンク越しの同期が発生します。詳しくはNVLinkガイドをご覧ください。

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

具体例

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

8kコンテキストで必要な総VRAM(モデル・精度別)
モデル BF16 / FP16FP84-bit (AWQ, GPTQ) 収まる最小のノード
Llama 3.1 8B 8Bパラメータ 20 GB 10 GB 6 GB NVIDIA L4 $125/mo · 1枚のカードで · ~34 tok/s
Mistral Small 24B 24Bパラメータ 57 GB 28 GB 15 GB NVIDIA L4 $125/mo · 1枚のカードで · ~11 tok/s
Gemma 3 27B 27Bパラメータ 67 GB 33 GB 20 GB NVIDIA L4 $125/mo · 1枚のカードで · ~10 tok/s
Qwen 3 32B 32Bパラメータ 76 GB 38 GB 21 GB NVIDIA L4 $125/mo · 1枚のカードで · ~8 tok/s
Llama 3.3 70B 70Bパラメータ 164 GB 82 GB 43 GB 2 × NVIDIA L4 $285/mo · ノード全体に分割 · ~7 tok/s
Mixtral 8×22B (MoE) 141B中39Bがアクティブ 326 GB 163 GB 83 GB 4 × NVIDIA L4 $564/mo · ノード全体に分割 · ~4 tok/s
Qwen 3 235B-A22B (MoE) 235B中22Bがアクティブ 542 GB 271 GB 137 GB 8 × 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 $7,906/mo · ノード全体に分割 · ~37 tok/s
Llama 3.1 405B 405Bパラメータ 936 GB 468 GB 237 GB 10 × 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枚への分割も機能し、かつ明確に高速です。その差にどれだけの価値があるかは、まさに次のガイドで扱います。

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

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

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

ログイン

コンソール、請求書、アウトオブバンドアクセス。

アカウントをお持ちでないですか?

個別のサインアップはありません。最初の注文を行う際にアカウントが作成されます。支払いのステップでメールアドレスとパスワードを選択していただき、マシンの用意ができる頃にはコンソールも利用可能になっています。

サーバーを設定

Language