Compartilhar via


MLOps: gerenciamento, implantação, linhagem e monitoramento de modelos com o Azure Machine Learning v1

APLICA-SE A:Extensão de ML da CLI do Azurev1SDK do Python azureml v1

Veja neste artigo como aplicar 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.

Importante

Os itens neste artigo marcados "versão prévia" estão em versão prévia pública no momento. A versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

O que é MLOps?

As operações de Machine Learning (MLOps) baseiam-se em princípios e práticas do DevOps que aumentam a eficiência dos fluxos de trabalho. Por exemplo, integração, entrega e implantação contínuas. O MLOps aplica esses princípios ao processo 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

MLOps no Azure Machine Learning

O Azure Machine Learning fornece as seguintes funcionalidades de MLOps:

  • Criar pipelines de ML reproduzíveis. Pipelines de Machine Learning permitem definir etapas reproduzíveis e reutilizáveis para os processos de preparação de dados, treinamento e pontuação.
  • Criar ambientes de software reutilizáveis para treinamento e implantação de modelos.
  • Registrar, empacotar e implantar modelos de qualquer lugar. Também é possível rastrear os metadados associados necessários para usar o modelo.
  • Capturar os dados de governança para o ciclo de vida de ML de ponta a ponta. As informações de linhagem registradas podem incluir quem publica modelos, por que as alterações foram feitas e quando os modelos foram implantados ou usados em produção.
  • Notificar e alertar sobre eventos no ciclo de vida de ML. Por exemplo, a conclusão do experimento, o registro do modelo, a implantação do modelo e a detecção de descompasso de dados.
  • Monitorar aplicativos de ML para problemas operacionais e relacionados ao ML. Compare as entradas de modelo entre treinamento e inferência, explore métricas específicas de modelo e forneça monitoramento e alertas em sua infraestrutura de ML.
  • Automatizar, de ponta a ponta, o ciclo de vida de ML com o Azure Machine Learning e o Azure Pipelines. O uso de pipelines permite atualizar modelos com frequência, testar novos modelos e distribuir continuamente novos modelos de ML junto com outros aplicativos e serviços.

Para obter mais informações sobre MLOps, consulte Machine Learning DevOps (MLOps).

Criar pipelines de ML reproduzíveis

Use pipelines de ML do Azure Machine Learning para unir todas as etapas envolvidas no processo de treinamento do modelo.

Um pipeline de ML pode conter etapas de preparação de dados para extração de recursos para ajuste de hiperparâmetro para avaliação de modelo. Para obter mais informações, consulte: Pipelines de ML.

Caso use o Designer para criar pipelines de ML, é possível, a qualquer momento, clicar em "..." na parte superior direita da página do designer e, em seguida, selecionar Clonar. Clonar o pipeline permite iterar o design de pipeline sem perder as versões antigas.

Criar ambientes de software reutilizáveis

Os ambientes do Azure Machine Learning permitem acompanhar e reproduzir as dependências de software dos projetos à medida que eles evoluem. Os ambientes permitem 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 e podem ser usados tanto para treinamento quanto para implantação de modelos. Para saber mais, consulte O que são os ambientes do Azure Machine Learning.

Registrar, empacotar e implantar modelos de qualquer lugar

Registrar e acompanhar modelos de ML

O registro de modelo permite que você armazene e controle a versão de seus modelos na nuvem do Azure em seu workspace. O registro de modelo torna mais fácil organizar e manter o controle de seus modelos treinados.

Dica

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á registrá-los 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 registrados.

Modelos registrados são identificados por nome e versão. Cada vez que você registra um modelo com o mesmo nome de um já existente, o Registro incrementa a versão. Podem ser fornecidas marcas de metadados adicionais durante o registro. As marcas são usadas quando são feitas pesquisas por um modelo. O Azure Machine Learning dá suporte a quaisquer modelos que possam ser armazenados usando o Python 3.5.2 ou superior.

Dica

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

Não é possível excluir um modelo registrado que esteja sendo usado em uma implantação ativa. Para obter mais informações, consulte a seção sobre registro de modelos em Implantar modelos.

Importante

Ao usar a opção Filtrar por Tags, na página Modelos do Azure Machine Learning Studio, em vez de usar TagName : TagValue, os clientes devem usar TagName=TagValue (sem espaços)

Empacotar e depurar modelos

Antes de implantar um modelo em produção, ele é empacotado em uma imagem do Docker. Na maioria dos casos, a criação da imagem ocorre, automaticamente, em segundo plano durante a implantação. É possível especificar a imagem manualmente.

Caso tenha problemas com a implantação, é possível implantar em seu ambiente de desenvolvimento local para solucionar problemas e depurar.

Para obter mais informações, consulte Implantar modelos e Solucionar problemas de implantações.

Converter e otimizar modelos

Converter o modelo para Open Neural Network Exchange (ONNX) pode melhorar o desempenho. Em média, converter para ONNX pode gerar um aumento de desempenho de 2x.

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

Usar modelos

Os modelos de aprendizado de máquina treinados são implantados como serviços Web na nuvem ou localmente. As implantações usam CPU, GPU ou FPGA (matrizes de porta programável no campo) para inferência. Também é possível usar modelos do Power BI.

