SON DAKİKA

Nvdia

“Kuantalama Farkındalığı ile Düşük Hassasiyetli Hesaplamalarda Performans Artışı Nasıl Sağlanır?”

Yapay zeka modellerinin eğitiminden sonra, bunları dağıtım için optimize etmek adına çeşitli sıkıştırma teknikleri kullanılabilir. Bunların en yaygını, eğitim sonrası kuantizasyon (PTQ) yöntemidir. PTQ, model ağırlıklarının daha düşük hassasiyetli veri tiplerinde yaklaşık olarak temsil edilmesini sağlamak için sayısal ölçekleme teknikleri uygular. Ancak iki başka strateji — kuantizasyon farkındalığı eğitimi (QAT) ve kuantizasyon farkındalığı distilasyonu (QAD) — PTQ’nin yetersiz kaldığı yerlerde başarı göstererek modeli daha düşük hassasiyetli yaşam için hazırlar (Aşağıdaki Şekil 1’e bakınız).

QAT ve QAD, kuantizasyon etkisini eğitim sürecinde simüle etmeyi hedefler. Bu sayede, daha yüksek hassasiyetteki model ağırlıkları ve aktivasyonlar, yeni formatın temsil edilebilir aralığına uyum sağlar. Bu adaptasyon, daha düşük hassasiyetlere geçerken daha akıcı bir geçiş sağlar ve çoğunlukla daha iyi bir doğruluk geri kazanımı sunar.

Flowchart showing the decision process for model quantization and deployment. It begins with a higher precision checkpoint. The model first undergoes Post-Training Quantization (PTQ). If accuracy criteria are met, the model is deployed. If not, Quantization Aware Training (QAT) or Quantization Aware Distillation (QAD) is applied. From there the model is either deployed if accuracy criteria are met, or iteratively refined.
Şekil 1. PTQ, QAT ve QAD için karar akışı; modellerin doğruluk kriterlerine göre dağıtım sürecini gösterir.

Bu blogda QAT ve QAD’yı inceleyecek ve nasıl uygulanacağını TensorRT Model Optimizasyonu ile göstereceğiz. Model Optimizasyonu, geliştiricilerin QAT/QAD için modelleri Hugging Face ve PyTorch ile uyumlu API’ler kullanarak kolayca hazırlamasını sağlar. Nihai model bu tekniklerle eğitildikten sonra, TensorRT-LLM ile verimli bir şekilde nasıl dışa aktarılacağı ve dağıtılacağına dair örnekler sunacağız.

Kuantizasyon Farkındalığı Eğitimi Nedir?

QAT, modelin düşük hassasiyetli hesaplamaları yönetmeyi öğrendiği ek bir eğitim aşamasıdır. PTQ, tam hassasiyetli eğitimden sonra bir kalibrasyon veri seti kullanarak modeli kuantize ederken, QAT, kuantize değerlerle ileri besleme süreci gerçekleştirilerek modeli eğitir. QAT iş akışı, PTQ iş akışına oldukça benzer, fakat kuantizasyon tarifinin uygulandığı orijinal modelden sonra ek bir eğitim aşaması eklenir (Aşağıdaki Şekil 2’ye bakınız).

Flowchart illustrating the Quantization Aware Training (QAT) workflow. On the left, an original precision model is combined with calibration data and a Model Optimizer quantization recipe to form a QAT-ready model. This model, along with a subset of original training data, enters the QAT training loop. Inside the loop, high-precision weights are updated and then used as “fake quantization” weights during the forward pass. Training loss is calculated, and the backward pass uses a straight-through estimator (STE) to propagate gradients. The loop repeats until training converges.
Şekil 2. Kuantizasyon Farkındalığı Eğitimi (QAT) iş akışı, bir modelin nasıl hazırlandığını, kuantize edildiğini ve düşük hassasiyetle eğitim sürecine adaptasyonunu gösterir.

QAT’nin amacı, yüksek doğruluk ile bir kuantize model elde etmektir. Bu nedenle, QAT, eğitim verimliliğini artırmayı hedefleyen kuantize eğitimden farklıdır. QAT, eğitim süresi boyunca en iyi sonuçları elde etmek için bazı yöntemleri kullanabilir, ancak bunlar daha doğru bir model sunmak amacıyla uygulanır.

