¿Que es el TinyML?

¿Qué es el TinyML? los dispositivos inteligentes más pequeños que nunca

Una pregunta que cada vez más profesionales hacen es: ¿Qué es el TinyML? El TinyML es un tipo de aprendizaje automático que reduce las redes de aprendizaje profundo para que quepan en un hardware diminuto. Es el nexo de unión entre la inteligencia artificial y los dispositivos inteligentes: puede caber una inteligencia artificial de 45x18mm en el bolsillo. De repente, tienes un modelo de aprendizaje automático en miniatura incrustado en un proyecto de fin de semana de bricolaje en tu placa Arduino. Los dispositivos embebidos de ultra bajo consumo están invadiendo nuestro mundo, y los nuevos marcos de aprendizaje automático embebidos harán aún más posible la proliferación de dispositivos IoT con IA.

Traduzcamos esta jerga: ¿qué es TinyML? Y lo que es más importante, ¿para qué se puede utilizar (y para qué no)?

¿Qué es el TinyML? Una introducción


El aprendizaje automático es un término que existe desde hace tiempo y tiene muchas aplicaciones útiles para los datos caóticos que necesitan tener sentido. Sin embargo, no suele asociarse con el hardware. Por lo general, el aprendizaje automático y el hardware están vinculados a la nube, pero ésta tiene sus propios problemas de latencia, consumo de energía y pone a las máquinas a merced de las velocidades de conexión.

Sin embargo, la aplicación del aprendizaje automático a los dispositivos no es nueva. Desde hace varios años, la mayoría de nuestros teléfonos móviles cuentan con algún tipo de red neuronal. La identificación de música del dispositivo y los numerosos modos de cámara (visión nocturna, modo retrato, etc.) son solo algunos ejemplos de cómo depende del aprendizaje profundo incorporado. Los algoritmos pueden prolongar la duración de la batería del teléfono identificando las aplicaciones que probablemente volveremos a utilizar y desactivando las que no necesitamos. Pero la IA incorporada conlleva una serie de retos, algunos de los cuales son problemas de energía y espacio. Aquí es donde entra TinyML.

Los datos de los sensores de los dispositivos requieren una gran potencia de cálculo, lo que se traduce en un espacio de almacenamiento limitado, unidades centrales de procesamiento (CPU) limitadas y un rendimiento deficiente de las bases de datos. tinyML permite el aprendizaje automático mediante la incorporación de inteligencia artificial en un hardware diminuto. TinyML hace posible el aprendizaje automático al integrar la inteligencia artificial en un hardware pequeño, lo que permite que los algoritmos de aprendizaje profundo entrenen una red en el dispositivo y reduzcan su tamaño sin el obstáculo adicional de enviar los datos a la nube, es decir, la latencia para analizarlos.

TinyML: Comprender los fundamentos


Pete Warden, gurú de TinyML y jefe de ingeniería de TensorFLow Lite en Google, ha publicado un libro con Daniel Situnayake. El libro, TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers, es el libro de referencia en este campo.

Para los que no son expertos, aquí están las traducciones de algunos de los términos técnicos.

Arduino es un fabricante de hardware de código abierto que permite a cualquiera comprar una placa de microcontrolador y construir su propio dispositivo digital.
Un microcontrolador es un pequeño ordenador en un circuito de chip semiconductor, básicamente un conjunto de circuitos electrónicos en una pequeña superficie plana, generalmente de silicio. Este conjunto de hardware puede funcionar en lugar del tradicional ordenador de placa única Raspberry Pi preconstruido, y requiere mucha menos energía y espacio.


Por último, TensorFlow Lite es un marco de aprendizaje automático integrado creado por Google con una subcategoría diseñada específicamente para microcontroladores. en 2019, además de TensorFlow Lite, uTensor y CMSIS- de Arm. NN, y otros marcos que se centran en la miniaturización, la aceleración y la adaptación de los modelos de aprendizaje profundo al hardware integrado han comenzado a surgir. Al mismo tiempo, empezaron a aparecer varios tutoriales en YouTube sobre cómo utilizar TinyML y marcos similares con microcontroladores potenciados por la IA para entrenar y validar pequeños conjuntos de redes neuronales e implementarlos en hardware mediante motores de inferencia.


Actualmente, la Arduino Nano 33 BLE Sense es la única placa de 32 bits compatible con TensorFlow Lite, lo que pone el aprendizaje automático integrado en el hardware al alcance de todos. Arduino ha estado trabajando con la startup Edge Impulse Trabajando juntos, estamos reduciendo el consumo de energía mediante el procesamiento de datos directamente en la interfaz del sensor a través de un motor de inferencia, enviando los datos sólo cuando realmente importa, de una manera más rápida, eficiente y escalable.

