GPU VPSとAPIトークン課金の損益分岐点
GPU VPSとAPIのどちらが得かを、GPUの時給、実効出力レート、稼働率、API単価から計算します。月間トークン数で逆転する条件も確認できます。
損益分岐点は実際にはどこにあるか
GPU VPS がトークン単位の API 課金を上回るのは、固定の月額料金を、その月に実際に生成する出力トークン数で割った金額が、同じトークン数に対する API の料金を下回る時点です。月額料金は変わりません。API 料金はリクエストごとに変動します。そのため、答えは常に月間の利用量であり、単純な yes または no ではありません。
中価格帯の GPU VPS を 1 時間あたり $0.50、730 時間の月で $365 として計算します。最先端モデルの API と比較すると、損益分岐点は月間 24.3 百万出力トークンです。小規模な商用モデルと比較した場合は 73 百万です。同じ規模のホスト型オープンウェイトモデルと比較すると、損益分岐点には到達しません。1 枚のカードでは、交差点に達するために必要な月間トークン数を生成できないためです。
公開されている損益分岐点の調査では、この問いに答えられません。2026 年前半に発表された 2 件の調査では、H200 で継続利用率が約 72%、MI300X で稼働率が 22% から 48% の範囲に達すると損益分岐点になるとしています。どちらも同じベンダーのサーバーレス製品との比較です。また、どちらも、この記事の多くの読者が 1 か月に支払う金額を上回る 1 時間あたり料金のアクセラレーターを前提にしています。計算方法は同じです。ここでは、1 枚のカード、7B から 30B の範囲にある 1 つのオープンモデル、一般的な従量制 API 課金を前提に、計算し直します。
以下の数値はすべて入力値であり、結果ではありません。すべて自分の値に置き換えてください。
数値を置き換えて使える計算式
cost_per_million = (hourly_rate * 1000000) / (tokens_per_second * 3600 * duty_cycle)
breakeven_millions_per_month = (hourly_rate * hours_per_month) / api_price_per_million
capacity_millions_per_month = (tokens_per_second * 3600 * hours_per_month) / 1000000
required_duty_cycle = breakeven_millions_per_month / capacity_millions_per_month入力は4つです。いずれも測定するか、調べて確認できます。
hourly_rateは、GPU VPS の1時間あたりの料金です。アイドル状態の時間も含めます。月額料金の場合は、月額を730で割ります。tokens_per_secondは、実際の同時実行数でサーバーが維持できる総出力レートです。ベンダーの性能表にある単一ストリームの値ではありません。duty_cycleは、GPU がトークン生成に使われる月間時間の割合です。1か月間借りて、1日2時間だけ使う場合は8.3%です。api_price_per_millionは、比較対象とする出力トークンの従量料金です。
この例では、チャットとエージェント処理では出力が料金の大部分を占めるため、両方の方式で出力トークンの料金を計算します。プロンプトが長い場合は、両方に入力トークンも加えてください。API 側では、入力トークンは請求書の別項目です。自分の GPU では、入力処理にも GPU 時間を使うため、測定した tokens_per_second がすでに低くなっています。
信頼して計算する前に、1 秒あたりのトークン数を測定する方法
ここまでの計算は、1 つの実測値に基づいています。これを 3 倍誤ると、答えも 3 倍ずれます。実際に借りるカード上で、実際に使用するモデルと量子化設定を使って測定してください。
Ollama では、次の 1 つのコマンドで単一ストリームの値を取得できます。
ollama run qwen3:8b --verbose "Write 400 words about disk latency."--verbose は、回答の後に計測結果のブロックを出力します。重要なのは eval rate の行です。これは生成処理だけを数えた、1 秒あたりのトークン数です。prompt eval rate はプレフィル速度で、通常はこちらのほうが大幅に高くなります。実際の値は次の例とは異なります。
eval count: 412 token(s)
eval duration: 9.612s
eval rate: 42.86 tokens/sコストモデルでは、単一ストリームの値は適切ではありません。これは、同時に多数のリクエストを処理できるカードで、1 回に 1 つのリクエストだけを測定した値だからです。集計値を取得するには、vLLM でモデルを提供し、サーバー自身が報告するスループットを確認します。
pip install vllm
vllm serve Qwen/Qwen3-8B --max-model-len 8192リクエストの処理中、サーバーは報告間隔ごとにステータス行をログに出力します。正確なフィールドは vLLM のリリースによって変わるため、次の例ではなく、実際の出力を確認してください。
Avg prompt throughput: 812.4 tokens/s, Avg generation throughput: 396.1 tokens/s, Running: 16 reqs, Waiting: 0 reqs, GPU KV cache usage: 21.7%Avg generation throughput が計算式で使用する値です。並列リクエストを増やすと、KV キャッシュ(key-value cache。vLLM が VRAM に保持する、リクエストごとの attention 状態)が満杯になるまで増加します。その後は増加しません。さらに負荷を増やすと処理速度は上がらず、リクエストがキューに入ります。この状態は、Waiting の値が増加することで確認できます。vLLM には負荷生成ツールの vllm bench serve も含まれています。このツールのフラグはバージョンによって変わるため、ブログ記事のコマンドをそのままコピーせず、インストールしたバージョンで vllm bench serve --help を実行してください。
テスト中はカードの状態を確認してください。
nvidia-smi --query-gpu=utilization.gpu,memory.used,power.draw --format=csv -l 5生成中に utilization.gpu がほぼ 100% で推移するなら、処理はスループットによって制限されています。その場合、測定した値が実際の上限です。値が低いままなら、別の要因が制限になっています。並列リクエストが少ない、クライアントが遅い、またはモデルが VRAM に収まらず、一部がシステム RAM にオフロードされている可能性があります。この点で Ollama と vLLM は大きく異なるトレードオフを持ちます。同じカードでも両者の差は大きく、損益分岐点が数倍変わる可能性があります。
1 か月の請求額
この例では、1 時間あたり $0.50 の 24 GB GPU VPS 1 台で、vLLM によって 8B のオープンモデルを提供します。16 件の同時リクエストで、合計の出力速度は毎秒 400 トークンです。GPU を使っていなくてもレンタル料金は固定で発生します。この速度での容量は 1 か月あたり 1,051 million output tokens です。これは、GPU が停止せずに稼働した場合に生成できる量です。
The data behind this chart
[
{
"output_tokens_millions": 5,
"gpu_vps_usd": 365,
"open_api_usd": 1,
"small_api_usd": 25,
"frontier_api_usd": 75
},
{
"output_tokens_millions": 10,
"gpu_vps_usd": 365,
"open_api_usd": 2,
"small_api_usd": 50,
"frontier_api_usd": 150
},
{
"output_tokens_millions": 25,
"gpu_vps_usd": 365,
"open_api_usd": 5,
"small_api_usd": 125,
"frontier_api_usd": 375
},
{
"output_tokens_millions": 50,
"gpu_vps_usd": 365,
"open_api_usd": 10,
"small_api_usd": 250,
"frontier_api_usd": 750
},
{
"output_tokens_millions": 100,
"gpu_vps_usd": 365,
"open_api_usd": 20,
"small_api_usd": 500,
"frontier_api_usd": 1500
},
{
"output_tokens_millions": 250,
"gpu_vps_usd": 365,
"open_api_usd": 50,
"small_api_usd": 1250,
"frontier_api_usd": 3750
},
{
"output_tokens_millions": 500,
"gpu_vps_usd": 365,
"open_api_usd": 100,
"small_api_usd": 2500,
"frontier_api_usd": 7500
},
{
"output_tokens_millions": 1000,
"gpu_vps_usd": 365,
"open_api_usd": 200,
"small_api_usd": 5000,
"frontier_api_usd": 15000
}
]GPU の項目は 365 ドルで一定です。GPU をどう使うかに関係なく、レンタル料金は変わらないためです。API の各項目は、ゼロを通る直線になります。それぞれの組み合わせは、ちょうど 1 回交差します。
1 か月あたり 25 million output tokens の場合、frontier API の請求額は 375 ドルです。そのため、両者の差は 10 ドル以内です。50 million の場合、小規模な商用モデルの請求額は 250 ドルで、まだこちらのほうが安価です。1000 million output tokens では、GPU を 1 か月の 95% 稼働させる必要があります。この場合、ホスト型のオープンウェイト API の請求額は 200 ドルで、同じレンタル料金に対するものです。GPU が最も懸命に稼働している量でも、GPU VPS のほうがほぼ 2 倍のコストになります。
この結果に驚く人は多いですが、偶然ではありません。ホスト型のオープンウェイトエンドポイントは、高い稼働率で運用される GPU フリートです。そのため、料金はフル稼働した GPU 1 台のコストに近くなります。1 台の GPU をレンタルし、負荷を最大まで上げずに運用しても、フル稼働の GPU フリートより安くすることはできません。安くできる可能性があるのは frontier の料金です。frontier の料金は、シリコンの稼働時間ではなく、モデルの能力によって決まるためです。
各デューティサイクルにおける 100 万出力トークンあたりのコスト
ボリュームとデューティサイクルは、同じ事実を異なる側面から見たものです。レンタル料金を支払うことで利用時間を確保します。アイドル時間は何も生成せず、それでもコストが発生します。
The data behind this chart
[
{
"label": "100% duty",
"self_host_usd_per_million": "0.35",
"open_api_usd_per_million": "0.20",
"small_api_usd_per_million": "5.00",
"frontier_api_usd_per_million": "15.00"
},
{
"label": "50% duty",
"self_host_usd_per_million": "0.69",
"open_api_usd_per_million": "0.20",
"small_api_usd_per_million": "5.00",
"frontier_api_usd_per_million": "15.00"
},
{
"label": "25% duty",
"self_host_usd_per_million": "1.39",
"open_api_usd_per_million": "0.20",
"small_api_usd_per_million": "5.00",
"frontier_api_usd_per_million": "15.00"
},
{
"label": "10% duty",
"self_host_usd_per_million": "3.47",
"open_api_usd_per_million": "0.20",
"small_api_usd_per_million": "5.00",
"frontier_api_usd_per_million": "15.00"
},
{
"label": "5% duty",
"self_host_usd_per_million": "6.94",
"open_api_usd_per_million": "0.20",
"small_api_usd_per_million": "5.00",
"frontier_api_usd_per_million": "15.00"
},
{
"label": "2% duty",
"self_host_usd_per_million": "17.36",
"open_api_usd_per_million": "0.20",
"small_api_usd_per_million": "5.00",
"frontier_api_usd_per_million": "15.00"
}
]3 つの API 列は、2026 年 8 月時点で一般的に公開されている標準価格の例です。ホスト型の 8B オープンウェイトモデルは 100 万出力トークンあたり 0.20 ドル、小規模な商用モデルは 5.00 ドル、フロンティアモデルは 15.00 ドルです。これらは説明用の数値です。判断する前に、その時点の料金ページを確認してください。従量制トークンではなく定額の月額プランと比較する場合は、サブスクリプションの計算方法が異なり、損益分岐点も再び変わります。
GPU を最大負荷で稼働させると、100 万出力トークンあたりのコストは 0.35 ドルで、確かに安価です。デューティサイクルが 10% の場合、同じ 100 万トークンのコストは 3.47 ドルです。2% の場合は 17.36 ドルになり、同一の出力に対してホスト型オープンモデルが請求する 0.20 ドルとは、もはや同じ水準ではありません。
デューティサイクルが概ね 10% を下回る場合、GPU をレンタルする方が高コストです。0.20 ドルで販売されている出力に対して、100 万トークンあたり 3.47 ドルを支払うことになります。差額で得られるのは、プライバシーと変動しない請求額です。これらに実際の価値がある場合はありますが、価格面で有利になるわけではありません。有利な価格として扱わないでください。
各 API 階層の損益分岐点となる利用量
The data behind this chart
[
{
"label": "Hosted open 8B API",
"breakeven_tokens_millions": 1825,
"required_duty_pct": 174
},
{
"label": "Small commercial model",
"breakeven_tokens_millions": 73,
"required_duty_pct": 6.9
},
{
"label": "Frontier model",
"breakeven_tokens_millions": 24.3,
"required_duty_pct": 2.3
}
]最先端モデルの階層と比較した場合、月間 24.3 百万出力トークンが必要です。これは、そのカードの処理能力の 2.3% にすぎません。達成のハードルは低いといえます。小規模なチームが勤務時間中にコーディングエージェントを実行すれば、これを上回れます。
小規模な商用階層と比較した場合、月間 73 百万トークン、つまり 6.9% の稼働率が必要です。ホスト型のオープンウェイト階層と比較した場合、必要な稼働率は 174% です。100%を超える値は、定義上達成できません。そのカードを、その月に含まれる時間数を超えて稼働させる必要があるためです。この時間単価では、ミッドレンジのカード1枚でこの比較に勝つことはできません。結果を変える方法は、より安価なカード、より高速なカード、または価格以外の理由だけです。
式が隠しているもの
この式は GPU の稼働時間とトークンの料金を算出します。しかし、実際に発生するコストの一部は式の外側にあります。
コールドスタート。 16-bit 重みの 8B モデルは約 16 GB あり、ローカルディスクから VRAM への読み込みに数十秒かかります。使用していない間にインスタンスを停止して料金を節約すると、毎回最初のリクエストでその待ち時間が発生します。待ち時間を避けるために稼働させたままにすると、稼働率が下がり、トークンあたりのコストが上がります。このトレードオフが、サーバーレス推論が存在する理由そのものです。
ストレージとダウンロード。 重みは大容量です。16-bit の 8B モデルは約 16 GB、4-bit に量子化した 30B モデルは約 18 GB あります。16-bit の 30B モデルは、24 GB のカードにはまったく収まりません。上位モデルではすぐに限界が明確になります。Kimi K3 のような 1 兆パラメーターのオープンモデルを実行する場合、重みだけで、時間単位で借りられる単一のカードの容量を超えます。そのディスクには毎月料金がかかり、再構築のたびに時間もかかります。1 週間実験したら du -sh ~/.cache/huggingface/hub を実行してください。一度試した量子化モデルがすべて残っているため、予想以上の速さで容量が増えます。
自分の時間。 ドライバーと CUDA のバージョン、前日まで動作していたコンテキスト長でのメモリ不足エラー、チャットテンプレートを変更するモデル更新。これらはトークンあたりのコストには現れませんが、すべて自分の夜の時間で支払うことになります。このようなインスタンスのサイズを決めた経験がない場合は、1 か月分の料金を支払う前に、GPU VPS で実際に利用できるものを確認してください。
品質の差。 これは最大の隠れたコストであり、価格設定が最も難しい項目です。8B のオープンモデルは最先端モデルではありません。最先端モデルなら 1 回で済む処理に 3 回の試行が必要なら、実用的な回答あたりの実質価格はグラフ上の価格の 3 倍です。それでもタスクに失敗する可能性があります。価格を比較する前に、自分のプロンプトで性能を比較してください。エージェントのワークロードでは、難易度に応じて振り分け、大量処理の大部分に安価なローカルトークンを使うのが一般的です。VPS でエージェントの支出を管理する方法は、ほぼこの考え方に集約されます。
忘れていた請求項目。 停止した時間単位の GPU インスタンスでも、接続されたストレージと予約済み IP アドレスの料金は請求され続けることがあります。料金ページではなく、請求書を確認してください。
価格以外の理由でセルフホスティングが有利な場合
費用計算だけでは判断できない4つのケースです。
- 管理下から外せないデータ。コンプライアンス規則でテキストを第三者へ送信できない場合、トークン単価は問われている問題ではありません。
- スケジュールに沿った安定した大量処理。毎晩6時間実行するバッチ分類ジョブは、必然的に稼働率25%となり、予想外の請求も発生しません。
- レート制限。自分のカードにはキューが1つだけあり、それは自分で管理できます。
- APIを提供していないモデル。特定のファインチューニングが必要なら、比較対象はありません。
まず安価な構成を試す場合は、OllamaでVPS上に小規模モデルを実行するのに必要なのは半日程度です。また、借りるGPUに合わせてオープンモデルの規模を見積もることで、実際に必要なGPUが分かります。GPUを1か月借りる契約を結ぶ前に、そこで測定してください。
FAQ
月間のトークン量がどの程度になると、GPU VPS は API 料金を下回りますか?
GPU の月額料金を、API における 100 万出力トークンあたりの料金で割ります。月額 365 ドルのカードを、100 万トークンあたり 15.00 ドルの最先端 API と比較すると、損益分岐点は月間 24.3 百万出力トークンです。100 万トークンあたり 5.00 ドルの小規模な商用モデルと比較した場合は、73 百万トークンです。100 万トークンあたり 0.20 ドルのホスト型 open-weight モデルと比較すると、中価格帯のカード 1 枚では、月間に損益分岐点へ到達するだけのトークンを生成できません。
ホスト型 open-weight API の料金が、自分の GPU より安いのはなぜですか?
ホスト型 API の料金は、フル稼働している GPU のコストに近く設定されています。一方、自分のカードはフル稼働していません。数千件の同時リクエストを処理するプロバイダーは、フリートを飽和状態に近づけて運用できます。そのため、トークンを生成する限界費用に近い料金で提供できます。自分のカードは 1 日の大半がアイドル状態でも、アイドル時間の料金を支払います。稼働率 10% では、自分のコストは 100 万出力トークンあたり 3.47 ドルです。一方、相手の料金は 0.20 ドルです。
入力トークンも出力トークンと同じように数えるべきですか?
プロンプトが長い場合は数えてください。ここでの比較は出力トークンだけを使用しています。チャットやエージェント処理では、出力トークンが主要な要素になるためです。入力を加えると、両方の側の計算が変わります。API 側では、入力トークンは請求書上で別の、より安価な項目です。自分のカードでは、prefill が GPU 時間を消費するため、測定した合計トークン毎秒の中にすでにコストが含まれています。実際のプロンプト長で測定すれば、両者を比較可能な状態に保てます。
式で必要な毎秒トークン数は、どのように測定しますか?
実際の利用方法と同じ形でモデルを提供し、実際の同時実行数での合計生成レートを読み取ります。Ollama では、ollama run <model> --verbose により毎秒トークン単位の eval rate が出力されます。ただし、これは単一ストリームの値であり、バッチ処理するサーバーの性能を過小評価します。vLLM では、リクエストの処理中に稼働中のサーバーログへ Avg generation throughput が出力されます。使用するのはこの値です。同時に nvidia-smi も監視してください。生成中の GPU 使用率が 100% に近くない場合は、まだ上限性能に到達していません。
GPU VPS を稼働率 10% 未満で借りる価値はありますか?
料金面ではありません。稼働率 10% では、100 万出力トークンあたり 3.47 ドルかかります。2% では 17.36 ドルです。どちらも、この比較に含まれる従量制 API の料金をすべて上回ります。ただし、最先端の料金帯は除きます。プライバシー、または API では提供されていないモデルが目的である場合に限り、その水準を下回る稼働率でも借りてください。