Im Umfeld von Machine Learning beziehungsweise Deep Learning ist das Framework PyTorch derzeit das "next big thing". Das gilt insbesondere nach den aktuellen Releases 1.3 und 1.4, die zahlreiche Performance-Verbesserungen und entwicklerfreundliche Support-Features für mobile Plattformen enthalten. Wir nennen Ihnen fünf gute Gründe dafür, statt auf MXNet, Chainer oder TensorFlow künftig auf PyTorch zu setzen.
Wenn Sie TensorFlow-Nutzer sind und jetzt bereits die Zähne fletschen: Dieser Artikel soll nicht darlegen, wie gut oder schlecht eines der eben genannten Deep Learning Frameworks ist, sondern die Vorteile und Einsatzfelder von PyTorch ins Rampenlicht rücken.
1. PyTorch heißt Python
Ein wesentlicher Grund für die steigende Akzeptanz von PyTorch ist der zugrundeliegende Programmcode. Das Framework ist für die Programmiersprache Python konzipiert, die in vielen Fällen deutlich besser zu verstehen ist, als andere Coding-Sprachen. Models und Layer sind einfach Python "classes" - genau wie alles andere, egal ob "optimizers", "data loaders", "loss functions" oder "transformations".
Dank seines "eager-execution"-Modus fällt es nicht besonders schwer, PyTorch classes im Auge zu behalten. Debugging läuft per TensorBoard oder mit Standard-Python-Techniken. Das erleichtert Nutzern, die von anderen Data Science Frameworks wie Pandas oder Scikit-learn umsteigen wollen, erheblich den Einstieg.
PyTorch hat außerdem eine stabile API vorzuweisen: Bislang wurde lediglich eine größere Änderung vorgenommen - nämlich die Nutzung von Tensoren statt Variablen. Das liegt natürlich daran, dass es PyTorch noch nicht solange gibt. Es sorgt aber dafür, dass so gut wie jeder PyTorch-Programmcode wiedererkennbar und verständlich ist - unabhängig davon, für welche Version des Deep-Learning- Frameworks er geschrieben wurde.
2. Machine Learning "out of the box"
Dem "Out-of-the-box"-Gedanken folgt PyTorch nicht exklusiv, aber der Einstieg in das Deep-Learning- Framework gelingt bemerkenswert schnell und er geht einfach von der Hand. Mit Hilfe des PyTorch Hub gelangen sie zu einem vortrainierten ResNet-50 Model mit einer einzigen Codezeile:
Model = torch.hub.load('pytorch/vision', 'resnet50', pretrained=True)
Da der PyTorch Hub domänenübergreifend angelegt ist, finden sich hier zahlreiche Architekturen für die Arbeit mit Text-, Audio- und Bildmaterial. Neben Modellen beinhaltet PyTorch erwartungsgemäß eine lange Liste von "loss functions" und "optimizers" - bietet aber auch die Möglichkeit, Daten schnell und einfach einzuladen, bestehende Veränderungen miteinander zu integrieren oder eigene "loaders" anzulegen. Weil das Gesamtkonstrukt auf Python basiert, ist dazu lediglich die Implementierung eines Standard Class Interface notwendig.
- Gruppenfoto
Die Chancen, Risiken und Hemmschwellen beim Einsatz von Künstlicher Intelligenz und Machine Learning diskutierten Fachleute von Lösungsanbietern und Beratungshäusern (v.l.n.r.): Dr. Leonard Rothacker (Lufthansa Industry Solutions AS GmbH), Dr. Reza Bakhtiari (A1 Digital Deutschland GmbH), Eberhard Hechler (IBM Deutschland Research und Development GmbH), Dr. Christoph Angerer (NVIDIA), Daniela Schneider (Capgemini), Markus Schäfer (Molex) und Jürgen Hill (COMPUTERWOCHE). - Dr. Reza Bakhtiari, A1 Digital
„Deutschland spielt gegenwärtig im Bereich Künstliche Intelligenz und Deep Learning im internationalen Vergleich keine führende Rolle. Um das zu ändern, sind mehr Use Cases erforderlich. Außerdem fehlt es in Deutschland an Investoren, die Unternehmen und Start-ups im Bereich KI, Deep Learning und Maschinellem Lernen mit dem nötigen Kapital versorgen.“ - Daniela Schneider, Capgemini
„KI lässt sich in fast allen Branchen einsetzen. Auch Juristen, Biologen und Ärzte können von entsprechenden Anwendungen profitieren. Derzeit bietet sich der Einsatz von KI dort an, wo Menschen an Grenzen stoßen. Das heißt, es wird eine Zusammenarbeit von KI und Mensch geben. Wir sollten uns daher vor einer schizophrenen Haltung gegen KI hüten: Auf der einen Seite klagen viele Beschäftigte über eine zu hohe Belastung, auf der anderen Seite wird die Angst vor KI-Systemen geschürt, die diese Überlastung reduzieren könnten." - Eberhard Hechler, IBM Deutschland
„Entscheidend ist beim Einsatz von KI und ML, wer letztlich die Verantwortung für Aktionen trägt: der Algorithmus oder der Mensch. Diese Frage stellt sich beispielsweise beim autonomen Fahren. Eigentlich ist ein Ethikregelwerk erforderlich, das sich bei Machine-Learning- und Deep-Learning-Lösungen als Framework implementieren lässt. Aber das ist aus technischer Sicht noch nicht umsetzbar.“ - Dr. Leonard Rothacker, Lufthansa Industry Solutions
„Es ist nicht so, dass nur Unternehmen wie Google oder Amazon über genügend Daten verfügen, um KI und ML nutzbringend einzusetzen. Deutsche Unternehmen können hier ihre Erfahrung mit industriellen Anwendungen ausspielen. Gerade Deutschland als führende Industrienation muss den Einsatz dieser Technologien fördern, um die Konkurrenzfähigkeit seiner Unternehmen zu erhalten.“ - Markus Schäfer, Molex
„Bei einem beträchtlichen Teil der KI-Anwendungen handelt es sich im Grunde um Analytics-Applikationen. Nur lässt sich heute der Begriff ,Künstliche Intelligenz‘ besser verkaufen.“ - Dr. Christoph Angerer, NVIDIA
„Künstliche Intelligenz lässt sich auch dazu nutzen, die Vertraulichkeit von Informationen sicherzustellen. Ein Beispiel sind föderierte Lernsysteme in der Pharmabranche. Mehrere Hersteller können beispielsweise einen Datenbestand gemeinsam nutzen, etwa für Forschungszwecke. Die KI-Modelle werden dabei auf eine Weise trainiert, dass ein Hersteller keine sensiblen Informationen von Mitbewerbern zu Gesicht bekommt.“
3. PyTorch beherrscht die Wissenschaft
Für Wissenschaftler ist PyTorch inzwischen das Maß aller Dinge. Das lässt sich alleine schon daran ablesen, dass das Deep-Learning-Framework inzwischen bei allen wichtigen Veranstaltungen zum Thema Machine Learning und Deep Learning Thema ist. Bereits im Jahr 2018 verzeichnete PyTorch exorbitantes Wachstum - im Jahr 2019 wurde es zum State-of-the-Art Framework. Der Grund für diese Erfolgswelle liegt darin begründet, dass PyTorch auf Python basiert.
Mit neuen Konzepten und Ansätzen zu experimentieren, fällt eben wesentlich leichter, wenn bestimmte Komponenten innerhalb einer einfachen, stabilen Unterkategorie einer Python-Klassifizierung erstellt werden können. Wenn Sie einen Layer schreiben wollen, der Parameter-Informationen an TensorBoard oder ElasticSearch sendet, ist das kein Problem - gleiches gilt für die Einbindung von Bibliotheken für das Netzwerk-Training oder das Austesten ungewöhnlicher, neuer Training Loops. PyTorch wird Ihnen dabei nicht im Weg stehen.
Ein Umstand, der den Erfolg von PyTorch derzeit noch einschränkt: Geht es um die produktive Nutzung, führt weiterhin kein Weg an TensorFlow vorbei. Da sich PyTorch aber inzwischen auch mit Seldon Core und Kubeflow integrieren lässt, steht einem Deployment in Produktionsumgebungen per Kubernetes nichts mehr im Weg. Das ist übrigens (fast) genauso einfach wie mit TensorFlow.
4. Deep Learning wird einfacher
Es gibt viele Tutorials und E-Learning-Kurse zum Thema Deep Learning im Netz. In diesem Zusammenhang ist der kostenlose Kurs von fast.ai sehr empfehlenswert. Im ersten Jahr konzentrierte sich das fast.ai-Team noch stark auf Keras - inzwischen ist man auf PyTorch umgeschwenkt.
Die aktuelle Version des Kurses zeigt Ihnen, wie Sie Aufgaben wie Klassifizierungen, Segmentierungen und Predictions zu zufriedenstellenden Ergebnissen führen. Außerdem lernen Sie bei dieser Gelegenheit alles über GANs - inklusive einer ganzen Fülle von Tipps und Tricks, die selbst hartgesottene Experten überraschen könnten. Natürlich geht der Kurs von fast.ai auch auf die Grundlagen von PyTorch ein - etwa darauf, wie man eine Bibliothek anlegt.
5. Die PyTorch-Community
Die Webseite der PyTorch-Community weist eine ausgereifte Dokumentation auf, die auf dem aktuellen Release-Stand ist und daneben ein ausuferndes Set an Tutorials bereithält. Letztere geben über die Features von PyTorch genauso Auskunft, wie darüber, die Bibliotheken mit speziellen C++ "operators" zu erweitern. Insbesondere wenn neue Features hinzugefügt werden, sind die Tutorials Gold wert.
Neben der offiziellen Dokumentation empfiehlt sich auch ein Blick in das offizielle Community-Forum. Egal welches Problem Sie auch in Zusammenhang mit PyTorch plagen mag - hier dürften Sie die Hilfestellung finden, die Sie brauchen. Mit circa 1.500 abgesetzten Posts pro Woche ist die PyTorch Community eine äußerst aktive.
PyTorch: Vielversprechende Zukunft
Die Kombination der genannten fünf Gründe ist es, die PyTorch für viele Interessenten zum Deep Learning Framework der Wahl macht. Zwar gibt es definitiv Felder, die noch ausbaufähig sind - etwa wenn es um mobile Netzwerke oder die einfache Quantifizierung von Modellen geht. Angesichts der Entwicklungsgeschwindigkeit, die PyTorch bislang vorgelegt hat, ist aber damit zu rechnen, dass das Framework diese Defizite bis Ende 2020 weitgehend ausgeglichen hat.
Der positive Ausblick begründet sich in zwei weiteren Entwicklungen: Zum einen wurde mit PyTorch Elastic im Dezember 2019 ein neues (Beta-)Feature vorgestellt, dass die Training Packages von PyTorch erweitert, um besseres Training für großangelegte Modelle zu gewährleisten. Zum anderen hat OpenAI angekündigt, PyTorch fortan als primäres Entwicklungs-Framework zum Einsatz bringen zu wollen. Das kann man als großen Wurf für das Deep-Learning-Framework werten, schließlich bedeutet es, dass die Erfinder von GPT-2 PyTorch im Vergleich mit TensorFlow als die produktivere Umgebung einschätzen.
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.com.