Développement d'une plateforme open source TinyMLOps pour les systèmes embarqués de AIoT

From air
Jump to navigation Jump to search

Contexte


TinyML (abréviation de Tiny Machine Learning) désigne une branche de l’intelligence artificielle (IA) et de l’apprentissage automatique (ML) qui se concentre sur l’exécution de modèles de ML sur des appareils embarqués ou des systèmes à ressources limitées, comme des microcontrôleurs, des capteurs ou des appareils connectés de l’Internet des objets (IoT).

Le MLOps (abréviation de Machine Learning Operations) est un ensemble de pratiques, d’outils et de méthodologies visant à optimiser le déploiement, la gestion et le suivi des modèles de Machine Learning (ML) dans un environnement de production. Il s’inspire des principes du DevOps, qui concernent l’automatisation et la gestion des cycles de développement et d’exploitation des logiciels, en les appliquant au domaine de l’apprentissage automatique.

Le TinyMLOps est une extension du concept de MLOps appliqué au domaine du TinyML. Cela signifie qu’il s’agit de l’ensemble des outils, méthodologies et pratiques permettant de gérer efficacement le cycle de vie des modèles de TinyML (modèles de Machine Learning déployés sur des appareils embarqués et à ressources limitées, comme les microcontrôleurs).

Edge Impulse peut être considéré comme une plateforme commerciale TinyMLOps.

Le projet consistera à prototyper une plateforme TinyMLOps en s'appuyant sur Apache MFlow, un catalogue de modèles (TFLite pré-entrainé) pour Tensorflow Lite Micro, des implantations génériques et optimisées de Tensorflow Lite Micro pour un certain nombre de MCU et accélérateurs IA disponibles au fablab.

Composants pour la plateforme

  • MLFlow https://mlflow.org/
  • TinyML
  • MLPerf Tiny
  • Edge Impulse
  • Grid5000 - Slices FR
  • Flask (backend RESTFul)
  • Vue.js (console Web)

Cibles matérielles

Mesure de l'énergie