Comment déployer un modèle de machine learning en production

 

2019-02-15

L’un des éléments les plus durs à mettre en place pour devenir une entreprise data inspired est de savoir déployer rapidement des modèles de machine learning en production. Il n’est pas rare dans une entreprise d’avoir une équipe data très performante, produisant des modèles extraordinaires mais qui ne sont jamais déployés à l’échelle de l’organisation, ce qui amène de la frustration pour l’ensemble des acteurs.

Avant de rentrer dans le vif du sujet, il est important de s’accorder sur les termes et pour faire simple lorsque la notion de “mettre en production” est employée, cela signifie simplement qu’il s’agit d’un système qui est utilisé dans la vie réelle. Il ne s’agit pas d’un Proof of Concept pour savoir si quelque chose fonctionne ou non ou d’une expérience effectuée sur des données” test”. Il s’agit de données réelles utilisées pour résoudre un problème réel.

La mise en production n’est pas chose facile, et il n’existe pas une “ultime” façon de mettre en production. Chaque cas est différent et nous pourrions citer des dizaines d’exemples de mise en production différents. Une entreprise peut avoir un processus de mise en production extrêmement bien cadré avec toutes sortes d’étapes de mise en service successives, mais en réalité, ses employés peuvent utiliser des centaines de classeurs Excel et des bases de données Access chaque jour en « production ». Il s’agit bien souvent de traitements isolés et non d’applications prises en charge par l’IT, mais elles sont en production en ce sens qu’elles ont une incidence sur l’activité réelle de l’entreprise.

L’un des principaux enjeux pour une organisation pour rester compétitive est de prendre en compte la grande hétérogénéité des déploiements.

Il n’est donc pas rare de retrouver au sein d’une même organisation une très grande variété de “mises en production”. Pour que celles-ci restent compétitives, les équipes techniques doivent être agiles et avoir la flexibilité nécessaire pour utiliser une variété d’approches afin de répondre au besoin de chaque service.

Cela implique que les data scientists doivent travailler main dans la main avec les équipes qui sont en charge de la mise en production. Il est même envisageable d’intégrer des ressources IT dans les équipes data science pour que ces dernières soient autonomes et puissent mettre à disposition rapidement leurs modèles. La clé réside dans la transversalité des compétences : de l’identification du besoin au déploiement technique en passant par la modélisation mathématique.

Dans le domaine de l’IA, il existe principalement 3 modes pour déployer vos modèles en production qui correspondent à des degrés de maturité du projet.

Le mode manuel

Une personne va prendre un fichier de données, calculer les prédictions à l’aide d’un logiciel spécialisé ou d’un script interne (codé en python, R, SAS, etc.), et ensuite l’exploiter pour répondre à son besoin. C’est une méthode à utiliser en priorité lorsque l’on souhaite tester un concept ou prouver la valeur et l’utilité d’un modèle. Elle est rapide à mettre en place et ne nécessite pas de grandes compétences IT. Cependant, elle n’est pas pérenne car sujette aux erreurs et chronophage sur le long terme. Il n’est pas rare de voir dans de nombreuses entreprises, et même dans des grands groupes des opérations manuelles en data science. Même si cela est très pertinent au début d’un projet, il faut proscrire ce mode de travail lorsque celui-ci devient récurrent et passer vers des modes de mise en production automatisés afin de libérer du temps aux équipes data internes.

Le mode batch

Les données sont scorées automatiquement à une fréquence définie à l’avance (généralement une fois par jour). Le score devient ensuite accessible par les outils opérationnels. C’est une méthode de déploiement qui demande un effort limité (compétences techniques traditionnelles et durée réduite) et qui se révèle très efficace notamment pour des données volumineuses. En revanche, la fraîcheur des scores est dépendante du rythme des mises à jour ce qui peut limiter les cas d’utilisation et la pertinence du modèle. On privilégiera donc cette méthode comme première “industrialisation” du modèle.

Le mode à la demande

Il s’agit de mettre en place un système permettant d’obtenir en temps réel le résultat d’un scoring. Traditionnellement, il s’agit d’implémenter le modèle au plus près des données pour obtenir les meilleurs performances, c’est à dire directement dans les outils internes avec des langages classiques comme le java ou le C. Sa mise en oeuvre peut s’avérer plus compliquée que les méthodes précédentes, notamment parce qu’il s’agit très souvent de transcrire le modèle dans un autre langage que celui dans lequel il a été développé ce qui l’expose à des risques d’erreur et peut vite devenir difficile à maintenir ou faire évoluer. Depuis quelques années, une nouvelle approche est de plus en plus utilisée : la méthode par API. Pour faire simple, une API (Application Programming Interfaces) est un système qui permet de créer une interface normalisée entre deux logiciels sans intermédiation humaine. Dans le cas de modèle data science, cette approche est légèrement moins performante que l’approche précédente mais elle a l’immense avantage d’être très facilement maintenable dans le temps et donc plus pérenne.

Nous aborderons dans un futur article les détails pour adopter une approche par API.

Pour illustrer cela, vous trouverez ci-dessous un exemple concret afin de retracer les différents stades d’un projet data selon l’évolution du besoin.

deploiement_vf
Le choix de la méthode employée dépend donc du degré de maturité data de l’entreprise mais aussi de son contexte et de son besoin. Pour déployer un modèle, il n’existe pas un seul chemin et il s’agit avant tout d’une question de politique et de management interne avant d’être une question d’outils et de techniques. Il est intéressant d’adopter des méthodes agiles pour mettre en production des modèles en quelques jours ou en quelques semaines et non pas plusieurs mois. C’est pour cela qu’il est important de penser dès le début du projet aux modalités de déploiement pour répondre aux enjeux de sa mise en production comme : sa disponibilité (être accessible au bon moment à la bonne personne), sa vitesse (répondre dans des temps acceptables pour l’utilisateur), son coût (le modèle doit être maintenable économiquement dans la durée).

Il s’agit avant tout d’une question de politique et de management interne avant d’être une question d’outils et de techniques.

L’IA est capable de générer des centaines de millions d’euros de chiffre d’affaire, même avec des cas d’utilisation simples. Cependant, la triste réalité, est que la plupart des modèles de machine learning ne sont jamais déployés en production. Afin de maximiser le retour sur investissement de votre organisation en matière d’intelligence artificielle, pensez à la mise en production dès le début et considérez toutes les options disponibles lorsque vous concevez votre solution.

Article réalisé par Adrien BOUHOT :

Adepte de la conversation autour des systèmes d’informations, de leur exploitation, de la Statistique et de son usage ainsi que de la sociologie dans son ensemble, n’hésitez pas à échanger avec moi !

Logo_Linkedin_petit ou directement : adrien.bouhot@gmail.com

Laisser un commentaire