Algunas interfaces de programación de aplicaciones (API) en la nube no son interactivas o son restrictivas en términos de consumo de energía. Algunas interfaces de programación de aplicaciones (API) en la nube no son interactivas o son restrictivas en cuanto al uso de la energía.

La diferencia entre esto y el aprendizaje automático basado en el teléfono móvil descrito anteriormente es que TinyML permite utilizar baterías y dispositivos de recolección de energía sin tener que recargar o cambiar manualmente las baterías debido a las limitaciones de energía. Lo consideramos un “procesador digital de señales siempre activo”. Esto significa que puede funcionar con menos de 1 milivatio de energía, por lo que es un dispositivo que puede funcionar con baterías durante años, o un dispositivo que puede utilizar la recolección de energía. Esto se debe a que incluso las radios de baja potencia de corto alcance utilizan de decenas a cientos de milivatios de energía y sólo pueden proporcionar energía durante cortos períodos de tiempo. Esto requiere un código que se ejecuta en cantidades muy pequeñas de memoria -decenas de kilobytes-, lo que lo diferencia de una Raspberry o un teléfono móvil. Según los expertos, la idea de TinyML es hacer que sea lo más asequible posible para permitir su proliferación masiva, llegando a tener billones de microcontroladores de 32 bits, baratos y con sensores independientes, que puedan venderse por 0,50 dólares.

Pete se unió a Google en 2014, cuando descubrió que el equipo de Google OK podía ejecutar una interfaz de voz y una llamada de despertador en solo 13 kilobytes. Lo hacían incluso cuando la pantalla de bloqueo estaba encendida y utilizaban muy poca energía, incluso cuando el dispositivo estaba enchufado a la pared para ahorrar energía. Su sueño es ampliar la aplicación Wakeword para convertirla en una aplicación de reconocimiento de voz que sea barata, funcione con un píxel hasta un año y funcione con una pila de botón que quepa en 18 megabytes. Imagina todos los interruptores, botones y componentes que ya han sido sustituidos por Wakeword. Entonces piense en qué más se podría sustituir. Otro tema es la integración de interfaces de audio y señales visuales con TinyML. Esto permite que el dispositivo entienda cuándo lo estás mirando, a la vez que elimina el ruido de fondo de otras personas hablando, equipos industriales, etc.

Aplicaciones y casos de uso con TinyML


El mantenimiento predictivo es probablemente uno de los casos de uso más impactantes. La industria del automóvil también podría beneficiarse de TinyML en un entorno industrial, ya que la potencia es menos restrictiva en comparación con el coste y la fiabilidad. Por ejemplo, la startup de IoT Coastline está utilizando un sensor de ultrabajo consumo en su motor, y ha observado que puede funcionar hasta cinco años con el mismo par de baterías si consume menos de un milivatio de energía. Esto es una gran ventaja en entornos industriales, donde suele ser más difícil conectar los equipos a una fuente de alimentación que en casa. Sin embargo, el ciclo de sustitución de los equipos industriales es bastante largo, lo que dificulta la innovación.

El aprendizaje en el dispositivo puede utilizarse en la automatización de edificios (piense en el uso de sensores de visión de bajo consumo en los sistemas de iluminación de las oficinas que se apagan si no se mueve), en los juguetes (piense en el acelerómetro de reconocimiento de gestos de Arduino utilizado en la varita mágica) y, en última instancia, en el desarrollo y las pruebas de medicamentos (aunque este ámbito está muy limitado por la normativa), lo que reduce considerablemente el tiempo necesario. En comparación con los entornos industriales, los ciclos iterativos rápidos permiten una mayor retroalimentación y más espacio para la experimentación.

El análisis de audio, el reconocimiento de patrones y las interfaces de voz hombre-máquina son las áreas en las que TinyML se aplica más ampliamente en la actualidad. Muchos sectores pueden beneficiarse del análisis del habla, como el cuidado de niños y ancianos, la seguridad y la supervisión de equipos. Por ejemplo, el modelo de sonido TinyML detecta anomalías mediante el análisis del habla agrícola y pequeños sensores de alerta en tiempo real. En relación con COVID-19, Edge Impulse y Arduino han utilizado recientemente la placa Nano BLE Sense En relación con COVID-19, Edge Impulse y Arduino han presentado recientemente un proyecto para detectar la presencia de un sonido de tos específico en tiempo real utilizando la placa Nano BLE Sense, aplicando un modelo TinyML altamente optimizado para construir un sistema de detección de tos que se ejecuta en menos de 20kB de memoria de acceso aleatorio (RAM).

