Sözlük

FLOP'lar

Makine öğreniminde FLOP'ları anlayın! Model karmaşıklığını nasıl ölçtüğünü, verimliliği nasıl etkilediğini ve donanım seçimine nasıl yardımcı olduğunu öğrenin.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

FLOP'lar veya Kayan Nokta İşlemleri, özellikle derin öğrenmede bir makine öğrenimi (ML) modelinin hesaplama karmaşıklığının temel bir ölçüsünü temsil eder. Tipik olarak çıkarım sırasında modelin tek bir ileri geçişi için gereken toplam kayan nokta hesaplamalarının (toplama, çıkarma, çarpma, bölme gibi) sayısını ölçer. FLOP'ları anlamak, model verimliliğini değerlendirmek, farklı mimarileri karşılaştırmak ve bir modelin güçlü bulut sunucularından kaynak kısıtlı uç cihazlara kadar çeşitli donanım platformlarına uygunluğunu belirlemek için çok önemlidir.

FLOP'lar Nedir?

Kayan noktalı işlem, ondalık noktası olan sayıları (kayan noktalı sayılar) içeren herhangi bir matematiksel hesaplamadır. Sinir ağlarında (NN'ler), bu işlemler konvolüsyonlar ve tam bağlı katmanlar gibi katmanlarda yaygın olarak gerçekleşir. FLOP'lar, tek bir girdiyi (örneğin bir görüntü) işlemek için gereken bu işlemlerin toplam sayısını ölçer.

Modern derin öğrenme modelleri milyarlarca işlem içerdiğinden, FLOP'lar genellikle GigaFLOP'lar (GFLOP'lar, milyarlarca FLOP) veya TeraFLOP'lar (TFLOP'lar, trilyonlarca FLOP) olarak ifade edilir. FLOP'ları (toplam işlemler, hesaplama iş yükünün bir ölçüsü) FLOPS (Saniye Başına Kayan Nokta İşlemleri, bir GPU'n un kapasitesi gibi donanım işleme hızının bir ölçüsü) ile karıştırmamak önemlidir. Model karmaşıklığını değerlendirme bağlamında, "FLOPs" neredeyse her zaman toplam işlem sayısını ifade eder.

Yapay Zeka ve Makine Öğreniminde Uygunluk

FLOP'lar, bir yapay zeka modelinin hesaplama maliyetini tahmin etmek için hayati, donanımdan bağımsız bir metrik olarak hizmet eder. Alaka düzeyinin temel yönleri şunlardır:

  • Verimlilik Karşılaştırması: FLOP'lar, araştırmacıların ve uygulayıcıların belirli donanım veya yazılım optimizasyonlarından bağımsız olarak farklı model mimarilerinin hesaplama taleplerini karşılaştırmalarına olanak tanır. Örneğin, Ultralytics YOLO11 ile YOLOv10 gibi modelleri karşılaştırırken, FLOP'lar doğruluk ölçümlerinin yanı sıra göreceli hesaplama verimlilikleri hakkında da fikir verir.
  • Donanım Uygunluğu: Daha düşük FLOP'lara sahip modeller genellikle daha az hesaplama gücü gerektirir, bu da onları akıllı telefonlar, Raspberry Pi veya uç bilişimde yaygın olan NVIDIA Jetson platformları gibi sınırlı kaynaklara sahip cihazlarda dağıtım için daha uygun hale getirir.
  • Çıkarım Hızı Tahmini: Doğrudan bir hız ölçüsü olmasa da, daha düşük FLOP'lar genellikle daha hızlı çıkarım gecikmesi ile ilişkilidir. Ancak, gerçek hız bellek erişim modelleri, donanım paralelliği gibi faktörlere bağlıdır (CPU vs. GPU vs. TPU) ve optimize edilmiş yazılım kütüphaneleri gibi TensorRT veya OpenVINO.
  • Model Tasarımı ve Optimizasyonu: FLOP'lar, performansı korurken hesaplama maliyetini azaltmayı amaçlayan model tasarımı, nöral mimari arama (NAS) ve model budama gibi optimizasyon teknikleri sırasında önemli bir husustur.

FLOP'lar ve İlgili Kavramlar

FLOP'ları diğer yaygın metriklerden ayırmak faydalı olacaktır:

  • FLOP'lara karşı Parametreler: Parametre sayısı (veya model ağırlıkları) modelin bellek depolama açısından boyutunu gösterir. FLOP'lar modeli çalıştırmak için hesaplama maliyetini ölçer. Bir model çok sayıda parametreye sahip olabilir ancak düşük FLOP'lara (örneğin, ağırlıklar seyrek kullanılıyorsa) veya az sayıda parametreye sahip olabilir ancak yüksek FLOP'lara (örneğin, parametre başına çok sayıda işlem içeriyorsa) sahip olabilir. Her iki metrik de verimliliği değerlendirmek için önemlidir. Örneğin, YOLOv9 bazı öncüllerine kıyasla nispeten daha az parametre ve FLOP ile yüksek doğruluk elde etmek için teknikler sunmuştur.
  • FLOP'lar ve Çıkarım Hızı: FLOP'lar teorik hesaplama işini temsil ederken, çıkarım hızı (genellikle Saniye Başına Kare (FPS) veya çıkarım başına milisaniye olarak ölçülür) belirli bir donanım üzerinde ölçülen gerçek performanstır. Bellek bant genişliği, yazılım yığını gibi faktörler (PyTorch, TensorFlow), niceleme ve yığın boyutu gerçek dünya hızını önemli ölçüde etkiler. Gecikme ve verim için optimizasyon, pratik performansın sadece FLOP'ların ötesinde nasıl ayarlanabileceğini göstermektedir.
  • FLOP'lara karşı MAC'ler/MACC: Çarpma-Toplama İşlemleri (MAC'ler veya MACC), konvolüsyonel sinir ağlarında (CNN'ler) yaygın olan birleştirilmiş çarpma ve toplama işlemlerinin sayısını sayar. Bir MAC tipik olarak bir çarpma ve bir toplama içerdiğinden, genellikle 2 FLOP olarak tahmin edilir. Bazı araştırma makaleleri veya model kartları FLOP yerine MAC'leri bildirir. Hangi metriğin kullanıldığını kontrol etmek çok önemlidir, çünkü kabaca iki kat farklıdırlar. Raporlanan hesaplama maliyetlerine göre modelleri karşılaştırırken bu farkı anlamak çok önemlidir.

Uygulamalar ve Örnekler

FLOP'lar çeşitli yapay zeka ve makine öğrenimi bağlamlarında yaygın olarak kullanılmaktadır:

  1. Uç Dağıtımı için Model Seçimi: Akıllı bir güvenlik kamerası geliştiren bir şirket, sınırlı işlem gücüne sahip bir uç cihazda verimli bir şekilde çalışabilecek bir nesne algılama modeline ihtiyaç duyar. Farklı Ultralytics YOLO boyutları (örneğin, YOLO11n vs. YOLO11s) dahil olmak üzere çeşitli modelleri karşılaştırırlar. Her model için bildirilen FLOP'ları ( Ultralytics YOLO11 belgelerinde bulunanlar gibi) inceleyerek, cihazın hesaplama bütçesi (donanım FLOP'ları olarak ölçülür) göz önüne alındığında gecikme gereksinimlerini karşılayan en büyük modeli seçebilirler. YOLO11n gibi düşük FLOPs modelleri başlıca adaylardır.
  2. Yeni Mimarilerin Kıyaslanması: Yeni bir bilgisayarla görme mimarisi geliştiren araştırmacıların bu mimarinin verimliliğini göstermesi gerekir. Modellerinin doğruluğunu (ör. mAP) COCO gibi standart kıyaslama veri kümelerindeki GFLOP'ları ile karşılaştırırlar. Geliştirilmiş ödünleşimleri göstermek için modellerini, mevcut son teknoloji modellerle ( EfficientNet veya çeşitli YOLO sürümleri gibi) birlikte doğruluk-vs-FLOPs grafiğinde çizerler. YOLOv9 vs YOLOX gibi birçok model karşılaştırma sayfası, FLOP'ları temel bir karşılaştırma noktası olarak kullanıyor.

FLOP'ları Hesaplama ve Tahmin Etme

FLOP'lar tipik olarak modelin mimarisini katman katman analiz ederek ve giriş/çıkış boyutlarına ve katman türüne(konvolüsyon, tam bağlı, vb.) göre her katman için gereken işlemleri toplayarak hesaplanır. Derin öğrenme çerçevelerindeki fvcore veya yerleşik profilleyiciler gibi çeşitli araçlar ve kütüphaneler bu hesaplamanın otomatikleştirilmesine yardımcı olabilir veya tahminler sağlayabilir. Giriş çözünürlüğü, birçok görüntü modeli için FLOP sayısını önemli ölçüde etkiler.

Sınırlamalar

Yararlı olsa da FLOP'ların sınırlamaları vardır:

  • Önemli bir darboğaz oluşturabilecek bellek erişim maliyetlerini (MAC) hesaba katmazlar.
  • İşlemlerde mümkün olan paralellik derecesini yakalayamazlar.
  • Gerçek performans büyük ölçüde donanıma özgü optimizasyonlara ve altta yatan yazılım kütüphanelerinin(cuDNN, Intel MKL) verimliliğine bağlıdır.
  • Bazı işlemler (örneğin, ReLU gibi aktivasyon fonksiyonları) düşük FLOP sayılarına sahiptir ancak yine de gecikmeyi etkileyebilir.

Bu nedenle, FLOP'lar, model verimliliğinin tam bir resmi için diğer performans ölçümleri, parametreler ve gerçek dünya kıyaslamaları ile birlikte düşünülmelidir. Ultralytics HUB gibi araçlar, modellerin yönetilmesine ve geliştirme ve dağıtım sırasında çeşitli performans yönlerinin izlenmesine yardımcı olabilir.

Tümünü okuyun