Azure Pipelines

Concluído

Uma opção para automatizar fluxos de trabalho é usar o Azure Pipelines, que faz parte dos Serviços de DevOps do Azure. Com o Azure Pipelines, você pode criar, testar e implantar seu código automaticamente.

Dentro de um projeto de aprendizado de máquina, você pode usar os Pipelines do Azure para criar qualquer ativo de espaço de trabalho do Azure Machine Learning, como o próprio espaço de trabalho, ativos de dados, clusters de computação ou trabalhos para executar pipelines do Azure Machine Learning.

Nota

Para usar os Pipelines do Azure com os pipelines do Azure Machine Learning, você precisa conectar o Azure DevOps ao seu espaço de trabalho do Azure Machine Learning por meio de uma conexão de serviço.

Você aprenderá como usar o Azure Pipelines para executar um pipeline do Azure Machine Learning.

Criar um Pipeline do Azure

O Azure Pipelines ajuda você a automatizar seu trabalho executando etapas sempre que ocorre um gatilho. Para usar o Azure Pipelines para automatizar cargas de trabalho de aprendizado de máquina, você acionará um pipeline do Azure Machine Learning com o Azure Pipelines.

Diagrama da hierarquia de pipelines.

  1. Acione um Pipeline do Azure. Geralmente com uma alteração no repo (commit ou pull request).
  2. Execute o Pipeline do Azure, um grupo de trabalhos que consiste em etapas.
  3. Uma etapa inicia um pipeline do Azure Machine Learning.
  4. Um pipeline do Azure Machine Learning executa scripts ou componentes do Azure Machine Learning.
  5. Um script ou componente representa uma tarefa de aprendizado de máquina.

Para criar o Pipeline do Azure, defina as etapas que deseja incluir em um arquivo YAML. No arquivo YAML do Pipeline do Azure, você incluirá:

  • Gatilho: qual evento inicia o pipeline.
  • Estágio: Um grupo de trabalhos comumente alinhados com diferentes ambientes de desenvolvimento (dev/test/prod).
  • Trabalho: um conjunto de etapas, que são executadas em um agente. Para cargas de trabalho de aprendizado de máquina, você provavelmente usará um agente do Ubuntu hospedado pela Microsoft.
  • Etapa: Um script ou tarefa que você deseja executar. Por exemplo, um comando CLI, que inicia um pipeline do Azure Machine Learning (az ml job create).

Para executar um pipeline do Azure Machine Learning quando qualquer alteração no Azure Repo é feita, você pode usar um arquivo YAML como este:

trigger: 
- main

stages:
- stage: deployDev
  displayName: 'Deploy to development environment'
  jobs:
    - deployment: publishPipeline
      displayName: 'Model Training'
      pool:
        vmImage: 'Ubuntu-18.04'
      environment: dev
      strategy:
       runOnce:
         deploy:
          steps:
          - template: aml-steps.yml
            parameters:
              serviceconnectionname: 'spn-aml-workspace-dev'

O trabalho no pipeline usa o aml-steps.yml para listar as etapas que devem ser executadas. Para executar um pipeline do Azure Machine Learning definido em pipeline-job.yml , você pode usar a CLI (v2). Para executar o pipeline do Azure Machine Learning como uma etapa no Pipeline do Azure, você:

  1. Instale a extensão do Azure Machine Learning para a CLI.
  2. Use o az ml job create comando para executar o trabalho de pipeline no Aprendizado de Máquina do Azure.

O aml-steps.yml arquivo para a instalação e o início do trabalho do Azure Machine Learning pode ter esta aparência:

parameters:
- name: serviceconnectionname
  default: ''

steps:
- checkout: self

- script: az extension add -n ml -y
  displayName: 'Install Azure ML CLI v2'

- task: AzureCLI@2
  inputs:
    azureSubscription: ${{ parameters.serviceconnectionname }}
    scriptType: bash
    scriptLocation: inlineScript
    workingDirectory: $(Build.SourcesDirectory)
    inlineScript: |
      cd src
      az ml job create --file aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws
  displayName: 'Run Azure Machine Learning Pipeline'

Como mostrado no exemplo, você pode usar parâmetros em todas as definições de pipeline (como serviceconnectionname) para tornar os arquivos YAML mais reutilizáveis para outros projetos.

Executar um pipeline com o Azure DevOps

Depois de criar os arquivos YAML e armazená-los em seu Azure Repo, você pode configurar o Azure DevOps para executar o pipeline.

Captura de tela da configuração do pipeline no Azure DevOps.

  1. No Azure DevOps, navegue até a guia Pipelines e selecione Pipelines.
  2. Crie um novo pipeline.
  3. Selecione Azure Repos Git como o local do seu código.
  4. Escolha o repositório que contém seu código.
  5. Escolha Arquivo YAML Pipelines do Azure Existente.
  6. Escolha o caminho que aponta para o arquivo YAML que você criou para o Pipeline do Azure.
  7. Depois de revisar o pipeline, você pode Salvar e executar.

O pipeline é acionado por uma confirmação para a ramificação principal . Quando você configura o pipeline, o Azure Pipelines confirma uma alteração na ramificação principal, o que acionará o pipeline para ser executado pela primeira vez. A qualquer momento após a configuração, você pode acionar o pipeline enviando confirmações para o repositório do Visual Studio Code ou Azure Repos.

Captura de ecrã do trabalho com falha no Azure Pipelines.

Quando você seleciona um trabalho, você pode visualizar seu processo. Cada etapa de um trabalho é refletida no painel de navegação à esquerda. A visão geral mostrará quais etapas foram executadas com êxito e quais falharam. Quaisquer mensagens de erro potenciais serão exibidas na interface de linha de comando quando você selecionar essa etapa. Ao revisar a saída, você poderá solucionar o erro.

Quando uma tarefa aciona um pipeline do Azure Machine Learning para ser executado, você também poderá revisar o pipeline executado no espaço de trabalho do Azure Machine Learning para exibir quaisquer métricas ou erros que possam ser do seu interesse.