L'augmentation de l'intelligence de bord : pourquoi les microcontrôleurs ont de la matière

Mais comme le nombre d'appareils connectés explose, pour atteindre plus de 30 milliards de points de contrôle IoT d'ici 2030, il est de plus en plus nécessaire de se déplacer directement du centre de données vers les puces minuscules qui lancent des capteurs, des actionneurs et des implants. Ces puces, appelées microcontrôleurs (MCU), sont les chevaux de travail invétérés du monde intégré : elles s'étendent des ampoules intelligentes et des bandes de fitness aux contrôleurs industriels et aux implants médicaux. Des modèles ML fonctionnant directement sur ces appareils, un domaine souvent appelé TinyML, débloquent la prise de décision en temps réel, réduisent la la latence, éliminent le besoin de connectivité en nuage constant et améliorent la vie privée en maintenant les données locales.

Contraintes fondamentales de l'environnement des microcontrôleurs

Avant d'explorer des solutions, il est essentiel de comprendre les limites de ressources qui définissent le paysage du microcontrôleur. Contrairement à un smartphone ou à un Raspberry Pi fonctionnant sous Linux, un MCU typique fonctionne sous de graves contraintes :

  • Mémoire: Le stockage flash (pour le code et les données) varie souvent de 16 KB à 2 MB, tandis que SRAM (pour les opérations d'exécution) est encore plus serré – souvent entre 2 KB et 512 KB. Un seul poids de modèle à point flottant de 4 octets peut rapidement épuiser ce budget.
  • Puissance de calcul:[ Les vitesses de l'horloge sont généralement mesurées en dizaines à quelques centaines de mégahertz. De nombreux MCU ne disposent pas d'un point flottant (FPU), ce qui rend les opérations de point flottant extrêmement lentes.
  • Consommation d'énergie:[ Les appareils à piles doivent souvent fonctionner pendant des mois ou des années sur une cellule de monnaie.
  • Écosyste logiciel:[ Aucun système d'exploitation, aucun système de fichiers et aucune garantie d'allocation de mémoire dynamique. Le code C ou C++ doit être alloué statiquement et extrêmement déterministe.

Ces contraintes obligent les développeurs à repenser tous les aspects du pipeline ML, de l'architecture modèle à la représentation numérique.

Techniques de base pour les modèles de serrage sur microcontrôleurs

Plusieurs optimisations clés sont apparues pour rendre les modèles ML utilisables sur du matériel limité. Ces techniques sont souvent combinées pour atteindre des cibles de taille et de vitesse.

Quantification du modèle

La technique la plus efficace est la quantification : réduire la précision numérique des paramètres du modèle. Un modèle formé avec des poids de point flottant 32 bits peut souvent être converti en entiers 8 bits avec une perte de précision négligeable en s'adaptant à la gamme dynamique d'activations. Cela permet une réduction de 4 fois de l'empreinte mémoire et une accélération significative (surtout sur les MCU qui n'ont pas de FPU). Des schémas avancés comme la quantification de précision mixte (en conservant certaines couches dans le flotteur16 ou l'int4) peuvent réduire encore davantage les performances tout en préservant la précision.

Taille et sparosité du modèle

La taille élimine les connexions (poids) redondantes ou à faible impact dans un réseau neuronal formé. La taille structurée supprime les neurones ou filtres entiers, qui se massifient directement vers une multiplication matricielle efficace. La taille non structurée fixe les poids individuels à zéro, créant une sparosité qui peut être exploitée par des noyaux personnalisés. Après la taille, la mise au point fine récupère la précision perdue. Par exemple, une couche entièrement connectée dans un petit modèle de pointage par mots clés peut être taillée à 70 à 80 % avec une diminution minimale de précision, réduisant ainsi le nombre d'opérations à accumulation multiple par un facteur similaire.

Distillation des connaissances

Au lieu de former un petit modèle directement sur l'ensemble de données d'origine, la distillation des connaissances forme un modèle compact -Student - pour imiter les probabilités de sortie d'un modèle grand -Professeur. Les cibles douces de l'enseignant contiennent des informations plus riches que les étiquettes brutes, permettant à l'élève d'obtenir une précision plus élevée que s'il était formé à partir de zéro.

Recherche architecturale et efficacité Op‐Kernels

La conception d'un réseau neuronal spécifique aux périphériques de bord va au-delà de la compression d'une architecture existante. La recherche d'architecture neurale (NAS) peut découvrir des blocs de construction légers (p. ex. convolutions séparables en profondeur, goulots inversés) qui équilibrent le nombre et la précision des paramètres.

Cadres de développement et chaînes d'outils

Pour apporter ces optimisations à un appareil physique, il faut une pile logicielle robuste. Plusieurs cadres matures ciblent désormais explicitement les microcontrôleurs :

  • TensorFlow Lite for Microcontrollers (TFLM): Un cadre open-source qui exécute des modèles TensorFlow sur des MCU 32 bits. Il fournit un interprète léger, des noyaux prégroupés et un système de construction automatisé. TFLM prend en charge des modèles quantifiés, a un petit temps d'exécution (=20 KB) et fonctionne sur les cibles ARM Cortex‐M, ESP32 et Arduino.
  • Edge Impulse: Une plateforme commerciale qui simplifie l'ensemble du flux de travail de TinyML : collecte de données, ingénierie des fonctionnalités, formation de modèles (avec son propre ou apportez-vous-même), déploiement automatisé (y compris TFLM et ONNX Runtime) et profilage des performances en temps réel.
  • CMSIS‐NN: Un ensemble de noyaux de réseau neuronal hautement optimisés pour les processeurs ARM Cortex‐M. Il utilise les instructions SIMD (telles que les extensions DSP) pour accélérer la convolution, le regroupement et les couches entièrement connectées. CMSIS‐NN est souvent utilisé comme moteur pour TFLM ou d'autres cadres, fournissant des accélérations de 4 à 5× sur les implémentations C naïfs.
  • ONNX Durée de fonctionnement pour embedded: Le moteur d'inférence multiplateforme Microsoft prend désormais en charge les microcontrôleurs par une configuration spécialisée (ORTM). Il peut exécuter des modèles ONNX quantifiés sur des MCU sans métal ou à base de RTOS.

Plateformes de Microcontroller de pointe pour ML

Le choix du MCU influence fortement la complexité du modèle et la vitesse d'inférence possibles. Ci-dessous sont les plateformes populaires qui se sont avérées adaptées aux charges de travail de TinyML.

Arduino Nano 33 BLE Sens

Basé sur le nRF52840 (ARM Cortex‐M4F avec 256 KB RAM, 1 MB Flash), ce tableau comprend une gamme de capteurs (microphone, accéléromètre, gyroscope, magnétomètre, température, humidité, pression) qui en font une plateforme de prototypage idéale. Google Alstom L'équipe TensorFlow a publié plusieurs exemples officiels de TFLM pour elle, y compris le repérage par mots clés et la reconnaissance des gestes.

Série ESP32 (Espressif)

Le ESP32 (Xtensa LX6 dual-core, jusqu'à 240 MHz, 520 KB SRAM) est omniprésent dans les projets IoT. Sa mémoire généreuse et intégré Wi-Fi/Bluetooth le rendent attrayant pour les tâches ML bord qui nécessitent des mises à jour occasionnelles du cloud. Le nouveau ESP32-S3 comprend une extension vectorale qui peut accélérer les opérations du réseau neuronal.

Famille STM32 (STMicroélectronique)

Les MCU STM32 couvrent un large spectre allant de Cortex-M0+ (STM32L0) à Cortex-M7 haut de gamme (STM32H7) avec jusqu'à 2 Mo de RAM. ST fournit le logiciel X‐CUBE‐AI qui convertit les modèles TensorFlow, PyTorch ou Keras en code C optimisé pour STM32. La chaîne d'outils STM32Cube.AI supporte la quantification, le profilage et la génération automatique de code, ce qui en fait un favori pour les applications industrielles.

Raspberry Pi Pico (RP2040)

Avec seulement 264 KB RAM et 2 Mo Flash, le Pico est à l'extrémité inférieure de la mémoire, son double cœur Cortex‐M0+ fonctionne jusqu'à 133 MHz. Il est adapté aux très petits modèles (par exemple, détection d'anomalies sur les séries chronologiques des capteurs).

Ambiq Apollo4

Les MCU Ambiq , conçus pour une consommation ultra-faible (souvent inférieure à 5 μA/MHz), sont toujours très bien calculés (Cortex‐M4F jusqu'à 192 MHz, jusqu'à 1,8 Mo de RAM). Ils sont populaires chez les assistants vocaux et les appareils de surveillance de la santé où la durée de vie des batteries est critique.

Études de cas : TinyML en action

Les principes ci-dessus ont été appliqués pour créer des systèmes réels impressionnants qui fonctionnent entièrement sur les appareils.

Mots clés Spotting sur un Arduino Nano

La démo Google-Micro speech-demo utilise un modèle 20-KB sur l'Arduino Nano 33 BLE Sense pour détecter les mots -yes et -no-de. Le modèle utilise des convolutions séparables en profondeur et est quantifié à 8 bits entiers. Il traite les fenêtres audio de 30 millisecondes à partir du microphone de bord, obtenant une précision de 90%+ avec une latence inférieure à 50 ms et une consommation d'énergie dans la gamme de faible milliwatt.

Détection d'anomalies pour la maintenance prédictive

Un grand fabricant de moteurs industriels a déployé des nœuds de capteur basés sur la STM32 qui surveillent les vibrations et la température. Un autoencodeur compact (=30 KB de poids, quantifié à int8) a été formé sur des données de fonctionnement normales. L'inférence sur l'appareil calcule l'erreur de reconstruction toutes les secondes. Si l'erreur dépasse un seuil, le nœud envoie une alerte locale. Le modèle fonctionne en temps réel sur une STM32L4, ne consommant que 6 mJ par inférence, et a permis une réduction de 40% des temps d'arrêt imprévus.

Agriculture intelligente avec capteurs de sol

Une start-up agtech a utilisé Edge Impulse pour former un classificateur sur les données des capteurs d'humidité, de pH et de température du sol. Le modèle final ( -25 KB ) fonctionne sur un microcontrôleur ESP32. Il détecte lorsque les conditions du sol sont optimales pour l'irrigation ou l'ajout de nutriments, et déclenche directement une soupape d'eau – pas de tour-circuit de nuages nécessaire.

Limites actuelles et défis ouverts

Bien que TinyML ait réalisé des progrès remarquables, plusieurs obstacles subsistent.

  • Rexistance limitée du modèle : Même avec la compression, de nombreux modèles de vision informatique ou de langage naturel de pointe sont encore trop grands pour les MCU. Par exemple, il est impossible de faire fonctionner un ResNet‐50 (25 MB) standard sur un microcontrôleur.
  • Fragmentation de la chaîne d'outils: Chaque fournisseur ou cadre de MCU peut avoir son propre pipeline de conversion, et le débogage des erreurs de déduction entre les versions d'outils peut prendre du temps.
  • L'entraînement sur les appareils :[ La plupart des déploiements TinyML ne font qu'inférence. L'adaptation à la dérive ou aux environnements de nouveaux capteurs nécessite une connexion nuageuse pour le recyclage, ce qui va à l'encontre de certains des avantages du traitement des bords.
  • Sécurité et robustesse adversaire: Les attaquants peuvent potentiellement extraire des modèles de l'appareil ou des entrées artisanales qui causent une erreur de classification.

Orientations futures

La prochaine vague de TinyML sera pilotée par la co-conception matérielle et algorithme.

  • Les accélérateurs de logiciels fixes:[ Les MCU intégrant des accélérateurs de réseau neuronal dédiés (p. ex., NXP="s eIQ avec Ethos‐U55 microNPU) peuvent effectuer des convolutions à une fraction de l'énergie d'un processeur conventionnel.
  • Les prototypes de recherche permettent aux MCU d'échanger des mises à jour de modèles sans partager de données brutes, en préservant la vie privée tout en permettant l'amélioration collaborative d'un modèle mondial.
  • Traitement neuromorphe :[ Les réseaux neuronaux en araignée (RSN) peuvent fonctionner sur des puces animées par des événements comme Intel , Loihi ou BrainChip , qui consomment de simples microwatts pour certaines tâches continues, comme la reconnaissance des gestes ou la surveillance sismique.
  • Auto‐ML pour TinyML: Les outils qui cherchent automatiquement la plus petite architecture de modèle la plus rapide et qui répond toujours aux contraintes de précision deviennent plus accessibles, ce qui réduit la barrière pour les experts non-AI.

Commencer avec votre premier projet TinyML

Si vous êtes prêt à essayer d'appliquer le ML sur un microcontrôleur, voici un workflow recommandé:

  1. Sélectionner une planche:[ Un Arduino Nano 33 BLE Sense ou ESP32‐DevKitC est un excellent point de départ, car ils ont une mémoire abondante et des cadres bien pris en charge.
  2. Choisir un problème :[ Commencez par une petite tâche de classification basée sur des capteurs (p. ex., reconnaissance des gestes à l'aide d'un accéléromètre) pour éviter la complexité de l'audio ou de la vision.
  3. Collect data:[ Utilisez la carte elle-même ou un téléphone pour recueillir des exemples marqués.
  4. Former un modèle: Utilisez Edge Impulse ou TensorFlow pour former un modèle avec une formation de quantification-concept. Faites une attention particulière à la taille du modèle (devrait s'adapter dans SRAM).
  5. Déployer et tester:[ Cliquer sur le modèle converti pour le panneau et mesurer la latence, la précision et la consommation d'énergie.

Conclusion

La mise en œuvre d'algorithmes d'apprentissage automatique sur les plateformes de microcontrôleurs n'est plus une curiosité théorique, c'est un domaine pratique et en pleine croissance qui apporte de l'intelligence à des milliards de dispositifs de faible puissance. En tirant parti de la compression des modèles soignés, de cadres spécialisés et de matériel conçu spécialement pour l'usage, les ingénieurs peuvent débloquer une inférence en temps réel dans des endroits où la dépendance au cloud est impossible ou indésirable.

Ressources extérieures: