YOLO Vision 2025'i kaçırmayın!
25 Eylül 2025
10:00 — 18:00 BST
Hibrit etkinlik
Yolo Vision 2024

Model optimizasyonu nedir? Hızlı bir rehber

Abirami Vina

5 dakikalık okuma

15 Kasım 2024

Hiperparametre ayarlama, model budama ve model niceleme gibi model optimizasyon tekniklerinin bilgisayarlı görü modellerinin daha verimli çalışmasına nasıl yardımcı olabileceğini öğrenin.

Model optimizasyonu, makine öğrenimi modellerinin verimliliğini ve performansını artırmayı amaçlayan bir süreçtir. Bir modelin yapısını ve işlevini iyileştirerek optimizasyon, modellerin minimum hesaplama kaynaklarıyla ve azaltılmış eğitim ve değerlendirme süresiyle daha iyi sonuçlar vermesini mümkün kılar.

Bu süreç, özellikle bilgisayarlı görü gibi alanlarda önemlidir; çünkü modeller, karmaşık görüntüleri analiz etmek için genellikle önemli kaynaklar gerektirir. Mobil cihazlar veya uç sistemler gibi kaynak kısıtlı ortamlarda, optimize edilmiş modeller, doğru olmaya devam ederken sınırlı kaynaklarla iyi çalışabilir.

Model optimizasyonunu sağlamak için hiperparametre ayarlama, model budama, model nicemleme ve karışık duyarlık dahil olmak üzere sıklıkla birçok teknik kullanılır. Bu makalede, bu teknikleri ve bilgisayar görüsü uygulamalarına getirdiği faydaları keşfedeceğiz. Haydi başlayalım!

Model optimizasyonunu anlama

Bilgisayarlı görü modelleri genellikle görüntülerdeki karmaşık desenleri tanımak için harika olan derin katmanlara ve karmaşık yapılara sahiptir, ancak işlem gücü açısından da oldukça talepkar olabilirler. Bu modeller dağıtıldığında, cep telefonları veya uç cihazları gibi sınırlı donanıma sahip cihazlarda belirli zorluklarla veya sınırlamalarla karşılaşabilirler. 

Bu cihazlardaki sınırlı işlem gücü, bellek ve enerji, modellerin ayak uydurmakta zorlanması nedeniyle performansta gözle görülür düşüşlere yol açabilir. Model optimizasyon teknikleri, bu endişeleri gidermede kilit rol oynar. Modeli basitleştirmeye, hesaplama ihtiyaçlarını azaltmaya ve sınırlı kaynaklarla bile etkili bir şekilde çalışmasını sağlamaya yardımcı olurlar. Model optimizasyonu, model mimarisini basitleştirerek, hesaplamaların kesinliğini azaltarak veya modeli daha hafif ve hızlı hale getirmek için gereksiz bileşenleri kaldırarak yapılabilir.

__wf_reserved_inherit
Şekil 1. Modellerinizi optimize etme nedenleri. Yazarın görseli.

İşte en yaygın model optimizasyon tekniklerinden bazıları; bunları sonraki bölümlerde daha ayrıntılı olarak inceleyeceğiz:

  • Hiperparametre ayarlama: Model performansını artırmak için öğrenme oranı ve batch boyutu gibi hiperparametrelerin sistematik olarak ayarlanmasını içerir.
  • Model budama (Model pruning): Bu teknik, sinir ağından gereksiz ağırlıkları ve bağlantıları kaldırarak karmaşıklığını ve hesaplama maliyetini azaltır.
  • Model niceleme (Model quantization): Niceleme, modelin ağırlıklarının ve aktivasyonlarının duyarlılığını, tipik olarak 32 bitten 16 bite veya 8 bite düşürmeyi içerir ve bu da bellek ayak izini ve hesaplama gereksinimlerini önemli ölçüde azaltır.
  • Hassasiyet ayarlamaları: Karma hassasiyet eğitimi olarak da bilinir; modelin farklı bölümleri için farklı hassasiyet formatları kullanmayı ve doğruluktan ödün vermeden kaynak kullanımını optimize etmeyi içerir.

