Text Generation Inference(TGI)(テキストジェネレーションインファレンス)
Hugging FaceがオープンソースLLMのプロダクション向け高速推論に特化して開発したサービングフレームワーク。continuous batching・Flash Attention・tensor parallelismを統合し、単一APIで多数モデルを効率的に提供する。
Text Generation Inference(TGI)とは
Text Generation Inference(TGI)は、Hugging Faceが開発したオープンソースのLLMサービングフレームワークです。プロダクション環境での高スループット・低レイテンシ推論を目的として設計されており、continuous batching、Flash Attention 2、Paged Attentionなどの最先端最適化技術を統合しています。
主な特徴
Continuous Batching
リクエストが到着するたびに動的にバッチを組み替え、GPUをアイドル状態にさせない技術です。従来の静的バッチングと比べてスループットが2〜8倍向上します。
Flash Attention 2対応
Attentionの計算をメモリ効率よく行うFlash Attention 2を採用し、長いコンテキスト長でも高速処理が可能です。
テンソル並列処理
複数GPUにモデルを分散して推論する「Tensor Parallelism」をサポートし、70B以上の大規模モデルでも実用的な速度を実現します。
OpenAI互換API
/v1/completionsおよび/v1/chat/completionsエンドポイントを提供するため、OpenAI SDKやLangChainをそのまま流用できます。
対応量子化・最適化
- AWQ(Activation-aware Weight Quantization): 4bit量子化で精度劣化を抑えながらVRAM削減
- GPTQ: 汎用的な量子化形式に対応
- Speculative Decoding: ドラフトモデルで仮生成→本体で検証し速度改善
- GQA(Grouped Query Attention): Llama 3等の効率的なAttentionを活用
Dockerによる起動例
docker run --gpus all \
-p 8080:80 \
-v $HOME/models:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Llama-3.1-8B-Instruct \
--quantize awq \
--max-concurrent-requests 128
起動後はhttp://localhost:8080/v1/chat/completionsでOpenAI互換APIが使えます。
vLLMとの比較
| 項目 | TGI | vLLM |
|---|---|---|
| 開発元 | Hugging Face | UC Berkeley |
| モデルサポート | HF Hub直結 | 幅広いアーキテクチャ |
| 量子化 | AWQ/GPTQ/bitsandbytes | AWQ/GPTQ/GGUF |
| LoRAサポート | ○(Punica統合) | ○(S-LoRA) |
| Speculative Decoding | ○ | ○ |
どちらもプロダクション品質ですが、HuggingFaceエコシステムを多用する場合はTGIが馴染みやすく、モデル多様性を優先する場合はvLLMが有利です。
ユースケース
- 企業内LLMサービス: セキュリティ要件でクラウドLLMを使えない企業がオンプレGPUサーバーでTGIを運用
- Kubernetes上のオートスケール: HPA + KEDA でリクエスト量に応じてTGIポッドを自動増減
- RAGバックエンド: LangChain・LlamaIndexからOpenAI互換APIで接続し、社内文書検索と組み合わせ
まとめ
TGIはHugging Faceが長年のLLMエコシステム運営で培った知見を凝縮したサービングエンジンです。continuous batchingとFlash Attentionの組み合わせにより、同じGPUリソースで従来比数倍のスループットを実現します。プロダクションLLMサービスの第一選択肢として、vLLMと並んで広く採用されています。