Skip to content
Trackio : une bibliothèque légère de suivi d’expériences open-source par Hugging Face
Source: huggingface.co

Trackio : une bibliothèque légère de suivi d’expériences open-source par Hugging Face

Sources: https://huggingface.co/blog/trackio, Hugging Face Blog

Vue d’ensemble

Trackio est une bibliothèque Python open-source qui permet de suivre n’importe quelles métriques et de les visualiser via un tableau de bord Gradio local. Vous pouvez également synchroniser ce tableau de bord avec Hugging Face Spaces, ce qui vous permet de partager le tableau de bord avec d’autres utilisateurs via une URL. Étant donné que Spaces peut être privé ou public, vous pouvez partager publiquement ou uniquement au sein de votre organisation Hugging Face — le tout gratuitement. Trackio est conçu comme un remplacement en douceur pour les outils de suivi d’expériences tels que wandb, avec une API compatible wandb.init, wandb.log et wandb.finish, vous permettant d’importer trackio comme wandb dans votre code. Chez Hugging Face, Trackio se présente comme une solution légère et open-source, axée sur la vitesse d’expérimentation, le partage et la transparence. L’objectif est d’aider les chercheurs à enregistrer les métriques, paramètres et hyperparamètres pendant l’entraînement et à les visualiser ensuite pour mieux comprendre le progrès. Le projet met l’accent sur l’accessibilité, la portabilité des données et l’intégration simple avec les outils HF courants.

Principales caractéristiques

  • Tableau de bord Gradio local pour visualiser les métriques et les hyperparamètres.
  • Synchronisation du tableau de bord local avec Hugging Face Spaces pour un partage facile via une URL.
  • Open-source et gratuit.
  • Remplacement léger pour wandb; API compatible wandb.init, wandb.log et wandb.finish (à importer comme wandb).
  • Partage facile des graphiques dans des blogs et docs via iframes; partage sans nécessiter de comptes.
  • Gestion transparente des données : enregistrement et partage des métriques telles que l’utilisation d’énergie GPU via nvidia-smi pour évaluer les impacts environnementaux.
  • Accessibilité des données : extraction et analyse des données enregistrées sans verrouillage propriétaire.
  • Design léger pour expérimenter rapidement de nouvelles fonctionnalités de suivi.
  • Base de données SQLite éphémère sur Spaces ; Trackio convertit en Parquet et sauvegarde dans un Hugging Face Dataset toutes les 5 minutes.
  • Nomination du dataset : passez dataset_id à trackio.init() pour nommer le jeu de données.
  • Intégration native avec les bibliothèques Hugging Face comme transformers et accelerate ; enregistrement des métriques avec un minimum de configuration. Avec transformers.Trainer ou accelerate, pas de configuration supplémentaire nécessaire.
  • Statut : bêta et léger ; certaines fonctionnalités présentes dans d’autres outils (gestion des artefacts, visualisations avancées) ne sont pas encore disponibles.
  • Appel à la communauté : les issues et suggestions sont les bienvenues pour les améliorations.

Cas d’utilisation courants

  • Suivre les métriques, les hyperparamètres et les états intermédiaires pendant l’entraînement.
  • Visualiser les progrès localement et partager via Spaces via une URL ou une intégration dans des documents.
  • Comparer plusieurs runs côte à côte et rendre les métriques accessibles via des liens.
  • Quantifier la consommation d’énergie, par exemple l’énergie GPU, pour les discussions sur l’impact environnemental des modèles.
  • Expérimenter des fonctionnalités de suivi avec peu de surcharge et de manière rapide.
  • S’intégrer facilement aux workflows Hugging Face (Transformers, Accelerate) avec une configuration minimale.

Configuration et installation

Installez Trackio avec pip :

pip install trackio

Utilisation de Trackio comme remplacement de wandb en Python :

import trackio as wandb
wandb.init(project="mon-projet")
wandb.log({"epoch": 1, "loss": 0.25})
wandb.finish()

Pour synchroniser votre tableau de bord local avec Hugging Face Spaces, passez space_id dans init :

import trackio as wandb
wandb.init(space_id="SPACE_ID", project="mon-projet")
wandb.log({"accuracy": 0.92})

Lancer le tableau de bord peut se faire depuis le terminal ou via Python. L’article mentionne des commandes directes pour démarrer le tableau de bord localement et le lier à Spaces, ce qui permet un partage public ou privé selon la configuration du Spaces. Avec Spaces, les données enregistrées vont dans une base SQLite éphémère sur Spaces, que Trackio convertit en Parquet et sauvegarde dans un Hugging Face Dataset toutes les 5 minutes.

Démarrage rapide (exemple minimal exécutable)

Un exemple minimal qui enregistre quelques métriques lors d’un petit run :

import trackio as wandb
wandb.init(project="démarrage-rapide")
for epoch in range(3):
loss = 0.3 * (epoch + 1)
wandb.log({"epoch": epoch + 1, "loss": loss})
wandb.finish()

Si vous souhaitez publier le tableau de bord sur Spaces :

import trackio as wandb
wandb.init(space_id="SPACE_ID", project="démarrage-rapide")
wandb.log({"accuracy": 0.88})

Note : l’article met l’accent sur une expérience de remplacement pour les utilisateurs familiers avec wandb, afin que le code soit similaire tout en bénéficiant de la visualisation locale et du partage via Spaces.

Avantages et inconvénients

Avantages :

  • Tableau de bord local et option de partage via Spaces.
  • Gratuit, open-source et facile à adopter — pas d’obstacles pour partager des résultats.
  • Conception légère adaptée à l’expérimentation rapide et à l’itération.
  • Métriques d’énergie GPU (via nvidia-smi) pour soutenir les rapports d’impact environnemental.
  • Intégration native avec les outils Hugging Face (Transformers, Accelerate) avec une configuration minimale.
  • Portabilité des données : extraction possible pour des analyses personnalisées.
  • Sauvegardes dans Spaces vers des datasets Parquet pour l’accès à long terme. Inconvénients :
  • Actuellement en bêta ; la gestion des artefacts et certaines visualisations avancées ne sont pas encore disponibles.
  • Certaines fonctionnalités dépendent de la disponibilité et de la configuration du Space (Spaces public/privé).
  • En tant qu’outil relativement nouveau, l’écosystème autour de Trackio (plugins, intégrations tierces) est encore en développement.

Alternatives (comparaisons rapides)

OutilRemarques
TrackioOpen-source, gratuit; tableau de bord Gradio local; synchronisation avec Spaces; remplaçant léger de wandb; bêta; métriques d’énergie et portabilité des données; gestion d’artefacts non encore proposée.
Autres outilsNon détaillés en profondeur dans cet article; Trackio se positionne comme une alternative légère et transparente axée sur la visualisation locale et le partage via Spaces.

Prix ou Licence

Trackio est décrit comme open-source et gratuit dans l’article du blog Hugging Face, se positionnant comme une option sans coût pour le suivi d’expériences. L’article invite à la participation communautaire et à l’ouverture d’issues pour les retours et les demandes de fonctionnalités, en ligne avec les projets open-source.

Références

More resources