Inférence en machine learning et deep learning : définition et cas d'usage

Inférence en machine learning et deep learning : définition et cas d'usage L'inférence est une opération logique basée sur l'induction. L'inférence en machine learning et en deep learning vise à réaliser des prédictions efficaces à partir d'un modèle d'apprentissage entraîné.

L'inférence en machine learning, c'est quoi ?

En machine learning (ou apprentissage automatisé), la phase d'inférence renvoie à l'exécution d'un modèle d'IA une fois celui-ci entrainé sur un data set d'apprentissage puis testé sur un data set de validation. Elle fait par conséquence référence au déploiement du modèle, et à la mise en application du scoring de ce dernier en situation réelle de production à partir de données de terrain. 

L'inférence d'un modèle d'intelligence artificielle est généralement mise en œuvre par un data ingénieur ou un DevOps ingénieur. Dans certains cas, le data scientist responsable de son paramétrage et de son entrainement se charge lui-même de le déployer. Mais lui confier cette tâche n'est pas toujours pertinent dans la mesure où il n'est pas forcément armé en termes de compétences pour la réaliser. 

Comment fonctionne l'inférence en machine learning ?

Lors de l'inférence (ou déploiement) d'un modèle de machine learning, ce dernier va ingérer des données de terrain captées puis les traiter pour parvenir au résultat attendu. Prenons l'exemple d'une IA de vidéosurveillance. En amont, l'image vidéo est captée en temps réel par un réseau de caméras. Le flux est analysé par un modèle de reconnaissance d'image qui aura été entrainé au préalable pour reconnaître les mouvements suspects (course, mouvements de foule, etc.). Le cas échéant, une alerte est envoyée au PC de sécurité raccordé au réseau de caméra. 

Pouvant être exécutée aussi bien en frontière de réseau (edge computing) que sur un cloud centralisé, l'inférence peut s'appliquer à la fois à un modèle de machine learning statistique et à un réseau de neurones artificiel orienté deep learning (apprentissage profond).

Quelle est l'architecture d'un système d'inférence en machine learning ?

Une fois mis en production, un modèle de machine learning peut traiter des données aussi bien en provenance d'une application que d'un objet connecté ou encore d'un terminal de point de vente. Ces informations sont ensuite fédérées en temps réel (ou streamées) au sein d'une plateforme de type Apache Kafka sur laquelle le modèle d'apprentissage est appliqué.

Si le modèle a pour but de calculer un score de fraude sur des données d'achat par exemple, un message de refus ou d'approbation sera alors automatiquement généré en fonction du cas de figure dans les applications métier associées. 

Quels sont les principaux types d'inférence orientés machine learning ?

Il existe deux grandes catégories d'inférence (ou modes de déploiement) de modèles de machine learning qui s'appliqueront en fonction des besoins en termes de réactivité mais aussi au regard de considérations techniques (volumétrie, latence...) :

  • L'inférence par lots : les prédictions sont traitées régulièrement à partir d'observations regroupées en lots (mode batch).
  • L'inférence en temps réel (ou streaming) : les prédictions sont réalisées en temps réel et fournissent ainsi des réponses immédiates.

En fonction de l'évolution du contexte, le modèle pourra être par ailleurs réentrainé à partir d'un nouveau data set d'apprentissage. Un processus qui est d'autant plus important que l'environnement est mouvant.

Comment réussir l'inférence d'un modèle de machine learning ?

Le succès du déploiement d'un modèle de machine learning va souvent dépendre de la coordination entre les équipes de data scientist, en charge de son développement, et les équipes de data ingénieurs, qui ont pour mission de le mettre en production.

Face à cet enjeu, la mise en œuvre d'une démarche de MLOps est fortement conseillée. Cette approche a pour objectif de concevoir des modèles de machine learning qui soient adaptés à leur déploiement en production. A l'instar du DevOps pour les applications, il vise aussi à piloter l'ensemble du cycle de vie des modèles.