Штучний Інтелект
TensorRT-LLM: вичерпний посібник з оптимізації виводу моделі великої мови для досягнення максимальної продуктивності

Оскільки попит на великі мовні моделі (LLM) продовжує зростати, забезпечення швидкого, ефективного та масштабованого висновку стало більш важливим, ніж будь-коли. NVIDIA TensorRT-LLM кроки, щоб вирішити цю проблему, надаючи набір потужних інструментів і оптимізацій, спеціально розроблених для висновків LLM. TensorRT-LLM пропонує вражаючий набір покращень продуктивності, як-от квантування, злиття ядра, пакетування під час польоту та підтримку кількох GPU. Ці досягнення дозволяють досягти швидкості висновку до 8 разів швидше, ніж традиційні методи на основі ЦП, змінюючи спосіб розгортання LLM у виробництві.
У цьому вичерпному посібнику розглядаються всі аспекти TensorRT-LLM, від його архітектури та ключових функцій до практичних прикладів розгортання моделей. Незалежно від того, чи ви інженер штучного інтелекту, розробник програмного забезпечення чи дослідник, цей посібник дасть вам знання, як використовувати TensorRT-LLM для оптимізації висновків LLM на графічних процесорах NVIDIA.
Прискорення логічного висновку за допомогою TensorRT-LLM
TensorRT-LLM суттєво покращує ефективність логічного висновку LLM. Згідно з тестами NVIDIA, програми на основі TensorRT показують до 8x швидше швидкість висновку порівняно з платформами, що працюють лише з ЦП. Це важливий прогрес у програмах реального часу, таких як чат-боти, системи рекомендацій і автономні системи, які потребують швидкої відповіді.
Як це працює
TensorRT-LLM прискорює логічний висновок, оптимізуючи нейронні мережі під час розгортання за допомогою таких методів, як:
- Квантування: Зменшує точність ваг і активацій, зменшуючи розмір моделі та покращуючи швидкість висновку.
- Злиття шарів і тензорів: об’єднує такі операції, як функції активації та множення матриці, в одну операцію.
- Налаштування ядра: Вибирає оптимальні ядра CUDA для обчислень GPU, зменшуючи час виконання.
Ці оптимізації гарантують ефективну роботу ваших моделей LLM на широкому спектрі платформ розгортання — від гіпермасштабованих центрів обробки даних до вбудованих систем.
Оптимізація продуктивності логічного висновку за допомогою TensorRT
Створений на основі моделі паралельного програмування CUDA від NVIDIA, TensorRT забезпечує вузькоспеціалізовану оптимізацію для висновків на графічних процесорах NVIDIA. Спрощуючи такі процеси, як квантування, налаштування ядра та злиття тензорних операцій, TensorRT гарантує, що LLM можуть працювати з мінімальною затримкою.
Деякі з найбільш ефективних методів включають:
- Квантування: Це зменшує чисельну точність параметрів моделі, зберігаючи високу точність, ефективно прискорюючи висновок.
- Tensor Fusion: об’єднуючи кілька операцій в одне ядро CUDA, TensorRT мінімізує витрати пам’яті та підвищує пропускну здатність.
- Автоматичне налаштування ядра: TensorRT автоматично вибирає найкраще ядро для кожної операції, оптимізуючи висновок для певного GPU.
Ці методи дозволяють TensorRT-LLM оптимізувати продуктивність висновків для завдань глибокого навчання, таких як обробка природної мови, механізми рекомендацій і відеоаналітика в реальному часі.
Прискорення робочих навантажень ШІ за допомогою TensorRT
TensorRT прискорює робочі навантаження глибокого навчання, використовуючи точні оптимізації, такі як INT8 та FP16. Ці формати зі зниженою точністю дозволяють значно швидше робити висновки, зберігаючи при цьому точність. Це особливо цінно в програмах реального часу, де низька затримка є критичною вимогою.
INT8 та FP16 оптимізація особливо ефективна в:
- Потокове відео: Завдання обробки відео на основі штучного інтелекту, наприклад виявлення об’єктів, отримують переваги від цієї оптимізації, зменшуючи час, необхідний для обробки кадрів.
- Рекомендаційні системи: прискорюючи висновок для моделей, які обробляють великі обсяги даних користувача, TensorRT забезпечує масштабну персоналізацію в реальному часі.
- Обробка природних мов (НЛП): TensorRT покращує швидкість виконання завдань NLP, таких як створення тексту, переклад і резюмування, що робить їх придатними для додатків у реальному часі.
Розгортайте, запускайте та масштабуйте за допомогою NVIDIA Triton
Після оптимізації вашої моделі за допомогою TensorRT-LLM ви можете легко розгортати, запускати та масштабувати її за допомогою Сервер NVIDIA Triton Inference. Triton — це програмне забезпечення з відкритим кодом, яке підтримує динамічне пакетування, ансамблі моделей і високу пропускну здатність. Він забезпечує гнучке середовище для масштабного керування моделями ШІ.
Деякі ключові функції включають:
- Паралельне виконання моделі: Запуск кількох моделей одночасно, максимально підвищуючи використання GPU.
- Динамічне пакетування: поєднує кілька запитів на висновок в один пакет, зменшуючи затримку та збільшуючи пропускну здатність.
- Потокове аудіо/відео входи: підтримує вхідні потоки в програмах реального часу, таких як аналітика відео в реальному часі або служби перетворення мови в текст.
Це робить Triton цінним інструментом для розгортання оптимізованих моделей TensorRT-LLM у виробничих середовищах, забезпечуючи високу масштабованість і ефективність.
Основні функції TensorRT-LLM для LLM Inference
API Python з відкритим кодом
TensorRT-LLM забезпечує високомодульний і API Python з відкритим кодом, що спрощує процес визначення, оптимізації та виконання LLM. API дозволяє розробникам створювати спеціальні LLM або змінювати готові відповідно до своїх потреб, не вимагаючи глибоких знань про CUDA або фреймворки глибокого навчання.
Пакетування в польоті та звернення уваги
Однією з видатних особливостей TensorRT-LLM є Дозування в польоті, який оптимізує генерацію тексту шляхом одночасної обробки кількох запитів. Ця функція мінімізує час очікування та покращує використання GPU за рахунок динамічного пакетування послідовностей.
Зауважимо, що сам Увага гарантує, що використання пам'яті залишається низьким навіть під час обробки довгих послідовностей введення. Замість виділення безперервної пам’яті для всіх маркерів, сторінкова увага розбиває пам’ять на «сторінки», які можна повторно використовувати динамічно, запобігаючи фрагментації пам’яті та підвищуючи ефективність.
Кілька GPU та багатовузловий висновок
Для великих моделей або складніших робочих навантажень підтримується TensorRT-LLM мульти-GPU та багатовузловий висновок. Ця можливість дозволяє розподілити обчислення моделі між кількома графічним процесором або вузлом, підвищуючи пропускну здатність і скорочуючи загальний час висновку.
Підтримка FP8
З появою FP8 (8-бітове число з плаваючою комою), TensorRT-LLM використовує графічні процесори NVIDIA H100 для перетворення вагових коефіцієнтів моделі в цей формат для оптимізованого висновку. FP8 дозволяє зменшити споживання пам’яті та пришвидшити обчислення, що особливо корисно у великомасштабних розгортаннях.
Архітектура та компоненти TensorRT-LLM
Розуміння архітектури TensorRT-LLM допоможе вам краще використовувати його можливості для висновків LLM. Давайте розберемо основні компоненти:
Визначення моделі
TensorRT-LLM дозволяє визначати LLM за допомогою простого API Python. API створює a представлення графа моделі, що полегшує керування складними рівнями, задіяними в архітектурах LLM, таких як GPT або BERT.
Прив'язки ваги
Перед компіляцією моделі ваги (або параметри) повинні бути прив’язані до мережі. Цей крок гарантує, що вагові коефіцієнти вбудовано в механізм TensorRT, що дає змогу робити швидкі та ефективні висновки. TensorRT-LLM також дозволяє оновлювати вагу після компіляції, додаючи гнучкості для моделей, які потребують частих оновлень.
Зіставлення шаблонів і злиття
Операція Fusion є ще однією потужною функцією TensorRT-LLM. Поєднуючи кілька операцій (наприклад, множення матриці з функціями активації) в одне ядро CUDA, TensorRT мінімізує накладні витрати, пов’язані з кількома запусками ядра. Це зменшує передачу пам’яті та прискорює логічний висновок.
Плагіни
Щоб розширити можливості TensorRT, розробники можуть написати plugins— користувальницькі ядра, які виконують певні завдання, як-от оптимізація блоків уваги з кількома головками. Наприклад, Flash-Увага плагін значно покращує продуктивність рівнів уваги LLM.
Контрольні показники: підвищення продуктивності TensorRT-LLM
TensorRT-LLM демонструє значний приріст продуктивності для висновків LLM на різних графічних процесорах. Ось порівняння швидкості висновку (виміряної в токенах за секунду) за допомогою TensorRT-LLM на різних графічних процесорах NVIDIA:
Модель | Точність | Довжина входу/виводу | H100 (80 ГБ) | A100 (80 ГБ) | L40S FP8 |
---|---|---|---|---|---|
GPTJ 6B | FP8 | 128/128 | 34,955 | 11,206 | 6,998 |
GPTJ 6B | FP8 | 2048/128 | 2,800 | 1,354 | 747 |
LLaMA v2 7B | FP8 | 128/128 | 16,985 | 10,725 | 6,121 |
LLaMA v3 8B | FP8 | 128/128 | 16,708 | 12,085 | 8,273 |
Ці тести показують, що TensorRT-LLM забезпечує суттєве покращення продуктивності, особливо для довших послідовностей.
Практична робота: встановлення та збірка TensorRT-LLM
Крок 1: Створіть середовище контейнера
Для зручності використання TensorRT-LLM надає зображення Docker для створення контрольованого середовища для створення та запуску моделей.
docker build --pull \ --target devel \ --file docker/Dockerfile.multi \ --tag tensorrt_llm/devel:latest .