Utilize o controlo de versões para ativos de aprendizagem automática

Concluído

O modelo de classificação da diabetes Proseware começou num caderno Jupyter num portátil. Quando a equipa cresce — cientistas de dados, engenheiros de ML e revisores — essa abordagem desmorona-se. Precisas de um local onde todos trabalhem com o mesmo código, possam rever as alterações uns dos outros e possam rastrear cada modelo até ao código que o produziu.

O que pertence ao Git

Um repositório Git é o lar certo para os ativos que definem o seu modelo e o seu processo de treino:

  • Scripts de treino e pré-processamento — os ficheiros Python que executam a preparação de dados e o treino de modelos
  • Definições de funções e componentes — ficheiros YAML que descrevem trabalhos de comando e componentes de pipeline do Azure Machine Learning
  • Ficheiros de ambiente e dependênciarequirements.txt, conda.yml, ou definições do ambiente Azure Machine Learning
  • Ficheiros de configuração — nomes de espaços de trabalho, nomes de grupos de recursos, nomes de computação e outras referências que a sua automação utiliza

O que não pertence ao Git

Alguns ativos pertencem a serviços construídos de propósito, não a um repositório:

  • Conjuntos de dados e dados brutos — utilize ativos de dados do Azure Machine Learning ou o Azure Data Lake Storage; os ficheiros de dados são de grande dimensão e têm versões geridas separadamente do código
  • Artefactos de modelos treinados — registar ativos de modelos nomeados e versionados no Azure Machine Learning
  • Execuções de treino e logs — Azure Machine Learning armazena estes com o trabalho
  • Segredos e credenciais — use GitHub secrets ou Azure Key Vault; colocar credenciais num repositório expõe-as a qualquer pessoa com acesso de leitura

Sugestão

Um teste útil: se o ficheiro for baseado em texto e definir como o modelo é produzido, ele pertence ao Git. Se for um ficheiro binário de grandes dimensões ou um valor sensível, deve estar num armazenamento concebido especificamente para esse fim.

Porque o controlo de código-fonte é importante para a aprendizagem automática

Quando cada definição de treino está no Git, a tua equipa trabalha a partir da mesma versão do código. Um crítico vê exatamente o que mudou entre as edições. Se uma alteração degradar o desempenho do modelo, podes voltar ao commit anterior. O código gravado e as definições do ambiente também ajudam a reproduzir uma execução de treino.

Esta rastreabilidade é a base de tudo o que se segue — desenvolvimento baseado em ramificações, validação automatizada e um registo de auditoria que liga cada versão do modelo à alteração que a provocou.

Sugestão

Escolha um ativo do projeto. Guardaria no Git, Azure Machine Learning ou numa loja secreta? Explica porquê.