Preparar dados, treinar, implantar e monitorar modelos de machine learning com Azure Pipelines

Azure Pipelines

Você pode usar um pipeline para automatizar o ciclo de vida do aprendizado de máquina. Algumas das operações que você pode automatizar são:

  • Preparação de dados (extrair, transformar, carregar operações)
  • Treinar modelos de machine learning com escala e escala crescente sob demanda
  • Implantação de modelos de machine learning como serviços Web públicos ou privados
  • Monitoramento de modelos de machine learning implantados (por exemplo, para análise de desempenho ou de desneio de dados)

Este artigo ensinará como criar um Pipeline do Azure que cria e implanta um modelo de machine learning como um serviço Web.

Pré-requisitos

Antes de ler este tópico, você deve entender como o serviço Azure Machine Learning funciona.

Siga as etapas em Azure Machine Learning início rápido: portal para criar um workspace.

Obter o código

Bifurcar o seguinte GitHub:

https://github.com/MicrosoftDocs/pipelines-azureml

Este exemplo inclui um arquivo diabetes-train-and-deploy.yml nos pipelines de diretório/.

Entrar no Azure Pipelines

Entre no Azure Pipelines. Depois de entrar, o navegador vai para https://dev.azure.com/my-organization-name e exibe o painel do Azure DevOps.

Na organização selecionada, crie um projeto. Se você não tiver nenhum projeto em sua organização, verá uma tela Criar um projeto para começar. Caso contrário, selecione o botão Criar Projeto no canto superior direito do painel.

Criar o pipeline

Você pode usar 1 da abordagem a seguir para criar um novo pipeline.

  1. Entre em sua Azure DevOps e acesse seu projeto.

  2. Vá para Pipelinese selecione Novo pipeline.

  3. Faça as etapas do assistente selecionando primeiro GitHub como o local do código-fonte.

  4. Você pode ser redirecionado para o GitHub para então entrar. Nesse caso, insira suas credenciais do GitHub.

  5. Quando você vir a lista de repositórios, selecione seu repositório.

  6. Você poderá ser redirecionado ao GitHub para instalar o aplicativo do Azure Pipelines. Em caso afirmado, selecione Aprovar instalação.

Quando o novo pipeline for exibido:

  1. Substitua myresourcegroup pelo nome do grupo de recursos do Azure que contém o workspace Azure Machine Learning serviço.

  2. Substitua myworkspace pelo nome do workspace Azure Machine Learning serviço.

  3. Quando estiver pronto, selecione Salvar e executar.

  4. Você será solicitado a fazer commit das alterações no arquivo diabetes-train-and-deploy.yml em seu repositório. Depois de ficar satisfeito com a mensagem, selecione Salvar e executar novamente.

    Se você quiser assistir ao pipeline em ação, selecione o trabalho de build.

Agora você tem um pipeline YAML em seu repositório pronto para treinar seu modelo!

Azure Machine Learning de serviço

Há duas maneiras principais de usar a automação com o Azure Machine Learning serviço:

  • A MACHINE LEARNING cli é uma extensão para o CLI do Azure. Ele fornece comandos para trabalhar com o Azure Machine Learning serviço.
  • O Azure Machine Learning SDK é o pacote python que fornece acesso programático ao serviço Azure Machine Learning.
    • O SDK do Python inclui o aprendizado de máquina automatizado para ajudar a automatizar as tarefas iterativas e demoradas do desenvolvimento de modelos de machine learning.

O exemplo com este documento usa o Machine Learning CLI.

Planejamento

Antes de usar Azure Pipelines automatizar o treinamento e a implantação do modelo, você deve entender os arquivos necessários para o modelo e o que indica um modelo treinado "bom".

Arquivos de machine learning

