Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Belangrijk
Sommige Azure CLI-opdrachten in dit artikel gebruiken de azure-cli-mlextensie (of v1) voor Azure Machine Learning. Ondersteuning voor CLI v1 is beëindigd op 30 september 2025. Microsoft biedt geen technische ondersteuning of updates meer voor deze service. Uw bestaande werkstromen met CLI v1 blijven werken na de einddatum van de ondersteuning. Ze kunnen echter worden blootgesteld aan beveiligingsrisico's of incompatibiliteit door wijzigingen in de architectuur van het product.
U wordt aangeraden zo snel mogelijk over te stappen op de mlextensie of v2. Zie de Azure Machine Learning CLI-extensie en Python SDK v2 voor meer informatie over de v2-extensie.
Belangrijk
Dit artikel biedt informatie over het gebruik van de Azure Machine Learning SDK v1. SDK v1 is vanaf 31 maart 2025 afgeschaft. Ondersteuning voor het zal eindigen op 30 juni 2026. U kunt SDK v1 tot die datum installeren en gebruiken. Uw bestaande werkstromen met SDK v1 blijven werken na de einddatum van de ondersteuning. Ze kunnen echter worden blootgesteld aan beveiligingsrisico's of incompatibiliteit door wijzigingen in de architectuur van het product.
We raden aan dat u overstapt naar SDK v2 vóór 30 juni 2026. Zie Wat is Azure Machine Learning CLI en Python SDK v2? en de SDK v2-verwijzing voor meer informatie over SDK v2.
Probeer een implementatie van een lokaal model als eerste stap bij het oplossen van problemen met de implementatie van Azure Container Instances (ACI) of Azure Kubernetes Service (AKS). Het gebruik van een lokale webservice maakt het gemakkelijker om veelvoorkomende implementatiefouten in Azure Machine Learning Docker-webservice te herkennen en op te lossen.
Vereisten
- Een Azure-abonnement. Probeer de gratis of betaalde versie van Azure Machine Learning.
- Optie A (aanbevolen): lokaal fouten opsporen in Azure Machine Learning Compute-exemplaar
- Een Azure Machine Learning-werkruimte met een rekenproces dat wordt uitgevoerd
- Optie B: lokaal fouten opsporen op uw rekenproces
- De Azure Machine Learning SDK.
- De Azure CLI.
- De CLI-extensie voor Azure Machine Learning.
- Zorg voor een werkende Docker-installatie op uw lokale systeem.
- Als u uw Docker-installatie wilt controleren, gebruikt u de opdracht
docker run hello-worldvanuit een terminal of opdrachtprompt. Zie de Docker-documentatie voor informatie over het installeren van Docker of het oplossen van docker-fouten.
- Optie C: lokale foutopsporing inschakelen met Azure Machine Learning-deductie-HTTP-server.
- De HTTP-server voor deductie van Azure Machine Learning is een Python-pakket waarmee u eenvoudig uw invoerscript (
score.py) in een lokale ontwikkelomgeving kunt valideren. Als er een probleem is met het scorescript, retourneert de server een fout. Ook wordt de locatie van de fout geretourneerd. - De server kan ook worden gebruikt bij het maken van validatiepoorten in een pijplijn voor continue integratie en implementatie. Start bijvoorbeeld de server met het kandidaatscript en voer de testsuite uit op het lokale eindpunt.
- De HTTP-server voor deductie van Azure Machine Learning is een Python-pakket waarmee u eenvoudig uw invoerscript (
HTTP-server voor azure Machine Learning-deductie
Met de lokale deductieserver kunt u snel fouten opsporen in uw invoerscript (score.py). Als het onderliggende scorescript een fout heeft, kan de server het model niet initialiseren of leveren. In plaats daarvan genereert het een uitzondering en de locatie waar de problemen zijn opgetreden.
Meer informatie over HTTP-server voor azure Machine Learning-deductie
Installeer het
azureml-inference-server-httppakket vanuit de pypi-feed :python -m pip install azureml-inference-server-httpStart de server en stel
score.pydeze in als het invoerscript:azmlinfsrv --entry_script score.pyVerzend een scoreaanvraag naar de server met behulp van
curl:curl -p 127.0.0.1:5001/score
Notitie
Meer informatie over veelgestelde vragen over Deductie-HTTP-server voor Azure Machine Learning.
Lokaal fouten opsporen
U vindt een voorbeeld van een lokaal implementatienotitieblok in de opslagplaats machineLearningNotebooks om een voorbeeld te verkennen dat kan worden uitgevoerd.
Waarschuwing
Implementaties van lokale webservices worden niet ondersteund voor productiescenario's.
Als u lokaal wilt implementeren, wijzigt u de code die u wilt gebruiken LocalWebservice.deploy_configuration() om een implementatieconfiguratie te maken. Gebruik vervolgens Model.deploy() om de service te implementeren. In het volgende voorbeeld wordt een model (opgenomen in de modelvariabele) geïmplementeerd als een lokale webservice:
VAN TOEPASSING OP:
Azure Machine Learning SDK v1 voor Python
from azureml.core.environment import Environment
from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import LocalWebservice
# Create inference configuration based on the environment definition and the entry script
myenv = Environment.from_conda_specification(name="env", file_path="myenv.yml")
inference_config = InferenceConfig(entry_script="score.py", environment=myenv)
# Create a local deployment, using port 8890 for the web service endpoint
deployment_config = LocalWebservice.deploy_configuration(port=8890)
# Deploy the service
service = Model.deploy(
ws, "mymodel", [model], inference_config, deployment_config)
# Wait for the deployment to complete
service.wait_for_deployment(True)
# Display the port that the web service is available on
print(service.port)
Als u uw eigen YAML voor conda-specificatie definieert, geeft u versie azureml-defaults >= 1.0.45 weer als pip-afhankelijkheid. Dit pakket is nodig om het model als een webservice te hosten.
Op dit moment kunt u als normaal met de service werken. De volgende code laat zien hoe gegevens naar de service worden verzonden:
import json
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')
prediction = service.run(input_data=test_sample)
print(prediction)
Zie Omgevingen maken en beheren voor training en implementatie voor meer informatie over het aanpassen van uw Python-omgeving.
De service bijwerken
Tijdens het lokaal testen moet u mogelijk het score.py bestand bijwerken om logboekregistratie toe te voegen of eventuele problemen op te lossen die u hebt gedetecteerd. Als u wijzigingen in het score.py bestand opnieuw wilt laden, gebruikt u reload(). Met de volgende code wordt bijvoorbeeld het script voor de service opnieuw geladen en worden er vervolgens gegevens naar verzonden. De gegevens worden beoordeeld met behulp van het bijgewerkte score.py bestand:
Belangrijk
De reload methode is alleen beschikbaar voor lokale implementaties. Zie hoe u uw webservice bijwerkt voor informatie over het bijwerken van een implementatie naar een ander rekendoel.
service.reload()
print(service.run(input_data=test_sample))
Notitie
Het script wordt opnieuw geladen vanaf de locatie die is opgegeven door het InferenceConfig object dat door de service wordt gebruikt.
Als u het model, Conda-afhankelijkheden of de implementatieconfiguratie wilt wijzigen, gebruikt u update(). In het volgende voorbeeld wordt het model bijgewerkt dat door de service wordt gebruikt:
service.update([different_model], inference_config, deployment_config)
De service verwijderen
Als u de service wilt verwijderen, gebruikt u delete().
Het Docker-logboek inspecteren
U kunt gedetailleerde logboekberichten van docker-engine afdrukken vanuit het serviceobject. U kunt het logboek voor ACI-, AKS- en lokale implementaties bekijken. In het volgende voorbeeld ziet u hoe u de logboeken afdrukt.
# if you already have the service object handy
print(service.get_logs())
# if you only know the name of the service (note there might be multiple services with the same name but different version number)
print(ws.webservices['mysvc'].get_logs())
Als de regel Booting worker with pid: <pid> meerdere keren in de logboeken optreedt, betekent dit dat er onvoldoende geheugen is om de werkrol te starten.
U kunt de fout oplossen door de waarde van memory_gb in te verhogen deployment_config
Volgende stappen
Meer informatie over implementatie: