mcpField
T
tensorrt-llm

tensorrt-llm

github.com/kiterlinクラウド・DevOps277 回インストール38 週間前に更新
リポジトリ

tensorrt-llm について

NVIDIA TensorRT-LLM を使い、NVIDIA GPU 上で LLM 推論をデプロイ、最適化するためのスキルです。量子化、バッチ処理、複数 GPU への拡張、サービングを扱います。

主な機能

  1. 01NVIDIA GPU 推論の最適化
  2. 02FP8、INT4、FP4 量子化
  3. 03動的バッチ処理とページ化 KV キャッシュ
  4. 04テンソル、パイプライン、エキスパート並列化
  5. 05投機的デコーディングと LoRA サービング

活用シーン

  1. 01NVIDIA GPU で量子化 LLM を提供
  2. 02複数 GPU またはノードに推論を拡張
  3. 03バッチ生成のスループット向上

インストール

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

$npx skills add https://github.com/kiterlin/intelligent-detection-system --skill tensorrt-llm

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

同梱ファイル

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

.openskills.json
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以上のモデル

参考資料

リソース

コメント