Na maioria dos casos, sua equipe de ciência de dados fornecerá os arquivos e os recursos necessários para treinar o modelo de machine learning. No projeto de exemplo, os cientistas de dados forneceriam estes arquivos:

  • Script de treinamento ( ): o script de treinamento contém uma lógica específica para o modelo que você está treinando.
  • Arquivo de pontuação ( ): quando o modelo é implantado como um serviço Web, o arquivo de pontuação recebe dados de clientes e os pontua em relação ao modelo. A saída é retornada ao cliente.
  • Configurações de RunConfig ( ): define como o script de treinamento é executado no destino de computação usado para treinamento.
  • Ambiente de treinamento ( ): define os pacotes necessários para executar o script de treinamento.
  • Ambiente de implantação ( ): define os recursos e a computação necessários para o ambiente de implantação.
  • Ambiente de implantação ( ): define os pacotes necessários para executar e pontuar o modelo no ambiente de implantação.

Alguns desses arquivos são usados diretamente ao desenvolver um modelo. Por exemplo, os train.py arquivos score.py e . No entanto, o cientista de dados pode estar criando programaticamente a configuração de execução e as definições de ambiente. Em caso afirmativo, eles podem criar os arquivos de ambiente e .runconfig de treinamento, .runconfig Ou os arquivos de configuração de execução padrão podem ser criados para todos os destinos de computação já no workspace executando o seguinte comando:

az ml folder attach --experiment-name myexp -w myws -g mygroup

Os arquivos criados por esse comando são armazenados no .azureml diretório .

Determinar o melhor modelo

O pipeline de exemplo implanta o modelo treinado sem fazer nenhuma verificação de desempenho. Em um cenário de produção, talvez você queira registrar métricas para que você possa determinar o modelo "melhor".

Por exemplo, você tem um modelo que já está implantado e tem uma precisão de 90. Você treina um novo modelo com base em novas verificações no repo e a precisão é de apenas 80, portanto, você não deseja implantá-lo. Você pode usar uma métrica como esta para criar lógica de automação, pois você pode classificar modelos diferentes diretamente. Em outros casos, você pode ter várias métricas usadas para indicar o modelo "melhor". Nesse caso, escolher o melhor modelo requer um bom senso humano.

Dependendo da aparência "melhor" para seu cenário, talvez seja necessário criar um pipeline de lançamento em que alguém deve inspecionar as métricas para determinar se o modelo deve ser implantado.

Para registrar métricas durante o treinamento, use a classe Executar.

CLI do Azure tarefa Implantar

A CLI do Azure implantação é usada para executar CLI do Azure comandos. No exemplo, ele instala a extensão Azure Machine Learning CLI e, em seguida, usa comandos individuais da CLI para treinar e implantar o modelo.

Conexão de Serviço do Azure

A CLI do Azure implantar requer uma conexão de serviço do Azure. A conexão de serviço do Azure armazena as credenciais necessárias para se conectar do Azure Pipelines ao Azure.

O nome da conexão usada pelo exemplo é azmldemows

Para criar uma conexão de serviço, consulte Criar uma conexão de serviço do Azure.

CLI do Machine Learning

Os seguintes Azure Machine Learning cli do serviço são usados no exemplo deste documento:

Comando Finalidade
az ml folder attach Associa os arquivos no projeto ao workspace Azure Machine Learning serviço.
az ml computetarget create Cria um destino de computação usado para treinar o modelo.
az ml experiment list Lista experimentos para seu workspace.
az ml run submit-script Envia o modelo para treinamento.
az ml model register Registra um modelo treinado com seu workspace.
az ml model deploy Implanta o modelo como um serviço Web.
az ml service list Lista os serviços implantados.
az ml service delete Exclui um serviço implantado.
az ml pipeline list Lista Azure Machine Learning pipelines.
az ml computetarget delete Exclui um destino de computação.

Para obter mais informações sobre esses comandos, consulte a referência de extensão da CLI.

Próximas etapas

Saiba como você pode integrar ainda mais o aprendizado de máquina em seus pipelines com a Machine Learning extensão .

Para obter mais exemplos de como usar Azure Pipelines com Azure Machine Learning, consulte os seguintes repos: