Sözlük

Model Niceleme

Model niceleme ile derin öğrenme modellerini optimize edin. Boyutu küçültün, hızı artırın ve kaynakları sınırlı cihazlara verimli bir şekilde dağıtın.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Model niceleme, ağırlıklar ve aktivasyonlar gibi parametrelerini temsil etmek için kullanılan sayıların hassasiyetini azaltarak derin öğrenme modellerini optimize etmek için kullanılan bir tekniktir. Tipik olarak, derin öğrenme modelleri 32 bit kayan noktalı sayılar (FP32) kullanır. Niceleme, bunları 16 bit kayan nokta (FP16) veya 8 bit tamsayı (INT8) gibi daha düşük hassasiyetli türlere dönüştürür. Hassasiyetteki bu azalma daha küçük model boyutlarına, daha hızlı çıkarım sürelerine ve daha düşük bellek kullanımına yol açarak cep telefonları veya gömülü sistemler gibi sınırlı kaynaklara sahip cihazlarda dağıtım için özellikle faydalı hale getirir.

Model Nicelemenin Faydaları

Model niceleme, makine öğrenimi alanında onu değerli bir teknik haline getiren çeşitli avantajlar sunar. Birincil avantajlardan biri model boyutunun küçültülmesidir. Daha düşük hassasiyetli veri türleri kullanılarak modelin genel boyutu önemli ölçüde azaltılır. Bu, özellikle sınırlı depolama kapasitesine sahip cihazlara model yerleştirmek için kullanışlıdır. Ek olarak, nicelleştirilmiş modeller genellikle daha hızlı çıkarım sürelerine yol açar. Düşük hassasiyetli hesaplamaların gerçekleştirilmesi, özellikle de bu tür işlemleri yerel olarak destekleyen donanımlarda genellikle daha hızlıdır. Bu hızlanma, nesne algılama ve görüntü sınıflandırma gibi gerçek zamanlı uygulamalar için çok önemlidir. Bir diğer önemli fayda ise bellek bant genişliğindeki azalmadır. Daha küçük veri türleri, daha az verinin taşınması gerektiği anlamına gelir ve bu da bellek kısıtlı ortamlardaki darboğazları hafifletebilir.

Model Niceleme Türleri

Model niceleme için, her biri kendi ödünleşimlerine sahip çeşitli yaklaşımlar vardır. Eğitim sonrası niceleme (PTQ) en basit yöntemlerden biridir. Önceden eğitilmiş bir modelin ağırlıklarını ve aktivasyonlarını yeniden eğitime gerek kalmadan nicelleştirmeyi içerir. Eğitim sonrası niceleme ayrıca dinamik aralık niceleme, tamsayı niceleme ve float16 niceleme olarak kategorize edilebilir. Dinamik aralık niceleme, ağırlıkları tamsayılara niceler ancak aktivasyonları kayan nokta biçiminde tutar. Tam tamsayı niceleme hem ağırlıkları hem de aktivasyonları tamsayılara dönüştürürken, float16 niceleme 16 bit kayan noktalı sayılar kullanır. Diğer bir yöntem ise modelin niceleme göz önünde bulundurularak eğitildiği nicelemeye duyarlı eğitimdir (QAT). Niceleme farkındalı eğitim, eğitim sırasında nicelemenin etkilerini simüle ederek modelin uyum sağlamasına ve PTQ'ya kıyasla potansiyel olarak daha yüksek doğruluk elde etmesine olanak tanır.

Model Niceleme ve Diğer Optimizasyon Teknikleri

Model niceleme, en iyi sonuçları elde etmek için genellikle diğer optimizasyon teknikleriyle birlikte kullanılır. Model budama, sinir ağındaki daha az önemli bağlantıların kaldırılmasını, parametrelerin ve hesaplamaların sayısının azaltılmasını içeren bir başka popüler yöntemdir. Model niceleme parametrelerin hassasiyetini azaltırken, model budama miktarı azaltır. Her iki teknik daha da fazla verimlilik için birleştirilebilir. Karışık hassasiyetli eğitim, süreci hızlandırmak ve bellek kullanımını azaltmak için eğitim sırasında hem 32 bit hem de 16 bit kayan nokta sayılarını kullanan bir başka ilgili tekniktir. Bununla birlikte, modeli çıkarım için optimize etmek yerine öncelikle eğitim aşamasına odaklandığı için niceleme işleminden farklıdır.

