В 2024 году разница в производительности между основными инференс-движками была не критичной — большинство команд выбирало любой работающий вариант и заводило прод. В 2026 году, при цене A100 от $1,8 в час и H100 от $4 в час, разница в 30-50% throughput напрямую влияет на бюджет проекта. Это сделало регулярное бенчмаркинг частью операционной гигиены ML-команд.
Мы прогнали три самых распространённых движка — vLLM, Text Generation Inference (TGI) от HuggingFace и SGLang — на трёх популярных моделях и двух классах GPU. Все измерения проведены на одинаковой нагрузке: 256 параллельных запросов, prompt 1024 токена, output 256 токенов, температура 0,7.
Llama 3.1 70B на H100 80GB
При тензорном параллелизме TP=2 (две GPU на одну инстанс модели):
- vLLM 0.7.x: 2840 output-токенов/сек (агрегированно по всем запросам)
- TGI 3.x: 2410 output-токенов/сек
- SGLang 0.4.x: 3120 output-токенов/сек
SGLang впереди благодаря continuous batching с приоритизацией коротких ответов и более агрессивному prefix caching. vLLM близко позади. TGI заметно отстаёт на этой конфигурации — это связано не столько с фундаментальными ограничениями, сколько с менее агрессивными default-настройками.
Mistral Codestral 22B на A100 80GB
На одной GPU без параллелизма:
- vLLM: 1980 output-токенов/сек
- TGI: 1840 output-токенов/сек
- SGLang: 2140 output-токенов/сек
Разница сглажена. На моделях среднего размера и одной GPU все три движка показывают сопоставимые результаты — выбор должен определяться другими факторами (удобство деплоя, поддержка специфических фич, экосистема).
FP8 на H100: до 1,7× throughput
Поддержка FP8 — главное направление развития всех трёх движков за последний год. Llama 3.1 70B в FP8-квантизации на H100 даёт:
- vLLM: 4710 output-токенов/сек (+66% к FP16)
- TGI: 3920 output-токенов/сек (+63%)
- SGLang: 5280 output-токенов/сек (+69%)
Качество вывода при FP8 практически не отличается от FP16 на этих моделях. Команды, не использующие FP8 на H100, оставляют 60%+ производительности на столе — это редко оправдано.
Что выбрать для разных сценариев
SGLang — самый агрессивный по throughput выбор. Хорошо себя показывает на сложных сценариях со structured generation, JSON-mode и constrained decoding. Минусы — менее зрелая экосистема, документация в стадии активного развития.
vLLM — самый сбалансированный вариант. Большая аудитория, обширная документация, готовые рецепты деплоя для большинства моделей. Default-выбор для команд, у которых нет специфических требований.
TGI — лучший вариант для команд, уже вовлечённых в экосистему HuggingFace. Глубокая интеграция с Hub, готовая поддержка inference endpoints, корпоративные опции в Enterprise Hub.
Главный сдвиг последних шести месяцев — все три движка перестали быть просто «обёртками над PyTorch» и стали полноценными инфраструктурными решениями со своими механизмами квантизации, кешированием, балансировкой и наблюдаемостью. Выбор инференс-движка теперь сопоставим по значимости с выбором базы данных — он определяет операционный профиль продукта на годы вперёд.