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:

Figura 4. Na inferência estática, um modelo gera previsões,
            que são armazenados em cache em um servidor.
Figura 4. Na inferência estática, um modelo gera previsões, que são armazenados em cache em um servidor.

 

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.

Figura 5. Na inferência dinâmica, um modelo infere previsões
            demanda.
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

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