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.
(Bild: Machine Learning & Artificial Intelligence / Mike MacKenzie / cc-by-2.0))
- 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.
Richtungsweisend und abwärtskompatibel
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.
Stabile API und weitere Beta-Features
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)