Açıklamalı: Makine öğrenimi modellerinde hiperparametreler

Bir modelin verilerden nasıl öğrendiğini şekillendiren ayarlar olan hiperparametrelerini ayarlayarak bir modelin öğrenmesine ve daha iyi performans göstermesine yardımcı olabilirsiniz. Hiperparametre ayarlama, modelin verimliliğini ve doğruluğunu artırarak bu ayarları optimize etme tekniğidir. Eğitim sırasında modelin öğrendiği parametrelerin aksine, hiperparametreler eğitim sürecini yönlendiren önceden ayarlanmış değerlerdir.

Ayarlanabilen bazı hiperparametre örneklerini inceleyelim:

  • Öğrenme oranı: Bu parametre, modelin iç ağırlıklarını ayarlamak için attığı adım boyutunu kontrol eder. Daha yüksek bir öğrenme oranı öğrenmeyi hızlandırabilir, ancak en uygun çözümü kaçırma riski taşırken, daha düşük bir oran daha doğru ancak daha yavaş olabilir.
  • Batch boyutu: Her eğitim adımında kaç veri örneğinin işlendiğini tanımlar. Daha büyük batch boyutları daha kararlı öğrenme sunar ancak daha fazla bellek gerektirir. Daha küçük batch'ler daha hızlı eğitilir ancak daha az kararlı olabilir.
  • Epoklar (Devirler): Bu parametreyi kullanarak modelin tüm veri kümesini kaç kez gördüğünü belirleyebilirsiniz. Daha fazla epok doğruluğu artırabilir ancak aşırı uyum riskini taşır.
  • Çekirdek boyutu: Evrişimsel Sinir Ağları'nda (CNN'ler) filtre boyutunu tanımlar. Daha büyük çekirdekler daha geniş desenleri yakalar ancak daha fazla işlemeye ihtiyaç duyar; daha küçük çekirdekler ise daha ince ayrıntılara odaklanır.

Hiperparametre ayarlama nasıl çalışır?

Hiperparametre ayarlama genellikle her bir hiperparametre için olası değer aralığını tanımlamakla başlar. Bir arama algoritması daha sonra en iyi performansı üreten ayarları belirlemek için bu aralıklar içindeki farklı kombinasyonları araştırır. 

Yaygın ayarlama yöntemleri arasında ızgara araması, rastgele arama ve Bayes optimizasyonu bulunur. Izgara araması, belirtilen aralıklardaki olası tüm değer kombinasyonlarını test eder. Rastgele arama, kombinasyonları rastgele seçer ve genellikle etkili ayarları daha hızlı bulur. Bayes optimizasyonu, önceki sonuçlara dayanarak umut vadeden hiperparametre değerlerini tahmin etmek için olasılıksal bir model kullanır. Bu yaklaşım genellikle gereken deneme sayısını azaltır. 

Sonuç olarak, her bir hiperparametre kombinasyonu için modelin performansı değerlendirilir. İstenen sonuçlar elde edilene kadar işlem tekrarlanır.

Hiperparametreler ve model parametreleri

Hiperparametre ayarlaması üzerinde çalışırken, hiperparametreler ve model parametreleri arasındaki farkın ne olduğunu merak edebilirsiniz. 

Hiperparametreler, modelin öğrenme hızını veya yığın boyutu gibi nasıl öğreneceğini kontrol eden, eğitimden önce ayarlanan değerlerdir. Bu ayarlar eğitim sırasında sabittir ve öğrenme sürecini doğrudan etkiler. Model parametreleri ise eğitim sırasında modelin kendisi tarafından öğrenilir. Bunlar, model eğitildikçe ayarlanan ve sonuçta tahminlerini yönlendiren ağırlıklar ve sapmaları içerir. Özetle, hiperparametreler öğrenme yolculuğunu şekillendirirken, model parametreleri bu öğrenme sürecinin sonuçlarıdır.

