Usar o controle do código-fonte para ativos de machine learning
O modelo de classificação de diabetes proseware começou em um notebook Jupyter em um laptop. Quando a equipe cresce — cientistas de dados, engenheiros de ML e revisores — essa abordagem é interrompida. Você precisa de um lugar onde todos trabalhem do mesmo código, possam examinar as alterações uns dos outros e podem rastrear todos os modelos de volta para o código que o produziu.
O que pertence ao Git
Um repositório Git é a casa certa para os ativos que definem seu modelo e seu processo de treinamento:
- Scripts de treinamento e pré-processamento – os arquivos Python que executam a preparação de dados e o treinamento do modelo
- Definições de trabalho e componente — arquivos YAML que descrevem Azure Machine Learning trabalhos de comando e componentes de pipeline
-
Arquivos de ambiente e dependência —
requirements.txtconda.ymlou definições de ambiente Azure Machine Learning - Arquivos de configuração — nomes de workspace, nomes de grupo de recursos, nomes de computação e outras referências que sua automação usa
O que não pertence ao Git
Alguns ativos pertencem a serviços criados com finalidade, não em um repositório:
- Conjuntos de dados e dados brutos – use Azure Machine Learning ativos de dados ou Azure Data Lake Storage; os arquivos de dados são grandes e com controle de versão separados do código
- Artefatos de modelo treinados – registrar ativos de modelo nomeados e com versão no Azure Machine Learning
- Saídas e logs de execução de treinamento — Azure Machine Learning os armazena com o trabalho
- Segredos e credenciais – use GitHub segredos ou Azure Key Vault; colocar credenciais em um repositório as expõe a qualquer pessoa com acesso de leitura
Dica
Um teste útil: se o arquivo for baseado em texto e definir como o modelo é produzido, ele pertence ao Git. Se for um binário grande ou um valor confidencial, ele pertence a um repositório criado com finalidade.
Por que o controle do código-fonte é importante para o aprendizado de máquina
Quando cada definição de treinamento reside no Git, sua equipe trabalha na mesma versão do código. Um revisor vê exatamente o que mudou entre as execuções. Se uma alteração prejudicar o desempenho do modelo, você poderá retornar à confirmação anterior. As definições de código e ambiente gravadas também ajudam você a reproduzir uma execução de treinamento.
Essa rastreabilidade é a base para tudo o que se segue : desenvolvimento baseado em branch, validação automatizada e uma trilha de auditoria que conecta todas as versões do modelo à alteração que a produziu.
Dica
Escolha um ativo de projeto. Você o armazenaria no Git, Azure Machine Learning ou em um repositório secreto? Explicar por quê.