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ı
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 sağlar.
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 sağlar.
- check_circle ExLlama ve AutoGPTQ: GPTQ modelleri için optimize edilmiş çıkarım çekirdekleri; GPU'da tam hassasiyete yakın hızda INT4 çıkarımı mümkün kılar.
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 140GB GPU belleği gerektirirken, GPTQ INT4 ile bu gereksinim ~35GB'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, daha esnek donanım desteği. AWQ: aktivasyon farkındalıklı ağırlık kuantizasyonu; bazı görevlerde GPTQ'dan daha iyi kalite. bitsandbytes: eğitim sırasında dinamik kuantizasyon; 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. Kalite açısından genellikle şu sıralama geçerlidir: FP16 > AWQ ≈ GPTQ > GGUF Q4.
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 domain-specific kalibrasyon daha iyi sonuç verir.
- check_circle GPTQ nedir?: Büyük dil modellerini INT4 veya INT8 hassasiyetine kuantize eden, ikinci dereceden optimizasyon (Hessian) kullanan post-training quantization yöntemidir. Bellek ve hesaplama gereksinimini dramatik biçimde azaltır.
- 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 modeli nasıl kullanılır?: Hugging Face Hub'dan hazır GPTQ modelleri (örn. TheBloke'un depolarından) indirilebilir; AutoGPTQ veya transformers kütüphanesiyle doğrudan yüklenebilir. NVIDIA GPU gerektirir.
- 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 (~140GB) → GPTQ INT4 (~35GB). Pratikte bazı ek yük mevcuttur; gerçek tasarruf %60-75 arasında değişir.