¿Qué es TinyML?
- TinyML se refiere al uso de aprendizaje automático en microcontroladores.
- A diferencia de los sistemas usados en el ML tradicional, se utiliza en sistemas con muy poca CPU y RAM, y con un consumo de energía a nivel de milivatios o microvatios.
- Consiste en reducir modelos grandes para que puedan usarse en equipos con recursos muy limitados y en microcontroladores.
- El sitio web oficial de la Fundación TinyML es https://www.tinyml.org/
- Hay una serie de 3 cursos gratuitos ofrecidos por la Universidad de Harvard:
- Fundamentos de TinyML (qué construir, por qué construirlo y qué problemas existen)
- Aplicaciones de TinyML (basado en datos, sesgos, etc.)
- Despliegue de TinyML (dónde implementar el modelo, seguridad y privacidad)
Principios básicos de TinyML
- Los sistemas embebidos que usan microcontroladores tienen como máximo 256kB de memoria, por lo que no pueden ejecutar modelos grandes.
- Algunos ejemplos de sistemas operativos que pueden usarse con microcontroladores:
- FreeRTOS
- Mbed OS
- El aprendizaje automático está compuesto por algoritmos que encuentran patrones en los datos.
- En TinyML, estos algoritmos se comprimen para poder encontrar patrones en los datos de manera eficiente.
- En IoT se generan 5 quintillones de bytes de datos al día, y menos del 1% de ellos se analiza.
Técnicas de compresión de algoritmos
-
Poda (Pruning)
- Poda de sinapsis: elimina conexiones de red del modelo. A veces puede reducir la precisión.
- Poda de neuronas: elimina neuronas completas del modelo para reducir los requisitos computacionales de la red.
-
Cuantización (Quantization)
- Discretiza los valores dentro de un rango pequeño. Por ejemplo, si se discretizan números de punto flotante en el rango de -128 a 127, solo hace falta explorar 256 valores.
- Si un valor de punto flotante almacenado en 4 bytes se cambia por un valor entero almacenado en 1 byte, el tamaño se reduce 4 veces.
- Debido a los recursos limitados, la cuantización es muy importante en TinyML.
-
Destilación de conocimiento (Knowledge distillation)
- Aplica conocimiento y know-how para hacer más pequeño el modelo.
Herramientas
- Uso de TensorFlow Lite.
- Mientras que TensorFlow está enfocado en investigadores de ML, TensorFlow Lite está dirigido a desarrolladores de aplicaciones.
Uso de TinyML
- En este sitio web se pueden encontrar casos de uso de TinyML especializados en el mundo DIY, maker y hacker.
Uso de TinyML en la industria
- En el sector industrial se usa para mantenimiento, aumentando la eficiencia y reduciendo costos al advertir de fallas cuando se producen vibraciones.
- Debido a problemas de precisión, pueden producirse falsas alarmas, y la responsabilidad de esas falsas alarmas recae en el operador o en el sistema.
TinyML en el medio ambiente
- En lugar de recopilar datos y procesarlos después, TinyML permite obtener respuestas en tiempo real sobre cambios en el entorno. Por ejemplo, permite detectar en tiempo real cambios en la vida silvestre.
TinyML para las personas
- Ayuda a que las personas con discapacidad puedan realizar más tareas sin usar las manos.
- Mejora la UI y la UX de las aplicaciones para hacerlas más fáciles de usar.
- La tecnología se crea para mejorar la experiencia humana. La tecnología debe ayudar a las personas.
Riesgos y desventajas
- ¿Funcionará bien para todos los grupos de población?
- ¿Está garantizada la privacidad de los datos?
- ¿Se pueden proteger estos datos?
- La tecnología debe construirse con base en una IA centrada en las personas. Esto debe considerarse en el proceso de diseño, desarrollo y despliegue.
Opinión de GN⁺
- TinyML es una tecnología innovadora que hace posible el aprendizaje automático incluso en entornos con recursos limitados, y puede mejorar enormemente la eficiencia y la inteligencia de los dispositivos IoT.
- Las técnicas de compresión de algoritmos como poda, cuantización y destilación de conocimiento son elementos clave para miniaturizar modelos de aprendizaje automático y hacer posible su ejecución en dispositivos de bajo consumo.
- La aplicación de TinyML puede contribuir a mejorar la vida humana en diversos campos, como el mantenimiento industrial, el monitoreo ambiental y el apoyo a personas con discapacidad, lo que es un buen ejemplo del impacto positivo que la tecnología puede tener en la sociedad.
1 comentarios
Opiniones de Hacker News
Desarrollo de un compilador TinyML en Rust
predict()que realiza inferencia para el modelo dado.El atractivo del campo de TinyML
Virus dirigidos a infraestructura usando LLM
Explicación de TinyML / Edge ML de Edge Impulse
Ejemplo de uso de ESP32 y Tensor Flow Lite con Edge Impulse en Hacker Box
Presente y futuro de TinyML
Diversas opiniones sobre TinyML