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.
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:
Die Flexibilität von ONNX macht es in vielen Computer Vision und ML-Szenarien von unschätzbarem Wert.
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.
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.
Es ist wichtig, ONNX von verwandten Begriffen zu unterscheiden:
.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.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.