В 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» и стали полноценными инфраструктурными решениями со своими механизмами квантизации, кешированием, балансировкой и наблюдаемостью. Выбор инференс-движка теперь сопоставим по значимости с выбором базы данных — он определяет операционный профиль продукта на годы вперёд.

По мотивам: публичные бенчмарки команд vLLM, TGI и SGLang, собственные измерения.