ONNX

Open Neural Network Exchange

ONNX (Open Neural Network Exchange) ist ein offenes Format zur Repräsentation von Deep-Learning-Modellen. Mit ONNX können KI-Entwickler Modelle zwischen verschiedenen Tools austauschen und die für sie beste Kombination dieser Tools wählen. ONNX wird von Microsoft, Amazon, Facebook und weiteren Partnern als Open-Source-Projekt gemeinsam entwickelt und unterstützt.[2][3]

ONNX

ONNX logo main.png
Basisdaten

Aktuelle Version 1.7.0[1]
(9. Mai 2020)
Betriebssystem plattformübergreifend
Lizenz MIT-Lizenz
onnx.ai

ONNX ermöglicht es, Modelle in einem Framework zu trainieren und danach zur Gesichtserkennung, Erkennung von Gesten oder Objekten etc. auf ein anderes Framework zu übertragen. Hierdurch können Entwickler die jeweils passende Kombination von Werkzeugen einsetzen. ONNX-Modelle wurden 2019 in Caffe2, Microsoft Cognitive Toolkit, MXNet, PyTorch und OpenCV unterstützt, und es gibt Schnittstellen für viele andere gängige Frameworks und Bibliotheken.

Die LF AI Foundation, eine Unterorganisation der Linux Foundation, ist eine Organisation zum Aufbau eines Ökosystems zur Unterstützung von Open-Source-Innovationen in den Bereichen künstliche Intelligenz (KI), maschinelles Lernen (ML) und Deep Learning (DL). Sie hat am 14. November 2019 ONNX als Graduate-Level-Projekt aufgenommen. Diese Verlagerung von ONNX unter das Dach der LF AI Foundation wurde als wichtiger Meilenstein bei der Etablierung von ONNX als herstellerneutraler Open-Format-Standard angesehen.[4][5]

Der ONNX Model Zoo ist eine Sammlung von vortrainierten Modellen im Deep Learning Bereich, die im ONNX Format erhältlich sind. Zu jedem Modell gibt es Jupyter-Notebooks für das Modelltraining und die Durchführung von Inferenzen mit dem trainierten Modell. Die Notebooks sind in Python geschrieben und enthalten Links zum Trainingsdatensatz sowie Verweise auf das wissenschaftliche Originaldokument, das die Modellarchitektur beschreibt.

ONNX.jsBearbeiten

ONNX.js ist eine JavaScript-Bibliothek zum Ausführen von ONNX-Modellen in Webbrowsern und auf Node.js. Mit ONNX.js können Webentwickler vorab trainierte ONNX-Modelle direkt im Webbrowser einbinden und testen. Dies bringt folgende Vorteile: Reduzierung der Server-Client-Kommunikation, Schutz der Benutzerdaten, plattformübergreifendes Maschinelles Lernen ohne Installation von Software auf dem Client.

ONNX.js kann sowohl auf der CPU als auch auf der GPU ausgeführt werden. Für den Betrieb auf der CPU wird WebAssembly verwendet. Hierdurch wird das Modell mit nahezu nativer Geschwindigkeit ausgeführt. Darüber hinaus nutzt ONNX.js Web Worker, um eine "multi-threaded" Umgebung zur Parallelisierung der Datenverarbeitung bereitzustellen. Die empirische Auswertung zeigt sehr vielversprechende Leistungssteigerungen auf der CPU, indem sie die Vorteile von WebAssembly und Web Workers voll ausschöpft. Zur Ausführung auf GPUs dient WebGL, einen Standard für den Zugriff auf GPU-Funktionen.[6][7][8]

WeblinksBearbeiten

EinzelnachweiseBearbeiten

  1. Release 1.7.0. 9. Mai 2020 (abgerufen am 10. Mai 2020).
  2. Braddock Gaskill: ONNX: the Open Neural Network Exchange Format. Linux Journal, 25. April 2018, abgerufen am 17. Januar 2019 (englisch).
  3. heise online: Microsoft und Facebook machen gemeinsame KI-Sache. Abgerufen am 17. Januar 2019.
  4. LF AI Welcomes ONNX, Ecosystem for Interoperable AI Models, as Graduate Project. In: LF AI. 14. November 2019 (englisch, lfai.foundation [abgerufen am 15. November 2019]).
  5. heise online: Machine Learning: Linux Foundation übernimmt das ONNX-Projekt. Abgerufen am 15. November 2019.
  6. Microsoft: ONNX.js: run ONNX models using JavaScript. In: GitHub. 7. März 2019, abgerufen am 7. März 2019 (englisch).
  7. Will Badr: ONNX.js: Universal Deep Learning Models in The Browser. In: Towards Data Science. 8. Januar 2019, abgerufen am 7. März 2019 (englisch).
  8. ONNX.js - Run ONNX models in the browser (Demos). Microsoft, abgerufen am 7. März 2019 (englisch).