FLOPs
FLOPs değerlerinin yapay zeka modellerinin hesaplama karmaşıklığını nasıl ölçtüğünü öğren. Ultralytics YOLO26 için FLOPs değerlerini nasıl hesaplayacağını ve performansı Edge AI için nasıl optimize edeceğini keşfet.
FLOPs (Kayan Nokta İşlemleri), bir machine learning modelinin hesaplama karmaşıklığını ölçmek için kullanılan standart bir ölçüttür. Özellikle bir neural network ağının tek bir girdiyi (görsel veya cümle gibi) işlemek için gerçekleştirmesi gereken matematiksel hesaplamaların sayısını (öncelikle ondalık sayılar içeren toplama ve çarpmaları) sayar. deep learning dünyasında FLOPs, bir modelin ne kadar "ağır" veya hesaplama açısından ne kadar maliyetli olduğunu tahmin etmek için teorik bir ölçü birimi olarak hizmet eder. Daha yüksek bir FLOPs sayısı genellikle bir modelin daha karmaşık olduğunu ve yürütmek için daha fazla işlem gücü ve enerji gerektireceğini gösterirken, daha düşük bir sayı verimlilik için tasarlanmış hafif bir mimariyi gösterir.
Model Seçiminde FLOPs'un Rolü#
artificial intelligence uygulamaları geliştirirken mühendisler genellikle doğruluk ve hız arasında bir ödünleşmeyle karşı karşıya kalır. FLOPs, inference latency için donanımdan bağımsız bir vekil görevi görerek geliştiricilerin farklı mimarileri olası her cihazda kıyaslamaya gerek kalmadan karşılaştırmasına olanak tanır. Bu ölçüt, belirli dağıtım senaryoları için doğru modeli seçmek açısından esastır. Örneğin, güçlü cloud computing sunucularında deneyler yürüten bir araştırmacı, yüksek FLOPs değerine sahip modelleri kullanarak verimlilikten ziyade doğruluğu önceliklendirebilir. Buna karşılık, edge AI cihazları için geliştirme yapan bir mühendis, uygulamanın katı güç ve termal sınırlar dahilinde sorunsuz çalışmasını sağlamak için düşük FLOPs değerine öncelik vermelidir.
Gerçek Dünya Uygulamaları#
FLOPs'un pratik etkileri, hesaplama kaynaklarının kritik bir faktör olduğu çeşitli sektörlerde belirgindir.
- Otonom Dronlar: agricultural robotics gibi alanlarda kameralarla donatılmış dronlar mahsul sağlığını gerçek zamanlı olarak analiz eder. Dron pilleri sınırlı olduğundan, her bir güç tüketimi önemlidir. Mühendisler, yerleşik işlemci üzerindeki yükü en aza indirmek ve böylece uçuş süresini ve operasyonel menzili maksimize etmek için YOLO26 modellerinin Nano varyantları gibi düşük FLOPs değerine sahip modelleri özellikle seçer.
- Mobil Artırılmış Gerçeklik: Güvenlik için facial recognition kullanan veya AR filtreleri uygulayan akıllı telefon uygulamaları verimli işlemeye büyük ölçüde güvenir. Bu uygulamaların cihazın aşırı ısınmasına veya donmasına neden olmadan çalışması gerekir. Geliştiriciler, Snapdragon serisi veya Apple'ın A-series chips gibi mobil yonga setlerinin yeteneklerine rahatça uyum sağlayan hafif modelleri seçmek için FLOPs tahminlerini kullanır.
FLOPs vs. FLOPS (Saniyedeki Kayan Nokta İşlemleri)#
"FLOPs" (FLOP kelimesinin çoğulu) ile "FLOPS" (tamamı büyük harf) arasındaki ayrımı yapmak önemlidir. Neredeyse aynı görünseler de farklı şeyleri ölçerler. FLOPs (küçük 's'), bir modelin gerektirdiği toplam işlem miktarını ifade eder; bu, karmaşıklığın statik bir ölçüsüdür. FLOPS (büyük 'S'), Saniyedeki Kayan Nokta İşlemleri anlamına gelir ve GPU gibi donanımların hızını veya performans kapasitesini ölçer. FLOPs'u bir arabanın gitmesi gereken mesafe (yapılacak iş) olarak düşünebilirsiniz, FLOPS ise arabanın azami hızıdır (donanımın işi yapma yeteneği).
Python ile FLOPs Ölçümü#
Python kullanarak bir Ultralytics modelinin hesaplama maliyetini kolayca hesaplayabilirsiniz. Bu, sinir ağınızın donanım bütçenize uyduğundan emin olmak için model optimization aşamasında özellikle yararlıdır. Aşağıdaki örnek, bir YOLO26 modelinin nasıl yükleneceğini ve FLOPs değerinin nasıl belirleneceğini göstermektedir.
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")Verimlilik İçin FLOPs'u Azaltmak#
Modelleri daha dağıtılabilir hale getirmek için araştırmacılar, doğruluğu önemli ölçüde feda etmeden FLOPs değerini düşürmek amacıyla çeşitli teknikler kullanır. Model pruning, sinir ağındaki daha az önemli bağlantıların kaldırılmasını ve böylece ağın inceltilmesini içerir. Bir diğer teknik ise hesaplamalarda kullanılan sayıların hassasiyetini azaltan (örneğin 32 bitlik kayan noktadan 8 bitlik tamsayılara) quantization işlemidir. Ultralytics Platform üzerinde bulunan araçlar bu optimizasyon süreçlerini kolaylaştırmaya yardımcı olarak verimli modellerin TensorRT veya OpenVINO gibi hedeflere dağıtılmasını kolaylaştırır. Geliştiriciler, FLOPs değerini anlayıp optimize ederek hem güçlü hem de sürdürülebilir yapay zeka sistemleri oluşturabilirler.






