PyTorch vs TensorFlow: Die richtige Software für maschinelles Lernen

Welche ML-Bibliothek sich langfristig durchsetzen könnte und wo PyTorch und TensorFlow bereits die bevorzugten Technologien sind

PyTorch und TensorFlow sind heute zwei der beliebtesten Technologien im Bereich der KI-Programmierung.  Beide sind Bibliotheken/Frameworks auf höherer Ebene, die die Entwicklung effizienter machen, indem sie sofort einsatzbereite Codemodule und Tools bereitstellen. Sie sind wahrscheinlich die am meisten miteinander verglichenen Bibliotheken auf dem Gebiet des maschinellen Lernens und des Deep Learning.

Trotz des annähernd gleichen Anwendungsbereichs und der Tatsache, dass es sich bei beiden um Open-Source-Technologien handelt, gibt es jedoch einige Unterschiede. In diesem Beitrag heben wir einige dieser Unterschiede hervor und betrachten ihre Verwendung in Industrie und Forschung. Außerdem geben wir eine Vorstellung davon, welche Technologie wann zu empfehlen ist.

Was ist maschinelles Lernen (ML – Machine Learning)?

Maschinelles Lernen ist zusammen mit Deep Learning eine der Unterkategorien der künstlichen Intelligenz. Typischerweise wird maschinelles Lernen als die Fähigkeit einer Maschine beschrieben, Wissen aus Erfahrung „künstlich“ zu erzeugen. Das bedeutet, dass Algorithmen nach Abschluss so genannter Lernphasen, z. B. durch Einspeisung gesammelter Daten, lernen, bestimmte Reaktionen auf bestimmte und sich ändernde Bedingungen zu zeigen. Auf diese Weise sollen komplexe Aufgaben auf eine Weise gelöst werden, die der menschlichen Herangehensweise an die Problemlösung ähnelt.

So beschreibt der KI-Pionier Arthur Samuel das maschinelle Lernen als „das Forschungsgebiet, das Computern die Fähigkeit verleiht, zu lernen, ohne ausdrücklich programmiert zu werden“. Für eine ausführlichere Erklärung des maschinellen Lernens empfehlen wir diesen von Sara Brown und dem MIT veröffentlichten Artikel.

Was sind ML-Bibliotheken wie PyTorch und TensorFlow?

Mit der fortschreitenden Entwicklung des maschinellen Lernens sind auch Frameworks höherer Ordnung entstanden, die mit den bekannteren JavaScript-Bibliotheken und -Frameworks wie React, Angular und Vue verglichen werden können, um den Entwicklungsprozess effizienter zu gestalten. Zwar arbeiten Entwickler im Bereich des maschinellen Lernens immer noch mit einfachen Programmiersprachen wie Python und C++, aber ein immer größerer Teil der Entwicklung basiert inzwischen auf Bibliotheken und Frameworks.

Der Vorteil der Verwendung von ML-Frameworks oder -Bibliotheken ist, dass man sich nicht mit den Grundlagen oder Kernalgorithmen befassen muss, um Anwendungen für maschinelles Lernen zu entwickeln. Sie werden als fertige Module oder Code-Komponenten bereitgestellt, die gemischt, angepasst und individuell zusammengestellt werden können, um individuelle Softwareanwendungen zu erstellen.

Bibliotheken erleichtern weniger erfahrenen Entwicklern die Programmierung im Bereich des maschinellen Lernens und erhöhen die Produktivität erfahrener Entwickler. ML-Frameworks wie TensorFlow oder PyTorch werden auch in der kommerziellen und akademischen Forschung und Entwicklung am häufigsten eingesetzt.

Maschinelles Lernen ist ein aufstrebender Bereich der Informationstechnologie und gilt als eine der Schlüsseltechnologien, die die nächste Technologiegeneration prägen werden. Folglich haben viele Unternehmen und Organisationen großes Interesse an der Arbeit und Forschung in diesem Bereich gezeigt. Infolgedessen wurden viele ML-Frameworks von Unternehmen wie dem Microsoft Cognitive Toolkit (CNTK) von Microsoft oder von Institutionen wie Theano von der Universität von Montreal entwickelt.

Die beiden beliebtesten Frameworks für maschinelles Lernen sind jedoch PyTorch und TensorFlow. Beide werden zum Teil als Frameworks und als Bibliotheken bezeichnet. Der Unterschied zwischen einer Bibliothek und einem Framework liegt im Grad der Freiheit, die Entwickler bei der Kombination von Out-of-the-Box-Modulen und -Komponenten haben, und nicht in einer theoretischen Debatte, die hier von großem Nutzen ist; deshalb werden wir uns nicht damit befassen. Mehr über den theoretischen Unterschied zwischen einer Bibliothek und einem Framework können Sie hier nachlesen.

Was ist TensorFlow?

TensorFlow ist ein vom Google Brain Team entwickeltes ML-Framework, das für eine Reihe von Aufgaben der künstlichen Intelligenz verwendet werden kann. Die von Google unter der Apache-Lizenz 2.0 freigegebene Open-Source-Technologie wurde erstmals 2015 veröffentlicht, bis die aktualisierte Version TensorFlow 2.0 im Jahr 2019 erschien.

Die mit TensorFlow durchgeführten Rechenoperationen werden auf sogenannten Tensoren (multilineare Abbildungen) ausgeführt, worauf der Name TensorFlow beruht. Die Rechenoperationen werden von künstlichen neuronalen Netzen ausgeführt, deren Struktur mit den natürlichen neuronalen Netzen verglichen wird, die das menschliche Problemlösen ermöglichen.

TensorFlow wird in allen Bereichen der künstlichen Intelligenz eingesetzt. Zum Beispiel wurden zahlreiche Google-Anwendungen wie Spracherkennung, Gmail, Google Photos oder die Google-Suchmaschine mit TensorFlow entwickelt. Google verwendet neuronale Netze, die auf TensorFlow basieren, um seine Produkte zu verbessern oder neue Funktionen hinzuzufügen.

TensorFlow läuft auf allen wichtigen Betriebssystemen, d.h. Microsoft Windows, MacOS, Linux, iOs sowie Android und unterstützt eine Vielzahl von Programmiersprachen, deren Liste mit Bibliotheken von Drittanbietern erweitert werden kann. Zum Beispiel läuft TensorFlow hauptsächlich auf C++, JavaScript und Java, wobei Python wahrscheinlich am häufigsten mit TensorFlow und im maschinellen Lernen selbst verwendet wird.

Was ist PyTorch?

PyTorch, eine Open-Source-Technologie, die unter der BSD-Lizenz veröffentlicht wurde, ist eine ML-Bibliothek, die von Facebooks AI Research Lab (FAIR) entwickelt wurde. Die unter Verwendung der Programmiersprachen Python und C++ sowie der CUDA-API entwickelte ML-Technologie wurde erstmals im September 2016 veröffentlicht und wird seitdem für viele Anwendungen des maschinellen Lernens verwendet.

PyTorch ist, wie der Name schon sagt, in erster Linie für die Verwendung in Python konzipiert, obwohl PyTorch auch über eine C++-Schnittstelle verfügt. Torch wiederum ist ebenfalls eine Open-Source-Bibliothek für maschinelles Lernen, auf der PyTorch grundlegend basiert, und in Kombination mit Python der Namensgeber von PyTorch.

Wie in TensorFlow können in PyTorch Tensoren analysiert und künstliche neuronale Netze erstellt werden. Um die Bibliothek richtig nutzen zu können, werden bewährte Python-Bibliotheken wie SciPy, Cython, meist aber NumPy verwendet. Seit 2019 ist die Nutzung von PyTorch nicht mehr auf die Betriebssysteme Windows, macOS und Linux beschränkt, mit der Einführung von PyTorch Mobile werden nun auch die Plattformen Android und iOS unterstützt.

PyTorch entwickelt sich (wie auch TensorFlow) aufgrund des zunehmenden Interesses an Machine Learning-Anwendungen enorm. Die Stärke der Community des Kernsystems von PyTorch macht das Tool zukunftssicher und ermutigt mehr und mehr Unternehmen und andere Organisationen, es in ihre Technologie-Stacks zu integrieren.

So hat beispielsweise die Non-Profit-Organisation OpenAI, die sich fast ausschließlich mit der Erforschung künstlicher Intelligenz befasst, angekündigt, dass sie PyTorch als standardisiertes Framework für die Umsetzung von Deep-Learning-Projekten (einem Teilbereich von ML) verwenden wird.

PyTorch vs TensorFlow: Features und Funktionen

PyTorch vs TensorFlow: die wichtigsten Überlegungen für Ihr Unternehmen

Für nachhaltige Softwareprojekte ist die Wahl des richtigen Tech-Stacks entscheidend. Erfolgreiche Unternehmen planen ihre Softwarelösungen auch langfristig, was bedeutet, dass die richtigen Technologien für das Unternehmen sowohl aus technischer als auch aus strategischer Sicht ausgewählt werden müssen. Dabei spielen Überlegungen wie die Verfügbarkeit von Entwicklern mit dem entsprechenden Know-how eine Rolle – und nicht nur das.

In der sich schnell wandelnden IT-Branche werden ständig neue Technologien auf den Markt gebracht, was die Möglichkeiten von verwendbaren Technologie-Stacks weiter erhöht. Unternehmen müssen jedoch vorsichtig sein, wenn es darum geht, auf die “ glänzende neue Sache “ aufzuspringen, auch wenn sie technisch vielversprechend aussieht. Der Einsatz von Werkzeugen und Technologien, die noch nicht eindeutig zukunftssicher sind, könnte später große Probleme bereiten, wenn sie obsolet werden oder nur noch schwer besetzt werden können.

