Explore uma arquitetura MLOps
Como cientista de dados, você quer treinar o melhor modelo de aprendizado de máquina. Para implementar o modelo, você deseja implantá-lo em um ponto de extremidade e integrá-lo a um aplicativo.
Com o tempo, você pode querer treinar novamente o modelo. Por exemplo, você pode treinar novamente o modelo quando tiver mais dados de treinamento.
Em geral, depois de treinar um modelo de aprendizado de máquina, você deseja preparar o modelo para a escala empresarial. Para preparar o modelo e operacionalizá-lo, pretende-se:
- Converta o treinamento do modelo em um pipeline robusto e reproduzível .
- Teste o código e o modelo em um ambiente de desenvolvimento .
- Implante o modelo em um ambiente de produção .
- Automatize o processo de ponta a ponta.
Configurar ambientes para desenvolvimento e produção
Dentro do MLOps, de forma semelhante ao DevOps, um ambiente refere-se a uma coleção de recursos. Esses recursos são usados para implantar um aplicativo ou com projetos de aprendizado de máquina para implantar um modelo.
Nota
Neste módulo, nos referimos à interpretação de ambientes DevOps. Observe que o Aprendizado de Máquina do Azure também usa o termo ambientes para descrever uma coleção de pacotes Python necessários para executar um script. Estes dois conceitos de ambientes são independentes um do outro.
Quantos ambientes você trabalha, depende da sua organização. Comumente, existem pelo menos dois ambientes: desenvolvimento ou dev e produção ou prod. Além disso, você pode adicionar ambientes intermediários, como um ambiente de preparação ou pré-produção (pré-produção).
Uma abordagem típica consiste em:
- Experimentar o treinamento de modelos no ambiente de desenvolvimento .
- Mova o melhor modelo para o ambiente de preparo ou pré-prod para implantar e testar o modelo.
- Finalmente, libere o modelo no ambiente de produção para implantá-lo para que os usuários finais possam consumi-lo.
Organizar ambientes do Azure Machine Learning
Quando você implementa MLOps e trabalha com modelos de aprendizado de máquina em grande escala, é uma prática recomendada trabalhar com ambientes separados para diferentes estágios.
Imagine que sua equipe usa um ambiente de desenvolvimento, pré-prod e prod. Nem todos na sua equipe devem ter acesso a todos os ambientes. Os cientistas de dados só podem trabalhar dentro do ambiente de desenvolvimento com dados que não sejam de produção, enquanto os engenheiros de aprendizado de máquina trabalham na implantação do modelo no ambiente pré-prod e prod com dados de produção.
Ter ambientes separados facilita o controle de acesso aos recursos. Cada ambiente pode ser associado a um espaço de trabalho separado do Azure Machine Learning.
No Azure, você usa o RBAC (controle de acesso baseado em função) para dar aos colegas o nível certo de acesso ao subconjunto de recursos com os quais eles precisam trabalhar.
Como alternativa, você pode usar apenas um espaço de trabalho do Azure Machine Learning. Quando você usa um espaço de trabalho para desenvolvimento e produção, você tem uma pegada menor do Azure e menos sobrecarga de gerenciamento. No entanto, o RBAC se aplica a ambientes de desenvolvimento e prod, o que pode significar que você está dando às pessoas muito pouco ou muito acesso aos recursos.
Gorjeta
Saiba mais sobre as práticas recomendadas para organizar os recursos do Azure Machine Learning.
Projetar uma arquitetura MLOps
Trazer um modelo para a produção significa que você precisa escalar sua solução e trabalhar em conjunto com outras equipes. Juntamente com outros cientistas de dados, engenheiros de dados e uma equipe de infraestrutura, você pode decidir usar a seguinte abordagem:
- Armazene todos os dados em um armazenamento de Blob do Azure, gerenciado pelo engenheiro de dados.
- A equipe de infraestrutura cria todos os recursos necessários do Azure, como o espaço de trabalho do Azure Machine Learning.
- Os cientistas de dados concentram-se no que fazem melhor: desenvolver e treinar o modelo (loop interno).
- Os engenheiros de aprendizado de máquina implantam os modelos treinados (loop externo).
Como resultado, sua arquitetura MLOps inclui as seguintes partes:
- 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.
Quando você está trabalhando com equipes maiores, não se espera que você seja responsável por todas as partes da arquitetura MLOps como cientista de dados. Para preparar seu modelo para MLOps, no entanto, você deve pensar em como projetar para monitoramento e reciclagem.