MLOps: Gerenciamento, implantação e monitoramento de modelos com o Azure Machine Learning

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Neste artigo, saiba mais sobre as práticas de operações de aprendizado de máquina (MLOps) no Azure Machine Learning com a finalidade de gerenciar o ciclo de vida de seus modelos. A aplicação de práticas de MLOps pode melhorar a qualidade e a consistência de suas soluções de aprendizado de máquina.

O que é o MLOps?

O MLOps é baseado em princípios e práticas de DevOps que aumentam a eficiência dos fluxos de trabalho. Esses princípios incluem integração, entrega e implantação contínuas. O MLOps aplica esses princípios ao ciclo de vida do aprendizado de máquina, com o objetivo de:

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

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

  • Crie pipelines de aprendizado de máquina reproduzíveis. Use pipelines de aprendizado de máquina para definir etapas repetíveis e reutilizáveis para seus processos de preparação, treinamento e pontuação de dados.
  • Crie ambientes de software reutilizáveis. Use esses ambientes para treinamento e implantação de modelos.
  • Registre, empacote e implante modelos de qualquer lugar. Rastreie os metadados associados necessários para usar um modelo.
  • Capture dados de governança para o ciclo de vida completo do aprendizado de máquina. As informações de linhagem registradas podem incluir quem está publicando modelos e por que as alterações foram feitas. Também pode incluir quando os modelos foram implantados ou usados na produção.
  • Notifique e alerte sobre eventos no ciclo de vida do aprendizado de máquina. Os eventos incluem conclusão de experimento, registro de modelo, implantação de modelo e deteção de desvio de dados.
  • Monitore aplicativos de aprendizado de máquina para problemas operacionais e relacionados ao aprendizado de máquina. Compare as entradas do modelo entre treinamento e inferência. Explore métricas específicas do modelo. Forneça monitoramento e alertas em sua infraestrutura de aprendizado de máquina.
  • Automatize o ciclo de vida completo do aprendizado de máquina com o aprendizado de máquina e os pipelines do Azure. Use pipelines para testar e atualizar modelos com frequência. Pode implementar continuamente novos modelos de aprendizagem automática juntamente com as suas outras aplicações e serviços.

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

Crie pipelines de aprendizado de máquina reproduzíveis

Use os pipelines do Azure Machine Learning para unir todas as etapas do seu processo de treinamento de modelo. Um pipeline de aprendizado de máquina pode conter etapas que incluem preparação de dados, extração de recursos, ajuste de hiperparâmetros e avaliação de modelo.

Se você usar o designer do Azure Machine Learning para criar um pipeline de aprendizado de máquina, poderá clonar o pipeline para iterar sobre seu design sem perder suas versões antigas. Para clonar um pipeline a qualquer momento no designer, vá para o canto superior direito para selecionar ...>Clone.

Para obter mais informações sobre pipelines do Azure Machine Learning, consulte Pipelines de Machine Learning.

Crie ambientes de software reutilizáveis

Usando ambientes do Azure Machine Learning, você pode acompanhar e reproduzir as dependências de software de seus projetos à medida que evoluem. Você pode usar ambientes para garantir que as compilações sejam reproduzíveis sem configurações manuais de software.

Os ambientes descrevem as dependências 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 O que são ambientes do Azure Machine Learning?.

Registre, empacote e implante modelos de qualquer lugar

As seções a seguir discutem como registrar, empacotar e implantar modelos.

Registrar e rastrear modelos de aprendizado de máquina

Com o registro de modelo, você pode armazenar e fazer a versão de seus modelos na nuvem do Azure, em seu espaço de trabalho. O registro de modelos facilita a organização e o acompanhamento 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 você tiver um modelo armazenado em vários arquivos, poderá registrar os arquivos como um único modelo em seu espaço de trabalho do Azure Machine Learning. Após o registro, você pode baixar ou implantar o modelo registrado e receber todos os arquivos do componente.

Pode identificar os modelos registados 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 da versão. Você pode fornecer tags de metadados durante o registro e usar essas tags ao pesquisar um modelo. O Azure Machine Learning suporta qualquer modelo que possa ser carregado usando Python 3.5.2 ou superior.

Gorjeta

Você também pode registrar modelos treinados fora do Azure Machine Learning.

Importante

  • Quando você usa a opção Filtrar porTags na página Modelos do estúdio de Aprendizado de Máquina do Azure, em vez de usar TagName : TagValue, use TagName=TagValue sem espaços.
  • Não é possível excluir um modelo registrado que está 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.

Modelos de empacotamento e depuração

