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