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 Azure v1SDK do Python do Azure ML 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 deste artigo marcados como pré-visualização estão atualmente em visualização pública. A versão prévia é fornecida sem um contrato de nível de serviço. Não recomendamos recursos de pré-visualização 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 são operações de machine learning?
Com base nos princípios e práticas do 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 machine learning 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 acompanhamento 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. 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.
- Capture 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 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 machine learning. Por exemplo, a conclusão do experimento, o registro do modelo, a implantação do modelo e a detecção de descompasso de dados.
- Monitore aplicativos de machine learning para detectar problemas operacionais e de machine learning. Comparar as entradas de modelo entre treinamento e inferência, explorar métricas específicas de modelo e fornecer monitoramento e alertas em sua infraestrutura de aprendizado de máquina.
- Automatize o ciclo de vida de aprendizado de máquina de ponta a ponta com o Azure Machine Learning e o Azure Pipelines. O uso de pipelines permite que você atualize modelos, teste novos modelos e implemente continuamente novos modelos de machine learning junto com seus outros aplicativos e serviços com frequência.
Para obter mais informações sobre operações de aprendizado de máquina, confira operações de aprendizado de máquina.
Criar pipelines de machine learning reproduzíveis
Use pipelines de machine learning do Azure Machine Learning para unir todas as etapas envolvidas em seu processo de treinamento de modelo.
Um pipeline de machine learning pode conter etapas que vão da preparação de dados à extração de recursos, do ajuste de hiperparâmetros à avaliação de modelos. Para obter mais informações, confira pipelines do Azure Machine Learning.
Se você usar o Designer para criar seus pipelines de machine learning, selecione as reticências (...) na parte superior direita da página do Designer e selecione 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 os seus projetos. Ambientes podem ser usados para treinamento e 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
Você pode registrar, empacotar e implantar modelos a partir de qualquer lugar.
Registrar e acompanhar modelos de machine learning
O registro de modelo permite que você armazene e controle a versão de seus modelos em seu workspace na nuvem do Azure. 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.
Nome e versão identificam modelos registrados. Cada vez que você registra um modelo com o mesmo nome de um já existente, o Registro incrementa a versão. Você pode especificar outras marcas de metadados 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, confira Registrar o modelo.
Importante
Quando você usa a opção de filtrar por Tags
na página Modelos do Estúdio do Azure Machine Learning, em vez de usar TagName : TagValue
você deve usar TagName=TagValue
(sem espaço).
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, confira Implantar modelos de machine learning no Azure e Solucionar problemas de implantação de modelo remota.
Converter e otimizar modelos
Converter o modelo para Open Neural Network Exchange (ONNX) pode aprimorar o desempenho. Em média, converter para ONNX pode gerar um aumento de desempenho de 2x.
Para obter mais informações, confira ONNX e Azure Machine Learning.
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 ou GPU para inferência. Também é possível usar modelos do Power BI.
Ao usar um modelo como um serviço Web, forneça os seguintes itens:
- Os modelos 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 exigidas pelos modelos e o script de entrada.
- Quaisquer outros ativos, como texto ou dados, que os modelos e o script de entrada exijam.
Você também fornece a configuração da plataforma de implantaçã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 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 em lote tem suporte por meio de pipelines de machine learning. Para obter mais informações, confira Tutorial: Criar um pipeline do Azure Machine Learning para classificação de imagem.
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 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, confira Implantar modelos de machine learning no Azure.
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, confira IA com fluxos de dados.
Capturar os dados de governança necessários para operações de aprendizado de máquina
O Azure Machine Learning oferece a capacidade de acompanhar a trilha de auditoria de ponta a ponta de todos os seus ativos de machine learning usando metadados.
- O Azure Machine Learning integra-se ao Git para acompanhar as informações sobre de qual repositório, branch e commit provém o seu código.
- 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 seu modelo. Esses metadados incluem qual experimento o treinou, onde ele está sendo implantado e se as suas implantações estão íntegras.
- A Integração com o Azure permite atuar com relação a eventos no ciclo de vida de machine learning. Por exemplo, eventos de registro, implantação, descompasso de dados e treinamento (execução) do modelo.
Dica
Algumas informações sobre modelos e conjuntos de dados são capturadas automaticamente. Você pode adicionar outras informações 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 referenciar um conjunto de dados ao registrar um modelo, confira a referência de Classe de Modelo.
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, confira Disparar aplicativos, processos ou fluxos de trabalho de CI/CD com base em eventos do Azure Machine Learning.
Monitorar problemas operacionais e de machine learning
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 no treinamento de versões futuras do modelo.
Para obter mais informações, confira Coletar dados de modelos em produção.
Treinar novamente o modelo com novos dados
Muitas vezes, você deseja validar o seu modelo, atualizá-lo ou até mesmo treiná-lo novamente 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 diminuir devido a alterações em um sensor específico, alterações de dados naturais como efeitos sazonais ou recursos que mudam em relação a outros recursos. Para obter mais informações, confira Detectar descompasso de dados (versão prévia) em conjuntos de dados.
Não há uma resposta universal para "Como saber se devo treinar o modelo novamente?" mas as ferramentas de monitoramento e eventos do Azure Machine Learning discutidas anteriormente são bons pontos de partida para automação. Depois de decidir treinar novamente, você deverá:
- Pré-processar os dados usando um processo reproduzível e automatizado
- Treinar o novo modelo
- Comparar as saídas do novo modelo com as saídas do seu modelo antigo
- Usar critérios predefinidos para escolher se deseja substituir o modelo antigo
Um tema das etapas acima é que o seu treinamento deve ser automatizado, não improvisado. 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 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.
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 para 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. 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, confira os seguintes recursos:
- Integração e implantação contínuas de modelos de machine learning com o Azure Pipelines
- Repositório de MLOps do Azure Machine Learning
- Repositório do MLOpsPython do Azure Machine Learning
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 obter mais informações, confira DevOps para obter um pipeline de ingestão de dados.
Conteúdo relacionado
Saiba mais ao ler e explorar os seguintes recursos:
- Implantar modelos de machine learning para o Azure
- Tutorial: Treinar e implantar um modelo de classificação de imagem com um Jupyter Notebook de exemplo
- Repositório de exemplos de operações de machine learning
- Usar o Azure Pipelines com o Azure Machine Learning
- Consumir um modelo de Azure Machine Learning implantado como um serviço Web
- Design de arquitetura de inteligência artificial
- Exemplos, arquiteturas de referência e práticas recomendadas