TinyML
TinyML exécute l’apprentissage automatique sur des microcontrôleurs dotés de quelques kilo-octets de mémoire et consommant quelques milliwatts. Découvre comment adapter les modèles, leurs applications et les outils disponibles.
TinyML (apprentissage automatique sur microappareils) désigne l’exécution de modèles d’apprentissage automatique sur des microcontrôleurs et d’autres puces à très faible consommation, généralement dotés de quelques centaines de kilo-octets de mémoire, sans système d’exploitation et avec une puissance de l’ordre du milliwatt. Exécuter l’inférence sur une puce située juste à côté du capteur permet aux appareils alimentés par batterie d’écouter, d’observer ou de détecter leur environnement en continu pendant des mois ou des années, en envoyant uniquement des résultats comme « mot-clé détecté » ou « vibration anormale de la machine », plutôt que les données brutes. Cela réduit la latence, protège la confidentialité des données et économise l’énergie radio qu’exigerait la diffusion en continu. L’organisation communautaire du domaine, l’EDGE AI FOUNDATION, s’appelait auparavant tinyML Foundation.
Comment les modèles tiennent dans un microcontrôleur#
Un microcontrôleur stocke les poids du modèle dans la mémoire flash avec le programme et conserve les activations en cours de calcul dans la SRAM, généralement la ressource la plus limitée. La quantification du modèle en entiers 8 bits réduit les poids au quart de leur taille FP32 et remplace les opérations en virgule flottante par de l’arithmétique entière, exécutée efficacement par les petits cœurs. Des architectures compactes fondées sur des convolutions séparables en profondeur, l’élagage du modèle et des résolutions d’entrée plus faibles réduisent le reste, et la recherche d’architecture neuronale peut concevoir des réseaux adaptés à la mémoire d’une puce précise. MCUNet a combiné ce type de recherche à un environnement d’exécution tenant compte de la mémoire, atteignant plus de 70 % de précision top-1 sur ImageNet avec un microcontrôleur du commerce. Le modèle final est compilé dans le micrologiciel et exécuté par un petit interpréteur ou sous forme de code compilé :
Il est possible d’estimer le budget avant même de disposer du matériel. Ce réseau de détection de mots-clés, un CNN séparable en profondeur du type utilisé pour reconnaître des commandes vocales à partir de caractéristiques audio, compte un octet par poids INT8 pour la mémoire flash et la plus grande paire d’activations d’entrée et de sortie pour 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")Il affiche 12,7 Ko de mémoire flash et 15,6 Ko de SRAM au pic, soit une petite fraction des 1 Mo de mémoire flash et 256 Ko de RAM du microcontrôleur nRF52840 d’un Arduino Nano 33 BLE Sense, ce qui laisse de la place pour la chaîne de traitement audio et l’environnement d’exécution lui-même.
Environnements d’exécution et matériel#
- LiteRT pour microcontrôleurs : l’interpréteur de Google, anciennement TensorFlow Lite pour microcontrôleurs, ne nécessite ni système d’exploitation, ni bibliothèque standard, ni allocation dynamique de mémoire ; son environnement d’exécution principal tient dans 16 Ko sur un Arm Cortex-M3.
- ExecuTorch : l’environnement d’exécution embarqué de PyTorch, dont le backend Arm Ethos-U exécute des modèles quantifiés sur les NPU Arm Ethos-U, situés à côté des cœurs Cortex-M dans de nombreuses puces à faible consommation.
- Arm Cortex-M : famille de processeurs présente dans la plupart des microcontrôleurs exécutant TinyML, des composants Cortex-M0+ dotés de quelques kilo-octets de RAM aux Cortex-M55 et Cortex-M85, qui disposent d’instructions vectorielles pour l’apprentissage automatique.
- NPU Coral : conception d’accélérateur RISC-V open source de Google, annoncée en octobre 2025 pour les objets connectés portables toujours actifs, qui vise environ 512 milliards d’opérations par seconde pour une consommation de quelques milliwatts.
TinyML et Edge AI#
L’IA en périphérie englobe toute inférence réalisée sur l’appareil où les données sont produites, notamment les téléphones, les ordinateurs monocartes comme le Raspberry Pi et les modules GPU embarqués comme NVIDIA Jetson, qui disposent de gigaoctets de mémoire et consomment plusieurs watts. TinyML en est le niveau le plus petit, avec des modèles mesurés en kilo-octets. La frontière évolue à mesure que les microcontrôleurs gagnent des accélérateurs : le STM32N6 de ST associe un Cortex-M55 à une unité de traitement neuronal de 600 GOPS et à 4,2 Mo de RAM. Le plus petit détecteur Ultralytics YOLO26 compte 2,4 millions de paramètres, soit environ 2,4 Mo en INT8 ; son export LiteRT INT8 (format="litert", quantize=8) cible donc le niveau supérieur au TinyML classique : les téléphones, les ordinateurs monocartes et les cartes dotées d’accélérateurs.
Applications de TinyML#
- Détection de mots-clés : des détecteurs de mots d’activation toujours actifs, intégrés aux téléphones, aux écouteurs et aux enceintes connectées, écoutent une phrase donnée sur un cœur à faible consommation et ne réveillent le processeur principal qu’à sa détection.
- Maintenance prédictive : des capteurs de vibration et audio fixés aux moteurs et aux pompes apprennent le fonctionnement normal et signalent les anomalies qui précèdent les pannes, pendant des années sur batterie.
- Surveillance de la faune et de l’environnement : des capteurs acoustiques alimentés à l’énergie solaire ou par batterie reconnaissent les cris d’animaux ou les tronçonneuses dans des forêts isolées et envoient de brèves alertes par radio longue portée.
- Mots d’activation visuels : des caméras basse résolution sur microcontrôleurs déterminent si une personne est visible et ne réveillent un système plus puissant que si c’est le cas.
MLPerf Tiny, le benchmark de MLCommons pour cette catégorie de matériel, mesure la précision, la latence et la consommation énergétique sur des tâches issues de ces applications, comme la détection de mots-clés, les mots d’activation visuels, la classification d’images CIFAR-10 et la détection d’anomalies dans les sons de machines.










