GitHub Actions gebruiken voor modeltraining

Voltooid

GitHub Actions is een platform waarmee u taken kunt automatiseren die worden geactiveerd door gebeurtenissen die plaatsvinden in een GitHub-opslagplaats. Een GitHub Actions-werkstroom bestaat uit taken. Een taak groept een reeks stappen die u kunt definiëren. Een van deze stappen kan de CLI (v2) gebruiken om een Azure Machine Learning-taak uit te voeren om een model te trainen.

Als u modeltraining wilt automatiseren met GitHub Actions, moet u het volgende doen:

  • Maak een service-principal met behulp van de Azure CLI.
  • Sla de Azure-referenties op in een GitHub-geheim.
  • Definieer een GitHub-actie in YAML.

Een service-principal maken

Wanneer u GitHub Actions gebruikt om Azure Machine Learning-taken te automatiseren, moet u een service-principal gebruiken om GitHub te verifiëren voor het beheren van de Azure Machine Learning-werkruimte. Als u bijvoorbeeld een model wilt trainen met behulp van Azure Machine Learning Compute, moet u of elk hulpprogramma dat u gebruikt, gemachtigd zijn om die berekening te kunnen gebruiken.

De Azure-referenties opslaan

De Azure-referenties die u moet verifiëren, mogen niet worden opgeslagen in uw code of tekst zonder opmaak en moeten in plaats daarvan worden opgeslagen in een GitHub-geheim.

Ga als volgende te werk om een geheim toe te voegen aan uw GitHub-opslagplaats:

  1. Ga naar het tabblad Instellingen .

    Schermopname van het tabblad Instellingen in gitHub-opslagplaats.

  2. Vouw op het tabblad Instellingen onder Beveiliging de optie Geheimen uit en selecteer Acties.

    Schermopname van de optie Geheimen in de sectie Beveiliging.

  3. Voer uw Azure-referenties in als geheim en geef het geheim AZURE_CREDENTIALSeen naam.

  4. Als u een geheim met Azure-referenties in een GitHub Action wilt gebruiken, raadpleegt u het geheim in het YAML-bestand.

    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}}'
    

De GitHub-actie definiëren

Als u een werkstroom wilt definiëren, moet u een YAML-bestand maken. U kunt de werkstroom activeren om een model handmatig of met een pushgebeurtenis te trainen. Handmatig activeren van de werkstroom is ideaal voor testen, terwijl het automatiseren van de werkstroom met een gebeurtenis beter is voor automatisering.

Als u een GitHub Actions-werkstroom wilt configureren, zodat u deze handmatig kunt activeren, gebruikt u on: workflow_dispatch. Als u een werkstroom wilt activeren met een pushgebeurtenis, gebruikt u on: [push].

Zodra de GitHub Actions-werkstroom is geactiveerd, kunt u verschillende stappen aan een taak toevoegen. U kunt bijvoorbeeld een stap gebruiken om een Azure Machine Learning-taak uit te voeren:

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