Google ha perdido la batalla del aprendizaje automático frente a Meta y va a apostar el futuro de sus propios productos a un nuevo proyecto interno de IA

Matthew Lynley
| Traducido por: 
Sundar Pachai BI

Getty

Google, en 2015, creó esencialmente el ecosistema moderno de aprendizaje automático cuando abrió un pequeño proyecto de investigación de Google Brain en 2015 llamado TensorFlow. Rápidamente, explotó en popularidad y convirtió a la empresa en guardiana de los principales productos de IA. 

Pero la historia es muy diferente en la actualidad, ya que Google ha perdido el favor de los desarrolladores frente a Meta. 

La herramienta de aprendizaje automático de Google, TensorFlow, que en su día fue omnipresente, ha perdido terreno frente a PyTorch, la herramienta de aprendizaje automático de Meta. Desarrollada por primera vez para Facebook y de código abierto en forma de beta en 2017, PyTorch está siendo considerada cada vez más como la líder. 

El estribillo se repite en las entrevistas con desarrolladores, expertos en hardware, proveedores de la nube y personas cercanas a los esfuerzos de aprendizaje automático de Google. TensorFlow ha perdido la guerra de las mentes y corazones de los desarrolladores. Algunas de esas personas incluso utilizaron la frase exacta sin que nadie se lo pidiera: "PyTorch se ha comido la merienda de TensorFlow".

A través de una serie de errores tácticos, decisiones de desarrollo y maniobras en la comunidad de código abierto por parte de Meta, los expertos dicen que la oportunidad de Google para guiar el futuro del aprendizaje automático en internet se puede estar escapando. Entre tanto, PyTorch se ha convertido en la herramienta de desarrollo de aprendizaje automático a la que recurren tanto los desarrolladores ocasionales como los investigadores científicos.

Ahora, bajo la sombra de PyTorch, Google ha estado construyendo silenciosamente un framework de aprendizaje automático, llamado JAX (en su momento un acrónimo de "Just After eXecution", pero oficialmente ya no significa nada), que muchos ven como el sucesor de TensorFlow.

Google Brain y la filial de IA DeepMind de Google han abandonado en gran medida TensorFlow en favor de JAX, allanando el camino para que el resto de Google siga su ejemplo, según explican a Business Insider varias personas cercanas al proyecto. Un representante de Google ha confirmado a Business Insider que JAX goza ahora de una adopción casi universal dentro de Google Brain y DeepMind.

15 exempleados de Google explican cómo descubrieron que había llegado la hora de dejar su puesto en el gigante de Silicon Valley

Al principio, JAX se enfrentó a una fuerte oposición interna, según personas cercanas a los esfuerzos de aprendizaje automático de Google. Los empleados de Google estaban acostumbrados a utilizar TensorFlow, según estas personas. Por muy poco manejable que fuera, constituía un incómodo factor de unión entre los googlers. El planteamiento de JAX era mucho más sencillo, pero no obstante permitió cambiar la forma en la que Google construía el software internamente, apuntan.

Ahora se espera que la herramienta se convierta en la piedra angular de todos los productos de Google que utilizan el aprendizaje automático en los próximos años, del mismo modo que TensorFlow lo hizo a finales de la década de 2010, según afirman quienes conocen el proyecto.

Y JAX parece haber salido de la órbita interna de Google: Salesforce ha contado a Business Insider que lo ha adoptado en sus equipos de investigación.

"JAX es una hazaña de la ingeniería", afirma Viral Shah, creador del lenguaje de programación Julia, que los expertos suelen comparar con JAX. "Pienso en JAX como un lenguaje de programación independiente que resulta que se instala a través de Python. Si te ciñes a las reglas que JAX quiere que sigas, entonces puede hacer su magia, lo cual es sorprendente en lo que puede hacer".

Google espera ahora volver a dar en el clavo al tiempo que aprende de los errores cometidos en su desarrollo de TensorFlow. Pero los expertos dicen que será un enorme desafío, ya que ahora tiene que desbancar a una herramienta de código abierto que se ha ganado la confianza de los desarrolladores.

Meta no ha facilitado ningún comentario al respecto en el momento de la publicación de este artículo.

El ocaso de TensorFlow y el ascenso de PyTorch

El engagement de PyTorch en un foro de desarrolladores de referencia está alcanzando rápidamente a TensorFlow, según datos facilitados a Business Insider. Los datos de engagement de Stack Overflow muestran que la popularidad de TensorFlow, medida en su porcentaje de preguntas realizadas en el foro, se ha estancado en los últimos años, mientras que el engagement de PyTorch sigue aumentando. 

Stack Overflow Jax Pytorch

Stack Overflow

TensorFlow comenzó con fuerza, explotando en popularidad tras su lanzamiento. Empresas como Uber y Airbnb y organizaciones como la NASA lo adoptaron rápidamente y comenzaron a utilizarlo para algunos de sus proyectos más complejos que requerían el entrenamiento de algoritmos en conjuntos de datos masivos. En noviembre de 2020 se había descargado 160 millones de veces.

Pero el aumento de características y las constantes actualizaciones de Google hicieron que TensorFlow fuera cada vez más difícil de manejar y poco amigable para los usuarios, incluso para aquellos dentro de Google, según dicen desarrolladores y personas cercanas al proyecto. 

Google tuvo que actualizar con frecuencia su frameworkcon nuevas herramientas a medida que el campo del aprendizaje automático avanzaba a un ritmo vertiginoso. Y el proyecto se extendió internamente a medida que se implicaba más y más gente, lo que llevó a una falta de foco en las partes que originalmente hicieron de TensorFlow la herramienta de referencia, según apuntan personas cercanas al proyecto.

Bernardo Quintero, fundador de VirusTotal

Este tipo de movimiento frenético del gato y el ratón es un problema frecuente en muchas empresas pioneras en el mercado, según explican los expertos a Business Insider. Google, por ejemplo, no fue la primera empresa en construir un motor de búsqueda; supo aprender de los errores de predecesoras como AltaVista o Yahoo.

PyTorch, por su parte, lanzó su versión de producción completa en 2018 desde el laboratorio de investigación de inteligencia artificial de Facebook. Mientras que tanto TensorFlow como PyTorch se construyeron sobre Python, el lenguaje preferido de los expertos en aprendizaje automático, Meta invirtió mucho en atender a la comunidad de código abierto. PyTorch también se benefició de un nivel de enfoque en hacer un pequeño número de cosas bien que el equipo de TensorFlow había abandonado, explican personas cercanas al proyecto de TensorFlow.

"Utilizamos sobre todo PyTorch, ya que es la que cuenta con más apoyo de la comunidad", afirma Patrick von Platen, ingeniero de investigación de la empresa de aprendizaje automático Hugging Face. "Creemos que PyTorch es probablemente la que mejor trabaja con el código abierto. Se aseguran de que las preguntas se respondan online. Todos los ejemplos funcionan. PyTorch siempre ha tenido un enfoque muy de código abierto".

Algunas de las organizaciones más grandes —incluidas las que dependían de TensorFlow— han puesto en marcha proyectos que funcionan con PyTorch. No pasó mucho tiempo antes de que empresas como Tesla y Uber ejecutaran sus proyectos de investigación de aprendizaje automático más difíciles en PyTorch.

Cada característica adicional, a veces para copiar los elementos que hicieron popular a PyTorch, hizo que TensorFlow se hinchara cada vez más para su audiencia original de investigadores y usuarios. Uno de esos ejemplos fue la incorporación de la "eager execution" en 2017, una característica nativa de Python que facilita sustancialmente a los desarrolladores el análisis y la depuración de su código.

Llega JAX, el futuro del aprendizaje automático en Google

Mientras se desarrollaba la batalla entre PyTorch y TensorFlow, un pequeño equipo de investigación dentro de Google trabajaba en un nuevo framework que facilitaría el acceso a los chips construidos a medida -llamados unidades de procesamiento tensorial o TPU- que sustentan su propuesta de inteligencia artificial y que solo eran accesibles a través de TensorFlow.

Los investigadores del equipo eran Roy Frostig, Matthew James Johnson y Chris Leary. Frostig, James Johnson y Leary publicaron un artículo en 2018 titulado "Compilación de programas de aprendizaje automático a través de trazado de alto nivel", en el que describían lo que finalmente se convertiría en JAX.

