15 puntos por xguru 2021-12-20 | 1 comentarios | Compartir por WhatsApp
  • 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

 
xguru 2021-12-20

También es interesante compararlo con lo que se decía en 2019/2020.