YOLO26 ile tanış: yeni nesil görsel AI.
Ultralytics
Entegrasyonlar

CPU'larda GPU Sınıfı Performans için Ultralytics YOLOv5'i Neural Magic'in DeepSparse'ı ile Dağıt

CPU'larda GPU sınıfı performans için Neural Magic'in DeepSparse'ı ile Ultralytics YOLOv5 model eğitimini ve dağıtımını güçlendir. Daha hızlı, ölçeklenebilir YOLOv5 dağıtımlarına ulaş.

NUNuvola Ladi5 min read
Ultralytics YOLOv5'i CPU'larda Neural Magic'in DeepSparse'ı ile dağıtmak

YOLOv5 modellerinin eğitimini ve dağıtımını hızlandırmak mı istiyorsun? Seni düşündük! En yeni ortağımız Neural Magic ile tanış. Neural Magic, model performansını ve iş akışı basitliğini ön plana çıkaran yazılım araçları sunduğundan, YOLOv5 dağıtım sürecini daha da iyi hale getirecek bir çözüm sunmak için bir araya gelmemiz çok doğal.

DeepSparse, Neural Magic'in CPU çıkarım çalışma zamanıdır ve standart donanımlarda olağanüstü performans sunmak için sinir ağlarındaki seyreklik (sparsity) ve düşük hassasiyetli aritmetikten yararlanır. Örneğin, ONNX Runtime temeline kıyasla DeepSparse, aynı makinede çalışan YOLOv5s için 5.8 kat hız artışı sağlar!

DeepSparse ile YOLOv5 İşlem Hızı Karşılaştırması

Derin öğrenme iş yüklerin, ilk defa donanım hızlandırıcılarının karmaşıklığı ve maliyeti olmadan üretimin performans taleplerini karşılayabilir. Basitçe ifade etmek gerekirse, DeepSparse sana GPU performansı ve yazılım basitliği sunar:

  1. Esnek Dağıtımlar: Bulut, veri merkezi ve uç noktalarda herhangi bir donanım sağlayıcısı ile tutarlı bir şekilde çalıştır
  2. Sonsuz Ölçeklenebilirlik: Standart Kubernetes ile ölçeği genişlet, 100'lerce çekirdeğe dikey olarak çık veya sunucusuz (serverless) yapıyla tamamen soyutla
  3. Kolay Entegrasyon: Modelini bir uygulamaya entegre etmek ve üretimde izlemek için temiz API'lar kullan

Link to this sectionStandart CPU'larda GPU Sınıfı Performansa Ulaş#

DeepSparse, performans artışı sağlamak için model seyrekliğinden (sparsity) yararlanır.

Budama (pruning) ve nicemleme (quantization) yoluyla seyrekleştirme, yüksek doğruluğu korurken bir ağı çalıştırmak için gereken boyut ve hesaplamada büyüklük derecesinde azalmalara olanak tanır. DeepSparse, seyreklik farkındalığına sahiptir; sıfır olan çarpma-toplama işlemlerini atlar ve ileri geçişteki (forward pass) hesaplama miktarını küçültür. Seyrek hesaplama bellek sınırlı olduğundan, DeepSparse ağı derinlemesine yürütür ve problemi önbelleğe sığan dikey hesaplama şeritleri olan Tensor Columns'a böler.

DeepSparse ve Ultralytics YOLOv5 Ağı

Sıkıştırılmış hesaplamaya sahip ve önbellekte derinlemesine yürütülen seyrek ağlar, DeepSparse'in CPU'larda GPU sınıfı performans sunmasını sağlar!

Link to this sectionÖzel Veriler Üzerinde Eğitilmiş Seyrek Bir YOLOv5 Sürümü Oluştur#

Neural Magic'in açık kaynaklı model deposu SparseZoo, her bir YOLOv5 modelinin önceden seyrekleştirilmiş kontrol noktalarını içerir. Ultralytics ile entegre olan SparseML'i kullanarak, tek bir CLI komutuyla seyrek bir kontrol noktasını verilerine göre ince ayar (fine-tune) yapabilirsin.

Link to this sectionYOLOv5'i DeepSparse İle Dağıt#

Link to this sectionDeepSparse'i Yükle#

DeepSparse'i yüklemek için aşağıdakini çalıştır. Python ile bir sanal ortam kullanmanı öneririz.

