Kuantizasyon: Model Performansını Artırma Araçları
Kuantizasyon, geliştiricilerin ince ayarlama yapmadan, düşük maliyetle çıkarım performansını artırmalarını sağlayan temel bir araçtır. Bu teknik, model hassasiyetini kontrollü bir şekilde düşürerek, önemli ölçüde gecikme, işlem hacmi ve bellek verimliliği kazancı sağlar.
Modern Modellerin Kuantizasyonu
Günümüzde birçok model FP16 veya BF16 ile eğitilirken, bazıları, örneğin DeepSeek-R, doğrudan FP8 kullanmaktadır. FP4 gibi daha düşük hassasiyet formatlarına kuantize edilmek, önemli verimlilik kazanımlarını ve performans artışını ortaya çıkarır. Bunun yanı sıra, açık kaynaklı tekniklerle desteklenen bu sürecin etkisi, giderek büyüyen bir ekosistem tarafından kolaylaştırılmaktadır.
TeslaRT Model Optimizatörü ile Kuantizasyon
NVIDIATensorRT Model Optimizatörü, post-antrenman kuantizasyonu (PTQ) uygulamaları için esnek ve modüler bir yaklaşım sunar. Bu çerçeve, NVIDIA Blackwell GPU’lar için optimize edilmiş NVFP4 dahil olmak üzere geniş bir format yelpazesini destekler ve daha yüksek kuantizasyon sonuçları için SmoothQuant, aktivasyon hedefli ağırlık kuantizasyonu (AWQ) ve AutoQuantize gibi kalibrasyon tekniklerini entegre eder.
Model Optimizatörü PTQ, yerel PyTorch, Hugging Face, NeMo ve Megatron-LM kontrol noktalarını destekleyerek NVIDIA TensorRT-LLM, vLLM ve SGLang gibi çıkarım çerçeveleriyle kolay entegrasyon sağlar. Bu yazı, PTQ tekniklerini detaylandıracak ve Model Optimizatörü PTQ’yu kullanarak AI modellerini doğru bir şekilde sıkıştırmayı anlatacaktır.
Kuantizasyona Giriş
Sinir ağları, farklı görevleri yerine getirmek için katmanlara ayrılmıştır; her bir katman, model eğitim süreciyle geliştirilen değerler içerir. Bu değerler, katmanlar arasında ağırlıklar, aktivasyonlar ve biaslar şeklinde depolanır. Uygulamada, modeller genellikle tam hassasiyet (TF32/FP32), yarım hassasiyet (BF16/FP16), karışık hassasiyetler ve son zamanlarda FP8 kullanılarak eğitilmektedir. Eğitimin hassasiyeti, modellerin yerel hassasiyetini belirler ve bu, modelle çıkarım yaparken hesaplama karmaşıklığı ve bellek gereksinimlerini doğrudan etkiler.
Kuantizasyonun Avantajları
Kuantizasyon, eğitim sırasında genellikle gerekli olan aşırı hassasiyeti daha hızlı çıkarım ve daha küçük bir bellek ayak izi karşılığında değiştirmemize olanak tanır. Performans kazançları, ağın ne kadarının kuantize edildiği, yerel ile kuantize edilmiş hassasiyet arasındaki fark ve kullandığımız algoritmanın türüne bağlıdır. Tablo 1, en popüler veri türleri için temsil edilebilir aralıkların özetini içermektedir.
Veri Türü | Toplam Bit | Temsil Edilebilir Aralık |
FP32 | 32 | ±3.4 × 10³⁸ |
FP16 | 16 | ±65,504 |
BF16 | 16 | ±3.4 × 10³⁸ |
FP8 | 8 | ±448 |
FP4 | 4 | -6 ile +6 |
INT8 | 8 | -128 ile +127 |
INT4 | 4 | -8 ile +7 |
TeslaRT Model Optimizatörü ile PTQ Uygulamaları
TensorRT Model Optimizatörü, model çıkış performansını artırmaya yönelik gelişmiş model optimizasyon tekniklerinin bir arşividir. Modeller optimize edildikten sonra Dynamo, SGLang, TensorRT-LLM ve vLLM gibi çıkarım çerçevelerinde kullanılabilir. Aşağıda Model Optimizatörü tarafından desteklenen farklı kuantizasyon formatları ve kısa bir açıklaması yer almaktadır.
Kuantizasyon Formatı | Açıklama |
Per-Tensor FP8 | Varsayılan ölçek kodlaması kullanan standart tam model FP8 kuantizasyonu |
FP8 Blok-İçin Ağırlık Sadece | Küçük bloklar arasında paylaşılan ölçek ile 2D blok-işi, ağırlık-sadece kuantizasyonu. |
FP8 Kanal ve Token Başına | Kanal başına miktarlar, dinamik token başına aktivasyon kuantizasyonu. |
nvfp4 | Ağırlıklar ve aktivasyonlar için varsayılan FP4 kuantizasyonu. |
INT8 SmoothQuant | SmoothQuant kalibrasyonu ile 8-bit kuantizasyon. Kanal başına ağırlıklar, tensor başına aktivasyonlar. |
WA416 (INT4 Ağırlığı Yalnız) | AWQ kalibrasyonu ile 4-bit yalnızca ağırlık kuantizasyonu. Grup başına blok başına ağırlıklar, FP16 aktivasyonları. |
W4A8 (INT4 Ağırlık, FP8 Aktivasyonları) | AWQ ile 4-bit ağırlık, FP8 aktivasyon kuantizasyonu. Blok başına ağırlıklar, tensor başına FP8 aktivasyonları. |
fp8 (KV) | Dikkat katmanlarında anahtar-değer önbelleklerinin FP8 kuantizasyonunu etkinleştirir |
nvfp4 (KV) | Dikkat katmanlarında anahtar-değer önbellekleri için FP4 kuantizasyonu. |
Nvfp4_affine (KV) | Affine ölçek kullanarak anahtar-değer önbellek kuantizasyonu. |
PTQ İçin Gelişmiş Kalibrasyon Teknikleri
Kalibrasyon, temsili girdi verilerini analiz ederek optimal ölçek faktörlerini belirler. Max kalibrasyon gibi basit yaklaşımlar, tensor üzerindeki maksimum mutlak değeri kullanarak sınırlı dinamik aralıklara yol açabilir. SmoothQuant, aktivasyon pürüzlülüğünü ağırlık ölçeklendirmesi ile dengelemekte, AWQ ise, eğitim sonrası ağırlık gruplarını ayarlayarak çıktı dağılımını korumaktadır. Kalibrasyon yönteminin, kuantize edilmiş modelin nihai doğruluğu üzerinde önemli bir etkisi vardır ve bu nedenle iş yükünün duyarlılığı ve gecikme gereksinimleri ile uyumlu olmalıdır.
Kalibrasyon teknikleri hem floating point hem de integer formatlara uygulanabilir. Uygulamada INT8 ve INT4 gibi tamsayı veri tipleri için kalibrasyon genellikle gereklidir ve bu, kuantizasyondan sonra kabul edilebilir bir doğruluğu kurtarmak amacıyla yapılır.
Model Optimizatörü API’si, kalibrasyon işlemlerini kolaylaştırarak kullanıcıların sürecin detaylarını kontrol etmelerine olanak tanır. Ayrıca, kalibrasyon süreci için optimize edilmiş veriler kullanılarak modelin duyarlılığı artırılabilir.
Model Optimizatörü AutoQuantize
Model Optimizatörü, per-katman kuantizasyon algoritması olan AutoQuantize fonksiyonunu sunmaktadır. Bu fonksiyon, her katmanın kuantizasyona karşı toleransını derecelendirmek için bir gradyan bazlı hassasiyet puanı kullanır. Böylece, optimal kuantizasyon formatını seçme veya kuantizasyondan tamamen kaçınma imkanı elde edilir. Kullanıcı belirli kısıtlamalar tanımlayarak, modelin doğruluğunu koruma ve işlem hızını artırma arasında bir denge kurabilir.
AutoQuantize, kullanıcıların her katman için uygun kuantizasyon yapılandırmalarını belirlemelerine olanak tanır ve bu yapılandırmalar istenen performansa ulaşmak için optimize edilir.
NvFP4 ile Kuantizasyon Sonuçları
NvFP4, Model Optimizatörü PTQ ile sunulan en yüksek sıkıştırma seviyesini sağlar ve bu sıkıştırma, model doğru sonuçları oldukça iyi koruyarak işlem verimliliğini artırır. Sonuç olarak, NVFP4 kuantizasyonu, model doğruluğunun neredeyse tamamını korurken, üç kat hızlandırma gibi önemli iyileştirmeler sağlar. Şekil 8, NVFP4’ten elde edilen doğruluğa ve işlem hacmi üzerindeki etkilerini göstermektedir.
Model sonucunda, daha hızlı ve daha verimli AI uygulamaları için kaynakların optimum düzeyde kullanılması sağlanır ve kullanıcı deneyimi artırılır.
PTQ Optimize Edilmiş Model Biçimlendirmesi
Başarılı bir şekilde uygulandıktan sonra, seçilen ve kuantize edilen model, Hugging Face kontrol noktalarına aktarılabilir. Bu, farklı çıkarım motorlarında kolayca paylaşım, yükleme ve çalıştırma imkanı sunar. Aşağıda, modelin bir kuantize Hugging Face kontrol noktasına nasıl aktarılacağı hakkında bir örnek verilmiştir:
from modelopt.torch.export import export_hf_checkpoint
export_hf_checkpoint(model, export_dir=export_path)
Kuantize edilmiş modelleri hemen denemek isteyenler için Hugging Face Hub üzerinde önceden kuantize edilmiş kontrol noktaları mevcuttur. NVIDIA Model Optimizatörü koleksiyonu, Llama 3, Llama 4 ve DeepSeek için kullanıma hazır kontrol noktalarını içermektedir.
Özet
Kuantizasyon, model çıkarımını hızlandırmanın en etkili yollarından biridir; gecikme, işlem hacmi ve bellek verimliliği sağlayarak yeniden eğitim ihtiyacını ortadan kaldırır. Günümüzde büyük modeller genellikle FP16 veya BF16 formatlarında çalışırken (bazı modeller, örneğin DeepSeek-R, FP8 kullanmaktadır), FP4 gibi formatlara geçiş, verimlilik seviyesinde önemli kazanımlar sunmaktadır. NVIDIA TensorRT Model Optimizatörü, NVFP4 gibi son teknoloji formatları desteklerken, gelişmiş kalibrasyon stratejileri ve uyumlu uygulama yöntemlerini sunar; bu sayede geliştiricilere daha hızlı, daha hafif ve ölçeklenebilir yapay zeka dağıtımları gerçekleştirme imkanı tanır. Bu avantajları görmek için Jupyter defterleriını> keşfedebilir veya bu güncellemeleri kontrol edebilirsiniz.