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 egy gépi tanulási modellt hoz létre, és üzembe helyezi azt Azure Machine Learning.
Ez az oktatóanyag Azure Machine Learning Python SDK v2 és Azure CLI ML-bővítményt használ 2.
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.