__wf_reserved_inherit
Şekil 2. Parametreler ve Hiperparametrelerin Karşılaştırılması. 

Derin öğrenmede model budaması neden önemlidir?

Model budama, bir modelden gereksiz ağırlıkları ve parametreleri kaldırarak onu daha verimli hale getiren bir boyut küçültme tekniğidir. Bilgisayar görüsünde, özellikle derin sinir ağlarıyla, ağırlıklar ve aktivasyonlar (son çıktıyı hesaplamaya yardımcı olan ara çıktılar) gibi çok sayıda parametre hem karmaşıklığı hem de hesaplama taleplerini artırabilir. Budama, performansa minimum düzeyde katkıda bulunan parametreleri belirleyip kaldırarak modeli daha hafif, verimli hale getirmeye yardımcı olur.

__wf_reserved_inherit
Şekil 3. Model budamadan önce ve sonra.

Model eğitildikten sonra, büyüklük tabanlı budama veya duyarlılık analizi gibi teknikler, her parametrenin önemini değerlendirebilir. Düşük öneme sahip parametreler daha sonra üç ana teknikten biri kullanılarak budanır: ağırlık budaması, nöron budaması veya yapılandırılmış budama. 

Ağırlık budaması, çıktı üzerinde minimum etkiye sahip bireysel bağlantıları kaldırır. Nöron budaması, çıktıları modelin işlevine çok az katkıda bulunan tüm nöronları kaldırır. Yapılandırılmış budama, modelin verimliliğini optimize ederek, evrişim filtreleri veya tamamen bağlı katmanlardaki nöronlar gibi daha büyük bölümleri ortadan kaldırır. Budama tamamlandıktan sonra, modelin azaltılmış bir biçimde yüksek doğruluğu korumasını sağlamak için kalan parametreleri ince ayar yapmak üzere yeniden eğitilir.

Kuantalama ile yapay zeka modellerinde gecikmeyi azaltma

Model nicemleme, bir modelin ağırlıklarını ve aktivasyonlarını temsil etmek için kullanılan bit sayısını azaltır. Tipik olarak yüksek duyarlıklı 32 bitlik kayan nokta değerlerini, 16 bitlik veya 8 bitlik tamsayılar gibi daha düşük duyarlıklara dönüştürür. Bit duyarlılığını azaltarak, nicemleme modelin boyutunu, bellek ayak izini ve hesaplama maliyetini önemli ölçüde azaltır.

Bilgisayarla görme alanında, 32-bit kayan sayılar standarttır, ancak 16-bit veya 8-bit'e dönüştürmek verimliliği artırabilir. İki temel nicemleme türü vardır: ağırlık nicemlemesi ve aktivasyon nicemlemesi. Ağırlık nicemlemesi, modelin ağırlıklarının hassasiyetini düşürerek boyut küçültmeyi doğrulukla dengeler. Aktivasyon nicemlemesi, aktivasyonların hassasiyetini azaltarak bellek ve hesaplama gereksinimlerini daha da azaltır.

__wf_reserved_inherit
Şekil 4. 32-bit kayan sayıdan 8-bit tamsayıya nicelemeye bir örnek.

Karışık duyarlıklı (mixed precision) çıkarımlar yapay zeka çıkarımlarını nasıl hızlandırır?

Karışık duyarlık, bir sinir ağının çeşitli bölümleri için farklı sayısal duyarlıklar kullanan bir tekniktir. 32 bitlik kayan sayılar gibi daha yüksek duyarlık değerlerini, 16 bitlik veya 8 bitlik kayan sayılar gibi daha düşük duyarlık değerleriyle birleştirerek, karışık duyarlık, bilgisayar görüsü modellerinin doğruluğundan ödün vermeden eğitimi hızlandırmasını ve bellek kullanımını azaltmasını mümkün kılar.

