TinyML
TinyML executa aprendizado de máquina em microcontroladores com kilobytes de memória e miliwatts de potência. Veja como adaptar modelos, onde são usados e quais ferramentas existem.
TinyML (aprendizagem automática minúscula) é a prática de executar modelos de aprendizagem automática em microcontroladores e outros chips de consumo ultrabaixo, normalmente com algumas centenas de quilobytes de memória, sem sistema operativo e com um orçamento energético de alguns miliwatts. Executar a inferência num chip junto ao sensor permite que dispositivos alimentados por bateria ouçam, vejam ou sintam continuamente o ambiente durante meses ou anos, enviando apenas resultados como «palavra-chave detetada» ou «vibração anormal da máquina», em vez de dados em bruto. Isto reduz a latência, protege a privacidade dos dados e poupa a energia que a transmissão contínua consumiria. A organização comunitária do setor, a EDGE AI FOUNDATION, chamava-se anteriormente tinyML Foundation.
Como os modelos cabem num microcontrolador#
Um microcontrolador armazena os pesos do modelo na memória flash, juntamente com o programa, e mantém as ativações em cálculo na SRAM, que costuma ser o limite mais restritivo. A quantização do modelo para inteiros de 8 bits reduz os pesos a um quarto do tamanho em FP32 e substitui as operações de vírgula flutuante por operações com inteiros, que os núcleos pequenos executam eficientemente. Arquiteturas compactas baseadas em convoluções separáveis em profundidade, poda de modelos e resoluções de entrada mais baixas reduzem o restante; a pesquisa de arquitetura neural pode ainda conceber redes para a memória de um chip específico. O MCUNet combinou essa pesquisa com um ambiente de execução que tem em conta a memória para alcançar mais de 70% de precisão top-1 no ImageNet num microcontrolador comercial. O modelo final é compilado no firmware e executado por um interpretador pequeno ou como código compilado:
O orçamento pode ser estimado antes de utilizar qualquer hardware. Esta rede de deteção de palavras-chave é uma CNN separável em profundidade do tipo usado para reconhecer comandos falados a partir de características de áudio; contabiliza um byte por peso INT8 para a memória flash e o maior par de ativações de entrada e saída para a 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")O programa apresenta 12,7 KB de memória flash e 15,6 KB de pico de SRAM, uma pequena fração do 1 MB de memória flash e dos 256 KB de RAM do microcontrolador nRF52840 de um Arduino Nano 33 BLE Sense, deixando espaço para o processamento de áudio e o próprio ambiente de execução.
Ambientes de execução e hardware#
- LiteRT para microcontroladores: O interpretador da Google, anteriormente TensorFlow Lite for Microcontrollers, não precisa de sistema operativo, biblioteca padrão nem alocação dinâmica de memória; o núcleo do ambiente de execução ocupa 16 KB num Arm Cortex-M3.
- ExecuTorch: O ambiente de execução no dispositivo do PyTorch, cujo back-end Arm Ethos-U executa modelos quantizados em NPU Arm Ethos-U, integradas junto aos núcleos Cortex-M em muitos chips de baixo consumo.
- Arm Cortex-M: A família de processadores presente na maioria dos microcontroladores que executam TinyML, desde os componentes Cortex-M0+ com alguns quilobytes de RAM até ao Cortex-M55 e Cortex-M85, com instruções vetoriais para aprendizagem automática.
- NPU Coral: Um projeto de acelerador RISC-V de código aberto da Google, anunciado em outubro de 2025 para dispositivos vestíveis sempre ativos, que visa cerca de 512 mil milhões de operações por segundo com um consumo de alguns miliwatts.
TinyML vs. IA de borda#
A IA de periferia abrange qualquer inferência no dispositivo onde os dados são produzidos, incluindo telemóveis, computadores de placa única como o Raspberry Pi e módulos GPU integrados como o NVIDIA Jetson, que têm gigabytes de memória e consomem vários watts. O TinyML é a categoria mais pequena, com modelos medidos em quilobytes. A fronteira está sempre a mudar à medida que os microcontroladores ganham aceleradores: o STM32N6 da ST combina um Cortex-M55 com uma unidade de processamento neural de 600 GOPS e 4,2 MB de RAM. O menor detetor Ultralytics YOLO26 tem 2,4 milhões de parâmetros, cerca de 2,4 MB em INT8; por isso, a sua exportação LiteRT INT8 (format="litert", quantize=8) destina-se à categoria acima do TinyML clássico: telemóveis, computadores de placa única e placas com aceleradores.
Aplicações do TinyML#
- Deteção de palavras-chave: Os detetores de palavras de ativação sempre ligados em telemóveis, auriculares e colunas inteligentes ouvem uma única frase num núcleo de baixo consumo e só ativam o processador principal quando a detetam.
- Manutenção preditiva: Sensores de vibração e áudio instalados em motores e bombas aprendem o funcionamento normal e assinalam anomalias que antecedem avarias, funcionando durante anos com uma bateria.
- Monitorização da vida selvagem e do ambiente: Sensores acústicos alimentados por energia solar ou bateria reconhecem vocalizações de animais ou motosserras em florestas remotas e enviam alertas breves por rádio de longo alcance.
- Palavras de ativação visuais: Câmaras de baixa resolução ligadas a microcontroladores determinam se uma pessoa está no campo de visão e só ativam um sistema maior quando detetam alguém.
O MLPerf Tiny, o benchmark da MLCommons para esta classe de hardware, mede a precisão, a latência e o consumo energético em tarefas destas aplicações, como a deteção de palavras-chave, palavras de ativação visuais, a classificação de imagens CIFAR-10 e a deteção de anomalias em sons de máquinas.










