Utilize o controlo de versões para ativos de aprendizagem automática
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ência —
requirements.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ê.