Vergleich von PyTorch und TensorFlow im Jahr 2022
(assemblyai.com)-
Üblicherweise heißt es, TensorFlow sei für den industriellen Einsatz und PyTorch für die Forschung, aber das basiert auf veralteten Informationen
-
Praktische Überlegungen lassen sich meist auf drei Vergleiche reduzieren
→ Modellverfügbarkeit: Wie viele Modelle stehen öffentlich zur Verfügung?
→ Deployment-Infrastruktur: Wie effizient lässt sich deployen?
→ Ökosystem: Unterstützung für verschiedene Umgebungen/Hardware
Model Availability
-
Sowohl PyTorch als auch TensorFlow haben eigene offizielle Modell-Repositories
-
HuggingFace
→ 85 % sind nur in PyTorch nutzbar, und selbst bei nicht exklusiven Modellen sind 50 % verfügbar. Insgesamt sind nur 16 % in TensorFlow nutzbar (nur 8 % ausschließlich in TF)
→ Bei den Top 30 der beliebtesten Modelle ist alles in PyTorch verfügbar, in TensorFlow jedoch nur 18 davon
- Forschungsarbeiten
→ Der Einsatz von PyTorch in jährlich eingereichten Papers steigt kontinuierlich
→ Von 7 % im Jahr 2017 auf fast 80 % im Jahr 2021
→ Wegen der Schwierigkeiten von TensorFlow 1 fiel die Wahl häufig auf PyTorch
→ Diese Schwierigkeiten wurden mit TensorFlow 2 im Jahr 2019 stark verbessert, aber PyTorch hatte sich bereits als forschungszentriertes Framework etabliert
→ 55 % der Forschenden, die 2018 TensorFlow nutzten, wechselten 2019 zu PyTorch
→ 85 % der Forschenden, die 2018 PyTorch nutzten, verwendeten es auch 2019 weiter
- Laut Daten von Papers With Code
→ TensorFlow nimmt weiter ab, während PyTorch und andere Frameworks zunehmend genutzt werden
→ Dieser Trend setzte sich auch nach dem Release von TensorFlow 2 fort. Die zuvor mit TF1 erlebten Schwierigkeiten ließen sich nicht mehr umkehren
-
Fazit: Bei der Modellverfügbarkeit dominiert PyTorch den Markt
-
Weitere Ausnahmen
→ GoogleAI nutzte hauptsächlich TensorFlow, Google Brain hingegen JAX/Flax
→ Auch DeepMind führte JAX ein und entwickelte mit Haiku zudem eine Neural-Network-Bibliothek für JAX (Sonnet for JAX)
→ JAX: ein separates von Google entwickeltes Framework, das in der Forschung immer beliebter wird
Deployment
- TensorFlow war von Anfang an für deployment-orientierte Anwendungen optimiert
→ Mit TensorFlow Serving, TensorFlow Lite usw. lässt sich ohne großen Aufwand auf Cloud-/Server-/Mobile-/IoT-Geräten deployen
- PyTorch war aus Deployment-Sicht lange sehr schwach, hat aber in den letzten Jahren daran gearbeitet, diese Lücke zu schließen
→ TorchServe und PyTorch Live
- Fazit: Aus Deployment-Sicht ist TensorFlow derzeit noch überlegen
→ Vor allem die Nutzung von TFLite lokal und auf Coral-Geräten ist auch für andere Industrien sehr wichtig
→ PyTorch Live konzentriert sich nur auf Mobile, und TorchServe befindet sich noch in einem frühen Stadium
Ecosystems
- PyTorch
→ Es gibt den offiziellen PyTorch Hub: mit verschiedenen Modellen für Audio/Vision/NLP usw.
→ SpeechBrain: offizielles Open-Source-Sprach-Toolkit mit vielen Funktionen wie ASR, Sprechererkennung und -verifikation
→ Es gibt zahlreiche Tools und Bibliotheken, darunter Fast.ai
→ TorchElastic: ein gemeinsames Projekt von AWS und Facebook
→ TorchX: Bibliothek für schnelle Machine-Learning-Entwicklung und Deployment
→ PyTorch Lightning: Keras of PyTorch
- TensorFlow
→ Offizieller TensorFlow Hub: mit verschiedenen Modellen einschließlich BERT
→ Model Garden: Source-Code-Repository für SOTA(State-of-the-ART)-Modelle
→ TensorFlow Extended(TFX): E2E-Plattform für Model-Deployment
→ Vertex AI: Googles Unified-Machine-Learning-Plattform in der Cloud
→ Media Pipe: multimodales, plattformübergreifendes Framework zum Erstellen von Machine-Learning-Pipelines für Funktionen wie Gesichtserkennung, Hand-Tracking und Objekterkennung
→ Coral: Toolkit zur Unterstützung von Produkten (IoT) mit lokaler eingebetteter AI
→ TensorFlow.js: JavaScript-Bibliothek für Machine Learning
→ TensorFlow Cloud: verbindet lokale Entwicklungsumgebungen mit Google Cloud
→ Colab: Cloud-basierte Notebook-Umgebung (ähnlich wie Jupyter)
→ Playground: Lernwerkzeug, um die Grundlagen neuronaler Netze zu verstehen
→ Datasets: speichert von Google regelmäßig veröffentlichte Datensätze (auch für PyTorch-Nutzer verwendbar)
- Fazit: TensorFlow ist beim Ökosystem überlegen
→ Google hat über lange Zeit viel investiert
→ Auch in Bereichen wie der Anbindung an Google Cloud oder dem Portieren auf Coral-Geräte ist es in manchen Feldern besser
Was sollte man also von beiden verwenden?
- Wenn man in der Industrie arbeitet, kann die Wahl je nach Branche unterschiedlich ausfallen (im Original gibt es ein Flowchart für eine einfache Auswahl)
→ Wer Deep Learning in einem industriellen Umfeld nutzt, verwendet wahrscheinlich bereits TensorFlow und kann dabei bleiben
→ Wegen TorchServe kann man aber auch PyTorch in Betracht ziehen
→ Für Mobile PyTorch Live, für Audio-/Video-Input TensorFlow
→ Wer AI im IoT einsetzt, sollte TensorFlow Lite + Coral nutzen
- Für Forschende?
→ Wahrscheinlich wird bereits PyTorch verwendet, und man kann dabei bleiben
→ Als besondere Ausnahme kann man bei Reinforcement Learning TensorFlow in Betracht ziehen
→ Wer TensorFlow nicht nutzen möchte, kann auch JAX erwägen
→ Egal, was man wählt: JAX sollte man 2022 im Blick behalten
- Für Lehrende?
→ Das kann vom Ziel des Curriculums abhängen
→ Wer Engineers ausbilden möchte, die Machine Learning sofort im Beruf einsetzen, sollte TensorFlow wählen
→ Wer Deep Learning und Deep-Learning-Modelle verstehen möchte, sollte PyTorch wählen
- Bei einem Karrierewechsel?
→ Sowohl PyTorch als auch TensorFlow sind gute Optionen
→ Man sollte das auswählen, was einfacher zu benutzen ist
→ Wer sich nicht an ein bestimmtes Framework binden will, ist mit dem als Industriestandard genutzten TensorFlow besser beraten
→ Bei Jobsuche und Recruiting schnitt TensorFlow besser ab
- Wenn man Deep Learning als Hobby betreibt?
→ Das hängt davon ab, was man machen will, aber grundsätzlich ist PyTorch besser
- Wenn man kompletter Anfänger im Deep Learning ist?
→ Es wird empfohlen, mit Keras zu beginnen
→ Wer eine eher Python-native Umgebung sucht, sollte PyTorch wählen, insbesondere PyTorch Lightning
1 Kommentare
Es ist auch interessant, das mit den Diskussionen aus 2019/2020 zu vergleichen.
Der aktuelle Stand der Machine-Learning-Frameworks [2019] https://de.news.hada.io/topic?id=696
Welche Richtung KI im Jahr 2020 nehmen wird, vorhergesagt von Machine-Learning-Experten https://de.news.hada.io/topic?id=1213
Interview mit einem Forscher, der sich KI selbst beigebracht hat und zu Google gekommen ist https://de.news.hada.io/topic?id=1347
Das TensorFlow-Ökosystem: von der Machine-Learning-Entwicklung bis zum Deployment https://de.news.hada.io/topic?id=1757
Googles Crashkurs für Machine Learning mit TensorFlow [Koreanisch] https://de.news.hada.io/topic?id=1052