Azure Pipelines
Jedną z opcji automatyzacji przepływów pracy jest użycie usługi Azure Pipelines, która jest częścią usług Azure DevOps Services. Usługa Azure Pipelines umożliwia automatyczne kompilowanie, testowanie i wdrażanie kodu.
W ramach projektu uczenia maszynowego możesz użyć usługi Azure Pipelines do utworzenia dowolnych zasobów obszaru roboczego usługi Azure Machine Learning, takich jak sam obszar roboczy, zasoby danych, klastry obliczeniowe lub zadania do uruchamiania potoków usługi Azure Machine Learning.
Uwaga
Aby używać usługi Azure Pipelines z potokami usługi Azure Machine Learning, musisz połączyć usługę Azure DevOps z obszarem roboczym usługi Azure Machine Learning za pośrednictwem połączenia z usługą.
Dowiesz się, jak używać usługi Azure Pipelines do uruchamiania potoku usługi Azure Machine Learning.
Tworzenie potoku platformy Azure
Usługa Azure Pipelines pomaga zautomatyzować pracę, wykonując kroki za każdym razem, gdy wystąpi wyzwalacz. Aby zautomatyzować obciążenia uczenia maszynowego przy użyciu usługi Azure Pipelines, uruchomisz potok usługi Azure Machine Learning za pomocą usługi Azure Pipelines.
- Wyzwalanie potoku platformy Azure. Często ze zmianą w repozytorium (zatwierdzenie lub żądanie ściągnięcia).
- Uruchom usługę Azure Pipeline — grupę zadań, które składają się z kroków.
- Krok inicjuje potok usługi Azure Machine Learning.
- Potok usługi Azure Machine Learning uruchamia skrypty lub składniki usługi Azure Machine Learning.
- Skrypt lub składnik reprezentuje zadanie uczenia maszynowego.
Aby utworzyć usługę Azure Pipeline, zdefiniuj kroki, które chcesz uwzględnić w pliku YAML. W pliku YAML potoku platformy Azure dołączysz następujące elementy:
- Wyzwalacz: jakie zdarzenie inicjuje potok.
- Etap: grupa zadań często dopasowywana do różnych środowisk programistycznych (tworzenie/testowanie/prod).
- Zadanie: zestaw kroków uruchamianych na agencie. W przypadku obciążeń uczenia maszynowego prawdopodobnie użyjesz agenta systemu Ubuntu hostowanego przez firmę Microsoft.
-
Krok: skrypt lub zadanie, które chcesz wykonać. Na przykład polecenie interfejsu wiersza polecenia, które inicjuje potok usługi Azure Machine Learning (
az ml job create).
Napiwek
Dowiedz się więcej o kluczowych pojęciach używanych w usłudze Azure Pipelines.
Aby uruchomić potok usługi Azure Machine Learning po wprowadzeniu dowolnej zmiany w repozytorium platformy Azure, możesz użyć pliku YAML w następujący sposób:
trigger:
- main
stages:
- stage: deployDev
displayName: 'Deploy to development environment'
jobs:
- deployment: publishPipeline
displayName: 'Model Training'
pool:
vmImage: 'Ubuntu-18.04'
environment: dev
strategy:
runOnce:
deploy:
steps:
- template: aml-steps.yml
parameters:
serviceconnectionname: 'spn-aml-workspace-dev'
Zadanie w potoku używa elementu aml-steps.yml , aby wyświetlić listę kroków, które należy wykonać. Aby uruchomić potok usługi Azure Machine Learning zdefiniowany w programie pipeline-job.yml , możesz użyć interfejsu wiersza polecenia (wersja 2). Aby uruchomić potok usługi Azure Machine Learning jako krok w usłudze Azure Pipeline, wykonasz następujące czynności:
- Zainstaluj rozszerzenie usługi Azure Machine Learning dla interfejsu wiersza polecenia.
- Użyj polecenia ,
az ml job createaby uruchomić zadanie potoku w usłudze Azure Machine Learning.
Plik inicjowania aml-steps.yml instalacji i zadania usługi Azure Machine Learning może wyglądać następująco:
parameters:
- name: serviceconnectionname
default: ''
steps:
- checkout: self
- script: az extension add -n ml -y
displayName: 'Install Azure ML CLI v2'
- task: AzureCLI@2
inputs:
azureSubscription: ${{ parameters.serviceconnectionname }}
scriptType: bash
scriptLocation: inlineScript
workingDirectory: $(Build.SourcesDirectory)
inlineScript: |
cd src
az ml job create --file aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws
displayName: 'Run Azure Machine Learning Pipeline'
Jak pokazano w przykładzie, można użyć parametrów w definicjach potoku (na przykład serviceconnectionname), aby pliki YAML były bardziej wielokrotnego użytku dla innych projektów.
Uruchamianie potoku za pomocą usługi Azure DevOps
Po utworzeniu plików YAML i zapisaniu ich w repozytorium platformy Azure możesz skonfigurować usługę Azure DevOps do uruchamiania potoku.
- W usłudze Azure DevOps przejdź do karty Potoki i wybierz pozycję Potoki.
- Utwórz nowy potok.
- Wybierz pozycję Azure Repos Git jako lokalizację kodu.
- Wybierz repozytorium zawierające kod.
- Wybierz istniejący plik YAML dla Azure Pipelines.
- Wybierz ścieżkę wskazującą plik YAML utworzony dla usługi Azure Pipeline.
- Po przejrzeniu potoku możesz Zapisz i uruchom.
Potok jest wyzwalany przez zatwierdzenie w gałęzi głównej. Po skonfigurowaniu potoku Azure Pipelines zatwierdzi zmianę w gałęzi głównej, co spowoduje, że potok uruchomi się po raz pierwszy. W dowolnym momencie po skonfigurowaniu potok można wyzwolić, wypychając zatwierdzenia do repozytorium z programu Visual Studio Code lub usługi Azure Repos.
Po wybraniu zadania można wyświetlić jego proces. Każdy krok zadania jest odzwierciedlany w okienku nawigacji po lewej stronie. Przegląd pokaże, które kroki zostały wykonane pomyślnie i które zakończyły się niepowodzeniem. Wszelkie potencjalne komunikaty o błędach będą wyświetlane w interfejsie wiersza polecenia po wybraniu tego kroku. Przeglądając dane wyjściowe, możesz rozwiązać problem z błędem.
Gdy zadanie wyzwoli uruchomienie potoku usługi Azure Machine Learning, będzie również można przejrzeć przebieg potoku w obszarze roboczym usługi Azure Machine Learning, aby wyświetlić wszelkie metryki lub błędy, które mogą Cię zainteresować.