Sistemas de ML de produção: inferência estática x dinâmica
Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.
A inferência é o processo de fazer previsões aplicando um modelo treinado a exemplos não rotulados. De modo geral, um modelo pode inferir previsões de duas maneiras:
Inferência estática (também chamada de inferência off-line ou em lote) significa que o modelo faz previsões em vários exemplos não rotulados e armazena essas previsões em cache em algum lugar.
A inferência dinâmica (também chamada de inferência on-line ou em tempo real) significa que o modelo só faz previsões sob demanda, por exemplo, quando um cliente solicita uma previsão.
Para usar um exemplo extremo, imagine um modelo muito complexo que leva uma hora para inferir uma previsão. Essa provavelmente seria uma excelente situação para inferência estática:
Figura 4. Na inferência estática, um modelo gera previsões, que são armazenadas em cache em um servidor.
Suponha que esse mesmo modelo complexo use incorretamente a inferência dinâmica em vez da estática. Se muitos clientes solicitarem previsões ao mesmo tempo, a maioria deles não vai receber essa previsão por horas ou dias.
Agora considere um modelo que infere rapidamente, talvez em dois milissegundos, usando um mínimo relativo de recursos computacionais. Nessa situação, os clientes podem receber previsões de forma rápida e eficiente usando a inferência dinâmica, como sugerido na Figura 5.
Figura 5. Na inferência dinâmica, um modelo infere previsões sob demanda.
Inferência estática
A inferência estática oferece algumas vantagens e desvantagens.
Vantagens
Não é necessário se preocupar muito com o custo da inferência.
Pode fazer a verificação pós-predição antes do envio.
Desvantagens
Só é possível exibir previsões em cache, então o sistema pode não conseguir mostrar previsões para exemplos de entrada incomuns.
A latência de atualização provavelmente é medida em horas ou dias.
Inferência dinâmica
A inferência dinâmica oferece algumas vantagens e desvantagens.
Vantagens
Pode inferir uma previsão sobre qualquer item novo assim que ele chega, o que é ótimo para previsões de cauda longa (menos comuns).
Desvantagens
Uso intensivo de computação e sensível à latência. Essa combinação pode limitar a complexidade do modelo. Ou seja, talvez seja necessário criar um modelo mais simples que possa inferir previsões mais rapidamente do que um modelo complexo.
As necessidades de monitoramento são mais intensas.
Exercícios: teste seu conhecimento
Quais três das quatro afirmações a seguir são verdadeiras para a inferência estática?
O modelo precisa criar previsões para todas as entradas possíveis.
Sim, o modelo precisa fazer previsões para todas as entradas possíveis e armazená-las em uma tabela de pesquisa ou cache. Se o conjunto de coisas que o modelo está prevendo for limitado, a inferência estática pode ser uma boa escolha. No entanto, para entradas de formato livre, como consultas do usuário com uma cauda longa de itens incomuns ou raros, a inferência estática não pode oferecer cobertura total.
O sistema pode verificar as previsões inferidas antes de servi-las.
Sim, esse é um aspecto útil da inferência estática.
Para uma determinada entrada, o modelo pode exibir uma previsão mais rapidamente do que a inferência dinâmica.
Sim, a inferência estática quase sempre pode exibir previsões mais rapidamente do que a inferência dinâmica.
Você pode reagir rapidamente às mudanças no mundo.
Não, essa é uma desvantagem da inferência estática.
Qual uma das seguintes afirmações é verdadeira para a inferência dinâmica?
Você pode fornecer previsões para todos os itens possíveis.
Sim, essa é uma vantagem da inferência dinâmica. Todas as solicitações recebidas vão receber uma pontuação. A inferência dinâmica processa distribuições de cauda longa, que têm muitos itens raros, como o espaço de todas as frases possíveis escritas em críticas de filmes.
É possível fazer a verificação pós-previsão antes de usá-las.
Em geral, não é possível fazer uma verificação pós-predição de todas as previsões antes de usá-las, porque elas são feitas sob demanda. No entanto, é possível monitorar as qualidades de previsão agregadas para fornecer algum nível de verificação de qualidade, mas elas só vão sinalizar alarmes de incêndio depois que o incêndio já tiver se espalhado.
Ao realizar a inferência dinâmica, não é necessário se preocupar com a latência de previsão (o tempo de atraso para retornar previsões) tanto quanto ao realizar a inferência estática.
A latência de previsão geralmente é uma preocupação real na inferência dinâmica. Infelizmente, não é possível corrigir problemas de latência de previsão adicionando mais servidores de inferência.
[null,null,["Última atualização 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)"]]