QAT, genellikle ileri yönde ‘sahte kuantize’ ağırlıklar ve aktivasyonlar ile gerçekleştirilir. Bu yaklaşım, daha düşük hassasiyetin, daha yüksek bir veri tipi içinde temsil edilmesini sağlar ve bu nedenle yerel donanım desteği gerektirmez. Örneğin, NVFP4 için QAT, Hopper GPU’lar üzerinde simüle edilmiş kuantizasyon ile yapılabilir. Yüksek hassasiyetli büyüklükler içinde ardışık olarak işlenirken, kuantizasyon, bir geçiş operasyonu (straight-through estimator, STE) olarak modelleme ile entegre olur. Ayrıca, dışlayıcı gradyanları sıfırlamak gibi ek adımlar uygulamak mümkün olup, bu da BF16 veya FP16’dan daha fazla yük getirecektir.

Eğitim sırasında kayıp fonksiyonunu yuvarlama ve kırpma hatalarına maruz bırakarak, QAT, modelin bu hatalara uyum sağlamasını ve onlardan kurtulmasını sağlar. Pratikte, QAT maksimum eğitim performansını artırmayabilir, ancak yüksek doğruluk ile bir kuantize model elde etmek için istikrarlı ve pratik bir eğitim süreci sunar.

ext Infographic showing the Quantize Dequantize workflow across two adjacent neural network layers. A blue bar at the top labeled “Layer N minus 1 Activations” narrows through a gray funnel into Layer N. Inside Layer N, three stacked rows of small squares represent the weight path: the top row is green with decimal numbers and is labeled 16 bit Weights; the middle row is gray with small integers and is labeled Target Precision Weights, indicating quantized values; the bottom row is green with decimals and is labeled Dequantized 16 bit Weights. A bracket on the left marks the top two rows as Layer N Q DQ and the bottom row as Layer N Ops, indicating that matmul and similar operations use the dequantized values. On the right, callouts read 16 bit Weights, Quantization, Target Precision Weights, Dequantization, Dequantized 16 bit Weights, and Downstream Operations on Dequantized Weights. Below, a second blue bar labeled “Layer N Output Activations” narrows to a row of green squares labeled Layer N plus 1 Ops with a note “Layer N plus 1 Dequantized Weights.” The figure communicates that quantization error is introduced at quantize, dequantize restores datatype for compatibility, shapes are unchanged, and the next layer consumes dequantized activations together with its own dequantized weights.
Şekil 3. QAT/PTQ süresince ‘sahte kuantizasyon’ çalışmasını danmanın gösterimi. Katman N’nin ağırlıkları hedef hassasiyete kuantize ediliyor, hemen BF16/FP16’ya tekrar dekuantize ediliyor ve ardından işlemler için kullanılıyor. Sonuçta Katman N çıktı aktiviteleri Katman N+1’i besliyor ve her iki katman da dekuantize ağırlıklar kullanıyor.” class=”wp-image-105602″>
Şekil 3. QAT/PTQ sırasında ‘sahte kuantizasyon’ işlemini gösteren bir grafik. Katman N’nin ağırlıkları, hedef hassasiyete kuantize ediliyor, hemen BF16/FP16’ya dekuantize ediliyor ve ardından bu değerler işlemelerde kullanılıyor. Sonuçta, Katman N çıkışı’nın aktiviteleri Katman N+1’e aktarılıyor ve her iki katman da dekuantize ağırlıklarını kullanıyor.

QAT/QAD uygulamalarının bazıları sahte kuantizasyon gerektirmiyor, ancak bu yöntemler bu blogun kapsamı dışında kalmaktadır. Şu anda Model Optimizasyonunun uygulamasında, QAT’nin çıktısı, güncellenmiş ağırlıklarıyla birlikte orijinal hassasiyetinde yeni bir model ve toplantı için hedef formatına dönüştürme ile ilgili kritik meta veriler içerir:

  • Her katman aktivasyonu için ölçekleme faktörleri (dinamik aralıklar)
  • Kuantizasyon parametreleri, örneğin bit sayısı
  • Blok boyutu

