Dela via


Använda GitHub Actions med Azure Machine Learning

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

Kom igång med GitHub Actions och lär dig hur du tränar en modell med Azure Machine Learning.

I den här artikeln får du lära dig hur du skapar ett GitHub Actions-arbetsflöde som skapar och distribuerar en maskininlärningsmodell till Azure Machine Learning. Du tränar en scikit-learn linjär regressionsmodell på NYC Taxi-datauppsättningen.

GitHub Actions använder en YAML-arbetsflödesfil (.yml) i /.github/workflows/ sökvägen på lagringsplatsen. Den här definitionen innehåller de olika steg och parametrar som utgör arbetsflödet.

Förutsättningar

Innan du följer stegen i den här artikeln kontrollerar du att du har följande förutsättningar:

Steg 1: Hämta koden

Förgrena följande lagringsplats på GitHub:

https://github.com/azure/azureml-examples

Klona din förgrenade lagringsplats lokalt.

git clone https://github.com/YOUR-USERNAME/azureml-examples

Steg 2: Autentisera med Azure

Du måste först definiera hur du ska autentisera med Azure. Du kan använda tjänstens huvudnamn eller OpenID-Anslut.

Generera autentiseringsuppgifter för distribution

Skapa ett huvudnamn för tjänsten med kommandot az ad sp create-for-rbac i Azure CLI. Kör det här kommandot med Azure Cloud Shell i Azure-portalen eller genom att välja knappen Prova .

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

Parametern --json-auth är tillgänglig i Azure CLI-versioner >= 2.51.0. Versioner före den här användningen --sdk-auth med en utfasningsvarning.

I exemplet ovan ersätter du platshållarna med ditt prenumerations-ID, resursgruppsnamn och appnamn. Utdata är ett JSON-objekt med autentiseringsuppgifterna för rolltilldelning som ger åtkomst till din App Service-app på liknande sätt som nedan. Kopiera det här JSON-objektet för senare.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Skapa hemligheter

  1. Gå till din lagringsplats i GitHub.

  2. Gå till Inställningar i navigeringsmenyn.

  3. Välj Säkerhetshemligheter > och variabler > Åtgärder.

    Skärmbild av att lägga till en hemlighet

  4. Välj Ny lagringsplatshemlighet.

  5. Klistra in hela JSON-utdata från Azure CLI-kommandot i hemlighetens värdefält. Ge hemligheten namnet AZURE_CREDENTIALS.

  6. Välj Add secret (Lägg till hemlighet).

Steg 3: Uppdatera setup.sh för att ansluta till din Azure Machine Learning-arbetsyta

Du måste uppdatera cli-konfigurationsfilvariablerna så att de matchar din arbetsyta.

  1. I din förgrenade lagringsplats går du till azureml-examples/cli/.

  2. Redigera setup.sh och uppdatera dessa variabler i filen.

    Olika beskrivning
    GRUPP Namn på resursgrupp
    PLATS Plats för din arbetsyta (exempel: eastus2)
    ARBETSYTA Namnet på Azure Machine Learning-arbetsytan

Steg 4: Uppdatera pipeline.yml med namnet på beräkningsklustret

Du använder en pipeline.yml fil för att distribuera din Azure Machine Learning-pipeline. Det här är en maskininlärningspipeline och inte en DevOps-pipeline. Du behöver bara göra den här uppdateringen om du använder ett annat namn än cpu-cluster för datorklusternamnet.

  1. I din förgrenade lagringsplats går du till azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml.
  2. Varje gång du ser compute: azureml:cpu-clusteruppdaterar du värdet cpu-cluster för med ditt beräkningsklusternamn. Om klustret till exempel heter my-clusterblir azureml:my-clusterdet nya värdet . Det finns fem uppdateringar.

Steg 5: Kör ditt GitHub Actions-arbetsflöde

Ditt arbetsflöde autentiseras med Azure, konfigurerar Azure Machine Learning CLI och använder CLI för att träna en modell i Azure Machine Learning.

Arbetsflödesfilen består av ett utlösaravsnitt och jobb:

  • En utlösare startar arbetsflödet i avsnittet on . Arbetsflödet körs som standard enligt ett cron-schema och när en pull-begäran görs från matchande grenar och sökvägar. Läs mer om händelser som utlöser arbetsflöden.
  • I jobbavsnittet i arbetsflödet checkar du ut kod och loggar in på Azure med din hemlighet för tjänstens huvudnamn.
  • Avsnittet Jobb innehåller också en konfigurationsåtgärd som installerar och konfigurerar Machine Learning CLI (v2). När CLI har installerats kör körningsjobbet din Azure Machine Learning-fil pipeline.yml för att träna en modell med NYC-taxidata.

Aktivera arbetsflödet

  1. Öppna och kontrollera att arbetsflödet ser ut så här på den förgrenade lagringsplatsen .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml .

    name: cli-jobs-pipelines-nyc-taxi-pipeline
    on:
      workflow_dispatch:
      schedule:
        - cron: "0 0/4 * * *"
      pull_request:
        branches:
          - main
          - sdk-preview
        paths:
          - cli/jobs/pipelines/nyc-taxi/**
          - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
          - cli/run-pipeline-jobs.sh
          - cli/setup.sh
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - name: check out repo
          uses: actions/checkout@v2
        - name: azure login
          uses: azure/login@v1
          with:
            creds: ${{secrets.AZURE_CREDENTIALS}}
        - name: setup
          run: bash setup.sh
          working-directory: cli
          continue-on-error: true
        - name: run job
          run: bash -x ../../../run-job.sh pipeline.yml
          working-directory: cli/jobs/pipelines/nyc-taxi
    
  2. Välj Visa körningar.

  3. Aktivera arbetsflöden genom att välja Jag förstår mina arbetsflöden, gå vidare och aktivera dem.

  4. Välj arbetsflödet cli-jobs-pipelines-nyc-taxi-pipeline och välj Aktivera arbetsflöde. Skärmbild av aktivera GitHub Actions-arbetsflöde.

  5. Välj Kör arbetsflöde och välj alternativet för att Köra arbetsflöde nu. Skärmbild av körningen av GitHub Actions-arbetsflödet.

Steg 6: Verifiera att arbetsflödet körs

  1. Öppna den slutförda arbetsflödeskörningen och kontrollera att byggjobbet har körts. Du ser en grön bock bredvid jobbet.

  2. Öppna Azure Machine Learning-studio och gå till exemplet nyc-taxi-pipeline-. Kontrollera att varje del av jobbet (förberedelse, transformering, träning, förutsägelse, poäng) har slutförts och att du ser en grön bockmarkering.

    Skärmbild av lyckad Machine Learning Studio-körning.

Rensa resurser

När resursgruppen och lagringsplatsen inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen och GitHub-lagringsplatsen.

Nästa steg