NVIDIAが開発したオープンソースの大規模言語モデル推論最適化ライブラリで、TensorRT技術を通じてGPU推論に最先端のパフォーマンス最適化を提供します。

Apache-2.0C++TensorRT-LLMNVIDIA 11.6k Last Updated: September 12, 2025

TensorRT-LLMプロジェクト詳細紹介

プロジェクト概要

TensorRT-LLMは、NVIDIAが開発したオープンソースライブラリで、NVIDIA GPU上での大規模言語モデル(LLM)の推論性能を最適化するために特化しています。使いやすいPython APIを提供し、LLMの定義を可能にし、NVIDIA GPU上で推論を効率的に実行するための最先端の最適化技術をサポートしています。

主要機能

1. 高度な最適化技術

TensorRT-LLMは、以下を含む様々な先進的な最適化機能を提供します。

  • カスタムアテンションカーネル:特別に最適化されたアテンションメカニズムの実装
  • 動的バッチ処理(Inflight Batching):異なる長さの入力シーケンスをリアルタイムで処理
  • ページングKVキャッシュ:効率的なキーバリューキャッシュ管理
  • 投機的デコーディング(Speculative Decoding):複数のトークンを予測することで生成を高速化
  • 多様な量子化サポート:FP8、FP4、INT4 AWQ、INT8 SmoothQuantなど

2. 量子化技術の詳細

TensorRT-LLMは、業界をリードする統一量子化ツールキットを提供し、NVIDIAハードウェア上での深層学習/生成AIのデプロイメントを大幅に加速させつつ、モデルの精度を維持します。

主要な量子化手法:

  • FP8:大規模バッチ推論シナリオで通常、最高の性能と精度を提供し、バッチサイズが16以上のシナリオに適しています。
  • INT8 SmoothQuant:重み平滑化とINT8チャネル量子化、アクティベーション範囲のテンソルレベルでのキャリブレーション
  • INT4 AWQ:重みの再スケーリングとブロックレベルでのINT4量子化、小規模バッチ推論シナリオ(バッチサイズが4以下)に推奨されます。
  • W4A8 AWQ:重みをINT4に量子化し、アクティベーションをINT8に量子化

性能向上:

ベンチマークテストによると、量子化技術は顕著な性能向上をもたらします。

  • FP8量子化:FP16ベースラインと比較して、Llama 3 8Bモデルで1.45倍、70Bモデルで1.81倍の高速化を実現します。
  • INT4 AWQ:バッチサイズが1のシナリオにおいて、70Bモデルで最大2.66倍の性能向上を実現します。
  • メモリ最適化:すべての量子化バージョンのLlama 3 70Bモデルは、単一のNVIDIA H100 GPUで実行可能であり、FP16精度では少なくとも2つのGPUが必要です。

3. マルチGPUおよびマルチノードサポート

TensorRT-LLMには、前処理および後処理ステップ、ならびにマルチGPUおよびマルチノード通信プリミティブが含まれており、シンプルなオープンソースのモデル定義APIを通じて画期的なLLM推論性能を実現します。

4. 幅広いハードウェアサポート

TensorRT-LLMは、NVIDIA Hopper、NVIDIA Ada Lovelace、およびNVIDIA Ampereアーキテクチャに基づくGPUをサポートしています。特に:

  • H100 GPU:FP8形式の自動変換と最適化されたカーネルをサポートします。
  • H200 GPU:Llama2-13Bで約12,000トークン/秒の性能を達成できます。
  • RTXシリーズ:コンシューマー向けGPUでの大規模モデル推論をサポートします。

インストールと使用方法

Dockerインストール(推奨)

# プリビルドされたDockerコンテナを実行
docker run --ipc host --gpus all -it nvcr.io/nvidia/tensorrt-llm/release

LLM API使用例

from tensorrt_llm import BuildConfig, SamplingParams
from tensorrt_llm._tensorrt_engine import LLM

def main():
    build_config = BuildConfig()
    build_config.max_batch_size = 256
    build_config.max_num_tokens = 1024
    
    # HuggingFaceモデル名、ローカルのHFモデルパス、またはTensorRTモデルオプティマイザの量子化チェックポイントをサポート
    llm = LLM(model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", 
              build_config=build_config)
    
    # プロンプトの例
    prompts = [
        "Hello, my name is",
        "The capital of France is",
        "The future of AI is",
    ]
    
    # サンプリングパラメータを作成
    sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
    
    for output in llm.generate(prompts, sampling_params):
        print(f"Prompt: {output.prompt!r}, Generated text: {output.outputs[0].text!r}")