Además del audio, TinyML también puede utilizarse para el reconocimiento visual, de movimientos y de gestos.

Según Pete Warden, TinyML penetrará en muchos sectores. Afectará a casi todos los sectores, incluidos el comercio minorista, la sanidad, el transporte, el bienestar, la agricultura, el fitness y la fabricación. Nuestro teléfono móvil puede convertirse en un dispositivo de a bordo que adquiere datos añadiendo la pestaña de adquisición de datos en Edge Impulse Studio y seleccionando un sensor. Por ejemplo, un sensor acelerómetro que muestre el movimiento del teléfono. Esto permite ejecutar potentes modelos de aprendizaje basados en redes neuronales artificiales (RNA) y muestrear pequeños sensores junto con un microcontrolador de bajo consumo.

Según la reseña de Pitchbook sobre espacios emergentes, se han invertido 26 millones de dólares en TinyML desde enero de 2020, incluyendo inversiones de capital riesgo por parte de aceleradores, inversores en fase inicial e inversores en fase final. Esta cifra es relativamente pequeña en comparación con otras ramas más consolidadas de la IA y el ML, como el etiquetado de datos. En cuanto a las tendencias, el número de acuerdos está aumentando ya que compite con otros temas candentes como la computación cognitiva, la seguridad de próxima generación y las AIOps.

TinyML. ¿Qué nos depara el futuro?


El aprendizaje automático minúsculo está experimentando un crecimiento explosivo en el aprendizaje automático, y la facilidad de uso de plataformas como TensorFlow (TF) lo convierte en un tema de aprendizaje esencial para los estudiantes de informática modernos.”

Actualmente hay más de 250.000 millones de dispositivos integrados en funcionamiento en todo el mundo, con una tasa de crecimiento anual prevista del 20%. Estos dispositivos recogen grandes cantidades de datos, lo que hace que su procesamiento en la nube sea un gran reto. De estos 250.000 millones de dispositivos, sólo unos 3.000 millones son compatibles con TensorsFlow Lite en la producción actual, y TinyML puede salvar la brecha entre el hardware de a bordo y la inteligencia del dispositivo. Hacer que TinyML sea accesible para los desarrolladores es esencial para la adopción masiva del aprendizaje automático integrado para convertir datos inútiles en conocimiento procesable, y para crear nuevas aplicaciones en muchas industrias.

A medida que surgen nuevos tipos de interfaces hombre-máquina (HMI) y crece el número de dispositivos inteligentes, TinyML tiene el potencial de cambiar el paradigma de la inteligencia artificial y la computación ubicua en el borde de una manera más barata, más escalable y más predecible. Tiene el potencial de hacer precisamente eso”.

Qué es el MLOps

¿Qué es el MLOps? Una breve introducción

MLOps es una de las nuevas tendencias en Big Data y inteligencia artificial que está aplicando muchos de los principios del DEVops al campo del machine learning y de los algoritmos. Como llevo algún tiempo analizando este tema, he escrito una pequeña introducción de alto nível que he publicado también en mi blog/Notebook/

Cuando hablamos de MLOps. hablamos de las operaciones de aprendizaje automático o aprendizaje automatizado.

1. ¿Qué es MLOps?

MLOps es una extensión de la metodología DevOps que pretende incorporar activos de aprendizaje automático y ciencia de datos como ciudadanos de primera clase en la ecología DevOps.

  • Datos: Datos, introducción, ingesta, conservación, etc.
  • Modelo: pruebas, evaluación del modelo, embalaje y éxito del modelo.
  • Código: todo el modelo en sí, el código que se ejecuta.

2. ¿Por qué introducir MLOps?

Desde hace unos años, con la masificación de los servicios online, y la cada vez mayor ubicuidad de dispositivos de todos los tipos y todas las dimensiones, como móviles, relojes inteligentes, sensores, etc; en la actualidad, estamos inmersos en un mundo impulsado por los datos que además requiere de una cada vez mayor dinamismo, al mismo que tiempo que una mayor profundidad en el proceso de la información.

Por este motivo, la inteligencia artificial ha ido creciendo en importancia y en capacidad de generar un alto valor añadido para su utilización en procesos de negocios.

Pero, la inteligencia artificial, o mejor dicho su aplicación en la empresa también tiene sus problemas. El proceso de exploración, transformación y proceso de los datos y de los algoritmos asociados a la inteligencia artificial, tiene tiempos de implementación/operación elevados, porque requiere mucha iteración y, además una cierta complejidad a la hora de poder utilizarlos de forma efectiva.

