Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
K automatizaci životního cyklu strojového učení můžete použít kanál Azure DevOps. Mezi operace, které můžete automatizovat, patří:
- Příprava dat (extrakce, transformace, operace načítání)
- Trénování modelů strojového učení se škálováním na vyžádání a vertikálním navýšením kapacity
- Nasazení modelů strojového učení jako veřejných nebo privátních webových služeb
- Monitorování nasazených modelů strojového učení (například pro analýzu výkonu nebo posunu dat)
Tento článek popisuje, jak vytvořit kanál Azure, který sestaví model strojového učení a nasadí ho do Azure Machine Learning.
Tento kurz používá Azure Machine Learning Python SDK v2 a rozšíření Azure CLI ML v2.
Požadavky
- Dokončete kurz Vytvoření prostředků, abyste mohli začít :
- Vytvořte pracovní prostor.
- Vytvořte cloudový výpočetní cluster, který se použije k trénování modelu.
- Python 3.10 nebo novější pro místní spouštění skriptů sady Azure ML SDK v2.
- Nainstalujte rozšíření Azure Machine Learning pro Azure Pipelines. Toto rozšíření můžete nainstalovat z marketplace Visual Studio.
Krok 1: Získání kódu
Vytvořte fork následujícího úložiště na GitHubu:
https://github.com/azure/azureml-examples
Krok 2: Vytvoření projektu
Přihlaste se k Azure. Vyhledejte a vyberte Azure DevOps organizace. Vyberte Zobrazit mé organizace. Vyberte organizaci, kterou chcete použít.
Ve vybrané organizaci vytvořte projekt. Pokud ve vaší organizaci nemáte žádné projekty, zobrazí se obrazovka Vytvořit projekt, který vám umožní začít . V opačném případě vyberte tlačítko Nový Project v pravém horním rohu řídicího panelu.
Krok 3: Vytvoření připojení služby
Můžete použít existující připojení služby.
K ověření pomocí portálu Azure potřebujete připojení Azure Resource Manager.
V Azure DevOps vyberte Nastavení projektu a pak vyberte Připojení služeb.
Vyberte Vytvořit připojení ke službě, vyberte Azure Resource Manager a pak vyberte Další.
Použijte výchozí hodnoty pro typ identity a přihlašovací údaje.
Vytvořte připojení ke službě. Nastavte upřednostňovanou úroveň oboru, předplatné, skupinu prostředků a název připojení.
Krok 4: Vytvoření kanálu
Přejděte na Kanály a pak vyberte Vytvořit kanál.
Jako umístění zdrojového kódu vyberte GitHub.
Můžete být přesměrováni na GitHub pro přihlášení. Pokud jste, zadejte svoje GitHub přihlašovací údaje.
Až se zobrazí seznam úložišť, vyberte úložiště.
Možná budete přesměrováni na GitHub pro instalaci aplikace Azure Pipelines. Pokud jste, vyberte Schválit a nainstalovat.
Vyberte počáteční kanál. Aktualizujete startovací šablonu pipeline.
Krok 5: Vytvoření kanálu YAML pro odeslání úlohy Azure Machine Learning
Odstraňte počáteční kanál a nahraďte ho následujícím kódem YAML. V tomto potrubí vy:
- Pomocí úlohy Python verze nastavte Python 3.10 a nainstalujte požadavky sady SDK.
- Pomocí úlohy Bash spusťte skripty Bash pro sadu Azure Machine Learning SDK a rozhraní příkazového řádku.
- Pomocí Azure CLI úkolu odešlete Azure Machine Learning úlohu.
V závislosti na tom, jestli používáte servisní připojení Azure Resource Manager nebo obecné servisní připojení, vyberte jednu z následujících karet. V kanálu YAML nahraďte hodnoty proměnných hodnotami, které odpovídají vašim prostředkům.
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"
Krok 6: Počkejte na dokončení úlohy Azure Machine Learning
V kroku 5 jste přidali úlohu pro odeslání Azure Machine Learning úlohy. V tomto kroku přidáte další úlohu, která čeká na dokončení Azure Machine Learning úlohy.
Důležité
Oba mechanismy čekání v tomto kroku (úloha AzureMLJobWaitTask@1 na kartě Azure Resource Manager a registrace webhooku InvokeRESTAPI@1 na kartě Obecné) závisí na odeslání oznámení RunTerminated ze strany Azure Machine Learning zpět do Azure DevOps po dokončení daného úkolu. Tato cesta k oznámení se aktuálně zkoumá a nemusí být dokončena podle očekávání, což způsobí vypršení časového limitu úlohy serveru WaitFor* místo toho, aby odrážela stav úlohy Azure Machine Learning. Pokud narazíte na toto chování, dotazujte stav úlohy z agentové úlohy pomocí az ml job show --query status dokud se nevrátí terminální stav (Completed, Failed nebo Canceled) a ukončete úlohu s odpovídajícím stavem.
Pokud používáte připojení služby Resource Manager, můžete použít rozšíření Machine Learning. Toto rozšíření můžete vyhledat na tržišti rozšíření Azure DevOps nebo přejít přímo na stránku rozšíření. Nainstalujte rozšíření Machine Learning.
Důležité
Nenainstalujte rozšíření Machine Learning (classic). Jedná se o starší rozšíření, které neposkytuje stejné funkce.
V okně přehledu Pipeline přidejte úlohu serveru. V části úlohy vyberte Zobrazit asistenta a vyhledejte AzureML. Vyberte úlohu Čekání úlohy AzureML a zadejte informace pro úlohu.
Úloha má čtyři vstupy: Service Connection, Azure Resource Group Name, AzureML Workspace Name a AzureML Job Name. Zadejte tyto vstupy. Výsledný YAML pro tyto kroky je podobný následujícímu příkladu:
Poznámka
- Úloha čekání úlohy Azure Machine Learning běží na úloze serveru, která nepoužívá nákladné prostředky fondu agentů a nevyžaduje žádné další poplatky. Úlohy serveru (označené
pool: server) běží na stejném počítači jako váš kanál. Další informace naleznete v tématu Úlohy serveru. - Jeden Azure Machine Learning úkol čekání úlohy může čekat pouze na jednu úlohu. Pro každou úlohu, na kterou chcete čekat, musíte nastavit samostatný úkol.
- Úloha čekání na Azure Machine Learning může počkat maximálně dva dny. Tento limit je pevný limit nastavený pipelinami Azure DevOps.
- 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)
Krok 7: Odeslání kanálu a ověření spuštění kanálu
Vyberte Uložit a spusťte. Když mechanismus čekání v kroku 6 funguje správně, pipeline čeká na dokončení úlohy Azure Machine Learning a ukončí proces uvedený v WaitForJobCompletion se stejným stavem, jaký má úloha Azure Machine Learning. Příklad:
Azure Machine Learning práce
Succeeded== Azure DevOps úkol v rámciWaitForJobCompletionpráceSucceededAzure Machine Learning úloha
Failed== Azure DevOps úloha v rámci úlohyWaitForJobCompletionFailedAzure Machine Learning úloha
Cancelled== Azure DevOps úloha vWaitForJobCompletionúlohaCancelled
Poznámka
Vzhledem k problému, který byl vyvolán v kroku 6, může úloha WaitFor* vypršet časový limit spíše než odrážet stav úlohy Azure Machine Learning. Pomocí studio Azure Machine Learning potvrďte skutečný výsledek úlohy, dokud se neobnoví cesta k oznámení.
Tip
Úplnou úlohu Azure Machine Learning můžete zobrazit v studio Azure Machine Learning.
Vyčištění prostředků
Pokud nechcete pokračovat v používání pipeline, odstraňte projekt Azure DevOps. Na portálu Azure odstraňte skupinu prostředků a instanci Azure Machine Learning.