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 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:
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.
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.