3 puntos por GN⁺ 2024-01-17 | 1 comentarios | Compartir por WhatsApp

¿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:
    1. Fundamentos de TinyML (qué construir, por qué construirlo y qué problemas existen)
    2. Aplicaciones de TinyML (basado en datos, sesgos, etc.)
    3. 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

 
GN⁺ 2024-01-17
Opiniones de Hacker News
  • Desarrollo de un compilador TinyML en Rust

    • Se desarrolló un compilador TinyML basado en Rust como proyecto de tesis de maestría.
    • Usando macros procedurales de Rust, se evalúa el modelo en tiempo de compilación y se genera una función predict() que realiza inferencia para el modelo dado.
    • Se logró un tamaño de binario mucho más pequeño que con TensorFlow Lite for Microcontrollers y otros motores.
    • Se logró ejecutar un reconocedor de comandos de voz (TinyConv) en un ATmega328 de 8 bits (Arduino Uno).
  • El atractivo del campo de TinyML

    • TinyML es un campo genial donde se puede hacer mucho incluso con hardware muy pequeño.
    • Por ejemplo, se puede construir un sistema de visión por computadora en tiempo real usando un esp32-s3 (cuesta alrededor de 2 dólares).
    • Se puede entrar fácilmente al mundo de TinyML mediante soluciones como AutoML.
    • Las empresas de hardware están empezando a ofrecer MCU con NPU para minimizar el consumo de energía.
    • Es muy probable que TinyML reciba más atención en el futuro.
  • Virus dirigidos a infraestructura usando LLM

    • Se imagina un virus dirigido a infraestructura usando LLM (Large Language Models).
    • Podría ocultarse un dispositivo pequeño en la red eléctrica para recolectar tráfico de red e intentar destruir sistemas.
    • Estos dispositivos pueden esconderse dentro de equipos de red y, como no necesitan tráfico externo, son difíciles de detectar.
  • Explicación de TinyML / Edge ML de Edge Impulse

    • Edge Impulse creó una plataforma para construir modelos de ML y desplegarlos en dispositivos edge.
    • Los usuarios pueden crear una cuenta, construir un modelo de keyword spotting y ejecutarlo directamente en WASM.
    • La aparición de aceleradores embebidos ASICs/NPUs está impulsando la adopción de Edge ML.
  • Ejemplo de uso de ESP32 y Tensor Flow Lite con Edge Impulse en Hacker Box

    • Recientemente, Hacker Box ofreció un ejemplo detallado usando ESP32, Tensor Flow Lite y Edge Impulse.
  • Presente y futuro de TinyML

    • TinyML se refiere a ejecutar machine learning en dispositivos embebidos de bajo consumo.
    • Todos los teléfonos incluyen chips DSP de bajo consumo que detectan palabras clave como "Hey Google" o "Hey Siri".
    • TinyML es un subconjunto de la IA en el edge, que incluye todo tipo de dispositivos ubicados en el borde de la red.
    • Es un campo muy interesante, capaz de resolver diversos problemas y aplicarse en casi cualquier espacio.
  • Diversas opiniones sobre TinyML

    • Existe la opinión de que, en el campo de TinyML, crear soluciones bajo restricciones puede generar un impacto importante.
    • Al igual que IoT, TinyML se considera una tecnología importante para el futuro, pero en la práctica su avance ha sido lento.
    • Para quienes buscan más contenido sobre TinyML, se ofrecen videos de la conferencia Asia 2023.