Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

FLOP'lar

FLOP'ların AI modellerinin hesaplama karmaşıklığını nasıl ölçtüğünü öğrenin. Ultralytics için FLOP'ları nasıl hesaplayacağınızı ve Edge AI için performansı nasıl optimize edeceğinizi keşfedin.

FLOPs veya Floating Point Operations (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 (özellikle ondalık sayılarla yapılan toplama ve çarpma işlemleri) sayısını sayar. 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 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 mimariyi gösterir.

Model Seçiminde FLOP'ların Rolü

Yapay zeka uygulamaları geliştirirken mühendisler genellikle doğruluk ve hız arasında bir denge kurmak zorunda kalırlar. FLOPs, çıkarım gecikmesi için donanımdan bağımsız bir proxy görevi görür ve geliştiricilerin farklı mimarileri her olası cihazda karşılaştırmaya gerek kalmadan karşılaştırmalarına olanak tanır. Bu metrik, belirli dağıtım senaryoları için doğru modeli seçmek için çok önemlidir. Örneğin, güçlü bulut bilişim sunucularında deneyler yapan bir araştırmacı, yüksek FLOPs değerine sahip modelleri kullanarak verimlilikten önce doğruluğu önceliklendirebilir. Tersine, uç AI cihazları için geliştirme yapan bir mühendis, uygulamanın sıkı güç ve termal sınırlar içinde sorunsuz çalışmasını sağlamak için düşük FLOPs değerini önceliklendirmelidir.

Gerçek Dünya Uygulamaları

FLOP'ların pratik etkileri, hesaplama kaynaklarının kritik bir faktör olduğu çeşitli endüstrilerde belirgindir .

  • Otonom Dronlar: Tarımsal robotik gibi alanlarda, kameralarla donatılmış dronlar mahsulün sağlığını gerçek zamanlı olarak analiz eder. Dronların pilleri sınırlı olduğundan, her bir bitlik güç tüketimi önemlidir. Mühendisler, yerleşik işlemcinin tüketimini en aza indirmek için YOLO26'nın Nano varyantları gibi düşük FLOP'lu modelleri özel olarak seçerler, böylece uçuş süresini ve operasyonel menzili en üst düzeye çıkarırlar.
  • Mobil Artırılmış Gerçeklik: Güvenlik için yüz tanıma özelliğini kullanan veya AR filtreleri uygulayan akıllı telefon uygulamaları, verimli işlemeye büyük ölçüde bağımlıdır. Bu uygulamalar, cihazın aşırı ısınmasına veya gecikmesine neden olmadan çalışmalıdır. Geliştiriciler, FLOP tahminlerini kullanarak Snapdragon serisi veya Apple'ın A serisi yongaları gibi mobil yonga setlerinin kapasitelerine rahatça uyan hafif modeller seçerler.

FLOPs ve FLOPS (Saniye Başına Kayan Noktalı İşlem Sayısı)

"FLOP" (FLOP'un çoğulu) ile "FLOPS" (büyük harflerle yazılır) arasında ayrım yapmak önemlidir. Her ikisi de neredeyse aynı görünse de, farklı şeyleri ölçerler. FLOP (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 Saniye Başına Kayan Nokta İşlemleri anlamına gelir ve donanımın hızını veya performans kapasitesini ölçer, örneğin GPU. FLOP'ları bir arabanın kat etmesi gereken mesafe (yapılması gereken iş) olarak düşünebilirsiniz, FLOPS ise arabanın azami hızıdır (donanımın işi yapma yeteneği). FLOPS ve FLOP'lar arasındaki farkı anlamak için, bir arabanın bir

Python ile FLOP'ları ölçme

Python kullanarak Ultralytics hesaplama maliyetini kolayca hesaplayabilirsiniz. Bu, özellikle model optimizasyon aşamasında sinir ağınızın donanım bütçenize uygun olmasını sağlamak için kullanışlıdır. Aşağıdaki örnek, bir YOLO26 modelini yüklemeyi ve FLOP'larını belirlemeyi 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 için FLOP'ları Azaltma

Modelleri daha kolay uygulanabilir hale getirmek için araştırmacılar, doğruluğu önemli ölçüde feda etmeden FLOP'ları azaltmak için çeşitli teknikler kullanır. Model budama, sinir ağındaki daha az önemli bağlantıları kaldırarak onu etkili bir şekilde inceltmeyi içerir. Diğer bir teknik ise hesaplamalarda kullanılan sayıların hassasiyetini azaltan kuantizasyon(örneğin, 32 bit kayan noktadan 8 bit tamsayıya). Ultralytics bulunan araçlar, bu optimizasyon süreçlerini kolaylaştırarak, TensorRT gibi hedeflere verimli modellerin dağıtımını kolaylaştırır. TensorRT veya OpenVINOgibi hedeflere verimli modellerin dağıtılmasını kolaylaştırır. FLOP'ları anlayarak ve optimize ederek, geliştiriciler hem güçlü hem de sürdürülebilir AI sistemleri oluşturabilirler.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın