GitHub-Aktionen

Abgeschlossen

Wenn Sie Workflows mit GitHub automatisieren möchten, verwenden Sie GitHub-Aktionen.

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-Aktionen mit Azure Machine Learning-Pipelines zu verwenden, müssen Sie Ihrem GitHub-Repository erlauben, über eine sichere Verbindung auf Ihren Azure Machine Learning-Arbeitsbereich zuzugreifen.

Sie erfahren, wie Sie GitHub Actions verwenden, um eine Azure Machine Learning-Pipeline auszuführen.

Erstellen einer GitHub-Aktion

Diagramm der Hierarchie von 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 eine oder mehrere Schritte.
  4. Führen Sie als Schritt eine Azure Machine Learning-Pipeline aus.
  5. Die Azure Machine Learning-Pipeline besteht aus Skripts oder Azure Machine Learning-Komponenten.

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: So möchten Sie den Workflow auslösen.
  • Auftrag: Eine Gruppe von Schritten, die Sie auf einem Läufer 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 der Übersicht über GitHub-Aktionen.

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 den Workflow manuell im Reiter Aktionen ausführen.

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 des erfolgreich ausgeführten Workflows.

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.