Partilhar via


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

APLICA-SE A:Azure CLI ml extension v1Python SDK azureml v1

Neste artigo, saiba como aplicar 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.

Importante

Os itens neste artigo marcados como "visualização" estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

O que é o MLOps?

As operações de Machine Learning (MLOps) são baseadas em princípios e práticas de 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 rastreamento de linhagem de ponta a ponta

MLOps no Azure Machine Learning

O Azure Machine Learning fornece os seguintes recursos de MLOps:

  • Crie pipelines de ML reproduzíveis. Os pipelines de Machine Learning permitem que você defina etapas repetíveis e reutilizáveis para seus processos de preparação, treinamento e pontuação de dados.
  • Crie ambientes de software reutilizáveis para treinamento e implantação de modelos.
  • Registre, empacote e implante modelos de qualquer lugar. Você também pode rastrear os metadados associados necessários para usar o modelo.
  • Capture 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 está publicando modelos, por que as alterações foram feitas e quando os modelos foram implantados ou usados na produção.
  • Notificar e alertar sobre eventos no ciclo de vida do ML. Por exemplo, conclusão de experimentos, registro de modelo, implantação de modelo e deteção de desvio de dados.
  • Monitore aplicativos de ML para problemas operacionais e relacionados a ML. Compare entradas de modelo entre treinamento e inferência, explore métricas específicas do modelo e forneça monitoramento e alertas em sua infraestrutura de ML.
  • Automatize o ciclo de vida de ML de ponta a ponta com o Azure Machine Learning e o Azure Pipelines. O uso de pipelines permite que você atualize modelos com frequência, teste novos modelos e implemente continuamente novos modelos de ML junto com seus outros aplicativos e serviços.

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

Crie pipelines de ML reproduzíveis

Use pipelines de ML do Aprendizado de Máquina do Azure para unir todas as etapas envolvidas no processo de treinamento do modelo.

Um pipeline de ML pode conter etapas desde a preparação de dados até a extração de recursos, o ajuste de hiperparâmetros e a avaliação do modelo. Para obter mais informações, consulte Pipelines de ML.

Se você usar o Designer para criar seus pipelines de ML, poderá a qualquer momento clicar no botão "..." no canto superior direito da página do Designer e selecionar Clonar. A clonagem do pipeline permite que você itere o design do pipeline sem perder as versões antigas.

Crie ambientes de software reutilizáveis

Os ambientes do Azure Machine Learning permitem-lhe acompanhar e reproduzir as dependências de software dos seus projetos à medida que 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 para treinamento e implantação de modelos. Para obter mais informações, consulte O que são ambientes do Azure Machine Learning.

Registre, empacote e implante modelos de qualquer lugar

Registrar e rastrear modelos de ML

O registro de modelo permite que você armazene e faça 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.

Gorjeta

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 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 que foram registrados.

Os modelos registados são identificados por nome e versão. Sempre que registar um modelo com o mesmo nome de um modelo já existente, o registo aumenta a versão. Tags de metadados adicionais podem ser fornecidas durante o registro. Essas tags são usadas 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.

Não é possível excluir um modelo registrado que está sendo usado em uma implantação ativa. Para obter mais informações, consulte a seção Modelo de registro de 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ço)

Modelos de empacotamento e depuração

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

Se você tiver problemas com a implantação, poderá implantá-lo em seu ambiente de desenvolvimento local para solução de problemas e depuração.

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

Converta e otimize modelos

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

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

Modelos de utilização

Modelos de aprendizado de máquina treinados são implantados como serviços Web na nuvem ou localmente. As implantações usam CPU ou GPU para inferência. Você também pode usar modelos do Power BI.

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

  • O(s) modelo(s) usado(s) para pontuar os dados enviados ao serviço/dispositivo.
  • Um script de entrada. Esse script aceita solicitações, usa o(s) modelo(s) para pontuar os dados e retornar uma resposta.
  • Um ambiente do Azure Machine Learning que descreve as dependências pip e Conda exigidas pelo(s) modelo(s) e script de entrada.
  • Quaisquer ativos adicionais, como texto, dados, etc., que sejam exigidos pelo(s) modelo(s) e script de entrada.

