MicroNets : Architectures de réseaux de neurones pour le déploiement d'applications TinyML sur des microcontrôleurs grand public

L’exécution locale de charges de travail d’apprentissage automatique sur des microcontrôleurs (MCU) à ressources limitées ouvre la voie à une extension considérable de l’application de l’Internet des objets (IoT). Toutefois, le domaine dit TinyML soulève des défis techniques majeurs, en raison des exigences importantes en calcul et en mémoire imposées par l’inférence de réseaux de neurones profonds. Pour relever ce défi, la recherche d’architecture neuronale (NAS, Neural Architecture Search) se propose d’aider à concevoir des modèles d’apprentissage automatique précis, tout en respectant les contraintes strictes de mémoire, de latence et de consommation énergétique propres aux MCUs. Un élément clé des algorithmes de NAS réside dans leur modèle de latence/énergie, c’est-à-dire la relation entre une architecture de réseau neuronal donnée et sa latence ou sa consommation énergétique d’inférence sur un MCU. Dans cet article, nous observons une propriété remarquable des espaces de recherche de NAS pour la conception de modèles sur MCU : en moyenne, la latence du modèle varie de manière linéaire avec le nombre d’opérations (op) du modèle, sous une distribution uniforme sur l’espace de recherche. En exploitant cette observation, nous utilisons une approche de NAS différentiable (DNAS) afin de rechercher des modèles à faible consommation mémoire et à faible nombre d’opérations, où le nombre d’opérations est traité comme un bon indicateur proxy de la latence. Les résultats expérimentaux confirment la validité de notre méthode, menant à la conception de modèles appelés MicroNet, déployés sur des MCUs via TensorFlow Lite Micro, un runtime d’inférence de réseaux neuronaux open-source standard largement utilisé dans la communauté TinyML. Les MicroNet atteignent des performances de pointe sur les trois tâches standard de benchmark industriel TinyMLperf : détection de mots-clés audio, détection visuelle de mots d’alerte et détection d’anomalies. Les modèles et scripts d’entraînement sont disponibles à l’adresse github.com/ARM-software/ML-zoo.