Model optimizasyonu nedir? Hızlı bir rehber
Hiperparametre ayarlama, model budama ve model kuantizasyonu gibi model optimizasyon tekniklerinin bilgisayarlı görü modellerinin daha verimli çalışmasına nasıl yardımcı olabileceğini öğren.

Model optimizasyonu, makine öğrenimi modellerinin verimliliğini ve performansını artırmayı amaçlayan bir süreçtir. Optimizasyon, bir modelin yapısını ve işlevini iyileştirerek modellerin minimum hesaplama kaynağı ve daha az eğitim ile değerlendirme süresi kullanarak daha iyi sonuçlar sunmasını mümkün kılar.
This process is especially important in fields like computer vision, where models often require substantial resources to analyze complex images. In resource-constrained environments like mobile devices or edge systems, optimized models can work well with limited resources while still being accurate.
Hiperparametre ayarı, model budama, model niceleme ve karmaşık hassasiyet dahil olmak üzere model optimizasyonunu elde etmek için yaygın olarak çeşitli teknikler kullanılır. Bu makalede, bu teknikleri ve bunların bilgisayarlı görü uygulamalarına kazandırdığı faydaları keşfedeceğiz. Haydi başlayalım!
Model optimizasyonunu anlamak#
Bilgisayarlı görü modelleri, genellikle görüntülerdeki karmaşık örüntüleri tanımak için harika olan derin katmanlara ve karmaşık yapılara sahiptir, ancak bunlar işlem gücü açısından da oldukça talepkar olabilir. Bu modeller cep telefonları veya uç cihazlar gibi sınırlı donanıma sahip cihazlara dağıtıldığında, belirli zorluklarla veya sınırlamalarla karşılaşabilirler.
Bu cihazlardaki sınırlı işlem gücü, bellek ve enerji, modeller ayak uydurmakta zorlandıkça performansta belirgin düşüşlere yol açabilir. Model optimizasyon teknikleri bu endişelerin üstesinden gelmek için anahtardır. Modeli modernize etmeye yardımcı olur, hesaplama ihtiyaçlarını azaltır ve sınırlı kaynaklarla bile etkili bir şekilde çalışabilmesini sağlar. Model optimizasyonu, model mimarisini basitleştirerek, hesaplamaların hassasiyetini azaltarak veya modeli daha hafif ve daha hızlı hale getirmek için gereksiz bileşenleri kaldırarak yapılabilir.

