Gerenciamento de modelo do MLOps com o Azure Machine Learning

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Este artigo descreve como o Azure Machine Learning usa MLOps (operações de aprendizado de máquina) para gerenciar o ciclo de vida de seus modelos. A aplicação das práticas de MLOps pode melhorar a qualidade e a consistência de suas soluções de aprendizado de máquina.

O MLOps baseia-se em DevOps princípios e práticas que aumentam a eficiência dos fluxos de trabalho, como integração contínua, implantação contínua e entrega contínua. A aplicação desses princípios ao ciclo de vida do aprendizado de máquina resulta em:

  • Experimentação e desenvolvimento de modelos mais rápidos.
  • Implantação mais rápida de modelos em produção.
  • Melhor garantia de qualidade e acompanhamento de linhagem de ponta a ponta.

Funcionalidades do MLOps

O MLOps fornece os seguintes recursos para o processo de aprendizado de máquina:

  • Criar pipelines de aprendizado de máquina reproduzíveis para definir etapas repetíveis e reutilizáveis para processos de preparação, treinamento e pontuação de dados.
  • Criar ambientes de software reutilizáveis para treinamento e implantação de modelos.
  • Registrar, empacotar e implantar modelos de qualquer lugar e acompanhar metadados associados necessários para usar um modelo.
  • Dados de linhagem de log para de governança do ciclo de vida do aprendizado de máquina, como quem publicou modelos, por que as alterações foram feitas e quando os modelos foram implantados ou usados na produção.
  • Notificar e alertar sobre eventos de ciclo de vida de aprendizado de máquina como conclusão do experimento, registro de modelo, implantação de modelo e detecção de descompasso de dados.
  • Monitore problemas operacionais e relacionados ao aprendizado de máquina comparando entradas de modelo, explorando métricas específicas do modelo e exibindo monitoramento e alertas na infraestrutura de aprendizado de máquina.
  • Automatize o ciclo de vida de aprendizado de máquina de ponta a ponta usando pipelines de aprendizado de máquina e Azure Pipelines para testar, atualizar e distribuir continuamente novos modelos de aprendizado de máquina.

Para obter mais informações sobre MLOps, consulte Operações de aprendizado de máquina.

Pipelines de aprendizado de máquina reproduzíveis

Use pipelines do Azure Machine Learning para unir todas as etapas de seu processo de treinamento de modelos. As etapas do pipeline de aprendizado de máquina podem incluir preparação de dados, extração de recursos, ajuste de hiperparâmetro e avaliação de modelo.

No Designer do Estúdio do Azure Machine Learning, você pode clonar um pipeline para iterar sobre seu design sem perder suas versões antigas. Para clonar um pipeline a qualquer momento no Designer, selecione Clonar na barra de menus superior.

Para obter mais informações sobre os pipelines do Azure Machine Learning, consulte Pipelines de aprendizado de máquina.

Ambientes de software reutilizáveis

Os ambientes do Azure Machine Learning garantem que os builds sejam reproduzíveis sem usar configurações manuais de software. Os ambientes podem acompanhar e reproduzir as dependências de software pip e conda para seus projetos.

Você pode usar ambientes para treinamento e implantação de modelos. Para obter mais informações sobre ambientes, consulte ambientes do Azure Machine Learning.

Registro, empacotamento e implantação do modelo

O Azure Machine Learning pode usar MLOps de qualquer lugar para registrar, empacotar e implantar modelos.

Registrar e acompanhar modelos

O registro de modelo armazena e versões de seus modelos no workspace do Azure Machine Learning na nuvem do Azure. O registro de modelo torna mais fácil organizar e manter o controle de seus modelos treinados.

Um modelo registrado é um contêiner lógico para um ou mais arquivos que compõem seu modelo. Por exemplo, se o modelo for armazenado em vários arquivos, você poderá registrar os arquivos como um único modelo no workspace do Azure Machine Learning. Após o registro, você pode baixar ou implantar o modelo registrado e receber todos os arquivos de componente.

Você também pode registrar modelos treinados fora do Azure Machine Learning. O Azure Machine Learning dá suporte a qualquer modelo que possa ser carregado usando o Python 3.5.2 ou superior.

Você identifica modelos registrados por nome e versão. Sempre que você registra um modelo com o mesmo nome de um modelo existente, o registro incrementa o número de versão.

Você pode fornecer rótulos de metadados durante o registro e usar esses rótulos para pesquisar um modelo.

Importante

Não é possível excluir um modelo registrado que esteja sendo usado em uma implantação ativa.

Para obter mais informações sobre como usar modelos no Azure Machine Learning, consulte Trabalhar com modelos no Azure Machine Learning.

Empacotar e depurar modelos

Para implantar um modelo em produção, primeiro você deve empacotá-lo em uma imagem do Docker. Na maioria dos casos, a criação de imagem ocorre automaticamente em segundo plano durante a implantação. No entanto, você pode especificar manualmente a imagem.

É útil implantar em seu ambiente de desenvolvimento local primeiro para que você possa solucionar problemas e depurar antes de implantar na nuvem. Essa prática pode ajudá-lo a evitar problemas com sua implantação no Azure Machine Learning. Para obter mais informações sobre como resolver problemas comuns de implantação, consulte Como solucionar problemas de pontos de extremidade online.

Converter e otimizar modelos

Você pode converter seu modelo em ONNX (Open Neural Network Exchange) para tentar melhorar o desempenho. Normalmente, converter para ONNX pode duplicar o desempenho.

Para obter mais informações sobre o ONNX com o Azure Machine Learning, confira o artigo Criar e acelerar modelos de machine learning.

Implantar modelos como pontos de extremidade

Você pode implantar modelos de aprendizado de máquina treinados como pontos de extremidade localmente ou na nuvem. As implantações usam CPUs e GPUs para inferência.

