Místní ladění online koncových bodů v editoru Visual Studio Code

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

Zjistěte, jak pomocí ladicího programu nástroje Microsoft Visual Studio Code otestovat a ladit online koncové body místně před jejich nasazením do Azure.

Místní koncové body služby Azure Machine Učení vám pomůžou testovat a ladit bodovací skript, konfiguraci prostředí, konfiguraci kódu a model strojového učení místně.

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Ladění koncových bodů místně před jejich nasazením do cloudu vám může pomoct zachytit chyby v kódu a konfiguraci dříve. V nástroji Visual Studio Code máte různé možnosti místního ladění koncových bodů.

Tato příručka se zaměřuje na místní koncové body.

Následující tabulka obsahuje přehled scénářů, které vám pomůžou vybrat, co je pro vás nejvhodnější.

Scénář Odvození serveru HTTP Místní koncový bod
Aktualizace místního prostředí Pythonu bez opětovného sestavení image Dockeru Yes No
Aktualizace hodnoticího skriptu Ano Yes
Aktualizace konfigurací nasazení (nasazení, prostředí, kód, model) No Ano
Integrace ladicího programu editoru Visual Studio Code Ano Yes

Požadavky

V této příručce se předpokládá, že máte na počítači nainstalované následující položky.

Další informace najdete v průvodci přípravou systému na nasazení online koncových bodů.

Příklady v tomto článku vycházejí z ukázek kódu obsažených v úložišti GitHub s příklady azureml . Pokud chcete příkazy spustit místně, aniž byste museli kopírovat nebo vkládat YAML a další soubory, naklonujte úložiště a pak změňte adresáře na azureml-examples/cli:

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

Pokud jste ještě nenastavili výchozí hodnoty pro Azure CLI, uložte výchozí nastavení. Pokud se chcete vyhnout předávání hodnot pro vaše předplatné, pracovní prostor a skupinu prostředků několikrát, použijte následující příkazy. Nahraďte následující parametry hodnotami pro vaši konkrétní konfiguraci:

  • <subscription> nahraďte ID vašeho předplatného Azure.
  • Nahraďte <workspace> názvem pracovního prostoru azure machine Učení.
  • Nahraďte <resource-group> skupinou prostředků Azure, která obsahuje váš pracovní prostor.
  • Nahraďte <location> oblastí Azure, která obsahuje váš pracovní prostor.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Tip

Pomocí příkazu můžete zjistit, jaké jsou az configure -l vaše aktuální výchozí hodnoty.

Spuštění vývojového kontejneru

Azure Machine Učení místních koncových bodech používají vývojové kontejnery Dockeru a Visual Studio Code (vývojové kontejnery) k sestavení a konfiguraci místního prostředí ladění. S vývojovými kontejnery můžete využívat funkce editoru Visual Studio Code z kontejneru Dockeru. Další informace o vývojových kontejnerech najdete v tématu Vytvoření vývojového kontejneru.

Pokud chcete ladit online koncové body místně v editoru Visual Studio Code, použijte --vscode-debug příznak při vytváření nebo aktualizaci a nasazení Azure Machine Učení online. Následující příkaz používá příklad nasazení z úložiště příkladů:

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

Důležité

V Subsystém Windows pro Linux (WSL) budete muset aktualizovat proměnnou prostředí PATH tak, aby zahrnovala cestu ke spustitelnému souboru editoru Visual Studio Code nebo použít zprostředkovatele komunikace WSL. Další informace najdete v tématu Interoperabilita Windows s Linuxem.

Image Dockeru je místně sestavená. V této fázi procesu se zobrazí všechny chyby konfigurace prostředí nebo souboru modelu.

Poznámka:

Při prvním spuštění nového nebo aktualizovaného vývojového kontejneru může trvat několik minut.

Po úspěšném sestavení image se váš vývojový kontejner otevře v okně editoru Visual Studio Code.

