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ê quer implantá-lo em um endpoint 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, da mesma forma que o DevOps, um ambiente refere-se a 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. Normalmente, há pelo menos dois ambientes: desenvolvimento ou desenvolvimento e produção ou prod. Além disso, você pode adicionar ambientes entre um ambiente de preparo ou pré-produção (pré-prod).

Uma abordagem típica é:

  • Experimente o treinamento de modelo no ambiente de desenvolvimento .
  • Mova o melhor modelo para o ambiente de preparo ou pré-teste para implantar e testar o modelo.
  • Por fim, libere o modelo para o ambiente de produção para implantar o modelo para que os usuários finais possam consumi-lo.

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 facilita o controle do acesso aos recursos. Cada ambiente pode ser associado a um workspace separado do Azure Machine Learning.

Diagrama de vários workspaces do Azure Machine Learning para ter vários ambientes.

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 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 aplica a ambientes de desenvolvimento e de produção, o que pode significar que você está dando às pessoas muito pouco ou muito acesso aos recursos.

Projetar 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 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 Blobs do Azure, gerenciado pelo engenheiro de dados.
  • A equipe de infraestrutura cria todos os recursos necessários do Azure, como o workspace do Azure Machine Learning.
  • 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:

Diagrama de uma arquitetura mostrando um projeto MLOps típico.

  1. Instalação: criar todos os recursos do Azure necessários para a solução.
  2. Desenvolvimento de modelo (loop interno): explore e processe 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): implante o modelo.
  5. Implantação contínua: testar o modelo e promovê-lo ao ambiente de produção.
  6. Monitoramento: Avaliar o desempenho do modelo e do endpoint.

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.