Systèmes de ML de production: inférence statique ou dynamique

L'inférence consiste à effectuer des prédictions en appliquant un modèle entraîné à des exemples sans étiquette. De manière générale, un modèle peut inférer des prédictions de deux manières:

  • L'inférence statique (également appelée inférence hors connexion ou inférence par lot) signifie que le modèle effectue des prédictions sur un ensemble d'exemples sans étiquette courants, puis met en cache ces prédictions quelque part.
  • L'inférence dynamique (également appelée inférence en ligne ou inférence en temps réel) signifie que le modèle ne génère des prédictions qu'à la demande, par exemple lorsqu'un client en demande une.

Pour prendre un exemple extrême, imaginons un modèle très complexe qui prend une heure pour inférer une prédiction. Il s'agit probablement d'une excellente situation pour l'inférence statique:

Figure 4. Dans l'inférence statique, un modèle génère des prédictions, qui sont ensuite mises en cache sur un serveur.
Figure 4 : Dans l'inférence statique, un modèle génère des prédictions, qui sont ensuite mises en cache sur un serveur.

 

Supposons que ce même modèle complexe utilise par erreur une inférence dynamique au lieu d'une inférence statique. Si de nombreux clients demandent des prédictions à peu près au même moment, la plupart d'entre eux ne les recevront pas avant plusieurs heures ou plusieurs jours.

Considérons maintenant un modèle qui effectue des inférences rapidement, peut-être en deux millisecondes, en utilisant un minimum relatif de ressources de calcul. Dans cette situation, les clients peuvent recevoir des prédictions rapidement et efficacement via l'inférence dynamique, comme illustré dans la figure 5.

Figure 5. Dans l'inférence dynamique, un modèle effectue des prédictions à la demande.
Figure 5 : Dans l'inférence dynamique, un modèle effectue des prédictions à la demande.

 

Inférence statique

L'inférence statique présente certains avantages et inconvénients.

Avantages

  • Vous n'avez pas à vous soucier du coût de l'inférence.
  • Possibilité de procéder à une validation postérieure des prédictions avant de les envoyer.

Inconvénients

  • Ne peut diffuser que des prédictions mises en cache. Le système risque donc de ne pas pouvoir diffuser de prédictions pour des exemples d'entrée inhabituels.
  • La latence de mise à jour est probablement mesurée en heures ou en jours.

Inférence dynamique

L'inférence dynamique présente certains avantages et inconvénients.

Avantages

  • Peut inférer une prédiction sur n'importe quel nouvel élément à mesure qu'il est ajouté, ce qui est idéal pour les prédictions de longue traîne (moins courantes).

Inconvénients

  • Les charges de travail sont intensives en calcul et sensibles à la latence. Cette combinaison peut limiter la complexité du modèle. Autrement dit, vous devrez peut-être créer un modèle plus simple qui peut inférer des prédictions plus rapidement qu'un modèle complexe.
  • Les besoins de surveillance sont plus importants.

Exercices: Testez vos connaissances

Parmi les quatre affirmations suivantes, trois sont vraies concernant l'inférence statique. Lesquelles ?
Le système peut vérifier les prédictions inférées avant de les diffuser.
Le modèle doit créer des prédictions pour toutes les entrées possibles.
Vous pouvez réagir rapidement aux changements dans le monde.
Pour une entrée donnée, le modèle peut fournir une prédiction plus rapidement que l'inférence dynamique.
Parmi les affirmations suivantes concernant l'inférence dynamique, laquelle est vraie ?
Lorsque vous effectuez une inférence dynamique, vous n'avez pas à vous soucier de la latence de prédiction (temps de latence pour renvoyer les prédictions) autant que lorsque vous effectuez une inférence statique.
Vous pouvez effectuer une post-vérification des prédictions avant qu'elles ne soient utilisées.
Il est possible de fournir des prédictions pour tous les éléments possibles.