Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 Machine Learning. Du tränar en scikit-learn linjär regressionsmodell på NYC Taxi-datauppsättningen.
GitHub Actions använder en arbetsflödes-YAML-fil (.yml) i /.github/workflows/-sökvägen i ditt repository. Den här definitionen innehåller de olika steg och parametrar som utgör arbetsflödet.
Förutsättningar
En Azure Machine Learning-arbetsyta. Anvisningar för hur du skapar en arbetsyta finns i Skapa arbetsytan.
Azure Machine Learning SDK för Python v2. Om du vill installera SDK använder du följande kommando:
pip install azure-ai-ml azure-identityOm du vill uppdatera en befintlig installation av SDK:et till den senaste versionen använder du följande kommando:
pip install --upgrade azure-ai-ml azure-identityMer information finns i Klientbiblioteket för Azure Machine Learning Package för Python.
- Ett GitHub-konto. Om du inte har ett, skapa ett gratis konto.
Steg 1: Hämta koden
Förgrena följande lagringsplats på GitHub:
https://github.com/azure/azureml-examples
Klona din förgrenade repository lokalt.
git clone https://github.com/YOUR-USERNAME/azureml-examples
Steg 2: Autentisera med Azure
Definiera först hur du autentiserar med Azure. Det rekommenderade, säkrare alternativet är att logga in med OpenID Connect med ett Microsoft Entra-program eller en användartilldelad hanterad identitet. Om det behövs kan du också använda inloggning med hjälp av tjänstens huvudnamn och hemlighet. Den här metoden är mindre säker och rekommenderas inte.
Generera autentiseringsuppgifter för distribution
Om du vill använda Azure Login-åtgärden med OIDC måste du konfigurera en federerad identitetsautentiseringsuppgift i ett Microsoft Entra-program eller en användartilldelad hanterad identitet.
Alternativ 1: Microsoft Entra-program
- Skapa ett Microsoft Entra-program med tjänstens principal genom Azure Portal, Azure CLI eller Azure PowerShell.
- Kopiera värdena för klient-ID, prenumerations-ID och katalog-ID (klientorganisation) som ska användas senare i ditt GitHub Actions-arbetsflöde.
- Tilldela tjänstens huvudobjekt en lämplig roll genom Azure Portal, Azure CLI eller Azure PowerShell.
- Konfigurera en federerad identitetsautentiseringsuppgift i ett Microsoft Entra-program för att lita på token som utfärdats av GitHub Actions till din GitHub-lagringsplats.
Alternativ 2: Användartilldelad hanterad identitet
- Skapa en användartilldelad hanterad identitet.
- Kopiera värdena för klient-ID, prenumerations-ID och katalog-ID (klientorganisation) som ska användas senare i ditt GitHub Actions-arbetsflöde.
- Tilldela en lämplig roll till din användartilldelade hanterade identitet.
- Konfigurera en federerad identitetsautentiseringsuppgift för en användartilldelad hanterad identitet för att lita på token som utfärdats av GitHub Actions till din GitHub-lagringsplats.
Skapa hemligheter
Du måste ange programmets klient-ID, katalog (klient)-ID och prenumerations-ID för inloggningsåtgärden. Dessa värden kan antingen anges direkt i arbetsflödet eller lagras i GitHub-hemligheter och refereras till i arbetsflödet. Att spara värdena som GitHub-hemligheter är det säkrare alternativet.
Gå till din lagringsplats i GitHub.
Välj Säkerhetshemligheter > och variabler > Åtgärder.
Välj Ny lagringsplatshemlighet.
Kommentar
Om du vill förbättra arbetsflödets säkerhet på offentliga lagringsplatser använder du miljöhemligheter i stället för lagringsplatshemligheter. Om miljön kräver godkännande kan ett jobb inte komma åt miljöhemligheter förrän en av de nödvändiga granskarna godkänner det.
Skapa hemligheter för
AZURE_CLIENT_ID,AZURE_TENANT_IDochAZURE_SUBSCRIPTION_ID. Kopiera dessa värden från ditt Microsoft Entra-program eller användartilldelade hanterade identiteter för dina GitHub-hemligheter:GitHub-hemlighet Microsoft Entra-program eller användartilldelad hanterad identitet AZURE_CLIENT_ID Klient-ID AZURE_SUBSCRIPTION_ID ID för prenumeration AZURE_TENANT_ID Katalog-ID (hyresgäst) Kommentar
Av säkerhetsskäl rekommenderar vi att du använder GitHub Secrets i stället för att skicka värden direkt till arbetsflödet.
Steg 3: Uppdatera setup.sh för att ansluta till din Azure Machine Learning-arbetsyta
Uppdatera CLI-konfigurationsfilvariablerna så att de matchar din arbetsyta.
I din förgrenade lagringsplats går du till
azureml-examples/cli/.Redigera
setup.shoch uppdatera dessa variabler i filen.Variabel beskrivning GROUPNamn på resursgrupp LOCATIONPlats för din arbetsyta (exempel: eastus2)WORKSPACENamnet på Azure Machine Learning-arbetsytan
Steg 4: Uppdatera pipeline.yml med namnet på beräkningsklustret
Använd en pipeline.yml fil för att distribuera din Azure Machine Learning-pipeline. Pipelinen ä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 ditt beräkningsklusternamn.
- I din förgrenade lagringsplats går du till
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml. - Varje gång du ser
compute: azureml:cpu-cluster, uppdaterar du värdetcpu-clustermed ditt beräkningsklusternamn. Om klustret till exempel hetermy-clusterblirazureml: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 arbetsflödets jobbavsnitt checkar du ut kod och loggar in på Azure med Azure-inloggningsfunktionen med hjälp av OpenID Connect.
- 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.ymlför att träna en modell med NYC-taxidata.
Aktivera arbetsflödet
På din förgrenade lagringsplats, öppna
.github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.ymloch kontrollera att arbetsflödet liknar detta.Kommentar
Arbetsflödesfilen på lagringsplatsen kan innehålla ytterligare steg (till exempel bootstrapping och validering) som inte visas här. I följande exempel visas de viktigaste stegen.
name: cli-jobs-pipelines-nyc-taxi-pipeline on: workflow_dispatch: schedule: - cron: "0 0/4 * * *" pull_request: branches: - main paths: - cli/jobs/pipelines/nyc-taxi/** - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml - cli/run-pipeline-jobs.sh - cli/setup.sh permissions: id-token: write jobs: build: runs-on: ubuntu-latest steps: - name: check out repo uses: actions/checkout@v4 - name: azure login uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - 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-taxiVälj Visa körningar.
Aktivera arbetsflöden genom att välja Jag förstår mina arbetsflöden, gå vidare och aktivera dem.
Välj arbetsflödet cli-jobs-pipelines-nyc-taxi-pipeline och välj att aktivera arbetsflödet.
Välj Kör arbetsflöde och välj alternativet för att Köra arbetsflöde nu.
Steg 6: Verifiera att arbetsflödet körs
Öppna det slutförda arbetsflödet och kontrollera att byggjobbet kördes framgångsrikt. Du ser en grön checkmark bredvid uppdraget.
Öppna Azure Machine Learning Studio och gå till nyc-taxi-pipeline-example. 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.
Rensa resurser
När du inte längre behöver resursgruppen och lagringsplatsen rensar du de resurser som du har distribuerat genom att ta bort resursgruppen och din GitHub-lagringsplats.