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
Справочные материалы
- Руководство по оптимизации — квантизация, батчинг, настройка KV-кэша
- Настройка Multi-GPU — тензорный и конвейерный параллелизм, multi-node
- Руководство по обслуживанию — продакшн-деплой, мониторинг, автомасштабирование