← 記事一覧
推論

大規模LLMサービング:推論アーキテクチャとコスト最適化

注目を集めるのは学習ですが、請求が発生するのは推論——リクエストごと、毎日です。大規模言語モデルを安く速く提供することは、それ自体が一つのアーキテクチャの規律です。最も効く要素を紹介します。

1. 継続的バッチング

GPUはスループットの機械であり、一度に一リクエストずつ処理するのは無駄です。継続的(in-flight)バッチングは多数のリクエストをモデルに同時に通し、利用率と毎秒トークン数を劇的に高めます。混雑するエンドポイントにとって最大の効果です。

2. KVキャッシュがすべて

生成中はアテンション状態(KVキャッシュ)がメモリを支配します。ページド・アテンションとキャッシュ再利用により、同時に扱えるシーケンスを増やし、共有プレフィックスの再計算を省けます——システムプロンプトやマルチターン会話で大きな節約になります。ボトルネックは通常FLOPsではなくキャッシュメモリなので、意図的に管理します。

3. より小さく、より速いモデル

量子化(8ビット・4ビット)は品質の低下をほぼ抑えつつ、メモリを縮小し速度を上げます。蒸留と適正サイズ化——評価に通る最小のモデルを使うこと——は、コストとレイテンシの両面で大きなモデルに勝ることが多いです。投機的デコーディングは、小モデルで下書きし大モデルで検証することでさらに高速化します。

4. ルーティング・キャッシュ・階層化

すべてのリクエストに最大のモデルが必要なわけではありません。簡単なクエリは安価なモデルへ、難しいものは高性能なモデルへ振り分けます。完全一致および意味的に類似する応答をキャッシュし、トークンをストリーミングして体感レイテンシを下げます。各レイヤーが、負荷が高コストな経路に到達する前に取り除きます。

5. オートスケーリングと配置

GPUのコールドスタートは遅く、容量も希少です。キュー長と最初のトークンまでの時間でスケールし、スパイクに備えてウォームプールを維持し、推論をユーザーの近くに配置します。1000トークンあたりのコストとP95レイテンシを中核のSLOとして追跡し、トラフィックの増加に応じて見直します。

速く安価な推論は、積み重なる最適化のスタックです。継続的にバッチングし、KVキャッシュを使いこなし、能力を満たす最小のモデルを走らせ、積極的にルーティング・キャッシュし、正しい指標でスケールする。これらが合わさって、目の飛び出るGPU請求を、持続可能なサービスへと変えます。