ARTICLE · 1304519
开源、轻量 AI 训练记录与可视化工具SwanLab
开源、轻量 AI 训练记录与可视化工具SwanLab



开源、轻量的深度学习实验跟踪平台,对标 Weights & Biases(wandb),主打中文生态与零门槛接入。
一、SwanLab 是什么
SwanLab 是一个开源的 AI 训练记录与可视化工具,覆盖"训练日志记录 → 曲线可视化 → 实验对比 → 团队协作"的完整流程。它解决的核心痛点很直接:
深度学习实验太多、太散,光靠 stdout 和翻终端历史根本管理不过来。
项目地址:https://github.com/SwanHubX/SwanLab 官网:https://swanlab.cn 安装: pip install swanlab支持云端托管、私有化部署、纯离线三种使用模式
一句话定位:像 wandb 一样好用的实验面板,但对国内网络环境和中文团队更友好。

二、对比 wandb
pip install wandb | pip install swanlabswanlab login | |
report_to="swanlab",需 transformers ≥ 4.38) | ||
wandb 服务端异常时,同步重试会拖慢训练;403 错误更是直接让 wandb.init 抛异常、训练退出。换成 SwanLab 后这类网络问题不再阻塞训练。
三、快速上手
1. 安装与登录
pip install swanlabswanlab login # 浏览器跳转获取 API key# 或者用环境变量:export SWANLAB_API_KEY=xxxxxxxx
不想注册账号?直接用离线模式,日志全落本地:
export SWANLAB_MODE=local2. 三行代码记录训练
import swanlabswanlab.init(project="my-project",config={"lr": 1e-4, "epochs": 4}, # 超参会记录并可在面板对比)for epoch in range(4):loss = train_one_epoch()swanlab.log({"loss": loss})swanlab.finish()
3. 在 transformers Trainer 中接入
from transformers import TrainingArgumentsargs = TrainingArguments(...,report_to="swanlab", # wandb 换成 swanlab,就这一个词)
Trainer 会自动记录:loss、learning_rate、epoch、eval_loss、自定义评估指标、训练结束统计(train_runtime 等),面板自动分组、自动对比。
四、记录内容与可视化能力
标量指标
训练全程的 loss / lr / 自定义指标自动成图。面板上能直接看到:
losslearning_rate、epoch | |
eval_loss | |
train_runtimetrain_samples_per_second、train_loss、total_flos |

富媒体记录
swanlab.log({"predictions": swanlab.Text("| step | pred |\n|---|---|")})swanlab.log({"confusion_matrix": swanlab.Image(plt)})swanlab.log({"audio": swanlab.Audio(path)})
支持 Text(Markdown 表格)、Image、Audio、Video、Histogram。

实验对比
面板勾选多个实验,config 不同的维度自动高亮,曲线叠加对比。调参时回答"dropout 0.05 和 0.1 哪个好"这类问题,不再需要翻终端日志。
断点续训
swanlab.init(resume="must") 可以接上之前的实验继续记录,训练中断后曲线不断档。
注意事项
- transformers ≥ 4.38
才有 report_to="swanlab"集成,旧版本会静默不记录。 多卡下必须只在 rank0 初始化,否则每个进程各建一个实验,面板上出现四份重复曲线。 wandb 专属的样本 Table 逻辑( wandb.Table)不能直接复用,需换成swanlab.Text。断网时云端模式会本地缓存,恢复后自动上传;完全无外网就用 SWANLAB_MODE=local。
五、适用场景总结
适合:
国内服务器 / 公司内网,访问 wandb 不稳定或被墙 中文团队的协作实验管理 想要私有化部署、数据不出内网 已经在用 transformers Trainer,想一行代码切换实验跟踪
暂时不适合:
强依赖 wandb 生态(Sweeps 超参搜索、Artifacts 数据版本管理)的重度用户——SwanLab 这些功能还在补齐 团队已有成熟的 MLflow / TensorBoard 工作流且没有痛点














































































