Model Kuantalama
Model nicelemesi ile yapay zeka performansını optimize edin. Gerçek dünya dağıtımları için boyutu küçültün, hızı artırın ve enerji verimliliğini iyileştirin.
Model niceleme, ağırlıklarını ve aktivasyonlarını yüksek hassasiyetli kayan noktalı sayılardan (32-bit float veya FP32 gibi) 8-bit tamsayılar (INT8) gibi daha düşük hassasiyetli veri türlerine dönüştürerek bir sinir ağının (NN) bellek ayak izini ve hesaplama maliyetini azaltan güçlü bir model optimizasyonu tekniğidir. Bu işlem, modelleri önemli ölçüde daha küçük ve daha hızlı hale getirerek, mobil telefonlar ve gömülü sistemler gibi kaynak kısıtlı donanımlarda dağıtımlarını sağlar. Temel amaç, modelin tahmini doğruluğu üzerinde minimum etki ile özellikle çıkarım gecikmesini (inference latency) iyileştirmektir.
Model Nicemlemesi Nasıl Çalışır?
Niceleme süreci, eğitilmiş bir modeldeki kayan nokta değerlerinin sürekli aralığını daha küçük, ayrık bir tamsayı değerleri kümesine eşlemeyi içerir. Bu dönüştürme, her parametreyi depolamak için gereken bit sayısını azaltarak genel model boyutunu küçültür. Ayrıca, daha düşük hassasiyetli tamsayılar kullanılarak yapılan hesaplamalar, birçok modern CPU'da ve GPU'lar ve TPU'lar gibi özel yapay zeka hızlandırıcılarda çok daha hızlıdır; bu hızlandırıcılar, tamsayı aritmetiği için özel talimatlara sahiptir.
Niceleme uygulamak için iki temel yöntem vardır:
- Eğitim Sonrası Kuantalama (PTQ): Bu, halihazırda eğitilmiş bir modelin daha düşük hassasiyetli bir formata dönüştürüldüğü en basit yaklaşımdır. Ağırlıkların ve aktivasyonların dağılımını küçük bir kalibrasyon veri kümesi üzerinde analiz ederek, kayan noktadan tamsayıya optimal eşlemeyi belirlemeyi içeren hızlı bir işlemdir.
- Kuantizasyon Farkındalıklı Eğitim (QAT): Bu yöntemde, model kuantizasyonun etkilerini simüle ederken eğitilir veya ince ayar yapılır. Eğitim sürecinin ileri geçişi, kuantize çıkarımı taklit ederek modelin azaltılmış hassasiyete uyum sağlamasına olanak tanır. QAT, eğitim aşamasında potansiyel bilgi kaybını telafi etmeyi öğrendiği için genellikle PTQ'dan daha yüksek doğruluk sağlar. PyTorch ve TensorFlow gibi çerçeveler, QAT'yi uygulamak için güçlü araçlar sağlar.
Gerçek Dünya Uygulamaları
Niceleme, özellikle Edge AI cihazlarında, gerçek dünya senaryolarında gelişmiş bilgisayarlı görü modellerini çalıştırmak için kritik öneme sahiptir.
- Cihaz Üzerinde Görüntü Analizi: Birçok akıllı telefon uygulaması, gerçek zamanlı özellikler için nicelenmiş modeller kullanır. Örneğin, kamera aracılığıyla canlı nesne tespiti sağlayan bir uygulama (ürünleri veya simge yapıları tanımlama gibi), pil tüketmeden veya bulut bağlantısı gerektirmeden telefonun donanımında verimli bir şekilde çalışmak için Ultralytics YOLO11 gibi nicelenmiş bir modele güvenir.
- Otomotiv ve Robotik: Otonom araçlarda, yaya algılama ve şerit takibi modelleri son derece düşük gecikmeyle çalışmalıdır. Bu modellerin nicelleştirilmesi, NVIDIA Jetson veya Google Coral Edge TPU'ları gibi özel donanımlarda çalışmasına olanak tanır ve kararların saniyeler içinde alınmasını sağlayarak güvenlik için kritik öneme sahiptir.
Niceleme - Diğer Optimizasyon Teknikleri Karşılaştırması
Model niceleme genellikle diğer optimizasyon yöntemleriyle birlikte kullanılır, ancak yaklaşımı bakımından farklıdır.
- Model Budaması: Bu teknik, boyutunu ve karmaşıklığını azaltmak için sinir ağı içindeki gereksiz veya önemsiz bağlantıları (ağırlıkları) kaldırır. Budama, parçalarını kaldırarak ağı küçültürken, niceleme, sayısal duyarlılıklarını azaltarak kalan parçaları daha verimli hale getirir. İkisi genellikle maksimum optimizasyon için birleştirilir.
- Bilgi Damıtımı (Knowledge Distillation): Bu, daha küçük bir "öğrenci" modelini, daha büyük, önceden eğitilmiş bir "öğretmen" modelini taklit edecek şekilde eğitmeyi içerir. Amaç, öğretmenin bilgisini daha kompakt bir mimariye aktarmaktır. Bu, yeni bir model eğitmek yerine, mevcut bir modelin sayısal temsilini değiştiren nicelemeden farklıdır.
- Karışık Duyarlılık: Bu teknik, süreci hızlandırmak ve bellek kullanımını azaltmak için model eğitimi sırasında farklı sayısal duyarlılıkların (örn. FP16 ve FP32) bir kombinasyonunu kullanır. İlgili olmakla birlikte, öncelikle bir eğitim optimizasyonudur, oysa niceleme tipik olarak çıkarım için modeli optimize etmeye odaklanır.
Değerlendirmeler ve Destek
Kuantizasyon oldukça faydalı olmakla birlikte, model doğruluğunu potansiyel olarak etkileyebilir. Performans ödünleşiminin kabul edilebilir olduğundan emin olmak için, kuantizasyondan sonra ilgili performans metriklerini kullanarak kapsamlı bir değerlendirme yapmak önemlidir.
Ultralytics, dışa aktarmayı nicemlemeye uygun formatlara destekleyerek nicemlenmiş modellerin dağıtımını kolaylaştırır. Bunlar, geniş uyumluluk için ONNX, Intel donanımında optimizasyon için OpenVINO ve NVIDIA GPU'larında yüksek performans için TensorRT'yi içerir. Ultralytics HUB gibi platformlar, eğitimden optimize edilmiş modellerin dağıtımına kadar tüm yaşam döngüsünü yönetmeye yardımcı olabilir. Neural Magic gibi araçlarla entegrasyonlar da CPU'larda GPU sınıfı performans elde etmek için nicemleme ve budamadan yararlanır.