Azure-pipelines
Ett alternativ för att automatisera arbetsflöden är att använda Azure Pipelines, som är en del av Azure DevOps Services. Med Azure Pipelines kan du automatiskt skapa, testa och distribuera din kod.
I ett maskininlärningsprojekt kan du använda Azure Pipelines för att skapa resurser för Azure Machine Learning-arbetsytor som själva arbetsytan, datatillgångar, beräkningskluster eller jobb för att köra Azure Machine Learning-pipelines.
Kommentar
Om du vill använda Azure Pipelines med Azure Machine Learning-pipelines måste du ansluta Azure DevOps till din Azure Machine Learning-arbetsyta via en tjänstanslutning.
Du får lära dig hur du använder Azure Pipelines för att köra en Azure Machine Learning-pipeline.
Skapa en Azure Pipeline
Azure Pipelines hjälper dig att automatisera ditt arbete genom att utföra steg när en utlösare inträffar. Om du vill använda Azure Pipelines för att automatisera maskininlärningsarbetsbelastningar utlöser du en Azure Machine Learning-pipeline med Azure Pipelines.
- Utlös en Azure Pipeline. Vanligtvis med en ändring av lagringsplatsen (incheckning eller pull-begäran).
- Kör Azure Pipeline, en grupp med jobb som består av steg.
- Ett steg initierar en Azure Machine Learning-pipeline.
- En Azure Machine Learning-pipeline kör skript eller Azure Machine Learning-komponenter.
- Ett skript eller en komponent representerar en maskininlärningsuppgift.
Om du vill skapa Azure Pipeline definierar du de steg som du vill inkludera i en YAML-fil. I YAML-filen i Azure Pipeline inkluderar du:
- Utlösare: Vilken händelse initierar pipelinen.
- Steg: En grupp med jobb som vanligtvis är anpassade till olika utvecklingsmiljöer (dev/test/prod).
- Jobb: En uppsättning steg som körs på en agent. För maskininlärningsarbetsbelastningar använder du förmodligen en Microsoft-värdbaserad Ubuntu-agent.
- Steg: Ett skript eller en uppgift som du vill köra. Till exempel ett CLI-kommando som initierar en Azure Machine Learning-pipeline (
az ml job create
).
Dricks
Läs mer om viktiga begrepp som används i Azure Pipelines.
Om du vill köra en Azure Machine Learning-pipeline när en ändring av Azure-lagringsplatsen görs kan du använda en YAML-fil som den här:
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'
Jobbet i pipelinen använder aml-steps.yml
för att lista de steg som ska köras. Om du vill köra en Azure Machine Learning-pipeline som har definierats i pipeline-job.yml
kan du använda CLI (v2). Om du vill köra Azure Machine Learning-pipelinen som ett steg i Azure Pipeline gör du följande:
- Installera Azure Machine Learning-tillägget för CLI.
az ml job create
Använd kommandot för att köra pipelinejobbet i Azure Machine Learning.
Filen aml-steps.yml
för installationen och Initieringen av Azure Machine Learning-jobb kan se ut så här:
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'
Som du ser i exemplet kan du använda parametrar i pipelinedefinitionerna (till exempel serviceconnectionname
) för att göra YAML-filerna mer återanvändbara för andra projekt.
Köra en pipeline med Azure DevOps
När du har skapat YAML-filerna och lagrat dem i din Azure-lagringsplats kan du konfigurera Azure DevOps att köra pipelinen.
- I Azure DevOps navigerar du till fliken Pipelines och väljer Pipelines.
- Skapa en ny pipeline.
- Välj Azure Repos Git som plats för din kod.
- Välj den lagringsplats som innehåller koden.
- Välj befintlig YAML-fil för Azure Pipelines .
- Välj den sökväg som pekar på YAML-filen som du skapade för Azure Pipeline.
- När du har granskat pipelinen kan du spara och köra.
Pipelinen utlöses av en incheckning till huvudgrenen . När du konfigurerar pipelinen genomför Azure Pipelines en ändring av huvudgrenen, vilket utlöser att pipelinen körs för första gången. När som helst efter konfigurationen kan du utlösa pipelinen genom att skicka incheckningar till lagringsplatsen från Visual Studio Code eller Azure Repos.
När du väljer på ett jobb kan du visa dess process. Varje steg i ett jobb visas i navigeringsfönstret till vänster. Översikten visar vilka steg som kördes och vilka som misslyckades. Eventuella felmeddelanden visas i kommandoradsgränssnittet när du väljer det steget. Genom att granska utdata kan du felsöka felet.
När en uppgift utlöser en Azure Machine Learning-pipeline som ska köras kan du också granska pipelinekörningen på Azure Machine Learning-arbetsytan för att visa mått eller fel som kan vara av intresse för dig.