Découvrez notre coeur de métier et les grands enjeux de l’intelligence artificielle appliquée à l’acoustique !
Dans une logique de vulgarisation, nous partageons dans une série d’articles les thématiques qui font le quotidien de nos data scientists.
Dans ce troisième volet, nous abordons la phase de déploiement des modèles.
Un déploiement est constitué de 2 phases :
- d’une part sur la plateforme d’entraînement, ici sur un serveur de calcul,
- d’autre part sur la plateforme cible, ici le capteur muni d’un microphone.
Scikit-Learn
Un exemple peut être donné avec Scikit-Learn, une bibliothèque Python utilisée dans le Machine Learning. Le modèle au format binaire est exporté via le module pickle.
Le problème de cette bibliothèque est qu’elle n’est pas adaptée à des systèmes embarqués : il est nécessaire de disposer d’un CPU et d’un interpréteur Python. En outre, le modèle n’est pas flexible au niveau de la portabilité, c’est-à-dire que d’une architecture à une autre, le modèle sera incompatible du fait des différents formats de données. Ce modèle n’est par ailleurs pas spécifiquement optimisé pour l’inférence.
Une solution possible est donc de récupérer les paramètres du modèle dans l’objet utilisé pour l’entraîner. On peut alors réaliser l’inférence, soit en utilisant un package de Scikit-Learn, soit en utilisant un programme en C pour la réaliser.
Moteur d’inférence
Une autre solution est d’utiliser un moteur d’inférence, une librairie qui permet :
- de charger le modèle,
- de spécifier les entrées et sorties,
- d’exécuter ce modèle en tirant parti des unités de traitements.
Il en existe de nombreux, comme par exemple ONNX Runtime, qui a l’avantage de fonctionner sur une grande variété de modèles, mais aussi ARM NN ou encore Intel OpenVINO.
Déploiement sur microcontrôleur
Une fois le modèle entraîné, un générateur de code pour des cibles munies de microcontrôleurs peut être utilisé pour déployer le modèle sur capteur.
Ce générateur va utiliser des bibliothèques afin de traduire l’architecture du modèle en programme C.
Un exemple de programme généré est présenté ci-dessous.
Suivez notre série d’articles sur le déploiement des modèles au plus près des données !
⚙️Partie 1 : La différence entre inférence et entraînement
⚙️Partie 2 : Inférence en périphérie, inférence centralisée : avantages et difficultés
Le dernier article sera consacré à l’optimisation des modèles.
Wavely est une société spécialisée dans la reconnaissance des sons, elle est constituée d’experts en la matière. Si vous avez des questions, ou des besoins en terme de capteurs acoustique et vibratoire, contactez nous sans plus tarder nous serions ravis d’échanger avec vous :
📧 contact@wavely.fr ou par téléphone 📞 03.62.26.39.08