Antes de implantar um modelo na produção, ele precisa ser empacotado em uma imagem do Docker. Na maioria dos casos, a criação de imagens acontece automaticamente em segundo plano durante a implantação; no entanto, você pode especificar manualmente a imagem.

É útil implantar primeiro em seu ambiente de desenvolvimento local 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.

Converta e otimize modelos

Você pode converter seu modelo para Open Neural Network Exchange (ONNX) para tentar melhorar o desempenho. Normalmente, a conversão para ONNX pode dobrar o desempenho.

Para obter mais informações sobre ONNX com Machine Learning, consulte Criar e acelerar modelos de aprendizado de máquina.

Implementar modelos

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

Ao implantar um modelo como um ponto de extremidade, você precisa fornecer os seguintes itens:

  • O modelo usado para pontuar os dados enviados ao serviço ou dispositivo.
  • Um scriptde entrada 1. Esse script aceita solicitações, usa os modelos para pontuar os dados e retorna uma resposta.
  • Um ambiente2 que descreve as dependências pip e conda exigidas pelos modelos e script de entrada.
  • Quaisquer outros ativos, como texto e dados exigidos pelos modelos e script de entrada.

Também apresenta a configuração da plataforma de implementação de destino. Por exemplo, o tipo de família de máquina virtual (VM), memória disponível e número de núcleos. Quando a imagem é criada, os componentes exigidos pelo Azure Machine Learning, como os ativos necessários para executar o serviço Web, também são adicionados.

1,2 Ao implantar um modelo MLflow, você não precisa fornecer um script de entrada, também conhecido como script de pontuação. Você também não precisa fornecer um ambiente para a implantação. Para obter mais informações sobre como implantar modelos MLflow, consulte Diretrizes para implantar modelos MLflow.

Pontuação em lote

A pontuação em lote é suportada por meio de pontos de extremidade em lote. Para obter mais informações sobre pontuação em lote, consulte Pontos de extremidade de lote.

Classificação em tempo real

Você pode usar seus modelos com um endpoint online para pontuação em tempo real. Os pontos de extremidade online podem usar os seguintes destinos de computação:

  • Pontos finais online geridos
  • Azure Kubernetes Service
  • Ambiente de desenvolvimento local

Para implantar um modelo em um ponto de extremidade, você deve fornecer os seguintes itens:

  • O modelo ou conjunto de modelos.
  • Dependências necessárias para usar o modelo. Exemplos são 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 endpoints online

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

  • Crie várias versões de um ponto de extremidade para uma implantação.
  • Execute testes A/B roteando o tráfego para diferentes implantações dentro do ponto de extremidade.
  • Alterne entre implantações de ponto de extremidade atualizando a porcentagem de tráfego na configuração de 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.

Análise

O Microsoft Power BI oferece suporte ao uso de modelos de aprendizado de máquina para análise de dados. Para obter mais informações, consulte Integração do Azure Machine Learning no Power BI.

Capture os dados de governança necessários para MLOps

O Aprendizado de Máquina do Azure oferece a capacidade de rastrear 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-no a controlar, criar perfis e dados de versão.
  • A interpretabilidade do modelo permite que você explique seus modelos, atenda à conformidade regulatória e entenda como os modelos chegam a um resultado para uma determinada entrada.
  • O histórico de trabalhos do Azure Machine Learning armazena um instantâneo do código, dados e cálculos usados para treinar um modelo.
  • O registo 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 do modelo estão íntegras.
  • A integração com o Azure permite que você atue em eventos, como registro de modelo, implantação, desvio de dados e eventos de treinamento (trabalho), no ciclo de vida do aprendizado de máquina.

Gorjeta

Embora algumas informações sobre modelos e ativos de dados sejam capturadas automaticamente, você pode adicionar mais informações usando tags. Ao procurar modelos registrados e ativos de dados em seu espaço de trabalho, você pode usar tags como filtro.

Notifique, automatize e alerte sobre eventos no ciclo de vida do aprendizado de máquina

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

Automatize o ciclo de vida do aprendizado de máquina

Você pode usar o GitHub e o Azure Pipelines para criar um processo de integração contínua que treina um modelo. 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 um trabalho de treinamento. Os resultados do trabalho podem então ser inspecionados para ver as características de desempenho do modelo treinado. Você também pode criar um pipeline que implanta o modelo como um serviço Web.

A extensão do Aprendizado de Máquina facilita o trabalho com o Azure Pipelines. A extensão fornece os seguintes aprimoramentos para o Azure Pipelines:

  • Permite a seleção do espaço de trabalho quando você define uma conexão de serviço.
  • Permite que pipelines de liberação sejam acionados por modelos treinados criados em um pipeline de treinamento.

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