> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://fr.nvidia-localization.ferndocs.com/fr/nemo/rl/latest/debug-ne-mo-rl-applications/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/_mcp/server. # 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](https://docs.ray.io/en/latest/ray-observability/ray-distributed-debugger.html). * Lancer le [cluster interactif](/fr/nemo/rl/0-2-1/set-up-clusters#interactive-launching) avec `ray.sub`. * Lancer VS Code/Cursor sur le nœud de connexion SLURM (où `squeue`/`sbatch` est 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=legacy` n'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 : ```sh teryk@slurm-login:~$ squeue --me JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2504248 batch ray-cluster terryk R 15:01 4 node-12,node-[22,30],node-49 ``` 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 : ```sh # Le trafic du $LOCAL du nœud de connexion est transféré vers node-12:$DASHBOARD_PORT # - Si vous n'avez pas modifié le DASHBOARD_PORT par défaut dans ray.sub, il est probablement 8265 # - Choisir un LOCAL_PORT qui n'est pas utilisé. Si le cluster est multi-tenant, 8265 # sur le nœud de connexion est probablement déjà utilisé par quelqu'un d'autre. ssh -L $LOCAL_PORT:localhost:$DASHBOARD_PORT -N node-12 # Exemple de choix d'un port autre que 8265 pour le LOCAL_PORT ssh -L 52640:localhost:8265 -N node-12 ``` La sortie d'exemple du transfert de port avec `ssh` peut imprimer des journaux comme ceci, où l'avertissement est attendu. ```text Warning: Permanently added 'node-12' (ED25519) to the list of known hosts. bind [::1]:52640: Cannot assign requested address ``` ### 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). ![Étape 1 de l'Extension du Débogueur Ray](/fr/_fern-img/5606e9329725ef782649bd53a3653e3bf107b45d054b9dd6be9a08535acc626b.webp) ### Ajouter le Cluster Ray Cliquez sur le bouton "Add Cluster" dans le panneau du Débogueur Ray. ![Étape 2 de l'Extension du Débogueur Ray](/fr/_fern-img/b170924b526f30ed94120a07470cf1f8ff8be6ab1b68d655e0ded742779732a1.webp) 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 : ![Étape 3 de l'Extension du Débogueur Ray](/fr/_fern-img/3985011ad6dfe7cf19b452842b7ff636a1ac972489380fdc037f10df37b63203.webp) ### 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. ![Étape 4 de l'Extension du Débogueur Ray](/fr/_fern-img/c15d24a1fb9305a3a26e77ea62330a66b9690cf48eb495bd124a883907d454e0.webp) ## 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` : ```sh RAY_DEBUG=legacy uv run .... ```