GitHub Actions gebruiken met Azure Machine Learning
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Ga aan de slag met GitHub Actions om een model te trainen in Azure Machine Learning.
In dit artikel leert u hoe u een GitHub Actions-werkstroom maakt waarmee een machine learning-model wordt gebouwd en geïmplementeerd in Azure Machine Learning. U traint een scikit-learn lineair regressiemodel op de NYC Taxi-gegevensset.
GitHub Actions maakt gebruik van een YAML-werkstroombestand (.yml) in het /.github/workflows/
pad in uw opslagplaats. Deze definitie bevat de verschillende stappen en parameters die deel uitmaken van de werkstroom.
Vereisten
Voordat u de stappen in dit artikel volgt, moet u ervoor zorgen dat u over de volgende vereisten beschikt:
Een Azure Machine Learning-werkruimte. Als u er nog geen hebt, gebruikt u de stappen in de quickstart: artikel Werkruimtebronnen maken om er een te maken.
Gebruik de volgende opdracht om de Python SDK v2 te installeren:
pip install azure-ai-ml azure-identity
Gebruik de volgende opdracht om een bestaande installatie van de SDK bij te werken naar de nieuwste versie:
pip install --upgrade azure-ai-ml azure-identity
Zie De Python SDK v2 voor Azure Machine Learning installeren voor meer informatie.
- Een GitHub-account. Als u geen account hebt, kunt u zich registreren voor een gratis account.
Stap 1: De code ophalen
Fork de volgende opslagplaats op GitHub:
https://github.com/azure/azureml-examples
Kloon uw vervalste opslagplaats lokaal.
git clone https://github.com/YOUR-USERNAME/azureml-examples
Stap 2: Verifiëren met Azure
U moet eerst definiëren hoe u zich verifieert met Azure. U kunt een service-principal of OpenID Connect gebruiken.
Genereer implementatiereferenties
Maak een service-principal met de opdracht az ad sp create-for-rbac in de Azure CLI. Voer deze opdracht uit met Azure Cloud Shell in de Azure Portal of door de knop Uitproberen te selecteren.
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
De parameter --json-auth
is beschikbaar in Azure CLI-versies >= 2.51.0. Versies vóór dit gebruik --sdk-auth
met een afschaffingswaarschuwing.
Vervang in het bovenstaande voorbeeld de tijdelijke aanduidingen door uw abonnements-id, resourcegroepnaam en app-naam. De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met hieronder. Kopieer dit JSON-object voor later gebruik.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Geheimen maken
Ga in GitHub naar uw opslagplaats.
Ga naar Instellingen in het navigatiemenu.
Selecteer Acties voor beveiligingsgeheimen > en variabelen>.
Selecteer Nieuw opslagplaatsgeheim.
Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam
AZURE_CREDENTIALS
.Selecteer Geheim toevoegen.
Stap 3: Bijwerken setup.sh
om verbinding te maken met uw Azure Machine Learning-werkruimte
U moet de CLI-installatiebestandsvariabelen bijwerken zodat deze overeenkomen met uw werkruimte.
Ga in uw geforkte opslagplaats naar
azureml-examples/cli/
.Bewerk en werk
setup.sh
deze variabelen in het bestand bij.Variabele Beschrijving GROEP Naam van resourcegroep LOCATIE Locatie van uw werkruimte (voorbeeld: eastus2
)WERKRUIMTE Naam van Azure Machine Learning-werkruimte
Stap 4: Bijwerken pipeline.yml
met de naam van uw rekencluster
U gebruikt een pipeline.yml
bestand om uw Azure Machine Learning-pijplijn te implementeren. Dit is een machine learning-pijplijn en niet een DevOps-pijplijn. U hoeft deze update alleen te maken als u een andere naam gebruikt dan cpu-cluster
voor de naam van het computercluster.
- Ga in uw geforkte opslagplaats naar
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml
. - Telkens wanneer u dit ziet
compute: azureml:cpu-cluster
, werkt u de waarde bij met de naam vancpu-cluster
het rekencluster. Als uw cluster bijvoorbeeld de naammy-cluster
heeft, isazureml:my-cluster
uw nieuwe waarde. Er zijn vijf updates.
Stap 5: Uw GitHub Actions-werkstroom uitvoeren
Uw werkstroom wordt geverifieerd met Azure, stelt de Azure Machine Learning CLI in en gebruikt de CLI om een model te trainen in Azure Machine Learning.
Uw werkstroombestand bestaat uit een triggersectie en taken:
- Met een trigger wordt de werkstroom in de
on
sectie gestart. De werkstroom wordt standaard uitgevoerd volgens een cron-schema en wanneer een pull-aanvraag wordt gedaan vanuit overeenkomende vertakkingen en paden. Meer informatie over gebeurtenissen die werkstromen activeren. - In de sectie Taken van de werkstroom checkt u code uit en meldt u zich aan bij Azure met uw service-principalgeheim.
- De sectie Taken bevat ook een installatieactie waarmee de Machine Learning CLI (v2) wordt geïnstalleerd en ingesteld. Zodra de CLI is geïnstalleerd, wordt uw Azure Machine Learning-bestand
pipeline.yml
uitgevoerd met de actie Voor het uitvoeren van taken om een model te trainen met nyc-taxigegevens.
Uw werkstroom inschakelen
Open
.github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
en controleer of uw werkstroom er als volgt uitziet in uw geforkte opslagplaats.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
Selecteer Weergaveuitvoeringen.
Schakel werkstromen in door mijn werkstromen te selecteren , ga verder en schakel ze in.
Selecteer de cli-jobs-pipelines-nyc-taxi-pipeline-workflow en kies ervoor om werkstroom in te schakelen.
Selecteer Werkstroom uitvoeren en kies nu de optie werkstroom uitvoeren.
Stap 6: Controleer of uw werkstroom wordt uitgevoerd
Open de voltooide werkstroomuitvoering en controleer of de buildtaak is uitgevoerd. Er wordt een groen vinkje naast de taak weergegeven.
Open Azure Machine Learning-studio en navigeer naar het nyc-taxi-pipeline-example. Controleer of elk deel van uw taak (voorbereiding, transformatie, trainen, voorspellen, score) is voltooid en of u een groen vinkje ziet.
Resources opschonen
Wanneer uw resourcegroep en opslagplaats niet meer nodig zijn, schoont u de resources op die u hebt geïmplementeerd door de resourcegroep en uw GitHub-opslagplaats te verwijderen.