Model Nicemlemenin Gerçek Dünya Uygulamaları

Model niceleme, özellikle hesaplama kaynaklarının sınırlı olduğu senaryolarda çok sayıda gerçek dünya uygulamasına sahiptir. Örneğin, Ultralytics YOLO modellerinin akıllı telefonlar veya dronlar gibi uç cihazlara yerleştirilmesi nicelleştirmeden büyük ölçüde faydalanabilir. Model boyutunu ve çıkarım süresini azaltarak, karmaşık bilgisayarla görme görevlerini bu cihazlarda gerçek zamanlı olarak çalıştırmak mümkün hale gelir. Bir başka örnek de, sürücüsüz araçların hızlı kararlar almak için sensör verilerinin hızlı bir şekilde işlenmesini gerektirdiği otomotiv endüstrisidir. Kuantize modeller, bu kritik uygulamalar için gerekli hız ve verimliliğin elde edilmesine yardımcı olabilir. Ayrıca, sağlık hizmetleri alanında, model nicelleştirme, gelişmiş teşhis araçlarının taşınabilir cihazlarda kullanılmasını sağlayarak sağlık hizmetlerini daha erişilebilir ve verimli hale getirebilir.

Model Niceleme için Araçlar ve Çerçeveler

Çeşitli araçlar ve çerçeveler model nicelemeyi destekleyerek geliştiricilerin bu tekniği uygulamasını kolaylaştırır. TensorFlow Lite, eğitim sonrası niceleme ve nicelemeye duyarlı eğitim için güçlü destek sağlayarak kullanıcıların TensorFlow modellerini optimize edilmiş biçimlere dönüştürmelerine olanak tanır. PyTorch Lite ayrıca dinamik ve statik niceleme dahil olmak üzere niceleme özellikleri sunarak kullanıcıların model boyutunu küçültmesine ve performansı artırmasına olanak tanır. ONNX Runtime, model nicelleştirmeyi destekleyen ve ONNX modellerinin çeşitli donanım platformlarında optimize edilmiş şekilde yürütülmesini sağlayan bir başka güçlü araçtır. Bu araçlar genellikle ayrıntılı belgeler ve örneklerle birlikte gelir ve kullanıcıların nicelleştirmeyi makine öğrenimi iş akışlarına etkili bir şekilde entegre etmelerine yardımcı olur.

Model Nicelemede Karşılaşılan Zorluklar

Model niceleme birçok avantaj sunarken, bazı zorlukları da beraberinde getirir. Ana endişelerden biri potansiyel doğruluk kaybıdır. Ağırlıkların ve aktivasyonların hassasiyetinin azaltılması, özellikle dikkatli yapılmazsa modelin performansında düşüşe yol açabilir. Niceleme farkındalı eğitim gibi teknikler bu sorunu hafifletmeye yardımcı olabilir, ancak eğitim aşamasında daha fazla çaba ve hesaplama kaynağı gerektirir. Bir diğer zorluk ise donanım desteğidir. Tüm donanım platformları düşük hassasiyetli hesaplamaları verimli bir şekilde desteklememektedir. Bununla birlikte, INT8 ve FP16 işlemleri için optimize edilmiş birçok yeni cihaz ve çip ile eğilim, nicelenmiş modeller için daha fazla desteğe doğru ilerlemektedir. Geliştiricilerin bu zorlukların farkında olması ve kendi özel ihtiyaç ve kısıtlamalarına göre uygun niceleme yöntemini seçmesi gerekir. Modelleri optimize etme hakkında daha fazla bilgi için hiperparametre ayarlama ve model dağıtım seçenekleri gibi teknikleri keşfedebilirsiniz.

Tümünü okuyun