用途
Weights & Biases(W&B,wandb)用于机器学习实验跟踪与 MLOps。当你需要跟踪 ML 实验并自动记录指标、在实时仪表盘中可视化训练、跨超参数与配置比较运行、通过自动化 sweeps 优化超参数、使用版本与血缘管理模型注册表、在团队工作区中协作 ML 项目,或跟踪数据集、模型、代码等 artifacts 及其血缘时,可以使用该工具。
安装与登录
安装:
pip install wandb
登录(创建 API key):
wandb login
或以编程方式设置 API key:
export WANDB_API_KEY=your_api_key_here
主要能力
基础实验跟踪
通过 wandb.init() 初始化运行,传入 project 与 config(如 learning_rate、epochs、batch_size、architecture)。在训练循环中使用 wandb.log() 记录指标,例如 train/loss、val/loss、train/accuracy、val/accuracy,最后调用 wandb.finish() 结束运行。
与 PyTorch 集成
初始化时传入 project 与 config,通过 wandb.config 访问配置。在训练循环中按批次记录 loss、epoch、batch 等指标,使用 torch.save 保存模型后可通过 wandb.save("model.pth") 上传到 W&B。
核心概念
- Projects 与 Runs:Project 是相关实验的集合,Run 是训练脚本的单次执行。可在
wandb.init()中设置 name、tags、notes,每个 run 有唯一 ID 和 URL。 - 配置跟踪:通过 config 字典自动跟踪模型架构、训练参数、数据参数等超参数,并在训练中通过
wandb.config访问。 - 指标记录:可记录标量、多指标、自定义 x 轴(step)、媒体(图像、音频、视频)、直方图(
wandb.Histogram)以及表格(wandb.Table)。 - 模型检查点:可保存 checkpoint 并通过
wandb.save()上传,或使用 Artifacts(推荐)记录模型。
超参数 Sweeps
支持自动化超参数优化。详细内容、代码示例与参数表见 references/hyperparameter-sweeps.md。
Artifacts
用于跟踪数据集、模型及其他文件及其血缘。可创建 artifact(指定 name、type、description、metadata),添加文件或目录,通过 wandb.log_artifact() 记录;使用时通过 run.use_artifact('training-dataset:latest') 下载并使用。
模型注册表
可将模型作为 artifact 记录,添加别名(如 best、production),并通过 run.link_artifact() 链接到模型注册表(如 model-registry/production-models)。
可视化与分析
支持自定义图表,例如使用 matplotlib 生成图像并通过 wandb.Image 记录,或使用 wandb.plot.confusion_matrix 记录混淆矩阵。可在 W&B UI 中创建可分享的报告,组合 runs、图表与文本,支持 Markdown 与可嵌入可视化。
团队协作
Runs 可通过 URL 自动分享。可创建团队账户、添加成员、设置项目可见性(私有/公开),并使用团队级 artifacts 与模型注册表。
使用方式与最佳实践
- 使用 tags 与 groups 组织实验,例如设置 tags、group、job_type。
- 记录所有相关信息,包括系统指标(gpu/util、gpu/memory、cpu/util)、代码版本(git_commit)与数据划分(data/train_size、data/val_size)。
- 使用描述性运行名称,例如 bert-base-lr0.001-bs32-epoch10。
- 保存重要 artifacts,例如最终模型与用于分析的预测表。
- 网络不稳定时使用离线模式:设置
os.environ["WANDB_MODE"] = "offline",之后通过wandb sync <run_directory>同步。
适用场景
适用于需要跟踪 ML 实验指标与超参数、可视化训练过程、比较不同配置、自动化超参数优化、管理模型与数据版本及血缘、以及团队协作的机器学习项目。
限制与注意事项
- 资料中提及的定价信息为:Free 版提供无限公开项目与 100GB 存储;Academic 版对学生/研究者免费;Teams 版为 $50/seat/month,含私有项目与无限存储;Enterprise 版为定制定价,提供本地部署选项。
- 版本特定细节可能已过时,应针对已安装版本查阅官方文档确认。
- 不得编造结果、参数、标识符、引用或统计数据;若无法运行或验证,应明确说明。
- 不要公开暴露服务或凭证;在配置云资源前确认成本。
- 涉及花钱、消耗共享 GPU 或云配额、接触个人或患者数据、或不可撤销的操作前应先询问。
资源
- 文档:https://docs.wandb.ai
- GitHub:https://github.com/wandb/wandb
- 示例:https://github.com/wandb/examples
- 社区:https://wandb.ai/community
- Discord:https://wandb.me/discord
参见
- references/sweeps.md - 全面的超参数优化指南
- references/artifacts.md - 数据与模型版本化模式
- references/integrations.md - 框架特定示例