Tensorrt Llm
Оптимизирует инференс LLM с помощью NVIDIA TensorRT для максимальной пропускной способности и минимальной задержки. Используйте для продакшн-развертывания на GPU NVIDIA (A100/H100), когда требуется в 10–100 раз более быстрый инференс по сравнению с PyTorch, или для обслуживания моделей с квантизацией (FP8/INT4), пакетной обработкой «на лету» и масштабированием на нескольких GPU.
Метаданные навыка
| Источник | Опционально — установка через vibeos skills install official/mlops/tensorrt-llm |
| Путь | optional-skills/mlops/tensorrt-llm |
| Версия | 1.0.0 |
| Автор | Orchestra Research |
| Лицензия | MIT |
| Зависимости | tensorrt-llm, torch |
| Платформы | linux, macos |
| Теги | Inference Serving, TensorRT-LLM, NVIDIA, Inference Optimization, High Throughput, Low Latency, Production, FP8, INT4, In-Flight Batching, Multi-GPU |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Это инструкции, которые видит агент, когда навык активен.
TensorRT-LLM
Библиотека NVIDIA с открытым исходным кодом для оптимизации инференса LLM с производительностью на уровне передовых решений на GPU NVIDIA.
Когда использовать TensorRT-LLM
Используйте TensorRT-LLM, когда:
- Развертываете на GPU NVIDIA (A100, H100, GB200)
- Требуется максимальная пропускная способность (24 000+ токенов/сек на Llama 3)
- Нужна низкая задержка для приложений реального времени
- Работаете с квантизованными моделями (FP8, INT4, FP4)
- Масштабируетесь на нескольких GPU или узлах
Используйте vLLM вместо этого, когда:
- Нужна более простая настройка и Python-ориентированный API
- Требуется PagedAttention без компиляции TensorRT
- Работаете с GPU AMD или оборудованием не от NVIDIA
Используйте llama.cpp вместо этого, когда:
- Развертываете на CPU или Apple Silicon
- Нужно развертывание на границе сети без GPU NVIDIA
- Предпочитаете более простой формат квантизации GGUF
Быстрый старт
Установка
# Docker (рекомендуется)
docker pull nvidia/tensorrt_llm:latest
# pip install
pip install tensorrt_llm==1.2.0rc3
# Требуется CUDA 13.0.0, TensorRT 10.13.2, 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 = ["Объясните квантовые вычисления"]
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
print(output.text)
Обслуживание с trtllm-serve
# Запуск сервера (автоматическая загрузка и компиляция модели)
trtllm-serve meta-llama/Meta-Llama-3-8B \
--tp_size 4 \ # Тензорный параллелизм (4 GPU)
--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": "Привет!"}],
"temperature": 0.7,
"max_tokens": 100
}'
Ключевые возможности
Оптимизация производительности
- Пакетная обработка «на лету»: динамическое пакетирование во время генерации
- Страничный KV-кэш: эффективное управление памятью
- Flash Attention: оптимизированные ядра внимания
- Квантизация: FP8, INT4, FP4 для ускорения инференса в 2–4 раза
- CUDA graphs: снижение накладных расходов на запуск ядер
Параллелизм
- Тензорный параллелизм (TP): разделение модели между GPU
- Конвейерный параллелизм (PP): распределение по слоям
- Экспертный параллелизм: для моделей Mixture-of-Experts
- Многоузловой: масштабирование за пределы одной машины
Продвинутые функции
- Спекулятивное декодирование: ускоренная генерация с черновыми моделями
- Обслуживание LoRA: эффективное развертывание нескольких адаптеров
- Раздельное обслуживание: разделение префилла и генерации
Типовые сценарии
Квантизованная модель (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(["Суммируйте эту статью..."])
Развертывание на нескольких GPU
# Тензорный параллелизм на 8 GPU
llm = LLM(
model="meta-llama/Meta-Llama-3-405B",
tensor_parallel_size=8,
dtype="fp8"
)
Пакетный инференс
# Эффективная обработка 100 промптов
prompts = [f"Вопрос {i}: ..." for i in range(100)]
outputs = llm.generate(
prompts,
sampling_params=SamplingParams(max_tokens=200)
)
# Автоматическая пакетная обработка «на лету» для максимальной пропускной способности
Бенчмарки производительности
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-кэшаНастройка нескольких GPU— Тензорный/конвейерный параллелизм, многоузловая работаРуководство по обслуживанию— Продакшн-развертывание, мониторинг, автоскалинг
Ресурсы
- Документация: https://nvidia.github.io/TensorRT-LLM/
- GitHub: https://github.com/NVIDIA/TensorRT-LLM
- Модели: https://huggingface.co/models?library=tensorrt_llm