名称: wandb
描述: 监控和分析 Weights & Biases 训练任务。适用于检查训练状态、检测失败、分析损失曲线、对比任务或监控实验。触发词包括:"wandb"、"training runs"、"how's training"、"did my run finish"、"any failures"、"check experiments"、"loss curve"、"gradient norm"、"compare runs"。
监控、分析和对比 W&B 训练任务。
wandb login
# 或者在环境中设置 WANDB_API_KEY
~/clawd/venv/bin/python3 ~/clawd/skills/wandb/scripts/characterize_run.py ENTITY/PROJECT/RUN_ID
分析内容:
- 损失曲线趋势(起始值 → 当前值、百分比变化、方向)
- 梯度范数健康度(检测梯度爆炸/消失)
- 评估指标(如果存在)
- 停滞检测(心跳时间)
- 进度与预计完成时间
- 配置要点
- 整体健康度结论
选项:--json 输出机器可读格式。
~/clawd/venv/bin/python3 ~/clawd/skills/wandb/scripts/watch_runs.py ENTITY [--projects p1,p2]
快速汇总所有运行中任务的健康状态,以及近期失败/完成的任务。适合用于每日简报。
选项:
- --projects p1,p2 — 指定检查的项目
- --all-projects — 检查所有项目
- --hours N — 回溯检查已完成任务的小时数(默认:24)
- --json — 输出机器可读格式
~/clawd/venv/bin/python3 ~/clawd/skills/wandb/scripts/compare_runs.py ENTITY/PROJECT/RUN_A ENTITY/PROJECT/RUN_B
并排对比内容:
- 配置差异(高亮重要参数)
- 相同步数的损失曲线
- 梯度范数对比
- 评估指标
- 性能(tokens/秒,步数/小时)
- 优胜判定
import wandb
api = wandb.Api()
# 获取任务
runs = api.runs("entity/project", {"state": "running"})
# 任务属性
run.state # 状态:running | finished | failed | crashed | canceled
run.name # 显示名称
run.id # 唯一标识符
run.summary # 最终/当前指标
run.config # 超参数
run.heartbeat_at # 用于停滞检测的心跳时间
# 获取历史记录
history = list(run.scan_history(keys=["train/loss", "train/grad_norm"]))
脚本会自动处理以下变体:
- 损失:train/loss, loss, train_loss, training_loss
- 梯度:train/grad_norm, grad_norm, gradient_norm
- 步数:train/global_step, global_step, step, _step
- 评估:eval/loss, eval_loss, eval/accuracy, eval_acc
watch_runs.py --json 并解析输出。characterize_run.py。compare_runs.py。