Fouten opsporen in taken en de voortgang van de training controleren
Machine learning-modeltraining is een iteratief proces en vereist aanzienlijke experimenten. Met de interactieve azure Machine Learning-taakervaring kunnen gegevenswetenschappers de Azure Machine Learning Python SDK, Azure Machine Learning CLI of Azure Studio gebruiken om toegang te krijgen tot de container waarin hun taak wordt uitgevoerd. Zodra de taakcontainer is geopend, kunnen gebruikers trainingsscripts herhalen, de voortgang van de training controleren of op afstand fouten opsporen in de taak, zoals ze meestal op hun lokale computers doen. Taken kunnen worden gebruikt via verschillende trainingstoepassingen, waaronder JupyterLab, TensorBoard, VS Code of door rechtstreeks via SSH verbinding te maken met de taakcontainer.
Interactieve training wordt ondersteund in Azure Machine Learning Compute-clusters en Kubernetes-cluster met Azure Arc.
Vereisten
- Bekijk hoe u aan de slag gaat met training in Azure Machine Learning.
- Zie deze koppeling voor VS Code voor het instellen van de Azure Machine Learning-extensie voor meer informatie.
- Zorg ervoor dat in uw taakomgeving de
openssh-server
ipykernel ~=6.0
pakketten zijn geïnstalleerd (voor alle gecureerde trainingsomgevingen van Azure Machine Learning zijn deze pakketten standaard geïnstalleerd). - Interactieve toepassingen kunnen niet worden ingeschakeld voor gedistribueerde trainingsuitvoeringen waarbij het distributietype niets anders is dan PyTorch, TensorFlow of MPI. Het instellen van aangepaste gedistribueerde training (het configureren van training met meerdere knooppunten zonder gebruik te maken van de bovenstaande distributieframeworks) wordt momenteel niet ondersteund.
- Als u SSH wilt gebruiken, hebt u een SSH-sleutelpaar nodig. U kunt de
ssh-keygen -f "<filepath>"
opdracht gebruiken om een openbaar en persoonlijk sleutelpaar te genereren.
Interactie met uw taakcontainer
Door interactieve toepassingen op te geven bij het maken van taken, kunt u rechtstreeks verbinding maken met de container op het rekenknooppunt waarop uw taak wordt uitgevoerd. Zodra u toegang hebt tot de taakcontainer, kunt u uw taak testen of fouten opsporen in dezelfde omgeving waarin deze zou worden uitgevoerd. U kunt VS Code ook gebruiken om te koppelen aan het actieve proces en fouten op te sporen zoals u dat lokaal zou doen.
Inschakelen tijdens het verzenden van taken
Maak een nieuwe taak vanuit het linkernavigatiedeelvenster in de studioportal.
Kies Rekencluster of Gekoppelde rekenkracht (Kubernetes) als rekentype, kies het rekendoel en geef op in hoeveel knooppunten u nodig hebt
Instance count
.
Volg de wizard om de omgeving te kiezen die u wilt starten.
Voeg in de stap Trainingsscript uw trainingscode (en invoer-/uitvoergegevens) toe en verwijs ernaar in uw opdracht om ervoor te zorgen dat deze is gekoppeld aan uw taak.
U kunt aan het einde van de opdracht de sleep <specific time>
hoeveelheid tijd opgeven die u wilt reserveren voor de rekenresource. De indeling volgt:
- slaapstand 1s
- slaapstand 1m
- slaap 1 uur
- slaapstand 1d
U kunt ook de sleep infinity
opdracht gebruiken waarmee de taak voor onbepaalde tijd in leven blijft.
Notitie
Als u gebruiktsleep infinity
, moet u de taak handmatig annuleren om de rekenresource los te laten (en de facturering te stoppen).
- Vouw in Compute-instellingen de optie voor trainingstoepassingen uit. Selecteer ten minste één trainingstoepassing die u wilt gebruiken om met de taak te communiceren. Als u geen toepassing selecteert, is de functie voor foutopsporing niet beschikbaar.
- Controleer en maak de taak.
Verbinding maken met eindpunten
Als u wilt communiceren met uw actieve taak, selecteert u de knop Fouten opsporen en controleren op de pagina met taakdetails.
Als u op de toepassingen in het deelvenster klikt, wordt een nieuw tabblad voor de toepassingen geopend. U hebt alleen toegang tot de toepassingen wanneer deze de status Actief hebben en alleen de eigenaar van de taak is gemachtigd om toegang te krijgen tot de toepassingen. Als u op meerdere knooppunten traint, kunt u het specifieke knooppunt kiezen waarmee u wilt communiceren.
Het kan enkele minuten duren voordat de taak wordt gestart en de trainingstoepassingen die zijn opgegeven tijdens het maken van de taak.
Interactie met de toepassingen
Wanneer u op de eindpunten selecteert om te communiceren wanneer uw taak werkt, gaat u naar de gebruikerscontainer onder uw werkmap, waar u toegang hebt tot uw code, invoer, uitvoer en logboeken. Als u problemen ondervindt tijdens het maken van verbinding met de toepassingen, kunt u de logboeken voor interactieve mogelijkheden en toepassingen vinden via system_logs-interactive_capability> onder het tabblad Uitvoer en logboeken.
U kunt een terminal openen vanuit Jupyter Lab en beginnen met interactie binnen de taakcontainer. U kunt uw trainingsscript ook rechtstreeks herhalen met Jupyter Lab.
U kunt ook communiceren met de taakcontainer in VS Code. Als u een foutopsporingsprogramma wilt koppelen aan een taak tijdens het verzenden van de taak en de uitvoering wilt onderbreken, gaat u hierheen.
Notitie
Werkruimten met Private Link-functionaliteit worden momenteel niet ondersteund bij interactie met de taakcontainer met VS Code.
Als u tensorflow-gebeurtenissen voor uw taak hebt geregistreerd, kunt u TensorBoard gebruiken om de metrische gegevens te bewaken wanneer uw taak wordt uitgevoerd.
Taak beëindigen
Zodra u klaar bent met de interactieve training, kunt u ook naar de pagina met taakdetails gaan om de taak te annuleren, waardoor de rekenresource wordt vrijgegeven. U kunt ook in de CLI of ml_client.job.cancel("<job name>")
in de SDK gebruikenaz ml job cancel -n <your job name>
.
Een foutopsporingsprogramma koppelen aan een taak
Als u een taak wilt verzenden waaraan een foutopsporingsprogramma is gekoppeld en de uitvoering is onderbroken, kunt u debugpy en VS Code gebruiken (debugpy
moet zijn geïnstalleerd in uw taakomgeving).
Notitie
Werkruimten met Private Link-functionaliteit worden momenteel niet ondersteund bij het koppelen van een foutopsporingsprogramma aan een taak in VS Code.
- Tijdens het verzenden van taken (via de gebruikersinterface, de CLI of de SDK) gebruikt u de opdracht voor foutopsporing om uw Python-script uit te voeren. In de volgende schermopname ziet u bijvoorbeeld een voorbeeldopdracht die gebruikmaakt van foutopsporing om het foutopsporingsprogramma voor een tensorflow-script te koppelen (
tfevents.py
kan worden vervangen door de naam van uw trainingsscript).
Zodra de taak is verzonden, maakt u verbinding met vs code en selecteert u het ingebouwde foutopsporingsprogramma.
Gebruik de foutopsporingsconfiguratie Remote Attach om te koppelen aan de verzonden taak en het pad en de poort door te geven die u hebt geconfigureerd in de opdracht voor het verzenden van taken. U kunt deze informatie ook vinden op de pagina met taakdetails.
Stel onderbrekingspunten in en doorloop de taakuitvoering zoals u dat zou doen in uw lokale foutopsporingswerkstroom.
Notitie
Als u foutopsporing gebruikt om uw taak te starten, wordt uw taak niet uitgevoerd, tenzij u het foutopsporingsprogramma in VS Code koppelt en het script uitvoert. Als dit niet is gebeurd, wordt de berekening gereserveerd totdat de taak is geannuleerd.
Volgende stappen
- Meer informatie over hoe en waar u een model kunt implementeren.