Şekil 1. Modellerinizi optimize etme nedenleri. Görsel, yazar tarafından hazırlanmıştır.
İşte takip eden bölümlerde daha ayrıntılı olarak inceleyeceğimiz en yaygın model optimizasyon tekniklerinden bazıları:
- Hiperparametre ayarı: Model performansını artırmak için öğrenme oranı ve grup boyutu gibi hiperparametrelerin sistematik olarak ayarlanmasını içerir.
- Model budama: 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: Niceleme, tipik olarak 32 bitten 16 bite veya 8 bite kadar modelin ağırlıklarının ve aktivasyonlarının hassasiyetini düşürmeyi içerir, böylece bellek ayak izini ve hesaplama gereksinimlerini önemli ölçüde azaltır.
- Hassasiyet ayarları: Karmaşık hassasiyetli eğitim 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çıklandı: Makine öğrenimi modellerinde hiperparametreler#
Modelin verilerden nasıl öğreneceğini şekillendiren ayarlar olan hiperparametrelerini ayarlayarak bir modelin öğrenmesine ve daha iyi performans göstermesine yardımcı olabilirsin. Hiperparametre ayarı, modelin verimliliğini ve doğruluğunu artırmak için bu ayarları optimize etmeye yönelik bir tekniktir. Modelin eğitim sırasında öğrendiği parametrelerin aksine, hiperparametreler eğitim sürecine rehberlik eden önceden ayarlanmış değerlerdir.
Ayarlanabilecek hiperparametre örneklerine göz atalım:
- Öğrenme oranı: Bu parametre, modelin dahili 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 riskini taşırken, daha düşük bir oran daha doğru ancak daha yavaş olabilir.
- Grup boyutu: Her eğitim adımında kaç veri örneğinin işlendiğini tanımlar. Daha büyük grup boyutları daha kararlı bir öğrenme sunar ancak daha fazla belleğe ihtiyaç duyar. Daha küçük gruplar daha hızlı eğitilir ancak daha az kararlı olabilir.
- Dönemler: Bu parametreyi kullanarak modelin tam veri setini kaç kez gördüğünü belirleyebilirsin. Daha fazla dönem doğruluğu artırabilir ancak aşırı öğrenme riskini beraberinde getirebilir.
- Çekirdek boyutu: Evrişimli Sinir Ağlarında (CNN) filtre boyutunu tanımlar. Daha büyük çekirdekler daha geniş örüntüleri yakalar ancak daha fazla işlem gerektirir; daha küçük çekirdekler daha ince ayrıntılara odaklanır.
Hiperparametre ayarı nasıl çalışır#
Hiperparametre ayarı genellikle her hiperparametre için olası değerler aralığının tanımlanmasıyla 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 arama, rastgele arama ve Bayesçi optimizasyon yer alır. Izgara arama, belirtilen aralıklardaki her olası değer kombinasyonunu test eder. Rastgele arama, kombinasyonları rastgele seçer ve genellikle etkili ayarları daha hızlı bulur. Bayesçi optimizasyon, önceki sonuçlara dayanarak umut verici 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.
Nihayetinde, her hiperparametre kombinasyonu için modelin performansı değerlendirilir. İstenen sonuçlar elde edilene kadar süreç tekrarlanır.
Hiperparametreler ve model parametreleri#
Hiperparametre ayarı üzerinde çalışırken, hiperparametreler ile model parametreleri arasındaki farkın ne olduğunu merak edebilirsin.
Hiperparametreler, modelin öğrenme oranını veya grup boyutunu öğrenmesini kontrol eden, eğitimden önce ayarlanan değerlerdir. Bu ayarlar eğitim sırasında sabittir ve öğrenme sürecini doğrudan etkiler. Öte yandan model parametreleri, eğitim sırasında modelin kendisi tarafından öğrenilir. Bunlar, model eğitildikçe ayarlanan ve nihayetinde tahminlerine rehberlik eden ağırlıkları ve önyargıları içerir. Özünde, hiperparametreler öğrenme yolculuğunu şekillendirirken, model parametreleri bu öğrenme sürecinin sonuçlarıdır.

Şekil 2. Parametreler ve Hiperparametreleri Karşılaştırma.
Derin öğrenmede model budama neden önemlidir#
Model budama, gereksiz ağırlıkları ve parametreleri bir modelden kaldıran, onu daha verimli hale getiren bir boyut küçültme tekniğidir. Bilgisayarlı görüde, özellikle derin sinir ağlarıyla, ağırlıklar ve aktivasyonlar gibi çok sayıda parametre (nihai çıktıyı hesaplamaya yardımcı olan ara çıktılar) hem karmaşıklığı hem de hesaplama taleplerini artırabilir. Budama, performansa çok az katkıda bulunan parametreleri belirleyip kaldırarak modeli modernize etmeye yardımcı olur, bu da daha hafif, daha verimli bir modelle sonuçlanır.

Ş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 ağırlık budama, nöron budama veya yapısal budama olmak üzere üç ana teknikten biri kullanılarak budanır.
Ağırlık budama, çıktı üzerinde minimum etki ile bireysel bağlantıları kaldırır. Nöron budama, çıktıları modelin işlevine çok az katkıda bulunan tüm nöronları kaldırır. Yapılandırılmış budama, evrişimli filtreler veya tam bağlantılı katmanlardaki nöronlar gibi daha büyük bölümleri ortadan kaldırarak modelin verimliliğini optimize eder. Budama tamamlandıktan sonra model, kalan parametreleri ince ayar yapmak için yeniden eğitilir ve küçültülmüş bir biçimde yüksek doğruluğu korumasını sağlar.
Niceleme ile yapay zeka modellerinde gecikmeyi azaltma#
Model niceleme, bir modelin ağırlıklarını ve aktivasyonlarını temsil etmek için kullanılan bit sayısını azaltır. Genellikle yüksek hassasiyetli 32 bit kayan noktalı değerleri 16 bit veya 8 bit tam sayı gibi daha düşük bir hassasiyete dönüştürür. Bit hassasiyetini azaltarak, niceleme modelin boyutunu, bellek ayak izini ve hesaplama maliyetini önemli ölçüde azaltır.
Bilgisayarlı görüde 32 bit kayan sayılar standarttır, ancak 16 bit veya 8 bite dönüştürmek verimliliği artırabilir. İki birincil niceleme türü vardır: ağırlık niceleme ve aktivasyon niceleme. Ağırlık niceleme, boyut küçültmeyi doğrulukla dengeleyerek modelin ağırlıklarının hassasiyetini düşürür. Aktivasyon niceleme, aktivasyonların hassasiyetini azaltarak bellek ve hesaplama taleplerini daha da azaltır.