オンラインサービスデプロイメント

# OpenAI互換サーバーを起動
trtllm-serve --model TinyLlama/TinyLlama-1.1B-Chat-v1.0 --port 8000

量子化ワークフロー

基本的な量子化コマンド

# FP8量子化
python quantize.py --model_dir $MODEL_PATH --qformat fp8 --kv_cache_dtype fp8 --output_dir $OUTPUT_PATH

# INT4 AWQ量子化
python quantize.py --model_dir $MODEL_PATH --qformat int4_awq --awq_block_size 64 --tp_size 4 --output_dir $OUTPUT_PATH

# INT8 SmoothQuant量子化
python quantize.py --model_dir $MODEL_PATH --qformat int8_sq --kv_cache_dtype int8 --output_dir $OUTPUT_PATH

# 自動量子化(複数の手法の組み合わせ)
python quantize.py --model_dir $MODEL_PATH --autoq_format fp8,int4_awq,w4a8_awq --output_dir $OUTPUT_PATH --auto_quantize_bits 5 --tp_size 2

サポートされるモデル

TensorRT-LLMは、以下を含む多数の人気LLMアーキテクチャをサポートしています。

  • Llamaシリーズ:Llama 2, Llama 3, Llama 3.1, Llama 3.3
  • Falconシリーズ:Falcon-180Bを含む
  • GPTシリーズ:ChatGPT関連アーキテクチャ
  • Gemmaシリーズ:Googleのオープンソースモデル
  • Mixtralシリーズ:混合エキスパートモデル
  • DeepSeekシリーズ:DeepSeek R1を含む
  • CodeLlama:コード生成専用モデル

エコシステム統合

NVIDIAエコシステム

  • NVIDIA NeMo:生成AIアプリケーションの構築、カスタマイズ、デプロイメントのためのエンドツーエンドフレームワーク
  • Triton Inference Server:プロダクションレベルの推論サーバー
  • NVIDIA Dynamo:データセンター規模の分散推論サービスフレームワーク

サードパーティ統合

  • HuggingFace Hub:事前量子化モデルを提供
  • LlamaIndex:RAGアプリケーション開発
  • SageMaker LMI:AWSマネージド推論

性能ベンチマーク

性能向上例:

  • CPUプラットフォームと比較:推論速度が最大36倍向上
  • RTX非最適化と比較:Windows RTXプラットフォームで大規模言語モデルの速度が最大4倍向上
  • Falcon-180B:単一のH200 GPU上でINT4 AWQを使用して推論を実現
  • Llama-70B:A100と比較して6.7倍の速度向上を実現

ベストプラクティス推奨事項

量子化手法の選択

異なるシナリオに応じて適切な量子化手法を選択します。

  1. 小規模バッチ推論(バッチサイズが4以下):

    • 重み量子化手法(例:INT4 AWQ)の使用を推奨
    • 主にメモリ帯域幅の制限を考慮
  2. 大規模バッチ推論(バッチサイズが16以上):

    • FP8量子化を優先的に選択し、通常、最高の性能と精度を提供
    • 結果が要件を満たさない場合は、INT8 SmoothQuant、次にAWQおよび/またはGPTQを試す
  3. 特定ドメインアプリケーション

    • コード補完のような高度に特化したアプリケーションの場合、ドメイン関連のデータセットを使用してキャリブレーションを行うことを推奨

技術的優位性

  1. 使いやすさ:高度なPython APIを提供し、LLMの定義と最適化プロセスを簡素化
  2. 性能:カーネル融合、量子化、ランタイム最適化など、すべての主要な最適化技術を網羅
  3. スケーラビリティ:単一GPUからマルチノードまで、様々なデプロイメントシナリオをサポート
  4. 互換性:PyTorchと深く統合されており、主要な推論エコシステムをサポート
  5. オープンソース:完全にオープンソースであり、コミュニティ主導で継続的に開発

将来の展望

TensorRT-LLMは、オープンソースのモジュール型モデル定義APIを通じて使いやすさと拡張性を向上させ、新しいアーキテクチャや機能強化の定義、最適化、実行を可能にし、LLMの進化に合わせて容易にカスタマイズできます。

プロジェクトの継続的な開発方向には以下が含まれます。

  • より多くのモデルアーキテクチャのサポート
  • より高度な量子化技術
  • より優れたマルチノード拡張機能
  • より緊密なエコシステム統合

Star History Chart