brev-etiquette

Par nvidia · skills

Conseils d'exploitation des instances Brev pour les agents NeMo-RL travaillant dans `/home/ubuntu/RL`, avec un disque d'espace de travail limité, un volume `/ephemeral` plus grand, et des secrets optionnels dans `/home/ubuntu/RL/.env`. À utiliser lors de campagnes de recherche automatisée, d'expériences, de jobs d'entraînement, de téléchargements de modèles ou de datasets, de commandes à cache lourd 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 brev-etiquette

Étiquette Brev

Opère comme si /home/ubuntu/RL était le checkout source et /ephemeral l'espace de stockage de travail pour l'état généré des expériences. Garde le repo petit, reproductible et facile à inspecter. Déplace les sorties volumineuses vers /ephemeral avant de lancer quoi que ce soit de coûteux.

Règles de Stockage

  • Conserve les édits de code, les petits changements de configuration, les hypothèses d'expériences validées, et les registres de reproductibilité concis dans /home/ubuntu/RL.
  • Place les assets généré d'expériences sous /ephemeral, incluant checkpoints, logs d'exécution, répertoires temporaires Ray, fichiers W&B hors ligne, traces de profiler, dumps d'évaluation, échantillons de rollout, et artefacts par expérience.
  • Garde les caches réutilisables sous une racine /ephemeral partagée unique 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 une longue exécution, vérifie la capacité avec df -h /home/ubuntu/RL /ephemeral et évite de démarrer si /ephemeral est absent ou presque plein.
  • Crée une racine de campagne telle que /ephemeral/nemo-rl/${USER:-ubuntu}/auto-research/<campaign> et utilise un sous-répertoire par expérience.
  • Ne laisse pas de gros fichiers, répertoires cache ou sorties générées dans le checkout git. Si un outil se limite au repo par défaut, remplace son chemin de sortie/cache avant de l'exécuter.

Secrets d'Environnement

  • Traite /home/ubuntu/RL/.env comme le magasin de secrets local. Il peut contenir des clés telles que WANDB_API_KEY, HF_TOKEN, ou HUGGING_FACE_HUB_TOKEN.
  • Avant toute exécution qui pourrait nécessiter une auth externe, charge /home/ubuntu/RL/.env quand il existe. Ne jamais afficher, cat, logger, valider, ou résumer les valeurs secrètes.
  • Si /home/ubuntu/RL/.env est absent, ou qu'une clé requise reste toujours 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

Motif Auto-Research

Quand tu utilises auto-research, garde le ledger git dans le repo et les preuves volumineuses 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/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 auto-research pour le chemin de log, le chemin de checkpoint, les artefacts, la racine cache partagée, et la commande. Si le TSV lui-même peut devenir gros, stocke le TSV complet dans /ephemeral et garde un petit fichier pointeur ou résumé dans le repo.

Checklist de Lancement

  • Inspecte le disque d'abord : df -h /home/ubuntu/RL /ephemeral.
  • Choisis une racine d'exécution unique dans /ephemeral avant d'éditer les recettes ou lancer les jobs.
  • Réutilise une racine cache partagée telle que /ephemeral/nemo-rl/${USER:-ubuntu}/cache entre expériences sauf si une exécution demande explicitement un cache propre.
  • Remplace les chemins de sortie de recette, les chemins de logger, les chemins de checkpoint, et les chemins temporaires pour qu'ils pointent sous le répertoire d'expérience.
  • Remplace les chemins cache pour qu'ils pointent sous la racine cache partagée.
  • Enregistre stdout/stderr dans $EXP_DIR/logs/run.log ou un fichier équivalent sous /ephemeral.
  • Vérifie périodiquement le disque pendant les longues exécutions avec df -h /ephemeral et arrête proprement si le volume approche l'épuisement.
  • À la fin, résume les métriques et chemins importants dans le ledger du repo ; ne copie pas les artefacts volumineux dans /home/ubuntu/RL.

Nettoyage

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

Skills similaires