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 Learning pomáhají 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ů.
- Odvození serveru HTTP ve službě Azure Machine Learning
- Místní koncový 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 služby Azure Machine Learning. - 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
Místní koncové body služby Azure Machine Learning používají ke sestavování a konfiguraci místního prostředí ladění kontejnery Docker a Visual Studio Code (vývojové kontejnery). 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 příznak --vscode-debug
při vytváření nebo aktualizaci online nasazení služby Azure Machine Learning. 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 Learning 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í.
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í.
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.
- Pokud chcete ladit chování při spuštění, umístěte zarážky do
Vyberte zobrazení úlohy editoru Visual Studio Code.
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é.
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:
- Aktualizujte kód.
- 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.