Betrachten wir also einige nichttechnische Überlegungen zur Auswahl der beiden ML-Bibliotheken PyTorch und TensorFlow. Wenn Sie sich das jährliche StackOverflow-Survey ansehen, die von StackOverflow veröffentlicht wird und in der Programmiergemeinschaft anerkannt ist, können Sie sehen, dass TensorFlow wahrscheinlich die beliebteste reine ML-Bibliothek ist, mit fast 70 % mehr Benutzern als PyTorch.

Im Jahr 2021 verwendeten etwa 16,5% der befragten Entwickler TensorFlow und fast 10% Torch/PyTorch. Auch wenn der Abstand immer noch relativ groß ist, hat er sich in den letzten Jahren deutlich verringert. In der Umfrage von 2018 hatte TensorFlow noch fast fünfmal so viele Nutzer wie PyTorch. Drei Jahre später waren es nicht einmal mehr doppelt so viele. Beide Technologien gewinnen deutlich an Popularität, was auch auf die zunehmende Nutzung von künstlicher Intelligenz und Machine Learning zurückzuführen ist. In jedem Fall ist die aktuelle Wachstumsrate der Nutzung von PyTorch höher als die von TensorFlow, was durchaus bedeuten kann, dass sich die Lücke in den kommenden Jahren weiter schließt.

TensorFlow wird mit ziemlicher Sicherheit ein stark genutztes Framework bleiben und könnte bei der allgemeinen Nutzung einen Vorsprung vor Pytorch behalten. Es ist jedoch bereits der Fall, dass die Verwendung von PyTorch die von TensorFlow in der Forschung in vielen Bereichen übersteigt. Neben OpenAI haben sich auch andere Organisationen, die sich mit der Weiterentwicklung von KI-Technologien beschäftigen, für PyTorch ausgesprochen.

Die nachstehende Übersicht zeigt die Zunahme der eigenständigen Erwähnungen von PyTorch in wissenschaftlich veröffentlichten Arbeiten im Vergleich zu TensorFlow. Diese sind nach Beiträgen sortiert, die auf einigen der größten Forschungskonferenzen der IT-Branche veröffentlicht wurden.

CVPR, ICCV, ECCV – Computer Vision Konferenz
NAACL, ACL, EMNLP – Natural language processing (NLP)- Konferenz
ICML, ICLR, NeurIPS – Allgemeine ML- Konferenz

pytorch vs ternsorflow - graph

Quelle: thegadient

Wie die Grafik zeigt, ist die Popularität von PyTorch unter Forschern sprunghaft angestiegen. Vor 2017 wurde PyTorch im Vergleich zu TensorFlow in wissenschaftlichen Veröffentlichungen auf den hier gezeigten Forschungskonferenzen kaum erwähnt. Im Jahr 2019 jedoch wurde PyTorch in einer großen Anzahl von Beiträgen gesondert erwähnt, und fast 80 % der auf der ACL oder NAACL veröffentlichten Arbeiten nannten PyTorch, ohne TensorFlow zu erwähnen.

Fazit

Der „First-Mover-Vorteil“ von TensorFlow, kombiniert mit der Tatsache, dass es auch eine großartige Technologie ist, bedeutet, dass es derzeit die führende ML-Bibliothek in der Wirtschaft und Industrie ist, gemessen an der Nutzung. PyTorch liegt trotz seines schnellen Wachstums in Wirtschaft und Industrie immer noch hinter seinem konkurrierenden Framework/Bibliothek zurück, was die Häufigkeit der Nutzung angeht. Aber die Tatsache, dass PyTorch sich in Forschung und Entwicklung durchgesetzt hat, deutet darauf hin, dass in Zukunft mehr Unternehmen auf PyTorch umsteigen könnten.

Tatsache ist, dass PyTorch und TensorFlow beide sehr gute Optionen für das maschinelle Lernen sind, und welche Technologie die optimale Wahl ist, hängt natürlich von den Besonderheiten des Projekts ab.

Im Allgemeinen wird PyTorch empfohlen, wenn Sie gerade erst mit dem maschinellen Lernen beginnen, da seine Einfachheit Anfängern eine sanftere Lernkurve bietet. Neben der Einfachheit sind Leistung und API die Stärken von PyTorch, die von Entwicklern, insbesondere in der Forschung, häufig genannt werden.

Für eine allgemein gute Leistung und Stabilität der Produktionsumgebung wird oft TensorFlow empfohlen. Allerdings ist es ungewöhnlich, auf Anwendungsfälle zu stoßen, in denen TensorFlow etwas nicht kann, was PyTorch kann und umgekehrt. Daher hängt die Wahl oft von den verfügbaren Entwicklerressourcen, langfristigen strategischen Überlegungen und persönlichen Vorlieben ab.

Ausgewählte Blogbeiträge