AWQ Nedir?
AWQ (Activation-aware Weight Quantization), buyuk dil modellerini INT4 hassasiyetine nicelerken agirlik onem skorlarini kullanarak kalite kaybini minimize eden bir quantization yontemidir. MIT Han Lab tarafindan 2023'te gelistirilmistir. Temel icguduu, tum agirlik kanallarinin esit onemde olmadigidir: aktivasyon buyuklugu yuksek olan kanallar modelin kalitesine daha buyuk katki saglar; bu kanallar daha hassas korunarak INT4'te kalite kaybi minimize edilir.
Calisma Prensibi
AWQ her agirlik kanalinin aktivasyonlarla olan baglantisini olcer ve yuksek onemli kanallara daha buyuk olcekleme faktoru uygular. Bu basit ama etkili yaklasim, ikinci derece Hessian optimizasyonu kullanan GPTQ'ya kiyasla hesaplama maliyetini dusurup donanim dostu bir format uretir. Sonucta cikarim hizi genellikle GPTQ'ya kiyasla daha yuksek olurken kalite karsilastirmali benchmark'larda rekabetci kalir.
Pratik Uygulama ve Araçlar
AutoAWQ kutuphanesi, Hugging Face model deposundaki herhangi bir modeli AWQ formatina donustumek icin birkaç satirla Python kodu yeterlidir. vLLM ve TensorRT-LLM gibi populer cikarim cerceveleri AWQ formatini natively destekler. Hugging Face Hub'da pek cok populer model icin AWQ formatli surumler de hazir olarak mevcuttur. Bu erisim kolayligi, AWQ'yu ozellikle buyuk modelleri yerel sunucularda veya kenarda calistirmak isteyen ekipler icin pratik bir tercih haline getirmistir.
Donanim Uyumlulugu ve Faydalar
AWQ, NVIDIA GPU'lar, Apple Silicon ve Jetson gibi kenarda cikarim donanimi uzerinde verimli calisir. INT4 nicileme float32'ye kiyasla yaklasik dort kat daha az GPU bellek kullanir; bu buyuk modellerin daha kucuk donanim uzerinde calismasini mumkun kilar. Dil modeli cikarimi icin giderek populerlesen bu donanim yelpazesinde AWQ ile GGUF/llama.cpp kombinasyonu ve AWQ vLLM kombinasyonu en yaygin pratik senaryo parcalarini olusturur.
AWQ Uygulama Rehberi
- check_circle AutoAWQ Kütüphanesi: pip install autoawq ile kurulum; Llama, Mistral, Qwen gibi popüler modeller için ön hazır AWQ ağırlıkları HuggingFace'de mevcut.
- check_circle Kalibrasyon Verisi: Nicemleme öncesinde 128-512 örnek kalibrasyon seti gerekir; model çıkarım görevi ile benzer dağılımda veriler seçilmesi önerilir.
- check_circle Saklama Formatı: Ağırlıklar INT4 olarak depolanır; çıkarım anında FP16'ya dönüştürülür, bu nedenle hesaplama GPU hafızasını değil ağırlık yüklemesini hızlandırır.
- check_circle vLLM Entegrasyonu: vLLM, AWQ modellerini doğrudan destekler; --quantization awq bayrağı ile yüksek verimli batch çıkarımı etkinleştirilebilir.
- check_circle Doğruluk Kaybı: Çoğu görevde GPTQ'ya eşit veya üstün; 7B modelde nicemleme sonrası ortalama perplexity artışı < 0.3 puan olarak ölçülmüştür.
help Sik Sorulan Sorular
- check_circle AWQ ile GPTQ arasindaki fark nedir? GPTQ ikinci derece Hessian optimizasyonu kullanir; AWQ aktivasyon onem skoru temelli daha basit bir yaklasim izler. AWQ genellikle daha hizli cikarim saglarken bazi benchmark'larda GPTQ daha yuksek dogruluk sergileyebilir.
- check_circle AWQ modelleri nerede bulunabilir? Hugging Face Hub'da pek cok populer model icin AWQ formatli surumler mevcuttur. AutoAWQ kutuphanesiyle kendi modelini donusturmek de mumkundur.
- check_circle AWQ hangi model boyutlarinda en etkilidir? 7B ile 70B parametre arasi modellerde INT4 AWQ en pratik dengeyi sunar. Daha kucuk modellerde kalite kaybi daha belirgin olabilir.
- check_circle vLLM ile AWQ modeller calistirilabilir mi? Evet, vLLM AWQ formatini natively destekler ve yuksek verimlilikteki batch cikarimiyla AWQ modellerini verimli bicimde sunabilir.
tune Kendi modelini AWQ'ya dönüştürme adımları
- check_circle Önce hazır ağırlığa bak: Hugging Face'te popüler modellerin çoğu için AWQ etiketli hazır sürümler var. Dönüşüm işine girmeden önce model adına AWQ ekleyip aratmak saatler kazandırır.
- check_circle Aracı seç: Uzun süre standart olan AutoAWQ deposunun geliştirmesi 2025'te durduruldu. Yeni dönüşümlerde vLLM ekosisteminin yönlendirdiği llm-compressor paketi kullanılıyor; eski kurulumlarda AutoAWQ hâlâ çalışır durumda.
- check_circle Kalibrasyon verisini hazırla: 128 ile 512 arası örnek yeterlidir, her örnek 512 token civarında olmalıdır. Verinin modelin gerçek kullanım alanına benzemesi kaliteyi belirler: Türkçe müşteri sorularına cevap verecek bir modeli İngilizce genel metinle kalibre etmek kaybı büyütür.
- check_circle Niceleme ayarlarını gir: Tipik yapılandırma 4 bit ağırlık ve 128'lik grup boyutudur. Grup boyutunu 64'e düşürmek kaliteyi biraz toparlar, dosya boyutunu ve bellek kullanımını da bir miktar büyütür.
- check_circle Dönüşümü çalıştır: Dönüşüm sırasında modelin FP16 hâli belleğe yüklenir: 7B için yaklaşık 16 GB, 13B için 28 GB civarı. Daha büyük modellerde çok GPU'lu makine ya da CPU'ya boşaltma gerekir, süre model boyutuna göre onlarca dakikayı bulur.
- check_circle Sonucu doğrula: Nicelenmiş modeli FP16 sürümüyle aynı sorular üzerinden karşılaştır. Tek başına perplexity ölçümü yanıltıcı olabilir; kendi görevinden 20 ile 30 örneği yan yana okumak daha çok şey söyler.
AWQ, GPTQ, GGUF ve bitsandbytes karşılaştırması
bolt AWQ
4 bit ağırlık, kalibrasyon gerektirir. GPU üzerinde toplu istek sunumunda hızlıdır, vLLM ve TensorRT-LLM doğrudan destekler. Çok kullanıcılı sunucu servisi için tipik seçim.
functions GPTQ
Yine 4 bit, ancak Hessian tabanlı daha ağır bir optimizasyon kullanır. Hazır model havuzu geniştir ve bazı görevlerde doğruluk AWQ'nun biraz önüne geçebilir.
laptop_mac GGUF
llama.cpp, Ollama ve LM Studio'nun formatı. CPU ve Apple Silicon üzerinde çalışır, katmanların bir kısmını GPU'ya taşıyabilir. Tek kullanıcılı yerel kullanımda en pratik yol.
memory bitsandbytes
load_in_4bit ile nicelemeyi model yüklenirken yapar, kalibrasyon istemez. Kurulumu en kolay seçenek ve QLoRA eğitiminin temeli; çıkarım hızı AWQ ile GPTQ'nun gerisinde kalır.
memory AWQ ile VRAM ihtiyacı: hangi model hangi karta sığar
Kaba hesap şöyle: 4 bit ağırlık parametre başına yaklaşık 0,5 bayt yer kaplar. Niceleme ölçekleri, aktivasyonlar ve KV önbelleği eklenince pratik ihtiyaç parametre sayısı çarpı 0,6 ile 0,7 GB aralığına çıkar.
Bu hesapla 7B model FP16'da yaklaşık 14 GB isterken AWQ ile 5 GB civarına iner ve 8 GB'lık bir karta sığar. 13B için 9 ile 10 GB gerekir, 12 GB'lık kart sınırda kalır, 16 GB rahat eder. 32B için 20 GB civarı gerekir ve 24 GB'lık kartlar uygundur. 70B model AWQ ile yaklaşık 40 GB ister; tek 48 GB'lık kart ya da iki adet 24 GB'lık kart üzerinde tensor paralelliği ile çalıştırılır.
KV önbelleği bu tablonun en çok atlanan kalemi. Uzun bağlamda veya çok sayıda eşzamanlı istekte önbellek birkaç GB yer kaplayabilir. vLLM'de bağlam uzunluğunu gerçekten ihtiyacın kadar tutmak (max-model-len) ve gpu-memory-utilization değerini ayarlamak, model sığdığı hâlde sunucunun bellek hatası vermesi durumunun en hızlı çözümü.
help Sıkça Sorulan Sorular
- check_circle AWQ modeli nasıl çalıştırılır? En yaygın yol vLLM: vllm serve model-adi --quantization awq --max-model-len 4096 komutu OpenAI uyumlu bir sunucu açar. Transformers tarafında AWQ ağırlıkları AutoModelForCausalLM.from_pretrained ile doğrudan yüklenebilir. Hugging Face'te model adının sonunda AWQ etiketi taşıyan hazır sürümler aranmalı.
- check_circle AWQ mı GGUF mu kullanmalıyım? Sunucuda GPU ile çok kullanıcıya hizmet verecekseniz AWQ, kişisel bilgisayarda tek kullanıcı olarak çalıştıracaksanız GGUF daha uygun. AWQ vLLM ve TensorRT-LLM ile toplu isteklerde yüksek verim sağlar. GGUF ise CPU ve Apple Silicon'da çalışır, Ollama veya LM Studio ile tek komutta kurulur.
- check_circle AWQ Türkçe model kalitesini düşürür mü? Ölçülü bir kayıp beklenir ve bu kayıp Türkçe gibi eğitim verisinde daha az yer tutan dillerde daha erken fark edilir. Kaybı azaltmanın pratik yolu kalibrasyon verisini Türkçe metinlerden seçmek ve grup boyutunu 128 yerine 64 denemektir. Yayına almadan önce kendi Türkçe örneklerinizle FP16 sürümünü yan yana karşılaştırın.
- check_circle AWQ dönüşümü için ne kadar VRAM gerekir? Dönüşüm sırasında modelin FP16 hâli belleğe sığmalıdır: 7B için yaklaşık 16 GB, 13B için 28 GB civarı. Daha büyük modellerde çok GPU'lu makine veya CPU'ya boşaltma gerekir. Çalıştırma aşamasında ihtiyaç dörtte birine iner, örneğin 7B AWQ model 8 GB'lık bir kartta çalışır.