Systèmes de ML de production: inférence statique ou dynamique
Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
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.
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.
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 modèle doit créer des prédictions pour toutes les entrées possibles.
Oui, le modèle doit effectuer des prédictions pour toutes les entrées possibles et les stocker dans un cache ou une table de recherche. Si l'ensemble des éléments sur lesquels portent les prédictions du modèle est limité, l'inférence statique peut être un bon choix. Toutefois, pour les entrées de format libre, comme les requêtes utilisateur comportant de nombreux éléments inhabituels ou rares, l'inférence statique ne peut pas fournir une couverture complète.
Le système peut vérifier les prédictions inférées avant de les diffuser.
Oui, c'est un aspect utile de l'inférence statique.
Pour une entrée donnée, le modèle peut fournir une prédiction plus rapidement que l'inférence dynamique.
Oui, l'inférence statique peut presque toujours fournir des prédictions plus rapidement que l'inférence dynamique.
Vous pouvez réagir rapidement aux changements dans le monde.
Non, c'est un inconvénient de l'inférence statique.
Parmi les affirmations suivantes concernant l'inférence dynamique, laquelle est vraie ?
Il est possible de fournir des prédictions pour tous les éléments possibles.
Oui, c'est un point fort de l'inférence dynamique. Chaque requête entrante reçoit un score. L'inférence dynamique gère les distributions à longue traîne (celles qui comportent de nombreux éléments rares), comme l'espace de toutes les phrases possibles écrites dans les critiques de films.
Vous pouvez effectuer une post-vérification des prédictions avant qu'elles ne soient utilisées.
En général, il n'est pas possible de procéder à une post-vérification de toutes les prédictions avant qu'elles ne soient utilisées, car elles sont effectuées à la demande. Vous pouvez toutefois surveiller les qualités de prédiction agrégées pour fournir un certain niveau de contrôle de la qualité, mais elles ne déclencheront des alarmes incendie qu'après la propagation du feu.
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.
La latence de prédiction est souvent un problème réel dans l'inférence dynamique. Malheureusement, vous ne pouvez pas nécessairement résoudre les problèmes de latence de prédiction en ajoutant des serveurs d'inférence.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[null,null,["Dernière mise à jour le 2025/07/27 (UTC)."],[[["\u003cp\u003eInference involves using a trained model to make predictions on unlabeled examples, and it can be done statically or dynamically.\u003c/p\u003e\n"],["\u003cp\u003eStatic inference generates predictions in advance and caches them, making it suitable for scenarios where prediction speed is critical but limiting its ability to handle uncommon inputs.\u003c/p\u003e\n"],["\u003cp\u003eDynamic inference generates predictions on demand, offering flexibility for diverse inputs but potentially increasing latency and computational demands.\u003c/p\u003e\n"],["\u003cp\u003eChoosing between static and dynamic inference depends on factors like model complexity, desired prediction speed, and the nature of the input data.\u003c/p\u003e\n"],["\u003cp\u003eStatic inference is advantageous when cost and prediction verification are prioritized, while dynamic inference excels in handling diverse, real-time predictions.\u003c/p\u003e\n"]]],[],null,["[**Inference**](/machine-learning/glossary#inference) is the process of\nmaking predictions by applying a trained model to\n[**unlabeled examples**](/machine-learning/glossary#unlabeled_example).\nBroadly speaking, a model can infer predictions in one of two ways:\n\n- **Static inference** (also called **offline inference** or **batch inference** ) means the model makes predictions on a bunch of common [**unlabeled examples**](/machine-learning/glossary#unlabeled_example) and then caches those predictions somewhere.\n- **Dynamic inference** (also called **online inference** or real-time inference) means that the model only makes predictions on demand, for example, when a client requests a prediction.\n\nTo use an extreme example, imagine a very complex model that\ntakes one hour to infer a prediction.\nThis would probably be an excellent situation for static inference:\n**Figure 4.** In static inference, a model generates predictions, which are then cached on a server.\n\nSuppose this same complex model mistakenly uses dynamic inference instead of\nstatic inference. If many clients request predictions around the same time,\nmost of them won't receive that prediction for hours or days.\n\nNow consider a model that infers quickly, perhaps in 2 milliseconds using a\nrelative minimum of computational resources. In this situation, clients can\nreceive predictions quickly and efficiently through dynamic inference, as\nsuggested in Figure 5.\n**Figure 5.** In dynamic inference, a model infers predictions on demand.\n\nStatic inference\n\nStatic inference offers certain advantages and disadvantages.\n\nAdvantages\n\n- Don't need to worry much about cost of inference.\n- Can do post-verification of predictions before pushing.\n\nDisadvantages\n\n- Can only serve cached predictions, so the system might not be able to serve predictions for uncommon input examples.\n- Update latency is likely measured in hours or days.\n\nDynamic inference\n\nDynamic inference offers certain advantages and disadvantages.\n\nAdvantages\n\n- Can infer a prediction on *any* new item as it comes in, which is great for long tail (less common) predictions.\n\nDisadvantages\n\n- Compute intensive and latency sensitive. This combination may limit model complexity; that is, you might have to build a simpler model that can infer predictions more quickly than a complex model could.\n- Monitoring needs are more intensive.\n\nExercises: Check your understanding \nWhich **three** of the following four statements are true of static inference? \nThe model must create predictions for all possible inputs. \nYes, the model must make predictions for all possible inputs and store them in a cache or lookup table. If the set of things that the model is predicting is limited, then static inference might be a good choice. However, for free-form inputs like user queries that have a long tail of unusual or rare items, static inference can't provide full coverage. \nThe system can verify inferred predictions before serving them. \nYes, this is a useful aspect of static inference. \nFor a given input, the model can serve a prediction more quickly than *dynamic* inference. \nYes, static inference can almost always serve predictions faster than dynamic inference. \nYou can react quickly to changes in the world. \nNo, this is a disadvantage of static inference. \nWhich **one** of the following statements is true of dynamic inference? \nYou can provide predictions for all possible items. \nYes, this is a strength of dynamic inference. Any request that comes in will be given a score. Dynamic inference handles long-tail distributions (those with many rare items), like the space of all possible sentences written in movie reviews. \nYou can do post-verification of predictions before they are used. \nIn general, it's not possible to do a post-verification of all predictions before they get used because predictions are being made on demand. You can, however, potentially monitor *aggregate* prediction qualities to provide some level of quality checking, but these will signal fire alarms only after the fire has already spread. \nWhen performing dynamic inference, you don't need to worry about prediction latency (the lag time for returning predictions) as much as when performing static inference. \nPrediction latency is often a real concern in dynamic inference. Unfortunately, you can't necessarily fix prediction latency issues by adding more inference servers.\n| **Key terms:**\n|\n| - [Example](/machine-learning/glossary#example)\n| - [Inference](/machine-learning/glossary#inference)\n- [Unlabeled example](/machine-learning/glossary#unlabeled_example) \n[Help Center](https://support.google.com/machinelearningeducation)"]]