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.

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.

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

  2. 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.
  3. Selecteer de visual Studio Code-taakweergave.

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

    Schermopname die laat zien hoe u het foutopsporingsprofiel voor lokale omgevingen in Azure Machine Learning configureert.

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

  1. Werk uw code bij.
  2. 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.