Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Egy Azure DevOps folyamat használatával 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 vízszintes és vertikális felskálázással.
- Gépi tanulási modellek üzembe helyezése nyilvános vagy privát webszolgáltatásként.
- Az üzembe helyezett gépi tanulási modellek monitorozása (például teljesítmény- vagy adateltolódás-elemzéshez).
Ez a cikk azt ismerteti, hogyan hozhat létre egy Azure folyamatot, amely gépi tanulási modellt hoz létre és helyez üzembe a Azure Machine Learning.
Ez az oktatóanyag a Azure Machine Learning Python SDK v2-t és a Azure CLI ML 2-es bővítményt használja.
Előfeltételek
- Teljesítse az első lépésként a „Erőforrások létrehozása” oktatóanyagot a kezdéshez:
- Munkaterület létrehozása.
- Hozzon létre egy felhőalapú számítási fürtöt a modell betanításához.
- Python Azure ML SDK v2-szkriptek helyi futtatásához telepített 3.10-es vagy újabb verzió.
- Telepítse a Azure Pipelines Azure Machine Learning bővítményét. Ezt a bővítményt a Visual Studio piactérről telepítheti.
1. lépés: A kód lekérése
Forkolja a következő adattárat a(z) GitHub-ról:
https://github.com/azure/azureml-examples
2. lépés: Projekt létrehozása
Jelentkezzen be az Azure-ba. Keresse meg és válassza ki a Azure DevOps szervezeteket. Válassza a Saját szervezetek megtekintése lehetőséget. Válassza ki a használni kívánt szervezetet.
A kijelölt szervezeten belül hozzon létre egy projektet. Ha nincsenek projektjei a szervezetében, látni fog egy Projekt létrehozása a kezdéshez képernyőt. Ellenkező esetben válassza a New Project 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.
A Azure portálon való hitelesítéshez Azure Resource Manager kapcsolatra van szükség.
A Azure DevOps válassza a Project beállítások, majd a Szolgáltatás-kapcsolatok lehetőséget.
Válassza a A szolgáltatáskapcsolat létrehozása, a Azure Resource Manager, majd a Next lehetőséget.
Használja az identitástípus és a hitelesítő adatok alapértelmezett értékeit.
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.
A forráskód helyeként válassza a GitHub lehetőséget.
Előfordulhat, hogy átirányítanak a GitHubhoz való bejelentkezéshez. Ha így van, 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ít a GitHubra az Azure Pipelines alkalmazás telepítéséhez. Ha így van, válassza a Jóváhagyás > telepítés lehetőséget.
Válassza ki az Indító csővezetéket. Frissíti a kezdőcsővezeték-sablont.
5. lépés: YAML-folyamat létrehozása a 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 kell elvégzned:
- A Python verziófeladat használatával állítsa be a Python 3.10-et, és telepítse az SDK-követelményeket.
- A Bash-feladattal bash-szkripteket futtathat a Azure Machine Learning SDK-hoz és parancssori felülethez.
- A Azure CLI feladat használatával küldjön be egy Azure Machine Learning feladatot.
Válassza az alábbi lapok egyikét 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ékeit az erőforrásoknak megfelelő értékekre.
- 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.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"
6. lépés: Várja meg, amíg a Azure Machine Learning feladat befejeződik
Az 5. lépésben hozzáadott egy feladatot egy Azure Machine Learning feladat elküldéséhez. Ebben a lépésben egy másik feladatot ad hozzá, amely a Azure Machine Learning feladat befejezésére vár.
Fontos
A lépés mindkét várakozási mechanizmusa (a Azure Resource Manager lapon található AzureMLJobWaitTask@1 feladat és az Általános lapon található InvokeRESTAPI@1 webhook-regisztráció) attól függ, Azure Machine Learning RunTerminated értesítést küld-e vissza Azure DevOps a feladat befejezésekor. Ez az értesítési útvonal jelenleg vizsgálat alatt áll, és előfordulhat, hogy nem a várt módon fejeződik be, ezért a WaitFor* kiszolgálói feladat időtúllépést okoz ahelyett, hogy a Azure Machine Learning feladat állapotát tükrözné. Ha ezt a viselkedést tapasztalja, kérdezze le a feladat állapotát egy ügynökfeladatból az ml job show --query status által, amíg egy terminálállapotot (Completed, Failed vagy Canceled) nem kap, majd lépjen ki a feladatból a kapott állapotnak megfelelően.
- Az Azure Resource Manager szolgáltatáskapcsolat használata
- Általános szolgáltatáskapcsolat használata
Ha Resource Manager szolgáltatáskapcsolatot használ, használhatja a Machine Learning bővítményt. Ezt a bővítményt a Marketplace Azure DevOps bővítményeiben vagy közvetlenül a extension lapra kereshet. Telepítse a Machine Learning bővítményt.
Fontos
Ne telepítse 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, majd keresse meg az AzureML-t. Válassza ki az AzureML-feladat várakozási feladatát, majd adja meg a feladat adatait.
A tevékenység négy bemenettel rendelkezik: Service Connection, Azure Resource Group Name, AzureML Workspace Name és AzureML Job Name. Adja meg ezeket a bemeneteket. A következő lépésekhez kapott YAML hasonló a következő példához:
Megjegyzés
- A 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 pipeline. További információ: Kiszolgálói feladatok. - Egy Azure Machine Learning feladat várakozási művelete csak egy műveletre várhat. Minden olyan feladathoz külön feladatot kell beállítania, amelyre várni szeretne.
- A Azure Machine Learning feladat várakozási feladata legfeljebb két napig várakozhat. Ez a korlát egy szigorú határ, amelyet az Azure DevOps csővezetékek állítanak be.
- 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)
7. lépés: A folyamat elküldése és a folyamat futtatásának ellenőrzése
Válassza a Mentés és futtatás lehetőséget. Amikor a 6. lépés várakozási mechanizmusa a tervezett módon működik, a folyamat megvárja, amíg a Azure Machine Learning feladat befejeződik, és a feladatot a WaitForJobCompletion alatt fejezi be, ugyanazzal az állapottal, mint a Azure Machine Learning feladat. Például:
Azure Machine Learning feladat
Succeeded== Azure DevOps munkafolyamatWaitForJobCompletionfeladatSucceededAzure Machine Learning feladat
Failed== Azure DevOps munkafolyamatWaitForJobCompletionfeladatFailedAzure Machine Learning feladat
Cancelled== Azure DevOps munkafolyamatWaitForJobCompletionfeladatCancelled
Megjegyzés
A 6. lépésben feltárt probléma miatt előfordulhat, hogy a WaitFor* feladat időtúllépést tapasztal ahelyett, hogy az Azure Machine Learning feladat állapotát tükrözné. A Azure Machine Learning stúdió használatával erősítse meg a feladat tényleges eredményét az értesítési útvonal visszaállításáig.
Tipp
A teljes Azure Machine Learning feladatot a Azure Machine Learning stúdió webhelyen tekintheti meg.
Erőforrások törlése
Ha nem tervezi folytatni a folyamat használatát, törölje a Azure DevOps projektet. Az Azure portálon törölje az erőforráscsoportot és az Azure Machine Learning példányt.