pip install deepsparse[server,yolo,onnxruntime]

Link to this sectionBir ONNX Dosyası Edin#

DeepSparse, modeli ONNX formatında kabul eder ve şu şekilde iletilir:

  • Bir ONNX modeline giden yerel bir yol
  • SparseZoo'daki bir modeli tanımlayan bir SparseZoo kısa yolu (stub)

Standart yoğun (dense) YOLOv5s'i, aşağıdaki SparseZoo kısa yolları ile tanımlanan budanmış-nicemlenmiş (pruned-quantized) YOLOv5s ile karşılaştıracağız:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Link to this sectionBir Model Dağıt#

DeepSparse, modelini bir uygulamaya entegre etmek için kullanışlı API'lar sunar.

Aşağıdaki dağıtım örneklerini denemek için, örnek bir görseli şu komutla basilica.jpg olarak kaydet ve indir:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

Link to this sectionPython API#

Pipeline'lar, çalışma zamanının etrafında ön işleme ve çıktı sonrası işlemeyi sarmalar ve DeepSparse'i bir uygulamaya eklemek için temiz bir arayüz sağlar. DeepSparse-Ultralytics entegrasyonu, ham görüntüleri kabul eden ve sınırlayıcı kutuları (bounding boxes) çıktı olarak veren kullanıma hazır bir Pipeline içerir.

Bir Pipeline oluştur ve çıkarımı çalıştır:

from deepsparse import Pipeline

# list of images in local filesystem
images = ["basilica.jpg"]

# create Pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# run inference on images, receive bounding boxes + classes
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

Bulutta çalışıyorsan, open-cv'nin libGL.so.1 dosyasını bulamadığına dair bir hata alabilirsin. Ubuntu üzerinde aşağıdakini çalıştırmak bunu kuracaktır:

apt-get install libgl1-mesa-glx

Link to this sectionHTTP Sunucusu#

DeepSparse Sunucusu, popüler FastAPI web çatısı ve Uvicorn web sunucusu üzerinde çalışır. Tek bir CLI komutuyla, DeepSparse ile kolayca bir model servis uç noktası kurabilirsin. Sunucu, YOLOv5 ile nesne algılama da dahil olmak üzere DeepSparse'ten herhangi bir Pipeline'ı destekler ve uç noktaya ham görüntüler gönderip sınırlayıcı kutuları almanı sağlar.

Sunucuyu budanmış-nicemlenmiş YOLOv5s ile çalıştır:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Python'ın requests paketini kullanan bir örnek istek:

import requests, json

# list of images for inference (local files on client side)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# send request over HTTP to /predict/from_files endpoint
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# response is returned in JSON
annotations = json.loads(resp.text)  # dictionary of annotation results
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

Link to this sectionAnnotate CLI#

Motorun diskte açıklamalı (annotated) bir fotoğraf kaydetmesini sağlamak için annotate komutunu da kullanabilirsin. Canlı web kamerası akışını açıklamak için --source 0 kullanmayı dene!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

Yukarıdaki komutu çalıştırmak bir annotation-results klasörü oluşturacak ve açıklamalı görüntüyü içine kaydedecektir.

YOLOv5 ile Açıklamalı Bazilika

Link to this sectionPerformans Karşılaştırması#

DeepSparse'in kıyaslama (benchmarking) betiğini kullanarak, DeepSparse'in YOLOv5s üzerindeki verimliliğini ONNX Runtime'ın verimliliği ile karşılaştıracağız.

Kıyaslamalar bir AWS c6i.8xlarge örneğinde (16 çekirdek) çalıştırıldı.

Link to this sectionBatch 32 Performans Karşılaştırması#

Link to this sectionONNX Runtime Temel Değeri#

Batch 32'de ONNX Runtime, standart yoğun YOLOv5s ile 42 görüntü/sn elde eder:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

Orijinal Model Yolu: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Boyutu: 32 Senaryo: sync Verimlilik (öğe/sn): 41.9025

Link to this sectionDeepSparse Yoğun Performans#

DeepSparse en iyi performansını optimize edilmiş seyrek modellerle sunsa da, standart yoğun YOLOv5s ile de iyi performans gösterir.

Batch 32'de DeepSparse, standart yoğun YOLOv5s ile 70 görüntü/sn elde eder—ORT'ye göre 1.7 kat performans iyileştirmesi!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

