Glossar

ONNX (Open Neural Network Exchange)

Entdecken Sie, wie ONNX die Übertragbarkeit 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 auszutauschen. Diese Interoperabilität ist entscheidend, um den Weg von der Modellentwicklung bis zur Produktion zu rationalisieren. Anstatt an ein einziges Ökosystem gebunden zu sein, können Teams ein Modell in einem Framework wie PyTorch trainieren und es für die Inferenz mit einem anderen wie TensorFlow oder einer spezialisierten Inferenz-Engine einsetzen. Die YOLO-Modelle von Ultralytics können beispielsweise problemlos in das ONNX-Format exportiert werden, was maximale Flexibilität für den Einsatz auf verschiedenen Plattformen bietet.

Wie ONNX funktioniert

ONNX bietet eine Standarddefinition für einen Berechnungsgraphen zusammen mit einer Liste eingebauter Operatoren. Wenn Sie ein Modell in das ONNX-Format konvertieren, wird seine Architektur - bestehend aus Schichten und mathematischen Operationen - auf diesen universellen Standard abgebildet. Das Ergebnis .onnx Datei enthält sowohl die Netzstruktur als auch die trainierten Modellgewichte.

Diese standardisierte Datei kann dann von jedem Tool geladen werden, das die ONNX-Spezifikation unterstützt. Dies schließt ein:

Praktische Anwendungen von ONNX

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

  1. Einsatz von KI auf Edge-Geräten: Ein Entwickler könnte ein komplexes Objekterkennungsmodell wie Ultralytics YOLO11 auf einem leistungsstarken Desktop mit NVIDIA-GPUs trainieren. Damit die Anwendung auf einem stromsparenden Edge-Gerät wie einem Raspberry Pi oder einer intelligenten Kamera für die Einzelhandelsanalyse ausgeführt werden kann, wird das Modell in ONNX exportiert. Es kann dann von einer Laufzeitumgebung wie ONNX Runtime oder OpenVINO für eine effiziente Leistung auf der Zielhardware optimiert werden, ohne dass die ursprüngliche PyTorch-Umgebung erforderlich ist.

  2. Integration von Modellen in verschiedene Anwendungen: Nehmen wir ein Unternehmen aus dem Gesundheitswesen, das ein medizinisches Bildanalysemodell mit Python und TensorFlow erstellt. Die bestehende Software-Infrastruktur des Krankenhauses ist mit C# und .NET aufgebaut. 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 Funktionen 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:

  • Rahmenspezifische Formate: Formate wie das von PyTorch .pt oder TensorFlows SavedModel sind nativ für ihre jeweiligen Frameworks. ONNX fungiert als Vermittler, der die Konvertierung zwischen diesen Formaten oder die Bereitstellung über eine gemeinsame Laufzeitumgebung ermöglicht. TorchScript ist ein weiteres Format für die Serialisierung von PyTorch-Modellen, das manchmal als Alternative oder Vorläufer zum ONNX-Export verwendet wird.
  • Inferenz-Engines/Laufzeiten: 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 verwenden, wobei oft weitere Optimierungen (wie Quantisierung oder Graphfusion) für bestimmte Hardware-Ziele vorgenommen werden. ONNX liefert 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 Pipeline für maschinelles Lernen (MLOps) zu gewährleisten und es Entwicklern zu ermöglichen, die besten Tools für Training und Einsatz zu wählen, ohne durch Framework-Einschränkungen eingeschränkt zu werden. Plattformen wie Ultralytics HUB nutzen solche Formate, um den Weg von der Modellentwicklung zur realen Anwendung zu vereinfachen. Wenn Sie mehr erfahren möchten, besuchen Sie die offizielle ONNX-Website und erkunden Sie das Projekt auf GitHub.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert