Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Potok usługi Azure DevOps umożliwia zautomatyzowanie cyklu życia uczenia maszynowego. Niektóre operacje, które można zautomatyzować, to:
- Przygotowywanie danych (wyodrębnianie, przekształcanie, operacje ładowania).
- Trenowanie modeli uczenia maszynowego przy użyciu horyzontalnego i wertykalnego skalowania na żądanie.
- Wdrażanie modeli uczenia maszynowego jako publicznych lub prywatnych usług internetowych.
- Monitorowanie wdrożonych modeli uczenia maszynowego (na przykład na potrzeby analizy wydajności lub dryfu danych).
W tym artykule opisano sposób tworzenia potoku Azure, który buduje model uczenia maszynowego i wdraża go w usłudze Azure Machine Learning.
W tym samouczku jest używany zestaw SDK języka Python usługi Azure Machine Learning w wersji 2 i rozszerzenie interfejsu wiersza polecenia platformy Azure ML w wersji 2.
Wymagania wstępne
- Ukończ samouczek Tworzenie zasobów na początek, aby:
- Tworzenie obszaru roboczego
- Utwórz klaster obliczeniowy oparty na chmurze do użycia na potrzeby trenowania modelu.
- Środowisko Python w wersji 3.10 lub nowszej zainstalowane na potrzeby lokalnego uruchamiania skryptów zestawu Azure ML SDK w wersji 2.
- Zainstaluj rozszerzenie usługi Azure Machine Learning dla usługi Azure Pipelines. To rozszerzenie można zainstalować z witryny Marketplace programu Visual Studio.
Krok 1. Pobieranie kodu
Sforkuj następujące repozytorium z GitHub:
https://github.com/azure/azureml-examples
Krok 2. Tworzenie projektu
Zaloguj się do Azure. Wyszukaj i wybierz organizacje usługi Azure DevOps. Wybierz pozycję Wyświetl moje organizacje. Wybierz organizację, której chcesz użyć.
W wybranej organizacji utwórz projekt. Jeśli nie masz żadnych projektów w organizacji, zobaczysz ekran Tworzenie projektu, aby rozpocząć pracę . W przeciwnym razie wybierz przycisk Nowy projekt w prawym górnym rogu pulpitu nawigacyjnego.
Krok 3. Tworzenie połączenia z usługą
Możesz użyć istniejącego połączenia usługi.
Do uwierzytelniania w portalu Azure potrzebne jest połączenie Azure Resource Manager.
W usłudze Azure DevOps wybierz pozycję Ustawienia projektu, a następnie wybierz pozycję Połączenia usługi.
Wybierz pozycję Utwórz połączenie z usługą, wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.
Użyj wartości domyślnych dla typu tożsamości i poświadczeń.
Utwórz połączenie usługi. Ustaw preferowany poziom zakresu, subskrypcję, grupę zasobów i nazwę połączenia.
Krok 4. Tworzenie potoku
Przejdź do obszaru Potoki, a następnie wybierz pozycję Utwórz potok.
Wybierz pozycję GitHub jako lokalizację kodu źródłowego.
Być może nastąpi przekierowanie do usługi GitHub w celu zalogowania się. Jeśli tak, wprowadź swoje dane logowania do GitHub.
Po wyświetleniu listy repozytoriów wybierz repozytorium.
Możesz zostać przekierowany do usługi GitHub, aby zainstalować aplikację Azure Pipelines. Jeśli tak, wybierz pozycję Zatwierdź i zainstaluj.
Wybierz potok Starter. Zaktualizujesz szablon potoku początkowego.
Krok 5: Utwórz pipeline YAML do przesłania zadania w Azure Machine Learning
Usuń potok startowy i zastąp go następującym kodem YAML. W tym potoku wykonasz następujące działania:
- Użyj zadania wersji języka Python, aby skonfigurować środowisko Python 3.10 i zainstalować wymagania dotyczące zestawu SDK.
- Użyj zadania powłoki Bash, aby uruchomić skrypty powłoki bash dla zestawu AZURE Machine Learning SDK i interfejsu wiersza polecenia.
- Użyj zadania interfejsu wiersza polecenia platformy Azure, aby przesłać zadanie usługi Azure Machine Learning.
Wybierz jedną z poniższych kart, w zależności od tego, czy używasz połączenia usługi Azure Resource Manager, czy ogólnego połączenia z usługą. W potoku YAML zastąp wartości zmiennych wartościami odpowiadającymi zasobom.
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. Oczekiwanie na ukończenie zadania usługi Azure Machine Learning
W kroku 5 dodano zadanie do przesyłania zadania usługi Azure Machine Learning. W tym kroku dodasz kolejne zadanie, które czeka na ukończenie zadania usługi Azure Machine Learning.
Jeśli używasz połączenia usługi Resource Manager, możesz użyć rozszerzenia Machine Learning. Możesz wyszukać to rozszerzenie w witrynie Marketplace rozszerzeń usługi Azure DevOps lub przejść bezpośrednio do strony rozszerzenia. Zainstaluj rozszerzenie usługi Machine Learning.
Ważne
Nie instaluj rozszerzenia usługi Machine Learning (wersja klasyczna). Jest to starsze rozszerzenie, które nie zapewnia tej samej funkcjonalności.
W oknie Przegląd potoku dodaj zadanie serwera. W części kroków zadania wybierz pozycję Pokaż asystenta, a następnie wyszukaj pozycję AzureML. Wybierz zadanie AzureML Job Wait, a następnie podaj informacje dotyczące zadania.
Zadanie ma cztery dane wejściowe: Service Connection, , Azure Resource Group NameAzureML Workspace Namei AzureML Job Name. Podaj te dane wejściowe. Wynikowy kod YAML dla tych kroków jest podobny do następującego przykładu:
Uwaga
- Zadanie oczekiwania usługi Azure Machine Learning uruchamiane jest na serwerze, który nie zużywa kosztownych zasobów puli agentów i nie wymaga dodatkowych opłat. Zadania serwera (wskazywane przez
pool: serverprogram ) są uruchamiane na tej samej maszynie co potok. Aby uzyskać więcej informacji, zobacz Zadania serwera. - Jedno zadanie oczekiwania usługi Azure Machine Learning może czekać tylko na jedno inne zadanie. Musisz skonfigurować oddzielne zadanie dla każdej pracy, na którą chcesz czekać.
- Zadanie oczekiwania w usłudze Azure Machine Learning może poczekać maksymalnie dwa dni. Ten limit jest twardym limitem ustawionym przez potoki usługi 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: Prześlij potok i zweryfikuj jego przebieg potoku
Wybierz pozycję Zapisz i uruchom. Potok przetwarzania będzie oczekiwał na zakończenie zadania Azure Machine Learning i zakończy zadanie pod WaitForJobCompletion z tym samym statusem co zadanie w Azure Machine Learning. Przykład:
Zadanie Succeeded usługi Azure Machine Learning == Zadanie usługi Azure DevOps w ramach WaitForJobCompletion zadania Succeeded
Zadanie Failed usługi Azure Machine Learning == Zadanie usługi Azure DevOps w ramach WaitForJobCompletion zadania Failed
Zadanie Cancelled usługi Azure Machine Learning == Zadanie usługi Azure DevOps w ramach WaitForJobCompletion zadania Cancelled
Napiwek
Pełne zadanie usługi Azure Machine Learning można wyświetlić w usłudze Azure Machine Learning Studio.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal używać potoku, usuń projekt usługi Azure DevOps. W portalu Azure usuń grupę zasobów oraz instancję Azure Machine Learning.