Machine Learning: PyTorch 2.0 beschleunigt mit Python-basierter Kompilierung

Der in Python geschriebene Kompiliermodus torch.compile ist zur Haupt-API des Frameworks geworden. Dennoch bleibt das Major Release abwärtskompatibel.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen

(Bild: Machine Learning & Artificial Intelligence / Mike MacKenzie / cc-by-2.0))

Lesezeit: 2 Min.
Von
  • Maika Möbus

Das PyTorch-Team hat Version 2.0 des quelloffenen Machine-Learning-Frameworks veröffentlicht. Die zweite Hauptversion besinnt sich – nach einer früheren Migration verschiedener Bestandteile zu C++ – wieder mehr auf die Programmiersprache Python: Der in Python geschriebene Kompiliermodus torch.compile ist im Beta-Status angekommen und bildet nun die hauptsächliche API des Frameworks.

Die neue Richtung von PyTorch, mit torch.compile hin zu Python, war laut Angaben des Entwicklungsteams ausschlaggebend für die Benennung als Version 2.0. Der neue Kompiliermodus torch.compile soll die Performance deutlich erhöhen und basiert auf den in Python geschriebenen neuen Technologien TorchDynamo, AOTAutograd, PrimTorch und TorchInductor. Den Wechsel zum Python-basierten Kompiliermodus sowie dessen Funktionsweise hatte das Entwicklungsteam im Dezember 2022 bekanntgegeben und Zugriff darauf in Nightly Builds experimentell zur Verfügung gestellt.

Mit PyTorch 2.0 hat torch.compile den Beta-Status erreicht. Trotz seines Einsatzes als neue Haupt-API soll das Release vollkommen abwärtskompatibel sein, da es sich hierbei um ein optionales, additives Feature handelt. Entwicklerinnen und Entwickler können wahlweise weiterhin die bekannte Eager Execution verwenden. Die Speedup-Zeiten des neuen Kompiliermodus sollen jedoch nach Messungen des PyTorch-Teams anhand verschiedener Open-Source-Modelle einen Geschwindigkeitsvorteil zwischen 38 und 76 Prozent bieten.

Neben einigen weiteren Beta-Funktionen wie dem PyTorch-MPS-Backend zum GPU-beschleunigten Training auf Mac-Plattformen und der Integration der funktorch-APIs im torch.func-Modul führt das neue Release zudem eine stabile, hochperformante Implementierung der PyTorch-Transformer-API ein.

Mit dem Erscheinen von PyTorch 2.0 haben auch die PyTorch-Domain-Libraries zahlreiche neue Beta-Features erhalten. Beispielsweise stehen in TorchAudio 2.0 neue Operatoren unter torchaudio.functional und torchaudio.transforms bereit. Sie lassen sich dazu verwenden, Trainingsdaten synthetisch zu diversifizieren, um die Generalisierbarkeit von Downstream-Modellen zu verbessern.

Im PyTorch-Blog sind die Highlights von Version 2.0 sowie die neuen Library-Funktionen aufgeführt. Wer weiter ins Detail gehen will, findet die kompletten Release Notes auf GitHub.

(mai)