Azure Pipelines gebruiken met Azure Machine Learning
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
U kunt een Azure DevOps-pijplijn gebruiken om de machine learning-levenscyclus te automatiseren. Enkele van de bewerkingen die u kunt automatiseren, zijn:
- Gegevensvoorbereiding (bewerkingen voor extraheren, transformeren, laden)
- Machine learning-modellen trainen met uitschalen op aanvraag en omhoog schalen
- Implementatie van machine learning-modellen als openbare of persoonlijke webservices
- Geïmplementeerde machine learning-modellen bewaken (zoals voor prestatie- of gegevensdriftanalyse)
In dit artikel leert u hoe u een Azure-pijplijn maakt waarmee een machine learning-model wordt gebouwd en geïmplementeerd in Azure Machine Learning. U traint een scikit-learn lineair regressiemodel op de gegevensset Diabetes.
In deze zelfstudie wordt gebruikgemaakt van Azure Machine Learning Python SDK v2 en Azure CLI ML-extensie v2.
Vereisten
Voltooi resources maken om aan de slag te gaan :
- Een werkruimte maken
- Een cloudgebasd rekenproces maken voor gebruik voor uw ontwikkelomgeving
Een cloudgebasd rekencluster maken voor het trainen van uw model
Stap 1: de code ophalen
Fork de volgende opslagplaats op GitHub:
https://github.com/azure/azureml-examples
Stap 2: aanmelden bij Azure Pipelines
Meld u aan bij Azure Pipelines. Nadat u zich hebt aangemeld, gaat uw browser naar https://dev.azure.com/my-organization-name
en wordt uw Azure DevOps-dashboard weergegeven.
Maak binnen de geselecteerde organisatie een project. Als u geen projecten in uw organisatie hebt, ziet u het scherm Een project maken om aan de slag te gaan . Selecteer anders de knop Nieuw project in de rechterbovenhoek van het dashboard.
Stap 3: Een Azure Resource Manager-verbinding maken
U hebt een Azure Resource Manager-verbinding nodig om te verifiëren met Azure Portal.
Open in Azure DevOps de pagina Serviceverbindingen .
Kies + Nieuwe serviceverbinding en selecteer Azure Resource Manager.
Selecteer de standaardverificatiemethode Service-principal (automatisch).
Maak uw serviceverbinding. Stel uw abonnement, resourcegroep en verbindingsnaam in.
Stap 4: Een pijplijn maken
Ga naar Pijplijnen en selecteer vervolgens Nieuwe pijplijn.
Voer de stappen van de wizard uit door eerst GitHub te selecteren als de locatie van uw broncode.
U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.
Wanneer u de lijst met opslagplaatsen ziet, selecteert u uw opslagplaats.
U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als dat het zo is, selecteert u Installatie goedkeuren&.
Selecteer de Starter-pijplijn. U werkt de sjabloon voor de starterspijplijn bij.
Stap 5: Variabelen maken
U hebt al een resourcegroep in Azure met Azure Machine Learning. Als u uw DevOps-pijplijn wilt implementeren in Azure Machine Learning, moet u variabelen maken voor uw abonnements-id, resourcegroep en machine learning-werkruimte.
Selecteer het tabblad Variabelen op de pagina voor het bewerken van de pijplijn.
Maak een nieuwe variabele,
Subscription_ID
, en schakel het selectievakje Deze waarde geheim houden in. Stel de waarde in op uw Azure Portal abonnements-id.Maak een nieuwe variabele voor
Resource_Group
met de naam van de resourcegroep voor Azure Machine Learning (bijvoorbeeld:machinelearning
).Maak een nieuwe variabele voor
AzureML_Workspace_Name
met de naam van uw Azure Machine Learning-werkruimte (bijvoorbeeld:docs-ws
).Selecteer Opslaan om uw variabelen op te slaan.
Stap 6: uw YAML-pijplijn bouwen
Verwijder de starter-pijplijn en vervang deze door de volgende YAML-code. In deze pijplijn gaat u het volgende doen:
- Gebruik de Python-versietaak om Python 3.8 in te stellen en de SDK-vereisten te installeren.
- Gebruik de Bash-taak om bash-scripts uit te voeren voor de Azure Machine Learning SDK en CLI.
- Gebruik de Azure CLI-taak om de waarden van uw drie variabelen door te geven en gebruik papermill om uw Jupyter-notebook uit te voeren en uitvoer naar Azure Machine Learning te pushen.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- script: pip install -r sdk/python/dev-requirements.txt
displayName: 'pip install notebook reqs'
- task: Bash@3
inputs:
filePath: 'sdk/python/setup.sh'
displayName: 'set up sdk'
- task: Bash@3
inputs:
filePath: 'cli/setup.sh'
displayName: 'set up CLI'
- task: AzureCLI@2
inputs:
azureSubscription: 'your-azure-subscription'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
sed -i -e "s/<SUBSCRIPTION_ID>/$(SUBSCRIPTION_ID)/g" sklearn-diabetes.ipynb
sed -i -e "s/<RESOURCE_GROUP>/$(RESOURCE_GROUP)/g" sklearn-diabetes.ipynb
sed -i -e "s/<AML_WORKSPACE_NAME>/$(AZUREML_WORKSPACE_NAME)/g" sklearn-diabetes.ipynb
sed -i -e "s/DefaultAzureCredential/AzureCliCredential/g" sklearn-diabetes.ipynb
papermill -k python sklearn-diabetes.ipynb sklearn-diabetes.output.ipynb
workingDirectory: 'sdk/python/jobs/single-step/scikit-learn/diabetes'
Stap 7: De uitvoering van de pijplijn controleren
Open de voltooide pijplijnuitvoering en bekijk de AzureCLI-taak. Controleer de taakweergave om te controleren of de uitvoertaak is uitgevoerd.
Open Azure Machine Learning-studio en navigeer naar de voltooide
sklearn-diabetes-example
taak. Op het tabblad Metrische gegevens ziet u de trainingsresultaten.
Resources opschonen
Als u uw pijplijn niet meer gaat gebruiken, verwijdert u uw Azure DevOps-project. Verwijder in Azure Portal de resourcegroep en het Azure Machine Learning-exemplaar.