En función de todos estos factores, podemos distinguir entre capacidades (percepción, cognición, aprendizaje) y casos de uso (visual, habla, lenguaje, lenguaje natural) que pueden utilizarse de diferentes maneras.

El MLops, nace de intentar abordar estos problemas a través de la aplicación de los principios de DEVops a la realidad de los algortimos de inteligencia artificial / Machine learning.

3.¿Qué son DEVOps y MLOps?

DEVOps es un conjunto de prácticas que tiene como objetivo acortar el ciclo de vida de desarrollo de un sistema y proporcionar una entrega continua con alta calidad de software. Comparativamente, MLOps es el proceso de automatización y producción de aplicaciones y flujos de trabajo de aprendizaje automático. Tanto DEVOps como MLOps tienen como objetivo colocar una pieza de software en un flujo de trabajo repetible y tolerante a fallos, pero en MLOps ese software también tiene un componente de aprendizaje automático. 

Por esto motivo, se puede pensar en MLOps como un subconjunto especializado de DEVOps para aplicaciones y proyectos de aprendizaje automático.

4.¿Qué es un ciclo ideal de DevOps?

DevOps es un concepto crucial en casi todos los proyectos de TI de éxito, ya que los equipos aspiran a un bucle de código-construcción-despliegue más corto.

Esto permite a los equipos la libertad de desplegar nuevas características más rápido y, por lo tanto, terminar los proyectos más rápido con un mejor producto final. Sin embargo, sin las prácticas adecuadas de DEVOps, los equipos se ven perjudicados por las tareas manuales, la incapacidad de realizar pruebas y, en última instancia, los despliegues de producción arriesgados. 

No alt text provided for this image

Para que un proyecto DEVOps tenga éxito, un ciclo DEVOps ideal estará compuesto por los siguientes cinco pilares clave:

  • Reducir los silos organizativos: Compartir la propiedad y la responsabilidad
  • Aceptar el fracaso como algo normal: Aceptar el riesgo y el desarrollo iterativo
  • Implementar cambios graduales: Avanzar rápidamente con iteraciones más pequeñas para reducir el coste del fracaso
  • Aprovechar las herramientas y la automatización: Utilizar herramientas para automatizar las tareas manuales
  • Medir todo: Definir qué es el “éxito” y cómo se medirá
No alt text provided for this image

5. ¿Qué debo tener en cuenta a la hora de utilizar MLOps?

El éxito o el fracaso de la utilización de MLOps en una empresa no es algo sencillo dado que muchos factores pueden impactar el éxito de su implementación:

  • Calidad de los datos: hay que tener en cuenta la fuente, la calidad y la fiabilidad de los datos.
  • Degradación del modelo: La calidad del modelo se degradará con el tiempo.
  • Herramientas de Automatización: El conjunto de herramientas que podemos utilizar de forma adecuada para que se integren correctamente y soporten el ciclo de MLOps de punto a punto.

6. ¿Cómo es el proceso de MLOps?

Los puntos principales del MLOps son:

  • Diseño: Definir los requisitos, identificar las necesidades del usuario y el contenido deseado, explorar los datos, experimentar.
  • Desarrollo del modelo: elaboración de un modelo funcional listo para la producción.
  • Funcionamiento: despliegue, automatización de la formación, extracción de datos, etc.

7. ¿Cuáles son los principios de MLOps?

Cuando hablamos de MLOps hablamos de algunos principios básicos importantes para poder generar correctamente el valor añadido a la empresa como:

  • Automatización: procesos manuales, pipeline ML, pipeline CI/CD y sus fases.
  • Versionado: basado en tres pilares: Datos, modelo y código.
  • Pruebas: la base del funcionamiento de todo el sistema.
  • Seguimiento: los puntos a tener en cuenta son: Conocimiento de las dependencias invariantes, garantía de datos invariantes, sesgos en las predicciones, modelos “anticuados” que no pueden responder con suficiente rapidez, modelos numéricamente estables, degradación de los modelos.
  • Reproducibilidad: para reproducir los resultados de la ingeniería de características, la formación de modelos y la implantación de modelos, hay que tener cuidado con la recogida de datos.

8. ¿Qué herramientas podemos utilizar?

Es imposible desconectar el DEVOps del uso de herramientas que podemos utilizar para realizar las tareas y conseguir la automatización de los procesos de integración y despliegue.

#MLops #Devops #AI #machinelearning #inteligenciaartificial #aprendizajeautomatico