O que é treinamento de modelos em CI? Executando jobs de treinamento em pipelines explicado
Treinamento de modelos em CI significa executar a etapa de treinamento de machine learning como um job de pipeline automatizado e reproduzível, em vez de manualmente em um laptop.
Treinar um modelo executando um script na sua própria máquina funciona até que deixe de funcionar: os resultados são difíceis de reproduzir, ninguém sabe quais dados produziram qual modelo, e um colega não consegue reconstruir o seu resultado. Mover o treinamento para o CI o transforma em uma etapa versionada e automatizada, como qualquer outro estágio de build.
O que significa
Treinamento de modelos em CI é a prática de definir a sua execução de treinamento - dados, código, hiperparâmetros, ambiente - de forma que um pipeline possa executá-la sob demanda ou em um agendamento. A saída é um artifact de modelo treinado, mais um registro do que exatamente o produziu.
Por que mover o treinamento para um pipeline
Um pipeline oferece reprodutibilidade (as mesmas entradas produzem o mesmo modelo), proveniência (você sabe qual commit e qual dataset construíram cada modelo) e automação (o treinamento pode rodar a cada merge ou todas as noites). Ele também permite aplicar um gate de promoção com base em métricas de avaliação, assim como o CI aplica um gate de merge com base em testes que passam.
Necessidades de recursos
Diferente de um job de teste unitário, o treinamento é intensivo em computação. Deep learning precisa de GPUs; modelos clássicos podem precisar de muita CPU e memória. O treinamento também baixa datasets grandes e modelos base. Essas necessidades tornam a seleção de runner e o cache centrais para manter os jobs de treinamento acessíveis e rápidos.
Um estágio de treinamento com um gate de métrica
Um padrão comum é treinar, avaliar e fazer o job falhar se o modelo não for bom o suficiente, de forma que um modelo ruim nunca seja registrado ou colocado em deploy.
jobs:
train:
runs-on: gpu-large
steps:
- uses: actions/checkout@v4
- run: dvc pull data/
- run: python train.py --out model.pkl
- run: python evaluate.py --min-accuracy 0.92Nota Latchkey
Os runners gerenciados da Latchkey permitem direcionar runners de GPU ou grandes apenas para o job de treinamento, enquanto o restante do pipeline roda em runners pequenos. Fazer cache de datasets e pesos pré-treinados entre execuções evita rebaixar gigabytes toda vez, e o auto-retry lida com as falhas intermitentes de busca de dados que, de outra forma, desperdiçariam uma execução cara de GPU.
Principais conclusões
- Treinamento de modelos em CI executa o treinamento como um job de pipeline automatizado e reproduzível, em vez de manualmente.
- Ele traz reprodutibilidade, proveniência e gates de promoção baseados em métricas para a construção de modelos.
- O treinamento é intensivo em computação, então GPU ou runners grandes, além de cache de datasets e modelos, são essenciais.