Schalten Sie ein zu YOLO Vision 2025!
25. September 2025
10:00 — 18:00 Uhr BST
Hybride Veranstaltung
Yolo Vision 2024
Glossar

ONNX (Open Neural Network Exchange)

Erfahren Sie, wie ONNX die Portabilität und Interoperabilität von KI-Modellen verbessert und die nahtlose Bereitstellung von Ultralytics YOLO-Modellen auf verschiedenen Plattformen ermöglicht.

ONNX (Open Neural Network Exchange) ist ein Open-Source-Format zur Darstellung von Modellen für maschinelles Lernen (ML). ONNX wurde von Unternehmen wie Microsoft und Facebook mitentwickelt und fungiert als universeller Übersetzer, der es Entwicklern ermöglicht, Modelle zwischen verschiedenen ML-Frameworks und -Tools zu verschieben. Diese Interoperabilität ist entscheidend für die Rationalisierung des Weges von der Modellentwicklung bis zur Produktion. Anstatt an ein einzelnes Ökosystem gebunden zu sein, können Teams ein Modell in einem Framework wie PyTorch trainieren und es für die Inferenz mit einem anderen Framework wie TensorFlow oder einer speziellen Inferenz-Engine bereitstellen. Ultralytics YOLO-Modelle können beispielsweise problemlos in das ONNX-Format exportiert werden, was maximale Flexibilität für die Bereitstellung auf verschiedenen Plattformen bietet.

Wie ONNX funktioniert

ONNX bietet eine Standarddefinition für einen Berechnungsgraphen sowie eine Liste integrierter Operatoren. Wenn Sie ein Modell in das ONNX-Format konvertieren, wird seine Architektur – bestehend aus Schichten und mathematischen Operationen – diesem universellen Standard zugeordnet. Das resultierende .onnx Datei enthält sowohl die Netzwerkstruktur als auch die trainierten Modellgewichte.

Diese standardisierte Datei kann dann von jedem Tool geladen werden, das die ONNX-Spezifikation unterstützt. Dazu gehören:

  • Deep-Learning-Frameworks: Frameworks wie PyTorch und TensorFlow verfügen über Hilfsprogramme, um ONNX-Modelle sowohl zu importieren als auch zu exportieren.
  • Inferenz-Runtimes: Hochleistungsfähige Runtimes wie ONNX Runtime, Intels OpenVINO und NVIDIAs TensorRT sind so konzipiert, dass sie ONNX-Modelle effizient auf spezifischer Hardware ausführen, z. B. auf einer CPU oder GPU.
  • Cloud-Dienste: Große Cloud-Plattformen, darunter Azure Machine Learning und Amazon SageMaker, verwenden ONNX, um das Model Serving zu vereinfachen.

Anwendungsfälle von ONNX in der Praxis

Die Flexibilität von ONNX macht es in vielen Computer Vision- und ML-Szenarien unschätzbar wertvoll.

  1. KI auf Edge-Geräten bereitstellen: Ein Entwickler trainiert möglicherweise ein komplexes Objekterkennungs-Modell wie Ultralytics YOLO11 auf einem leistungsstarken Desktop mit NVIDIA-GPUs. Damit die Anwendung auf einem Edge-Gerät mit geringem Stromverbrauch wie einem Raspberry Pi oder einer intelligenten Kamera in der Einzelhandelsanalyse ausgeführt werden kann, wird das Modell nach ONNX exportiert. Es kann dann von einer Laufzeitumgebung wie ONNX Runtime oder OpenVINO optimiert werden, um eine effiziente Leistung auf der Zielhardware zu erzielen, ohne dass die ursprüngliche PyTorch-Umgebung erforderlich ist.

  2. Integration von Modellen in verschiedene Anwendungen: Betrachten Sie ein Healthcare-Unternehmen, das ein medizinisches Bildanalysemodell mit Python und TensorFlow entwickelt. Die bestehende Softwareinfrastruktur des Krankenhauses basiert auf C# und .NET. Anstatt das Modell neu zu schreiben, exportiert das Team es nach ONNX. Die C#-Anwendung kann dann die ONNX Runtime für .NET verwenden, um die Fähigkeiten des Modells direkt zu integrieren, was die Entwicklungszeit und -komplexität erheblich reduziert.

ONNX vs. verwandte Konzepte

Es ist wichtig, ONNX von verwandten Begriffen zu unterscheiden:

  • Framework-Spezifische Formate: Formate wie PyTorchs .pt oder TensorFlows SavedModel sind nativ für ihre jeweiligen Frameworks. ONNX fungiert als Vermittler und ermöglicht die Konvertierung zwischen diesen Formaten oder die Bereitstellung über eine gemeinsame Laufzeitumgebung. TorchScript ist ein weiteres Format für die PyTorch-Modellserialisierung, das manchmal als Alternative oder Vorstufe zum ONNX-Export verwendet wird.
  • Inferenz-Engines/Runtimes: Tools wie ONNX Runtime, TensorRT und OpenVINO sind Softwarebibliotheken, die für die effiziente Ausführung von ML-Modellen entwickelt wurden. Viele dieser Engines können ONNX-Modelle verarbeiten und oft weitere Optimierungen (wie Quantisierung oder Graph Fusion) für bestimmte Hardwareziele anwenden. ONNX bietet die standardisierte Modelleingabe für diese Engines.

Zusammenfassend lässt sich sagen, dass ONNX ein wichtiger Standard ist, um Flexibilität und Interoperabilität in der Machine Learning Operations (MLOps)-Pipeline zu gewährleisten, der es Entwicklern ermöglicht, die besten Tools für Training und Deployment zu wählen, ohne durch Framework-Beschränkungen eingeschränkt zu werden. Plattformen wie Ultralytics HUB nutzen solche Formate, um den Weg von der Modellentwicklung zur realen Anwendung zu vereinfachen. Um mehr zu erfahren, besuchen Sie die offizielle ONNX-Website und erkunden Sie das Projekt auf GitHub.

Treten Sie der Ultralytics-Community bei

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert