TensorFlow es la apuesta clave de Google para construir el ecosistema del futuro del Machine Learning que pueda ser ejecutado en la nube, en aplicaciones o en dispositivos hardware de todo tipo.
Precisamente, los esfuerzos en su última TensorFlow Dev Summit 2019 han ido enfocados en facilitar y simplificar el uso del framework, incorporando más API tanto para los programadores principiantes como para los más expertos. De este modo, todos podremos aprovecharnos de las nuevas mejoras para crear modelos de aprendizaje más fácilmente para la mayor número de casos de uso y desplegarlos en cualquier dispositivos.
Han impulsado el despliegue de los algoritmos de forma local en dispositivos hardware con la release final de TensorFlow Lite 1.0 sin necesidad de recurrir a la nube u otro sistema centralizado para ser procesados. Un claro ejemplo de que el Edge Computing forma parte de la estrategia clave de Google para dotar a cualquier dispositivo, ya sea IoT o móvil, de todas las ventajas del aprendizaje automático.
En los tres años que han pasado desde su lanzamiento, TensorFlow ha sentando las bases de un ecosistema de Machine Learning end-to-end, ayudando a potenciar la revolución del Deep Learning. Cada vez hay más desarrolladores que hacen uso de algoritmos para implementar nuevas funcionalidades a los usuarios o acelerar tareas hasta ahora tediosas como la clasificación de imágenes, la captura y reconocimiento de documentos o el reconocimiento de voz y la síntesis del lenguaje natural en los asistentes virtuales (Google Assistant o Alexa)
No es extraño que TensorFlow sea el proyecto con mayor número de contribuciones en Github año tras años, con más de 1.800 contribuciones. Acumulando más de 41 millones de descargas en tres años de historia y decenas de ejemplos de uso en distintas plataformas.
El camino hacia TensorFlow 2.0
TensorFlow ha sentando las bases de un ecosistema de Machine Learning end-to-end, ayudando a potenciar la revolución del Deep Learning
TensorFlow 2.0 Alpha se ha fijado el objetivo de simplificar su uso, ampliando las posibilidades para ser una plataforma de ML más abierta que puede ser utilizada tanto por investigadores que quieran realizar experimentos y estudios, desarrolladores dispuestos a automatizar cualquier clase tarea o empresas que quieran facilitar la experiencia de uso de sus usuarios a través del inteligencia artificial.
Uno de los pilares de TensorFlow 2.0 es la integración más estrecha con Keras como la API de alto nivel para construir y entrenar modelos de Deep Learning. Keras tiene diversas ventajas:
- Enfocada en el usuario. Keras tiene una interfaz más simple y consistente, adaptada a los casos de uso más comunes. Facilitando un feedback más claro para entender los errores de implementación.
- Ser más modular y reutilizable. De este modo los modelos de Keras puede componer estructuras más complejas a través de capas y optimizadores sin necesidad de un modelo específico para entrenar.
- Pensado tanto para principiantes como para expertos. Aprovechando como idea fundamental el background de los diversos tipos de programadores que se están involucrando desde el principio en el desarrollo de Deep Learning. Keras provee una API mucho más clara sin necesidad de ser un experto con años de experiencia.
También se han incorporado una amplia colección de datasets públicos preparados para ser utilizados con TensorFlow. Cualquier desarrollador que se haya aventurado a trabajar en Machine Learning sabe, esto representa el ingrediente principal para crear modelos y entrenar los algoritmos que después emplearemos. Tener esa ingente cantidad de datos ayuda bastante.
Para la migración de TensorFlow 1.x a 2.0 se han creado diversas herramientas para convertir y migrar los modelos. Ya que se han realizado actualizaciones necesarias para que sean más óptimos y pueden ser desplegados en más plataformas.
El ecosistema sigue creciendo con numerosas librerías para crear un entorno de trabajo más seguro y privado. Como el lanzamiento de la librería TensorFlow Federated, cuya intención es descentralizar el proceso de entrenamiento para compartirlo con múltiples participantes que puedan ejecutarlo localmente y envíen los resultados sin exponer necesariamente los datos capturados, sólo compartiendo el aprendizaje obtenido para la generación de los algoritmos. Un claro ejemplo de esto es el aprendizaje automático de los teclados virtuales, como el de GBoard de Google, que no expone datos sensibles, ya que va a aprendiendo localmente en el propio dispositivo.
Al hilo de esto, el equilibrio entre Machine Learning y la privacidad es una tarea compleja, por ello se ha lanzado la librería de TensorFlow Privacy que permite definir distintos escenarios y grados para salvaguardar los datos más sensible y anonimizar la información de entrenamiento de los modelos.
Python no está solo en TensorFlow, más lenguajes como Swift o Javascript se unen a la plataforma
Python sigue siendo una pieza fundamental en el ecosistema Machine Learning y a la vez ha recibido un gran impulso al ser uno de los lenguajes principales
Obviamente, Python sigue siendo una pieza fundamental en el ecosistema Machine Learning y a la vez ha recibido un gran impulso al ser uno de los lenguajes principales con decenas de librerías entre las más utilizadas, a parte de su gran madurez. No sólo en TensorFlow, sino en otras plataformas como PyTorch.
Pero el ecosistema de TensorFlow ha abierto sus puertas incorporando librerías como TensorFlow.js, que finalmente alcanza la versión 1.0 Con más de 300.000 descargas y 100 contribuciones. Permite ejecutar proyectos ML en el navegador o el en backend con Node.js, tanto modelos ya pre entrenados como construir entrenamientos.
Empresas como Uber o Airbnb ya lo están utilizando en entornos de producción. Hay una amplia galería de ejemplos y casos de uso utilizando JavaScript junto a TensorFlow
Otra de las grandes novedades es el avance en la implementación de TensorFlow en Swift con su versión 0.2. De esta forma incorporan un nuevo lenguaje de propósito general como Swift al paradigma ML con todas las funcionalidades para que los desarrolladores puedan acceder a todos los operadores de TensorFlow. Todo ello construido sobre las bases de Jupyter y LLDB.
Ejecutar localmente nuestros modelos con Tensor Lite: la apuesta por el Edge computing
Edge computing se basa en ejecutar modelos y hacer inferencias directamente en local sin depender de que tengan que ser enviados los datos para ser analizados a la nube.
El objetivo de TensorFlow Lite es impulsar definitivamente el Edge Computing en los millones de dispositivos que a día de hoy son capaces de ejecutar TensorFlow. Es la solución para ejecutar modelos y hacer inferencias directamente sin depender de que tengan que ser enviados los datos para ser analizados a la nube.
En Mayo de 2017 fue presentado en la conferencia de desarrolladores de Google IO con una versión preview. Esta semana ha alcanzado la versión definitiva TensorFlow Lite 1.0. Lo que ayudará a implementar diversos casos de uso como la generación de texto predictivo, la clasificación de imágenes, la detección de objetos, el reconocimiento de audio o la síntesis de voz, entre otros muchos escenarios que se pueden implementar.
Esto permite una mejora de rendimiento considerable debido a la conversión al modelo de TensorFlow Lite que permite la herramienta, como por el aumento de rendimiento para ser ejecutado en las GPU de cada dispositivo, incluyendo Android, por ejemplo.
Con ello, TensorFlow Mobile comienza a ser deprecado, salvo que realmente queramos realizar entrenamientos directamente desde el mismo dispositivo. Ya han confirmado que dentro del roadmap de esta versión Lite están trabajando en esto mismo, desvelaron ciertas funcionalidades interesantes como el aprendizaje acelerado con la asignación de pesos para mejorar la inferencia e incorporar ese aprendizaje en sucesivas ejecuciones.
Para completar los novedades, se presentó Google Coral una placa hardware que permite desplegar modelos usando TensorFlow Lite y toda la potencia de la Edge TPU de Google.
Aprender sobre TensorFlow y Machine Learning cada vez más fácil con estos cursos
En 2016, Udacity lanzó el primer curso sobre TensorFlow en colaboración con Google. Desde entonces, más de 400.000 estudiantes se han apuntado al curso. Aprovechando el lanzamiento de Tensor Flow 2.0 Alpha, se ha renovado el curso por completo para hacerlo más accesible a cualquier desarrollador sin requerir un profundo conocimiento en matemáticas. Tal como ellos afirman: “Si puedes programar, puedes construir aplicaciones AI con Tensor Flow”
El curso de Udacity está guiado por el equipo de desarrollo de Google, a día de hoy está disponible la formación de los primeros 2 meses de la planificación, pero irán añadiendo más contenido a lo largo de las semanas. En la primera parte podrás aprender los conceptos fundamentales detrás del machine learning y cómo construir tu primera red neuronal usando TensorFlow. Disponen de numerosos ejercicios y codelabs escritos por el propio equipo de Tensor Flow.
También se ha incorporado nuevo material en deeplearning.ai con un curso de introducción a AI, ML y DL, parte del career path de Tensor Flow: from Basics to Mastery series de Coursera. Entre los instructores se encuentra Andrew Ng, uno de los más importantes impulsores del Machine Learning desde sus inicios.
Y otra de las plataformas orientadas a la formación en AI, Fast.ai ha incorporado dos cursos sobre el uso de TensorFlow Lite para desarrolladores móviles y otro sobre el uso de Swift en TensorFlow.
Definitivamente, tenemos muchas oportunidades para empezar a aprender más sobre la revolución del Machine Learning junto a TensorFlow, una de las plataformas end-to-end más completas para este fin.
Ver 2 comentarios