SwanLab 是一个开源实验跟踪工具。该技能用于在需要开源运行跟踪、本地或自托管仪表盘、以及轻量级媒体记录时,提供使用指导。
用途 适用场景包括:用指标、配置、标签和描述跟踪机器学习实验;用标量图表和记录的媒体可视化训练;对比不同随机种子、检查点和超参数下的运行;在本地或自托管环境中工作,而不依赖托管式 SaaS;与 PyTorch、Transformers、PyTorch Lightning 或 Fastai 集成。部署方式支持云端、本地或自托管。媒体类型支持图像、音频、文本、GIF、点云、分子。集成支持 PyTorch、Transformers、PyTorch Lightning、Fastai。
安装 安装 SwanLab 及本技能使用的媒体依赖:
pip install "swanlab>=0.7.11" "pillow>=9.0.0" "soundfile>=0.12.0"
为 mode="local" 和 swanlab watch 添加本地仪表盘支持:
pip install "swanlab[dashboard]>=0.7.11"
可选的框架集成:
pip install transformers pytorch-lightning fastai
云端或自托管使用登录:
swanlab login
pillow 和 soundfile 是本技能中 Image 与 Audio 示例使用的媒体依赖。swanlab[dashboard] 添加 mode="local" 和 swanlab watch 所需的本地仪表盘依赖。
使用方式 基本实验跟踪示例:
import swanlab
run = swanlab.init(
project="my-project",
experiment_name="baseline",
config={
"learning_rate": 1e-3,
"epochs": 10,
"batch_size": 32,
"model": "resnet18",
},
)
for epoch in range(run.config.epochs):
train_loss = train_epoch()
val_loss = validate()
swanlab.log(
{
"train/loss": train_loss,
"val/loss": val_loss,
"epoch": epoch,
}
)
run.finish()
核心概念包括:项目(相关实验的集合)与实验(训练或评估工作流的单次执行);配置跟踪通过 config 传入并由 run.config 访问;指标记录通过 swanlab.log 记录标量、多个指标或自定义 step;媒体与图表记录支持 Image、Audio、Text、Video、Object3D、Molecule 以及 swanlab.echarts 自定义图表。
本地与自托管工作流:
import os
import swanlab
# 自托管或云端登录
swanlab.login(
api_key=os.environ["SWANLAB_API_KEY"],
host="http://your-server:5092",
)
# 仅本地记录
run = swanlab.init(
project="offline-demo",
mode="local",
logdir="./swanlog",
)
swanlab.log({"loss": 0.35, "epoch": 1})
run.finish()
# 查看本地日志
swanlab watch -l ./swanlog
# 后续同步本地日志
swanlab sync ./swanlog
集成示例 HuggingFace Transformers:在 TrainingArguments 中设置 report_to="swanlab"。 PyTorch Lightning:使用 swanlab.integration.pytorch_lightning.SwanLabLogger 作为 pl.Trainer 的 logger。 Fastai:使用 swanlab.integration.fastai.SwanLabCallback 作为回调传入 learn.fit。 更多基于回调的设置和框架模式参见 references/integrations.md。
最佳实践
- 使用稳定的指标名称,如分组命名空间 train/loss、val/loss,避免同一指标族混用扁平与分组名称。
- 尽早初始化并一次性捕获配置。
- 本地保存检查点,如 torch.save 保存 best.pth,并将路径用 swanlab.Text 记录。
- 离线优先工作流使用局部模式 mode="local"。
- 高级模式保留在参考文档中:references/visualization.md 用于高级图表与媒体模式,references/integrations.md 用于基于回调与框架特定集成细节。
限制 资料未提供收费、价格、平台限制、效果保证等信息。