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
- Een Azure Machine Learning-werkruimte met een rekenproces dat wordt uitgevoerd. Zie Resources maken om aan de slag te gaan voor meer informatie.
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:
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.
Zoek het notebook dat in stap 1 is gekloond, kies of maak een rekenproces om het notebook uit te voeren.
In het notebook worden de URL en poort weergegeven waarop de service wordt uitgevoerd. Bijvoorbeeld:
https://localhost:6789
. U kunt ook de cel uitvoeren dieprint('Local service port: {}'.format(local_service.port))
de poort weergeeft.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
- Notebook-VM:
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
- Een model implementeren met behulp van een aangepaste Docker-installatiekopieën
- Problemen met implementatie oplossen
- TLS gebruiken om een webservice te beveiligen via Azure Machine Learning
- Een ML-model gebruiken dat is geïmplementeerd als een webservice
- Uw Azure Machine Learning-modellen bewaken met Application Insights
- Gegevens verzamelen voor modellen in productie