Sözlük

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.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Model niceleme, modellerin hesaplama ve bellek maliyetlerini azaltmak için derin öğrenmede (DL) kullanılan önemli bir model optimizasyon tekniğidir. Bunu, model parametrelerinin(ağırlıklar ve aktivasyonlar) sayısal hassasiyetini, tipik olarak 32 bit kayan nokta sayıları (FP32) gibi yüksek hassasiyetli gösterimlerden 16 bit kayan nokta (FP16), 8 bit tamsayılar (INT8) veya hatta daha düşük bit gösterimleri gibi daha düşük hassasiyetli formatlara dönüştürerek gerçekleştirir. Bu işlem, makine öğrenimi model lerini daha küçük, daha hızlı ve daha enerji verimli hale getirir; bu da özellikle karmaşık modellerin mobil cihazlar veya uç yapay zeka sistemleri gibi kaynak kısıtlı ortamlara dağıtılması için hayati önem taşır.

Model Niceleme Nasıl Çalışır?

Özünde model niceleme, yüksek hassasiyetli tensörlerde (FP32'deki ağırlıklar ve aktivasyonlar gibi) bulunan değer aralığının daha düşük hassasiyetli veri türleri (INT8 gibi) tarafından temsil edilebilen daha küçük bir aralığa eşlenmesini içerir. Düşük hassasiyetli sayılar (özellikle tam sayılar) üzerindeki işlemler GPU'lar, CPU'lar ve TPU 'lar veya NPU'lar gibi özel hızlandırıcılar gibi modern donanımlarda genellikle daha hızlı ve enerji açısından daha verimli olduğundan, bu dönüşüm modeli depolamak için gereken belleği ve çıkarım için gereken hesaplama kaynaklarını önemli ölçüde azaltır. Amaç, modelin tahmin performansı üzerinde minimum etkiyle bu verimlilik kazanımlarını elde etmektir.

Model Nicelemenin Faydaları

Derin öğrenme modellerine niceleme uygulamak birkaç önemli avantaj sunar:

  • Azaltılmış Model Boyutu: Daha düşük hassasiyetli veri türleri daha az depolama alanı gerektirir, bu da özellikle cihaz üzerinde dağıtım için modellerin depolanmasını ve dağıtılmasını kolaylaştırır.
  • Daha Yüksek Çıkarım Hızı: Düşük hassasiyetli sayılarla (özellikle tam sayılarla) yapılan hesaplamalar uyumlu donanımlarda daha hızlı yürütülür ve çıkarım gecikmesi azalır. Bu, gerçek zamanlı uygulamalar için kritik öneme sahiptir.
  • Geliştirilmiş Enerji Verimliliği: Daha hızlı hesaplamalar ve daha az bellek erişimi daha düşük güç tüketimine yol açarak mobil ve uç cihazlarda pil ömrünü uzatır.
  • Geliştirilmiş Donanım Uyumluluğu: Birçok özel donanım hızlandırıcısı(Edge TPU'lar, ARM işlemcilerdeki NPU'lar) düşük hassasiyetli tamsayı aritmetiği için optimize edilmiştir ve nicelleştirilmiş modeller için önemli performans artışları sağlar.

Kuantizasyon Teknikleri

Model niceleme için iki temel yaklaşım vardır:

  • Eğitim Sonrası Niceleme (PTQ): Bu yöntem, standart kayan nokta hassasiyeti kullanılarak zaten eğitilmiş olan bir modelin nicelleştirilmesini içerir. Yeniden eğitim veya orijinal eğitim verilerine erişim gerektirmediğinden uygulaması daha kolaydır. Ancak bazen model doğruluğunda gözle görülür bir düşüşe yol açabilir. TensorFlow Model Optimizasyon Araç Seti gibi araçlar PTQ özellikleri sağlar.
  • Kuantizasyona Duyarlı Eğitim (QAT): Bu teknik, model eğitim süreci sırasında kuantizasyonun etkilerini simüle eder. QAT, modeli yaklaşan hassasiyet azaltımının "farkında" hale getirerek, özellikle kuantizasyona duyarlı modeller için PTQ'ya kıyasla genellikle daha iyi doğruluk elde eder, ancak eğitim iş akışında değişiklikler ve eğitim verilerine erişim gerektirir. PyTorch QAT desteği sunmaktadır.

Gerçek Dünya Uygulamaları

Model niceleme, çeşitli alanlarda yaygın olarak kullanılmaktadır:

  • Mobil Görme Uygulamaları: Artırılmış gerçeklik, fotoğraf düzenleme veya görsel arama gibi uygulamalar için doğrudan akıllı telefonlarda gerçek zamanlı nesne algılama (örneğin, nicelleştirilmiş bir Ultralytics YOLO modeli kullanarak) veya görüntü segmentasyonu gibi karmaşık bilgisayarla görme görevlerinin etkinleştirilmesi. Kuantizasyon, bu zorlu modelleri mobil donanımda uygulanabilir hale getirir.
  • Otonom Araçlar ve Robotik: Güvenlik ve operasyonel dayanıklılık için düşük gecikme süresi ve güç verimliliğinin çok önemli olduğu otomobillerde veya dronlarda algılama modellerinin (yayaları, araçları, engelleri tespit etmek için) konuşlandırılması. Kuantize modeller, bu katı gerçek zamanlı işleme gereksinimlerini karşılamaya yardımcı olur.
  • Uç Yapay Zeka Cihazları: Düşük güçlü mikro denetleyiciler veya özel uç işlemcilerde endüstriyel hata tespiti, akıllı ev otomasyonu veya giyilebilir sağlık izleme gibi görevler için yapay zeka modellerinin çalıştırılması.

Değerlendirmeler ve İlgili Kavramlar

Oldukça faydalı olsa da niceleme, model doğruluğunu potansiyel olarak etkileyebilir. Niceleme sonrasında ilgili performans ölçütleri kullanılarak dikkatli bir değerlendirme yapılması şarttır. Niceleme dostu model mimarileri kullanmak (örneğin, YOLOv8 'ta görüldüğü gibi belirli aktivasyon işlevlerini değiştirmek) gibi teknikler, nicelenmiş YOLOv8 modellerinin dağıtımında tartışıldığı gibi doğruluk bozulmasını azaltmaya yardımcı olabilir.

Model nicelleştirme, çeşitli model optimizasyon tekniklerinden biridir. Diğerleri şunları içerir:

  • Model Budama: Sinir ağındaki gereksiz veya önemsiz bağlantıların (ağırlıkların) kaldırılması.
  • Karışık Hassasiyet: Eğitim veya çıkarım sırasında farklı sayısal hassasiyetlerin (ör. FP16 ve FP32) bir kombinasyonunun kullanılması.
  • Bilgi Damıtma: Daha büyük, önceden eğitilmiş bir "öğretmen" modelinin davranışını taklit etmek için daha küçük bir "öğrenci" modelinin eğitilmesi.

Ultralytics , modellerin nicelleştirmeyi ve dağıtımı kolaylaştıran çeşitli formatlara aktarılmasını destekler ONNX, OpenVINO ( Intel donanımı için optimize edilmiştir), TensorRT ( NVIDIA GPU'lar için), CoreML ( Apple cihazları için) ve TFLite, farklı donanım platformlarında verimli model dağıtımı sağlar. Ultralytics HUB gibi araçları kullanarak nicelleştirilmiş sürümler de dahil olmak üzere modellerinizi yönetebilir ve dağıtabilirsiniz. Aşağıdaki gibi entegrasyonlar Neural MagicCPU optimizasyonu için nicelemeden de yararlanır.

Tümünü okuyun