Também apresenta a configuração da plataforma de implementação de destino. Por exemplo, o tipo de família VM, a memória disponível e o número de núcleos ao implantar no Serviço 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 em lote

A pontuação em lote é suportada 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

Você pode usar seus modelos em serviços Web com os seguintes destinos de computação:

  • Azure Container Instance
  • Azure Kubernetes Service
  • Ambiente de desenvolvimento local

Para implantar o modelo como um serviço Web, você deve fornecer os seguintes itens:

  • O modelo ou conjunto de modelos.
  • Dependências necessárias para usar o modelo. Por exemplo, um script que aceita solicitações e invoca o modelo, dependências de 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 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 (visualização).

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

O Azure Machine Learning oferece a capacidade de rastrear a trilha de auditoria de ponta a ponta de todos os seus ativos de ML usando metadados.

  • O Azure Machine Learning integra-se com o Git para controlar informações sobre de qual repositório/ramificação/confirmação seu código veio.
  • Os Conjuntos de Dados do Azure Machine Learning ajudam-no a controlar, criar perfis e dados de versão.
  • A interpretabilidade 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 execução do Azure Machine Learning armazena um instantâneo do código, dados e cálculos usados para treinar um modelo.
  • O Registro do Modelo de Aprendizado de Máquina do Azure captura todos os metadados associados ao seu modelo (qual experimento o treinou, onde está sendo implantado, se suas implantações estiverem íntegras).
  • A integração com o Azure permite que você atue em eventos no ciclo de vida do ML. Por exemplo, registro de modelo, implantação, desvio de dados e eventos de treinamento (execução).

Gorjeta

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

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

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

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 ML. Para mais informações, consulte este documento.

Monitorar problemas operacionais e de ML

O monitoramento permite que você entenda quais dados estão sendo enviados para seu modelo e as previsões que ele retorna.

Estas informações ajudam-no a compreender como o seu modelo está a ser utilizado. Os dados de entrada coletados também podem ser úteis no treinamento de versões futuras do modelo.

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

Retreine seu modelo em novos dados

Muitas vezes, você vai querer validar seu modelo, atualizá-lo ou até mesmo retreiná-lo do zero, à medida que recebe novas informações. Às vezes, receber novos dados é uma parte esperada do domínio. Outras vezes, como discutido em Detetar desvio de dados (visualização) em conjuntos de dados, o desempenho do modelo pode degradar-se face a coisas como alterações num determinado sensor, alterações naturais de dados, como efeitos sazonais, ou alterações de características na sua relação com outras funcionalidades.

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

  • Pré-processe seus dados usando um processo repetível e automatizado
  • Treine o seu novo modelo
  • Compare as saídas do seu novo modelo com as do seu modelo antigo
  • Use critérios predefinidos para escolher se deseja substituir seu modelo antigo

Um tema das etapas acima é que sua reciclagem deve ser automatizada, não ad hoc. Os pipelines do Azure Machine Learning são uma boa resposta para a criação de fluxos de trabalho relacionados à 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 retreinamento.

Automatize o ciclo de vida do ML

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 Pipeline do Azure iniciará uma execução de treinamento. Os resultados da corrida 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 Azure Machine Learning facilita o trabalho com o Azure Pipelines. Ele fornece os seguintes aprimoramentos para o Azure Pipelines:

  • Permite a seleção do espaço de trabalho ao definir 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 Azure Machine Learning, consulte os seguintes links:

Você também pode usar o Azure Data Factory para criar um pipeline de ingestão de dados que prepara dados para uso com treinamento. Para obter mais informações, consulte Pipeline de ingestão de dados.

Próximos passos

Saiba mais lendo e explorando os seguintes recursos: