Microcontrôleurs et IA : les défis du machine learning embarqué
L’exécution de modèles de machine learning sur des microcontrôleurs embarqués présente de sérieux avantages, mais aussi des limites que les experts s’efforcent de surmonter.
Le monde de la recherche et du développement dédié à l’IA creuse de nouvelles pistes. L’une d’entre elles, particulièrement intéressante, consiste à trouver des moyens de diminuer la taille des algorithmes pour les faire fonctionner sur des puces peu puissantes elles-mêmes installées dans des voitures, des machines industrielles ou de l’électroménager.
Cette forme d’intelligence artificielle embarquée existe déjà : elle identifie les types d’activité physique grâce aux capteurs des smartphones, elle s’enclenche à la voix sur les appareils grand public, elle surveille les équipements IoT industriels et distingue les personnes dans les caméras de surveillance.
Outre les nouveaux usages, ces puces aux performances amoindries consomment peu. Alors que l’IA est perçue comme une activité extrêmement énergivore, elles ouvrent un nouvel horizon pour continuer à progresser dans ce domaine, sans toutefois peser sur la facture énergétique et le bilan carbone des industriels.
La commercialisation, l’année dernière, de la puce Cortex-M55 d’ARM laisse déjà entrevoir des microcontrôleurs (MCU) de plus en plus sophistiqués et encore plus légers. Ce Cortex-M55 embarque un coprocesseur intégré pour optimiser à la fois les capacités de traitement des algorithmes et la consommation d’énergie.
Contrairement aux CPU, les microcontrôleurs sont souvent directement connectés aux capteurs et aux actuateurs. Cela permet de limiter la latence, ce qui est essentiel dans les applications critiques comme l’aide au freinage d’urgence, le fonctionnement d’équipements industriels ou la réponse à incident.
« La grande tendance dans le secteur de l’IA consiste à déplacer l’inférence du machine learning vers la périphérie, là où les appareils génèrent des données », affirme Sang Won Lee, PDG de Qeexo, une plateforme d’IA pour les systèmes embarqués.
Exécuter des modèles à la périphérie octroie immédiatement de précieux avantages tels que la réduction de la latence, de la bande passante et de la consommation d’énergie. Sang Won Lee a observé que l’inférence sur des microcontrôleurs produit généralement moins de 5 milliwatts, contre 800 milliwatts pour l’envoi de données vers le cloud via un réseau cellulaire.
De plus, le fait de ne pas dépendre du cloud ou d’un serveur centralisé est synonyme d’une plus grande autonomie.
Adapter les bibliothèques logicielles
Cependant, les microcontrôleurs présentent également de nouveaux défis pour les pipelines traditionnels d’intelligence artificielle. Cette frugalité apporte son lot de contraintes : la puissance, la mémoire et les environnements matériels et logiciels sont limités.
David Kanter peut en témoigner en tant que directeur de MLCommons, un consortium qui élabore des benchmarks, des jeux de données et de meilleures pratiques pour le machine learning embarqué. Selon lui, les groupes industriels commencent à établir des benchmarks pour aider les programmeurs à sélectionner les combinaisons appropriées de microcontrôleurs, d’outils de développement et d’algorithmes pour diverses tâches, à l’instar de MLPerf Tiny.
Jason SepherdVP écosystème, Zededa
En outre, de nouveaux outils, tels que TinyML et TensorFlow Lite, apparaissent pour simplifier le développement d’algorithmes d’IA plus petits et plus économes en énergie.
« L’essor de TinyML sur les microcontrôleurs permet de distribuer l’intelligence dans davantage de produits connectés dans le monde réel, qu’il s’agisse d’équipements domotiques, de jouets, de senseurs industriels, ou autres », déclare Jason Shepherd, vice-président écosystème de la plateforme d’Edge Computing Zededa.
Les nouvelles bibliothèques logicielles doivent également faciliter l’entraînement, l’amélioration et le déploiement de modèles d’IA sur ces microcontrôleurs, même pour les développeurs néophytes de la programmation embarquée.
À ce titre, Cartesiam, avec son studio NanoEdge AI a su convaincre STMicroelectronics. En mai 2021, le fabricant de semiconducteurs a racheté la startup toulonnaise capable d’exécuter des modèles ML simples entraînés sur un ordinateur portable, puis de les inférer en 20 millisecondes à partir d’un ARM Cortex M4, cadencé à 84 MHz. Un tel modèle consomme 1 à 20 kb de RAM et occupe 200 kb de stockage flash.
Les NPU envahissent l’embarqué
Les microcontrôleurs ont précédé le développement des CPU et des GPU et sont intégrés dans presque tous les types d’équipements modernes dotés de capteurs et d’actionneurs. Ils sont un élément essentiel pour les entreprises qui souhaitent embarquer l’IA dans des machines.
Par exemple, AI Clearing a développé une plateforme qui capture automatiquement l’avancement des chantiers de construction depuis les caméras des drones. Jakub Lukaszewicz, responsable de l’IA pour AI Clearing, affirme que les microcontrôleurs ont été particulièrement importants pour son équipe, car ils propulsent les fonctions de vol et de communication des UAVs.
Il considère les microcontrôleurs comme des CPU d’entrée de gamme aux capacités de traitement limitées. Selon lui, il existe de nombreuses variétés de MCU sur le marché, avec des architectures et des attraits spécifiques, mais ils présentent tous deux avantages cruciaux par rapport aux CPU traditionnels : un faible coût et une consommation d’énergie minimale.
Cette frugalité économique et énergétique en fait de parfaits outils pour les technologies embarquées. Par exemple, ils sont largement utilisés dans des capteurs industriels pouvant fonctionner 5 à 10 ans sur batterie ou sur pile.
Jakub Lukaszewicz observe une nouvelle tendance consistant à créer des microcontrôleurs avec des puces d’accélération de réseaux de neurones (Neuronal Processing Unit ou NPU) intégrées. Ces unités sont spécifiquement conçues pour exécuter efficacement des modèles d’apprentissage automatique sur des MCUs.
« Tous les grands fabricants de microcontrôleurs mijotent un produit équipé d’une telle puce », lance-t-il.
Ces produits sont généralement accompagnés de kits de développement logiciel (SDK) spécialisés qui permettent de transformer les réseaux neuronaux préparés sur un ordinateur pour les adapter à une NPU. Nous en revenons aux logiciels : ces outils prennent souvent en charge les algorithmes créés avec des frameworks tels que PyTorch, TensorFlow et autres, grâce au format ONNX.
En outre, divers outils tiers émergent de sociétés comme Latent AI et Edge Impulse pour simplifier le développement de l’IA sur différents microcontrôleurs.
Mais ces boîtes à outils ne prennent pas en charge toutes les opérations possibles avec les plus gros processeurs couplés à davantage de RAM, remarque le responsable de l’IA chez AI Clearing. Certains modèles sont trop gros, tandis que d’autres s’appuient sur des opérations incompatibles avec des composants embarqués. Souvent, les ingénieurs doivent élaguer un modèle ou ajuster son architecture pour le NPU, ce qui demande beaucoup d’expertise et prolonge le temps de développement.
Donncha Carroll, associé du département « Revenue Growth » d’Axiom Consulting Partners, qui dirige l’équipe Data Engineering & Science, affirme que les développeurs doivent également peser le pour et le contre, entre le coût inférieur des microcontrôleurs par rapport aux CPU ou aux GPU et leur flexibilité. Il est plus difficile de reconfigurer ou de recycler rapidement les systèmes embarqués.
« Une solution centralisée utilisant des CPU sera parfois plus judicieuse », précise-t-il.
Vers l’infiniment frugal : quand les limites des microcontrôleurs inspirent la recherche
Les limites imposées par les MCUs inspirent de nouvelles approches.
« Les microcontrôleurs sont tellement restreints en termes de calcul qu’ils sont à l’origine de certains des travaux les plus intéressants en matière de compression de modèles », rappelle Waleed Kadous, responsable de l’ingénierie de la plateforme de calcul distribué Anyscale.
Waleed KadousResponsable ingénierie, Anyscale
Précédemment employé par Google, Waleed Kadousa a œuvré sur un Hub de capteurs dans des téléphones Android exploitant un modèle ML pour déterminer si une personne est immobile, en train de marcher, de courir, de se déplacer ou de faire du vélo. Il pense qu’il s’agit d’un cas d’usage typique pour réfléchir à la manière dont les capteurs embarqués peuvent être déployés dans un environnement spécifique.
L’un des axes d’étude consiste à explorer les moyens de réduire les gros algorithmes pour les faire fonctionner sur des appareils beaucoup plus petits, sans perdre trop de précision. Certains chercheurs s’intéressent aux modèles de complexité en cascade, qui combinent des algorithmes de prise de décision rapide avec des modèles plus complexes pour une analyse plus approfondie. Cela pourrait permettre à une application de détecter des anomalies, puis d’engager un traitement effectué depuis un serveur en cloud.
À l’avenir, Waleed Kadous s’attend à voir davantage d’équipements adaptés de modèle de machine learning sur des microcontrôleurs. Il espère également disposer de meilleurs outils pour la compression des modèles qui complètent les améliorations apportées aux compilateurs pour microcontrôleurs.
À terme, cela débouchera sur des outils permettant d’améliorer les performances d’un microcontrôleur donné et pas seulement celles de son environnement. « Je pense que le ML se déplacera vers l’exécution du microcontrôleur lui-même pour des choses comme la gestion de l’énergie, et pour gagner les derniers milliwatts d’énergie. Le machine learning améliorera également légèrement l’efficacité opérationnelle du microcontrôleur », anticipe l’ingénieur.