huggingface-trackio
Original:🇺🇸 English
Translated
Track and visualize ML training experiments with Trackio. Use when logging metrics during training (Python API), firing alerts for training diagnostics, or retrieving/analyzing logged metrics (CLI). Supports real-time dashboard visualization, alerts with webhooks, HF Space syncing, and JSON output for automation.
3installs
Sourcehuggingface/skills
Added on
NPX Install
npx skill4agent add huggingface/skills huggingface-trackioTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Trackio - Experiment Tracking for ML Training
Trackio is an experiment tracking library for logging and visualizing ML training metrics. It syncs to Hugging Face Spaces for real-time monitoring dashboards.
Three Interfaces
| Task | Interface | Reference |
|---|---|---|
| Logging metrics during training | Python API | references/logging_metrics.md |
| Firing alerts for training diagnostics | Python API | references/alerts.md |
| Retrieving metrics & alerts after/during training | CLI | references/retrieving_metrics.md |
When to Use Each
Python API → Logging
Use in your training scripts to log metrics:
import trackio- Initialize tracking with
trackio.init() - Log metrics with or use TRL's
trackio.log()report_to="trackio" - Finalize with
trackio.finish()
Key concept: For remote/cloud training, pass — metrics sync to a Space dashboard so they persist after the instance terminates.
space_id→ See references/logging_metrics.md for setup, TRL integration, and configuration options.
Python API → Alerts
Insert calls in training code to flag important events — like inserting print statements for debugging, but structured and queryable:
trackio.alert()- — fire an alert
trackio.alert(title="...", level=trackio.AlertLevel.WARN) - Three severity levels: ,
INFO,WARNERROR - Alerts are printed to terminal, stored in the database, shown in the dashboard, and optionally sent to webhooks (Slack/Discord)
Key concept for LLM agents: Alerts are the primary mechanism for autonomous experiment iteration. An agent should insert alerts into training code for diagnostic conditions (loss spikes, NaN gradients, low accuracy, training stalls). Since alerts are printed to the terminal, an agent that is watching the training script's output will see them automatically. For background or detached runs, the agent can poll via CLI instead.
→ See references/alerts.md for the full alerts API, webhook setup, and autonomous agent workflows.
CLI → Retrieving
Use the command to query logged metrics and alerts:
trackio- — discover what's available
trackio list projects/runs/metrics - — retrieve summaries and values
trackio get project/run/metric - — retrieve alerts
trackio list alerts --project <name> --json - — launch the dashboard
trackio show - — sync to HF Space
trackio sync
Key concept: Add for programmatic output suitable for automation and LLM agents.
--json→ See references/retrieving_metrics.md for all commands, workflows, and JSON output formats.
Minimal Logging Setup
python
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()Minimal Retrieval
bash
trackio list projects --json
trackio get metric --project my-project --run my-run --metric loss --jsonAutonomous ML Experiment Workflow
When running experiments autonomously as an LLM agent, the recommended workflow is:
- Set up training with alerts — insert calls for diagnostic conditions
trackio.alert() - Launch training — run the script in the background
- Poll for alerts — use to check for new alerts
trackio list alerts --project <name> --json --since <timestamp> - Read metrics — use to inspect specific values
trackio get metric ... - Iterate — based on alerts and metrics, stop the run, adjust hyperparameters, and launch a new run
python
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()Then poll from a separate terminal/process:
bash
trackio list alerts --project my-project --json --since "2025-01-01T00:00:00"