Sistemas de ML de produção: inferência estática x dinâmica
A inferência é o processo de
fazer previsões aplicando um modelo treinado ao
exemplos sem rótulos.
Em termos gerais, um modelo pode inferir previsões de duas maneiras:
Inferência estática (também chamada de inferência off-line ou
inferência em lote) significa que o modelo faz previsões em várias
exemplos não rotulados comuns
e as armazena em cache
em algum lugar.
Inferência dinâmica, também chamada de inferência on-line ou
inferência) 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 situação excelente para inferência estática:
Suponha que esse mesmo modelo complexo use erroneamente a inferência dinâmica em vez de
a inferência estática. Se muitos clientes solicitarem previsões ao mesmo tempo,
a maioria deles não receberá essa previsão por horas ou dias.
Agora considere um modelo que infere rapidamente, talvez em dois milissegundos, usando uma
mínimo relativo de recursos computacionais. Nessa situação, os clientes podem
receber previsões de forma rápida e eficiente pela inferência dinâmica, já que
sugerido na Figura 5.
Inferência estática
A inferência estática oferece algumas vantagens e desvantagens.
Vantagens
Você não precisa se preocupar muito com o custo de inferência.
Pode fazer pós-verificação das previsões antes de enviar.
Desvantagens
Só pode exibir previsões armazenadas em cache, então o sistema pode não ser
é capaz de exibir 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 em qualquer novo item conforme ele chega, o que
é ótimo para previsões de cauda longa (menos comuns).
Desvantagens
Intenso em computação e sensível à latência. Essa combinação pode limitar o
complexidade; 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: testar seu conhecimento
Quais são as três declarações a seguir
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 e
e armazená-las em um cache ou
em uma tabela de consulta.
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 de usuários com um
de itens incomuns ou raros, a inferência estática não consegue fornecer
cobertura completa.
O sistema pode verificar as previsões inferidas antes de exibir
para resolvê-los com rapidez.
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 dinâmica.
Sim, a inferência estática quase sempre pode fornecer previsões com mais rapidez
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 das afirmações a seguir é uma
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. Qualquer solicitação que
recebe uma pontuação. A inferência dinâmica lida com a cauda longa
distribuições de dados (com muitos itens raros), como o espaço de todas
possíveis frases
escritas em críticas de filmes.
É possível fazer a pós-verificação das previsões antes que elas
são usadas.
Em geral, não é possível fazer uma pós-verificação de todas
previsões antes de serem usadas, porque elas estão sendo
são feitas sob demanda. No entanto, é possível monitorar
qualidades de previsão agregadas para fornecer algum nível de
verificação de qualidade, mas eles só sinalizarão alarmes de incêndio
o fogo já se espalhou.
Ao realizar a inferência dinâmica, você não precisa se preocupar
sobre a latência de previsão (o tempo de atraso para previsões de retorno)
tanto quanto 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.