Par Maxime Jumelle
CTO & Co-Founder
Publié le 11 févr. 2021
Catégorie MLOps
C'est l'un des profils dont les entreprises ont le plus besoin aujourd’hui. Le Machine Learning Engineer s'est imposé comme le profil idéal pour industrialiser et mettre en production des projets Data Science. En plus de ses compétences déjà solides en Machine Learning, il utilise les outils et services du Cloud pour déployer des modèles et des API sur des infrastructures complexes.
Mais concrètement, en quoi est-il différent du Data Scientist ? Et lorsque l'on parle du Cloud, que fait-il exactement ?
Pour bien comprendre comment les choses ont évolué pour que ce profil apparaisse, revenons rapidement sur le cycle de vie d'un projet Data. Nous pouvons distinguer ces projets en deux phases.
À lire aussi : découvrez notre formation MLOps
Et c'est là une des premières difficultés que rencontre un Data Scientist : il y a une fracture en terme d'outils et de techniques entre les deux phases. L'une demande des connaissances en Python et en statistiques, alors que l'autre nécessite des compétences en Software Engineering et DevOps.
Intéressons-nous à la phase de déploiement. Afin de fournir des prédictions, l'API exposé a besoin du modèle pour calculer ces prédictions. Mais elle doit également avoir à disposition des transformations des données qui avaient été utilisées pour entraîner ce même modèle. En effet, pour que le modèle puisse correctement calculer les prédictions, le format des données fournies en entrée doit être identique au format des données utilisé pour entraîner le modèle, sinon, nous aurons au mieux des erreurs de prédictions, ou au pire un crash de l'API !
Il est donc indispensable d'avoir exactement les même transformations entre la phase d'expérimentation et la phase de déploiement. En voyant ces deux phases, plusieurs questions surviennent.
Pour avoir toutes ces fonctionnalités, il faut intégrer les bonnes pratiques de développement logiciel et gérer le cycle de vie des modèles pour déployer en continu. C'est justement ce qu'on appelle l'approche MLOps !
Formellement, le MLOps est une adaptation des pratiques DevOps aux problématiques spécifiques des projets Data Science. L'objectif est d'utiliser les outils DevOps que les développeurs ont l'habitude de manipuler pour les applications, et les transposer dans le contexte de la Data Science.
Étant donné que les phases d'expérimentation et de déploiement sont potentiellement des codes sources différents, il est important de pouvoir centraliser les artifacts (modèle, graphiques, paramètres, etc) du projet dans un seul dépôt. L'intérêt de cette centralisation est double : pouvoir assurer une traçabilité des différentes expérimentations réalisées, et faciliter la lecture/écriture des artifacts entre les différents pipelines.
Cette réalisation permet un fonctionnement asynchrone entre les deux pipelines : nous pouvons tout à fait exécuter plusieurs fois le pipeline ML sans mettre en production les modèles générés tant que ces derniers n'obtiennent pas une certaine performance minimale. Aujourd'hui, un des outils les plus populaires pour centraliser les modèles de Machine Learning est MLflow.
Cet outil dispose de plusieurs composantes pertinentes pour centraliser les artifacts et les modèles.
Cette gestion des versions permet de garantir une cohérence entre les versions associées aux données (date d'extraction), du modèle et de l'API.
Hérité des principes DevOps, le Software Engineering permet de construire un projet Data sous forme applicative, non plus avec des Jupyter Notebooks, mais avec des fichiers et une architecture de code modulaire. Plusieurs outils et frameworks existent pour gérer un projet Data Science en tant que Software Engineer, dont Kedro qui est de plus en plus utilisé. Créer un projet sous forme d'application requiert l'utilisation des bonnes pratiques.
Toutes ces bonnes pratiques visent toujours à s'assurer de la bonne exécution des phases dans des environnements distribués. Et c'est encore plus le cas lorsque cet environnement est automatisé.
Une des autres facettes très importantes pour le Machine Learning Engineer et qui est l'aboutissement du MLOps est le déploiement de modèles. Déployer un modèle de Machine Learning, c’est le rendre accessible aux utilisateurs autorisés depuis un serveur distant. Mais déployer un modèle de Machine Learning est difficile, et ce pour plusieurs raisons.
À lire aussi : découvrez notre formation MLOps
Le Machine Learning Engineer doit donc s'armer d'outils adaptés qui améliorent l’efficacité opérationnelle. Pour cela, il va devoir mettre en place des méthodes d'automatisation et déterminer des plateformes cibles adapter pour héberger l'API. L'automatisation, déjà très présente pour l'approche DevOps,
Pour le déploiement, le Machine Learning Engineer dispose de plusieurs possibilités.
Pour résumer, le Machine Learning Engineer est aussi bien un Data Scientist qu'un DevOps sensible aux contraintes des projets Data.
Pour avoir plus détails, nous avions également organisé un Workshop sur le métier de Machine Learning Engineer.
On peut se sentir rapidement perdu lorsque l'on souhaite se former au ML Engineering. Et pour cause, difficile de s'y retrouver avec tous les outils disponibles !
Le plus important, c'est d'abord de consolider les bases en développement. Il faut maîtriser le langage Python, et pas uniquement l'utiliser. Pour cela, une bonne connaissance des concepts avancés tels que les opérateurs lambda, la gestion des exceptions ou les décorateurs de fonctions est indispensable.
Ensuite, le Software Engineering est une étape incontournable : il faut adapter les bonnes pratiques de développement dans les projets Data. Cela passe par l'élaboration d'une architecture de code en y intégrant les pratiques de collaboration, de tests et de documentation. L'utilisation d'un éditeur de code (IDE) type Visual Studio ou PyCharm te permettra d'être plus efficace, alors adopte-en un si ce n'est déjà pas le cas. 😉
Et enfin, il y a toute la chaîne MLOps. Du déclenchement automatisé avec des pipelines CI/CD en passant par du déploiement sur des plateformes d'orchestration, en ne négligeant pas la surveillance continue et la journalisation, c'est tout un nouveau monde à découvrir.
Si tu as aimé cet article, alors tu vas sûrement adorer la Blent Family où tu trouveras plein de bons conseils pour te former sur des sujets aussi technique que le MLOps !
Vous souhaitez vous former au MLOps ?
Articles similaires
18 janv. 2022
MLflow est une plateforme open source qui permet de **gérer le cycle de vie des modèles de Machine Learning. En particulier, grâce à MLflow, les modèles qui ont été entraînés à une date spécifique ainsi que les hyper-paramètres associés pourront être stockés, monitorés et réutilisés de manière efficace.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
6 oct. 2021
Tu as probablement déjà entendu parler de Kubernetes : c'est un outil extrêmement populaire dans le Cloud et qui est devenu, en quelques années, la référence en terme de déploiement d'applications dans le Cloud. Mais pourquoi (et surtout comment) Kubernetes est devenu la solution incontournable ? Et surtout, pour un Data Scientist, quel est le rapport avec Kubernetes et le Machine Learning ?
Maxime Jumelle
CTO & Co-Founder
Lire l'article
9 déc. 2020
L'AutoML est une pratique courante dans les projets Data Scientist qui consiste à automatiser le création des modèles de Machine Learning. Cela va permettre de gagner du temps puisque cette pratique va tester à la fois plusieurs méthodes de transformations des données, mais aussi plusieurs modèles de Machine Learning pour ensuite les comparer et conserver le plus performant.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
60 rue François 1er
75008 Paris
Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.
Organisme de formation n°11755985075.
Data Engineering
IA Générative
MLOps
Cloud & DevOps
À propos
Gestion des cookies
© 2024 Blent.ai | Tous droits réservés