Orijinal Model Yolu: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Boyutu: 32 Senaryo: sync Verimlilik (öğe/sn): 69.5546

Link to this sectionDeepSparse Seyrek Performans#

Modele seyreklik uygulandığında, DeepSparse'in ONNX Runtime'a karşı performans kazançları daha da güçlü hale gelir.

Batch 32'de DeepSparse, budanmış-nicemlenmiş YOLOv5s ile 241 görüntü/sn elde eder—ORT'ye göre 5.8 kat performans iyileştirmesi!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

Orijinal Model Yolu: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Boyutu: 32 Senaryo: sync Verimlilik (öğe/sn): 241.2452

Link to this sectionBatch 1 Performans Karşılaştırması#

DeepSparse, gecikmeye duyarlı batch 1 senaryosu için de ONNX Runtime'a göre hız artışı sağlayabilir.

Link to this sectionONNX Runtime Temel Değeri#

Batch 1'de ONNX Runtime, standart yoğun YOLOv5s ile 48 görüntü/sn elde eder.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

Orijinal Model Yolu: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Boyutu: 1 Senaryo: sync Verimlilik (öğe/sn): 48.0921

Link to this sectionDeepSparse Seyrek Performans#

Modele seyreklik uygulandığında, DeepSparse'in ONNX Runtime'a karşı performans kazançları daha da güçlü hale gelir.

Batch 1'de DeepSparse, budanmış-nicemlenmiş YOLOv5s ile 135 görüntü/sn elde eder—ONNX Runtime'a göre 2.8 kat performans iyileştirmesi!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

Orijinal Model Yolu: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Boyutu: 1 Senaryo: sync Verimlilik (öğe/sn): 134.9468

c6i.8xlarge örnekleri VNNI yönergelerine sahip olduğundan, ağırlıklar 4'lü bloklar halinde budanırsa DeepSparse'in verimliliği daha da artırılabilir.

Batch 1'de DeepSparse, 4 bloklu budanmış-nicemlenmiş YOLOv5s ile 180 öğe/sn elde eder—ONNX Runtime'a göre 3.7 kat performans kazancı!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

Orijinal Model Yolu: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni Batch Boyutu: 1 Senaryo: sync Verimlilik (öğe/sn): 179.7375

Ve işte bu kadar! YOLOv5 dağıtımını DeepSparse ile optimize etmeye hazırsın.

Link to this sectionYOLOv5 ve DeepSparse ile Başla#

Bizimle iletişime geçmek için topluluğumuza katıl ve soru ve yorumlarını bizimle paylaş. Ultralytics YOLOv5 deposuna ve tüm YOLOv5 dağıtımı için Neural Magic belgelerine göz at.

Ultralytics olarak, YOLOv5 gibi harika açık kaynaklı araçlarımızı herkes için ücretsiz tutmak adına araştırma ve geliştirme çalışmalarımızı finanse etmemize yardımcı olmaları için diğer girişimlerle ticari ortaklıklar kuruyoruz. Bu makale, bu ortaklara ait satış ortaklığı bağlantıları içerebilir.

Explore solutions

Real-time AI that works with your team

Robotikte AI

Daha akıllı makineleri Ultralytics YOLO modelleriyle destekle. Robotikteki Vision AI; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Lojistikte Yapay Zeka

Ultralytics YOLO modelleri ile lojistiği kolaylaştır. Görü Yapay Zekası; paket inceleme, ayıklama, araç takibi ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Real-time AI that works with your team

Perakendede AI

Perakendeyi Ultralytics YOLO modelleri ile yeniden hayal et. Görü Yapay Zekası; envanter takibi, raf izleme, sıra yönetimi ve daha akıllı müşteri içgörüleri sağlar.
Daha fazla bilgi edin
Real-time AI that works with your team

Sağlıkta Yapay Zeka

Ultralytics YOLO modelleriyle sağlık çözümleri oluştur. Sağlıkta görüntü tabanlı yapay zeka; daha hızlı tıbbi görüntülemeyi, daha akıllı teşhisleri ve hasta izlemeyi güçlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Üretimde Yapay Zeka

Ultralytics YOLO modelleri ile üretimi optimize et. Görü Yapay Zekası; kalite kontrol, kusur tespiti, KKD uyumu ve montaj hattı otomasyonunu yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your operation

