Az Azure Pipelines használata az Azure Machine Learning használatával
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure DevOps-folyamatokkal automatizálhatja a gépi tanulási életciklust. Az automatizálható műveletek némelyike a következő:
- Adat-előkészítés (kinyerési, átalakítási, betöltési műveletek)
- Gépi tanulási modellek betanítása igény szerinti felskálázással és vertikális felskálázással
- Gépi tanulási modellek üzembe helyezése nyilvános vagy privát webszolgáltatásként
- Üzembe helyezett gépi tanulási modellek monitorozása (például teljesítmény- vagy adatelsodródás-elemzéshez)
Ez a cikk bemutatja, hogyan hozhat létre olyan Azure Pipelinet, amely gépi tanulási modellt hoz létre és helyez üzembe az Azure Machine Learningben.
Ez az oktatóanyag az Azure Machine Learning Python SDK v2 és az Azure CLI ML v2 bővítményt használja.
Előfeltételek
- Az első lépésekhez végezze el az Erőforrások létrehozása et:
- Munkaterület létrehozása
- Felhőalapú számítási fürt létrehozása a modell betanításához
- Azure Machine Learning-bővítmény az Azure Pipelineshoz. Ez a bővítmény telepíthető a Visual Studio piacteréről a következő címen https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.azureml-v2: .
1. lépés: A kód lekérése
Fork a következő adattár a GitHubon:
https://github.com/azure/azureml-examples
2. lépés: Bejelentkezés az Azure Pipelinesba
Jelentkezzen be az Azure Pipelinesba. A bejelentkezés után a böngésző megtekinti https://dev.azure.com/my-organization-name
és megjeleníti az Azure DevOps-irányítópultot.
A kijelölt szervezeten belül hozzon létre egy projektet. Ha nem rendelkezik projekttel a szervezetében, megjelenik egy Projekt létrehozása az első lépések képernyőre. Ellenkező esetben válassza az Új projekt gombot az irányítópult jobb felső sarkában.
3. lépés: Szolgáltatáskapcsolat létrehozása
Meglévő szolgáltatáskapcsolatot is használhat.
Azure Resource Manager-kapcsolatra van szüksége az Azure Portalon való hitelesítéshez.
Az Azure DevOpsban válassza a Projektbeállítások lehetőséget , és nyissa meg a Szolgáltatáskapcsolatok lapot.
Válassza a Szolgáltatáskapcsolat létrehozása lehetőséget, és válassza az Azure Resource Managert.
Válassza ki az alapértelmezett hitelesítési módszert, a Szolgáltatásnév (automatikus) lehetőséget.
Hozza létre a szolgáltatáskapcsolatot. Adja meg a kívánt hatókörszintet, előfizetést, erőforráscsoportot és kapcsolatnevet.
4. lépés: Folyamat létrehozása
Lépjen a Folyamatok elemre, majd válassza a folyamat létrehozása lehetőséget.
Végezze el a varázsló lépéseit úgy, hogy először a GitHubot választja a forráskód helyeként.
Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.
Amikor megjelenik az adattárak listája, válassza ki az adattárat.
Előfordulhat, hogy a Rendszer átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez. Ha igen, válassza a Jóváhagyás > telepítés lehetőséget.
Válassza ki a Starter-folyamatot. Frissíteni fogja a kezdőfolyamat-sablont.
5. lépés: A YAML-folyamat létrehozása az Azure Machine Learning-feladat elküldéséhez
Törölje a kezdőfolyamatot, és cserélje le a következő YAML-kódra. Ebben a folyamatban a következőt fogja:
- A Python verziófeladatával állítsa be a Python 3.8-at, és telepítse az SDK-követelményeket.
- A Bash-feladattal bash-szkripteket futtathat az Azure Machine Learning SDK-hoz és a parancssori felülethez.
- Azure Machine Learning-feladat elküldése az Azure CLI-feladattal.
Válassza az alábbi lapokat attól függően, hogy Azure Resource Manager-szolgáltatáskapcsolatot vagy általános szolgáltatáskapcsolatot használ. A folyamat YAML-ben cserélje le a változók értékét az erőforrásokra.
- Az Azure Resource Manager szolgáltatáskapcsolat használata
- Általános szolgáltatáskapcsolat használata
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.8
inputs:
versionSpec: '>=3.8'
- 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"
6. lépés: Várakozás az Azure Machine Learning-feladat befejezésére
Az 5. lépésben hozzáadott egy feladatot egy Azure Machine Learning-feladat elküldéséhez. Ebben a lépésben hozzáad egy másik feladatot, amely megvárja az Azure Machine Learning-feladat befejezését.
- Az Azure Resource Manager szolgáltatáskapcsolat használata
- Általános szolgáltatáskapcsolat használata
Ha Azure Resource Manager-szolgáltatáskapcsolatot használ, használhatja a "Machine Learning" bővítményt. Ezt a bővítményt az Azure DevOps-bővítmények piacterén keresheti meg, vagy közvetlenül a bővítményre léphet. Telepítse a "Machine Learning" bővítményt.
Fontos
Ne telepítse véletlenül a Machine Learning (klasszikus) bővítményt; ez egy régebbi bővítmény, amely nem biztosítja ugyanazt a funkciót.
A Folyamat áttekintése ablakban adjon hozzá egy kiszolgálói feladatot. A feladat lépései között válassza az Asszisztens megjelenítése lehetőséget, és keresse meg az AzureML-t. Válassza ki az AzureML-feladat várakozási feladatát, és adja meg a feladat adatait.
A tevékenység négy bemenettel rendelkezik: Service Connection
, AzureML Workspace Name
Azure Resource Group Name
és AzureML Job Name
. Töltse ki ezeket a bemeneteket. A következő lépésekhez kapott YAML hasonló a következő példához:
Feljegyzés
- Az Azure Machine Learning-feladat várakozási feladata egy kiszolgálói feladaton fut, amely nem használ drága ügynökkészlet-erőforrásokat, és nem igényel további díjakat. A kiszolgálói feladatok (jelezve
pool: server
) ugyanazon a gépen futnak, mint a folyamat. További információ: Kiszolgálói feladatok. - Egy Azure Machine Learning-feladat várakozási feladata csak egy feladaton várakozhat. Minden várni kívánt feladathoz külön feladatot kell beállítania.
- Az Azure Machine Learning-feladat várakozási feladata legfeljebb 2 napig várakozhat. Ez az Azure DevOps Pipelines által meghatározott korlát.
- job: WaitForAzureMLJobCompletion
displayName: Wait for AzureML Job Completion
pool: server
timeoutInMinutes: 0
dependsOn: SubmitAzureMLJob
variables:
# We are saving the name of azureMl job submitted in previous step to a variable and it will be used as an inut 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)
7. lépés: Folyamat elküldése és a folyamatfuttatás ellenőrzése
Válassza a Mentés és futtatás lehetőséget. A folyamat megvárja, amíg az Azure Machine Learning-feladat befejeződik, és a feladat az Azure Machine Learning-feladattal azonos állapotban WaitForJobCompletion
fejeződik be. Például: Azure Machine Learning-feladat Succeeded
== Azure DevOps-feladat az Azure Machine Learning-feladat Failed
alatt WaitForJobCompletion
Succeeded
== Azure DevOps-feladat az Azure Machine Learning-feladat Failed
Cancelled
alatt WaitForJobCompletion
== Azure DevOps-feladat a feladat alatt WaitForJobCompletion
Cancelled
Az erőforrások eltávolítása
Ha nem használja tovább a folyamatot, törölje az Azure DevOps-projektet. Az Azure Portalon törölje az erőforráscsoportot és az Azure Machine Learning-példányt.