L’intelligence artificielle (IA) fait désormais partie de notre quotidien, de nos bracelets connectés à nos smartphones. Comment est-il possible de déployer de tels algorithmes dans ces environnements ayant de fortes limitations énergétiques ?
De nouvelles possibilités d'interaction avec le monde digital sont désormais possibles grâce aux périphériques mobiles et à l'avènement de l'Internet des Objets (IoT). Grâce à l'apprentissage automatique (Machine Learning) – la technique utilisée pour créer les IAs – les objets deviennent intelligents et peuvent traiter de grandes quantités d'informations. Cependant, la plupart des objets connectés se contentent d'envoyer les données dans le cloud, où elles seront analysées par des modèles complexes, avant de retransmettre la réponse à l'utilisateur. Cela nécessite une importante infrastructure (réseaux, datacenters), et pose des questions de fiabilité, de vitesse, de sécurité et de confidentialité des données, sans parler de l'énergie utilisée par la communication des données et l'infrastructure cloud. Le TinyML (Tiny = petit, ML = Machine Learning) est un domaine de l'informatique embarquée qui étudie les solutions possibles pour permettre le déploiement des modèles de Machine Learning dans des objets connectés, apportant des avantages non-négligeables au calcul cloud.
Pourquoi Tiny-ML pourrait alléger le cloud
Tout d'abord, le traitement dans le cloud de données provenant de dispositifs connectés requiert une infrastructure importante pour recevoir, transformer et stocker les données. Par conséquent, le fait de stocker et traiter les données à la périphérie (dans les objets eux-mêmes) peut réduire les coûts d'infrastructure. De plus, des dispositifs intelligents à la périphérie sont également nécessaires pour les applications où la vitesse de décision est critique. Pour la conduite autonome par exemple, le traitement de donnés dans le cloud pose aujourd'hui un risque inacceptable en raison des graves conséquences qui pourraient survenir si la connectivité est interrompue ou si la latence de connexion est trop élevée. En outre, la connexion au système cloud est exposée aux les cyberattaques.
Pour les applications critiques nécessitant un débit de données élevé (comme la surveillance des chaînes de productions), la latence de la communication peut être important et présente à nouveau des risques pour la sécurité. Avoir des dispositifs pouvant prendre des décisions de manière autonome à la périphérie est indispensable car elle permet d'éviter les arrêts coûteux et empêcher les données d'être consultées par un tiers.
Enfin, l'énergie associée au transfert et au traitement des données dans le cloud reste conséquente : aujourd’hui, 40% de l'énergie utilisée pour le streaming mobile est consommée par le réseau cellulaire mobile. Avec plus de 30 milliards d'objets connectés projetés pour 2025, et dans le contexte de la crise climatique et énergétique, l'apprentissage automatique à la périphérie peut ainsi réduire considérablement la consommation d'énergie associée au traitement des données dans le cloud.
Car ce qui fait la singularité du TinyML, c'est sa capacité de déployer des modèles gourmands en énergie sur des appareils ayant des ressources computationnelles très restreintes, qui tournent parfois à de très bas niveaux d'énergie (de l'ordre des dizaines de milliwatts), contrairement aux réseaux de neurones industriels qui fonctionnent sur des cartes graphiques nécessitant environ 300W d'électricité (soit un ratio d'environ 1:10000). En rapide expansion ces dernières années, le domaine du TinyML se concentre sur l'apport de capacités d'IA sur les microcontrôleurs et les capteurs. Il implique la création de modèles d'apprentissage automatique très légers et optimisés pour fonctionner sur ces périphériques à faible puissance de calcul.
Solutions pour le Machine Learning embarqué
Les récents efforts des communautés scientifiques et industrielles ont permis le développement rapide de nouveaux algorithmes de Deep Learning à basse consommation, ainsi que le développement de nouveaux paradigmes de calculs, optimisant conjointement les techniques d'apprentissage et les technologies de circuits imprimés supportant de tels algorithmes. Des techniques sont déjà disponibles et sont largement utilisées pour réduire la taille des modèles. Elles sont notamment utilisées pour embarquer des modèles de Deep Learning pour la reconnaissance faciale dans nos smartphones ou le tracking de pression sanguine dans nos montres et bracelets connectés.
Parmi les différents algorithmes de machine learning, les réseaux de neurones sont un type de modèles très populaire qui a été appliqué (avec succès) à une large palette de problèmes. Leur popularité vient principalement de la facilité avec laquelle ils peuvent être réalisés, et du fait qu’ils offrent des performances acceptables sans expertise préalable. De plus, des modèles pré-entrainés sont facilement disponibles sur le web, ce qui les rend accessibles au public. Inspirés du système nerveux, les réseaux de neurones sont composés des couches de neurones connectées entre elles par des synapses virtuelles, appelés poids ou paramètres du réseau de neurones. Ces poids, sous forme de matrices, sont optimisés au fur et à mesure que le modèle apprend à résoudre le problème.
Dans les systèmes informatiques embarqués, l'espace mémoire est limité et les ingénieur.e.s développant ces algorithmes doivent réduire la taille des réseaux de neurones pour pouvoir les stocker sur l'appareil. La technique de factorisation est notamment utilisée pour séparer les matrices de poids et les stocker sous forme de vecteurs, afin de réduire drastiquement le nombre de paramètres. Une autre technique populaire, la quantisation consiste à changer la précision des poids (de flottant 32-bit à des entiers 8-bit ou des profondeurs de bits inférieures) pour en réduire la taille. Accessoirement, l'élagage (ou pruning) des poids tente de réduire la redondance de certains paramètres en les supprimant du modèle, soit au cas par cas ou en supprimant une couche de neurones entière, en tentant de maintenir les performances. Une autre technique, plus exotique, consiste à entrainer un modèle plus petit (appelée student) à imiter les prédictions d'un modèle plus complexe (teacher), pour ensuite déployer le modèle ainsi obtenu sur la puce. Ces différents procédés peuvent être combinés pour obtenir de meilleurs résultats. En effet, ce domaine progresse rapidement et de nombreuses techniques et combinaisons continuent d'être développées.
Pistes de développement et défis
Malgré ces solutions, il reste encore des défis importants à relever, notamment en matière de précision et de robustesse des modèles, de durabilité de la batterie et de confidentialité des données. L'application des techniques précédentes impacte la performance des modèles, et la recherche actuelle se concentre donc sur la mitigation de cet impact en améliorant les algorithmes. Il est désormais établi que la plus grande part du budget énergétique des systèmes embarqués est réservée au transfert de données entre la mémoire et le processeur. La réduction de la consommation et l'amélioration de l'autonomie de ces systèmes repose donc également sur le développement de briques matérielles réduisant le transfert de données. Celles-ci peuvent consister en mémoire plus intelligente où des opérations simples sont effectuées avant le transfert vers le processeur (in-memory computing).
La tendance actuelle prévoit l'abandon du concept même d'architectures Von Neumann et mélange la mémoire avec le calcul : les réseaux de neurones à décharge (spiking neural networks), des modèles plus proches des réseaux de neurones biologiques, ne stockeront plus l'information dans une mémoire externe mais dans les neurones et les synapses du réseau. On voit également réémerger d'anciens concepts comme l'informatique analogique, remise au goût du jour par l'exploitation de transistors en régime sous-seuil (subthreshold regime), qui permettent d'énormes gains en termes d'énergie, aux dépens de résultats moins précis. Finalement, la question de la protection des données est étudiée avec de nouveaux paradigmes d'apprentissage permettant l'entraînement des algorithmes sur les puces elles-mêmes, les objets apprenant de façon autonome (online learning) ou communiquant entre eux les informations minimales pour s'entraider (federated learning).
A l’avenir, les objets pourront devenir autonomes en énergie et en prise de décision, les données restant à la périphérie ou n'étant partagées avec le cloud que lorsqu’une analyse plus approfondie sera nécessaire. Les objets connectés apprendront seuls et pourront nous informer en temps réel de l'état de notre environnement. L’intelligence sera partout, distribuée, à portée de main. Dans cette optique, la communauté du TinyML devra donc continuer à améliorer la qualité des modèles, tout en garantissant leur capacité à fonctionner sur des appareils à faible consommation d'énergie. En adoptant le TinyML, nous pourrons bénéficier d'une technologie plus respectueuse de notre planète, tout en continuant à innover et à améliorer notre quotidien.
* * *
Une communauté suisse en expansion
Les objets intelligents TinyML existent à l'interface du matériel et du logiciel. La création et l'évaluation de ces dispositifs nécessitent un nouvel ensemble d'outils. La TinyML Foundation, une organisation internationale, a été créé pour accélérer la progression de ce domaine et faciliter le développement de nouvelles applications. TinyML vient de lancer une antenne en Suisse composée des membres de l'industrie et de l'académie, tels que le CSEM, l'ETH Zürich, Logitech, SynSense et Synthara. Des événements ouverts au public auront lieu en 2023, comprenant des présentations techniques et des workshops.
Plus d'informations sur le site de l'organisation tinyML.