PyTorch Lightning 1.0: PyTorch, nur schneller und flexibler

Mit einer stabilen API tritt das auf PyTorch basierende Framework an, auch komplexe Deep-Learning-Modelltrainings einfach und skalierbar zu gestalten.

In Pocket speichern vorlesen Druckansicht

(Bild: Hit1912 / Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Matthias Parbel

Das im März 2019 erstmals vorgestellte Projekt PyTorch Lightning hat den Meilenstein der Versionsnummer 1.0 erreicht, wie das Entwicklerteam um Gründer William Falcon nun bekanntgegeben hat. Das auf PyTorch basierende Framework für das Training von Machine-Learning-Modellen tritt ab sofort mit einer finalen und stabilen API an. PyTorch Lightning will vor allem komplexe wissenschaftliche ML- und Deep-Learning-Modelltrainings einfacher und skalierbarer gestalten. Dazu lässt das Framework – im Unterschied zu beispielsweise PyTorch – einerseits Interaktion zwischen Modellen zu und trennt andererseits konsequent zwischen dem Modelltraining und den Anpassungen an die notwendige Recheninfrastruktur.

Das Versprechen der PyTorch Lightning-Macher lautet: Komplexe ML- und DL-Modelle lassen sich auch auf multiplen GPUs, TPUs sowie CPUs und bei Bedarf auch in 16-bit-Genauigkeit trainieren, ohne den Code verändern zu müssen. Das setzt jedoch eine klare Strukturierung von Deep-Learning-Projekten in vier Bereiche voraus: Der für das Training geschriebene Modellcode fließt in das sogenannte LightningModule ein. Engineering Code für die Hardware- und plattformspezifischen Anpassungen bleibt dem Lightning Trainer überlassen. Die zu untersuchenden Daten lassen sich entweder über PyTorch Dataloaders oder in einem LightningDataModule organisieren. Darüber hinaus erforderlicher Code, beispielsweise für das Logging, lässt sich in Callbacks einbinden.

Während die Herangehensweise einer Abfolge von Verarbeitungsschritte in den Modulen verbreiteter ML-Frameworks wie PyTorch durchaus auch für das Trainieren und den produktiven Einsatz komplexer Modelle geeignet ist, legt das Team hinter PyTorch Lightning seinen Fokus auf die besonders herausfordernden Fälle interagierender Modelle. Generative Adversarial Networks (GAN), BERT (Bidirectional Encoder Representations from Transformers) oder auch Auto-Encoder eröffnen durch Interaktion zwar größere Flexibilität, die aber beim Skalieren von Projekten schnell zum Hindernis werden kann. Daher baut PyTorch Lightning auf das Konzept eines Deep-Learning-Systems, das die über komplexe Regeln interagierenden Modelle in einer Sammlung bündelt.

PyTorch Lightning fasst interagierende Modelle wie Auto-Encoder in einem System zusammen.

(Bild: PyTorch Lightning)

Mit seiner stabilisierten API soll das Framework nun nicht nur reif sein für anspruchsvolle Forschungs- und Testprojekte, sondern auch für den produktiven Betrieb von Deep-Learning-Modellen – auf den unterschiedlichsten Computing-Plattformen und mit umfassender Skalierbarkeit. Dazu trägt nach Ansicht des Entwicklerteams auch die Fähigkeit von Lightning bei, Code bei Bedarf in die Formate ONNX und Torchscript zu exportieren, sodass auch Wissenschaftler und Data Scientists Modelle in Produktion überführen können, ohne dafür über die Expertise von ML-Ingenieuren verfügen zu müssen.

Weitergehende Informationen zu PyTorch Lightning 1.0 enthält der Blogbeitrag zur Veröffentlichung des Major Release. Interessierte finden auf der Homepage des Projekts sowie auf GitHub zusätzliche Details, nachvollziehbare Beispiele sowie Tutorials.

(map)