Dela via


Använda GitHub Actions med Azure Mašinsko učenje

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.

Den här artikeln lär dig hur du skapar ett GitHub Actions-arbetsflöde som skapar och distribuerar en maskininlärningsmodell till Azure Mašinsko učenje. 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 Connect.

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 Mašinsko učenje-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 Mašinsko učenje-arbetsytan

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

Du använder en pipeline.yml fil för att distribuera din Azure Mašinsko učenje 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 Mašinsko učenje CLI och använder CLI för att träna en modell i Azure Mašinsko učenje.

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 Mašinsko učenje CLI (v2). När CLI har installerats kör körningsjobbåtgärden din Azure Mašinsko učenje-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 Mašinsko učenje 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 Mašinsko učenje 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