FLOPs
FLOPs'un yapay zekâ modellerinin hesaplama karmaşıklığını nasıl ölçtüğünü öğren. Ultralytics YOLO26 için FLOPs hesaplamayı ve Edge AI performansını optimize etmeyi keşfet.
FLOPs veya 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 görüntü veya cümle gibi tek bir girdiyi işlemek için gerçekleştirmesi gereken matematiksel hesaplamaların (özellikle ondalık sayılar içeren toplama ve çarpma işlemlerinin) sayısını belirtir. Derin öğrenme dünyasında FLOPs, bir modelin ne kadar "ağır" veya hesaplama açısından maliyetli olduğunu tahmin etmek için teorik bir ölçüt görevi görür. Daha yüksek FLOPs sayısı genellikle bir modelin daha karmaşık olduğunu ve çalıştırılması için daha fazla işlem gücü ile enerji gerektireceğini gösterirken, daha düşük sayı verimlilik için tasarlanmış hafif bir mimariye işaret eder.
Model Seçiminde FLOPs'un Rolü#
Yapay zekâ uygulamaları geliştirirken mühendisler çoğu zaman doğruluk ile hız arasında bir denge kurmak zorunda kalır. FLOPs, çıkarım gecikmesinin donanımdan bağımsız bir göstergesi olarak görev yapar ve geliştiricilerin her olası cihazda kıyaslama yapmasına gerek kalmadan farklı mimarileri karşılaştırmasına olanak tanır. Bu metrik, belirli dağıtım senaryoları için doğru modeli seçmek açısından kritik öneme sahiptir. Örneğin, güçlü bulut bilişim sunucularında deneyler yürüten bir araştırmacı verimlilikten çok doğruluğa öncelik vererek yüksek FLOPs değerlerine sahip modelleri kullanabilir. Buna karşılık, uç yapay zekâ cihazları için geliştirme yapan bir mühendis, uygulamanın katı güç ve termal sınırlar içinde sorunsuz çalışmasını sağlamak için düşük FLOPs değerlerine ö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 açıkça görülür.
- Otonom Drone'lar: Tarım robotları gibi alanlarda kameralarla donatılmış drone'lar, ürün sağlığını gerçek zamanlı olarak analiz eder. Drone bataryalarının kapasitesi sınırlı olduğundan, harcanan her güç miktarı önemlidir. Mühendisler, yerleşik işlemcinin enerji tüketimini en aza indirmek ve böylece uçuş süresini ve operasyon menzilini en üst düzeye çıkarmak için özellikle YOLO26 modellerinin Nano varyantları gibi düşük FLOPs değerlerine sahip modelleri seçer.
- Mobil Artırılmış Gerçeklik: Güvenlik amacıyla yüz tanıma kullanan veya AR filtreleri uygulayan akıllı telefon uygulamaları, verimli işlemeye büyük ölçüde dayanır. Bu uygulamalar cihazın aşırı ısınmasına veya takılmasına neden olmadan çalışmalıdır. Geliştiriciler, Snapdragon serisi veya Apple'ın A serisi çipleri gibi mobil yonga setlerinin kapasitesine rahatça sığan hafif modelleri seçmek için FLOPs tahminlerini kullanır.
FLOPs ve FLOPS (Saniyedeki Kayan Nokta İşlemleri) Karşılaştırması#
"FLOPs" (FLOP'un çoğulu) ile "FLOPS" (tümü büyük harflerle) arasındaki farkı ayırt etmek önemlidir. Görünüşleri neredeyse aynı olsa da farklı şeyleri ölçerler. FLOPs (küçük 's'), bir modelin gerektirdiği işlemlerin toplam 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ş), FLOPS'u ise arabanın azami hızı (donanımın bu işi yapabilme yeteneği) olarak düşünebilirsin.
Python ile FLOPs Ölçme#
Python kullanarak bir Ultralytics modelinin hesaplama maliyetini kolayca hesaplayabilirsin. Bu, özellikle sinir ağının donanım bütçene uygun olduğundan emin olmak için model optimizasyonu aşamasında oldukça yararlıdır. Aşağıdaki örnek, bir YOLO26 modelinin nasıl yükleneceğini ve FLOPs değerinin nasıl belirleneceğini gösterir.
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 için FLOPs'u Azaltma#
Modelleri dağıtıma daha uygun hâle getirmek için araştırmacılar, doğruluktan önemli ölçüde ödün vermeden FLOPs'u azaltan çeşitli teknikler kullanır. Model budama, sinir ağındaki daha az önemli bağlantıların kaldırılmasını ve böylece ağın seyreltilmesini içerir. Bir diğer teknik, hesaplamalarda kullanılan sayıların hassasiyetini (örneğin 32 bit kayan noktadan 8 bit tamsayılara) azaltan nicemlemedir. Ultralytics Platformu üzerinde bulunan araçlar, bu optimizasyon süreçlerini kolaylaştırarak TensorRT veya OpenVINO gibi hedeflere verimli modellerin dağıtılmasını kolaylaştırır. Geliştiriciler, FLOPs'u anlayıp optimize ederek hem güçlü hem de sürdürülebilir yapay zekâ sistemleri oluşturabilir.









