Meet YOLO26: next-gen vision AI.

Link to this sectionYOLO için OpenVINO Çıkarım Optimizasyonu#

OpenVINO Ecosystem

Link to this sectionGiriş#

Derin öğrenme modellerini, özellikle de Ultralytics YOLO modelleri gibi nesne tespiti modellerini dağıtırken, optimum performansa ulaşmak çok önemlidir. Bu kılavuz, çıkarımı optimize etmek için Intel'in OpenVINO araç setinden yararlanmayı, gecikme süresi ve iş hacmine odaklanarak ele almaktadır. İster tüketici sınıfı uygulamalar ister büyük ölçekli dağıtımlar üzerinde çalışıyor ol, bu optimizasyon stratejilerini anlamak ve uygulamak, modellerinin çeşitli cihazlarda verimli bir şekilde çalışmasını sağlayacaktır.

Link to this sectionGecikme Süresi için Optimizasyon#

Gecikme süresi optimizasyonu, tüketici senaryolarında tipik olduğu üzere, tek bir girdiden tek bir model ile anında yanıt gerektiren uygulamalar için hayati önem taşır. Hedef, girdi ile çıkarım sonucu arasındaki gecikmeyi en aza indirmektir. Ancak, düşük gecikme süresine ulaşmak, özellikle eşzamanlı çıkarımlar yaparken veya birden fazla modeli yönetirken dikkatli bir değerlendirme gerektirir.

Link to this sectionGecikme Süresi Optimizasyonu için Temel Stratejiler:#

  • Cihaz Başına Tek Çıkarım: Düşük gecikme süresine ulaşmanın en basit yolu, cihaz başına aynı anda tek bir çıkarımla sınırlamaktır. Ek eşzamanlılık genellikle gecikme süresinin artmasına yol açar.
  • Alt Cihazlardan Yararlanma: Çok soketli CPU'lar veya çok bölmeli (multi-tile) GPU'lar gibi cihazlar, kendi dahili alt cihazlarını kullanarak minimum gecikme artışıyla birden fazla isteği yürütebilir.
  • OpenVINO Performance Hints: Utilizing OpenVINO's ov::LATENCY for the ov::performance_mode property during model compilation simplifies performance tuning, offering a device-agnostic and future-proof approach.

Link to this sectionİlk Çıkarım Gecikmesini Yönetme:#

  • Model Önbelleğe Alma: Gecikmeyi etkileyen model yükleme ve derleme sürelerini azaltmak için mümkün olduğunda model önbelleğe almayı kullan. Önbelleğe almanın uygun olmadığı senaryolar için CPU'lar genellikle en hızlı model yükleme sürelerini sunar.
  • Model Eşleme ve Okuma: Yükleme sürelerini azaltmak için OpenVINO, model okumayı eşleme ile değiştirdi. Ancak, model çıkarılabilir bir sürücüde veya ağ sürücüsündeyse, okumaya geri dönmek için ov::enable_mmap(false) kullanmayı düşün.
  • AUTO Cihaz Seçimi: Bu mod, çıkarımı CPU üzerinde başlatır ve hazır olduğunda bir hızlandırıcıya geçiş yaparak ilk çıkarım gecikmesini sorunsuz bir şekilde azaltır.

Link to this sectionİş Hacmi için Optimizasyon#

İş hacmi optimizasyonu, bireysel istek performansından önemli ölçüde ödün vermeden kaynak kullanımını en üst düzeye çıkararak aynı anda çok sayıda çıkarım isteğine hizmet eden senaryolar için çok önemlidir.

Link to this sectionİş Hacmi Optimizasyonu Yaklaşımları:#

  1. OpenVINO Performans İpuçları: Performans ipuçlarını kullanarak cihazlar genelinde iş hacmini artırmak için üst düzey, geleceğe dönük bir yöntem.

    import openvino.properties.hint as hints
    
    config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
    compiled_model = core.compile_model(model, "GPU", config)
  2. Açık Gruplandırma (Batching) ve Akışlar: Gelişmiş performans ayarı için açık gruplandırma ve akışların kullanımını içeren daha ayrıntılı bir yaklaşım.

Link to this sectionİş Hacmi Odaklı Uygulamalar Tasarlama:#

