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 para gerenciar o ciclo de vida de seus modelos. As práticas de operações de aprendizado de máquina podem 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. Não recomendamos recursos de visualização 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 são operações de machine learning?
Com base nos princípios e práticas de DevOps , as operações de aprendizado de máquina (MLOps) aumentam a eficiência dos fluxos de trabalho. Por exemplo, integração, entrega e implantação contínuas. As operações de aprendizado de máquina aplicam 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 operações de aprendizado de máquina:
- Crie pipelines de aprendizado de máquina 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 completo do aprendizado de máquina. 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.
- Notifique e alerte sobre eventos no ciclo de vida do aprendizado de máquina. Por exemplo, conclusão de experimentos, 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 de aprendizado de máquina. 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 aprendizado de máquina.
- Automatize o ciclo de vida completo do aprendizado de máquina 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 aprendizado de máquina junto com seus outros aplicativos e serviços.
Para obter mais informações sobre operações de aprendizado de máquina, consulte Operações de aprendizado de máquina.
Crie pipelines de aprendizado de máquina reproduzíveis
Use pipelines de aprendizado de máquina do Azure Machine Learning para unir todas as etapas envolvidas no processo de treinamento do modelo.
Um pipeline de aprendizado de máquina 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 do Azure Machine Learning.
Se você usar o Designer para criar seus pipelines de aprendizado de máquina, selecione as reticências (...) no canto superior direito da página Designer e, em seguida, selecione 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. Os ambientes 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
Você pode registrar, empacotar e implantar modelos de qualquer lugar.
Registrar e rastrear modelos de aprendizado de máquina
O registro de modelo permite que você armazene e faça a versão de seus modelos em seu espaço de trabalho na nuvem do Azure. 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.
O nome e a versão identificam os modelos registados. Sempre que registar um modelo com o mesmo nome de um modelo já existente, o registo aumenta a versão. Você pode especificar outras tags de metadados 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 Registrar o modelo.
Importante
Quando você usa a opção filtrar por Tags
na página Modelos do Azure Machine Learning Studio, em vez de usarTagName : TagValue
, você deve 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 de aprendizado de máquina no Azure e Solucionar problemas de implantação de modelo remoto.
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, consulte ONNX e Azure Machine Learning.
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.
Quando você usa um modelo como um serviço Web, forneça os seguintes itens:
- Os modelos que são usados para pontuar os dados enviados para o serviço ou 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 que os modelos e o script de entrada exigem.
- Quaisquer outros ativos, como texto ou dados, que os modelos e o script de entrada exigem.
Também apresenta a configuração da plataforma de implementação de destino. Por exemplo, o tipo de família de máquinas virtuais, 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 aprendizado de máquina. Para obter mais informações, consulte Tutorial: Criar um pipeline do Azure Machine Learning para classificação de imagens.
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 as dependências de modelo ou conda.
- Configuração de implantação que descreve como e onde implantar o modelo.
Para obter mais informações, consulte Implantar modelos de aprendizado de máquina no Azure.
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.
Capture os dados de governança necessários para operações de aprendizado de máquina
O Azure Machine Learning 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.
- O Azure Machine Learning integra-se ao Git para controlar informações sobre de qual repositório, ramificação e 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 do Azure Machine Learning captura todos os metadados associados ao seu modelo. Esses metadados incluem qual experimento o treinou, onde está sendo implantado e se suas implantações estão íntegras.
- A integração com o Azure permite que você atue em eventos no ciclo de vida do aprendizado de máquina. Por exemplo, registro de modelo, implantação, desvio de dados e eventos de treinamento (execução).
Gorjeta
Algumas informações sobre modelos e conjuntos de dados são capturadas automaticamente. Você pode adicionar outras informações 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 de modelo.
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, consulte Acionar aplicativos, processos ou fluxos de trabalho de CI/CD com base em eventos do Azure Machine Learning.
Monitore problemas operacionais e de aprendizado de máquina
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 futuras versões do modelo.
Para obter mais informações, consulte Coletar dados de modelos em produção.
Retreine seu modelo em novos dados
Muitas vezes, você quer 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, o desempenho do modelo pode degradar-se devido a alterações num determinado sensor, a alterações naturais de dados, tais como efeitos sazonais, ou a alterações de características na sua relação com outras funcionalidades. Para obter mais informações, consulte Detetar desvio de dados (visualização) em conjuntos de dados.
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 saídas 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 improvisada. 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 Usar parâmetros de pipeline para treinar novamente modelos no designer 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 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 Pipeline do Azure inicia uma execução de treinamento. Você pode inspecionar os resultados da execução 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 recursos:
- Integração contínua e implantação de modelos de aprendizado de máquina com o Azure Pipelines
- Repositório MLOps do Azure Machine Learning
- Repositório MLOpsPython do Azure Machine Learning
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 DevOps para um pipeline de ingestão de dados.
Conteúdos relacionados
Saiba mais lendo e explorando os seguintes recursos:
- Implantar modelos de aprendizado de máquina no Azure
- Tutorial: Treinar e implantar um modelo de classificação de imagem com um exemplo de Jupyter Notebook
- Exemplos de operações de aprendizado de máquina repo
- Usar o Azure Pipelines com o Azure Machine Learning
- Consumir um modelo do Azure Machine Learning implementado como serviço Web
- Design de arquitetura de inteligência artificial
- Exemplos, arquiteturas de referência e práticas recomendadas