gradio-app/trackio
A lightweight, local-first, and free experiment tracking library from Hugging Face 🤗
Trackio – 轻量级、免费的实验跟踪,适用于人类和 AI 代理
它是什么 – Trackio 是一个 Python 库(带有基于 Svelte 的 Web UI),可让您记录机器学习运行的指标、配置、工件和警报。它将所有内容本地存储在 SQLite 数据库中(可选冻结为 Parquet),并可在您的机器上提供仪表板或将其发布到免费的 Hugging Face Space。该 API 特意与流行的 wandb 客户端兼容,因此您可以无缝替换 import wandb 为 import trackio as wandb。
核心功能
- 本地优先,云可选 – 默认情况下日志保留在您的磁盘上;您可以稍后同步到 Hugging Face Space 进行共享。
- SQLite 存储 + Parquet 导出 – 通过每 0.5 秒刷新一次的内存队列实现快速、高吞吐量的写入。
- CLI 和 SQL 查询 –
trackio query … --sql "SELECT …"让 LLM 驱动的代理直接读取数据。 - 兼容 WandB 的 API –
trackio.init、trackio.log、trackio.finish可作为直接替代品。 - 仪表板 – 一个 Gradio 风格的 UI(使用
trackio show启动)显示指标、媒体、表格、警报,并可通过 iframe 嵌入。 - 警报和 Webhook – 在自定义条件下发送 Slack/Discord/任何 URL 通知。
- 无限个人/团队使用免费 – 无需付费层级。
- 可自托管 – 在任何服务器上运行后端/API,并使用
TRACKIO_SERVER_URL将客户端指向它。
快速开始
pip install trackio # Python 3.10+
import trackio, random, time
trackio.init(project="demo", config={"epochs":5})
for epoch in range(5):
trackio.log({"epoch": epoch,
"loss": random.random(),
"acc": random.random()})
time.sleep(0.1)
trackio.finish()
运行 trackio show(或在代码中运行 trackio.show())以打开仪表板。
云和共享
- Hugging Face Spaces – 将
space_id="user/space"传递给trackio.init,库将自动创建或使用一个 Space,通过huggingface-cli处理身份验证。 - 同步 –
trackio.sync(project="my", space_id="user/space")将本地 SQLite 数据库上传到 Space 以供协作查看。 - 嵌入 – 使用带有查询参数(
project=…、metrics=…、theme=dark等)的 iframe 在博客或文档中嵌入实时仪表板。
性能
- 非阻塞
log()调用;后台线程批量写入。 - 本地日志记录:实际上无限吞吐量(每秒数千次调用)。
- Space 日志记录:单次运行约 2 千条日志在 < 8 秒内;使用 32 个并行线程时约 32 千条日志在约 14 秒内(免费层级 Space 硬件)。
开发和可扩展性
- 后端用纯 Python 编写;UI 在
trackio/frontend/下的 Svelte 5 中。 - 友好分叉:替换前端目录,重新构建,并提供相同的 API。
- 文档:https://huggingface.co/docs/trackio
- 许可证:MIT。
谁可能使用它?
- 想要零成本、离线优先跟踪器的研究人员。
- 需要通过 CLI/SQL 记录并稍后查询实验数据的 LLM 驱动代理。
- 更喜欢自托管或 Hugging Face Spaces 而非 Weights & Biases 等商业服务的团队。
发音: TRACK-yo("track yo' experiments")。
関連
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト