Model Niceleme
Model niceleme ile yapay zeka performansını optimize edin. Gerçek dünya dağıtımları için boyutu azaltı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 optimizasyon tekniğidir. Bu işlem, modelleri önemli ölçüde daha küçük ve daha hızlı hale getirerek cep telefonları ve gömülü sistemler gibi kaynak kısıtlı donanımlarda kullanılmalarını sağlar. Birincil hedef, modelin tahmin doğruluğu üzerinde minimum etkiyle performansı, özellikle de çıkarım gecikmesini iyileştirmektir.
Model Niceleme Nasıl Çalışır?
Niceleme işlemi, eğitilmiş bir modeldeki sürekli kayan nokta değerleri aralığının daha küçük, ayrık bir tamsayı değerleri kümesine eşlenmesini içerir. Bu dönüşüm, her bir parametreyi saklamak için gereken bit sayısını azaltarak genel model boyutunu küçültür. Ayrıca, düşük hassasiyetli tamsayılar kullanılarak yapılan hesaplamalar, birçok modern CPU' da ve tamsayı aritmetiği için özel talimatlara sahip GPU 'lar ve TPU'lar gibi özel yapay zeka hızlandırıcılarında çok daha hızlıdır.
Niceleme uygulamak için iki temel yöntem vardır:
- Eğitim Sonrası Niceleme (PTQ): Bu, önceden eğitilmiş bir modelin daha düşük hassasiyetli bir formata dönüştürüldüğü en basit yaklaşımdır. Float'tan integer'a en uygun eşlemeyi belirlemek için küçük bir kalibrasyon veri kümesi üzerinde ağırlıkların ve aktivasyonların dağılımını analiz etmeyi içeren hızlı bir süreçtir.
- Kuantizasyona Duyarlı 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 genellikle PTQ'dan daha yüksek doğruluk sağlar çünkü model eğitim aşamasında potansiyel bilgi kaybını telafi etmeyi öğrenir. PyTorch ve TensorFlow gibi çerçeveler, QAT'yi uygulamak için sağlam araçlar sağlar.
Gerçek Dünya Uygulamaları
Kuantizasyon, gerçek dünya senaryolarında, özellikle de Edge AI cihazlarında sofistike bilgisayarla görme 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 nicelleştirilmiş modeller kullanır. Örneğin, ürünleri veya önemli noktaları tanımlamak gibi kamera aracılığıyla canlı nesne algılama sağlayan bir uygulama, pili tüketmeden veya bulut bağlantısı gerektirmeden telefonun donanımında verimli bir şekilde çalışmak için Ultralytics YOLO11 gibi nicelleştirilmiş bir modele dayanır.
- Otomotiv ve Robotik: Otonom araçlarda, yaya algılama ve şerit tutma modelleri son derece düşük gecikme süreleriyle ç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ıyarak, güvenlik için çok önemli olan kararların saniyenin kesirlerinde alınmasını sağlar.
Niceleme ve Diğer Optimizasyon Teknikleri
Model niceleme genellikle diğer optimizasyon yöntemleriyle birlikte kullanılır ancak yaklaşımı farklıdır.
- Model Budama: 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, ağın bazı kısımlarını kaldırarak ağı küçültürken, niceleme kalan kısımların sayısal hassasiyetini azaltarak daha verimli hale getirir. Bu ikisi genellikle maksimum optimizasyon için birleştirilir.
- Bilgi Damıtma: Bu, daha büyük, önceden eğitilmiş bir "öğretmen" modelini taklit etmek için daha küçük bir "öğrenci" modelinin eğitilmesini 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 niceleme işleminden farklıdır.
- Karışık Hassasiyet: Bu teknik, süreci hızlandırmak ve bellek kullanımını azaltmak için model eğitimi sırasında farklı sayısal hassasiyetlerin (ör. FP16 ve FP32) bir kombinasyonunu kullanır. İlişkili olmakla birlikte, öncelikle bir eğitim optimizasyonudur, oysa niceleme tipik olarak modelin çıkarım için optimize edilmesine odaklanır.
Dikkat Edilecek Hususlar ve Destek
Oldukça faydalı olsa da niceleme, model doğruluğunu potansiyel olarak etkileyebilir. Performans dengesinin kabul edilebilir olduğundan emin olmak için niceleme sonrasında ilgili performans metriklerini kullanarak kapsamlı bir değerlendirme yapmak önemlidir.
Ultralytics, niceleme dostu formatlara aktarımı destekleyerek nicelenmiş modellerin dağıtımını kolaylaştırır. Bunlar arasında geniş uyumluluk için ONNX, Intel donanımında optimizasyon için OpenVINO ve NVIDIA GPU'larda yüksek performans için TensorRT bulunur. Ultralytics HUB gibi platformlar, eğitimden optimize edilmiş modellerin dağıtımına kadar tüm yaşam döngüsünün yönetilmesine yardımcı olabilir. Neural Magic gibi araçlarla entegrasyonlar, CPU'larda GPU sınıfı performans elde etmek için niceleme ve budama işlemlerinden de yararlanır.