Quantization Nedir? Büyük Yapay Zekâ Modelleri Daha Az Bellekle Nasıl Çalışıyor?
Örneğin 70 milyar parametreli bir modelin yalnızca ağırlıkları, parametre başına 16 bit kullanıldığında yaklaşık 140 GB yer kaplar. Çalışma sırasında gereken ara hesaplamalar, KV Cache ve diğer bileşenler buna dâhil değildir.
Quantization, yani kuantizasyon, sayısal değerleri daha düşük bit genişliğiyle temsil ederek bu yükü azaltmayı amaçlar. Uygun yöntem ve donanımla daha düşük bellek kullanımı, daha küçük model dosyaları ve daha verimli çıkarım elde edilebilir.
Ancak düşük bit kullanımı, her koşulda daha yüksek hız veya aynı çıktı kalitesi anlamına gelmez. Kazanım; modele, kuantizasyon yöntemine, çalışma motoruna ve donanıma bağlıdır.
Quantization Nedir?
Kuantizasyon, modeldeki sayısal değerlerin daha az sayıda temsil değeri kullanılarak yaklaşık biçimde ifade edilmesidir.
Büyük dil modellerinde çoğunlukla ağırlıkların kuantizasyonu gündeme gelir. Bunun yanında aktivasyonlar veya KV Cache gibi başka bileşenler de uygun yöntemlerle kuantize edilebilir.
Temel amaç, değerlerin bellekte kapladığı alanı ve gerektiğinde hesaplama maliyetini azaltmaktır.
Örneğin FP32 biçiminde tutulan bir ağırlık 32 bit kullanır. FP16 ve BF16, parametre başına 16 bitlik temsillerdir. INT8 ve INT4 gibi düşük bitli biçimler ise daha az saklama alanı gerektirebilir.
Kuantizasyon genellikle parametreleri silmez. Aynı parametreleri daha düşük hassasiyetli temsillerle saklar.
Düşük Hassasiyet Ne Anlama Gelir?
Yüksek hassasiyetli bir biçim, daha fazla sayısal değeri temsil edebilir. Daha düşük bit genişliğinde ise kullanılabilecek değerlerin sayısı sınırlıdır.
Kuantizasyon sırasında özgün değerler, uygun ölçekler ve dönüşüm kuralları kullanılarak bu sınırlı temsil kümesine eşlenir. Böylece değerlerin yaklaşık karşılıkları elde edilir.
Bu işlem, kuantizasyon hatası oluşturabilir. İyi bir yöntem, bellek kazanımı sağlarken bu hatanın model davranışına etkisini sınırlamayı hedefler.
Ağırlıkların farklı aralıklara sahip olması veya bazı değerlerin aykırı büyüklükte bulunması, dönüşümü zorlaştırabilir. Bu nedenle bütün ağırlıklara aynı basit yuvarlama işlemini uygulamak yeterli olmayabilir.
70 Milyar Parametreli Bir Model Ne Kadar Yer Kaplar?
Yalnızca ağırlık verisi için yaklaşık hesaplama, parametre sayısı ile parametre başına kullanılan bit sayısının çarpılmasıyla yapılabilir.
| Temsil | Parametre başına bit | 70 milyar parametre için yaklaşık ağırlık alanı |
|---|---|---|
| FP32 | 32 bit | 280 GB |
| FP16 veya BF16 | 16 bit | 140 GB |
| 8 bit | 8 bit | 70 GB |
| 4 bit | 4 bit | 35 GB |
Bu değerler ondalık GB üzerinden hesaplanan teorik ağırlık boyutlarıdır.
Gerçek dosya ve bellek kullanımı daha yüksek olabilir. Kuantizasyon ölçekleri, ek bilgiler, yüksek hassasiyette bırakılan katmanlar ve çalışma tamponları da alan tüketir.
Ayrıca 35 GB ağırlık verisi, modelin toplam 35 GB bellekle rahatça çalışacağı anlamına gelmez. Bağlam uzunluğu, eş zamanlı istekler ve KV Cache ihtiyacı toplam tüketimi artırabilir.
Quantization Nasıl Çalışır?
Kuantizasyonun uygulama biçimi yönteme göre değişir. En yaygın ayrımlardan biri, işlemin eğitimden sonra mı yoksa eğitim sırasında mı ele alındığıdır.
Eğitim Sonrası Kuantizasyon
Post-Training Quantization (PTQ), önceden eğitilmiş modelin ağırlıklarına sonradan uygulanan dönüşümdür.
Model yüklenir, uygun dönüşüm parametreleri belirlenir ve düşük bitli temsil oluşturulur. Bazı yöntemler, modelin davranışını değerlendirmek için temsil edici bir kalibrasyon veri kümesi kullanır.
Ardından kuantize model, destekleyen bir çalışma motoruyla çalıştırılır ve görev başarısı ölçülür.
Kuantizasyon Farkındalıklı Eğitim
Quantization-Aware Training (QAT), kuantizasyonun etkilerini eğitim veya ince ayar sırasında dikkate alır.
Amaç, modelin düşük hassasiyetli kullanım koşullarına daha iyi uyum sağlamasıdır. Bu yaklaşım, eğitim sonrası dönüşümden farklı bir süreçtir ve ek eğitim maliyeti oluşturabilir.
Dolayısıyla kuantizasyon her zaman “eğitim bittikten sonra dosyayı küçültmek” şeklinde gerçekleşmez.
Ağırlık Kuantizasyonu ile Aktivasyon Kuantizasyonu Arasındaki Fark
Ağırlık kuantizasyonu, model parametrelerinin düşük bitli biçimde tutulmasına odaklanır.
Aktivasyon kuantizasyonu, hesaplama sırasında oluşan ara değerlerin temsilini de değiştirir.
Yalnızca ağırlıkların kuantize edildiği bir sistemde hesaplamaların bazı bölümleri daha yüksek hassasiyette yürütülebilir. Bu nedenle “model 4 bit, bütün işlemler de 4 bit yapılıyor” sonucuna varılamaz.
Ağırlık ve aktivasyon hassasiyetinin birlikte düşürülmesi farklı hız ve doğruluk dengeleri oluşturabilir. Sonuç, donanımın ilgili işlemleri nasıl desteklediğine bağlıdır.
FP16, BF16, INT8, INT4 ve FP8 Arasındaki Fark
Bu adlar aynı türde sayısal temsil değildir.
| Biçim | Temel özellik |
|---|---|
| FP32 | 32 bitlik kayan nokta temsili |
| FP16 | 16 bitlik kayan nokta temsili |
| BF16 | FP16’dan farklı hassasiyet ve değer aralığı dengesi sunan 16 bitlik biçim |
| INT8 | 8 bitlik tamsayı temsili |
| INT4 | 4 bitlik tamsayı temsili |
| FP8 | 8 bitlik kayan nokta biçimleri için kullanılan genel ad |
FP16 ve BF16, FP32’ye göre düşük hassasiyetli biçimlerdir. Bunları doğrudan bütün kuantizasyon algoritmalarıyla aynı kategoride değerlendirmek doğru değildir.
Ayrıca “tam hassasiyet” ifadesi bağlama göre değişebilir. FP16, FP32 ile aynı sayısal hassasiyeti sağlamaz.
GPTQ, AWQ, GGUF ve QLoRA Aynı Türde Teknolojiler mi?
Hayır. Bu isimler sıklıkla birlikte anılsa da farklı şeyleri ifade eder.
| İsim | Ne ifade eder? |
|---|---|
| GPTQ | Eğitim sonrası ağırlık kuantizasyonuna yönelik yöntem |
| AWQ | Aktivasyon bilgisinden yararlanan ağırlık kuantizasyonu yaklaşımı |
| SmoothQuant | Ağırlık ve aktivasyon kuantizasyonunu kolaylaştırmayı hedefleyen yöntem |
| GGUF | Kuantize veya farklı biçimlerdeki model verilerini taşıyabilen dosya biçimi |
| bitsandbytes | Düşük bitli işlemler ve ilgili araçlar sunan yazılım kütüphanesi |
| EXL2 | Belirli çalışma altyapılarıyla ilişkili kuantize model biçimi ve yaklaşımı |
| QLoRA | Kuantize temel model üzerinde LoRA adaptörlerini eğiten ince ayar yaklaşımı |
Özellikle GGUF tek başına bir kuantizasyon algoritması değildir. İçinde farklı kuantizasyon türlerine sahip model ağırlıkları bulunabilir.
QLoRA da yalnızca model dosyasını küçültmeye yönelik bir çıkarım yöntemi değildir. Düşük bitli temel model üzerinden ince ayar yapmayı hedefler.
Kuantizasyon Modeli Her Zaman Hızlandırır mı?
Hayır. Daha küçük ağırlıklar, bellekten taşınması gereken veri miktarını azaltabilir. Bu durum özellikle bellek bant genişliğinin sınırlayıcı olduğu iş yüklerinde avantaj sağlayabilir.
Ancak düşük bitli değerlerin hesaplamaya hazırlanması ek maliyet oluşturabilir. Donanım ve çalışma motoru ilgili biçimi verimli desteklemiyorsa beklenen hızlanma görülmeyebilir.
Model büyüklüğü, batch boyutu, bağlam uzunluğu ve kullanılan hesaplama çekirdekleri de sonucu etkiler.
Bu nedenle yalnızca dosya boyutuna bakarak hız tahmini yapmak yeterli değildir.
Model Kalitesi Nasıl Etkilenir?
Kuantizasyon, ağırlıkları yaklaşık biçimde temsil ettiği için modelin çıktıları değişebilir.
Bazı yapılandırmalarda fark küçük olabilir. Daha agresif düşük bitli dönüşümlerde ise belirli görevlerde başarım kaybı belirginleşebilir.
Kod üretimi, matematiksel muhakeme, uzun bağlam kullanımı ve yapılandırılmış çıktı gibi görevler ayrı değerlendirilmelidir. Bir modelin genel sohbet testinde iyi görünmesi, bütün görevlerde aynı kaliteyi koruduğunu göstermez.
Kalibrasyon verilerinin kullanım senaryosunu temsil etmesi de önemlidir. Yanlış değerlendirme verileri, gerçek kullanımda ortaya çıkacak sorunları gizleyebilir.
Nerelerde Kullanılabilir?
Yerel Büyük Dil Modelleri
Model ağırlıklarının daha az RAM veya VRAM kaplaması, uygun modellerin kişisel bilgisayarlarda çalıştırılmasını kolaylaştırabilir.
Ancak modelin belleğe sığması ile yeterince hızlı çalışması farklı konulardır.
Kurumsal Çıkarım Sistemleri
Sunucu başına daha fazla model veya daha fazla eş zamanlı istek barındırmak için değerlendirilebilir.
Gerçek kazanım, ağırlık belleğinin yanında KV Cache ve diğer kaynakların tüketimine de bağlıdır.
Mobil ve Edge AI
Kaynakları sınırlı cihazlarda uygun büyüklükteki modellerin çalıştırılmasına yardımcı olabilir.
Kuantizasyon, çok büyük bir modeli otomatik olarak bütün telefonlarda kullanılabilir hâle getirmez. Cihazın işlem gücü, belleği ve desteklediği çalışma altyapısı önemlidir.
Düşük Bellekli İnce Ayar
QLoRA gibi yaklaşımlarda kuantizasyon, temel ağırlıkların bellek yükünü azaltmak için kullanılır. Bu durum, bütün kuantizasyon yöntemlerinin eğitim için uygun olduğu anlamına gelmez.
Quantization ile Pruning Arasındaki Fark
Quantization, değerlerin temsil hassasiyetini azaltır.
Pruning, seçilen ağırlıkları sıfırlamayı veya modelin bazı yapısal bölümlerini kaldırmayı hedefler.
| Özellik | Quantization | Pruning |
|---|---|---|
| Temel işlem | Sayısal temsili değiştirmek | Ağırlıkları veya yapısal bileşenleri azaltmak |
| Parametre sayısı | Genellikle korunur | Yönteme göre azalabilir veya sıfırlanmış ağırlıklar oluşabilir |
| Hız kazanımı | Düşük bitli işlem desteğine bağlı | Seyreklik veya yapısal küçülme desteğine bağlı |
| Birlikte kullanım | Mümkündür | Mümkündür |
Pruning uygulanması da her zaman daha küçük dosya veya daha hızlı çalışma sağlamaz. Özellikle yalnızca ağırlıkların sıfırlanması durumunda, uygun seyrek veri biçimi ve hesaplama desteği gerekebilir.
Kuantize Model Seçerken Nelere Bakılmalı?
Yalnızca bit sayısını karşılaştırmak yeterli değildir. Aynı bit genişliğindeki iki kuantize model, farklı yöntemler ve ayarlar nedeniyle farklı sonuçlar verebilir.
Modelin temel sürümü, kuantizasyon türü, çalışma motoruyla uyumluluğu ve hedef görevlerdeki başarımı birlikte incelenmelidir.
Bellek kullanımı, ilk token gecikmesi, token üretim hızı ve çıktı kalitesi gerçek kullanım koşullarında ölçülmelidir.
Enerji tüketiminin azalması da otomatik değildir. Daha düşük veri taşıma maliyeti avantaj sağlayabilir; ancak toplam enerji, işlem süresine ve donanım kullanımına bağlıdır.
Sık Sorulan Sorular
Quantization nedir?
Modeldeki sayısal değerleri daha düşük bitli temsillerle ifade ederek bellek ve gerektiğinde hesaplama yükünü azaltan optimizasyon yaklaşımıdır.
Modelin parametre sayısını azaltır mı?
Genellikle hayır. Parametreleri silmek yerine daha düşük hassasiyetle temsil eder.
4 bit model her zaman daha hızlı mı?
Hayır. Hız, donanıma, çalışma motoruna ve iş yüküne bağlıdır.
GGUF bir kuantizasyon yöntemi mi?
Hayır. Farklı kuantizasyon türlerini ve model bilgilerini taşıyabilen bir dosya biçimidir.
Kuantizasyon için yeniden eğitim gerekir mi?
Her zaman gerekmez. Eğitim sonrası uygulanabilir; kuantizasyon farkındalıklı eğitim yaklaşımları da bulunur.
Modelin çıktıları değişebilir mi?
Evet. Düşük hassasiyet nedeniyle çıktılar ve görev başarısı değişebilir.
Belleğe sığan model rahatça çalışır mı?
Mutlaka değil. İşlem gücü, bellek bant genişliği, bağlam uzunluğu ve çalışma sırasında gereken ek bellek de değerlendirilmelidir.
Kaynaklar: NVIDIA — TensorRT Quantization teknik dokümantasyonu; Hugging Face — Quantization teknik dokümantasyonu; GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers; AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration; SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models; QLoRA: Efficient Finetuning of Quantized LLMs.
Editör Notu
Bu içerik, kamuya açık akademik çalışmalar ve teknik kaynaklarda açıklanan kuantizasyon yaklaşımlarını değerlendiren bir araştırma yazısıdır. İçerikte yer alan değerlendirmeler editoryal yorum niteliğindedir. Bellek kullanımı, çıkarım hızı, enerji tüketimi ve model kalitesi; temel modele, kuantizasyon yöntemine, donanıma, çalışma motoruna ve kullanım yapılandırmasına göre değişebilir. Verilen bellek hesapları, ek çalışma bileşenlerini içermeyen yaklaşık ağırlık boyutlarıdır.