Gerenciamento de modelo MLOps com o Azure Machine Learning
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Este artigo descreve como o Azure Machine Learning usa operações de aprendizado de máquina (MLOps) para 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 MLOps é baseado em princípios e práticas de DevOps 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 rastreamento de linhagem de ponta a ponta.
Recursos de MLOps
O MLOps fornece os seguintes recursos para o processo de aprendizado de máquina:
- Crie 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.
- Crie ambientes de software reutilizáveis para treinamento e implantação de modelos.
- Registre, empacote e implante modelos de qualquer lugar e rastreie os metadados associados necessários para usar um modelo.
- Registre dados de linhagem para 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.
- Notifique e alerte sobre eventos do ciclo de vida do aprendizado de máquina, como conclusão de experimento, registro de modelo, implantação de modelo e deteção de desvio 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 completo do aprendizado de máquina usando pipelines de aprendizado de máquina e Pipelines do Azure para testar, atualizar e implantar 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 os pipelines do Azure Machine Learning para unir todas as etapas do seu processo de treinamento de modelo. As etapas do pipeline de aprendizado de máquina podem incluir preparação de dados, extração de recursos, ajuste de hiperparâmetros e avaliação de modelos.
No Azure Machine Learning studio Designer, 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 menu superior.
Para obter mais informações sobre pipelines do Azure Machine Learning, consulte Pipelines de Machine Learning.
Ambientes de software reutilizáveis
Os ambientes do Azure Machine Learning garantem que as compilações sejam reproduzíveis sem usar configurações manuais de software. Os ambientes podem rastrear 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 de modelos
O Azure Machine Learning pode usar MLOps de qualquer lugar para registrar, empacotar e implantar modelos.
Registar e acompanhar modelos
O registro de modelos armazena e versões de seus modelos em seu espaço de trabalho do Azure Machine Learning na nuvem do Azure. 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 seu modelo estiver armazenado em vários arquivos, você 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.
Você também pode registrar modelos treinados fora do Aprendizado de Máquina do Azure. O Azure Machine Learning suporta qualquer modelo que possa ser carregado usando Python 3.5.2 ou superior.
Você identifica 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 da versão.
Você pode fornecer tags de metadados durante o registro e usar essas tags para pesquisar um modelo.
Importante
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
Para implantar um modelo em produção, você deve primeiro empacotá-lo 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 o ONNX com o Azure Machine Learning, consulte Criar e acelerar modelos de aprendizado de máquina.
Implantar modelos como pontos de extremidade
Você pode implantar modelos treinados de aprendizado de máquina 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 utilizado 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 script de entrada.
Importante
Ao implantar um modelo 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 MLflow, consulte Diretrizes para implantar modelos 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), memória disponível e número de núcleos. Quando o Aprendizado de Máquina do Azure 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 finais de 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.
Pontuação em tempo real com endpoints online
Você pode usar seus modelos com endpoints on-line 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 o Serviço Kubernetes do Azure (AKS).
Para implantar um modelo em um ponto de extremidade online, você precisa fornecer as seguintes informações:
- O modelo ou conjunto 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 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.
Metadados para governança do ciclo de vida do aprendizado de máquina
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 registro de 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 no ciclo de vida do aprendizado de máquina, como registro de modelo, implantação, desvio 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 tags. Ao procurar modelos registrados e ativos de dados em seu espaço de trabalho, você pode usar tags como filtros.
Nota
Quando utilizar as Etiquetas na opção Filtrar por na página Modelos do estúdio do Azure Machine Learning, certifique-se de que utiliza TagName=TagValue
sem espaços em vez de TagName : TagValue
.
Notificação e alertas de eventos do 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.
Automação do ciclo de vida do aprendizado de máquina
Você pode usar o Git e o Azure Pipelines para criar um processo de integração contínua que treina 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. 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:
- Habilita a seleção do espaço de trabalho do Azure Machine Learning quando você define uma conexão de serviço.
- Permite a criação de modelos treinados 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 oferece suporte ao uso de modelos de aprendizado de máquina para análise de dados. Para obter mais informações, consulte IA com fluxos de dados.