Huggingface Trackio

作者 huggingfaceabc20ae526d8无许可证11K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库今天更新

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.

仅含说明AI & Agents
AI 生成的概览

指导使用 Trackio 实验跟踪库记录、告警和检索机器学习训练指标。

功能
该技能说明如何使用 Trackio 跟踪并可视化机器学习训练实验。内容涵盖通过 Python API 记录指标、为训练诊断触发结构化告警,以及通过 CLI 检索指标和告警,并支持 JSON 输出以便自动化。它还介绍了将结果同步到 Hugging Face Spaces 以生成实时仪表盘。
适用场景
适用于在训练脚本中加入指标记录、设置损失飙升或 NaN 梯度等诊断告警,或从命令行查询已记录的指标和告警。它也面向自主实验循环,让智能体轮询告警和指标以决定下一次运行。
运行要求
记录和告警 API 需要 Trackio Python 包,检索需要 trackio 命令行工具。同步到 Hugging Face Space 需要 Hugging Face 账号和 space 标识,Webhook 告警需要配置 Slack 或 Discord webhook。Space 同步和 Webhook 需要网络访问。该技能不附带脚本,仅包含说明和参考文档。

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

TaskInterfaceReference
Logging metrics during trainingPython APIreferences/logging_metrics.md [blocked]
Firing alerts for training diagnosticsPython APIreferences/alerts.md [blocked]
Retrieving metrics & alerts after/during trainingCLIreferences/retrieving_metrics.md [blocked]

When to Use Each

Python API → Logging

Use import trackio in your training scripts to log metrics:

  • Initialize tracking with trackio.init()
  • Log metrics with trackio.log() or use TRL's report_to="trackio"
  • Finalize with trackio.finish()

Key concept: For remote/cloud training, pass 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.

→ See references/logging_metrics.md [blocked] for setup, TRL integration, and configuration options.

Python API → Alerts

Insert 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 alert
  • Three severity levels: INFO, WARN, ERROR
  • 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 [blocked] for the full alerts API, webhook setup, and autonomous agent workflows.

CLI → Retrieving

Use the trackio command to query logged metrics and alerts:

  • trackio list projects/runs/metrics — discover what's available
  • trackio get project/run/metric — retrieve summaries and values
  • trackio list alerts --project <name> --json — retrieve alerts
  • trackio show — launch the dashboard
  • trackio sync — sync to HF Space

Key concept: Add --json for programmatic output suitable for automation and LLM agents.

→ See references/retrieving_metrics.md [blocked] for all commands, workflows, and JSON output formats.

Minimal Logging Setup

python
import trackio
# Spaces are PUBLIC by default (good for shareable dashboards);# pass private=True if the metrics should not be publictrackio.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()

Minimal Retrieval

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

Autonomous ML Experiment Workflow

When running experiments autonomously as an LLM agent, the recommended workflow is:

  1. Set up training with alerts — insert trackio.alert() calls for diagnostic conditions
  2. Launch training — run the script in the background
  3. Poll for alerts — use trackio list alerts --project <name> --json --since <timestamp> to check for new alerts
  4. Read metrics — use trackio get metric ... to inspect specific values
  5. 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"

来源与署名

来源:huggingface/skills位于skills/huggingface-trackio提交abc20ae

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架