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

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.

  1. Open in Azure DevOps de pagina Serviceverbindingen .

  2. Kies + Nieuwe serviceverbinding en selecteer Azure Resource Manager.

  3. Selecteer de standaardverificatiemethode Service-principal (automatisch).

  4. Maak uw serviceverbinding. Stel uw abonnement, resourcegroep en verbindingsnaam in.

    Schermopname van de ARM-serviceverbinding.

Stap 4: Een pijplijn maken

  1. Ga naar Pijplijnen en selecteer vervolgens Nieuwe pijplijn.

  2. Voer de stappen van de wizard uit door eerst GitHub te selecteren als de locatie van uw broncode.

  3. U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.

  4. Wanneer u de lijst met opslagplaatsen ziet, selecteert u uw opslagplaats.

  5. U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als dat het zo is, selecteert u Installatie goedkeuren&.

  6. 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.

  1. Selecteer het tabblad Variabelen op de pagina voor het bewerken van de pijplijn.

    Schermopname van de optie variabelen bij het bewerken van de pijplijn.

  2. 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.

  3. Maak een nieuwe variabele voor Resource_Group met de naam van de resourcegroep voor Azure Machine Learning (bijvoorbeeld: machinelearning).

  4. Maak een nieuwe variabele voor AzureML_Workspace_Name met de naam van uw Azure Machine Learning-werkruimte (bijvoorbeeld: docs-ws).

  5. 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

  1. Open de voltooide pijplijnuitvoering en bekijk de AzureCLI-taak. Controleer de taakweergave om te controleren of de uitvoertaak is uitgevoerd.

    Schermopname van machine learning-uitvoer naar Azure Machine Learning.

  2. Open Azure Machine Learning-studio en navigeer naar de voltooide sklearn-diabetes-example taak. Op het tabblad Metrische gegevens ziet u de trainingsresultaten.

    Schermopname van 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.