huggingface-trackio

Suivez et visualisez les expériences d'entraînement ML avec Trackio. À utiliser lors de la journalisation des métriques pendant l'entraînement (API Python), du déclenchement d'alertes pour les diagnostics d'entraînement ou de la récupération/analyse des métriques journalisées (CLI). Prend en charge la visualisation du tableau de bord en temps réel, les alertes avec webhooks, la synchronisation HF Space et la sortie JSON pour l'automatisation.

npx skills add https://github.com/huggingface/skills --skill huggingface-trackio

Trackio - Suivi d'expériences pour l'entraînement ML

Trackio est une bibliothèque de suivi d'expériences pour journaliser et visualiser les métriques d'entraînement ML. Elle se synchronise avec Hugging Face Spaces pour des tableaux de bord de surveillance en temps réel.

Trois interfaces

Tâche Interface Référence
Journaliser les métriques pendant l'entraînement Python API references/logging_metrics.md
Déclencher des alertes pour les diagnostics d'entraînement Python API references/alerts.md
Récupérer les métriques et alertes après/pendant l'entraînement CLI references/retrieving_metrics.md

Quand utiliser chaque interface

Python API → Journalisation

Utilisez import trackio dans vos scripts d'entraînement pour journaliser les métriques :

  • Initialisez le suivi avec trackio.init()
  • Journalisez les métriques avec trackio.log() ou utilisez report_to="trackio" de TRL
  • Finalisez avec trackio.finish()

Concept clé : Pour l'entraînement à distance/cloud, passez space_id — les métriques se synchronisent avec un tableau de bord Space afin qu'elles persistent après la fin de l'instance.

→ Consultez references/logging_metrics.md pour la configuration, l'intégration TRL et les options de configuration.

Python API → Alertes

Insérez des appels trackio.alert() dans le code d'entraînement pour signaler des événements importants — comme insérer des instructions print pour le débogage, mais structuré et interrogeable :

  • trackio.alert(title="...", level=trackio.AlertLevel.WARN) — déclenche une alerte
  • Trois niveaux de sévérité : INFO, WARN, ERROR
  • Les alertes sont imprimées sur le terminal, stockées dans la base de données, affichées dans le tableau de bord et optionnellement envoyées aux webhooks (Slack/Discord)

Concept clé pour les agents LLM : Les alertes sont le mécanisme principal pour l'itération autonome d'expériences. Un agent doit insérer des alertes dans le code d'entraînement pour les conditions de diagnostic (pics de perte, gradients NaN, faible précision, blocages d'entraînement). Puisque les alertes sont imprimées sur le terminal, un agent qui surveille la sortie du script d'entraînement les verra automatiquement. Pour les exécutions en arrière-plan ou détachées, l'agent peut interroger via CLI à la place.

→ Consultez references/alerts.md pour l'API complète des alertes, la configuration des webhooks et les flux de travail des agents autonomes.

CLI → Récupération

Utilisez la commande trackio pour interroger les métriques et alertes journalisées :

  • trackio list projects/runs/metrics — découvrez ce qui est disponible
  • trackio get project/run/metric — récupérez les résumés et valeurs
  • trackio list alerts --project <name> --json — récupérez les alertes
  • trackio show — lancez le tableau de bord
  • trackio sync — synchronisez avec HF Space

Concept clé : Ajoutez --json pour une sortie programmatique appropriée à l'automatisation et aux agents LLM.

→ Consultez references/retrieving_metrics.md pour toutes les commandes, flux de travail et formats de sortie JSON.

Configuration minimale de journalisation

import trackio

trackio.init(project="my-project", space_id="username/trackio")
trackio.log({"loss": 0.1, "accuracy": 0.9})
trackio.log({"loss": 0.09, "accuracy": 0.91})
trackio.finish()

Récupération minimale

trackio list projects --json
trackio get metric --project my-project --run my-run --metric loss --json

Flux de travail autonome d'expériences ML

Lors de l'exécution d'expériences de manière autonome en tant qu'agent LLM, le flux de travail recommandé est :

  1. Configurer l'entraînement avec des alertes — insérez des appels trackio.alert() pour les conditions de diagnostic
  2. Lancer l'entraînement — exécutez le script en arrière-plan
  3. Interroger les alertes — utilisez trackio list alerts --project <name> --json --since <timestamp> pour vérifier les nouvelles alertes
  4. Lire les métriques — utilisez trackio get metric ... pour inspecter des valeurs spécifiques
  5. Itérer — en fonction des alertes et métriques, arrêtez l'exécution, ajustez les hyperparamètres et lancez une nouvelle exécution
import trackio

trackio.init(project="my-project", config={"lr": 1e-4})

for step in range(num_steps):
    loss = train_step()
    trackio.log({"loss": loss, "step": step})

    if step > 100 and loss > 5.0:
        trackio.alert(
            title="Loss divergence",
            text=f"Loss {loss:.4f} still high after {step} steps",
            level=trackio.AlertLevel.ERROR,
        )
    if step > 0 and abs(loss) < 1e-8:
        trackio.alert(
            title="Vanishing loss",
            text="Loss near zero — possible gradient collapse",
            level=trackio.AlertLevel.WARN,
        )

trackio.finish()

Puis interrogez depuis un terminal/processus séparé :

trackio list alerts --project my-project --json --since "2025-01-01T00:00:00"