Déboguer les Applications NeMo RL
Déboguer les Applications NeMo RL
Ce guide explique comment déboguer des applications NeMo RL, couvrant deux scénarios. Il décrit d’abord la procédure pour déboguer des processus de workers/acteurs Ray distribués à l’aide du Débogueur Distribué Ray dans un environnement SLURM, puis détaille le débogage du script pilote principal.
Déboguer Workers/Acteurs sur SLURM
Comme les programmes Ray peuvent générer plusieurs workers et acteurs, l’utilisation du Débogueur Distribué Ray est essentielle pour atteindre avec précision les points d’arrêt sur chaque worker.
Prérequis
- Installer l’extension de Débogueur Ray pour VS Code/Cursor.
- Lancer le cluster interactif avec
ray.sub. - Lancer VS Code/Cursor sur le nœud de connexion SLURM (où
squeue/sbatchest disponible). - Ajouter
breakpoint()dans votre code sous les acteurs et tâches (c’est-à-dire les classes ou fonctions décorées avec@ray.remote). - S’assurer que
RAY_DEBUG=legacyn’est pas défini, car ce débogage nécessite le débogueur distribué par défaut.
Transférer un Port depuis le Nœud Principal
Depuis le nœud de connexion SLURM, interroger les nœuds utilisés par le travail interactif ray.sub comme suit :
Le premier nœud est toujours le nœud principal, nous devons donc transférer le port du tableau de bord vers le nœud de connexion :
La sortie d’exemple du transfert de port avec ssh peut imprimer des journaux comme ceci, où l’avertissement est attendu.
Ouvrir l’Extension du Débogueur Ray
Dans VS Code ou Cursor, ouvrez l’extension du Débogueur Ray en cliquant sur l’icône Ray dans la barre d’activité ou en recherchant “View: Show Ray Debugger” dans la Palette de Commandes (Ctrl+Shift+P ou Cmd+Shift+P).

Ajouter le Cluster Ray
Cliquez sur le bouton “Add Cluster” dans le panneau du Débogueur Ray.

Entrez l’adresse et le port que vous avez configurés lors de l’étape de transfert de port. Si vous avez suivi l’exemple ci-dessus en utilisant le port 52640, vous entrerez :

Ajouter un Point d’Arrêt et Exécuter Votre Programme
Le Panneau du Débogueur Ray pour le cluster 127.0.0.1:52640 liste tous les points d’arrêt actifs. Pour commencer le débogage, sélectionnez un point d’arrêt dans la liste déroulante et cliquez sur Start Debugging pour atteindre ce worker.
Notez que vous pouvez passer entre les points d’arrêt sur tous les workers avec ce processus.

Déboguer le Script Pilote
Par défaut, définir des points d’arrêt dans le script pilote (en dehors de @ray.remote) ne mettra pas en pause l’exécution du programme lors de l’utilisation de Ray. Pour permettre la pause à ces points d’arrêt, définissez la variable d’environnement à RAY_DEBUG=legacy :