Par Maxime Jumelle
CTO & Co-Founder
Publié le 5 nov. 2020
Catégorie Machine Learning
Déploiement, mise en production, industrialisation ... ce sont des mots que l'on évoque de plus en plus ces derniers temps avec les modèles de Machine Learning.
La phase d'expérimentation est toujours réalisée dans les projets Data Science : c'est ce qui permet d'obtenir un PoC (Proof-of-Concept).
Cette phase est plus difficile. Dans la phase d'industralisation, les objectifs sont complètement différents.
Pourquoi l'industrialisation est-elle si difficile en comparaison avec la phase d'expérimentation ? Il y a, en réalité, plusieurs facteurs qui expliquent pourquoi aussi peu d'entreprises atteignent cette phase.
Une des principales difficultés que l'on rencontre lorsqu'une équipe souhaite industrialiser un modèle de Machine Learning, c'est lorsqu'elle doit passer d'un environnement d'expérimentation (souvent un PC) à un environnement de production (plusieurs serveurs, bases de données, collecteurs de journaux dans une infrastructure).
Comme le souligne ce thread Reddit, il y a une grosse différence entre l'environnement du Data Scientist, qui utilise des notebooks Jupyter et des librairies haut-niveau comme pandas
, et l'environnement de production, qui nécessite une conception logicielle propre à l'infrastructure et des techniques d'orchestration de processus.
À lire aussi : découvrez notre formation MLOps
Industrialiser un modèle de Machine Learning, c'est tout d'abord produire un code source documenté, optimisé et qui respecte les bonne pratiques. Ensuite, impossible de se soustraire au développement logiciel : le code doit être compréhensible, reproductible sur des environnements isolés et s'intégrer en tant qu'application ou micro-services. Cette intégration implique de créer des connexions avec d'autres services applicatifs déjà existant dans l'infrastructure.
Très souvent, le modèle construit a pour objectif de modéliser et reproduire un phénomène observé. Qu'il s'agisse de scoring, de tarification, de segmentation ou encore de catégorisation, la temporalité influence les données. Beaucoup de cas d'applications dans une multitude de secteurs ne peuvent se soustraire de cette tendance temporelle.
Pour cela, il est nécessaire de mettre à jour le modèle avec des données plus récentes, puisque dans le cas contraire, l'information relative au temps ne serait plus captée lorsque les données sont de plus en plus éloignées de celles utilisées pour entraîner le modèle.
La solution consiste alors à automatiser les phases d'expérimentation et de production pour mettre à jour le modèle à partir de nouvelles données sans intervention manuelle. Mais cela nécessite des compétences plus poussées, aussi bien sur l'infrastructure hébergeant le modèle que sur le développement de code source.
Lorsque les modèles sont déployés, ils sont amenés à servir des centaines de requêtes sur des intervalles de temps très courts.
Prenons une situation où le modèle nécessite 400 millisecondes pour effectuer une prédiction. En revanche, il reçoit 3 requêtes par seconde.
Cette situation est intenable, puisque le modèle ne serait plus en mesure de prendre en charge de nouvelles requêtes "à temps" et accuserait d'un retard très important.
À lire aussi : découvrez notre formation MLOps
Pour cela, l'infrastructure hébergeant le modèle doit être scalable : les ressources doivent pouvoir s'adapter automatiquement face à l'augmentation des demandes. Ainsi, l'intérêt de la scalabilité et d'exécuter plusieurs serveurs en parallèle
❓ Comment allons-nous être capable d'utiliser en même temps ces serveurs en parallèle ?
Pour être scalable, une méthode particulièrement utilisée est l'équilibrage de charge (ou load-balancing). Avec ces méthodes, chaque requête est redirigé automatiquement vers un des serveur en parallèle.
Articles similaires
20 sept. 2022
Machine Learning
Nada Belaidi
Data Scientist
Lire l'article
12 juil. 2022
Machine Learning
Nada Belaidi
Data Scientist
Lire l'article
4 juil. 2022
Machine Learning
Nada Belaidi
Data Scientist
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
À propos
Gestion des cookies
© 2023 Blent.ai | Tous droits réservés