Transformers documentation

Sunucu optimizasyonları

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

Sunucu optimizasyonları

transformers serve, veri aktarımını artırmak ve bellek kullanımını azaltmak için optimizasyonlar içerir.

Sürekli toplu işleme

Continuous batching, GPU üzerinde ileri geçişleri paylaşmak için istekleri dinamik olarak gruplar ve iç içe geçirir. Diğer istekler prefill aşamasından ilerlerken yeni istekler batch'e katılır. Tamamlanan istekler, decoding bittikten sonra batch'ten çıkar. Bu sayede gecikmeden ödün vermeden GPU kullanım oranı ve throughput artırılır.

Etkinleştirmek için --continuous-batching ekleyin.

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

Kantizasyon

Kantizasyon, ağırlıkları daha düşük bir hassasiyete eşleyerek bellek kullanımını azaltır. transformers serve, Transformers'taki tüm kantizasyon yöntemleriyle uyumludur. Hem önceden kantize edilmiş modelleri hem de çalışma zamanı kantizasyonunu destekler.

Önceden kantize edilmiş modellerde herhangi bir değişiklik yapılmasına gerek yoktur. Performans ve doğruluk arasında en iyi dengeyi sunarlar. Uygun kantizasyon kütüphanesini yükleyin. Ardından Hub'daki önceden kantize edilmiş modeli model argümanına iletin.

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."
  }'

Bir modeli çalışma zamanında kuantize etmek için --quantization kullanın. Bu, önceden kuantize edilmiş ağırlıklara sahip olmayan yeni checkpoint'ler veya finetune'lar için faydalıdır. Yalnızca bitsandbytes 4-bit ve 8-bit kuantizasyonu desteklenir.

transformers serve \
  --quantization bnb-4bit

Dikkat arka ucu

Optimize edilmiş bir dikkat arka ucu, bellek verimliliğini artırır ve çıkarımı hızlandırır.

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

Apple Silicon (Metal flash attention)

MPS üzerinde --continuous-batching kullanırken, kernels-community/metal-flash-sdpa'ya geçmek için kernels paketini yükleyin. generate_batch ile SDPA'dan 1,66 kat daha hızlı çalışır (gsm8k, Qwen2.5-0.5B-Instruct, fp16) ve açgözlü çözümleme (greedy decoding) altında token bazında birebir aynı sonucu verir.

pip install kernels
transformers serve --continuous-batching

Sürekli toplu işleme (continuous batching) olmadan modeller varsayılan dikkat (SDPA) mekanizmasını kullanmaya devam eder. kernels-community/metal-flash-sdpa gibi başka bir mekanizmayı denemek için --attn-implementation parametresini geçin.

Derle

torch.compile, daha hızlı çıkarım için decode döngüsünü izler ve derler.

Compile, sürekli toplu işleme (continuous batching) ile uyumlu değildir.

transformers serve \
  --compile

Veri türü

"bfloat16" veya "float16" veri türleri bellek tasarrufu sağlar ve verimliliği artırır.

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