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:
En Azure Machine Learning-arbetsyta. Om du inte har någon använder du stegen i artikeln Snabbstart: Skapa arbetsyteresurser för att skapa en.
Om du vill installera Python SDK v2 använder du följande kommando:
pip install azure-ai-ml azure-identity
Om 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-identity
Mer information finns i Installera Python SDK v2 för Azure Machine Learning.
- Ett GitHub-konto. Om du inte har ett sådant kan du registrera dig utan kostnad.
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
Gå till din lagringsplats i GitHub.
Gå till Inställningar i navigeringsmenyn.
Välj Säkerhetshemligheter > och variabler > Åtgärder.
Välj Ny lagringsplatshemlighet.
Klistra in hela JSON-utdata från Azure CLI-kommandot i hemlighetens värdefält. Ge hemligheten namnet
AZURE_CREDENTIALS
.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.
I din förgrenade lagringsplats går du till
azureml-examples/cli/
.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.
- 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-cluster
för med ditt beräkningsklusternamn. Om klustret till exempel hetermy-cluster
blirazureml:my-cluster
det 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
Ö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
Vä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 Aktivera arbetsflöde.
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 den slutförda arbetsflödeskörningen och kontrollera att byggjobbet har körts. Du ser en grön bock bredvid jobbet.
Ö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.
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.