Explore a arquitetura da solução
Vamos revisar a arquitetura de operações de aprendizado de máquina (MLOps) para entender o propósito do que estamos tentando alcançar.
Imagine que, juntamente com a equipe de ciência de dados e desenvolvimento de software, você concordou com a seguinte arquitetura para treinar, testar e implantar o modelo de classificação de diabetes:
Nota
O diagrama é uma representação simplificada de uma arquitetura MLOps. Para exibir uma arquitetura mais detalhada, explore os vários casos de uso no acelerador de solução MLOps (v2).
A arquitetura inclui:
- Configuração: crie todos os recursos necessários do Azure para a solução.
- Desenvolvimento do modelo (loop interno): Explore e processe os dados para treinar e avaliar o modelo.
- Integração contínua: Empacotar e registrar o modelo.
- Implantação do modelo (loop externo): implante o modelo.
- Implantação contínua: teste o modelo e promova para o ambiente de produção.
- Monitoramento: Monitore o desempenho do modelo e do ponto final.
A equipe de ciência de dados é responsável pelo desenvolvimento do modelo. A equipe de desenvolvimento de software é responsável por integrar o modelo implantado com o aplicativo web usado pelos profissionais para avaliar se um paciente tem diabetes. Você é responsável por levar o modelo do desenvolvimento do modelo para a implantação do modelo.
Você espera que a equipe de ciência de dados proponha constantemente alterações nos scripts usados para treinar o modelo. Sempre que houver uma alteração no script de treinamento, você precisará treinar novamente o modelo e reimplantá-lo no ponto de extremidade existente.
Você deseja permitir que a equipe de ciência de dados experimente, sem tocar no código pronto para produção. Você também quer garantir que qualquer código novo ou atualizado passe automaticamente por verificações de qualidade acordadas. Depois de verificar o código para treinar o modelo, você usará o script de treinamento atualizado para treinar um novo modelo e implantá-lo.
Para acompanhar as alterações e verificar seu código antes de atualizar o código de produção, é necessário trabalhar com ramificações. Você concordou com a equipe de ciência de dados que, sempre que eles quiserem fazer uma alteração, eles criarão uma ramificação de recurso para criar uma cópia do código e fazer suas alterações na cópia.
Qualquer cientista de dados pode criar uma ramificação de recursos e trabalhar nela. Depois de atualizar o código e desejar que esse código seja o novo código de produção, eles terão que criar uma solicitação pull. No pull request, será visível para outros quais são as alterações propostas, dando a outros a oportunidade de rever e discutir as alterações.
Sempre que uma solicitação pull é criada, você deseja verificar automaticamente se o código funciona e se a qualidade do código está de acordo com os padrões da sua organização. Depois que o código passa pelas verificações de qualidade, o cientista de dados líder precisa revisar as alterações e aprovar as atualizações antes que a solicitação pull possa ser mesclada e o código na ramificação principal possa ser atualizado de acordo.
Importante
Ninguém deve ser autorizado a empurrar mudanças para o ramo principal. Para proteger seu código, especialmente o código de produção, convém impor que a ramificação principal só possa ser atualizada por meio de solicitações pull que precisam ser aprovadas.