vLLM vs TGI различия фреймворка для инференса
Автор: Yiren Lu @YirenLu
Оригинал: https://modal.com/blog/vllm-vs-tgi-article
Зачем использовать фреймворк для инференса?
Почему разработчики не могут просто использовать библиотеку вроде Transformers для обслуживания своих моделей?
Хотя библиотеки, такие как Transformers, отлично подходят для обучения и базового инференса, у них есть ограничения, когда дело доходит до масштабного развертывания и обслуживания LLM:
- Эффективность использования памяти:** LLM требуют значительных ресурсов памяти. Универсальные библиотеки могут не оптимизировать использование памяти, что приводит к неэффективному распределению ресурсов. Для получения дополнительной информации о требованиях VRAM для обслуживания LLM, прочитайте здесь.
- Скорость инференса:** Стандартным библиотекам часто не хватает оптимизаций, специфичных для инференса, что приводит к замедлению времени обработки больших моделей.
- Пакетная обработка и очереди:** Эффективная обработка нескольких запросов требует сложных механизмов пакетной обработки и очередей, которые обычно не включаются в библиотеки, ориентированные на обучение.
- Масштабируемость:** Обслуживание LLM в масштабе требует тщательного управления вычислительными ресурсами, что выходит за рамки большинства универсальных библиотек.
Вместо этого, для большинства случаев обслуживания моделей в production, чтобы максимизировать пропускную способность и минимизировать задержку, вам следует использовать inference server. Двумя наиболее популярными inference serverами для случаев использования LLM являются vLLM и TGI.
Что такое vLLM и TGI?
vLLM
vLLM — это библиотека с открытым исходным кодом, разработанная для быстрого инференса и обслуживания LLM. Разработанная исследователями из Калифорнийского университета в Беркли, она использует PagedAttention, новый алгоритм внимания, который эффективно управляет ключами и значениями внимания. vLLM обеспечивает до 24 раз более высокую пропускную способность, чем Hugging Face Transformers, без каких-либо изменений в архитектуре модели.
Ключевые особенности vLLM включают в себя:
- Эффективное управление памятью
- Непрерывная пакетная обработка
- Оптимизированные реализации ядра
- Поддержка различных архитектур моделей
TGI (Text Generation Inference)
TGI, сокращение от Text Generation Inference (Инференс для генерации текста), — это инструментарий для развертывания и обслуживания больших языковых моделей (LLM). Разработанный компанией Hugging Face, TGI обеспечивает высокопроизводительную генерацию текста для самых популярных LLM с открытым исходным кодом, включая Llama, Falcon, StarCoder, BLOOM, GPT-NeoX и другие. Он ориентирован на предоставление готового к production решения для развертывания и обслуживания больших языковых моделей с особым упором на задачи генерации текста.
Сравнение производительности: Что быстрее?
Когда дело доходит до производительности, vLLM и TGI предлагают значительные улучшения по сравнению с базовыми реализациями. Однако определить, что быстрее, не так просто, поскольку производительность может варьироваться в зависимости от конкретного случая использования, архитектуры модели и конфигурации оборудования.
- Пропускная способность:** vLLM часто демонстрирует более высокую пропускную способность, особенно для больших размеров пакетов, благодаря механизму PagedAttention и оптимизации непрерывной пакетной обработки.
- Эффективность использования памяти:** Метод PagedAttention в vLLM позволяет более эффективно использовать память, потенциально обеспечивая более высокую параллельность на одном и том же оборудовании.
- Простота использования:** Поскольку TGI создан Hugging Face, обслуживание любой модели Hugging Face (включая частные/gate-модели) с помощью TGI относительно просто. Стандартный способ запуска TGI, через официальный Docker-контейнер, также поднимает API endpoint.
- Готовность к производству (Production-readiness):** TGI предлагает встроенную телеметрию через OpenTelemetry и метрики Prometheus. У vLLM меньше “готовых к производству” наворотов.
В целом, мы рекомендуем использовать vLLM, который обеспечивает хороший баланс между скоростью, поддержкой распределенного инференса (необходимого для больших моделей) и простотой установки.