Använda GitHub Actions för modellträning

Slutförd

GitHub Actions är en plattform som gör att du kan automatisera uppgifter som utlöses av händelser som inträffar på en GitHub-lagringsplats. Ett GitHub Actions-arbetsflöde består av jobb. Ett jobb grupperar en uppsättning steg som du kan definiera. Ett av dessa steg kan använda CLI (v2) för att köra ett Azure Machine Learning-jobb för att träna en modell.

Om du vill automatisera modellträningen med GitHub Actions måste du:

  • Skapa ett huvudnamn för tjänsten med hjälp av Azure CLI.
  • Lagra Azure-autentiseringsuppgifterna i en GitHub-hemlighet.
  • Definiera en GitHub-åtgärd i YAML.

Skapa ett huvudnamn för tjänsten

När du använder GitHub Actions för att automatisera Azure Machine Learning-jobb måste du använda tjänstens huvudnamn för att autentisera GitHub för att hantera Azure Machine Learning-arbetsytan. Om du till exempel vill träna en modell med Azure Machine Learning-beräkning måste du eller alla verktyg som du använder ha behörighet att använda den beräkningen.

Lagra Azure-autentiseringsuppgifterna

De Azure-autentiseringsuppgifter som du behöver autentisera bör inte lagras i din kod eller oformaterad text och bör i stället lagras i en GitHub-hemlighet.

Så här lägger du till en hemlighet i din GitHub-lagringsplats:

  1. Gå till fliken Inställningar .

    Skärmbild av fliken Inställningar i GitHub-lagringsplatsen.

  2. På fliken Inställningar under Säkerhet expanderar du alternativet Hemligheter och väljer Åtgärder.

    Skärmbild av alternativet hemligheter i säkerhetsavsnittet.

  3. Ange dina Azure-autentiseringsuppgifter som en hemlighet och namnge hemligheten AZURE_CREDENTIALS.

  4. Om du vill använda en hemlighet som innehåller Azure-autentiseringsuppgifter i en GitHub-åtgärd läser du hemligheten i YAML-filen.

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

Definiera GitHub-åtgärden

För att definiera ett arbetsflöde måste du skapa en YAML-fil. Du kan utlösa arbetsflödet för att träna en modell manuellt eller med en push-händelse. Att utlösa arbetsflödet manuellt är perfekt för testning, medan automatisering med en händelse är bättre för automatisering.

Om du vill konfigurera ett GitHub Actions-arbetsflöde så att du kan utlösa det manuellt använder du on: workflow_dispatch. Om du vill utlösa ett arbetsflöde med en push-händelse använder du on: [push].

När GitHub Actions-arbetsflödet har utlösts kan du lägga till olika steg i ett jobb. Du kan till exempel använda ett steg för att köra ett Azure Machine Learning-jobb:

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