· kaynak dev.to (home feed)
QAT Gemma 4 repack'i tek bir TPU v5e üzerinde 12B modeli saniyede 675 token servis ediyor
Dev.to'da yayımlanan bir rehber, Google'ın QAT Gemma 4 ağırlıklarını vLLM ile servis edilebilir formatlara nasıl repack edileceğini ve 12B modelin tek bir TPU v5e çipinde saniyede 675 çıktı tokenı ile, bf16 kalitesiyle eşdeğer şekilde nasıl servis edileceğini gösteriyor.

Dev.to'da yayımlanan bir rehber, Google'ın quantization-aware-trained (QAT) Gemma 4 ağırlıklarını vLLM'in servis edebileceği formatlara yeniden paketlemenin (repack) ve ardından bunları tek bir Google Cloud TPU v5e çipinde çalıştırmanın yolunu anlatıyor. Öne çıkan sonuç: int8 ağırlıklar ve int4 embedding tablolarıyla saklanan 12B model 11,31 GiB yer kaplıyor, 16 eşzamanlı istekte saniyede 675 çıktı tokenı üretiyor ve 3.880 kayıtlık bir değerlendirme setinde bf16 referansıyla eşit puana ulaşıyor. Her script, log ve kayıt başına çıktı kamuya açık bir depoya commit edilmiş durumda.
Repack neden gerekiyor
v5litepod-1 olarak sağlanan tek bir v5e çipinde 15,75 GiB HBM var. Rehbere göre Gemma 4 E4B bf16'da zaten 14,9 GiB, 12B model ise 22,4 GiB gerektiriyor; yani en küçük E2B boyutunun üzerindeki her şeyin sığması için quantize edilmesi şart. Google, Gemma 4'ün her boyutu için 4-bit varyantlar eğitiyor ve eğitilmiş değerleri qat-q4_0-unquantized etiketiyle bf16 checkpoint'leri olarak yayımlıyor; bunlarda her 32 ağırlıklık grup zaten 16 seviyeli bir grid üzerinde duruyor. Repack işlemi bu değerleri, ikinci kez yuvarlamadan servis edilebilir formatlara dönüştürüyor ve QAT eğitiminin ürettiği konumları koruyor.
Dört format ve üç yama
Rehber dört varyant oluşturuyor: q4w4a16 (QAT grid'i üzerinde int4 ağırlıklar ve 16-bit aktivasyonlar), q4w4a16emb4 (aynı şey, int4 kelime dağarcığı tablolarıyla), w8a8 (kanal başına int8 ağırlıklar ve token başına int8 aktivasyonlar) ve w8a8emb4 (int8 ağırlıklar artı int4 kelime dağarcığı tabloları). v5e donanımda int8'i int8 ile çarptığı için int8 yapılar bu çipte en hızlı seçenekler. Bunları servis etmek, vLLM'in tpu_inference backend'ine üç ek gerektirdi: JAX yolunda bir int8 W8A8 metodu, HBM'de sıkıştırılmış halde tutulup yalnızca her adımın dokunduğu satırlar için açılan embedding tabloları ve bir int4 lm_head.
Nasıl çalışıyor
Ön koşullar: us-west4-a bölgesinde v5e flex-start kotasına sahip bir Cloud projesi, gcloud CLI, bir Cloud Storage bucket'ı ve Secret Manager'da saklanan bir Hugging Face tokenı. Her deney, önyükleme yapan, sabitlenmiş (pinned) bir vLLM imajını yamalayan, bir yapı listesini sırayla servis eden ve sonuçları yükleyen, dört saatle sınırlı bir flex-start kuyruklu kaynak; 12B yapı 405 saniye sonra hazır bildirildi. Biten checkpoint'ler Hugging Face'te xbill9 hesabı altında yayımlanıyor ve kod GitHub'daki gemma4-dev deposunda duruyor.
Sayılar ne gösteriyor
Bespoke Labs'ın 3.880 kayıtlık setinde, bf16'a kayıt kayıt karşılaştırmalı puanlamayla, 12B'ye kadar her yapı bf16'ın bildirilen hata aralıkları içinde kalıyor; 26B mixture-of-experts repack'i 1,1 puan daha düşük okuyor. 1, 4 ve 16 paralel istekte throughput: 12B int8 yapı saniyede 57, 219 ve 675 token üretiyor, 12B 4-bit yapı 35, 127 ve 407, en hızlı E2B yapı ise 3.086'ya ulaşıyor. 12B int8 model, çipin kalan belleğini 9.728 tokenlık bir KV cache'e bırakıyor; bu, istek başına 4.096 tokenla 2,38x eşzamanlılık için yeterli. 26B repack 13,58 GiB'den servis ediliyor, 2.176 tokenlık cache ile saniyede 201 token üretiyor. E4B, 12B ve 26B için bf16 referansları v6e çiplerinde çalıştı, çünkü bu boyutlar bir v5e'ye sığmıyor.
Google'ın kendi qat-w4a16-ct export'larıyla (bunlar her ağırlık grubunu yeniden yuvarlıyor) karşılaştırıldığında, repack'ler E2B'de 2,4, E4B'de 1,3 ve 12B'de 0,6 puan daha yüksek skor alıyor, hız ise aynı: 16 istekte E2B için iki durumda da kabaca saniyede 1.910 token.
Matematik ve tool calling
12B int8 yapı GSM8K'da 0,964 (1.319 problemin tamamı, zero-shot chain of thought, greedy decoding) ve BFCL v3 simple'da 0,955 puan alıyor (400 kayıt, sunulan tek bir tool). E2B'de repack'ler GSM8K'da bf16'nın 0,9 ila 2,0 puan gerisinde, tool calling'de ise 1,3 puan içinde kalıyor; bf16 olarak saklanan QAT ağırlıkları GSM8K'da zaten 1,3 puan geride olduğu için repack en fazla 0,8 puan ekliyor.
Neden önemli
Tek bir v5e çipi, TPU kapasitesi kiralamak için en ucuz yollardan biri ve rehber, bir tanesi üzerinde bf16 düzeyinde kaliteyle, saniyede yüzlerce token throughput ile çalışan bir 12B modeli ortaya koyarak maliyete duyarlı çıkarım ve geliştirme için pratik bir şablon sunuyor. İki daha geniş ders öne çıkıyor. Birincisi, QAT ile eğitilmiş ağırlıklar hedeflenen 4-bit formatının ötesinde değer taşıyor: onlardan türetilen int8, doğrudan bf16'dan yuvarlanan int8'den sette 1,5, BFCL'de 7,2 puan daha iyi; bf16'dan yuvarlanan yapı, 400 kayıttan 16'sında string argümanlarını gereksiz tırnak işaretlerine sarmıştı. İkincisi, yeniden yuvarlama gibi export seçimleri, karşılığında hiçbir hız kazancı olmadan ölçülebilir bir doğruluğu masada bırakıyor.
- #gemma
- #quantization
- #tpu
- #vllm
- #inference