Sistemas de ML de produção: treinamento estático vs. dinâmico

De modo geral, é possível treinar um modelo de duas maneiras:

  • Treinamento estático (também chamado de treinamento off-line) significa que você treina um modelo apenas uma vez. Em seguida, você disponibiliza esse mesmo modelo treinado por um tempo.
  • Treinamento dinâmico (também chamado de treinamento on-line) significa que você treina um modelo contínuo ou pelo menos com frequência. Geralmente, você mostra o modelo treinado mais recente.
Figura 2. A massa crua cria três pães idênticos.
Figura 2. Treinamento estático. Treine uma vez e use o mesmo modelo criado várias vezes. (Imagens de Pexels e de fancycrave1.)

 

Figura 3. A massa crua cria pães ligeiramente diferentes
            a cada vez.
Figura 3. Treinamento dinâmico. Treine novamente com frequência e use o modelo mais recente. (Imagens de Pexels e Couleur.)

 

Tabela 1. Principais vantagens e desvantagens.

Treinamento estático. Treinamento dinâmico.
Vantagens Mais simples. Você só precisa desenvolver e testar o modelo uma vez. Mais adaptável. O modelo vai acompanhar todas as mudanças na relação entre os atributos e os rótulos.
Desvantagens Às vezes, mais antigos. Se a relação entre os atributos e os rótulos mudar ao longo do tempo, as previsões do modelo vão piorar. Mais trabalho. Você precisa criar, testar e lançar um novo produto o tempo todo.

Se o conjunto de dados realmente não mudar ao longo do tempo, escolha o treinamento estático, porque ele é mais barato de criar e manter do que o dinâmico. No entanto, os conjuntos de dados tendem a mudar com o tempo, mesmo aqueles com recursos que você considera constantes, como o nível do mar. Conclusão: mesmo com o treinamento estático, você ainda precisa monitorar os dados de entrada para mudanças.

Por exemplo, considere um modelo treinado para prever a probabilidade de os usuários comprarem flores. Devido à pressão do tempo, o modelo é treinado apenas uma vez usando um conjunto de dados de comportamento de compra de flores durante julho e agosto. O modelo funciona bem por vários meses, mas faz previsões terríveis em torno do Dia dos Namorados, porque o comportamento do usuário muda drasticamente durante esse período.

Para uma análise mais detalhada do treinamento estático e dinâmico, consulte o curso Gerenciamento de projetos de ML.

Exercícios: teste seu conhecimento

Quais duas das afirmações a seguir são verdadeiras sobre o treinamento estático (off-line)?
O modelo fica atualizado à medida que novos dados chegam.
Na verdade, se você treinar off-line, o modelo não terá como incorporar novos dados à medida que eles chegam. Isso pode levar a um modelo desatualizado, se a distribuição que você está tentando aprender mudar com o tempo.
Você pode verificar o modelo antes de aplicá-lo na produção.
Sim, o treinamento off-line oferece ampla oportunidade para verificar o desempenho do modelo antes de introduzi-lo na produção.
O treinamento off-line exige menos monitoramento de jobs de treinamento do que o treinamento on-line.
Em geral, os requisitos de monitoramento no momento do treinamento são mais modestos para o treinamento off-line, o que protege você de muitas considerações de produção. No entanto, quanto mais você treinar seu modelo, maior será o investimento necessário no monitoramento. Você também precisa validar regularmente para garantir que as mudanças no código (e nas dependências) não afetem negativamente a qualidade do modelo.
Muito pouco monitoramento dos dados de entrada precisa ser feito no momento da inferência.
De forma contraintuitiva, você precisa monitorar os dados de entrada no momento da veiculação. Se as distribuições de entrada mudarem, as previsões do modelo podem se tornar não confiáveis. Imagine, por exemplo, um modelo treinado apenas com dados de roupas de verão sendo usado de repente para prever o comportamento de compra de roupas no inverno.
Qual uma das afirmações a seguir é verdadeira para o treinamento dinâmico (on-line)?
O modelo fica atualizado à medida que novos dados chegam.
Esse é o principal benefício do treinamento on-line. Você pode evitar muitos problemas de desatuação permitindo que o modelo seja treinado com novos dados conforme eles chegam.
É necessário monitorar muito pouco os jobs de treinamento.
Na verdade, você precisa monitorar continuamente os jobs de treinamento para garantir que eles estejam funcionando corretamente. Você também vai precisar de infraestrutura de suporte, como a capacidade de reverter um modelo para um snapshot anterior caso algo dê errado no treinamento, como um job com bugs ou corrupção nos dados de entrada.
Muito pouco monitoramento dos dados de entrada precisa ser feito no momento da inferência.
Assim como um modelo estático e off-line, também é importante monitorar as entradas dos modelos atualizados dinamicamente. É provável que você não esteja em risco de grandes efeitos sazonais, mas mudanças repentinas e grandes nas entradas (como uma fonte de dados upstream que está inativa) ainda podem causar previsões não confiáveis.