GitHub-Aktionen
Wenn Sie Workflows mit GitHub automatisieren möchten, verwenden Sie GitHub Actions.
GitHub wird hauptsächlich zum Hosten von Codeprojekten verwendet. Wenn Sie Ihren Machine Learning-Code in einem GitHub Repository (Repo) hosten, können Sie GitHub Actions erstellen, um Ihren Code automatisch zu erstellen, zu testen und bereitzustellen.
Hinweis
Um GitHub Actions mit Azure Machine Learning-Pipelines zu verwenden, müssen Sie Ihrem GitHub-Repository den Zugriff auf Ihren Azure Machine Learning-Arbeitsbereich über eine sichere Verbindung gestatten.
Sie erfahren, wie Sie GitHub Actions verwenden, um eine Azure Machine Learning-Pipeline auszuführen.
Erstellen einer GitHub-Aktion
- Definieren Sie ein Ereignis, das den Workflow auslöst.
- Führen Sie den Workflow aus, der aus Aufträgen besteht.
- Ein Auftrag enthält einen oder mehrere Schritte.
- Führen Sie als Schritt eine Azure Machine Learning-Pipeline aus.
- Eine Azure Machine Learning-Pipeline führt Skripte oder Azure Machine Learning-Komponenten aus.
Um den Workflow für GitHub Actions zu erstellen, definieren Sie die Schritte, die Sie ausführen möchten in einer YAML-Datei. In die YAML-Datei fügen Sie Folgendes ein:
- Ereignis: Wie möchten Sie den Auftrag auslösen.
- Auftrag: Eine Gruppe von Schritten, die Sie auf einem Runner ausführen möchten. Für Machine Learning-Workloads verwenden Sie wahrscheinlich einen virtuellen Ubuntu Linux-Computer.
- Schritt: Ein Skript oder eine Aktion, die Sie ausführen möchten. Beispielsweise ein CLI-Befehl, der eine Azure Machine Learning-Pipeline (
az ml job create
) initiiert.
Tipp
Erfahren Sie mehr über Kernkonzepte, die in GitHub Actions verwendet werden.
Um eine Azure Machine Learning-Pipeline auszuführen, wenn Änderungen an das Repository weitergeleitet werden, können Sie eine YAML-Datei verwenden, die z. B. so aussieht:
name: Train model
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: check out repo
uses: actions/checkout@v2
- name: install az ml extension
run: az extension add -n ml -y
- name: azure login
uses: azure/login@v1
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: set current directory
run: cd src
- name: run pipeline
run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws
Der Beispielworkflow wird:
- Das Repository auschecken, um es für den Runner verfügbar zu machen.
- Die Azure Machine Learning-Erweiterung für die CLI installieren.
- Sich in Azure mit dem vordefinierten
AZURE_CREDENTIALS
anmelden. - Zum Ordner „
src
“ navigieren, der den gesamten Produktionscode enthält. - Die Azure Machine Learning-Pipeline ausführen.
Einen Workflow mit GitHub Actions ausführen
Angenommen, Sie haben die YAML-Datei erstellt, um den Workflow zu definieren. Sie speichern die YAML-Datei im Verzeichnis „.github/workflows/
“ in Ihrem Repository.
Um den Workflow anzuzeigen, navigieren Sie zur Registerkarte GitHub Aktionen ihres Repositorys.
GitHub übernimmt automatisch alle Workflows, die im Verzeichnis „.github/workflows/
“ gespeichert sind.
Tipp
Wenn Sie workflow_dispatch:
zu ihrer Workflow-YAML-Datei hinzufügen, können Sie die Ausführung des Workflows manuell auf der Registerkarte Aktionen auslösen.
Sie können den Workflow mit den Ereignissen auslösen, die Sie in Ihrer Workflow-YAML-Datei angegeben haben. Im Beispiel löst ein Push an das Repository die Ausführung des Workflows aus. Wenn Sie eine Änderung vornehmen und Ihre Commits an das Repository übertragen (lokal in Visual Studio Code oder direkt in GitHub), wird der Workflow ausgeführt.
Wählen Sie die neueste Ausführung aus, um genauer zu überprüfen, ob alle Schritte erfolgreich ausgeführt wurden oder welche Fehlermeldungen Sie erhalten haben.
Wenn ein Workflow eine Azure Machine Learning-Pipeline auslöst, sollten Sie auch die Pipeline überprüfen, die im Azure Machine Learning-Arbeitsbereich ausgeführt wird, da Fehler in der Azure Machine Learning-Pipeline auftreten können. Alle Fehlermeldungen können im Ausgabeordner des ausgeführten Azure Machine Learning-Pipeline-Experiments angezeigt werden.