Dela via


Felsöka onlineslutpunkter lokalt i Visual Studio Code

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

Lär dig hur du använder Felsökningsprogrammet för Microsoft Visual Studio Code för att testa och felsöka onlineslutpunkter lokalt innan du distribuerar dem till Azure.

Lokala Slutpunkter i Azure Machine Learning hjälper dig att testa och felsöka ditt bedömningsskript, miljökonfiguration, kodkonfiguration och maskininlärningsmodell lokalt.

Viktigt!

Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.

Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Genom att felsöka slutpunkter lokalt innan du distribuerar dem till molnet kan du få fel i koden och konfigurationen tidigare. Du har olika alternativ för att felsöka slutpunkter lokalt med Visual Studio Code.

Den här guiden fokuserar på lokala slutpunkter.

Följande tabell innehåller en översikt över scenarier som hjälper dig att välja vad som fungerar bäst för dig.

Scenario Slutsatsdragning av HTTP-server Lokal slutpunkt
Uppdatera den lokala Python-miljön utan att docker-avbildningen återskapas Ja Nej
Uppdateringsbedömningsskript Ja Ja
Uppdatera distributionskonfigurationer (distribution, miljö, kod, modell) Nej Ja
Visual Studio Code-felsökningsintegrering Ja Ja

Förutsättningar

Den här guiden förutsätter att du har följande objekt installerade lokalt på datorn.

Mer information finns i guiden om hur du förbereder systemet för distribution av onlineslutpunkter.

Exemplen i den här artikeln baseras på kodexempel som finns på GitHub-lagringsplatsen azureml-examples . Om du vill köra kommandona lokalt utan att behöva kopiera/klistra in YAML och andra filer klonar du lagringsplatsen och ändrar sedan kataloger till azureml-examples/cli:

git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli

Om du inte redan har angett standardinställningarna för Azure CLI sparar du standardinställningarna. Använd följande kommandon för att undvika att skicka in värdena för din prenumeration, arbetsyta och resursgrupp flera gånger. Ersätt följande parametrar med värden för din specifika konfiguration:

  • Ersätt <subscription> med ditt Azure-prenumerations-ID.
  • Ersätt <workspace> med namnet på din Azure Machine Learning-arbetsyta.
  • Ersätt <resource-group> med den Azure-resursgrupp som innehåller din arbetsyta.
  • Ersätt <location> med Den Azure-region som innehåller din arbetsyta.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Dricks

Du kan se vilka dina aktuella standardvärden är med hjälp az configure -l av kommandot .

Starta utvecklingscontainer

Lokala Slutpunkter i Azure Machine Learning använder Docker- och Visual Studio Code-utvecklingscontainrar (dev-containrar) för att skapa och konfigurera en lokal felsökningsmiljö. Med dev-containrar kan du dra nytta av Visual Studio Code-funktioner inifrån en Docker-container. Mer information om dev-containrar finns i Skapa en utvecklingscontainer.

Om du vill felsöka onlineslutpunkter lokalt i Visual Studio Code använder du --vscode-debug flaggan när du skapar eller uppdaterar och Azure Machine Learning onlinedistribution. Följande kommando använder ett distributionsexempel från exempeldatabasen:

az ml online-deployment create --file endpoints/online/managed/sample/blue-deployment.yml --local --vscode-debug

Viktigt!

På Windows-undersystem för Linux (WSL) måste du uppdatera din PATH-miljövariabel för att inkludera sökvägen till den körbara Visual Studio Code-filen eller använda WSL-interop. Mer information finns i Windows-samverkan med Linux.

En Docker-avbildning skapas lokalt. Eventuella miljökonfigurations- eller modellfilfel visas i det här skedet av processen.

Kommentar

Första gången du startar en ny eller uppdaterad utvecklingscontainer kan det ta flera minuter.

När avbildningen har skapats öppnas utvecklingscontainern i ett Visual Studio Code-fönster.

Du använder några Visual Studio Code-tillägg för att felsöka dina distributioner i utvecklingscontainern. Azure Machine Learning installerar automatiskt dessa tillägg i din utvecklingscontainer.

Viktigt!

Innan du påbörjar felsökningssessionen kontrollerar du att Visual Studio Code-tilläggen har installerats i utvecklingscontainern.

