Transformers documentation
Sunucu optimizasyonları
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"