Comment travailler avec des modèles de machine learning ? Quelles sont les principales étapes du cycle de vie des modèles de machine learning ? Comment le langage Python s’intègre-t-il dans un modèle de machine learning ?
Nous montrerons aussi un exemple d’architecture de traitement de data basée sur Docker et hébergée dans le cloud pour déployer votre modèle de machine learning.
De l’exploration à la production du modèle de machine learning
Chaque cas d’utilisation en data science vient d’un problème opérationnel et vise à apporter une solution qui aura un impact réel sur la vie quotidienne des employés ou des clients.
En data science, la mise en place avec succès d’une pratique ou d’une technologie est spécifique à chaque entreprise. Il n’existe pas de livre, de cours ou de formation sur la façon de mettre en place de manière productive et à tous les coups des algorithmes de machine learning ou d’intelligence artificielle pour toutes les entreprises. Cela dépend de l’environnement, de la classification de la data et du besoin.
Les projets de machine learning sont confrontés à l’incertitude à chaque étape, de l’identification des cas d’utilisation à la livraison, à cause, par exemple, des problèmes de régression ou d’apprentissage. Par conséquent, restez ouvert aux nouvelles approches en vue d’une nouvelle target.
Comment pousser votre modèle de machine learning un peu plus loin ? Voici les trois étapes principales entre lesquelles, en fonction des résultats obtenus, des points de réflexion avec les équipes permettent de décider de poursuivre ou non le modèle de machine learning ou le projet d’intelligence artificielle.
Étape #1 – Le Proof of Concept (POC) du modèle de machine learning
Le POC est un test pour voir si les modèles ou les algorithmes de machine learning peuvent être mis en place pour répondre à la fonction prévue. Ce test est un apprentissage rapide avant de statuer sur la viabilité du projet data. Votre point de départ est la définition claire des résultats attendus de votre projet de machine learning. Le résultat sera ce que votre modèle fera de la prédiction.
Au cours de cette étape, vous définissez les besoins de l’entreprise et développez le premier modèle de machine learning pour qualifier les données.
Note : Identifiez les bénéfices que les cas d’utilisation cibleront (croissance des revenus ou réduction des coûts) et estimez une fourchette de potentiels EBITDA.
À la fin, vous présentez le résultat de ce test fraîchement créé et validé avec des données et valeurs.
Étape #2 – Prototyping du modèle de machine learning
Si vos modèles de machine learning ou d’intelligence artificielle sont concluants, vous pouvez aller de l’avant pour encadrer un pilote fonctionnel en collaboration avec les équipes IT. L’objectif est maintenant de qualifier fonctionnellement et techniquement votre cas d’utilisation. Pour ce faire, vous commencez par :
- définir votre architecture cible ;
- la connexion aux sources de données ;
- l’automatisation du traitement et de l’exécution des données ;
- le déploiement d’un système de surveillance avec des valeurs target.
À l’issue de cette étape, vous disposez d’un prototype opérationnel avec un algorithme et des données, et partiellement automatisé, de votre future application machine learning.
Étape #3 - Packaging & preparing du modèle de machine learning
Les compétences nécessaires à l’ingénieur data sont nombreuses et complexes :
- langage de programmation : pour le développement d’applications et de fonctions. Quel langage utiliser pour automatiser l’acquisition, l’exploration et la prédiction des données ? Par exemple, Python ou R ?
- l’infrastructure : cloud ou non, privée, hybride ou publique ? Utilisation de clustering ?
- la classification de la data et son impact sur l’infrastructure ;
- la technologie open source : acceptée ou interdite ?
Quel type de méthode choisir pour livrer le code ?
- versionning du code ;
- options de déploiement des modèles et algorithmes ;
- intégration continue/livraison continue (CI/CD) ;
- stratégie du test : unité, acceptation, intégration.
Il faut ensuite s’occuper de l’automatisation du traitement data et de la surveillance de l’ensemble du pipeline de données, de l’extraction à l’exposition.
Docker Compose : exemple d’une architecture basée sur Python et hébergée dans le cloud
Avant de montrer un exemple d’architecture pour déployer votre modèle de machine learning, nous allons préciser ce qu’est Docker. Docker est un outil de conteneur d’application. Un conteneur est une sorte de machine virtuelle qui exécute une application dans un environnement dédié.
Pour exécuter votre application machine learning avec Python, par exemple, vous devez faire tourner différentes applications en Python. Docker Compose est un orchestrateur de conteneurs. Il nous permet de lancer une architecture faite de services à l’intérieur de conteneurs.
Revenons maintenant à notre étude de cas et présentons le cadre suivant :
- Python pour le développement d’applications et de fonctions :
- Infrastructure cloud (ex. : AWS) ;
- Certaines technologies open source (ex. : Grafana SuperSet, Airflow) ;
- Git pour le versioning de code ;
- Docker pour le déploiement ;
- Jenkins pour la CI/CD.
L’infrastructure hébergée dans le cloud comprend des capacités de stockage de data et de calcul. Les données brutes et traitées avec leur prédiction seront stockées sur une instance de stockage. Tous les traitements sont exécutés sur une instance de calcul.
L’instance de calcul permet également d’exposer les ports et les points d’extrémité pour que d’autres applications puissent consommer les données stockées, comme le tableau de bord, la surveillance, Jupiter Lab pour l’informatique interactive en Python, etc.
Il est bénéfique d’utiliser les conteneurs Docker pour packager chaque application en Python avec ses dépendances et Docker Compose pour orchestrer tous les conteneurs.
Vous pourriez choisir plein d’architectures et de solutions pour déployer vos modèles de machine learning ; tout dépend de votre besoin, de la classification de vos données et de votre environnement. À vous de mettre en production votre modèle de machine learning afin de le rendre utile aux clients ou aux employés en interne !
Vous pouvez utiliser notre plateforme DataOps comme outil afin de passer en production vos projets de machine learning avec Python, ce qui vous permettra de bénéficier des fonctionnalités avancées de gestion et d’analyse des données de Saagie.