Şekil 4. 32 bit kayan sayıdan 8 bit tam sayıya niceleme örneği.
Karma hassasiyet yapay zeka çıkarımlarını nasıl hızlandırır#
Karmaşık hassasiyet, bir sinir ağının çeşitli bölümleri için farklı sayısal hassasiyetler kullanan bir tekniktir. 32 bit kayan sayılar gibi daha yüksek hassasiyetli değerleri, 16 bit veya 8 bit kayan sayılar gibi daha düşük hassasiyetli değerlerle birleştirerek, karmaşık hassasiyet bilgisayarlı görü modellerinin doğruluktan ö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 hassasiyet, ağın genelinde gerektiğinde yüksek hassasiyeti korurken belirli katmanlarda daha düşük hassasiyet kullanılarak elde edilir. Bu, döküm (casting) ve kayıp ölçeklendirme yoluyla yapılır. Döküm, model tarafından gerektiği gibi veri türlerini farklı hassasiyetler arasında dönüştürür. Kayıp ölçeklendirme, sayısal eksik akışı (underflow) önlemek için azaltılmış hassasiyeti ayarlar ve kararlı eğitimi sağlar. Karma hassasiyet, özellikle büyük modeller ve büyük yığın boyutları için kullanışlıdır.

Şekil 5. Karmaşık hassasiyet eğitimi hem 16 bit (FP16) hem de 32 bit (FP32) kayan noktalı türlerini kullanır.
Model doğruluğu ve verimliliğini dengeleme#
Birkaç model optimizasyon tekniğini ele aldığımıza göre, özel ihtiyaçlarına göre hangisinin kullanılacağına nasıl karar vereceğimizi tartışalım. Seçim, mevcut donanım, dağıtım ortamının hesaplama ve bellek kısıtlamaları ve gereken doğruluk seviyesi gibi faktörlere bağlıdır.
Örneğin, daha küçük, daha hızlı modeller sınırlı kaynaklara sahip mobil cihazlar için daha uygundur, daha büyük ve daha doğru modeller ise yüksek performanslı sistemlerde kullanılabilir. İşte her 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.
- Niceleme: Özellikle sınırlı belleğe ve işlem gücüne sahip mobil cihazlarda ve gömülü sistemlerde model boyutunu küçültmek ve çıkarsamayı hızlandırmak için harika bir seçenektir. Hafif doğruluk düşüşlerinin kabul edilebilir olduğu uygulamalar için iyi çalışır.
- Karmaşık hassasiyet: Büyük ölçekli modeller için tasarlanan bu teknik, karmaşık hassasiyetli işlemleri destekleyen GPU'lar ve TPU'lar gibi donanımlarda bellek kullanımını azaltır ve eğitimi hızlandırır. Genellikle verimliliğin önemli olduğu yüksek performanslı görevlerde kullanılır.
- Hiperparametre ayarı: Hesaplama açısından yoğun olsa da, tıbbi görüntüleme veya otonom sürüş gibi yüksek doğruluk gerektiren uygulamalar için gereklidir.
Öne çıkanlar#
Model optimizasyonu, özellikle gerçek dünya uygulamalarında yapay zekayı konuşlandırmak için makine öğreniminin hayati bir parçasıdır. Hiperparametre ayarı, model budama, niceleme ve karma hassasiyet gibi teknikler, bilgisayarlı 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 farklı platformlarda ölçeklendirilmesi ve konuşlandırılması da daha kolaydır, bu da hem etkili hem de çok çeşitli kullanımlara uyarlanabilir yapay zeka çözümlerini mümkün kılar.
İmalat ve tarımda AI uygulamaları hakkında daha fazla bilgi edinmek için Ultralytics GitHub deposunu ziyaret edin ve topluluğumuza katılın.






