Fouten in online-eindpunten lokaal opsporen in Visual Studio Code
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (current)
Meer informatie over het gebruik van het foutopsporingsprogramma van Microsoft Visual Studio Code om online-eindpunten lokaal te testen en fouten op te sporen voordat u ze implementeert in Azure.
Met lokale Azure Machine Learning-eindpunten kunt u uw scorescript, omgevingsconfiguratie, codeconfiguratie en machine learning-model lokaal testen en fouten opsporen.
Belangrijk
Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt geleverd zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt.
Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
Fouten opsporen in eindpunten lokaal voordat u ze implementeert in de cloud, kan u helpen fouten in uw code en configuratie eerder te ondervangen. U hebt verschillende opties voor het lokaal opsporen van fouten in eindpunten met Visual Studio Code.
- HTTP-server voor azure Machine Learning-deductie
- Lokaal eindpunt
Deze handleiding is gericht op lokale eindpunten.
De volgende tabel bevat een overzicht van scenario's waarmee u kunt kiezen wat het beste voor u werkt.
Scenario | HTTP-server voor deductie | Lokaal eindpunt |
---|---|---|
Lokale Python-omgeving bijwerken, zonder opnieuw opbouwen van Docker-installatiekopieën | Ja | Nr. |
Scorescript bijwerken | Ja | Ja |
Implementatieconfiguraties bijwerken (implementatie, omgeving, code, model) | Nr. | Ja |
Integratie van visual Studio Code-foutopsporingsprogramma | Ja | Ja |
Vereisten
In deze handleiding wordt ervan uitgegaan dat u de volgende items lokaal op uw pc hebt geïnstalleerd.
Zie de handleiding voor het voorbereiden van uw systeem voor het implementeren van online-eindpunten voor meer informatie.
De voorbeelden in dit artikel zijn gebaseerd op codevoorbeelden in de GitHub-opslagplaats azureml-examples . Als u de opdrachten lokaal wilt uitvoeren zonder YAML en andere bestanden te hoeven kopiëren/plakken, kloont u de opslagplaats en wijzigt u vervolgens mappen in azureml-examples/cli:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Als u de standaardinstellingen voor de Azure CLI nog niet hebt ingesteld, slaat u de standaardinstellingen op. Gebruik de volgende opdrachten om te voorkomen dat de waarden voor uw abonnement, werkruimte en resourcegroep meerdere keren worden doorgegeven. Vervang de volgende parameters door waarden voor uw specifieke configuratie:
- Vervang
<subscription>
door de id van uw Azure-abonnement. - Vervang door
<workspace>
de naam van uw Azure Machine Learning-werkruimte. - Vervang door
<resource-group>
de Azure-resourcegroep die uw werkruimte bevat. - Vervang door
<location>
de Azure-regio die uw werkruimte bevat.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Tip
U kunt zien wat de huidige standaardwaarden zijn met behulp van de az configure -l
opdracht.
Ontwikkelcontainer starten
Lokale Azure Machine Learning-eindpunten maken gebruik van Docker- en Visual Studio Code-ontwikkelcontainers (dev-containers) om een lokale foutopsporingsomgeving te bouwen en te configureren. Met dev-containers kunt u gebruikmaken van Visual Studio Code-functies vanuit een Docker-container. Zie Een ontwikkelcontainer maken voor meer informatie over dev-containers.
Als u lokaal fouten wilt opsporen in online-eindpunten in Visual Studio Code, gebruikt u de vlag bij het --vscode-debug
maken of bijwerken en online implementeren van Azure Machine Learning. De volgende opdracht maakt gebruik van een implementatievoorbeeld uit de voorbeeldenopslagplaats:
az ml online-deployment create --file endpoints/online/managed/sample/blue-deployment.yml --local --vscode-debug
Belangrijk
Op Windows-subsysteem voor Linux (WSL) moet u de omgevingsvariabele PATH bijwerken om het pad naar het uitvoerbare visual Studio Code-bestand op te nemen of WSL-interop te gebruiken. Zie Windows-interoperabiliteit met Linux voor meer informatie.
Een Docker-installatiekopie wordt lokaal gebouwd. Eventuele fouten in de omgevingsconfiguratie of modelbestand worden weergegeven in deze fase van het proces.
Notitie
De eerste keer dat u een nieuwe of bijgewerkte dev-container start, kan het enkele minuten duren.
Zodra de installatiekopieën zijn gemaakt, wordt uw dev-container geopend in een Visual Studio Code-venster.
U gebruikt enkele Visual Studio Code-extensies om fouten in uw implementaties in de dev-container op te sporen. Azure Machine Learning installeert deze extensies automatisch in uw dev-container.
Belangrijk
Voordat u de foutopsporingssessie start, moet u ervoor zorgen dat de Visual Studio Code-extensies zijn geïnstalleerd in uw dev-container.
Foutopsporingssessie starten
Zodra uw omgeving is ingesteld, gebruikt u het foutopsporingsprogramma van Visual Studio Code om uw implementatie lokaal te testen en fouten op te sporen.
Open uw scorescript in Visual Studio Code.
Tip
Het score.py script dat wordt gebruikt door het eindpunt dat eerder is geïmplementeerd, bevindt zich in azureml-samples/cli/endpoints/online/managed/sample/score.py in de opslagplaats die u hebt gekloond. De stappen in deze handleiding werken echter met een scorescript.
Stel een onderbrekingspunt in op een willekeurige plaats in uw scorescript.
- Als u opstartgedrag wilt opsporen, plaatst u uw onderbrekingspunten in de
init
functie. - Als u fouten in scoregedrag wilt opsporen, plaatst u uw onderbrekingspunten in de
run
functie.
- Als u opstartgedrag wilt opsporen, plaatst u uw onderbrekingspunten in de
Selecteer de visual Studio Code-taakweergave.
Selecteer In de vervolgkeuzelijst Uitvoeren en fouten opsporen AzureML: Lokaal eindpunt opsporen om lokaal fouten in uw eindpunt op te sporen.
Controleer in de sectie Onderbrekingspunten van de weergave Uitvoeren of:
- Verhoogde uitzonderingen is uitgeschakeld
- Ondeugende uitzonderingen is ingeschakeld
Selecteer het afspeelpictogram naast de vervolgkeuzelijst Uitvoeren en foutopsporing om de foutopsporingssessie te starten.
Op dit moment worden eventuele onderbrekingspunten in uw
init
functie gevangen. Gebruik de foutopsporingsacties om uw code te doorlopen. Zie de gids voor foutopsporingsacties voor meer informatie over foutopsporingsacties.
Zie Foutopsporing in Visual Studio Code voor meer informatie over het foutopsporingsprogramma van Visual Studio Code.
Fouten opsporen in uw eindpunt
Nu uw toepassing wordt uitgevoerd in het foutopsporingsprogramma, probeert u een voorspelling te doen om fouten in uw scorescript op te sporen.
Gebruik de ml
extensieopdracht invoke
om een aanvraag naar uw lokale eindpunt te verzenden.
az ml online-endpoint invoke --name <ENDPOINT-NAME> --request-file <REQUEST-FILE> --local
In dit geval <REQUEST-FILE>
is dit een JSON-bestand dat invoergegevensvoorbeelden voor het model bevat om voorspellingen te doen op vergelijkbaar met de volgende JSON:
{"data": [
[1,2,3,4,5,6,7,8,9,10],
[10,9,8,7,6,5,4,3,2,1]
]}
Tip
De score-URI is het adres waar uw eindpunt luistert naar aanvragen. Gebruik de ml
extensie om de score-URI op te halen.
az ml online-endpoint show --name <ENDPOINT-NAME> --local
De uitvoer moet er als volgt uitzien:
{
"auth_mode": "aml_token",
"location": "local",
"name": "my-new-endpoint",
"properties": {},
"provisioning_state": "Succeeded",
"scoring_uri": "http://localhost:5001/score",
"tags": {},
"traffic": {},
"type": "online"
}
De score-URI vindt u in de scoring_uri
eigenschap.
Op dit moment worden eventuele onderbrekingspunten in uw run
functie gevangen. Gebruik de foutopsporingsacties om uw code te doorlopen. Zie de gids voor foutopsporingsacties voor meer informatie over foutopsporingsacties.
Uw eindpunt bewerken
Tijdens het opsporen en oplossen van problemen met uw toepassing zijn er scenario's waarin u uw scorescript en configuraties moet bijwerken.
Ga als volgende te werk om wijzigingen toe te passen op uw code:
- Werk uw code bij.
- Start de foutopsporingssessie opnieuw met behulp van de
Developer: Reload Window
opdracht in het opdrachtenpalet. Zie de documentatie voor het opdrachtenpalet voor meer informatie.
Notitie
Omdat de map met uw code- en eindpuntassets is gekoppeld aan de dev-container, worden alle wijzigingen die u in de dev-container aanbrengt, gesynchroniseerd met uw lokale bestandssysteem.
Gebruik de ml
extensieopdracht update
voor uitgebreidere wijzigingen met betrekking tot updates voor uw omgeving en eindpuntconfiguratie. Hierdoor wordt een volledige installatiekopieën opnieuw opgebouwd met uw wijzigingen.
az ml online-deployment update --file <DEPLOYMENT-YAML-SPECIFICATION-FILE> --local --vscode-debug
Zodra de bijgewerkte installatiekopie is gemaakt en de ontwikkelcontainer wordt gestart, gebruikt u het foutopsporingsprogramma van Visual Studio Code om uw bijgewerkte eindpunt te testen en problemen op te lossen.