Comment l'IA s'empare des objets connectés grâce à TinyML

Comment l'IA s'empare des objets connectés grâce à TinyML Une nouvelle école du machine learning est née pour adapter les modèles d'intelligence artificielle à l'IoT et les appareils de petite taille.

Concevoir des modèles de machine learning (ML) destinés aux objets connectés n'est pas chose facile. Assurer leur portage sur des terminaux à très faible puissance implique de les optimiser en termes de poids et de performance d'exécution. Face à ce défi est née une nouvelle approche de l'apprentissage machine. Baptisée TinyML, elle vise à adapter les modèles de ML aux appareils de petite taille (ou tiny en anglais). TinyML est aussi le nom de la fondation œuvrant pour promouvoir cette approche. Son président Evgeni Gousev, directeur de l'ingénierie chez Qualcomm, est également l'un de ses fondateurs.

Le TinyML s'applique principalement au deep learning et à ses réseaux de neurones artificiels dont la taille a tendance à exploser pour gagner en précision. "Le principe du TinyML consiste à concevoir des réseaux de neurones artificiels, qui auront été entrainés sur des serveurs de grandes capacités, en vue de les déployer sur des appareils avec, à l'inverse, peu de mémoire et peu de puissance de calcul. Des objets connectés qui présentent en outre comme particularité d'être souvent peu standardisés en termes matériels, à la différence des PC", explique Manuel Capel, CTO de Parcoor, société française experte en sécurité IoT.

Comprimer les modèles

Pour réduire la taille d'un réseau de neurones, plusieurs techniques existent. Le pruning par exemple consiste à supprimer les nœuds du réseau, dont le poids est faible ou nul. "On peut en supprimer 10%, 20%, voire même plus", précise Carlos Hernandez-Vaquero, program manager data-centric SW chez Bosch et responsable de la communauté TinyML en Allemagne. Autre méthode : la quantisation en virgule flottant qui consiste à encoder les nœuds du réseau sur un nombre moins élevé de bits, par exemple sur 8 bits au lieu de 32 ou 64 bits. Au final, le réseau s'en retrouvera allégé d'un facteur de 10 à 1 000 en fonction de sa taille initiale, pour un différentiel de précision relativement faible (cf. le benchmark Inference Tiny v0.5).

"Il est par ailleurs possible de réduire la taille d'un réseau de neurones en modifiant son architecture, et notamment en réduisant le nombre de couches et de nœuds. Mais c'est évidemment beaucoup plus complexe à réaliser car il faut repartir de zéro", prévient Carlos Hernandez-Vaquero, avant d'ajouter : "Aux côtés de l'approche software, il existe aussi des techniques d'optimisation matérielle qui passent par le déploiement de processeurs pour accélérer les réseaux de neurones, ou Neural Network Accelerator, qui permettront de réaliser les traitements nettement plus rapidement qu'un simple microcontrôleur." Un domaine où la recherche est très active.

"Amazon Echo et Google Nest sont d'excellents exemples d'application de TinyML"

Les principales bibliothèques de deep learning se déclinent pour l'IoT. Du côté de Tensorflow, il s'agit de TensorFlow Lite. Un framework qui optimise les modèles d'apprentissage en vue de les pousser sur des smartphones ou des systèmes embarqués type Rassberry Py. Des terminaux qui peuvent dans certains cas être dotés de carte graphique GPU voire de NPU (pour neural processing unit). Pour les microcontrôleurs se limitant au CPU et à une taille de mémoire minimale, TensorFlow Lite Microcontrollers compresse les modèles pour les faire tenir sur ce type d'appareil. "Il se limite néanmoins à la quantisation, et ne met pas en œuvre de pruning", précise Carlos Hernandez-Vaquero.

Quant à Pytorch, il propose Pytorch Mobile. Une brique qui cible à la fois les systèmes Android, iOS, et Linux. Comme TensorFlow Lite, elle s'appuie sur la quantisation. Parmi les infrastructures orientées TinyML également évoquées par les experts interrogés figurent Apache TVM. Un framework open source dessiné pour compiler les modèles de ML pour différents types de configuration d'inférence (CPU, GPU, NPU…).

Exploitant souvent ces différentes technologies open source, de très nombreuses start-up se positionnent sur le segment du TinyML et proposent des solutions plus packagées ou spécialisées pour adapter les modèles à l'IoT. Parmi elles figurent CartasianAI, Edge impulse, OctoML et sensiML. Mais aussi CoCoPie, FogHorn ou encore Neural Magic.

De la maintenance prédictive à la medtech

Dans quels domaines se déploie le TinyML ? "Amazon Echo et Google Nest sont d'excellents exemples d'application. Ces enceintes intègrent chacune un réseau de neurones orienté reconnaissance vocale qui s'exécute in situ en continu et dialogue avec le cloud qui leur renvoie ensuite la réponse appropriée", illustre Carlos Hernandez-Vaquero. Et Manuel Capel de compléter : "Plus simplement, un microcontrôleur embarqué sur une ampoule connectée pourra prendre en charge des commandes vocales pour allumer ou éteindre la lampe grâce à un mini-réseau de neurones embarqué." Autres domaines d'application du TinyML : la classification d'images ou la reconnaissance d'objets sur les smartphones ou via des caméras industrielles pour le suivi de la qualité sur les chaines d'assemblage.

Toujours dans l'industrie, les technologies TinyML sont très utilisées pour la détection d'anomalies dans les équipements une fois déployés. Par exemple dans les ascenseurs, il s'agira de détecter sur la base d'un modèle d'apprentissage ayant ingéré un historique de production les signes avant-coureurs de panne en vue d'intervenir avant même qu'elle ne se produise. Bref réaliser de la maintenance prédictive. "Le modèle pourra se baser sur des flux de données en provenance de capteurs de pression et de température installés sur l'appareil", explique Manuel Capel. Enfin, le TinyML est très utilisé dans les domaines du bien-être et de la santé. En analysant les mouvements des smartphones, il identifie par exemple le type de sport réalisé. Dans les montres connectées, il détecte les signes précurseurs de la maladie de parkinson. Par le biais de ceintures connectées, il anticipe les accidents cardiaques en analysant le rythme des battements du cœur, etc.

Certes les données de santé sont éminemment personnelles. Mais en conservant sur l'appareil les informations de l'utilisateur, TinyML répond dans le même temps à cette délicate question.