K ladění nasazení v vývojovém kontejneru použijete několik rozšíření editoru Visual Studio Code. Azure Machine Učení tato rozšíření automaticky nainstaluje do vývojového kontejneru.

Důležité

Před zahájením ladicí relace se ujistěte, že se dokončila instalace rozšíření editoru Visual Studio Code do vývojového kontejneru.

Spuštění ladicí relace

Po nastavení prostředí použijte ladicí program editoru Visual Studio Code k místnímu otestování a ladění nasazení.

  1. Otevřete svůj bodovací skript v editoru Visual Studio Code.

    Tip

    Skript score.py použitý dříve nasazeným koncovým bodem se nachází v azureml-samples/cli/endpoints/online/managed/sample/score.py v úložišti, které jste naklonovali. Kroky v této příručce ale fungují s libovolným skriptem bodování.

  2. Nastavte zarážku kdekoli ve skriptu bodování.

    • Pokud chcete ladit chování při spuštění, umístěte zarážky do init funkce.
    • Pokud chcete ladit chování vyhodnocování, umístěte zarážky do run funkce.
  3. Vyberte zobrazení úlohy editoru Visual Studio Code.

  4. V rozevíracím seznamu Spustit a ladit vyberte AzureML: Ladění místního koncového bodu a spusťte místní ladění koncového bodu.

    V části Zarážky v zobrazení Spustit zkontrolujte, že:

    • Vyvolané výjimky jsou nezaškrtnuté.
    • Nezachycené výjimky jsou zaškrtnuté.

    Snímek obrazovky znázorňující, jak nakonfigurovat profil ladění místního prostředí azure machine Učení

  5. Výběrem ikony přehrávání vedle rozevíracího seznamu Spustit a Ladit spusťte ladicí relaci.

    V tomto okamžiku jsou zachyceny všechny zarážky ve vaší init funkci. Pomocí akcí ladění můžete procházet kód. Další informace o akcích ladění najdete v průvodci akcemi ladění.

Další informace o ladicím programu editoru Visual Studio Code naleznete v tématu Ladění.

Ladění koncového bodu

Teď, když je vaše aplikace spuštěná v ladicím programu, zkuste vytvořit předpověď pro ladění hodnoticího skriptu.

ml Pomocí příkazu rozšíření invoke vytvořte požadavek na místní koncový bod.

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

V tomto případě je soubor JSON, který obsahuje ukázky vstupních dat pro model, <REQUEST-FILE> aby předpovídal podobně jako následující JSON:

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

Tip

Identifikátor URI bodování je adresa, kde koncový bod naslouchá žádostem. ml Pomocí rozšíření získejte identifikátor URI bodování.

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

Výstup by měl vypadat zhruba takto:

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

Identifikátor URI bodování najdete ve scoring_uri vlastnosti.

V tomto okamžiku jsou zachyceny všechny zarážky ve vaší run funkci. Pomocí akcí ladění můžete procházet kód. Další informace o akcích ladění najdete v průvodci akcemi ladění.

Úprava koncového bodu

Při ladění a řešení potíží s aplikací existují scénáře, ve kterých potřebujete aktualizovat bodovací skript a konfigurace.

Použití změn v kódu:

  1. Aktualizujte kód.
  2. Restartujte ladicí relaci pomocí Developer: Reload Window příkazu na paletě příkazů. Další informace najdete v dokumentaci k paletě příkazů.

Poznámka:

Vzhledem k tomu, že adresář obsahující prostředky kódu a koncového bodu je připojený k vývojovému kontejneru, všechny změny provedené v vývojovém kontejneru se synchronizují s místním systémem souborů.

Pokud chcete provést rozsáhlejší změny týkající se aktualizací vašeho prostředí a konfigurace koncového bodu, použijte ml příkaz rozšíření update . Tím se aktivuje úplné opětovné sestavení image s vašimi změnami.

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

Po sestavení aktualizované image a spuštění vývojového kontejneru použijte ladicí program editoru Visual Studio Code k otestování a řešení potíží s aktualizovaným koncovým bodem.