Weights & Biases 运行监控器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/wandb-run-monitor。
技能介绍
它解决什么问题
训练一旦开始,你通常只能盯着一条 loss 曲线,等出问题时往往是事后翻日志。真正难排查的是这几类情况:某个 checkpoint 的验证指标悄悄回退、某次 run 的 GPU 利用率异常、梯度范数在若干 step 内持续走高。等发现时,实验记录已经混在几十个 run 里,手工对比既慢又容易漏。这个技能把 W&B 上已有的 run 数据当作可查询的接口,而不是只能在 UI 上点开的页面。
它如何工作
核心是 W&B 的 Python SDK 与 Public API 两条通路,能力大致分四块:
- 实时数据拉取:从活跃 run 中获取训练指标、系统层面的资源统计与梯度信息。
- 历史回查:通过
wandb.Api().runs()查询 run 的历史记录,按时间窗口比较同一指标的变化,判断是否出现回退。 - 告警外发:命中回退规则时把摘要投递到 Slack,摘要中带上 run 标识和关键数值,方便直接跳回 W&B 定位。
- 产物与血缘:借助 artifact 的版本管理与血缘追踪,把指标变化和对应产物版本串起来,而不是只留下一个「哪个 run 挂了」的结论。
运行方式是脚本化轮询或按需触发:拉取一轮 run 状态,做规则判断,再决定是否发消息。阈值和比较窗口需要自己定义。
适用边界
- 前提是已有可用的 W&B 项目、Python 环境和 Slack,SDK 需要能访问到对应 workspace。
- 它读的是 W&B 上已经上报的数据,无法替代采集端埋点;客户端没有上报的指标它看不到。
- 指标回退的判定依赖你设定的规则,误报和漏报都取决于阈值与比较窗口是否合理。
- 官方文档索引见 https://docs.wandb.ai/llms.txt,具体 API 行为以文档为准。
使用场景
- 训练任务跑在 W&B 上时,需要确认多个 run 的验证指标是否在某段 step 内回退,并把摘要发到 Slack。
- 排查模型效果波动时,需要通过 run 历史比较 loss 与梯度范数的变化,并定位对应的 artifact 版本。
- 团队在 Slack 里跟进训练质量,希望关键指标越界时立刻收到带 run 标识的通知,而不是事后翻日志。
- 需要核对系统资源统计与训练指标是否同时异常,例如 GPU 利用率飙升但指标停滞,用脚本轮询当前 run 状态。
适合人员
- 机器学习工程师:需要追踪多轮训练的指标回退,并快速定位问题 run 与对应 artifact 版本。
- 训练平台或 MLOps 工程师:负责把 W&B 的 run 历史查询和 Slack 告警接入日常排障流程。
- 研究团队负责人:希望在 Slack 中收到关键指标越界的通知,避免训练质量波动延后被发现。
- 数据科学家:需要用脚本批量比较同一指标在若干 run 之间的变化,而不是逐个页面翻看。