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.
| Task | Interface | Reference |
|---|---|---|
| Logging metrics during training | Python API | references/logging_metrics.md [blocked] |
| Firing alerts for training diagnostics | Python API | references/alerts.md [blocked] |
| Retrieving metrics & alerts after/during training | CLI | references/retrieving_metrics.md [blocked] |
import trackio in your training scripts to log metrics:trackio.init()trackio.log() or use TRL's report_to="trackio"trackio.finish()space_id — metrics sync to a Space dashboard so they persist after the instance terminates. Auto-created Spaces are public by default — pass private=True if the metrics should not be public.trackio.alert() calls in training code to flag important events — like inserting print statements for debugging, but structured and queryable:trackio.alert(title="...", level=trackio.AlertLevel.WARN) — fire an alertINFO, WARN, ERRORtrackio command to query logged metrics and alerts:trackio list projects/runs/metrics — discover what's availabletrackio get project/run/metric — retrieve summaries and valuestrackio list alerts --project <name> --json — retrieve alertstrackio show — launch the dashboardtrackio sync — sync to HF Space--json for programmatic output suitable for automation and LLM agents.import trackio
# Spaces are PUBLIC by default (good for shareable dashboards);
# pass private=True if the metrics should not be public
trackio.init(project="my-project", space_id="username/trackio", private=True)
trackio.log({"loss": 0.1, "accuracy": 0.9})
trackio.log({"loss": 0.09, "accuracy": 0.91})
trackio.finish()
trackio list projects --json
trackio get metric --project my-project --run my-run --metric loss --json
trackio.alert() calls for diagnostic conditionstrackio list alerts --project <name> --json --since <timestamp> to check for new alertstrackio get metric ... to inspect specific valuesimport 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()
trackio list alerts --project my-project --json --since "2025-01-01T00:00:00"