Перейти к основному содержимому

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 — Тензорный/конвейерный параллелизм, многоузловая работа
  • Руководство по обслуживанию — Продакшн-развертывание, мониторинг, автоскалинг

Ресурсы​