15 Punkte von xguru 2021-12-20 | 1 Kommentare | Auf WhatsApp teilen
  • Ü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

 
xguru 2021-12-20

Es ist auch interessant, das mit den Diskussionen aus 2019/2020 zu vergleichen.