9月2日、NVIDIA Developerが「How to Size GPUs for AI Inference and TCO Without Overspending」と題した記事を公開した。AI推論の本番運用を考えるとき、「どのGPUを何台用意すればいいか」という問いに自信を持って答えられるチームは少ない。スペックシートを眺めて大きめのGPUを確保しておけば安心、という判断が積み重なると、TCOは静かに膨らんでいく。本記事はその意思決定を体系化しようという試みだ。
まず「ユースケース」から始める
サイジングの出発点は、ハードウェアスペックではなくユースケースの特定だ。NVIDIAは主要な推論ワークロードを以下の4つに分類している。
| ユースケース | キャッシュ済み入力トークン | 入力トークン | 出力トークン |
|---|---|---|---|
| AIチャットボット / コパイロット(長入力・短出力) | 1,000〜5,000 | 2,000〜8,000 | 200〜800 |
| AIエージェント(超長コンテキスト) | 128,000超 | 500〜1,000 | 200〜300 |
| コンテンツ生成(短入力・長出力) | 50〜300 | 200〜1,000 | 1,000〜4,000 |
| 翻訳アプリ | 50〜250 | 200〜1,000 | 200〜1,000 |
これらはあくまで例示的な数値であり、実際のプロダクション環境では大きく異なる場合がある。また、「キャッシュ済み入力トークン」列を含む上記の表構成は元記事の表に基づいているが、各行の値については元記事を直接確認することを推奨する。
AIエージェントが128,000トークン超のキャッシュ入力を必要とするのに対し、翻訳アプリは50〜250トークンと桁が違う。このトークンパターンの差異が、必要なGPUメモリとコンピュート量を根本的に規定する。
サイジングの主要入力変数
ユースケースが決まったら、以下の要素を軸にサイジング計画を組み立てる。
- モデル選定:大きいほど良いわけではない。用途とレイテンシ要件に合ったモデルを選ぶことが重要で、小規模なファインチューニング済みモデルが最適解になることも多い。記事中で言及される「Nemotron 3.5 Lightning」はNVIDIAが提供する軽量推論向けモデル、「Inkling Small」は小型コーディング・推論タスク向けモデルであり、どちらもリソース効率を重視した選択肢として挙げられている。
- DAUと同時実行数:デイリーアクティブユーザー(DAU)の総数より、同時リクエスト数(コンカレンシー)がGPUメモリとレイテンシに与える影響が大きい。
- ISL / OSL:入力・出力トークン長の予測。長くなるほどGPUメモリとコンピュート需要が増す。
- KVキャッシュヒット率:リクエスト間で繰り返されるトークンはKVキャッシュから提供でき、プリフィル処理をスキップできる。ヒット率が高いほどTTFT(Time to First Token)と1リクエストあたりのコストが下がる。
- レイテンシ目標:TTFTの平均値だけでなく、99パーセンタイルとトークン間レイテンシも考慮する。
コアアンドフレックス戦略
ワークロードの変動リスクをコスト効率よく吸収するため、記事は「コアアンドフレックス」モデルを推奨している。
- コア:オンプレミスまたは予約済みクラウドGPUで定常的なベースライン需要をカバー。価格変動リスクを排除し、安定したサービスを保証する。
- フレックス:スパイク、新機能リリース、実験的ワークロードにはスポットやオンデマンドのクラウドGPUを充てる。
キャペックス(設備投資)とオペックス(運用費)のバランスを取ることで、過剰プロビジョニングも成長阻害も避けられる。
TCO改善の最大の武器:量子化
モデル最適化によるTCO改善には3つの手法がある。
- 量子化(Quantization):数値精度をFP16→FP8/INT8に落とし、メモリを25〜50%削減。再学習不要。
- プルーニング(Pruning):重要度の低いレイヤーやニューロンを除去してパラメータ数を削減。
- 知識蒸留(Knowledge Distillation):大きな「教師モデル」の能力を小さな「生徒モデル」に転移。
この中で最もコストパフォーマンスが高いのが量子化だ。記事が「クイックウィン」と位置づけるのには理由がある。
FP8量子化の具体的な効果
モデルは通常FP16/BF16(1パラメータあたり2バイト)で配布される。FP8量子化はこれを1バイトに圧縮し、ウェイトメモリをほぼ半減させる。空いたメモリで小さいGPUに移行するか、同じGPU上でより大きなバッチやKVキャッシュを扱えるようになり、トークンあたりのコストが下がる。
量子化の実装にはNVIDIAのTensorRT Model Optimizer(ModelOpt)が利用できる。ポスト学習量子化(PTQ)は数行のコードで完結する。以下は元記事掲載のサンプルコードだ。
※編集部の考察:上記GitHubリンクは元記事に明示されていない可能性があるため、参考情報として付記している。
import torch
import modelopt.torch.quantization as mtq
from modelopt.torch.export import export_hf_checkpoint
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B-Instruct", dtype=torch.float16, device_map="auto"
).eval()
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")
def calibration_loop(model):
for prompt in ["Summarize this client email:", "What are the key risks here?"]:
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
model(**inputs)
model = mtq.quantize(model, mtq.FP8_DEFAULT_CFG, forward_loop=calibration_loop)
export_hf_checkpoint(model, export_dir="./llama-3.1-8b-fp8")
この処理により、Llama-3.1-8BのウェイトメモリはFP16の16.06GBからFP8の9.08GBへ、43.5%削減される。再学習は一切不要で、少量のキャリブレーションプロンプトを通すだけだ。
精度が許容範囲を超えて劣化する場合は、量子化をフォワードパスにシミュレートしながらファインチューニングするQAT(Quantization-Aware Training)にエスカレートする。
産業別のサイジング例
記事では4つの具体的なシナリオも紹介されている。
- 金融:関係マネージャー向けコパイロット(5,000入力・500出力トークン、FP16/BF16、7〜13Bモデル、24〜48GB GPUメモリ)
- ライフサイエンス:創薬AIエージェント(20,000入力・2,000出力トークン、80GB超のGPUメモリが必要)
- メディア・マーケティング:コンテンツ生成(500入力・2,000出力トークン、3〜7Bモデル、16〜24GB)
- ITコンサルティング:多言語翻訳プラットフォーム(1,000トークン入出力、INT8精度も許容、8〜16GB)
創薬AIエージェントが80GB超を要求する一方、翻訳プラットフォームでは8〜16GBのエントリーレベルGPUで対応できると示されており、ユースケースによる要件の幅の広さが具体的に把握できる。
詳細はHow to Size GPUs for AI Inference and TCO Without Overspendingを参照していただきたい。




