Transformers documentation

Оптимизации сервера

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Оптимизации сервера

transformers serve включает оптимизации для повышения пропускной способности и снижения потребления памяти.

Непрерывная пакетная обработка

Continuous batching динамически группирует и перемешивает запросы, чтобы совместно использовать проходы на GPU. Новые запросы присоединяются к батчу, пока другие проходят стадию prefill. Завершённые запросы исключаются после декодирования. Это повышает загрузку GPU и пропускную способность без ущерба для задержки.

Добавьте --continuous-batching, чтобы включить его.

transformers serve \
  --continuous-batching \
  --attn-implementation "sdpa"

Квантование

Квантование снижает потребление памяти за счёт отображения весов в формат с меньшей точностью. transformers serve совместим со всеми методами квантования в Transformers. Поддерживаются как предварительно квантованные модели, так и квантование во время выполнения.

Предварительно квантованные модели не требуют никаких изменений. Они обеспечивают наилучший баланс между производительностью и точностью. Установите соответствующую библиотеку квантования. Затем передайте предварительно квантованную модель из Hub в аргумент model.

curl http://localhost:8000/v1/responses \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-8B-GGUF",
    "stream": true,
    "input": "Tell me a three sentence bedtime story about a unicorn."
  }'

Используйте --quantization для квантования модели во время выполнения. Это полезно для новых контрольных точек или результатов дообучения, у которых нет предварительно заквантованных весов. Поддерживаются только 4-битное и 8-битное квантование bitsandbytes.

transformers serve \
  --quantization bnb-4bit

Бэкенд внимания

Оптимизированный attention backend повышает эффективность использования памяти и ускоряет инференс.

transformers serve \
  --continuous-batching \
  --attn-implementation "flash_attention_2"

Apple Silicon (Metal flash attention)

При использовании --continuous-batching на MPS установите kernels, чтобы переключиться на kernels-community/metal-flash-sdpa. Он работает в 1,66 раза быстрее, чем SDPA, при generate_batch (gsm8k, Qwen2.5-0.5B-Instruct, fp16) и совпадает с ним посимвольно при жадном декодировании.

pip install kernels
transformers serve --continuous-batching

Без непрерывного батчинга модели используют внимание по умолчанию (SDPA). Чтобы попробовать другое, передайте --attn-implementation, например kernels-community/metal-flash-sdpa.

Компиляция

torch.compile отслеживает и компилирует цикл декодирования для ускорения вывода.

Compile несовместим с непрерывным батчингом.

transformers serve \
  --compile

Тип данных

Типы данных "bfloat16" или "float16" экономят память и повышают пропускную способность.

transformers serve \
  --continuous-batching \
  --dtype "bfloat16"
Update on GitHub