TinyML
TinyML ejecuta aprendizaje automático en microcontroladores con kilobytes de memoria y milivatios de potencia. Descubre cómo adaptar los modelos, dónde se usa y qué herramientas hay disponibles.
TinyML (aprendizaje automático diminuto) consiste en ejecutar modelos de aprendizaje automático en microcontroladores y otros chips de consumo ultrabajo, normalmente con unos cientos de kilobytes de memoria, sin sistema operativo y con un presupuesto energético de unos pocos milivatios. Al ejecutar la inferencia en un chip junto al sensor, los dispositivos alimentados por batería pueden escuchar, observar o percibir su entorno continuamente durante meses o años, y enviar solo resultados como «palabra clave detectada» o «vibración anómala de la máquina», en lugar de datos sin procesar. Esto reduce la latencia, protege la privacidad de los datos y ahorra la energía de radio que consumiría la transmisión continua. La organización comunitaria del sector, EDGE AI FOUNDATION, antes se llamaba tinyML Foundation.
Cómo se adaptan los modelos a un microcontrolador#
Un microcontrolador almacena los pesos del modelo en la memoria flash junto con el programa, y guarda en la SRAM las activaciones que se están calculando, que suele ser el recurso más limitado. La cuantización del modelo a enteros de 8 bits reduce los pesos a una cuarta parte de su tamaño en FP32 y sustituye las operaciones en coma flotante por operaciones con enteros, que los núcleos pequeños ejecutan con eficiencia. Las arquitecturas compactas basadas en convoluciones separables en profundidad, poda de modelos y resoluciones de entrada más bajas reducen el resto, y la búsqueda de arquitecturas neuronales puede diseñar redes para la memoria de un chip específico. MCUNet combinó esta búsqueda con un entorno de ejecución que tiene en cuenta la memoria y alcanzó más del 70 % de precisión top-1 en ImageNet con un microcontrolador comercial. El modelo final se compila en el firmware y se ejecuta con un intérprete pequeño o código compilado:
El presupuesto puede estimarse antes de disponer del hardware. Esta red de detección de palabras clave, una CNN con convoluciones separables en profundidad del tipo utilizado para reconocer comandos hablados a partir de características de audio, cuenta un byte por cada peso INT8 para la memoria flash y el par más grande de activaciones de entrada y salida para la SRAM:
import torch
from torch import nn
# A depthwise-separable CNN for keyword spotting on 49x10 MFCC audio features
model = nn.Sequential(
nn.Conv2d(1, 64, (10, 4), stride=2, padding=(5, 1)),
nn.ReLU(),
nn.Conv2d(64, 64, 3, padding=1, groups=64),
nn.Conv2d(64, 64, 1),
nn.ReLU(),
nn.Conv2d(64, 64, 3, padding=1, groups=64),
nn.Conv2d(64, 64, 1),
nn.ReLU(),
nn.AdaptiveAvgPool2d(1),
nn.Flatten(),
nn.Linear(64, 12),
)
# At INT8, flash stores one byte per weight and SRAM holds activations in flight
weights = sum(p.numel() for p in model.parameters())
x, peak = torch.randn(1, 1, 49, 10), 0
for layer in model:
y = layer(x)
peak = max(peak, x.numel() + y.numel()) # a layer's input and output coexist
x = y
print(f"Flash: {weights / 1024:.1f} KB, peak SRAM: {peak / 1024:.1f} KB")Imprime 12,7 KB de memoria flash y 15,6 KB de SRAM máxima, una pequeña fracción del 1 MB de memoria flash y los 256 KB de RAM del microcontrolador nRF52840 de Arduino Nano 33 BLE Sense, lo que deja espacio para la canalización de audio y el propio entorno de ejecución.
Entornos de ejecución y hardware#
- LiteRT para microcontroladores: El intérprete de Google, antes llamado TensorFlow Lite for Microcontrollers, no necesita sistema operativo, biblioteca estándar ni asignación dinámica de memoria. Su entorno de ejecución principal ocupa 16 KB en un Arm Cortex-M3.
- ExecuTorch: Entorno de ejecución de PyTorch en el dispositivo. Su backend Arm Ethos-U ejecuta modelos cuantizados en las NPU Arm Ethos-U, presentes junto a los núcleos Cortex-M en muchos chips de bajo consumo.
- Arm Cortex-M: Familia de procesadores que incorporan la mayoría de los microcontroladores compatibles con TinyML, desde los modelos Cortex-M0+ con unos pocos kilobytes de RAM hasta los Cortex-M55 y Cortex-M85, que incluyen instrucciones vectoriales para aprendizaje automático.
- NPU Coral: Diseño de acelerador RISC-V de código abierto de Google, anunciado en octubre de 2025 para dispositivos ponibles siempre activos. Aspira a alcanzar unos 512.000 millones de operaciones por segundo con un consumo de unos pocos milivatios.
TinyML frente a Edge AI#
La IA en el edge abarca cualquier inferencia ejecutada en el dispositivo donde se generan los datos, incluidos los teléfonos, los ordenadores de placa única como Raspberry Pi y los módulos GPU integrados como NVIDIA Jetson, que disponen de gigabytes de memoria y consumen vatios. TinyML es su categoría más pequeña, en la que los modelos se miden en kilobytes. El límite sigue cambiando a medida que los microcontroladores incorporan aceleradores: el STM32N6 de ST combina un Cortex-M55 con una unidad de procesamiento neuronal de 600 GOPS y 4,2 MB de RAM. El detector Ultralytics YOLO26 más pequeño tiene 2,4 millones de parámetros, unos 2,4 MB en INT8, por lo que su exportación LiteRT INT8 (format="litert", quantize=8) está dirigida a la categoría superior a TinyML clásico: teléfonos, ordenadores de placa única y placas con aceleradores.
Aplicaciones de TinyML#
- Detección de palabras clave: Los detectores de palabras de activación siempre activos en teléfonos, auriculares y altavoces inteligentes buscan una frase concreta en un núcleo de bajo consumo y activan el procesador principal solo cuando la oyen.
- Mantenimiento predictivo: Los sensores de vibración y audio instalados en motores y bombas aprenden cómo es el funcionamiento normal y detectan anomalías que preceden a los fallos. Pueden funcionar durante años con una batería.
- Monitorización de la fauna y el medioambiente: Los sensores acústicos alimentados por energía solar o batería reconocen llamadas de animales o motosierras en bosques remotos y envían alertas breves por radio de largo alcance.
- Palabras de activación visuales: Las cámaras de baja resolución de los microcontroladores determinan si hay una persona a la vista y activan un sistema más potente solo cuando la detectan.
MLPerf Tiny, la referencia de MLCommons para esta categoría de hardware, mide la precisión, la latencia y el consumo energético en tareas de estas aplicaciones, como la detección de palabras clave, las palabras de activación visuales, la clasificación de imágenes CIFAR-10 y la detección de anomalías en sonidos de máquinas.










