Verwenden von GitHub Actions für Modelltraining
GitHub Actions ist eine Plattform, auf der Sie Aufgaben automatisieren können, die von Ereignissen in einem GitHub-Repository ausgelöst werden. Ein GitHub Actions-Workflow besteht aus Aufträgen. Ein Auftrag fasst mehrere Schritte in einer Gruppe zusammen, die Sie definieren können. Bei einem dieser Schritte kann die CLI (v2) verwendet werden, um einen Azure Machine Learning-Auftrag Azure Machine Learning-Auftrag zum Trainieren eines Modells auszuführen.
Zum Automatisieren des Modelltrainings mit GitHub Actions müssen Sie folgende Schritte ausführen:
- Erstellen eines Dienstprinzipals mithilfe der Azure CLI
- Speichern der Azure-Anmeldeinformationen in einem GitHub-Geheimnis
- Definieren einer GitHub Actions-Aktion in YAML
Erstellen eines Dienstprinzipals
Wenn Sie GitHub Actions zum Automatisieren von Azure Machine Learning-Aufträgen verwenden, müssen Sie einen Dienstprinzipal verwenden, um GitHub für die Verwaltung des Azure Machine Learning-Arbeitsbereichs zu authentifizieren. So müssen Sie bzw. das Tool, das Sie verwenden, beispielsweise zum Trainieren eines Modell mithilfe von Azure Machine Learning Compute zur Verwendung dieser Computeinstanz berechtigt sein.
Tipp
Weitere Informationen zum Verwenden von GitHub Actions zum Herstellen einer Verbindung mit Azure
Speichern der Azure-Anmeldeinformationen
Die Azure-Anmeldeinformationen, die Sie authentifizieren müssen, sollten nicht im Code oder als Nur-Text gespeichert werden, sondern in einem GitHub-Geheimnis.
So fügen Sie Ihrem GitHub-Repository einen geheimen Schlüssel hinzu
Navigieren Sie zur Registerkarte Einstellungen.
Erweitern Sie auf der Registerkarte Einstellungen unter Sicherheit die Option Geheimnisse, und wählen Sie Aktionen aus.
Geben Sie Ihre Azure-Anmeldeinformationen als Geheimnis ein, und benennen Sie das Geheimnis in
AZURE_CREDENTIALS
um.Wenn Sie ein Geheimnis verwenden möchten, das Azure-Anmeldeinformationen in einer GitHub Actions-Aktion enthält, verwenden Sie das Geheimnis in der YAML-Datei.
on: [push] name: Azure Login Sample jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Log in with Azure uses: azure/login@v1 with: creds: '${{secrets.AZURE_CREDENTIALS}}'
Definieren der GitHub Actions-Aktion
Zum Definieren eines Workflows müssen Sie eine YAML-Datei erstellen. Sie können den Workflow auslösen, um ein Modell manuell oder mit einem Pushereignis zu trainieren. Das manuelle Auslösen des Workflows ist ideal für Tests, während das Automatisieren mit einem Ereignis für die Automatisierung besser ist.
Wenn Sie einen GitHub Actions-Workflow so konfigurieren möchten, dass Sie ihn manuell auslösen können, verwenden Sie on: workflow_dispatch
. Verwenden Sie hingegen on: [push]
, wenn ein Workflow mit einem Pushereignis ausgelöst werden soll.
Nach dem Auslösen des GitHub Actions-Workflows können Sie einem Auftrag verschiedene Schritte hinzufügen. Sie können beispielsweise einen Schritt verwenden, um einen Azure Machine Learning-Auftrag auszuführen:
name: Manually trigger an Azure Machine Learning job
on:
workflow_dispatch:
jobs:
train-model:
runs-on: ubuntu-latest
steps:
- name: Trigger Azure Machine Learning job
run: |
az ml job create --file src/job.yml
Tipp
Weitere Informationen zu GitHub Actions, einschließlich der grundlegenden Konzepte und der wichtigsten Terminologie