Otomotivde yapay zeka

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görü uygula. Görüntü tabanlı yapay zeka; yol güvenliğini, sürücü yardımını ve araç otomasyonunu daha akıllı yollar için geliştirir.
Daha fazla bilgi edin
Real-time AI tailored to your operation

Tarımda yapay zeka

Ultralytics YOLO modelleriyle akıllı tarıma görüntü tabanlı yapay zeka getir. Daha yüksek ve akıllı verimler için mahsul takibini, hayvancılık izlemeyi ve hassas tarımı güçlendir.
Daha fazla bilgi edin
Real-time AI that works with your team

Robotikte AI

Daha akıllı makineleri Ultralytics YOLO modelleriyle destekle. Robotikteki Vision AI; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Lojistikte Yapay Zeka

Ultralytics YOLO modelleri ile lojistiği kolaylaştır. Görü Yapay Zekası; paket inceleme, ayıklama, araç takibi ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Real-time AI that works with your team

Perakendede AI

Perakendeyi Ultralytics YOLO modelleri ile yeniden hayal et. Görü Yapay Zekası; envanter takibi, raf izleme, sıra yönetimi ve daha akıllı müşteri içgörüleri sağlar.
Daha fazla bilgi edin
Real-time AI that works with your team

Sağlıkta Yapay Zeka

Ultralytics YOLO modelleriyle sağlık çözümleri oluştur. Sağlıkta görüntü tabanlı yapay zeka; daha hızlı tıbbi görüntülemeyi, daha akıllı teşhisleri ve hasta izlemeyi güçlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Üretimde Yapay Zeka

Ultralytics YOLO modelleri ile üretimi optimize et. Görü Yapay Zekası; kalite kontrol, kusur tespiti, KKD uyumu ve montaj hattı otomasyonunu yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your operation

Otomotivde yapay zeka

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görü uygula. Görüntü tabanlı yapay zeka; yol güvenliğini, sürücü yardımını ve araç otomasyonunu daha akıllı yollar için geliştirir.
Daha fazla bilgi edin
Real-time AI tailored to your operation

Tarımda yapay zeka

Ultralytics YOLO modelleriyle akıllı tarıma görüntü tabanlı yapay zeka getir. Daha yüksek ve akıllı verimler için mahsul takibini, hayvancılık izlemeyi ve hassas tarımı güçlendir.
Daha fazla bilgi edin
Real-time AI that works with your team

Robotikte AI

Daha akıllı makineleri Ultralytics YOLO modelleriyle destekle. Robotikteki Vision AI; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Lojistikte Yapay Zeka

Ultralytics YOLO modelleri ile lojistiği kolaylaştır. Görü Yapay Zekası; paket inceleme, ayıklama, araç takibi ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Real-time AI that works with your team

Perakendede AI

Perakendeyi Ultralytics YOLO modelleri ile yeniden hayal et. Görü Yapay Zekası; envanter takibi, raf izleme, sıra yönetimi ve daha akıllı müşteri içgörüleri sağlar.
Daha fazla bilgi edin
Real-time AI that works with your team

Sağlıkta Yapay Zeka

Ultralytics YOLO modelleriyle sağlık çözümleri oluştur. Sağlıkta görüntü tabanlı yapay zeka; daha hızlı tıbbi görüntülemeyi, daha akıllı teşhisleri ve hasta izlemeyi güçlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Üretimde Yapay Zeka

Ultralytics YOLO modelleri ile üretimi optimize et. Görü Yapay Zekası; kalite kontrol, kusur tespiti, KKD uyumu ve montaj hattı otomasyonunu yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your operation

Otomotivde yapay zeka

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görü uygula. Görüntü tabanlı yapay zeka; yol güvenliğini, sürücü yardımını ve araç otomasyonunu daha akıllı yollar için geliştirir.
Daha fazla bilgi edin
Real-time AI tailored to your operation

Tarımda yapay zeka

Ultralytics YOLO modelleriyle akıllı tarıma görüntü tabanlı yapay zeka getir. Daha yüksek ve akıllı verimler için mahsul takibini, hayvancılık izlemeyi ve hassas tarımı güçlendir.
Daha fazla bilgi edin

Yapay zekanın geleceğini birlikte inşa edelim!

Yolculuğuna makine öğreniminin geleceğiyle başla