Delen via


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-serveripykernel ~=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

  1. Maak een nieuwe taak vanuit het linkernavigatiedeelvenster in de studioportal.

  2. Kies Rekencluster of Gekoppelde rekenkracht (Kubernetes) als rekentype, kies het rekendoel en geef op in hoeveel knooppunten u nodig hebt Instance count.

Schermopname van het selecteren van een rekenlocatie voor een taak.

  1. Volg de wizard om de omgeving te kiezen die u wilt starten.

  2. 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.

Schermopname van het controleren van een opgestelde taak en het voltooien van de creatie.

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).

  1. 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.

Schermopname van het selecteren van een trainingstoepassing voor de gebruiker die voor een taak moet worden gebruikt.

  1. 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.

Schermopname van de foutopsporing van interactieve taken en de locatie van het deelvenster bewaken.

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.

Schermopname van informatie in het rechterpaneel van interactieve taken. Informatie-inhoud varieert, afhankelijk van de gegevens van de gebruiker.

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.

Schermopname van de interactieve locatie van het deelvenster Logboeken voor interactieve taken.

  • 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.

    Schermopname van het jupyter lab-inhoudsvenster voor interactieve taken.

  • 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.

    Schermopname van het deelvenster Interactieve taken in VS Code wanneer deze voor het eerst werd geopend. Hier ziet u het Python-voorbeeldbestand dat is gemaakt om twee regels af te drukken.

  • Als u tensorflow-gebeurtenissen voor uw taak hebt geregistreerd, kunt u TensorBoard gebruiken om de metrische gegevens te bewaken wanneer uw taak wordt uitgevoerd.

    Schermopname van het deelvenster interactieve taken tensorboard wanneer het voor het eerst werd geopend. Deze informatie is afhankelijk van klantgegevens

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>.

Schermopname van de optie voor het annuleren van taken en de locatie voor gebruikersselectie

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.

  1. 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).

Schermopname van de configuratie van interactieve taken van foutopsporing

  1. Zodra de taak is verzonden, maakt u verbinding met vs code en selecteert u het ingebouwde foutopsporingsprogramma.

    Schermopname van de locatie van het open foutopsporingsprogramma aan de linkerkant

  2. 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.

    Schermopname van interactieve taken voltooide taken

    Schermopname van interactieve taken die een knop extern bijvoegen toevoegen

  3. Stel onderbrekingspunten in en doorloop de taakuitvoering zoals u dat zou doen in uw lokale foutopsporingswerkstroom.

    Schermopname van de locatie van een voorbeeldonderbrekingspunt dat is ingesteld in de Visual Studio Code-editor

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