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