Aprender y usar técnicas de Inteligencia Artificial como el Aprendizaje Automático (Machine Learning) es cada vez más fácil. Ya no requieres acceso a servidores potentes ni un conocimiento profundo de como funcionan (y como programar) redes neuronales.

Puedes crear aplicaciones de IA sin programar o utilizar frameworks de alto nivel, como Ludwig de Uber, que escoden toda la complejidad de las redes neuronales que se ejecutan por debajo.  Además iniciativas como el playground de tensorflow o los Colab notebooks  te permiten aprender y jugar con todo tipo de redes sin salir de tu navegador.

Pero es que además, puedes también crear, entrenar y ejecutar modelos de machine learning en el navegador. No necesitas ni cuentas externas, ni acceso a servidores en la cloud ni nada ni nada. Puedes crear y distribuir tus propias aplicaciones sin depender de nada ni de nadie. ¡Esto sí que es democratizar el acceso a la AI!. Además hay un buen número de ventajas, dependiendo del contexto de la aplicación. Por ejemplo, ya vimos como puedes filtrar comentarios ofensivos, más eficiente y más seguro que enviarlos primero al servidor para ejecutar ahí la verificación. Caso también de los chatbots  donde puedes querer preservar la privacidad de las conversaciones. O simplemente no estás seguro de tener conectividad que permita esa conexión externa. Hay muchos más ejemplos de uso curiosos, como este corrector de postura que desdibuja la pantalla si no estás bien sentado o cualquiera de esta lista.

Evidentemente, también hay limites en cuanto al tamaño de los modelos que puedes entrenar aunque como veremos a continuación hasta para eso hay algunos remedios. A continuación os hago un pequeño resumen de este podcast de PracticalAI con Victor Dibia, donde dan un repaso a todos estos temas y nos ponen al día de las mejores estrategias para usar la IA en tu navegador:

  • El objetivo final de todas estas iniciativas es que gente con diferentes backgrounds, intereses, conocimiento, … pueda utilizar herramientas de IA para así incrementar la diversidad
  • Beneficios de ejecutar redes neuronales en el navegador: privacidad, latencia y distribución.
  • Hoy en día hablar de IA en el navegador viene a ser sinónimo de tensorflow.js, la librería de machine learning en JavaScript (que no sólo sirve para crear, entrenar y ejecutar modelos de aprendizaje automático en el front-end sino que si quieres también puedes utilizar en el back-end con node.js).
  • Si tienes una buena tarjeta gráfica (GPU), Tensorflow.js puede usarla para acelerar la computación de los modelos ya que es capaz de, via WebGL, utilizarla desde el navegador.
  • Tres posibles procesos diferentes para integrar la IA en el navegador dependiendo del tamaño y características del problema a tratar:
    • Todo en el navegador: Utilizas tensorflow para definir la red, para entrenarla y para luego realizar predicciones con ella. Sólo sirve para modelos razonablemente pequeños o que requieran pocos datos. Los datos nunca abandonan tu ordenador
    • Predicción en el navegador: El modelo se crea y entrena del modo tradicional (utilizando Tensorflow, Keras, PyTorch,… lo que más te guste). Cuando estés exportas el modelo que luego transformas para que pueda ser ejecutado por tensorflow.js en predicciones con tus datos locales.
    • Adaptación en el navegador. Punto intermedio. El modelo se entrena fuera del navegador pero antes de utilizarlo para predecir con tus propios datos, lo adaptas/configuras con (parte de) tus propios datos.
  • Se está investigando mucho en optimizaciones que permitan reducir el tamaño de los modelos para facilitar su ejecución en entornos con recursos limitados (ver TensorFlow Lite). También hay estrategias alternativas, como el Federated Learning, donde cada cliente es responsable de entrenar una parte del modelo y luego lo comparte con otros para ir construyendo a trozos un modelo más general.

Ya veis que opciones para explorar y aprender sobre IA no os faltan. Se acabaron las excusas 😉