Model Optimizasyonu ile QAT Uygulama Yöntemi

Model Optimizasyonu ile QAT uygulamak oldukça basittir. QAT, PTQ iş akışı ile aynı kuantizasyon formatlarını destekler ve FP8, NVFP4, MXFP4 gibi temel formatları içerir. Aşağıdaki kod örneğinde, NVFP4 ağırlık ve aktivasyon kuantizasyonunu seçtik.

import modelopt.torch.quantization as mtq

config = mtq.NVFP4_MLP_ONLY_CFG

# Kalibrasyon için ileri döngüyü tanımla
def forward_loop(model):
    for data in calib_set:
        model(data)

# Modeli kuantize et ve QAT için hazırla
model = mtq.quantize(model, config, forward_loop) 

Şu ana kadar, kod PTQ ile aynıdır. QAT uygulamak için bir eğitim döngüsü gerçekleştirmemiz gerekecek. Bu döngü, optimizer, zamanlayıcı, öğrenme oranı ve diğer standart ayarlanabilir parametreleri içerir.

# QAT ile standart ince ayar hattı
# Öğrenme oranı ve eğitim epochlarını ayarlayın
train(model, train_loader, optimizer, scheduler, ...)

İyi sonuçlar için, QAT’ın başlangıç eğitim epochlarının yaklaşık %10’u kadar sürdürülmesi önerilir. LLM’ler bağlamında, QAT ince ayarının, orijinal ön eğitim süresinin %1’inden daha az bir sürede yeterli olduğu gözlemlenmiştir. QAT hakkında daha derinlemesine bilgi için, Jupyter defteri kılavuzuna göz atmanızı öneririz.

Kuantizasyon Farkındalığı Distilasyonu Nedir?

QAD, PTQ’dan sonra doğruluğu geri kazanmaya odaklanırken, aynı zamanda bilgi distilasyonu gerçekleştirir. Standart bilgi distilasyonunun aksine, burada daha büyük bir “öğretmen” model, daha küçük bir “öğrenci” modeline yön vermektedir. Ancak QAD’da öğrenci, yalnızca ileri yönde sahte kuantizasyon kullanır. Öğretmen modeli, daha önce aynı veri üzerinde eğitim görmüş olan orijinal yüksek hassasiyetli modeldir. Distilasyon süreci, kuantize öğrencinin çıktılarının orijinal yüksek hassasiyetli öğretmenin çıktıları ile nasıl örtüştüğünü ölçmek için bir distilasyon kaybı kullanır (Aşağıdaki Şekil 4’e bakınız).

Flowchart of Quantization Aware Distillation (QAD). On the left, an original precision model is combined with calibration data and a quantization recipe to create a QAD-ready student model. This student model is paired with a higher precision teacher model and a subset of the original training data. In the QAD training loop, the student uses “fake quantization” weights in its forward pass, while the teacher performs a standard forward pass. Outputs are compared to calculate QAD loss, which combines distillation loss with standard training loss. Gradients flow back through the student model using a straight-through estimator (STE), and the student’s high-precision weights are updated to adapt to quantization conditions.
Şekil 4. QAD, öğretmen rehberliğinde düşük hassasiyetli bir öğrenci modelini eğitirken, distilasyon kaybını standart QAT güncellemeleriyle birleştirir.

Öğrencinin hesaplamaları distilasyon süreci boyunca sahte kuantize edilirken, öğretmen model tam hassasiyetle kalır. Kuantizasyondan kaynaklanan herhangi bir uyumsuzluk distilasyon kaybı ile doğrudan ortaya konulabilir ve bu nedenle düşük hassasiyetli ağırlıklar ve aktivasyonlar, öğretmenin davranışına uyum sağlamak için ayarlanır (Aşağıdaki Şekil 5’e bakınız). QAD sonrasında elde edilen model, PTQ ve QAT’la aynı inference performansı sergiler, ancak ek öğrenme sağlandığı için doğruluk tekrar kazanımı daha yüksek olabilir.

