GitHub-Aktionen

Abgeschlossen

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

Diagram of the hierarchy of pipelines.

  1. Definieren Sie ein Ereignis, das den Workflow auslöst.
  2. Führen Sie den Workflow aus, der aus Aufträgen besteht.
  3. Ein Auftrag enthält einen oder mehrere Schritte.
  4. Führen Sie als Schritt eine Azure Machine Learning-Pipeline aus.
  5. 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.

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:

  1. Das Repository auschecken, um es für den Runner verfügbar zu machen.
  2. Die Azure Machine Learning-Erweiterung für die CLI installieren.
  3. Sich in Azure mit dem vordefinierten AZURE_CREDENTIALS anmelden.
  4. Zum Ordner „src“ navigieren, der den gesamten Produktionscode enthält.
  5. 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.

Screenshot of GitHub Actions overview.

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.

Screenshot of successfully executed workflow.

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.