mcpField
T
tensorrt-llm

tensorrt-llm

github.com/orchestra-researchクラウド・DevOps14.1k1.0k 回インストール19 週間前に更新
リポジトリ

tensorrt-llm について

TensorRT-LLMを使うスキルガイドです。NVIDIAのオープンソースライブラリによるNVIDIA GPU上のLLM推論最適化を扱い、量子化、バッチ処理、並列デプロイ、サービス運用を説明します。

主な機能

  1. 01インフライトバッチ処理とページ化KVキャッシュ
  2. 02FP8・INT4・FP4量子化
  3. 03テンソル・パイプライン・エキスパート並列化
  4. 04マルチノードデプロイ
  5. 05投機的デコードとLoRA提供

活用シーン

  1. 01NVIDIA GPU上でのLLM提供
  2. 02GPUまたはノード間での推論拡張
  3. 03量子化モデルによるメモリ使用量の削減

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/orchestra-research/ai-research-skills --skill tensorrt-llm

インストール後、Claude Code で/tensorrt-llmを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
multi-gpu.md
optimization.md
serving.md

詳細

TensorRT-LLM

NVIDIA GPU上で最先端の性能によりLLM推論を最適化する、NVIDIAのオープンソースライブラリです。

TensorRT-LLMを使用する場合

TensorRT-LLMを使用する場合:

  • NVIDIA GPU(A100、H100、GB200)にデプロイする場合
  • 最大のスループットが必要な場合(Llama 3で24,000+トークン/秒)
  • リアルタイムアプリケーションで低レイテンシーが必要な場合
  • 量子化モデル(FP8、INT4、FP4)を扱う場合
  • 複数のGPUまたはノードにスケールする場合

代わりにvLLMを使用する場合:

  • よりシンプルなセットアップとPythonファーストのAPIが必要な場合
  • TensorRTのコンパイルなしでPagedAttentionを使いたい場合
  • AMD GPUまたは非NVIDIAハードウェアを扱う場合

代わりにllama.cppを使用する場合:

  • CPUまたはApple Siliconにデプロイする場合
  • NVIDIA GPUを使わないエッジデプロイメントが必要な場合
  • よりシンプルなGGUF量子化フォーマットを使いたい場合

クイックスタート

インストール
# Docker (recommended)
docker pull nvidia/tensorrt_llm:latest

# pip install
pip install tensorrt_llm==1.2.0rc3

# Requires CUDA 13.0.0, TensorRT 10.13.2, Python 3.10-3.12
基本的な推論
from tensorrt_llm import LLM, SamplingParams

# Initialize model
llm = LLM(model="meta-llama/Meta-Llama-3-8B")

# Configure sampling
sampling_params = SamplingParams(
    max_tokens=100,
    temperature=0.7,
    top_p=0.9
)

# Generate
prompts = ["Explain quantum computing"]
outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    print(output.text)
trtllm-serveによるサービング
# Start server (automatic model download and compilation)
trtllm-serve meta-llama/Meta-Llama-3-8B \
    --tp_size 4 \              # Tensor parallelism (4 GPUs)
    --max_batch_size 256 \
    --max_num_tokens 4096

# Client request
curl -X POST http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Meta-Llama-3-8B",
    "messages": [{"role": "user", "content": "Hello!"}],
    "temperature": 0.7,
    "max_tokens": 100
  }'

主な機能

パフォーマンス最適化
  • In-flight batching: 生成中の動的バッチ処理
  • Paged KV cache: 効率的なメモリ管理
  • Flash Attention: 最適化されたアテンションカーネル
  • 量子化: FP8、INT4、FP4により2〜4倍の高速推論
  • CUDA graphs: カーネル起動オーバーヘッドの削減
並列化
  • Tensor parallelism (TP): GPU間でモデルを分割
  • Pipeline parallelism (PP): レイヤー単位での分散
  • Expert parallelism: Mixture-of-Expertsモデル向け
  • Multi-node: 単一マシンを超えたスケール
高度な機能
  • Speculative decoding: ドラフトモデルによる高速な生成
  • LoRA serving: 効率的なマルチアダプターデプロイメント
  • Disaggregated serving: プレフィルと生成の分離

よくあるパターン

量子化モデル(FP8)
from tensorrt_llm import LLM

# Load FP8 quantized model (2× faster, 50% memory)
llm = LLM(
    model="meta-llama/Meta-Llama-3-70B",
    dtype="fp8",
    max_num_tokens=8192
)

# Inference same as before
outputs = llm.generate(["Summarize this article..."])
マルチGPUデプロイメント
# Tensor parallelism across 8 GPUs
llm = LLM(
    model="meta-llama/Meta-Llama-3-405B",
    tensor_parallel_size=8,
    dtype="fp8"
)
バッチ推論
# Process 100 prompts efficiently
prompts = [f"Question {i}: ..." for i in range(100)]

outputs = llm.generate(
    prompts,
    sampling_params=SamplingParams(max_tokens=200)
)

# Automatic in-flight batching for maximum throughput

パフォーマンスベンチマーク

Meta Llama 3-8B(H100 GPU):

  • スループット: 24,000トークン/秒
  • レイテンシー: トークンあたり約10ms
  • PyTorch比: 100倍高速

Llama 3-70B(8× A100 80GB):

  • FP8量子化: FP16比で2倍高速
  • メモリ: FP8により50%削減

対応モデル

  • LLaMAファミリー: Llama 2、Llama 3、CodeLlama
  • GPTファミリー: GPT-2、GPT-J、GPT-NeoX
  • Qwen: Qwen、Qwen2、QwQ
  • DeepSeek: DeepSeek-V2、DeepSeek-V3
  • Mixtral: Mixtral-8x7B、Mixtral-8x22B
  • ビジョン: LLaVA、Phi-3-vision
  • HuggingFace上の100以上のモデル

参考資料

リソース

コメント