Configuration des Clusters
Ce guide explique comment exécuter NeMo RL avec Ray sur Slurm ou Kubernetes.
Utilisation de Slurm pour les Travaux par Lots et Interactifs
Le code suivant fournit des instructions sur la façon d’utiliser Slurm pour soumettre des travaux par lots et exécuter des travaux de manière interactive.
Soumission de Travaux par Lots
Selon la configuration de votre cluster Slurm, vous devrez peut-être inclure ou non l’option --gres=gpu:8 dans la commande sbatch.
Lors d’une soumission réussie, Slurm imprimera le SLURM_JOB_ID :
Notez le numéro de soumission du travail. Une fois le travail commencé, vous pouvez suivre son processus dans les journaux du pilote que vous pouvez tail :
Lancement Interactif
Un avantage clé de l’exécution interactive sur le nœud principal est la possibilité d’exécuter plusieurs travaux multi-nœuds sans avoir besoin de replacer dans la file d’attente de travaux Slurm. Cela signifie que pendant les sessions de débogage, vous pouvez éviter de soumettre une nouvelle commande sbatch à chaque fois. Au lieu de cela, vous pouvez déboguer et re-soumettre votre travail NeMo RL directement depuis la session interactive.
Pour exécuter de manière interactive, lancez la même commande que Soumission de Travaux par Lots, mais omettez la ligne COMMAND :
Lors d’une soumission réussie, Slurm imprimera le SLURM_JOB_ID :
Une fois le cluster Ray opérationnel, un script sera créé pour se connecter au nœud principal Ray. Exécutez ce script pour lancer des expériences :
Maintenant que vous êtes sur le nœud principal, vous pouvez lancer la commande comme suit :
Variables d’Environnement Slurm
Toutes les variables d’environnement Slurm décrites ci-dessous peuvent être ajoutées à l’invocation sbatch de ray.sub. Par exemple, GPUS_PER_NODE=8 peut être spécifié comme suit :
Configuration d’Environnement Commune
Lorsque HF_TOKEN, WANDB_API_KEY, HF_HOME et HF_DATASETS_CACHE sont définis dans votre environnement shell en utilisant export, ils sont automatiquement transmis à ray.sub. Par exemple, si vous définissez :
ce jeton sera disponible pour votre exécution NeMo RL. Pensez à ajouter ces exports à votre fichier de configuration shell, comme ~/.bashrc.
Configuration d’Environnement Avancée
Dans la plupart des cas, vous n’aurez pas besoin de modifier les ports sauf s’ils sont déjà utilisés par un autre service en arrière-plan sur votre cluster.
Kubernetes
À définir