İş hacmini en üst düzeye çıkarmak için uygulamaların şunları yapması gerekir:

  • Girdileri paralel olarak işle ve cihazın yeteneklerinden tam olarak yararlan.
  • Veri akışını, paralel yürütme için zamanlanmış eşzamanlı çıkarım isteklerine ayır.
  • Verimliliği korumak ve cihazın boşta kalmasını önlemek için geri çağırmalarla (callbacks) birlikte Async API'yi kullan.

Link to this sectionÇoklu Cihaz Yürütme:#

OpenVINO'nun çoklu cihaz modu, uygulama düzeyinde cihaz yönetimi gerektirmeden çıkarım isteklerini cihazlar arasında otomatik olarak dengeleyerek iş hacmini ölçeklendirmeyi basitleştirir.

Link to this sectionGerçek Dünya Performans Kazanımları#

Ultralytics YOLO modelleri ile OpenVINO optimizasyonlarını uygulamak, önemli performans iyileştirmeleri sağlayabilir. Kıyaslamalarda gösterildiği gibi, kullanıcılar Intel CPU'larda 3 kata kadar daha hızlı çıkarım hızları deneyimleyebilir ve entegre GPU'lar, özel GPU'lar ve VPU'lar dahil olmak üzere Intel donanım yelpazesinde daha da büyük hızlanmalar mümkündür.

Örneğin, Intel Xeon CPU'larda YOLO26 modellerini çalıştırırken, OpenVINO ile optimize edilmiş sürümler, doğruluktan ödün vermeden, görüntü başına çıkarım süresi açısından PyTorch karşılıklarından sürekli olarak daha iyi performans gösterir.

Link to this sectionPratik Uygulama#

Ultralytics YOLO modelini OpenVINO için dışa aktarmak ve optimize etmek amacıyla dışa aktarma işlevini kullanabilirsin:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Export the model to OpenVINO format
model.export(format="openvino", quantize=16)  # Export with FP16 precision

Dışa aktardıktan sonra, optimize edilmiş model ile çıkarımı şu şekilde çalıştırabilirsin:

# Load the OpenVINO model
ov_model = YOLO("yolo26n_openvino_model/")

# Run inference (Ultralytics auto-selects OpenVINO LATENCY mode for batch=1)
results = ov_model("https://ultralytics.com/images/bus.jpg", verbose=True)

Link to this sectionSonuç#

Ultralytics YOLO modellerini OpenVINO ile gecikme süresi ve iş hacmi için optimize etmek, uygulamanın performansını önemli ölçüde artırabilir. Bu kılavuzda özetlenen stratejileri dikkatlice uygulayarak, geliştiriciler modellerinin verimli bir şekilde çalışmasını sağlayabilir ve çeşitli dağıtım senaryolarının taleplerini karşılayabilirler. Unutma, gecikme süresi veya iş hacmi için optimizasyon yapma seçimi, özel uygulama ihtiyaçlarına ve dağıtım ortamının özelliklerine bağlıdır.

Daha ayrıntılı teknik bilgiler ve en son güncellemeler için OpenVINO belgelerine ve Ultralytics YOLO deposuna başvur. Bu kaynaklar, derin öğrenme modellerinden en iyi şekilde yararlanmana yardımcı olacak derinlemesine kılavuzlar, eğitimler ve topluluk desteği sağlar.


Modellerinin optimum performansa ulaşmasını sağlamak sadece yapılandırmaları değiştirmekle ilgili değildir; uygulamanın ihtiyaçlarını anlamak ve bilinçli kararlar almakla ilgilidir. İster gerçek zamanlı yanıtlar için optimize ediyor ol, ister büyük ölçekli işleme için iş hacmini en üst düzeye çıkarıyor ol, Ultralytics YOLO modelleri ve OpenVINO kombinasyonu, geliştiricilerin yüksek performanslı AI çözümleri dağıtmaları için güçlü bir araç seti sunar.

Link to this sectionSSS#

Link to this sectionOpenVINO kullanarak Ultralytics YOLO modellerini düşük gecikme süresi için nasıl optimize ederim?#

