SuperAPI AI 工具集

experiment-tracking-swanlab

数据与分析

查看项目

更新于 10-30 06:46

技能介绍

用途

SwanLab 是一个开源实验跟踪工具,本技能用于指导在机器学习实验中记录与可视化训练过程。适用场景包括:跟踪带有指标、配置、标签和描述的 ML 实验;通过标量图表和记录的媒体进行训练可视化;跨随机种子、检查点和超参数对比运行结果;在本地或自托管环境中工作,而不依赖托管式 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 所需的本地仪表盘依赖。

主要能力

基础实验跟踪

通过 swanlab.init 初始化运行,设置 project、experiment_name、config 等参数,在训练循环中使用 swanlab.log 记录指标,最后调用 run.finish() 结束。

核心概念

  1. 项目与实验:项目是相关实验的集合,实验是训练或评估工作流的一次执行。可通过 description、tags、config 等参数描述实验,并访问 run.id、run.config 等属性。
  2. 配置跟踪:在 init 时传入 config 字典,之后可通过 run.config.learning_rate 等方式读取配置值。
  3. 指标记录:支持记录标量、多个指标,以及通过 step 参数指定自定义步数。
  4. 媒体与图表记录:支持记录图像(swanlab.Image)、音频(swanlab.Audio)、文本(swanlab.Text)、GIF 视频(swanlab.Video)、点云(swanlab.Object3D)、分子(swanlab.Molecule.from_smiles),以及通过 swanlab.echarts 创建自定义图表。
  5. 本地与自托管工作流:支持通过 swanlab.login 登录自托管或云端,通过 mode="local" 与 logdir 进行纯本地记录,使用 swanlab watch -l ./swanlog 查看本地日志,使用 swanlab sync ./swanlog 后续同步本地日志。

框架集成

  • HuggingFace Transformers:在 TrainingArguments 中设置 report_to="swanlab" 与 run_name。
  • PyTorch Lightning:使用 swanlab.integration.pytorch_lightning.SwanLabLogger 作为 Trainer 的 logger。
  • Fastai:使用 swanlab.integration.fastai.SwanLabCallback 作为回调。

使用方式

基本流程为:安装依赖 → 登录(云端或自托管)→ 在代码中 swanlab.init 初始化 → 训练循环中 swanlab.log 记录 → run.finish() 结束。本地模式使用 mode="local" 与 logdir,之后用 swanlab watch 查看。

最佳实践

  1. 使用稳定的指标名称,采用分组命名空间(如 train/loss、val/loss),避免同一指标族混用扁平与分组名称。
  2. 尽早初始化并一次性捕获配置。
  3. 本地保存检查点,并通过 swanlab.Text 记录检查点路径。
  4. 离线优先工作流使用本地模式。
  5. 高级模式保留在参考文档中:references/visualization.md 用于高级图表与媒体模式,references/integrations.md 用于基于回调及框架特定的集成细节。

适用场景与限制

适用于需要开源运行跟踪、本地或自托管仪表盘、轻量级媒体记录的场景。支持云端、本地或自托管部署。关于收费、价格、平台限制等具体信息,资料中暂未提供。