nemo-rl-brev-etiquette

Par nvidia · skills

Guide d'utilisation des instances Brev pour les agents NeMo-RL opérant dans /home/ubuntu/RL avec un espace disque de workspace limité, un volume /ephemeral plus grand, et des secrets optionnels dans /home/ubuntu/RL/.env. À utiliser lors de l'exécution de campagnes nemo-rl-auto-research, d'expériences, de jobs d'entraînement, de téléchargements de modèles ou de datasets, de commandes à fort usage de cache partagé, d'exécutions produisant des logs, de génération de checkpoints, de workflows authentifiés W&B ou Hugging Face, ou de tout workflow susceptible de créer de grands fichiers sur Brev.

npx skills add https://github.com/nvidia/skills --skill nemo-rl-brev-etiquette

Étiquette Brev

Opère en considérant que /home/ubuntu/RL est le checkout source et /ephemeral est le stockage de travail pour l'état des expériences générées. Garde le repo petit, reproductible et facile à inspecter. Déplace les outputs volumineux des runs vers /ephemeral avant de lancer quoi que ce soit de coûteux.

Règles de stockage

  • Conserve les modifications de code, les petits changements de config, les hypothèses d'expériences commitées et les enregistrements concis de reproductibilité sous /home/ubuntu/RL.
  • Place les assets d'expériences générées sous /ephemeral, notamment les checkpoints, les logs de run, les répertoires temporaires Ray, les fichiers offline W&B, les traces du profiler, les dumps d'évaluation, les échantillons de rollout et les artefacts par expérience.
  • Conserve les caches réutilisables sous une racine de cache partagée unique /ephemeral par utilisateur, pas sous chaque expérience. Cela inclut les modèles Hugging Face, les caches de datasets, les caches PyTorch, les caches Triton, les caches uv et les caches pip.
  • Avant une campagne ou un long run, vérife la capacité avec df -h /home/ubuntu/RL /ephemeral et évite de démarrer si /ephemeral est absent ou quasi plein.
  • Crée une racine de campagne telle que /ephemeral/nemo-rl/${USER:-ubuntu}/nemo-rl-auto-research/<campaign> et utilise un sous-répertoire par expérience.
  • Ne laisse pas de fichiers volumineux, répertoires de cache ou outputs générés dans le checkout git. Si un outil envoie par défaut vers le repo, change son chemin de sortie/cache avant de l'exécuter.

Secrets d'environnement

  • Traite /home/ubuntu/RL/.env comme le stockage local de secrets. Il peut contenir des clés telles que WANDB_API_KEY, HF_TOKEN ou HUGGING_FACE_HUB_TOKEN.
  • Avant tout run qui pourrait nécessiter une authentification externe, charge /home/ubuntu/RL/.env s'il existe. Ne jamais afficher, utiliser cat, logger ou committer des valeurs de secrets.
  • Si /home/ubuntu/RL/.env est absent ou qu'une clé requise reste non définie après l'avoir chargé, rappelle à l'utilisateur d'ajouter la clé nécessaire à ce fichier avant de lancer du travail authentifié.
if [ -f /home/ubuntu/RL/.env ]; then
  set -a
  . /home/ubuntu/RL/.env
  set +a
else
  echo "Missing /home/ubuntu/RL/.env; add required keys such as WANDB_API_KEY or HF_TOKEN before authenticated runs."
fi

Modèle Auto-Research

Quand tu utilises nemo-rl-auto-research, garde le ledger git dans le repo et les preuves lourdes sur /ephemeral.

if [ -f /home/ubuntu/RL/.env ]; then
  set -a
  . /home/ubuntu/RL/.env
  set +a
fi

BREV_ROOT=/ephemeral/nemo-rl/${USER:-ubuntu}
CACHE_ROOT=$BREV_ROOT/cache
CAMPAIGN_ROOT=$BREV_ROOT/nemo-rl-auto-research/<campaign>
EXP_DIR=$CAMPAIGN_ROOT/<experiment>
mkdir -p "$EXP_DIR"/{logs,checkpoints,artifacts,ray,tmp,wandb}
mkdir -p "$CACHE_ROOT"/{huggingface,torch,triton,uv,pip,xdg,wandb}

export HF_HOME=$CACHE_ROOT/huggingface
export HF_HUB_CACHE=$HF_HOME/hub
export HF_DATASETS_CACHE=$HF_HOME/datasets
export TRANSFORMERS_CACHE=$HF_HOME/transformers
export TORCH_HOME=$CACHE_ROOT/torch
export TRITON_CACHE_DIR=$CACHE_ROOT/triton
export UV_CACHE_DIR=$CACHE_ROOT/uv
export PIP_CACHE_DIR=$CACHE_ROOT/pip
export XDG_CACHE_HOME=$CACHE_ROOT/xdg
export WANDB_CACHE_DIR=$CACHE_ROOT/wandb
export RAY_TMPDIR=$EXP_DIR/ray
export TMPDIR=$EXP_DIR/tmp
export WANDB_DIR=$EXP_DIR/wandb

Enregistre les chemins absolus /ephemeral dans les champs TSV de nemo-rl-auto-research pour le chemin de log, le chemin de checkpoint, les artefacts, la racine de cache partagée et la commande. Si le TSV lui-même peut devenir volumineux, stocke le TSV complet dans /ephemeral et garde un petit fichier pointeur ou un résumé dans le repo.

Checklist de lancement

  • Inspecte d'abord le disque : df -h /home/ubuntu/RL /ephemeral.
  • Choisis une racine de run unique /ephemeral avant de modifier les recettes ou de lancer des jobs.
  • Réutilise une racine de cache partagée telle que /ephemeral/nemo-rl/${USER:-ubuntu}/cache entre les expériences sauf si un run demande explicitement un cache vierge.
  • Change les chemins de sortie des recettes, les chemins du logger, les chemins de checkpoint et les chemins temp pour qu'ils pointent sous le répertoire d'expérience.
  • Change les chemins de cache pour qu'ils pointent sous la racine de cache partagée.
  • Redirige stdout/stderr vers $EXP_DIR/logs/run.log ou un fichier équivalent sous /ephemeral.
  • Vérifie périodiquement le disque lors de longs runs avec df -h /ephemeral et arrête proprement si le volume s'épuise.
  • À la fin, résume les métriques importantes et les chemins dans le ledger du repo ; ne copie pas les artefacts volumineux dans /home/ubuntu/RL.

Nettoyage

  • Nettoie uniquement les fichiers qui appartiennent à la campagne ou l'expérience actuelle.
  • Préfère élaguer les répertoires d'expériences clairement nommés sous /ephemeral/nemo-rl/... ; ne supprime jamais les caches partagés ou le répertoire de run d'un autre utilisateur sans instruction explicite.
  • Préserve suffisamment de petites métadonnées dans le repo pour reproduire un résultat après que /ephemeral soit nettoyé.

Skills similaires