MLOps: gerenciamento, implantação e monitoramento de modelos 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)

Veja neste artigo sobre as práticas de MLOps (operações de aprendizado de máquina) no Azure Machine Learning 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 que é MLOps?

O MLOps se baseia em princípios e práticas do 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 de aprendizado de máquina, com o objetivo de:

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

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

  • Criar pipelines de machine learning reproduzíveis. Use pipelines de machine learning para definir etapas reproduzíveis e reutilizáveis para os processos de preparação, treinamento e pontuação de dados.
  • Criar ambientes de software reutilizáveis. Use esses ambientes para treinar e implantar modelos.
  • Registrar, empacotar e implantar modelos de qualquer lugar. Acompanhe os metadados associados necessários para usar um modelo.
  • Capturar os dados de governança para o ciclo de vida de aprendizado de máquina de ponta a ponta. As informações de linhagem registradas podem incluir quem publica os modelos e por que as alterações foram feitas. Elas também podem incluir quando os modelos foram implantados ou usados em produção.
  • Notificar e alertar sobre eventos no ciclo de vida de machine learning. Os eventos incluem a conclusão de experimento, o registro do modelo, a implantação de modelo e a detecção de descompasso de dados.
  • Monitorar aplicativos de machine learning para detectar problemas operacionais e relacionados ao machine learning. Compare as entradas de modelo entre o treinamento e a inferência. Explore métricas específicas do modelo. Forneça monitoramento e alertas sobre sua infraestrutura de machine learning.
  • Automatizar o ciclo de vida de aprendizado de máquina de ponta a ponta com o aprendizado de máquina e o Azure Pipelines. Use pipelines para testar e atualizar modelos com frequência. Você pode implantar continuamente novos modelos de machine learning em conjunto com seus outros aplicativos e serviços.

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

Criar pipelines de machine learning reproduzíveis

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

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 ...>Clonar.

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

Criar ambientes de software reutilizáveis

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

Os ambientes descrevem as dependências de pip e conda de seus projetos. Você pode usar ambientes para treinamento e implantação de modelos. Para saber mais sobre ambientes, consulte O que são os ambientes do Azure Machine Learning?.

Registrar, empacotar e implantar modelos de qualquer lugar

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

Registrar e acompanhar modelos de machine learning

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

Você pode identificar os 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 marcas de metadados durante o registro e usar essas marcas ao pesquisar um modelo. O Azure Machine Learning dá suporte a qualquer modelo que possa ser carregado usando o Python 3.5.2 ou superior.

Dica

Também é possível usar um modelo treinado fora do Azure Machine Learning.

Importante

  • Ao usar a opção Filtrar porTags na página Modelos do Estúdio do Azure Machine Learning, em vez de usar TagName : TagValue, use TagName=TagValue sem espaços.
  • 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

Antes de você implantar um modelo em produção, ele precisa ser empacotado 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 a imagem manualmente.

É útil primeiro implantar 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.

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 Machine Learning, confira o artigo Criar e acelerar modelos de machine learning.

Implantar modelos

Você pode implantar os modelos de machine learning treinados como pontos de extremidade na nuvem ou localmente. As implantações usam CPU e GPU para inferência.

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

  • O modelo que é usado para pontuar os dados enviados para o serviço ou dispositivo.
  • Um script de entrada1. 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 pelo script de entrada.
  • Qualquer outro ativo, como texto e dados que são necessários para os modelos e o script de entrada.

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

1,2 Quando você implanta um modelo do MLflow, não é necessário fornecer um script de entrada, também conhecido como um 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 do MLflow, consulte Diretrizes para implantar modelos do MLflow.

Pontuação do 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

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

  • Pontos de extremidade online gerenciados
  • Serviço de Kubernetes do Azure
  • Ambiente de desenvolvimento local

Para implantar um modelo como um serviço Web, devem ser fornecidos os seguintes itens:

  • O modelo ou ensemble de modelos.
  • Dependências necessárias para usar o modelo. Por exemplo, um script que aceita solicitações e invoca o modelo e dependências de 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, é possível 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.

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, consulte Integração do Azure Machine Learning com o Power BI.

Capturar os dados de governança necessários para as MLOps

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 de modelo do Azure Machine Learning captura todos os metadados associados ao 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, descompasso de dados e eventos de treinamento (trabalho), no ciclo de vida do aprendizado de máquina.

Dica

Embora algumas informações sobre modelos e ativos de dados sejam capturadas automaticamente, é possível adicionar mais informações usando marcas. Ao procurar por modelos registrados e ativos de dados no workspace, você pode usar as marcas como filtro.

Notificar, automatizar e alertar sobre eventos no ciclo de vida de machine learning

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.

Automatizar o ciclo de vida de machine learning

É possível 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 do projeto, o Azure Pipelines inicia um trabalho de treinamento. Os resultados do trabalho podem ser inspecionados 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 ao definir uma conexão de serviço.
  • Permite que os pipelines de lançamento sejam disparados 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.