Eğitim sırasında, karma duyarlığa, ağ genelinde ihtiyaç duyulan yerlerde daha yüksek duyarlığı korurken, belirli katmanlarda daha düşük duyarlık kullanılarak ulaşılır. Bu, casting ve kayıp ölçeklendirme yoluyla yapılır. Casting, modelin gerektirdiği şekilde veri türlerini farklı duyarlıklar arasında dönüştürür. Kayıp ölçeklendirme, kararlı eğitimi sağlamak için sayısal taşmayı önlemek amacıyla azaltılmış duyarlığı ayarlar. Karma duyarlık, özellikle büyük modeller ve büyük batch boyutları için kullanışlıdır.

__wf_reserved_inherit
Şekil 5. Karışık duyarlıklı eğitim, hem 16-bit (FP16) hem de 32-bit (FP32) kayan nokta türlerini kullanır.

Model doğruluğu ve verimliliğini dengeleme

Artık çeşitli model optimizasyon tekniklerini ele aldığımıza göre, özel ihtiyaçlarınıza göre hangisini kullanacağınıza nasıl karar vereceğinizi tartışalım. Seçim, mevcut donanım, dağıtım ortamının hesaplama ve bellek kısıtlamaları ve gerekli doğruluk düzeyi gibi faktörlere bağlıdır. 

Örneğin, daha küçük ve hızlı modeller, sınırlı kaynaklara sahip mobil cihazlar için daha uygunken, daha büyük ve daha doğru modeller yüksek performanslı sistemlerde kullanılabilir. İşte her bir tekniğin farklı hedeflerle nasıl uyumlu olduğu:

  • Budama: Doğruluğu önemli ölçüde etkilemeden model boyutunu küçültmek için idealdir, bu da onu cep telefonları veya Nesnelerin İnterneti (IoT) cihazları gibi kaynak kısıtlı cihazlar için mükemmel kılar.
  • Kuantalama: Özellikle sınırlı bellek ve işlem gücüne sahip mobil cihazlarda ve gömülü sistemlerde model boyutunu küçültmek ve çıkarımı hızlandırmak için harika bir seçenektir. Küçük doğruluk azalmalarının kabul edilebilir olduğu uygulamalar için iyi çalışır.
  • Karma duyarlıklı işlem: Büyük ölçekli modeller için tasarlanan bu teknik, bellek kullanımını azaltır ve karma duyarlıklı işlemleri destekleyen GPU'lar ve TPU'lar gibi donanımlarda eğitimi hızlandırır. Genellikle verimliliğin önemli olduğu yüksek performanslı görevlerde kullanılır.
  • Hiperparametre ayarlama: Hesaplama açısından yoğun olmasına rağmen, tıbbi görüntüleme veya otonom sürüş gibi yüksek doğruluk gerektiren uygulamalar için gereklidir.

Önemli çıkarımlar

Model optimizasyonu, özellikle yapay zekayı gerçek dünya uygulamalarında dağıtmak için makine öğreniminin hayati bir parçasıdır. Hiperparametre ayarlama, model budama, niceleme ve karışık duyarlılık gibi teknikler, bilgisayar görüşü modellerinin performansını, verimliliğini ve kaynak kullanımını iyileştirmeye yardımcı olur. Bu optimizasyonlar, modelleri daha hızlı ve daha az kaynak yoğun hale getirir, bu da sınırlı bellek ve işlem gücüne sahip cihazlar için idealdir. Optimize edilmiş modellerin ölçeklenmesi ve farklı platformlarda dağıtılması da daha kolaydır ve çok çeşitli kullanımlara etkili ve uyarlanabilir yapay zeka çözümleri sağlar.

Üretim ve tarım alanlarındaki yapay zeka uygulamaları hakkında daha fazla bilgi edinmek için Ultralytics GitHub deposunu ziyaret edin ve topluluğumuza katılın.

Gelin, yapay zekanın geleceğini
birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın

Ücretsiz başlayın
Bağlantı panoya kopyalandı