Ultralytics YOLO modellerini düşük gecikme süresi için optimize etmek birkaç temel strateji içerir:

  1. Cihaz Başına Tek Çıkarım: Gecikmeleri en aza indirmek için çıkarımları cihaz başına aynı anda tek bir işlemle sınırla.
  2. Alt Cihazlardan Yararlanma: Çok soketli CPU'lar veya çok bölmeli GPU'lar gibi, birden fazla isteği minimum gecikme artışıyla işleyebilen cihazlardan yararlan.
  3. OpenVINO Performans İpuçları: Basitleştirilmiş, cihazdan bağımsız ayarlama için model derleme sırasında OpenVINO'nun ov::LATENCY parametresini kullan.

Gecikme süresini optimize etmeye yönelik daha pratik ipuçları için kılavuzumuzun Gecikme Süresi Optimizasyonu bölümüne göz at.

Link to this sectionUltralytics YOLO iş hacmini optimize etmek için neden OpenVINO kullanmalıyım?#

OpenVINO, performanstan ödün vermeden cihaz kaynak kullanımını en üst düzeye çıkararak Ultralytics YOLO model iş hacmini artırır. Temel avantajlar şunlardır:

  • Performans İpuçları: Cihazlar genelinde basit, üst düzey performans ayarlaması.
  • Açık Gruplandırma ve Akışlar: Gelişmiş performans için ince ayar.
  • Çoklu Cihaz Yürütme: Uygulama düzeyinde yönetimi kolaylaştıran otomatik çıkarım yük dengelemesi.

Örnek yapılandırma:

import openvino.properties.hint as hints

config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
compiled_model = core.compile_model(model, "GPU", config)

İş hacmi optimizasyonu hakkında daha fazla bilgiyi ayrıntılı kılavuzumuzun İş Hacmi Optimizasyonu bölümünde bulabilirsin.

Link to this sectionOpenVINO'da ilk çıkarım gecikmesini azaltmak için en iyi uygulama nedir?#

İlk çıkarım gecikmesini azaltmak için şu uygulamaları değerlendir:

  1. Model Önbelleğe Alma: Yükleme ve derleme sürelerini azaltmak için model önbelleğe almayı kullan.
  2. Model Eşleme ve Okuma: Varsayılan olarak eşlemeyi (ov::enable_mmap(true)) kullan, ancak model çıkarılabilir bir sürücüde veya ağ sürücüsündeyse okumaya (ov::enable_mmap(false)) geçiş yap.
  3. AUTO Cihaz Seçimi: CPU çıkarımıyla başlamak ve sorunsuz bir şekilde hızlandırıcıya geçiş yapmak için AUTO modunu kullan.

İlk çıkarım gecikmesini yönetmeye yönelik ayrıntılı stratejiler için İlk Çıkarım Gecikmesini Yönetme bölümüne bak.

Link to this sectionUltralytics YOLO ve OpenVINO ile gecikme süresi ve iş hacmi optimizasyonunu nasıl dengelerim?#

Gecikme süresi ve iş hacmi optimizasyonunu dengelemek, uygulama ihtiyaçlarını anlamayı gerektirir:

  • Gecikme Süresi Optimizasyonu: Anında yanıt gerektiren gerçek zamanlı uygulamalar (örneğin, tüketici sınıfı uygulamalar) için idealdir.
  • İş Hacmi Optimizasyonu: Kaynak kullanımını en üst düzeye çıkaran, birçok eşzamanlı çıkarımın olduğu senaryolar (örneğin, büyük ölçekli dağıtımlar) için en iyisidir.

OpenVINO'nun üst düzey performans ipuçlarını ve çoklu cihaz modlarını kullanmak, doğru dengeyi kurmana yardımcı olabilir. Özel gereksinimlerine göre uygun OpenVINO performans ipuçlarını seç.

Link to this sectionUltralytics YOLO modellerini OpenVINO dışında başka AI çerçeveleriyle kullanabilir miyim?#

Evet, Ultralytics YOLO modelleri son derece çok yönlüdür ve çeşitli AI çerçeveleriyle entegre edilebilir. Seçenekler şunlardır:

Diğer entegrasyonları Ultralytics Entegrasyonlar sayfasında keşfet.

Yorumlar