Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
U kunt een Azure DevOps-pijplijn gebruiken om de levenscyclus van machine learning te automatiseren. Enkele van de bewerkingen die u kunt automatiseren zijn:
- Gegevensvoorbereiding (extraheren, transformeren, laden).
- Machine learning-modellen trainen met on-demand schaalvergroting en schaalverhoging.
- Implementatie van machine learning-modellen als openbare of persoonlijke webservices.
- Geïmplementeerde machine learning-modellen bewaken (bijvoorbeeld voor prestaties of analyse van gegevensdrift).
In dit artikel wordt beschreven hoe u een Azure-pijplijn maakt die een machine learning-model bouwt en implementeert in Azure Machine Learning.
In deze zelfstudie wordt gebruikgemaakt van Azure Machine Learning Python SDK v2 en Azure CLI ML-extensie v2.
Vereisten
- Voltooi de tutorial 'Resources maken om aan de slag te gaan':
- Een werkruimte maken
- Maak een cloud-gebaseerd rekencluster dat u kunt gebruiken voor het trainen van uw model.
- Python 3.10 of hoger geïnstalleerd voor het lokaal uitvoeren van Azure ML SDK v2-scripts.
- Installeer de Azure Machine Learning-extensie voor Azure Pipelines. U kunt deze extensie installeren vanuit de Visual Studio Marketplace.
Stap 1: De code ophalen
Fork de volgende opslagplaats vanuit GitHub:
https://github.com/azure/azureml-examples
Stap 2: Een project maken
Meld u aan bij Azure. Zoek en selecteer Azure DevOps-organisaties. Selecteer Mijn organisaties weergeven. Selecteer de organisatie die u wilt gebruiken.
Maak binnen uw geselecteerde organisatie een project. Als u geen projecten in uw organisatie hebt, ziet u het scherm Een project maken om aan de slag te gaan . Selecteer anders de knop Nieuw project in de rechterbovenhoek van het dashboard.
Stap 3: Een serviceverbinding maken
U kunt een bestaande serviceverbinding gebruiken.
U hebt een Azure Resource Manager-verbinding nodig om te verifiëren met Azure Portal.
Selecteer in Azure DevOps Project-instellingen en selecteer vervolgens Serviceverbindingen.
Selecteer Serviceverbinding maken, Selecteer Azure Resource Manager en selecteer vervolgens Volgende.
Gebruik de standaardinstellingen voor identiteitstype en referentie.
Maak uw serviceverbinding. Stel het bereikniveau van uw voorkeur, abonnement, resourcegroep en verbindingsnaam in.
Stap 4: Een pijplijn maken
Ga naar Pijplijnen en selecteer Pijplijn maken.
Selecteer GitHub als de locatie van uw broncode.
U wordt mogelijk omgeleid naar GitHub om u aan te melden. Als u dat bent, voert u uw GitHub-referenties in.
Wanneer u de lijst met opslagplaatsen ziet, selecteert u de opslagplaats.
U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als u dat wel bent, selecteert u Goedkeuren en installeren.
Selecteer de Starter-pijplijn. U werkt de sjabloon voor de starterspijplijn bij.
Stap 5: Een YAML-pijplijn maken om de Azure Machine Learning-taak te verzenden
Verwijder de starterspijplijn en vervang deze door de volgende YAML-code. In deze pijplijn gaat u het volgende doen:
- Gebruik de Python-versietaak om Python 3.8 in te stellen en de SDK-vereisten te installeren.
- Gebruik de Bash-taak om bash-scripts uit te voeren voor de Azure Machine Learning SDK en CLI.
- Gebruik de Azure CLI-taak om een Azure Machine Learning-taak te verzenden.
Selecteer een van de volgende tabbladen, afhankelijk van of u een Azure Resource Manager-serviceverbinding of een algemene serviceverbinding gebruikt. Vervang in de YAML-pijplijn de waarden van variabelen door waarden die overeenkomen met uw resources.
name: submit-azure-machine-learning-job
trigger:
- none
variables:
service-connection: 'machine-learning-connection' # replace with your service connection name
resource-group: 'machinelearning-rg' # replace with your resource group name
workspace: 'docs-ws' # replace with your workspace name
jobs:
- job: SubmitAzureMLJob
displayName: Submit AzureML Job
timeoutInMinutes: 300
pool:
vmImage: ubuntu-latest
steps:
- task: UsePythonVersion@0
displayName: Use Python >=3.10
inputs:
versionSpec: '>=3.10'
- bash: |
set -ex
az version
az extension add -n ml
displayName: 'Add AzureML Extension'
- task: AzureCLI@2
name: submit_azureml_job_task
displayName: Submit AzureML Job Task
inputs:
azureSubscription: $(service-connection)
workingDirectory: 'cli/jobs/pipelines-with-components/nyc_taxi_data_regression'
scriptLocation: inlineScript
scriptType: bash
inlineScript: |
# submit component job and get the run name
job_name=$(az ml job create --file single-job-pipeline.yml -g $(resource-group) -w $(workspace) --query name --output tsv)
# set output variable for next task
echo "##vso[task.setvariable variable=JOB_NAME;isOutput=true;]$job_name"
Stap 6: Wacht tot de Azure Machine Learning-taak is voltooid
In stap 5 hebt u een taak toegevoegd om een Azure Machine Learning-taak te verzenden. In deze stap voegt u een andere taak toe die wacht totdat de Azure Machine Learning-taak is voltooid.
Als u een Resource Manager-serviceverbinding gebruikt, kunt u de Machine Learning-extensie gebruiken. U kunt naar deze extensie zoeken in de Marketplace voor Azure DevOps-extensies of rechtstreeks naar de extensiepagina gaan. Installeer de Machine Learning-extensie.
Belangrijk
Installeer de extensie Machine Learning (klassiek) niet. Het is een oudere extensie die niet dezelfde functionaliteit biedt.
Voeg in het venster Pijplijnbeoordeling een servertaak toe. Selecteer in de stappen van de taak assistent weergeven en zoek vervolgens naar AzureML. Selecteer de AzureML Job Wait-taak en geef de informatie voor de taak op.
De taak heeft vier invoerwaarden: Service Connection, Azure Resource Group Name, AzureML Workspace Nameen AzureML Job Name. Geef deze invoer op. De resulterende YAML voor deze stappen is vergelijkbaar met het volgende voorbeeld:
Notitie
- De wachttaak van de Azure Machine Learning-taak wordt uitgevoerd op een servertaak, waarvoor geen dure agentpoolbronnen worden gebruikt en waarvoor geen extra kosten nodig zijn. Servertaken (aangegeven door
pool: server) worden uitgevoerd op dezelfde computer als uw pijplijn. Zie Servertaken voor meer informatie. - Eén Azure Machine Learning-wachttaak kan slechts op één taak wachten. U moet een afzonderlijke taak instellen voor elke taak waarvoor u wilt wachten.
- De wachttaak voor de Azure Machine Learning-taak kan maximaal twee dagen wachten. Deze limiet is een vaste limiet die is ingesteld door Azure DevOps-pijplijnen.
- job: WaitForAzureMLJobCompletion
displayName: Wait for AzureML Job Completion
pool: server
timeoutInMinutes: 0
dependsOn: SubmitAzureMLJob
variables:
# Save the name of the azureMl job submitted in the previous step to a variable. It will be used as an input to the AzureML Job Wait task.
azureml_job_name_from_submit_job: $[ dependencies.SubmitAzureMLJob.outputs['submit_azureml_job_task.JOB_NAME'] ]
steps:
- task: AzureMLJobWaitTask@1
inputs:
serviceConnection: $(service-connection)
resourceGroupName: $(resource-group)
azureMLWorkspaceName: $(workspace)
azureMLJobName: $(azureml_job_name_from_submit_job)
Stap 7: De pijplijn verzenden en de pijplijnuitvoering verifiëren
Selecteer Opslaan en uitvoeren. De pijplijn wacht totdat de Azure Machine Learning-taak is voltooid en beëindigt vervolgens de taak onder WaitForJobCompletion met dezelfde status als de Azure Machine Learning-taak. Voorbeeld:
Azure Machine Learning-taak == Azure DevOps-taak Succeeded onder WaitForJobCompletion taak Succeeded
Azure Machine Learning-taak == Azure DevOps-taak Failed onder WaitForJobCompletion taak Failed
Azure Machine Learning-taak == Azure DevOps-taak Cancelled onder WaitForJobCompletion taak Cancelled
Aanbeveling
U kunt de volledige Azure Machine Learning-taak bekijken in Azure Machine Learning-studio.
Resources opschonen
Als u uw pijplijn niet meer gaat gebruiken, verwijdert u uw Azure DevOps-project. Verwijder uw resourcegroep en Azure Machine Learning-exemplaar in Azure Portal.