Diagram of the gradient and loss flow in Quantization Aware Distillation (QAD). On the left, a loss landscape curve illustrates gradient descent, with a note that high precision math is used for gradient computation and weight accumulation. In the center, a neural network represents the student model: original precision weights are updated under quantization conditions. A green arrow labeled “Straight Through Estimator” carries gradients backward. On the right, the student’s outputs are compared to the teacher’s outputs to calculate distillation loss, which is combined with standard QAT loss to form the overall QAD loss.
Şekil 5. QAD kaybı, öğretmenden elde edilen distilasyon kaybı ile QAT kaybını birleştirir ve STE aracılığıyla öğrenci ağırlıklarını kuantizasyon koşulları altında günceller.

Pratikte bu yöntem, FP32 bir modelin distilasyonunu yapmak ve sonrasında kuantize etmekten daha etkilidir. Çünkü QAD süreci, kuantizasyon hatasını hesaba katıp, modeli doğrudan buna göre ayarlamakta daha başarılıdır.

Model Optimizasyonu ile QAD Uygulama Yöntemi

TensorRT Model Optimizasyonu, bu tekniği uygulamak için deneme aşamasındaki API’ler sunmaktadır. İlk olarak, öğrenci modeline kuantizasyon tarifinin uygulanmasıyla başlayan bir süreç izlenir. Ardından, öğretmen modeli, eğitim argümanları ve distilasyon kayıp fonksiyonu gibi ögeleri belirleyen distilasyon yapılandırması tanımlanabilir. QAD API’leri, bu tekniğin uygulanmasını kolaylaştırmak için geliştirilmekte ve en son kod örnekleri ve belgeler için Model Optimizasyonu deposunun QAD kısmı incelenebilir.

QAT ve QAD’nın Etkisini Değerlendirme

Tüm modellerin QAT veya QAD’ya ihtiyacı yoktur; çünkü birçok model, PTQ ile %99.5’in üzerinde doğruluğunu korumaktadır. Ancak Llama Nemotron Süper gibi bazı durumlarda QAD’dan önemli ölçüde fayda sağlamak mümkündür. Aşağıdaki Şekil 6, bu modelin GPQA Diamond, LIVECODEBENCH, Math-500 ve AIME 2024 gibi benchmarklar üzerindeki temel BF16 puanlarını PTQ ve QAD sonrasında karşılaştırmaktadır. LIVECODEBENCH hariç, diğer tüm benchmarklarda QAD en az %4-22 doğruluk kazanıyor.

Bar chart comparing model evaluation accuracy across quantization techniques for the “Super Llama Nemotron Reasoning” model. The chart measures accuracy for four benchmarks: GPQA Diamond, LIVECODEBENCH, Math-500, and AIME 2024. For GPQA Diamond, BF16 baseline scores 0.64, PTQ 0.60, and QAD 0.64. LIVECODEBENCH shows equal accuracy of 0.28 for BF16, PTQ, QAT, and QAD. On Math-500, BF16 baseline achieves 0.96, PTQ 0.90, QAT 0.96, and QAD 0.96. For AIME 2024, BF16 baseline scores 0.58, PTQ 0.36, QAT 0.58, and QAD 0.58. Overall, QAD consistently matches BF16 accuracy while PTQ lags behind in some benchmarks.
Şekil 6. QAD, Super Llama Nemotron Reasoning’i kullanarak benchmarklarda temel doğruluğu korur; Math-500 ve AIME 2024 gibi görevlerde PTQ’ya göre üstünlük sağlamaktadır. QAT doğruluğu, bu model için ölçülmemiştir, ancak PTQ ile QAD arasında bir değer alması beklenir.

Gerçek uygulamada, QAT ve QAD’nın başarısı büyük ölçüde eğitim verisinin kalitesine, seçilen hiperparametrelere ve model mimarisine bağlıdır. 4-bit veri tiplerine geçerken, NVFP4 gibi formatlar daha ayrıntılı ve daha yüksek hassasiyetli ölçek faktörlerinden yararlanmaktadır.

