Weights & Biases
Weights & Biases (W&B) 是一个机器学习平台,可用于跟踪实验、运行超参数搜索以及对模型和数据进行版本管理。介绍其功能和 YOLO 配置。
Weights & Biases(W&B;其 Python 包名为 wandb)是一个面向开发者的机器学习运维(MLOps)平台,可记录、可视化和比较模型训练运行情况。只需在 PyTorch 或其他训练脚本中添加几行代码,就能将每次运行的配置(例如学习率和批次大小)、指标、GPU统计信息和输出文件发送到托管式仪表板。团队可以在仪表板上比较实验、复现结果,并追踪生成模型时使用的数据和设置。除了实验跟踪,W&B 还提供超参数调优、数据集和模型版本管理、模型注册表,以及通过 Weave 产品提供的大型语言模型(LLM)应用追踪和评估功能。GPU 云服务提供商 CoreWeave 于 2025 年 5 月完成对 Weights & Biases 的收购;现在,W&B 文档托管在 CoreWeave 文档网站上。
核心功能#
- 实验:
wandb.init()会启动一次运行并存储其配置,wandb.log()则会在每个步骤记录指标、图像和表格。SDK 还会采集 GPU 利用率和内存等系统指标,帮助发现数据加载瓶颈。 - Sweep:使用网格、随机或贝叶斯方法自动搜索超参数;搜索智能体可在多台机器上并行运行试验,并可选择提前终止表现不佳的运行。
- 工件:为数据集、模型检查点和其他文件提供版本管理,并通过血缘图显示每个版本由哪次运行使用或生成。
- 注册表:经过整理的模型和数据集版本目录,团队可从中选择已批准的版本并推进部署。
- 报告:可分享的文档,可将运行中的实时图表与文字分析结合起来。
- Weave:为 LLM 和智能体应用提供追踪、评估和成本跟踪功能。
Sweep 会将搜索过程与训练过程分开:控制器负责保存搜索状态并提出配置,任意数量的代理都可以获取配置、执行训练,并将目标指标反馈回来。
在 Ultralytics YOLO 中使用 W&B#
Ultralytics YOLO 内置W&B 集成,默认处于关闭状态。在Ultralytics 设置中启用后,每次训练运行都会记录完整参数列表、每个周期的损失和学习率、精确率、召回率和平均精度均值 (mAP)等验证指标,以及保存的图表;训练结束时,它还会将 best.pt 作为模型制品上传,并附上可交互的精确率-召回率曲线和置信度曲线。之后可以将这些 best.pt 制品导入 Ultralytics Platform,用于预测、导出或部署。
import os
from ultralytics import YOLO, settings
# 在本地记录而不使用 API 密钥;稍后使用 "wandb sync" 上传,或运行 "wandb login" 并删除此行
os.environ["WANDB_MODE"] = "offline"
# 启用内置 W&B 回调(需要 "pip install wandb";设置将保存到 Ultralytics 设置文件)
settings.update({"wandb": True})
# project 和 name 会分别成为 W&B 项目名称和运行名称
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=5, project="yolo26-experiments", name="baseline")共享同一个 project、但 name 不同的训练运行会并排显示在同一个 W&B 项目中,因此可以在一个仪表板上比较使用不同模型尺寸、图像尺寸或数据增强设置的运行。
W&B 与相关术语#
- 模型权重和偏置:平台名称指的是神经网络中可学习的参数。权重会缩放每个神经元的输入,偏置会在激活函数处理前偏移其输出,而反向传播会更新这两者。平台可以在训练期间记录权重和偏置的分布及梯度。
- MLflow:一个用于跟踪、打包和注册模型的开源平台,团队通常会自行托管。W&B 主要是托管服务,也为企业提供自托管选项。
- TensorBoard:用于可视化 PyTorch 和 TensorFlow 训练日志的本地工具,不提供 W&B 的托管式协作、Sweep 或注册表功能。










