mcpField
H
hugging-face-trackio

hugging-face-trackio

github.com/huggingface数据与数据库11.2k226 次安装2 天前更新
代码仓库

关于 hugging-face-trackio

hugging-face-trackio 是一项使用 Trackio 跟踪机器学习训练实验的技能,涵盖指标记录、诊断告警、仪表板和命令行查询,适用于研究人员及迭代训练的 Agent。

主要功能

  1. 01通过 Python API 记录训练指标
  2. 02创建诊断告警
  3. 03在仪表板查看指标
  4. 04用命令行查询指标与告警
  5. 05使用 JSON 输出进行自动化

适用场景

  1. 01监控训练中的损失和准确率
  2. 02发现训练停滞或 NaN 梯度
  3. 03轮询告警并检查运行指标
  4. 04在不同运行间调整超参数

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/hugging-face-trackio确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
references/
alerts.md
logging_metrics.md
retrieving_metrics.md

详细介绍

Trackio - ML 训练实验跟踪

Trackio 是一个用于记录和可视化 ML 训练指标的实验跟踪库。它会同步到 Hugging Face Spaces,以提供实时监控仪表板。

三种接口

任务接口参考文档
训练期间记录指标Python APIreferences/logging_metrics.md
为训练诊断触发警报Python APIreferences/alerts.md
训练结束后或期间获取指标和警报CLIreferences/retrieving_metrics.md

何时使用各接口

Python API → 记录日志

在训练脚本中使用 import trackio 来记录指标:

  • 使用 trackio.init() 初始化跟踪
  • 使用 trackio.log() 记录指标,或使用 TRL 的 report_to="trackio"
  • 使用 trackio.finish() 完成跟踪

关键概念:对于远程/云端训练,请传入 space_id——指标会同步到 Space 仪表板,因此即使实例终止后也会保留。

→ 请参阅 references/logging_metrics.md,了解设置、TRL 集成和配置选项。

Python API → 警报

在训练代码中插入 trackio.alert() 调用,以标记重要事件——类似于插入 print 语句进行调试,但结构化且可查询:

  • trackio.alert(title="...", level=trackio.AlertLevel.WARN) — 触发警报
  • 三个严重性级别:INFO、WARN、ERROR
  • 警报会打印到终端、存储在数据库中、显示在仪表板上,并可选择发送到 Webhook(Slack/Discord)

对大模型 Agent 的关键概念:警报是自主迭代实验的主要机制。Agent 应在训练代码中为诊断条件插入警报(损失突增、NaN 梯度、准确率低、训练停滞)。由于警报会打印到终端,监视训练脚本输出的 Agent 会自动看到它们。对于后台或分离运行,Agent 则可以通过 CLI 轮询。

→ 请参阅 references/alerts.md,了解完整的警报 API、Webhook 设置和自主 Agent 工作流。

CLI → 获取数据

使用 trackio 命令查询已记录的指标和警报:

  • trackio list projects/runs/metrics — 查找可用内容
  • trackio get project/run/metric — 获取摘要和值
  • trackio list alerts --project <name> --json — 获取警报
  • trackio show — 启动仪表板
  • trackio sync — 同步到 HF Space

关键概念:添加 --json 可生成适合自动化和大模型 Agent 使用的程序化输出。

→ 请参阅 references/retrieving_metrics.md,了解所有命令、工作流和 JSON 输出格式。

最简日志记录设置

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()
最简数据获取
trackio list projects --json
trackio get metric --project my-project --run my-run --metric loss --json

自主 ML 实验工作流

作为大模型 Agent 自主运行实验时,建议使用以下工作流:

  1. 设置带警报的训练 — 为诊断条件插入 trackio.alert() 调用
  2. 启动训练 — 在后台运行脚本
  3. 轮询警报 — 使用 trackio list alerts --project <name> --json --since <timestamp> 检查新警报
  4. 读取指标 — 使用 trackio get metric ... 检查特定值
  5. 迭代 — 根据警报和指标,停止运行、调整超参数,然后启动新一轮运行
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()

然后从单独的终端/进程中轮询:

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

评论

支持 Markdown