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 yani Kayan Nokta İşlemleri, bir makine öğrenimi modelinin hesaplama karmaşıklığını ölçmek için kullanılan standart bir metriktir. Özellikle, bir sinir ağının bir görüntü veya cümle gibi tek bir girdiyi işlemek için gerçekleştirmesi gereken matematiksel hesaplamaların (öncelikle ondalık sayılar içeren toplama ve çarpma işlemleri) sayısını hesaplar. Derin öğrenme 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çüt görevi görür. Daha yüksek bir FLOPs sayısı, genellikle modelin daha karmaşık olduğunu ve yürütülmesi 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 mimariye işaret eder.
Link to this sectionModel Seçiminde FLOPs'un Rolü#
Yapay zeka uygulamaları geliştirirken mühendisler genellikle doğruluk ve hız arasında bir denge kurmak zorundadır. FLOPs, donanımdan bağımsız bir çıkarım gecikmesi göstergesi görevi görerek geliştiricilerin farklı mimarileri mümkün olan her cihazda kıyaslamaya gerek kalmadan karşılaştırmalarına olanak tanır. Bu metrik, belirli dağıtım senaryoları için doğru modeli seçmek adına gereklidir. Örneğin, güçlü bulut bilişim sunucularında deneyler yapan bir araştırmacı, yüksek FLOPs değerine sahip modelleri kullanarak verimlilik yerine doğruluğu önceliklendirebilir. Buna karşılık, uç yapay zeka cihazları için geliştirme yapan bir mühendis, uygulamanın katı güç ve termal limitler dahilinde sorunsuz çalışmasını sağlamak için düşük FLOPs değerini önceliklendirmelidir.
Link to this sectionGerçek Dünya Uygulamaları#
FLOPs'un pratik etkileri, hesaplama kaynaklarının kritik bir faktör olduğu çeşitli sektörlerde belirgindir.
- Otonom Drone'lar: Tarımsal robotik gibi alanlarda, kameralarla donatılmış drone'lar mahsul sağlığını gerçek zamanlı olarak analiz eder. Drone bataryaları sınırlı olduğu için, tüketilen her bir enerji miktarı önemlidir. Mühendisler, uçuş süresini ve operasyonel menzili en üst düzeye çıkarmak amacıyla, yerleşik işlemci üzerindeki yükü minimize etmek için YOLO26'nın Nano varyantları gibi düşük FLOPs'a sahip modelleri özel olarak seçerler.
- Mobil Artırılmış Gerçeklik: Güvenlik için yüz tanıma kullanan veya AR filtreleri uygulayan akıllı telefon uygulamaları, verimli işlem yapmaya büyük ölçüde güvenir. Bu uygulamalar, cihazın aşırı ısınmasına veya donmasına neden olmadan çalışmalıdır. Geliştiriciler, Snapdragon serisi veya Apple'ın A-serisi çipleri gibi mobil yonga setlerinin yetenekleri dahilinde rahatça çalışabilen hafif modelleri seçmek için FLOPs tahminlerini kullanırlar.
Link to this sectionFLOPs vs. FLOPS (Saniyedeki Kayan Nokta İşlemleri)#
"FLOPs" (FLOP'un çoğulu) ve "FLOPS" (tamamı büyük harf) arasında 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') ise Saniyedeki Kayan Nokta İşlemleri anlamına gelir ve bir GPU gibi donanımın hızını veya performans kapasitesini ölçer. FLOPs değerini bir arabanın kat etmesi gereken mesafe (yapılacak iş), FLOPS değerini ise arabanın azami hızı (donanımın işi yapma yeteneği) olarak düşünebilirsin.
Link to this sectionPython ile FLOPs Ölçümü#
Python kullanarak bir Ultralytics modelinin hesaplama maliyetini kolayca hesaplayabilirsin. Bu, sinir ağının donanım bütçene uygun olduğundan emin olmak için model optimizasyonu 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")Link to this sectionVerimlilik İçin FLOPs'u Azaltmak#
Modelleri daha dağıtılabilir hale getirmek için araştırmacılar, doğruluktan önemli ölçüde ödün vermeden FLOPs'u azaltmak adına çeşitli teknikler kullanırlar. Model budama, 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-bit kayan noktadan 8-bit tam sayıya) nicelemedir. Ultralytics Platformu üzerinde bulunan araçlar, bu optimizasyon süreçlerini kolaylaştırarak verimli modelleri TensorRT veya OpenVINO gibi hedeflere dağıtmayı daha basit hale getirir. Geliştiriciler, FLOPs'u anlayıp optimize ederek hem güçlü hem de sürdürülebilir yapay zeka sistemleri inşa edebilirler.






