Azure Pipelines
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.
- Acione um Pipeline do Azure. Geralmente com uma alteração no repo (commit ou pull request).
- Execute o Pipeline do Azure, um grupo de trabalhos que consiste em etapas.
- Uma etapa inicia um pipeline do Azure Machine Learning.
- Um pipeline do Azure Machine Learning executa scripts ou componentes do Azure Machine Learning.
- 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
).
Gorjeta
Saiba mais sobre os principais conceitos usados no Azure Pipelines.
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ê:
- Instale a extensão do Azure Machine Learning para a CLI.
- 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.
- No Azure DevOps, navegue até a guia Pipelines e selecione Pipelines.
- Crie um novo pipeline.
- Selecione Azure Repos Git como o local do seu código.
- Escolha o repositório que contém seu código.
- Escolha Arquivo YAML Pipelines do Azure Existente.
- Escolha o caminho que aponta para o arquivo YAML que você criou para o Pipeline do Azure.
- 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.
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.