Machine Learning: ONNX 1.7 bereitet Trainerwechsel vor

Das Austauschformat für Machine-Learning-Modelle ONNX soll künftig die Weitergabe von Modellen während des Trainings ermöglichen.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Machine Learning: ONNX 1.7 bereitet Trainerwechsel vor
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag

Das Ökosystem und Austauschformat Open Neural Network Exchange (ONNX) ist in Version 1.7 erschienen. Das Release markiert den ersten Schritt zum Austausch von Machine-Learning-Modellen (ML) während des Trainings. Außerdem bringt es einige neue Operatoren mit und aktualisiert zahlreiche weitere.

Microsoft und Facebook hatten ONNX 2017 ins Leben gerufen, um Entwicklern und Data Scientists den Austausch von Machine-Learning-Modellen zu ermöglichen. So sollen sie ihre favorisierten Frameworks und Systeme vom Entwurf erster Prototypen bis zum Produktivbetrieb verwenden und die erstellten Modelle über das ONNX-Ökosystem standardisiert austauschen können.

Mehr Infos

ONNX

Denkbar ist der Entwurf eines Prototyps mit Facebooks Pytorch, die Weitergabe zum Training an Googles TensorFlow und der Produktivbetrieb in Microsoft Cognitive Toolkit. Seit November 2019 steht das ONNX-Projekt unter dem Dach der Linux Foundation.

Bisher ermöglichte ONNX zwar sowohl den Austausch trainierter als auch untrainierter ML-Modelle, aber eine Weitergabe während des Trainings war nicht vorgesehen. Das soll das Ökosystem nun ändern und startet im aktuellen Release eine Preview des Training-Supports. Er ermöglicht es, ein ML-Modell in einem Framework zu erstellen und das Training dort zu beginnen. Anschließend lässt sich das Modell auf ein anderes Framework oder eine ML-Runtime übertragen, um das Training fortzusetzen. Erklärtes Ziel dabei ist, dass das Trainingsergebnis zumindest theoretisch dasselbe wie mit dem ursprünglichen Framework ist.

Zum Umsetzen führt ONNX die neue Protobuf Message (Protocol Buffers) TrainingInfoProto ein, die Trainingsinformationen mit den zugehörigen Algorithmen und Initialisierern aufnimmt. Außerdem kennt ONNX spezielle Operatoren für das Training wie Gradient und GraphCall.

Allerdings sind die Konverter derzeit noch nicht auf Trainings vorbereitet. Die aktuelle Preview ist lediglich darauf ausgelegt, die Spezifikation zu testen, um die Konverter in künftigen ONNX-Releases anzupassen.

Neben der Vorschau auf den Training-Support bringt ONNX 1.7 einige weitere Operatoren, darunter einsum für die Einstein Summation sowie GreaterOrEqual und LessOrEqual. Zahlreiche weitere Operatoren hat die Community aktualisiert, darunter Max und Min sowie ReduceMax und ReduceMin.

Außerdem sind einige Operatoren nun zusätzlich als Funktionen umgesetzt, und die ONNX-Entwickler empfehlen dringend den Einsatz der Funktionen, wo sie verfügbar sind. Unter anderem gilt das für sämtliche Verlustfunktionen (Loss Functions).

Die vollständige Liste der Neuerungen von ONNX 1.7 lässt sich den Release Notes entnehmen. Das Open-Source-Projekt ist auf GitHub unter MIT-Lizenz verfügbar. Die ONNX-Site listet die Frameworks, Werkzeuge und Dienste auf, die sich mit dem Ökosystem verbinden lassen. (rme)