1台のGPUが実際に対応できる人数。
モデルを収容できるマシンが、そのままユーザーに対応できるマシンとは限りません。重みは一度だけ支払う通行料です。それを差し引いた余りが、人に対応するために使える予算のすべてです。容量を決めるのはカードの大きさではなく、その余りです。そして、その余りはメモリそのものよりもはるかに速く変化します。
簡潔な答え
- 容量を決めるのは余り、カードではない
- Llama 3.3 70Bは4-bitで、誰か1人に提供する前の時点で40 GBを確保します。それ以降は、同時リクエストが1件増えるごとに2.9 GBずつ増えていきます。
- メモリが二重に効いてくる理由
- 同じカードのまま48 GBから240 GBに増やすと、メモリは5.0×倍になり、席数は35×倍になります。重みはすでに支払い済みです。
- 候補の中で最も割に合わない選択
- NVIDIA L40Sは月額$714で2件の同時リクエストを収容します—1席あたり$357.00です。
- 最良の選択肢は、費用も安い
- 4 × NVIDIA L4は$564で19を収容します—1席あたり$29.68で、請求書はより安く済みます。
要点
あるモデルが収まるかどうかを教えてくれるガイドはどれも、リクエスト1件についての問いに答えているにすぎません。製品はリクエスト1件では成り立ちません。2人が同時にエンドポイントを使った瞬間、マシンは会話のコピーをメモリ上にもう1つ必要とします。3人目、40人目となれば、その分だけさらに必要になります。一方で、重みそのものはただ1つだけ保存されていれば済みます。
つまり、対応できる人数を決めるのは、カードの大きさそのものではありません。カードの大きさからモデルを引いた値を、会話1件あたりのコストで割った値です。この2つの数値はどちらも注文前からわかっているため、容量は機械学習の中でも数少ない、紙の上で計算するだけで正しく求められるものの1つです。
重みは通行料です。一度、入り口で支払われるだけで、トラフィックの量には左右されません。ユーザー数が増えても増加せず、二度と戻ってくることもありません。
KVキャッシュが賃料です。同時リクエストごとに、そのリクエストが開いている間ずっと発生し、会話が長くなるほど増えていきます。
容量とは、余りを賃料で割った値です。だからこそ、メモリが2倍のマシンが、単に2倍ではなく10倍の人数に対応できることも珍しくありません。
そして、収まる最安のマシンがたいてい最も割高になる理由です。それが収まるのは余りがほとんどないからです。実際にお金を払って買っているのは、その余った部分だけなのです。
以下はすべて、コンフィギュレーターと同じ計算式を、同じカタログに対して、4-bit・8kコンテキストで実行した結果です。メモリの計算式そのものが初めてという方は、専用のガイドをご覧ください。このページが扱うのは、そこに2人目以降が現れたときに何が起こるか、という話です。
重みを差し引いたあとの余り
このサイトの基準モデルを、同じカードで構成されたあらゆるサイズのノードに載せてみます。シリコンも、カードあたりの価格も、その他すべて同じで、変わるのはメモリの量だけです。最後の2つの列が、まったく異なる速度で動く様子に注目してください。
| ノード | メモリ | 重みを差し引いた余り | 同時リクエスト数 | 月額 |
|---|---|---|---|---|
| NVIDIA L4 | 24 GB | — | 収容できない | $125 |
| 2 × NVIDIA L4 | 48 GB | 8 GB | 2 | $285 |
| 4 × NVIDIA L4 | 96 GB | 56 GB | 19 | $564 |
| 8 × NVIDIA L4 | 192 GB | 152 GB | 52 | $1,106 |
| 10 × NVIDIA L4 | 240 GB | 200 GB | 69 | $1,371 |
最初の行がすべてを物語っています。重みすら収容できないカードは、誰にも対応できません。しかもそれは僅差の話ではありません。それ以降の行では、メモリは均等な幅で増えていく一方、席数は加速しながら増えていきます。40 GBの通行料は最初の行で支払われ、その後は二度と発生しないからです。
seats = (memory − weights) ÷ cache_per_request。Llama 3.3 70Bの4-bitでは、これは40 GBの通行料と、開いている会話1件あたり2.9 GBの賃料になります。割る前に引いてください。順序を逆にすると、デモ用に選んだマシンが本番環境で容量不足だと判明する、という事態を招きます。
ユーザー1人あたりの実際のコスト
続いて、同じモデルを購入者の視点、つまり価格が安い順に並べ替えます。最後の列は、月額価格をそのマシンが同時に収容できる人数で割った値です。デモ以上のものを構築する場合、2台のマシンを公平に比較できるのはこの列だけです。
1つ前提を明示しておきます。これによってすべての数値が変わるからです。各席数は、ノード全体に分割したモデルの1インスタンス分です。これは--tensor-parallel-sizeで得られる構成のことです。重みは一度だけ保存され、各カードは自らの余ったメモリをすべて同じ会話用プールに提供します。同じノード上で2つの独立したコピーを実行すると、通行料を2回支払うことになり、合計の席数はかえって少なくなります。
| ノード | メモリ | 月額 | 同時リクエスト数 | ユーザーあたり |
|---|---|---|---|---|
| 2 × NVIDIA L4 | 48 GB | $285 | 2 | $142.50 |
| NVIDIA RTX A6000 | 48 GB | $286 | 2 | $143.00 |
| 2 × NVIDIA RTX 4090 | 48 GB | $416 | 2 | $208.00 |
| 4 × NVIDIA L4 | 96 GB | $564 | 19 | $29.68 |
| 2 × NVIDIA RTX A6000 | 96 GB | $597 | 19 | $31.42 |
| 2 × NVIDIA RTX 5090 | 64 GB | $692 | 8 | $86.50 |
| NVIDIA L40S | 48 GB | $714 | 2 | $357.00 |
| 2 × NVIDIA A100 PCIe | 80 GB | $802 | 13 | $61.69 |
| 4 × NVIDIA RTX 4090 | 96 GB | $814 | 19 | $42.84 |
| NVIDIA A100 PCIe | 80 GB | $1,091 | 13 | $83.92 |
価格の列と合わせて、色のついた2つのセルを見てください。NVIDIA L40Sは月額$714で2を収容し、4 × NVIDIA L4は$564(より安い金額)で19を収容します。つまり、0.79×の請求書で10×の席数が得られるということです。それでも多くの候補リストに残るのは高い方です。理由は、そちらの方がモデルを1枚のカードに収められるからです。
最初の10行だけでなくカタログ全体で見ると、このモデルにおける1席あたりの最安価格は、月額$2,239の8 × NVIDIA RTX A6000です。同時リクエストは119件、1件あたり$18.82になります。これは上記の候補よりもはるかに高額な請求書になりますが、それでも、ユーザーを1人収容する最も安い方法という点は変わりません。これが、製品としてサイジングしているのか、それとも試作品としてサイジングしているのかを決める一文です。
コンテキスト長はもう一つの倍率要因
ここまでの内容はすべて、8kのコンテキストを前提としていました。この前提は、マシン選びそのものよりも大きな影響を及ぼしています。キャッシュはユーザーごとだけでなく、トークンごとにも発生するため、会話をどれだけ長く続けさせるかによって、同じノードでも収容できる人数はまったく違ってきます。
1台のマシン、4つのモデル、4つのコンテキスト長です。使用するノードは月額$1,106の8 × NVIDIA L4です。これは、4つのモデルすべてを同時に収容できる、当社カタログの中で最も安いノードです。以下の数値はすべて、同じメモリを基準に測定されています。
| モデル | トークンあたりのキャッシュ | 4k | 8k | 32k | 128k |
|---|---|---|---|---|---|
| Llama 3.1 8B | 128 KiB | 325 | 162 | 40 | 10 |
| Qwen 3 32B | 256 KiB | 150 | 75 | 18 | 4 |
| Llama 3.3 70B | 320 KiB | 105 | 52 | 13 | 3 |
| Qwen 3 235B-A22B (MoE) | 188 KiB | 67 | 33 | 8 | 2 |
マシン自体は何も変えていないのに、Llama 3.3 70Bは同時ユーザー数が105から3へ、35×倍に増えます。理由は、コマンドラインで設定する1つの数値だけです。ハードウェアは何も変わっていません。
ここから2つのことが言えます。1つ目は、読むべきコンテキストの列は、モデルカードが謳う値ではなく、実際に提供する値だということです。128kに対応しているモデルだからといって、その分を確保しなければならないわけではありません。2つ目は、トークンあたりのキャッシュ量は、パラメータ数が近いモデル同士でも大きく異なるということです。これはパラメータ数ではなく、アテンション設計によって決まるためです。その表の中で最大のモデルほど、キャッシュは最小クラスに入ることも少なくありません。これは、この分野全体の中でも最も直感に反する事実です。
容量を買い戻す4つの方法
効果の大きさに対してコストが小さい順に並んでいます。最初の1つはほぼ無料なのに、見落とされていることがほとんどです。
--max-model-lenを実際の上限に設定してください。| モデル | 16-bitキャッシュ | 8-bitキャッシュ | 増加席数 |
|---|---|---|---|
| Llama 3.1 8B | 162 | 325 | +163 |
| Qwen 3 32B | 75 | 150 | +75 |
| Llama 3.3 70B | 52 | 105 | +53 |
| Qwen 3 235B-A22B (MoE) | 33 | 67 | +34 |
同じノード、同じ重み、同じ費用です。変わるのはキャッシュを保存する精度だけですが、それがチームに対応できるマシンと、製品に対応できるマシンとの違いを生みます。
席数とサービスの質は別物
上記の数値をもとに何かをサイジングする前に、1つ訂正しておきます。これは、このページの内容を正直なものに保つための訂正です。ここでの数値はすべて、マシンが開いたまま保持できる会話の数を数えたものです。そのすべてに速く応答できることを保証するものではありません。
メモリと帯域幅は、それぞれ別の上限です。8 × NVIDIA L4では、Llama 3.3 70Bが52件の同時会話を収容できる一方で、そのマシンを1人だけで使った場合は、およそ17トークン/秒になります。52席をすべて埋めても、各ユーザーが17トークン/秒を得られるわけではありません。生成処理は同じメモリ帯域幅を共有するため、バッチ処理によって合計は増えても、ユーザー1人あたりの速度は下がります。帯域幅の上限は、メモリの上限よりもずっと手前で訪れます。
良い知らせは、この2つの上限がおおむね連動していることです。重みを差し引いたあとの余りが大きいマシンは、一部の例外を除けば、帯域幅も大きいマシンでもあります。余裕を基準に選んでも、速度を犠牲にすることはほとんどありません。最終的に選んだマシンで提供用スタックを構築する方法は別のガイドで扱っており、ここで挙げた数値が実際に生きてくるのは、そこで扱うフラグの設定によってです。
ユーザー数に応じて選ぶ
順番に並んでいます。該当する負荷を説明している最初の項目で読むのをやめてください。
- 一度に1件のリクエストしか扱わない場合。バッチジョブ、社内向けツール、開発者1人での利用です。モデルを1枚のカードに収容できる最も安いマシンを買えば十分で、ここから先を読む必要はありません。このページの各列が答えているのは、この場合には関係のない問いです。
- ときどき、少人数が使う場合。チーム向けツールや、立ち上げたばかりの製品です。見るべきはユーザー登録数ではなく、ピーク時の同時リクエスト数です。登録ユーザーが100人いても、同時に使うのはほんの数人にとどまることがほとんどです。そのピークを余裕を持って上回る席数のマシンの中から、最も安いものを選んでください。
- 実際のトラフィックがある本番の製品の場合。カタログを価格ではなく1席あたりの価格で並べ替え、コンテキストは実際に提供する長さに制限し、キャッシュは8-bitまで下げてください。選ばれるのは、月額価格だけを見ていたら候補にすら入らなかったはずのマシンになるはずです。
- 長い文書や長い会話を扱う場合。まずコンテキストの表を読み、マシンの表はそのあとで読んでください。32k以上になるとキャッシュの支配力があまりに大きくなり、モデルの選択よりも、その背後にあるアテンション設計の方が重要になります。
- 急激で予測しづらいトラフィックの場合。失敗が許されないピークに合わせてサイジングしてください。キャッシュが尽きたときに借りてくることはできず、会話の置き場所がないリクエストはキューで待たされることになります。ピークがまれにしか来ず、しかも非常に大きい場合は、月に2回しか起きないスパイクに合わせてマシンをサイジングするより、超過分をトークン課金のAPIに任せる方が安く済みます。
どの項目で読むのをやめたとしても、まず最初に引き算をしてください。マシンのメモリから、実際に提供する精度でのモデルの重みを差し引き、余りを確認します。その余りこそが、実際に借りている対象です。コンフィギュレーターは、当社が運用するすべてのノードに対して同じ計算を実行し、1か月あたりの費用は別途算出されます。
マシンはモデルではなく、ユーザー数を基準にサイジングする。
コンフィギュレーターには、当社が貸し出しているすべてのノードが登録されており、このページと同じメモリ計算を実行し、モデルを読み込んだあとの余りを、支払いの前に示します。
その他のガイド
- コスト · 6分
月額レンタルが時間貸しに勝つのはどんな時か
実際の数字で算出した損益分岐点、時間単価が請求書が来るまで隠している3つのコスト、そして見積もりを3倍に膨らませるアイドル時間の落とし穴。
ガイドを読む - コスト · 9分
セルフホスティングとトークン課金APIの比較
トークン課金APIとGPUレンタルの損益分岐点を、自社の価格とスループットで算出。そして、その計算が見落としている4つの要素。
ガイドを読む - 実践 · 11分
Llama 3.3 70Bを1ノードで提供する
納品されたマシンから、OpenAI互換エンドポイントまで。重要なフラグと、気づかぬうちにスループットを半減させる2つのフラグを解説します。
ガイドを読む