Machine Learning: PyTorch 1.2 verbessert Scripting und Export

Das Machine-Learning-Framework von Facebook bringt eine neue API für TorchScript und kennt aktuelle Operator-Sets für das Austauschformat ONNX.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Machine Learning: PyTorch 1.2 verbessert Scripting und Export
Lesezeit: 4 Min.
Inhaltsverzeichnis

Facebook hat Version 1.2 des Machine-Learning-Frameworks PyTorch veröffentlicht. Das Release bringt vor allem Neuerungen für TorchScript und zum Exportieren von Modellen über das Austauschformat ONNX mit.

Außerdem gilt die in Version 1.1 eingeführte Anbindung an TensorBoard nicht mehr als experimentell. Neben dem eigentlichen Framework hat Facebook zudem die Bibliotheken torchaudio, torchtext und torchvision aktualisiert.

TorchScript ist seit PyTorch 1.0 im Framework enthalten. Der TorchScript-Compiler wandelt PyTorch-Modelle in einen statisch typisierten Graphen um. Data Scientists können dann im Eager-Modus Optimierungen und Anpassungen vornehmen und dabei ihre Modelle inkrementell nach TorchScript überführen.

Version 1.2 bringt nun eine neue API, die das Kompilieren von Modellen nach TypeScript deutlich vereinfachen soll. Außerdem erweitert das neue Release die von TorchScript erkannten Python-Befehle in PyTorch-Modellen. Um Entwicklern den Umstieg zur neuen API zu vereinfachen, hat Facebook einen Migrations-Leitfaden veröffentlicht.

Das Format Open Neural Network eXchange (ONNX) zum Export trainierter oder untrainierter Modelle in eine standardisierte Darstellung kennt PyTorch bereits seit geraumer Zeit. ONNX ermöglicht den Austausch zwischen unterschiedlichen Frameworks und vereinfacht beispielsweise das Übertragen von Modellen von PyTorch nach TensorFlow und umgekehrt.

Nun hat das PyTorch-Team in Zusammenarbeit mit Microsoft die Unterstützung der verfügbaren Operator Sets (OpSets) erweitert. PyTorch kennt neuerdings die OpSet-Versionen 7 (zu ONNX 1.2), 8 (1.3), 9 (1.4) und 10 (1.5). Ein Überblick über den Zusammenhang der Operator-Set- und ONNX-Version findet sich im ONNX-Repository auf GitHub.

Neu ist zudem das nn.Transformer-Modul, das ausschließlich auf sogenannten Attention Mechanism basiert, wie ihn die Abhandlung "Attention Is All You Need" erläutert. Das Modul beschreibt globale Abhängigkeiten zwischen der Ein- und Ausgabe, die sich aus dem Attention Mechanism ergeben. Es ist modular aufgebaut und erlaubt unter anderem den losgelösten Einsatz vom nn.TransformerEncoder statt des vollständigen nn.Transformer.

Schematische Darstellung der Transformation nach dem Attention Mechanism

(Bild: Facebook)

Die Anbindung an TensorBoard war zwar bereits in PyTorch 1.1 enthalten, galt dort jedoch noch als experimentell. Nun ist die Integration mit dem Visualisierungstoolkit für TensorFlow eine offizielle Funktion des Frameworks, und das zugehörige Tool lässt sich über den Befehl from torch.utils.tensorboard import SummaryWriter starten.

Neben dem Framework hat Facebook einige Libraries beziehungsweise Datensätze aktualisiert, die jedoch alle im Gegensatz zu PyTorch noch nicht die 1.x-Version erreicht haben. Die Erweiterung zur Textverarbeitung torchtext bekommt in Version 0.4 neue Datensätze für das Supervised Learning: AG_NEWS, SogouNews, DBpedia, YelpReviewPolarity, YelpReviewFull, YahooAnswers, AmazonReviewPolarity und AmazonReviewFull. Außerdem finden Entwickler neue Tutorials und Beispiele.

Für torchvision 0.4 lag der Fokus auf der verbesserten Video-Integration. Neu ist die Utility-Klasse VideoClips, die das Organisieren von Videoclips vereinfacht. Außerdem bringt das aktuelle Release vortrainierte Modelle, die auf dem Kinetics-400-Datensatz basieren, zum Klassifizieren von Aktionen mit.

Die Library torchaudio zum Verarbeiten und Analysieren von Audiosignalen und -wellenformen ist erst mit dem aktuellen Release 0.3 eine PyTorch-Erweiterung und Teil des Domain-APIs-Ökosystems (DAPI). Außerdem bietet torchaudio 0.3 erweiterte Funktionen zum Transformieren und Vorbereiten der Daten zur weiteren Verarbeitung.

Unter anderem ermöglicht die neue Transformation Resample das Up- und Downsampling in einen anderen Frequenzbereich. Darüber hinaus hat torchaudio 0.3 eine Kompatibilitätsschnittstelle für das Toolkit zur Spracherkennung Kaldi. In den jeweiligen Repositorys zu torchaudio, torchtext und torchvision finden sich zudem neue Tutorials, die den Einstieg erleichtern sollen.

Mehr Infos

Vom 30. September bis zum 2. Oktober findet in London die M³ 2019 statt. Auf der von heise Developer und The Register ausgerichteten Entwicklerkonferenz zu Machine Learning wird Sebastian Riedel von Facebook AI Research, der zudem Professor für Natural Language Processing und ML am University College London ist, eine Keynote halten.

Weitere Details zu PyTorch 1.2 sowie den Bibliotheken und Datensätzen finden sich im PyTorch-Blog. Die vollständige Liste der Neuerung lässt sich den Release Notes entnehmen. PyTorch ist als Open-Source-Projekt auf GitHub zu finden.

Siehe dazu auf heise Developer:

(rme)