Ao usar um modelo como um serviço Web você fornece os seguintes itens:

  • Os modelos que são usados para pontuar os dados enviados para o serviço/dispositivo.
  • Um script de entrada. Esse script aceita solicitações, usa os modelos para pontuar os dados e retorna uma resposta.
  • Um ambiente do Azure Machine Learning que descreve as dependências pip e Conda exigidas pelos modelos e script de entrada.
  • Quaisquer ativos adicionais, como texto, dados etc., 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 VMs, a memória disponível e o número de núcleos durante a implantação no Serviço de Kubernetes do Azure.

Quando a imagem é criada, também são adicionados os componentes exigidos pelo Azure Machine Learning. Por exemplo, os ativos necessários para executar o serviço Web.

Pontuação do lote

A pontuação de lote tem suporte por meio de pipelines de ML. Para obter mais informações, consulte Previsões de lote em Big data.

Serviços Web em tempo real

É possível usar modelos em Serviços Web com os seguintes destinos de computação:

  • Azure Container Instance
  • Serviço de Kubernetes do Azure
  • Ambiente de desenvolvimento local

Para implantar o 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, dependências Conda, etc.
  • Configuração de implantação que descreve como e onde implantar o modelo.

Para obter mais informações, consulte Implantar modelos.

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 (versão prévia).

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 ativos de ML usando metadados.

  • O Azure Machine Learning integra-se ao Git para acompanhar informações sobre o repositório/branch/commit de que o código é proveniente.
  • Os Conjuntos de dados do Azure Machine Learning ajudam a acompanhar, criar o perfil e controlar a versão dos dados.
  • A Interpretabilidade permite explicar os modelos, atender à conformidade regulatória e entender como os modelos chegam em um resultado para determinada entrada.
  • O histórico de execuções 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 (que experimento o treina, onde ele está sendo implantado, se as implantações estão íntegras).
  • A Integração com o Azure permite atuar sobre eventos no ciclo de vida do ML. Por exemplo, eventos de registro, implantação, descompasso de dados e treinamento (execução) do modelo.

Dica

Embora algumas informações sobre modelos e conjuntos de dados sejam capturadas automaticamente, é possível adicionar informações adicionais usando marcas. Ao procurar por modelos registrados e conjuntos de valores no espaço de trabalho, é possível usar as marcas como filtro.

Associar um conjunto de dados a um modelo registrado é uma etapa opcional. Para obter informações sobre como fazer referência a um conjunto de dados ao registrar um modelo, consulte a referência de classe de Modelo.

Notificar, automatizar e alertar sobre eventos no ciclo de vida de ML

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 do Machine Learning. Para obter mais informações, consulte este documento.

Monitore os problemas operacionais e de ML

O monitoramento permite entender quais dados são enviados para o modelo e as previsões que ele retorna.

Essas informações ajudam a entender como o modelo está sendo usado. Os dados de entrada coletados também podem ser úteis para treinar versões futuras do modelo.

Para obter mais informações, consulte Como habilitar a coleta de dados de modelo.

Treinar novamente o modelo com novos dados

Muitas vezes, será desejável validar, atualizar ou até mesmo retreinar o modelo do zero, ao receber novas informações. Às vezes, receber novos dados é uma parte esperada do domínio. Em outras ocasiões, conforme discutido em Detectar descompasso de dados (versão prévia) em conjuntos de dados, o desempenho do modelo pode ser prejudicado diante de coisas como alterações em um sensor específico, alterações naturais de dados, como efeitos sazonais, ou recursos que se deslocam em relação com outros recursos.

Não há uma resposta universal para a pergunta "Como saber se devo treinar novamente?", mas as ferramentas de monitoramento e evento do Azure Machine Learning abordadas anteriormente são bons pontos de partida para automação. Depois de decidir treinar novamente, será necessário:

  • Pré-processar os dados usando um processo reproduzível e automatizado
  • Treinar o novo modelo
  • Comparar as saídas do novo modelo com as do modelo antigo
  • Usar critérios predefinidos para escolher se deseja substituir o modelo antigo

Um tema das etapas acima é que o novo treinamento deve ser automatizado, não ad hoc. Os pipelines do Azure Machine Learning são uma boa resposta para criar fluxos de trabalho relacionados a preparação, treinamento, validação e implantação de dados. Leia Retreinar modelos com o designer do Azure Machine Learning para ver como os pipelines e o designer do Azure Machine Learning se encaixam em um cenário de novo treinamento.

Automatizar o ciclo de vida do ML

É 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 para um projeto, o Azure Pipeline iniciará uma execução de treinamento. Os resultados da execução 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 Azure Machine Learning torna mais fácil trabalhar com o Azure Pipelines. Ela fornece os seguintes aprimoramentos para o Azure Pipelines:

  • Habilita a seleção de 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 Azure Machine Learning, consulte os links a seguir:

Também é possível usar o Azure Data Factory para criar um pipeline de ingestão de dados que prepara os dados para usar com o treinamento. Para saber mais, consulte Pipeline de ingestão de dados.

Próximas etapas

Saiba mais ao ler e explorar os seguintes recursos: