Megosztás a következőn keresztül:


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

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.

  1. Az Azure DevOpsban válassza a Projektbeállítások lehetőséget , és nyissa meg a Szolgáltatáskapcsolatok lapot.

  2. Válassza a Szolgáltatáskapcsolat létrehozása lehetőséget, és válassza az Azure Resource Managert.

  3. Válassza ki az alapértelmezett hitelesítési módszert, a Szolgáltatásnév (automatikus) lehetőséget.

  4. Hozza létre a szolgáltatáskapcsolatot. Adja meg a kívánt hatókörszintet, előfizetést, erőforráscsoportot és kapcsolatnevet.

    Az ARM-szolgáltatáskapcsolat képernyőképe.

4. lépés: Folyamat létrehozása

  1. Lépjen a Folyamatok elemre, majd válassza a folyamat létrehozása lehetőséget.

  2. Végezze el a varázsló lépéseit úgy, hogy először a GitHubot választja a forráskód helyeként.

  3. Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.

  4. Amikor megjelenik az adattárak listája, válassza ki az adattárat.

  5. 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.

  6. 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.

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.

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 WaitForJobCompletionCancelled

Tipp.

A teljes Azure Machine Learning-feladatot az Azure Machine Learning Studióban tekintheti meg.

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.