Examiner les journaux d'expérience EAGLE3
Analyser les journaux de sortie d'une exécution du pipeline EAGLE3 lancée via launch.py ou slurm.py.
Étape 0 — Localiser les journaux d'expérience
Localisez le répertoire d'expérience. Par défaut, c'est experiments/ relatif à la racine du lanceur,
ou partout où --job-dir a été pointé.
ls -td experiments/cicd/cicd_* | head -10
Si aucune expérience n'existe, demandez le répertoire à l'utilisateur.
Étape 1 — Lire tous les journaux de tâche
Chaque expérience a un sous-répertoire par tâche (0–3). Les noms de fichiers de journal varient selon le mode de lancement
(Slurm écrit sbatch_*.out, Docker local écrit *.log), donc correspondez les fichiers journaux de façon générale et
lisez la fin de chacun en un seul appel Bash — les erreurs apparaissent à la fin :
find experiments/<exp_id>/ -type f \( -name '*.out' -o -name '*.log' \) | sort | while read -r f; do
echo "=== $f ==="; tail -200 "$f"; echo
done
Étape 2 — Analyser
Pour chaque journal de tâche, vérifiez :
- Sortie / annulation :
DUE TO TIME LIMIT,FAILED, signal (p. ex.,signal 15) - Exceptions Python / tracebacks : la dernière exception est généralement la cause racine
- Erreurs CUDA : OOM, timeout NCCL
- État Slurm : COMPLETED, FAILED, TIMEOUT, OUT_OF_MEMORY
- Indicateurs de succès : "Saved N samples", "Successfully processed N conversations", ligne de loss d'entraînement, sortie AR
Étape 3 — Produire un rapport
Générez un rapport markdown structuré :
Résumé
- État général : PASSED / FAILED / MIXED / PARTIAL
- Détail des tâches : p. ex., task_0 TIMEOUT, task_1 FAIL, task_2 ignorée, task_3 ignorée
Résultats des tâches
Pour chaque tâche (0–3) :
Task N — \<nom> : PASS / FAIL / TIMEOUT
- Sortie clé : (p. ex., "3277/3295 samples generated" ou "Script not found")
- Erreur (en cas d'échec) : message d'erreur cité, max 10 lignes
- Cause racine : diagnostic sur une ligne
- Correction suggérée : étape concrète
Avertissements
Problèmes non critiques à noter (près de l'OOM, avertissements de tokenizer, débit faible).
Étape 4 — Suggérer les prochaines étapes
Selon les résultats :
-
Si une tâche a échoué en raison d'un problème connu, suggérez la correction et comment relancer depuis cette tâche :
uv run launch.py --yaml examples/<Org>/<Model>/hf_offline_eagle3.yaml \ pipeline.task_0.skip=true \ --yes -
Si le motif d'échec semble nouveau, suggérez de le signaler dans le traceur de triage interne de l'équipe, et utilisez
/eagle3-triagepour un diagnostic plus approfondi. -
Si toutes les tâches ont réussi, suggérez d'exécuter
/eagle3-validatepour confirmer que l'AR atteint le seuil.
Motifs bénins connus (NE PAS marquer comme échecs)
| Motif | Explication |
|---|---|
| code de sortie 143 du serveur vLLM | SIGTERM — le serveur a été arrêté après la fin des requêtes. Attendu. |
CANCELLED AT ... DUE TO TASK FAILURE après exit code: 0 |
Nettoyage Slurm des nœuds de travail après succès de la tâche principale. |
destroy_process_group() was not called |
Avertissement bénin de fermeture PyTorch. |
tokenizer class ... not equal to the registered tokenizer class |
Avertissement inoffensif de désadéquation de tokenizer. |