compress GPTQ Nasıl Çalışır?
GPTQ, ağırlık matrisini sütun sütun işler. Her sütun için Hessian inverse kullanarak optimal kuantizasyon noktasını bulur; hata birikimini sonraki sütunlara yansıtır (Cholesky decomposition ile). Böylece naif yuvarlama yerine kuantizasyon hatasını global olarak minimize eder. Küçük kalibrasyon veri seti (128-512 örnek) yeterlidir.
GPTQ Formatları ve Kütüphaneleri
build AutoGPTQ
Python kütüphanesi; HuggingFace modelleri için GPTQ kuantizasyonu yapar. pip install auto-gptq ile kurulur.
upgrade EXL2
GPTQ tabanlı gelişmiş format; katman başına farklı bit genişliği. Daha iyi kalite-boyut dengesi. ExLlamaV2 ile kullanılır.
speed vLLM GPTQ
vLLM, GPTQ modellerini doğrudan yükler; continuous batching ile yüksek throughput sunar.
GPTQ'nun Teknik Mekanizması
- check_circle İkinci Dereceden Optimizasyon: Katman çıktısındaki hatayı minimize etmek için Hessian matrisini (ikinci türev bilgisi) kullanır. Basit yuvarlama tabanlı kuantizasyondan daha akıllı.
- check_circle Optimal Brain Compression: OBC (Optimal Brain Compression) algoritmasının verimli versiyonu; hangi ağırlıkların kuantize edileceğini ve nasıl hata telafi edileceğini hesaplar.
- check_circle Katman Katman Kuantizasyon: Her transformer katmanı bağımsız olarak kuantize edilir; önceki katmanın hatası sonraki katmana taşınmaz. Kalite kaybını sınırlar.
- check_circle INT4 Hedefi: Yaygın kullanımda 4-bit (INT4) hassasiyeti hedeflenir; bu, FP16'ya göre 4× bellek tasarrufu demektir. INT3 ve INT2 de mümkün ama kalite kaybı artar.
- check_circle Kalibrasyon Verisi: Kuantizasyon sürecinde modelden geçirilen küçük bir veri seti (128-512 örnek) kullanılır; bu veri modelin kuantizasyon hatasını minimize etmesini kolaylaştırır.
GPTQ'nun Pratikte Kullanımı ve Rakip Yöntemler
GPTQ, büyük dil modellerini tüketici donanımında çalıştırmanın en yaygın yöntemlerinden biridir. 70B modeli FP16'da çalıştırmak için 140 GB GPU belleği gerektirirken, GPTQ INT4 ile bu gereksinim ~35 GB'a düşer. Araçlar: AutoGPTQ Python kütüphanesi ile mevcut bir modeli kuantize etmek birkaç satır kodla mümkündür; Hugging Face Model Hub'da hazır GPTQ modelleri mevcuttur. Karşılaştırma: GGUF/llama.cpp CPU uyumlu ve daha esnek donanım desteği sunar. AWQ aktivasyon farkındalıklı ağırlık kuantizasyonu ile bazı görevlerde GPTQ'dan daha iyi kalite sağlar. bitsandbytes eğitim sırasında dinamik kuantizasyon yapar; QLoRA ile birlikte kullanılır. Seçim kriteri: NVIDIA GPU'da hızlı çıkarım için GPTQ veya AWQ; CPU veya Apple Silicon için GGUF daha uygun.
quiz Sık Sorulan Sorular
- check_circle AWQ mu GPTQ mu?: AWQ genellikle daha hızlı çıkarım sunar. GPTQ bazı modellerde daha yüksek kalite korur. Her ikisini de test edip karşılaştırın.
- check_circle GPTQ modelini nasıl yüklerim?: auto-gptq veya transformers kütüphanesi ile HuggingFace Hub'dan "*-GPTQ" etiketli modeller doğrudan yüklenebilir.
- check_circle Kalibrasyon verisi ne olmalı?: Wikipedia veya C4 gibi genel metin veri setleri 128-512 örnek yeterlidir. Özel alan modellerinde alan-spesifik kalibrasyon daha iyi sonuç verir.
- check_circle GPTQ ile AWQ arasındaki fark nedir?: GPTQ ağırlık hatalarını Hessian tabanlı optimize eder. AWQ aktivasyon büyüklüğünü göz önünde bulundurarak önemli ağırlıkları korur. Her ikisi de INT4 kalitesinde iyi; AWQ bazı görevlerde hafif üstündür.
- check_circle GPTQ ile ne kadar bellek tasarrufu sağlanır?: FP16'ya göre 4-bit kuantizasyon ~4× bellek tasarrufu sağlar: 70B FP16 (~140 GB) → GPTQ INT4 (~35 GB). Pratikte bazı ek yük mevcuttur; gerçek tasarruf %60-75 arasında değişir.