Aşağıdaki Şekil 7, Llama-Nemotron Nano üzerindeki yaygın VLM benchmarklarında hem NVFP4 hem de MXFP4 için doğruluğu göstermektedir. AI2D, ChartQA ve DocVQA gibi benchmarklarda NVFP4, sürekli olarak %1’den daha az bir farkla daha yüksek puan almakta. Ancak bu küçük farklar, gerçek dünya görevlerinde gözle görülür etkilere yol açabilir. OpenVLM Hugging Face Liderliği‘ndeki bir benchmarkda, en iyi model ile daha düşük sıralardaki modeller arasındaki performans farkı genellikle birkaç puanla ifade ediliyor.

ar chart titled “Llama-Nemotron Nano VLM – Model Evaluation Accuracy MXFP4 and NVFP4 (Higher is Better).” The x axis is Model Evaluation with five tasks: AI2D, ChartQA, InfoVQA, OCRBench, and DocVQA. The y axis is Accuracy. Each task shows two bars: light gray labeled MXFP4 QAD and green labeled NVFP4 QAD. Numeric labels above bars read approximately: AI2D 98.58 and 98.70, ChartQA 98.84 and 98.96, InfoVQA 95.60 and 99.07, OCRBench 99.88 and 100.00, DocVQA 99.56 and 99.89. NVFP4 QAD bars are equal to or higher than MXFP4 QAD across all tasks, with the largest gap on InfoVQA.
Şekil 7. NVFP4 ve MXFP4 formatlarının orijinal hassasiyete göre karşılaştırması; görev başına QAD 4-bit hassasiyet modeli değerlendirme doğruluğu.

Görsel soru yanıtlama (VQA) görevlerinde, özellikle InfoVQA ve DocVQA arasında daha büyük bir fark gözlemlenmiştir. InfoVQA ve DocVQA, görseller hakkında sorular sorarken, çıkarım sırasında farklı noktaları ön plana çıkarır. InfoVQA, karmaşık grafik ve infografikleri içerdiğinden, modelin küçük detayları algılama yeteneğini kaybetme riski taşır. NVFP4, daha ince ölçekleme (daha küçük bloklar ve daha yüksek hassasiyet ölçek faktörleri) kullandığından, bu küçük sinyalleri ve nadir dışlamaları daha iyi korur; sonuçta, modelin görsel ve metin bileşenleri arasındaki uyum daha iyi bir düzeyde sürdürülür (kırpma hatası azaltılır).

Öte yandan, DocVQA çoğunlukla temiz ve yapılandırılmış belgelerden oluşur; doğru alan bulunduğunda cevap hemen anlaşılır. Dolayısıyla, her iki format da zaten tavan düzeyinde olduğundan, fark küçük kalmaya devam eder.

Özet

Kuantizasyon farkındalığı eğitimi (QAT) ve kuantizasyon farkındalığı distilasyonu (QAD), PTQ’nin faydalarını uzatarak modellere düşük hassasiyetli ortamlara doğrudan adaptasyon sağlarken, basit kalibrasyonun yetersiz kaldığı durumlarda doğruluk geri kazanımına yardımcı olur. Math-500 ve AIME 2024 gibi benchmarklarda gösterildiği gibi, bu teknikler düşük hassasiyetle yapılan çıkarsama ile tam hassasiyet altı arasında kalan farkı kapatabilir. Sonuç olarak geliştiricilere, FP4 yürütmesinin verimliliği ile yüksek hassasiyet eğitiminin sağlamlığının birleşimini sunar. Eğitim veri setinin ve hiperparametrelerin dikkatle seçilmesi gerektiği unutulmamalıdır, çünkü bu unsurlar bu tekniklerin sonuçlarını önemli ölçüde etkileyebilir.

TensorRT Model Optimizasyonu ile, bu ileri düzey iş akışları, tanıdık PyTorch ve Hugging Face API’leri aracılığıyla erişilebilir hale geliyor. İster PTQ’nun hızını, ister QAT’nin dayanıklılığını, isterseniz de QAD’nın doğruluk kazançlarını arıyor olun, NVIDIA GPU’lar üzerinde modelleri sıkıştırmak, ince ayar yapmak ve dağıtmak için kapsamlı bir araç setine sahip olursunuz. Sonuç olarak, daha hızlı, daha küçük ve daha doğru yapay zeka — üretime hazır.

Daha fazla keşfetmek için Jupyter defteri eğitimlerine göz atın.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri