Delen via


Een model lokaal implementeren

Meer informatie over het gebruik van Azure Machine Learning om een model te implementeren als een webservice in uw Azure Machine Learning-rekenproces. Gebruik rekeninstanties als aan een van de volgende voorwaarden wordt voldaan:

  • U moet uw model snel implementeren en valideren.
  • U test een model dat in ontwikkeling is.

Tip

Het implementeren van een model vanuit een Jupyter Notebook op een rekenproces naar een webservice op dezelfde VM is een lokale implementatie. In dit geval is de lokale computer het rekenproces.

Notitie

Azure Machine Learning-eindpunten (v2) bieden een verbeterde, eenvoudigere implementatie-ervaring. Eindpunten ondersteunen zowel realtime- als batchdeductiescenario's. Eindpunten bieden een uniforme interface voor het aanroepen en beheren van modelimplementaties in verschillende rekentypen. Zie Wat zijn Azure Machine Learning-eindpunten?

Vereisten

Implementeren in de rekeninstanties

Een voorbeeldnotebook dat lokale implementaties demonstreert, is opgenomen in uw rekenproces. Gebruik de volgende stappen om het notebook te laden en het model te implementeren als een webservice op de VIRTUELE machine:

  1. Selecteer in Azure Machine Learning-studio 'Notebooks' en selecteer vervolgens how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb onder Voorbeeldnotebooks. Kloon dit notitieblok naar uw gebruikersmap.

  2. Zoek het notebook dat in stap 1 is gekloond, kies of maak een rekenproces om het notebook uit te voeren.

    Schermopname van de actieve lokale service in notebook

  3. In het notebook worden de URL en poort weergegeven waarop de service wordt uitgevoerd. Bijvoorbeeld: https://localhost:6789. U kunt ook de cel uitvoeren die print('Local service port: {}'.format(local_service.port)) de poort weergeeft.

    Schermopname van de actieve lokale servicepoort

  4. Gebruik de https://localhost:<local_service.port> URL om de service te testen vanuit een rekenproces. Als u wilt testen vanaf een externe client, haalt u de openbare URL van de service op die wordt uitgevoerd op het rekenproces. De openbare URL kan worden bepaald met de volgende formule;

    • Notebook-VM: https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.notebooks.azureml.net/score.
    • Rekenproces: https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.instances.azureml.net/score.

    Bijvoorbeeld:

    • Notebook-VM: https://vm-name-6789.northcentralus.notebooks.azureml.net/score
    • Rekenproces: https://vm-name-6789.northcentralus.instances.azureml.net/score

De service testen

Gebruik de volgende code om voorbeeldgegevens naar de actieve service te verzenden. Vervang de waarde door service_url de URL van de vorige stap:

Notitie

Bij het verifiëren van een implementatie op het rekenproces wordt de verificatie uitgevoerd met behulp van Microsoft Entra-id. De aanroep in interactive_auth.get_authentication_header() de voorbeeldcode verifieert u met behulp van Microsoft Entra-id en retourneert een header die vervolgens kan worden gebruikt om te verifiëren bij de service op het rekenproces. Zie Verificatie instellen voor Azure Machine Learning-resources en -werkstromen voor meer informatie.

Bij verificatie bij een implementatie in Azure Kubernetes Service of Azure Container Instances wordt een andere verificatiemethode gebruikt. Zie Verificatie configureren voor Azure Machine-modellen die zijn geïmplementeerd als webservices voor meer informatie.

import requests
import json
from azureml.core.authentication import InteractiveLoginAuthentication

# Get a token to authenticate to the compute instance from remote
interactive_auth = InteractiveLoginAuthentication()
auth_header = interactive_auth.get_authentication_header()

# Create and submit a request using the auth header
headers = auth_header
# Add content type header
headers.update({'Content-Type':'application/json'})

# Sample data to send to the service
test_sample = json.dumps({'data': [
    [1,2,3,4,5,6,7,8,9,10],
    [10,9,8,7,6,5,4,3,2,1]
]})
test_sample = bytes(test_sample,encoding = 'utf8')

# Replace with the URL for your compute instance, as determined from the previous section
service_url = "https://vm-name-6789.northcentralus.notebooks.azureml.net/score"
# for a compute instance, the url would be https://vm-name-6789.northcentralus.instances.azureml.net/score
resp = requests.post(service_url, test_sample, headers=headers)
print("prediction:", resp.text)

Volgende stappen