Wenn Sie auf "Alle Cookies akzeptieren" klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Mehr Infos
Cookie-Einstellungen
Wenn Sie auf "Alle Cookies akzeptieren" klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Mehr Infos
Verbessern Sie das Training und die Bereitstellung von Ultralytics YOLOv5-Modellen mit DeepSparse von Neural Magic für eine Leistung der GPU-Klasse auf CPUs. Erzielen Sie schnellere, skalierbare YOLOv5-Bereitstellungen.
Sie möchten die Ausbildung und den Einsatz Ihrer YOLOv5-Modelle beschleunigen? Wir haben das Richtige für Sie! Wir stellen Ihnen unseren neuesten Partner vor: Neural Magic. Da Neural Magic Software-Tools anbietet, die den Schwerpunkt auf höchste Modellleistung und einfache Arbeitsabläufe legen, ist es nur natürlich, dass wir uns zusammengetan haben, um eine Lösung anzubieten, die den YOLOv5-Bereitstellungsprozess noch besser macht.
DeepSparse ist die CPU-Inferenz-Laufzeit von Neural Magic, die die Vorteile der Sparsamkeit und der niedrigpräzisen Arithmetik in neuronalen Netzen nutzt, um eine außergewöhnliche Leistung auf Standardhardware zu bieten. Im Vergleich zur ONNX Runtime-Basisversion bietet DeepSparse beispielsweise eine 5,8-fache Beschleunigung für YOLOv5s, die auf demselben Rechner ausgeführt werden!
Zum ersten Mal können Ihre Deep Learning-Workloads die Leistungsanforderungen der Produktion erfüllen, ohne die Komplexität und Kosten von Hardware-Beschleunigern. Einfach ausgedrückt: DeepSparse bietet Ihnen die Leistung von GPUs und die Einfachheit von Software:
Flexible Bereitstellungen: Konsistente Ausführung in der Cloud, im Rechenzentrum und am Netzwerkrand mit jedem Hardware-Anbieter
Unendliche Skalierbarkeit: Skalierung mit Standard-Kubernetes, vertikal auf Hunderte von Kernen oder vollständig abstrahiert mit Serverless
Einfache Integration: Verwenden Sie saubere APIs, um Ihr Modell in eine Anwendung zu integrieren und es in der Produktion zu überwachen.
Erzielen Sie GPU-Leistung auf handelsüblichen CPUs
DeepSparse nutzt die Sparsamkeit des Modells, um seine Leistung zu beschleunigen.
Die Sparsifizierung durch Pruning und Quantisierung ermöglicht eine Verringerung der Größe und des Rechenaufwands für die Ausführung eines Netzes um Größenordnungen bei gleichbleibend hoher Genauigkeit. DeepSparse ist sparsamkeitsbewusst, überspringt die Multiplikation mit Null und reduziert den Rechenaufwand in einem Vorwärtsdurchlauf. Da Sparse-Berechnungen speichergebunden sind, führt DeepSparse das Netzwerk in der Tiefe aus und unterteilt das Problem in Tensor Columns, vertikale Berechnungsstreifen, die in den Cache passen.
Sparse-Netzwerke mit komprimierter Berechnung, die tiefenweise im Cache ausgeführt werden, ermöglichen DeepSparse eine Leistung der GPU-Klasse auf CPUs!
Erstellen einer spärlichen Version von YOLOv5, die auf benutzerdefinierten Daten trainiert wurde
Das Open-Source-Modell-Repository von Neural Magic, SparseZoo, enthält vorgesparste Prüfpunkte für jedes YOLOv5-Modell. Mit SparseML, das in Ultralytics integriert ist, können Sie einen Sparse-Checkpoint mit einem einzigen CLI-Befehl auf Ihre Daten abstimmen.
Führen Sie den folgenden Befehl aus, um DeepSparse zu installieren. Wir empfehlen Ihnen, eine virtuelle Umgebung mit Python zu verwenden.
pip install deepsparse[server,yolo,onnxruntime]
Sammeln einer ONNX-Datei
DeepSparse akzeptiert ein Modell im ONNX-Format, das entweder als:
Ein lokaler Pfad zu einem ONNX-Modell
Ein SparseZoo-Stub, der ein Modell im SparseZoo identifiziert
Wir werden die standardmäßigen dichten YOLOv5s mit den beschnittenen YOLOv5s vergleichen, die durch die folgenden SparseZoo-Stubs identifiziert werden:
DeepSparse bietet bequeme APIs, um Ihr Modell in eine Anwendung zu integrieren.
Um die nachstehenden Einsatzbeispiele auszuprobieren, ziehen Sie ein Beispielbild für das Beispiel herunter und speichern es mit dem folgenden Befehl als basilica.jpg:
Pipelines umschließen die Vorverarbeitung und die Nachbearbeitung der Ausgabe um die Laufzeit herum und bieten eine saubere Schnittstelle für das Hinzufügen von DeepSparse zu einer Anwendung. Die DeepSparse-Ultralytics-Integration umfasst eine sofort einsatzbereite Pipeline, die Rohbilder akzeptiert und die Bounding Boxes ausgibt.
Erstellen Sie eine Pipeline und führen Sie eine Inferenz durch:
from deepsparse import Pipeline
# Liste der Bilder im lokalen Dateisystem images = ["basilica.jpg"]
Wenn Sie in der Cloud arbeiten, erhalten Sie möglicherweise eine Fehlermeldung, dass open-cv libGL.so.1 nicht finden kann. Wenn Sie das Folgende unter Ubuntu ausführen, wird es installiert:
apt-get install libgl1-mesa-glx
HTTP-Server
DeepSparse Server läuft auf dem beliebten FastAPI Web-Framework und dem Uvicorn Webserver. Mit nur einem einzigen CLI-Befehl können Sie ganz einfach einen Modellservice-Endpunkt mit DeepSparse einrichten. Der Server unterstützt jede Pipeline von DeepSparse, einschließlich der Objekterkennung mit YOLOv5, so dass Sie Rohbilder an den Endpunkt senden und die Bounding Boxen erhalten können.
Starten Sie den Server mit den beschnittenen und quantisierten YOLOv5:
Eine Beispielanfrage, die das Python-Paket requests verwendet:
Anfragen, json importieren
# Liste der Bilder für die Inferenz (lokale Dateien auf der Client-Seite) path = ['basilica.jpg'] files = [('request', open(img, 'rb')) for img in path]
# Anfrage über HTTP an den Endpunkt /predict/from_files senden url = 'http://0.0.0.0:5543/predict/from_files' resp = requests.post(url=url, files=files)
# Antwort wird in JSON zurückgegeben annotations = json.loads(resp.text) # Wörterbuch der Anmerkungsergebnisse bounding_boxes = annotations["boxes"] labels = annotations["labels"]
CLI annotieren
Sie können auch den Befehl annotate verwenden, damit die Engine ein mit Anmerkungen versehenes Foto auf der Festplatte speichert. Versuchen Sie es mit --source 0, um Ihren Live-Webcam-Feed mit Anmerkungen zu versehen!
Obwohl DeepSparse seine beste Leistung mit optimierten Sparse-Modellen erbringt, ist es auch mit den standardmäßigen dichten YOLOv5-Modellen gut einsetzbar.
Bei Batch 32 erreicht DeepSparse 70 Bilder/Sek. mit dem standardmäßigen dichten YOLOv5 - eine1,7-fache Leistungssteigerung gegenüber ORT!
Da c6i.8xlarge-Instanzen über VNNI-Anweisungen verfügen, kann der Durchsatz von DeepSparse weiter gesteigert werden, wenn die Gewichte in 4er-Blöcken beschnitten werden.
Bei Batch 1 erreicht DeepSparse 180 Items/Sek mit einem 4-Block pruned-quantized YOLOv5 - ein3,7-facher Leistungsgewinn gegenüber ONNX Runtime!
Bei Ultralytics gehen wir kommerzielle Partnerschaften mit anderen Start-ups ein, um die Forschung und Entwicklung unserer großartigen Open-Source-Tools wie YOLOv5 zu finanzieren, damit sie für alle kostenlos bleiben. Dieser Artikel kann Affiliate-Links zu diesen Partnern enthalten.