Sistemas de ML de produção: treinamento estático vs. dinâmico
Em termos gerais, é possível treinar um modelo de duas maneiras:
Treinamento estático (também
chamada treinamento off-line) significa que você treina um modelo
apenas uma vez. Depois, você exibe o mesmo modelo treinado por um tempo.
Treinamento dinâmico (também
chamada treinamento on-line) significa que você treina um modelo
contínua ou pelo menos com frequência. Você geralmente veicula
um modelo treinado recentemente.
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. Seu modelo acompanhará
mudanças na relação entre atributos e rótulos.
Desvantagens
Às vezes, fica desatualizado. Se a relação entre atributos e
rótulos mudar ao longo do tempo, as previsões do modelo serão degradadas.
Mais trabalho. Você precisa criar, testar e lançar um novo produto
o tempo todo.
Se o conjunto de dados realmente não mudar com o tempo, escolha o treinamento estático porque
é mais barato criar e manter do que o treinamento dinâmico. No entanto, os conjuntos de dados
tendem a mudar com o tempo, mesmo aqueles com
atributos que você acha que são
constante, como o nível do mar. A conclusão: mesmo com imagens estáticas
você ainda precisa monitorar os dados de entrada em busca de mudanças.
Por exemplo, considere um modelo treinado para prever a probabilidade de os usuários
comprarão 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 depois faz previsões péssimas
perto do Dia dos Namorados porque
o comportamento do usuário durante esse período de flores muda drasticamente.
Para uma análise mais detalhada do treinamento estático e dinâmico, consulte o
Como gerenciar projetos de ML
neste curso.
Exercícios: testar seu conhecimento
Dentre as afirmações a seguir, quais são as duas verdadeiras sobre
o treinamento estático (off-line)?
O modelo permanece atualizado conforme novos dados chegam.
Se você treinar off-line, o modelo não vai ter como
para incorporar novos dados assim que eles chegam. Isso pode fazer com que o modelo
se a distribuição
com a qual você está tentando aprender
as mudanças ao longo do tempo.
É possível verificar o modelo antes de aplicá-lo à produção.
Sim, o treinamento off-line oferece ampla oportunidade de verificar o modelo
desempenho do modelo
antes de colocar o modelo na produção.
O treinamento off-line requer menos monitoramento de jobs de treinamento
do que o treinamento online.
Em geral, os requisitos de monitoramento durante o treinamento são mais modestos
para treinamento off-line, o que protege você de muitos processos de
considerações. No entanto, quanto mais você treinar o modelo,
maior será o investimento necessário no monitoramento. Você vai
Também convém fazer verificações regulares para garantir que as alterações no código
(e as dependências dela) não afetam negativamente a qualidade do modelo.
Muito pouco monitoramento dos dados de entrada precisa ser feito
tempo de inferência.
Por outro lado, você precisa monitorar os dados de entrada na disponibilização
tempo de resposta. Se as distribuições de entrada mudarem, a função
as previsões podem se tornar não confiáveis. Imagine, por exemplo, um modelo
treinada apenas com dados de roupas de verão, sendo repentinamente usados para
prever o comportamento de compra de roupas no inverno.
Qual das afirmações a seguir é verdadeira?
treinamento dinâmico (on-line)?
O modelo permanece atualizado conforme novos dados chegam.
Este é o principal benefício do treinamento online; é possível evitar
problemas de inatividade, permitindo que o modelo seja treinado com novos dados conforme
em que ela entra.
É preciso fazer muito pouco monitoramento dos jobs de treinamento.
Na verdade, é preciso monitorar continuamente os jobs de treinamento para garantir que
estejam saudáveis e funcionando como pretendido. Você também precisará
infraestrutura de apoio, como a capacidade de reverter um modelo
a um snapshot anterior caso algo dê errado no treinamento,
como um job com bugs ou corrupção de dados de entrada.
Muito pouco monitoramento dos dados de entrada precisa ser feito
tempo de inferência.
Assim como um modelo estático e off-line, também é importante
monitorar as entradas dos modelos atualizados dinamicamente. Você está
provavelmente não correm risco de grandes efeitos sazonais, mas repentinas,
grandes mudanças nas entradas (como uma fonte de dados upstream
inativo) ainda podem causar previsões não confiáveis.