Usar o controle do código-fonte para ativos de machine learning

Concluído

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