Ladění úloh a monitorování průběhu trénování
Trénování modelu strojového učení je iterativní proces a vyžaduje významné experimentování. Díky interaktivnímu pracovnímu prostředí služby Azure Machine Learning můžou datoví vědci použít sadu Azure Machine Learning Python SDK, Azure Machine Learning CLI nebo Azure Studio pro přístup ke kontejneru, ve kterém je jejich úloha spuštěná. Po přístupu ke kontejneru úloh můžou uživatelé iterovat trénovací skripty, monitorovat průběh trénování nebo vzdáleně ladit úlohu, jako obvykle dělají na místních počítačích. Úlohy je možné interagovat prostřednictvím různých trénovacích aplikací, včetně JupyterLabu, TensorBoardu, VS Code nebo připojením ke kontejneru úloh přímo přes SSH.
Interaktivní trénování se podporuje ve výpočetních clusterech Azure Machine Learning a clusteru Kubernetes s podporou služby Azure Arc.
Požadavky
- Přečtěte si , jak začít s trénováním ve službě Azure Machine Learning.
- Další informace najdete v tomto odkazu pro VS Code pro nastavení rozšíření Azure Machine Learning.
- Ujistěte se, že vaše prostředí úloh má
openssh-server
nainstalované balíčky aipykernel ~=6.0
balíčky (ve výchozím nastavení jsou tyto balíčky nainstalované ve všech trénovacích prostředích služby Azure Machine Learning). - Interaktivní aplikace nejde povolit u distribuovaných trénovacích běhů, kde je typ distribuce cokoli jiného než PyTorch, TensorFlow nebo MPI. Nastavení vlastního distribuovaného trénování (konfigurace trénování s více uzly bez použití výše uvedených distribučních architektur) se v současné době nepodporuje.
- Pokud chcete použít SSH, potřebujete pár klíčů SSH. Pomocí příkazu můžete
ssh-keygen -f "<filepath>"
vygenerovat pár veřejného a privátního klíče.
Interakce s kontejnerem úloh
Zadáním interaktivních aplikací při vytváření úlohy se můžete připojit přímo ke kontejneru na výpočetním uzlu, na kterém je vaše úloha spuštěná. Jakmile budete mít přístup k kontejneru úloh, můžete úlohu otestovat nebo ladit ve stejném prostředí, ve kterém by se spustila. VS Code můžete také použít k připojení ke spuštěnému procesu a ladění stejně jako v místním prostředí.
Povolení během odesílání úloh
Vytvořte novou úlohu z levého navigačního podokna na portálu studio.
Jako typ výpočetních prostředků zvolte Výpočetní cluster nebo Připojený výpočetní objekt (Kubernetes), zvolte cílový výpočetní objekt a určete, kolik uzlů potřebujete
Instance count
.
Postupujte podle průvodce a zvolte prostředí, které chcete spustit úlohu.
V kroku trénovacího skriptu přidejte trénovací kód (a vstupní/výstupní data) a v příkazu na něj odkazujte, abyste měli jistotu, že je připojený k vaší úloze.
Na konec příkazu můžete sleep <specific time>
zadat dobu, po kterou chcete výpočetní prostředek rezervovat. Formát je následující:
- spánek 1s
- spánek 1 min.
- spánek 1h
- 1d spánku
Můžete také použít sleep infinity
příkaz, který by zachoval úlohu naživu po neomezenou dobu.
Poznámka:
Pokud použijete sleep infinity
, budete muset úlohu ručně zrušit, abyste mohli přejít k výpočetnímu prostředku (a zastavit fakturaci).
- V nastavení výpočetních prostředků rozbalte možnost Pro trénovací aplikace. Vyberte aspoň jednu trénovací aplikaci, kterou chcete použít k interakci s úlohou. Pokud aplikaci nevyberete, funkce ladění nebude dostupná.
- Zkontrolujte a vytvořte úlohu.
Připojení ke koncovým bodům
Pokud chcete pracovat se spuštěnou úlohou, vyberte tlačítko Ladit a monitorovat na stránce podrobností úlohy.
Kliknutím na aplikace na panelu otevřete novou kartu pro aplikace. K aplikacím můžete přistupovat jenom v případech, kdy jsou ve stavu Spuštěno a k přístupu k aplikacím má oprávnění pouze vlastník úlohy. Pokud trénujete na více uzlech, můžete vybrat konkrétní uzel, se kterým chcete pracovat.
Spuštění úlohy a trénovacích aplikací zadaných během vytváření úlohy může trvat několik minut.
Interakce s aplikacemi
Když vyberete koncové body pro interakci při práci, přejdete do kontejneru uživatelů v pracovním adresáři, kde máte přístup k kódu, vstupům, výstupům a protokolům. Pokud při připojování k aplikacím narazíte na nějaké problémy, najdete interaktivní možnosti a protokoly aplikací z system_logs-interactive_capability> na kartě Výstupy a protokoly.
Terminál můžete otevřít z Prostředí Jupyter Lab a začít interagovat v rámci kontejneru úloh. Pomocí jupyter Labu můžete také přímo iterovat trénovací skript.
Můžete také pracovat s kontejnerem úloh v nástroji VS Code. Pokud chcete k úloze připojit ladicí program během odesílání úlohy a pozastavit provádění, přejděte sem.
Poznámka:
Pracovní prostory s podporou privátního propojení se v současné době nepodporují při interakci s kontejnerem úloh s VS Code.
Pokud jste zaprotokolovali události tensorflow pro úlohu, můžete pomocí TensorBoardu monitorovat metriky při spuštění úlohy.
Ukončit úlohu
Po dokončení interaktivního trénování můžete také přejít na stránku podrobností úlohy a zrušit tak úlohu, která uvolní výpočetní prostředek. Alternativně můžete použít az ml job cancel -n <your job name>
v rozhraní příkazového řádku nebo ml_client.job.cancel("<job name>")
v sadě SDK.
Připojení ladicího programu k úloze
Pokud chcete odeslat úlohu s připojeným ladicím programem a pozastaveným spuštěním, můžete použít ladicí program a VS Code (debugpy
musí být nainstalován ve vašem prostředí úlohy).
Poznámka:
Pracovní prostory s podporou privátního propojení se v současné době nepodporují při připojování ladicího programu k úloze ve VS Code.
- Během odesílání úloh (prostřednictvím uživatelského rozhraní, rozhraní příkazového řádku nebo sady SDK) pomocí příkazu debugpy spusťte skript Pythonu. Například následující snímek obrazovky ukazuje ukázkový příkaz, který používá debugpy k připojení ladicího programu pro skript tensorflow (
tfevents.py
lze nahradit názvem trénovacího skriptu).
Po odeslání úlohy se připojte ke VS Code a vyberte integrovaný ladicí program.
Pomocí konfigurace ladění Vzdálené připojení se připojte k odeslané úloze a předejte cestu a port, který jste nakonfigurovali v příkazu pro odeslání úlohy. Tyto informace najdete také na stránce podrobností úlohy.
Nastavte zarážky a projděte provádění úlohy stejně jako v místním pracovním postupu ladění.
Poznámka:
Pokud ke spuštění úlohy použijete debugpy, úloha se nespustí , pokud v editoru VS Code nepřipojujete ladicí program a skript spustíte. Pokud to neukončíte, výpočetní prostředky budou rezervovány, dokud se úloha nezruší.
Další kroky
- Přečtěte si další informace o tom, jak a kde nasadit model.