Explorar uma arquitetura de MLOps

Concluído

Como cientista de dados, você deseja treinar o melhor modelo de machine learning. Para implementar o modelo, você deseja implantá-lo em um ponto de extremidade e integrá-lo a um aplicativo.

Ao longo do tempo, talvez você queira 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 machine learning, você deseja preparar o modelo para escala empresarial. Para preparar o modelo e torná-lo operacional, você deseja:

  • Converter o treinamento do modelo em um pipeline robusto e reproduzível.
  • Testar o código e o modelo em um ambiente de desenvolvimento.
  • Implantar o modelo em um ambiente de produção.
  • Automatizar o processo de ponta a ponta.

Configurar ambientes para desenvolvimento e produção

No MLOps, semelhante ao DevOps, um ambiente é uma coleção de recursos. Esses recursos são usados para implantar um aplicativo ou, em projetos de aprendizado de máquina, implantar um modelo.

Observação

Neste módulo, nos referimos à interpretação de ambientes DevOps. Observe que o Azure Machine Learning também usa o termo ambientes para descrever uma coleção de pacotes do Python necessários para executar um script. Esses dois conceitos de ambientes são independentes um do outro.

A quantidade de ambientes com os quais 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 preparo ou pré-produção (pré-produção).

Uma abordagem típica é:

  • Experimentar o treinamento de modelo no ambiente de desenvolvimento.
  • Mover o melhor modelo para o ambiente de preparo ou pré-produção para implantá-lo e testá-lo.
  • Por fim, liberar o modelo para o ambiente de produção para implantá-lo para consumo dos usuários finais.

Organizar workspaces do Azure Machine Learning

Ao implementar o MLOps e trabalhar 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é-produção e produção. Nem todos em sua equipe devem ter acesso a todos os ambientes. Os cientistas de dados só trabalham no ambiente de desenvolvimento com dados de não produção, enquanto os engenheiros de aprendizado de máquina trabalham na implantação do modelo no ambiente de pré-produção e produção com dados de produção.

Ter ambientes separados facilitará o controle do acesso aos recursos. Cada ambiente pode ser associado a um workspace separado do Azure Machine Learning.

Diagram of multiple Azure Machine Learning workspaces to have multiple environments.

No Azure, você usará o RBAC (controle de acesso baseado em função) para fornecer aos colegas o nível certo de acesso ao subconjunto de recursos com os quais precisam trabalhar.

Como alternativa, você pode usar apenas um workspace do Azure Machine Learning. Ao usar um workspace para desenvolvimento e produção, você terá um espaço menor do Azure e menos sobrecarga de gerenciamento. No entanto, o RBAC se aplicará tanto aos ambientes de dev (desenvolvimento) quanto prod (produção), o que pode significar que você está dando às pessoas muito pouco ou muito acesso aos recursos.

Explorar uma arquitetura de MLOps

Colocar um modelo em produção significa que você precisa escalar sua solução e trabalhar em conjunto com outras equipes. Junto com os outros cientistas de dados, os engenheiros de dados e uma equipe de infraestrutura, você decidiu usar a seguinte abordagem:

  • Armazene todos os dados em um armazenamento de Blobs do Azure, gerenciado pelo engenheiro de dados.
  • A equipe de infraestrutura criará os recursos necessários do Azure, como o workspace do AML.
  • Os cientistas de dados se concentram no que fazem de 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 de MLOps inclui as seguintes partes:

Diagram of an architecture showcasing a typical MLOps project.

  1. Instalação: criar todos os recursos do Azure necessários para a solução.
  2. Desenvolvimento de modelo (loop interno): explorar e processar os dados para treinar e avaliar o modelo.
  3. Integração contínua: empacotar e registrar o modelo.
  4. Implantação de modelo (loop externo): implantar o modelo.
  5. Implantação contínua: testar o modelo e promovê-lo ao ambiente de produção.
  6. Monitoramento: monitorar o desempenho do modelo e do ponto de extremidade.

Quando você está trabalhando com equipes maiores, não se espera que você seja responsável por todas as partes da arquitetura de MLOps como cientista de dados. No entanto, para preparar seu modelo para MLOps, você deve pensar em como projetar para monitoramento e novo treinamento.