Inference

TGI (Text Generation Inference)

Сервер инференса от Hugging Face с поддержкой continuous batching и streaming.

Что такое TGI

Text Generation Inference (TGI) — production-ready сервер инференса от Hugging Face, написанный на Rust (HTTP-слой) и Python/PyTorch (вычисления). Разработан как универсальное решение для деплоя любых моделей с HuggingFace Hub с минимальной настройкой.

TGI поддерживает continuous batching, streaming, tensor parallelism и широкий спектр моделей «из коробки». Особенность — нативная интеграция с HuggingFace ecosystem: достаточно указать идентификатор модели вида meta-llama/Llama-3-8B-Instruct.

Ключевые возможности

  • Универсальный деплой — поддерживает Llama, Mistral, Falcon, BLOOM, StarCoder, Gemma и десятки других архитектур
  • Continuous batching и streaming из коробки
  • Квантизация — AWQ, GPTQ, bitsandbytes (INT4/INT8)
  • Flash Attention 2 — для ускорения инференса на Ampere/Hopper GPU
  • Tensor parallelism — multi-GPU через --num-shard
  • Safeguards — встроенные механизмы ограничения токенов, watermarking

Быстрый старт

# Docker-запуск (модель скачается автоматически)
docker run --gpus all \
  -p 8080:80 \
  -v $PWD/data:/data \
  -e HF_TOKEN=$HF_TOKEN \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id meta-llama/Llama-3.1-8B-Instruct \
  --max-batch-prefill-tokens 4096

# С квантизацией AWQ
docker run --gpus all -p 8080:80 \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id TheBloke/Llama-2-13B-chat-AWQ \
  --quantize awq

Запрос:

from huggingface_hub import InferenceClient
client = InferenceClient(model="http://localhost:8080")
for token in client.text_generation("Напиши хайку о GPU.", stream=True):
    print(token, end="", flush=True)

Когда выбирать TGI

Сценарий Рекомендация
Быстрый деплой любой HF-модели TGI
Максимальный throughput чат-сервиса vLLM
Запуск на CPU или тонком инстансе llama.cpp
Максимум TPS на A100/H100 SGLang

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер