テキスト生成推論のベンチマーク
Hugging Face は、テキスト生成推論(TGI)のベンチマークツールをリリースし、開発者がスループットとレイテンシのトレードオフをプロファイルできるようにしました。このツールにより、単純なスループット指標だけでなく、Retrieval-Augmented Generation(RAG)やチャットなどの特定のユースケースに最適な構成を判断でき、デプロイコストの削減とユーザー体験の向上が可能になります。
LLM 推論パフォーマンスの理解
LLM の推論は根本的に非効率です。デコーダは生成される各トークンごとに新しいフォワードパスが必要になるためです。これを緩和するために、TGI は Flash Attention、Paged Attention、量子化、投機など、複数のパフォーマンス向上技術を組み込んでいます。ただし、これらのツールの最適な構成は、具体的なワークロードに大きく依存します。
- RAG ユースケース: 通常、複数の取得ドキュメントに起因する長いプロンプトと中規模の出力を伴い、モデルのコンテキストウィンドウの限界に近づくことが多いです。
- チャットシナリオ: 一般に、短いプロンプトと複数ターンにわたる出力が特徴です。
主なパフォーマンス指標
TGI のベンチマークツールは、デプロイを効果的にプロファイルするために、主に以下の4つの指標に焦点を当てます。
- Token Latency: ユーザーに単一トークンを処理して送信するのに要する時間。
- Request Latency: リクエストに完全に応答するまでの総時間。
- Time to First Token (
TTFT): 初回リクエストから最初のトークンが返されるまでの期間で、プレフィル処理と最初のトークン生成を合わせたものです。 - Throughput: サーバーが一定時間内に返すことのできるトークン数。
スループットとレイテンシは直交する測定値であり、一方を最適化すると他方とのトレードオフが必要になることが多いです。
二段階推論プロセス
LLM の生成は2つの明確な段階で行われ、ベンチマークツールはそれぞれを個別にプロファイルします。
- Pre-filling Stage: プロンプト全体が単一のフォワードパスで処理され、最初のトークンが生成されます。この段階は
TTFTを決定する上で重要です。 - Decoding Stage: 以降の各トークンが1つずつ生成されます。生成されたトークンは次のフォワードパスの入力に追加されます。この段階が通常、計算時間の大部分を占めます。
TGI ベンチマークツールの使用方法
ベンチマークツールは TGI に統合されており、CLI で実行できます。Hugging Face は、TGI Docker イメージと Jupyter Lab 環境を組み合わせた専用の Space を提供し、テストを容易にします。
結果の分析
このツールは散布図を生成し、X 軸がレイテンシ(低いほど良い)を、Y 軸がスループット(高いほど良い)を表します。理想的なパフォーマンス点はチャートの左上隅です。
- Vertical Data Trends: 曲線が垂直である場合、バッチサイズを増やすことでレイテンシを低下させずにスループットを向上させることができます。これは、システムに「無料」でより多くのユーザーを処理できる余裕があることを示します。
- Horizontal Data Trends: 曲線が水平である場合、システムは計算リソースに制約されています。バッチサイズを増やすと全ユーザーのレイテンシが上がり、スループットの相応の向上が得られないため、設定の改善やハードウェアのスケールアップが必要であることを示します。
デプロイ戦略
プロファイリングは反復的なプロセスであるべきです。開発者はユーザー行動を見積もり、ベンチマークを実行し、結果に基づいて TGI 設定を調整することが推奨されます。これらの知見は、AWS、GCP、または Hugging Face Inference Endpoints 上の同等ハードウェアに適用でき、デプロイがコスト効果的かつ高性能であることを保証します。