Para implantar um modelo como um ponto de extremidade, você precisa fornecer as seguintes informações:

  • O modelo usado para pontuar os dados enviados ao serviço ou dispositivo.
  • Um script de entrada, também chamado de script de pontuação, que aceita solicitações, usa os modelos para pontuar os dados e retorna uma resposta.
  • Um ambiente que descreve as dependências pip e conda exigidas pelos modelos e script de entrada.
  • Quaisquer outros ativos, como texto e dados, exigidos pelo modelo e pelo script de entrada.

Importante

Ao implantar um modelo do MLflow, você não precisa fornecer um script de entrada ou um ambiente para a implantação. Para obter mais informações sobre como implantar modelos do MLflow, consulte Diretrizes para implantar modelos do MLflow.

Você também fornece a configuração da plataforma de implantação de destino, como o tipo de família de máquina virtual (VM), a memória disponível e o número de núcleos. Quando o Azure Machine Learning cria a imagem, ele também adiciona todos os componentes necessários, como ativos necessários para executar o serviço Web.

Pontuação em lote com pontos de extremidade em lote

Há suporte para a pontuação em lote por meio de pontos de extremidade em lote. Para obter mais informações sobre pontuação em lote, consulte Pontos de extremidade em lote.

Pontuação em tempo real com pontos de extremidade online

Você pode usar seus modelos com pontos de extremidade online para pontuação em tempo real. Os destinos de computação para pontos de extremidade online podem ser ambientes de desenvolvimento local, pontos de extremidade online gerenciados ou AKS (Serviço de Kubernetes do Azure).

Para implantar um modelo em um ponto de extremidade online, você precisa fornecer as seguintes informações:

  • O modelo ou ensemble de modelos.
  • Dependências necessárias para usar o modelo, por exemplo, um script que aceita solicitações e invoca as dependências de modelo e conda.
  • Configuração de implantação que descreve como e onde implantar o modelo.

Para obter mais informações sobre a implantação para pontuação em tempo real, consulte Implantar pontos de extremidade online.

Distribuição controlada para pontos de extremidade online

Ao implantar em um ponto de extremidade online, você pode usar a distribuição controlada para habilitar os seguintes cenários:

  • Criar várias versões de um ponto de extremidade para uma implantação.
  • Executar testes A/B roteando o tráfego para implantações diferentes do ponto de extremidade.
  • Alternar entre as implantações do ponto de extremidade atualizando a porcentagem de tráfego na configuração do ponto de extremidade.

Para obter mais informações sobre a implantação usando uma distribuição controlada, consulte Executar a distribuição segura de novas implantações para inferência em tempo real.

Metadados para governança do ciclo de vida do aprendizado de máquina

O Azure Machine Learning oferece a capacidade de acompanhar a trilha de auditoria de ponta a ponta de todos os seus ativos de aprendizado de máquina usando metadados. Por exemplo:

  • Os Ativos de dados do Azure Machine Learning ajudam a acompanhar, criar o perfil e controlar a versão dos dados.
  • A Interpretabilidade do modelo permite explicar os modelos, atender à conformidade regulatória e entender como os modelos chegam em um resultado para determinada entrada.
  • O histórico de trabalhos do Azure Machine Learning armazena um instantâneo do código, dos dados e das computações usados para treinar um modelo.
  • O registro do modelo do Azure Machine Learning captura todos os metadados associados ao seu modelo. Por exemplo, qual experimento treinou o modelo, onde o modelo está sendo implantado e se as implantações de modelo estão íntegras.
  • A integração com o Azure permite que você atue em eventos no ciclo de vida do aprendizado de máquina, como registro de modelo, implantação, descompasso de dados e eventos de trabalho de treinamento.

Algumas informações sobre modelos e ativos de dados são capturadas automaticamente, mas você pode adicionar mais informações usando rótulos. Ao procurar modelos registrados e ativos de dados em seu workspace, você pode usar marcas como filtros.

Observação

Quando você usar os Rótulos na opção Filtrar por na página Modelos do Azure Machine Learning Studio, certifique-se de usar TagName=TagValue sem espaços em vez de TagName : TagValue.

Alertas e notificação de eventos do ciclo de vida do aprendizado de máquina

O Azure Machine Learning publica eventos chave na Grade de Eventos do Azure, que podem ser usados para notificar e automatizar eventos no ciclo de vida de aprendizado de máquina. Para obter mais informações sobre como configurar processos controlados por eventos com base nos eventos do Azure Machine Learning, consulte CI/CD personalizado e fluxos de trabalho controlados por eventos.

Automação do ciclo de vida do aprendizado de máquina

Você pode usar o Git e Azure Pipelines para criar um processo de integração contínua que treine um modelo de aprendizado de máquina. Em um cenário típico, quando um cientista de dados verifica uma alteração no repositório Git de um projeto, o Azure Pipelines inicia o trabalho de treinamento.

Você pode inspecionar os resultados do trabalho para ver as características de desempenho do modelo treinado. Também é possível criar um pipeline que implanta o modelo como um serviço Web.

A extensão do Machine Learning facilita o trabalho com o Azure Pipelines. A extensão fornece os seguintes aprimoramentos para o Azure Pipelines:

  • Habilita a seleção do workspace do Azure Machine Learning ao definir uma conexão de serviço.
  • Permite a criação de modelo treinado em um pipeline de treinamento para disparar uma implantação no Azure Pipelines.

Para obter mais informações sobre como usar o Azure Pipelines com o Azure Machine Learning, consulte Usar o Azure Pipelines com o Azure Machine Learning.

Análise

O Microsoft Power BI dá suporte ao uso de modelos de machine learning para análise de dados. Para obter mais informações, confira IA com fluxos de dados.