TinyML: aprendizaje continuo con LwM2M
Si bien las MCU se vuelven más poderosas, los modelos de aprendizaje automático se pueden diseñar para utilizar menos recursos. Esto permite la implementación de TinyML; modelos de aprendizaje profundo que pueden ejecutarse en dispositivos IoT con recursos limitados. TinyML se puede usar para analizar datos de sensores sin procesar localmente, lo que reduce o elimina la necesidad de enviar datos a la nube, reduce el consumo de batería y preserva la privacidad de los datos.
Sin embargo, la implementación de soluciones inteligentes de IoT no se basa únicamente en el modelo ML en sí. Implica desafíos como implementar el aprendizaje continuo, permitir la comunicación inalámbrica de bajo consumo, administrar dispositivos de forma remota, garantizar una comunicación segura, actualizar el firmware (por aire) y permitir la interoperabilidad de los dispositivos.
"TinyML se puede usar para analizar datos de sensores sin procesar localmente, lo que reduce o elimina la necesidad de enviar datos a la nube, reduce el consumo de batería y preserva la privacidad de los datos".
LwM2M es un estándar de comunicación de capa de aplicación que simplifica la mensajería y la gestión de dispositivos para dispositivos IoT. El protocolo dicta un formato de datos y define mecanismos de administración de dispositivos y procesos estandarizados para actualizaciones de firmware por aire (FOTA). El protocolo se adapta bien a los estándares LPWAN como NB-IoT y LTE-M.
Mientras que TinyML proporciona la inteligencia del dispositivo (utilizando herramientas como Edge Impulse o Cartesiam.ai), el protocolo LwM2M proporciona conectividad, comunicación estandarizada y gestión de dispositivos. Cuando se combinan, crean una solución holística para dispositivos IoT inteligentes.
El análisis basado en la nube de los datos sin procesar del sensor de un dispositivo es ineficiente debido al volumen de datos que el dispositivo necesita transmitir. Una forma más eficiente es procesar los datos de los sensores directamente en el dispositivo mediante TinyML. Por ejemplo, el análisis de los valores X, Y y Z del acelerómetro puede detectar movimientos o vibraciones complejos que podrían brindar información valiosa, lo que permite casos de uso como el mantenimiento predictivo, el monitoreo de la utilización de bienes valiosos o la clasificación de movimientos de personas o animales.
En estos días, se están desarrollando cada vez más sensores inteligentes. Además de sus capacidades de detección, los sensores inteligentes vienen con una MCU integrada que ejecuta el modelo TinyML y comunica solo los patrones detectados a la MCU principal del dispositivo. El Prof. Vijay Janapa Reddi (Universidad de Harvard) se refiere a estos sensores integrados TinyML como el Paradigma Sensor 2.0 durante su reciente conferencia en la Cumbre TinyML. Los sensores inteligentes simplifican la implementación de TinyML, ya que permite actualizar los dispositivos existentes con capacidades de TinyML sin tener que rediseñar el firmware integrado. Además, puede resolver problemas de privacidad debido al verdadero aislamiento de los datos del sensor sin procesar. Los sensores inteligentes pueden analizar las voces o las imágenes de la cámara al tiempo que garantizan la privacidad de las personas, ya que los datos no se filtran a la MCU principal del dispositivo.
Uno de los desafíos clave de hoy es mantener el modelo TinyML confiable después de la implementación. A menudo, los conjuntos de datos utilizados con fines de capacitación difieren de los datos del mundo real, lo que genera modelos inexactos. Además, el contexto ambiental puede cambiar con el tiempo (por ejemplo, debido a la descalibración de las máquinas industriales oa las condiciones climáticas cambiantes), lo que lleva al deterioro de la calidad del modelo.
El aprendizaje continuo se refiere a la capacidad de los modelos TinyML para adaptarse con el tiempo. Esto se puede lograr aprendiendo de nuevos conjuntos de datos sin necesidad de volver a entrenar el modelo desde cero. Aunque las técnicas para realizar el aprendizaje continuo son bien conocidas, a menudo faltan implementaciones prácticas cuando se ejecutan los modelos en dispositivos con recursos limitados. A menudo, esto tiene que ver con la falta de una capa de administración de dispositivos que se encarga de la administración del ciclo de vida del modelo ML. LwM2M puede ser el eslabón perdido para lograr un aprendizaje continuo, ya que viene con soporte nativo para configuraciones remotas y actualizaciones de firmware. Usando métodos probados, los modelos ML se pueden actualizar continuamente sin tener que acceder físicamente a cada dispositivo para actualizar su firmware.
Las soluciones TinyML para dispositivos IoT con recursos limitados son un catalizador para el desarrollo de soluciones inteligentes. Para ir más allá de la fase POC actual y comenzar a implementar aplicaciones TinyML reales, es necesario proporcionar mecanismos para una comunicación eficiente, gestión de dispositivos y firmware, y conectividad segura. El uso del protocolo LwM2M para administrar modelos TinyML y proporcionar conectividad es un camino hacia la estandarización de TinyML y el enriquecimiento del ecosistema de soluciones inteligentes de IoT.
Se ha diseñado una solución TinyML utilizando el estándar LwM2M. El Thingy:91 es un dispositivo de desarrollo que utiliza el SiP nRF9160 de Nordic Semiconductor. Ejecuta el sistema operativo Zephyr OS y fue entrenado para detectar tres patrones de movimiento diferentes, como se muestra en la siguiente imagen.
Los pasos para implementar el concepto presentado son los siguientes:
El ejemplo utiliza la plataforma Edge Impulse para recopilar los datos del acelerómetro Thingy:91, entrenar el clasificador ML y generar bibliotecas independientes para C++. La biblioteca que contiene el modelo TinyML puede ejecutarse en el dispositivo y controlar la detección del patrón de señalización LED. El cliente Anjay LwM2M proporciona una capa de conectividad para la solución, manejando problemas de tecnología de bajo nivel relacionados con la comunicación y la transmisión segura de datos.
Finalmente, el dispositivo se registra en el servidor LwM2M donde se almacenan y visualizan los datos. Usando el portal Coiote IoT Device Management, se puede indicar al dispositivo que notifique al servidor cada vez que se detecte un patrón específico o que reduzca la frecuencia a una vez cada varios segundos, minutos u horas y envíe un contador que indique la cantidad de veces que un patrón ha sido detectado.