É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
/ephemeralpartagé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 cachesuv, et les caches pip. - Avant une campagne ou une longue exécution, vérifie la capacité avec
df -h /home/ubuntu/RL /ephemeralet évite de démarrer si/ephemeralest 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/.envcomme le magasin de secrets local. Il peut contenir des clés telles queWANDB_API_KEY,HF_TOKEN, ouHUGGING_FACE_HUB_TOKEN. - Avant toute exécution qui pourrait nécessiter une auth externe, charge
/home/ubuntu/RL/.envquand il existe. Ne jamais afficher,cat, logger, valider, ou résumer les valeurs secrètes. - Si
/home/ubuntu/RL/.envest 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
/ephemeralavant d'éditer les recettes ou lancer les jobs. - Réutilise une racine cache partagée telle que
/ephemeral/nemo-rl/${USER:-ubuntu}/cacheentre 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.logou un fichier équivalent sous/ephemeral. - Vérifie périodiquement le disque pendant les longues exécutions avec
df -h /ephemeralet 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
/ephemeralsoit nettoyé.