Starta felsökningssession

När miljön har konfigurerats använder du Felsökningsprogrammet för Visual Studio Code för att testa och felsöka distributionen lokalt.

  1. Öppna ditt bedömningsskript i Visual Studio Code.

    Dricks

    Det score.py skript som användes av slutpunkten som distribuerades tidigare finns på azureml-samples/cli/endpoints/online/managed/sample/score.py på lagringsplatsen som du klonade. Stegen i den här guiden fungerar dock med valfritt bedömningsskript.

  2. Ange en brytpunkt var som helst i bedömningsskriptet.

    • Om du vill felsöka startbeteende placerar du brytpunkterna init i funktionen.
    • Om du vill felsöka bedömningsbeteende placerar du brytpunkterna run i funktionen.
  3. Välj vyn Visual Studio Code-jobb.

  4. I listrutan Kör och felsöka väljer du AzureML: Felsök lokal slutpunkt för att börja felsöka slutpunkten lokalt.

    Kontrollera följande i avsnittet Brytpunkter i körningsvyn:

    • Utlösta undantag är avmarkerat
    • Ohanterade undantag är markerat

    Skärmbild som visar hur du konfigurerar felsökningsprofilen för Azure Machine Learning Debug Local Environment.

  5. Välj uppspelningsikonen bredvid listrutan Kör och felsök för att starta felsökningssessionen.

    Nu fångas alla brytpunkter i funktionen init . Använd felsökningsåtgärderna för att gå igenom koden. Mer information om felsökningsåtgärder finns i felsökningsguiden.

Mer information om felsökningsprogrammet för Visual Studio Code finns i Felsökning.

Felsöka slutpunkten

Nu när programmet körs i felsökningsprogrammet kan du prova att göra en förutsägelse för att felsöka ditt bedömningsskript.

Använd tilläggskommandot ml invoke för att göra en begäran till din lokala slutpunkt.

az ml online-endpoint invoke --name <ENDPOINT-NAME> --request-file <REQUEST-FILE> --local

I det här fallet <REQUEST-FILE> är en JSON-fil som innehåller indataexempel för modellen för att göra förutsägelser på liknande sätt som följande JSON:

{"data": [
    [1,2,3,4,5,6,7,8,9,10], 
    [10,9,8,7,6,5,4,3,2,1]
]}

Dricks

Bedömnings-URI:n är den adress där slutpunkten lyssnar efter begäranden. ml Använd tillägget för att hämta bedömnings-URI:n.

az ml online-endpoint show --name <ENDPOINT-NAME> --local

Utdata bör se ut ungefär så här:

{
 "auth_mode": "aml_token",
 "location": "local",
 "name": "my-new-endpoint",
 "properties": {},
 "provisioning_state": "Succeeded",
 "scoring_uri": "http://localhost:5001/score",
 "tags": {},
 "traffic": {},
 "type": "online"
}

Bedömnings-URI:n finns i egenskapen scoring_uri .

Nu fångas alla brytpunkter i funktionen run . Använd felsökningsåtgärderna för att gå igenom koden. Mer information om felsökningsåtgärder finns i felsökningsguiden.

Redigera din slutpunkt

När du felsöker och felsöker ditt program finns det scenarier där du behöver uppdatera ditt bedömningsskript och dina konfigurationer.

Så här tillämpar du ändringar i koden:

  1. Uppdatera koden.
  2. Starta om felsökningssessionen Developer: Reload Window med kommandot i kommandopaletten. Mer information finns i dokumentationen för kommandopaletten.

Kommentar

Eftersom katalogen som innehåller din kod och slutpunktstillgångar är monterad på utvecklingscontainern synkroniseras alla ändringar du gör i utvecklingscontainern med ditt lokala filsystem.

Om du vill ha mer omfattande ändringar som rör uppdateringar av din miljö och slutpunktskonfiguration använder du tilläggskommandot ml update . Detta utlöser en fullständig återskapande av avbildning med dina ändringar.

az ml online-deployment update --file <DEPLOYMENT-YAML-SPECIFICATION-FILE> --local --vscode-debug

När den uppdaterade avbildningen har skapats och utvecklingscontainern startas använder du Felsökningsprogrammet för Visual Studio Code för att testa och felsöka den uppdaterade slutpunkten.