Comparación entre PyTorch y TensorFlow en 2022
(assemblyai.com)-
Normalmente se dice que TensorFlow es para uso industrial y PyTorch para investigación, pero eso se basa en información antigua
-
Consideraciones prácticas: normalmente todo se reduce a comparar 3 cosas
→ disponibilidad de modelos: cuántos modelos se pueden usar públicamente
→ infraestructura de despliegue: qué tan eficientemente se puede desplegar
→ ecosistema: variedad de entornos/hardware
Disponibilidad de modelos
-
Tanto PyTorch como TensorFlow tienen sus propios repositorios oficiales de modelos
-
HuggingFace
→ el 85% solo se puede usar en PyTorch, y entre los modelos no exclusivos, el 50% también está disponible. Solo el 16% del total puede usarse en TensorFlow (8% solo en TF)
→ en el caso de los 30 modelos más populares, todos están disponibles en PyTorch, pero en TensorFlow solo 18
- Artículos de investigación
→ el uso de PyTorch en los artículos enviados cada año sigue aumentando
→ empezó con 7% en 2017 y en 2021 ya ocupaba casi el 80%
→ muchos eligieron PyTorch por la dificultad de TensorFlow 1
→ esos problemas mejoraron bastante en TensorFlow 2, lanzado en 2019, pero para entonces PyTorch ya se había consolidado como el referente en investigación
→ entre los investigadores que usaban TensorFlow en 2018, el 55% se pasó a PyTorch en 2019
→ entre los investigadores que usaban PyTorch en 2018, el 85% siguió usándolo en 2019
- Según los datos de Papers With Code
→ TensorFlow sigue bajando, mientras que PyTorch y otros frameworks se usan cada vez más
→ esta tendencia continuó incluso después del lanzamiento de TensorFlow 2. No fue suficiente para revertir las dificultades que existían en TF1
-
En conclusión, en disponibilidad de modelos PyTorch domina el mercado
-
Otras excepciones
→ GoogleAI usaba principalmente TensorFlow, pero Google Brain usa JAX/Flax
→ DeepMind también adoptó JAX y desarrolló Haiku, una biblioteca de redes neuronales para JAX (Sonnet for JAX)
→ JAX: framework creado aparte por Google. Está ganando popularidad en investigación
Despliegue
- TensorFlow estuvo optimizado desde el principio para aplicaciones orientadas al despliegue
→ con TensorFlow Serving, TensorFlow Lite y otros, se puede desplegar sin dolor en la nube/servidores/móviles/dispositivos IoT
- PyTorch fue muy débil desde la perspectiva de despliegue, pero en los últimos años ha trabajado para reducir esa brecha
→ TorchServe y PyTorch Live
- En conclusión, por ahora TensorFlow sigue siendo mejor en despliegue
→ en especial, la posibilidad de usar TFLite en local y en dispositivos Coral es algo muy necesario también en otras industrias
→ PyTorch Live se enfoca solo en móviles y TorchServe todavía está en una etapa temprana
Ecosistemas
- PyTorch
→ existe PyTorch Hub oficial: tiene varios modelos de Audio/Vision/NLP
→ SpeechBrain: toolkit oficial open source de voz, con muchas funciones como ASR/reconocimiento de hablante/autenticación
→ hay varias herramientas y bibliotecas, incluyendo Fast.ai
→ TorchElastic: proyecto de colaboración entre AWS y Facebook
→ TorchX: biblioteca para desarrollo y despliegue rápido de machine learning
→ PyTorch Lightning: el Keras de PyTorch
- TensorFlow
→ TensorFlow Hub oficial: varios modelos, incluyendo BERT
→ Model Garden: repositorio de código fuente para modelos SOTA(State-of-the-ART)
→ TensorFlow Extended(TFX): plataforma E2E para despliegue de modelos
→ Vertex AI: plataforma unificada de machine learning de Google Cloud
→ Media Pipe: framework multimodal y multiplataforma para crear pipelines de machine learning con funciones como reconocimiento facial, seguimiento de manos y reconocimiento de objetos
→ Coral: toolkit creado para soportar productos con IA local integrada (IOT)
→ TensorFlow.js: biblioteca JavaScript para machine learning
→ TensorFlow Cloud: conecta el entorno de desarrollo local con Google Cloud
→ Colab: entorno de notebooks en la nube (similar a Jupyter)
→ Playground: herramienta educativa ideal para entender los fundamentos de las redes neuronales
→ Datasets: almacena datasets publicados periódicamente por Google (también los pueden usar usuarios de PyTorch)
- En conclusión, TensorFlow tiene un mejor ecosistema
→ Google ha invertido mucho en eso
→ también es mejor en algunas áreas, como conectarse con Google Cloud o portar a dispositivos Coral
Entonces, ¿cuál de los dos conviene usar?
- Si trabajas en la industria, la elección puede variar según el sector en el que estés (el artículo original incluye un diagrama de flujo para facilitar la decisión)
→ si usas deep learning en un entorno industrial, probablemente ya estés usando TensorFlow y puedes seguir con eso
→ también se puede considerar PyTorch por TorchServe
→ si es móvil, usar PyTorch Live; si hay entrada de audio/video, TensorFlow
→ si usas IA en IoT, TensorFlow Lite + Coral
- ¿Si eres investigador?
→ probablemente ya estés usando PyTorch y puedes seguir con eso
→ como excepción, si haces Reinforcement Learning podrías considerar TensorFlow
→ si no quieres usar TensorFlow, también vale la pena considerar JAX
→ elijas lo que elijas, en 2022 hay que seguir de cerca a JAX
- ¿Si eres profesor?
→ puede variar según el objetivo del curso
→ si quieres formar ingenieros que usen machine learning de inmediato en el trabajo, TensorFlow
→ si quieres que entiendan el deep learning y los modelos de deep learning, PyTorch
- ¿Si estás cambiando de carrera?
→ tanto PyTorch como TensorFlow son buenas opciones
→ elige el que sea más fácil de usar
→ si no quieres quedar atado a un framework específico, TensorFlow puede ser mejor por ser más estándar en la industria
→ para buscar empleo o contratar, TensorFlow estaba mejor posicionado
- ¿Si haces deep learning como hobby?
→ depende de lo que quieras hacer, pero en general PyTorch es mejor
- ¿Si eres completamente principiante en deep learning?
→ se recomienda empezar con Keras
→ si buscas un entorno más parecido a Python nativo, PyTorch, en especial PyTorch Lightning
1 comentarios
También es interesante compararlo con lo que se decía en 2019/2020.
El estado actual de los frameworks de aprendizaje automático [2019] https://es.news.hada.io/topic?id=696
La dirección de la IA en 2020, según lo que prevén los expertos en aprendizaje automático https://es.news.hada.io/topic?id=1213
Entrevista con un investigador que aprendió IA por su cuenta y entró a Google https://es.news.hada.io/topic?id=1347
El ecosistema de TensorFlow: desde el desarrollo de aprendizaje automático hasta el despliegue https://es.news.hada.io/topic?id=1757
Curso intensivo de aprendizaje automático creado por Google con TensorFlow [en coreano] https://es.news.hada.io/topic?id=1052