Adam Paszke, uno de los autores originales de PyTorch en su anterior etapa en Facebook, también comenzó a trabajar con Johnson en 2019 como estudiante, y se unió al equipo de JAX a tiempo completo a principios de 2020.

El nuevo proyecto, JAX, ofrecía un diseño más sencillo para gestionar uno de los problemas más complejos del aprendizaje automático: repartir el trabajo de un gran problema entre varios chips. En lugar de ejecutar piezas individuales de código para distintos chips, JAX distribuye automáticamente el trabajo. La demanda surgió de una impresionante ventaja de trabajar en Google: el acceso inmediato a tantos TPU como se necesite para hacer lo que sea. 

Solucionaba un problema fundamental al que se enfrentaban los investigadores de Google cuando trabajaban en problemas cada vez más grandes y necesitaban cada vez más potencia de cálculo.

Al descubrir JAX, los desarrolladores e investigadores de Google empezaron a adoptar el proyecto skunkworks. Ofrece una forma de saltarse gran parte de las dificultades de TensorFlow para los desarrolladores y de distribuir rápidamente los problemas técnicos complejos entre varias TPU, según explican personas familiarizadas con el proyecto.

El mayor reto de Google con JAX es poner en práctica la estrategia de Meta con PyTorch

Por otra parte, tanto PyTorch como TensorFlow comenzaron de la misma manera. Primero fueron proyectos de investigación, luego se convirtieron en rarezas, y después en el estándar de la investigación del aprendizaje automático. A continuación, los investigadores los sacaron del ámbito académico y los llevaron al resto del mundo.

Sin embargo, JAX se enfrenta a varios retos. El primero es que sigue dependiendo de otros frameworks en muchos aspectos. JAX no ofrece una forma de cargar datos y preprocesar datos fácilmente, dicen los desarrolladores y expertos, y requiere que TensorFlowo PyTorch se encarguen de gran parte de la configuración.

El framework subyacente de JAX, XLA, también está muy optimizado para las TPU de Google. El framework también funciona con GPUs y CPUs más tradicionales, aunque personas cercanas al proyecto dicen que aún queda mucho por hacer para que la optimización de GPUs y CPUs alcance la paridad con las TPUs.

Un portavoz de Google señala que el hincapié en las TPUs se debe a una confusión organizativa y estratégica entre 2018 y 2021 que llevó a una inversión insuficiente y a una priorización subóptima para el soporte de la GPU, así como a una falta de colaboración con el proveedor masivo de GPUs, Nvidia, que están mejorando rápidamente. 

La propia investigación interna de Google también se centró en gran medida en las TPU, lo que condujo a una falta de buenos bucles de retroalimentación para el uso de la GPU, afirma el portavoz.

35 fotos que muestran cómo ha sido el meteórico ascenso en Google de Sundar Pichai, CEO de Alphabet

Según Andrew Feldman, CEO de Cerebras Systems, una startup valorada en 4.000 millones de dólares que construye grandes chips centrados en el aprendizaje automático, esta mejora será fundamental en el futuro, ya que las empresas intentan repartir su trabajo entre muchos tipos diferentes de hardware centrado en el aprendizaje automático.

"Todo lo que se haga para favorecer a un hardware sobre otro se reconocerá inmediatamente como un mal comportamiento, y será rechazado en la comunidad de código abierto", afirma. "Nadie quiere estar encerrado en un único proveedor de hardware, por eso surgieron los frameworks de aprendizaje automático. Los profesionales del aprendizaje automático querían estar seguros de que sus modelos fueran portátiles, que pudieran llevarlos a cualquier plataforma de hardware que eligieran y no estar encerrados en una sola".

Al mismo tiempo, el propio PyTorch tiene ya casi 6 años de antigüedad, mucho más que la edad en la que TensorFlow empezó a mostrar signos de ralentización. No está claro si el proyecto de Meta correrá la misma suerte que su predecesor, respaldado por Google, pero podría significar que ha llegado el momento de que surja algo nuevo. 

Varios expertos y personas cercanas al proyecto, subrayan el tamaño de Google, advirtiendo a los críticos que nunca hay que descartar al gigante de las búsquedas.

Conoce cómo trabajamos en Business Insider.