Tensorrt Llm

Высокопроизводительный инференс LLM на NVIDIA GPU.

Метаданные навыка

ИсточникОпциональный — установите командой hermes skills install official/mlops/tensorrt-llm
Путьoptional-skills/mlops/tensorrt-llm
Версия1.0.1
АвторOrchestra Research
ЛицензияMIT
Зависимостиtensorrt-llm, torch
Платформыlinux
ТегиInference Serving, TensorRT-LLM, NVIDIA, Inference Optimization, High Throughput, Low Latency, Production, FP8, INT4, In-Flight Batching, Multi-GPU

Справочник: полный SKILL.md

инфо

Ниже приведено полное определение навыка, которое Hermes Agent загружает при его активации. Именно это агент получает в качестве инструкций, когда навык задействован.

TensorRT-LLM

Открытая библиотека NVIDIA для оптимизации инференса LLM с высокой производительностью на NVIDIA GPU.

Когда использовать TensorRT-LLM

Используйте TensorRT-LLM, когда:

  • Деплоите на NVIDIA GPU (A100, H100, GB200)
  • Нужна максимальная пропускная способность (24 000+ токенов/сек на Llama 3)
  • Требуется низкая задержка для приложений реального времени
  • Работаете с квантизованными моделями (FP8, INT4, FP4)
  • Масштабируете инференс на несколько GPU или узлов

Выберите vLLM, если:

  • Нужна простая настройка и Python-first API
  • Хотите PagedAttention без компиляции TensorRT
  • Используете AMD GPU или другое оборудование без NVIDIA

Выберите llama.cpp, если:

  • Деплоите на CPU или Apple Silicon
  • Нужен edge-деплой без NVIDIA GPU
  • Предпочитаете простой формат квантизации GGUF

Быстрый старт

Установка

# Docker (рекомендуется) — образы лежат на NGC (nvcr.io), а не на Docker Hub.
# Замените x.y.z на нужную версию (например, 1.2.1). Список тегов на NGC:
# https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tensorrt-llm/containers/release/tags
docker pull nvcr.io/nvidia/tensorrt-llm/release:x.y.z

# pip install (текущая стабильная GA-версия)
pip install tensorrt_llm

# Требуется CUDA 13.2.1, TensorRT 10.x, Python 3.10-3.12

Базовый инференс

from tensorrt_llm import LLM, SamplingParams

# Инициализация модели
llm = LLM(model="meta-llama/Meta-Llama-3-8B")

# Настройка сэмплинга
sampling_params = SamplingParams(
    max_tokens=100,
    temperature=0.7,
    top_p=0.9
)

# Генерация
prompts = ["Explain quantum computing"]
outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    print(output.text)

Обслуживание через trtllm-serve

# Запуск сервера (автоматическая загрузка и компиляция модели)
# Тензорный параллелизм на 4 GPU
trtllm-serve meta-llama/Meta-Llama-3-8B \
    --tp_size 4 \
    --max_batch_size 256 \
    --max_num_tokens 4096

# Запрос от клиента
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: сниженные накладные расходы на запуск ядер

Параллелизм

  • Тензорный параллелизм (TP): разбивка модели по GPU
  • Конвейерный параллелизм (PP): послойное распределение
  • Параллелизм экспертов: для моделей Mixture-of-Experts
  • Multi-node: масштабирование за пределы одной машины

Продвинутые функции

  • Speculative decoding: ускоренная генерация с черновыми моделями
  • LoRA serving: эффективный деплой нескольких адаптеров одновременно
  • Disaggregated serving: раздельные prefill и generation стадии

Типовые паттерны

Квантизованная модель (FP8)

from tensorrt_llm import LLM

# Загрузка модели с FP8-квантизацией (в 2 раза быстрее, память -50%)
llm = LLM(
    model="meta-llama/Meta-Llama-3-70B",
    dtype="fp8",
    max_num_tokens=8192
)

# Инференс выполняется так же, как обычно
outputs = llm.generate(["Summarize this article..."])

Деплой на несколько GPU

# Тензорный параллелизм на 8 GPU
llm = LLM(
    model="meta-llama/Meta-Llama-3-405B",
    tensor_parallel_size=8,
    dtype="fp8"
)

Пакетный инференс

# Обработка 100 промптов за один проход
prompts = [f"Question {i}: ..." for i in range(100)]

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

# Автоматический in-flight батчинг для максимальной пропускной способности

Результаты тестирования

Meta Llama 3-8B (GPU H100):

  • Пропускная способность: 24 000 токенов/сек
  • Задержка: ~10 мс на токен
  • По сравнению с PyTorch: в 100 раз быстрее

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

  • FP8-квантизация: в 2 раза быстрее FP16
  • Память: экономия 50% при FP8

Поддерживаемые модели

  • Семейство 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
  • Vision: LLaVA, Phi-3-vision
  • 100+ моделей на HuggingFace

Справочные материалы

Ресурсы

перевод и редактура:

обновлено

⌕ ESC