SwanLab
开源AI训练实验追踪平台,实时可视化loss/GPU指标,支持50+框架一键集成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源AI训练实验追踪平台,实时可视化loss/GPU指标,支持50+框架一键集成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你在训练一个大语言模型,跑了一整夜,早上起来发现实验崩了,但日志里只有一个冷冰冰的 CUDA out of memory。你不知道是参数设错了、还是数据有问题、还是模型结构本身就有缺陷。这种「黑箱训练」的痛苦,每一个AI开发者都不陌生。
SwanLab 正是为解决这个问题而生。它是一个开源的AI训练过程追踪与可视化平台,帮助开发者在训练过程中实时记录、对比、可视化实验数据,把「玄学调参」变成「有据可依」的科学实验。
图1:SwanLab 品牌标识
SwanLab 由国内 AI 基础设施团队 SwanHub 开发维护,项目于 2023 年 11 月开源,迅速获得了 AI 开发社区的关注。团队核心成员来自国内头部 AI 研究机构,深谙大模型训练中的实验管理之痛。
随着大模型浪潮席卷全球,AI 训练实验的管理复杂度急剧上升。研究者需要同时追踪上百次实验调参、对比不同超参数组合的效果、分析 loss 曲线的收敛趋势——这些工作在缺乏专用工具的情况下,往往依赖 Excel 表格、截图和人工记忆,效率极低。Weights & Biases(wandb)和 MLflow 等工具虽然早已存在,但要么依赖云服务(数据隐私顾虑),要么配置复杂、上手门槛高。SwanLab 正是在这一背景下,以「开箱即用+自托管+现代化UI」为差异化定位切入市场。
SwanLab 绝非一个简单的打印日志库。它提供了一套完整的训练实验管理解决方案:
实时指标追踪:支持在训练循环中记录任意指标(loss、accuracy、learning rate、GPU显存占用等),数据以流式方式上传,后台实时渲染图表。开发者无需等到训练结束,在训练过程中就能发现异常。
多实验横向对比:支持在同一图表上叠加显示多次实验的指标曲线,通过 Baseline 对比 功能可以一键显示各实验与基准线的差异百分比,帮助快速锁定最优超参数组合。
内置实验看板(SwanBoard):SwanLab 提供了开箱即用的 Web 可视化界面,pip 安装后一条命令即可启动本地看板,无需额外部署数据库或 Web 服务器。对于需要更强扩展性的团队,也可以接入 swanboard 可选依赖,体验更丰富的数据分析功能。
GPU 硬件监控:通过 nvidia-ml-py 库自动采集 GPU 利用率、显存、温度等硬件指标,让「机器是否在正常干活」一目了然。这对于使用多卡集群训练大模型的团队尤为重要。
超参与配置管理:每一次实验携带完整的超参数配置,记录可复现,方便追溯「这次效果好到底是因为调了哪个参数」。
SwanLab 最大的技术亮点之一是 广泛的框架集成。它提供了与 50+ 主流 AI 训练框架的官方集成,包括:
集成方式极其简单——以 PyTorch 为例,只需在训练脚本中插入 3 行代码即可开始记录:
import swanlab
swanlab.init(project_name='my-llm-experiment')
for epoch in range(num_epochs):
train_loss = train_one_epoch(model, dataloader)
swanlab.log({'train_loss': train_loss, 'epoch': epoch})
对于使用 Transformers Trainer 的场景,甚至只需要传入一个 SwanLabCallback,所有指标自动记录,几乎零侵入。
从源码结构来看,SwanLab 采用清晰的模块化架构:
swanlab/sdk/ — 核心 SDK,提供日志记录、配置管理、数据上传等基础能力swanlab/integration/ — 各框架的集成适配器(对应上述 50+ 框架)swanlab/api/ — 与 SwanLab 云端 API 通信的客户端swanlab/cli/ — 命令行工具,支持本地看板启动swanlab/plugin/ — 插件机制swanlab/converter/ — 数据格式转换swanlab/proto/ — protobuf 定义(SwanBoard 通信协议)核心技术栈:Python 3.9+ / Pydantic 2.x(配置验证)/ pyecharts 2.x(图表渲染)/ Rich(终端美化)/ orjson(高性能 JSON)。整体代码质量较高,有完整测试套件和 pre-commit 规范。
SwanLab 支持完全自托管部署模式。对于企业内网环境或对数据隐私有严格要求的团队,可以将 SwanLab 服务部署在本地服务器上,所有训练数据不出内网。这是与 wandb 等纯云服务的重要差异。
不过需要注意的是,当前仓库中不包含 Dockerfile 或 docker-compose.yml,自托管需要手动配置 Python 环境(>= 3.9)并通过 pip 安装。虽然有 swanboard 可选依赖支持更强的看板功能,但整体部署流程对非 Python 开发者仍有一定门槛。
容器化缺失:仓库没有提供 Dockerfile,这在 DevOps 场景下是一个明显短板。习惯用 Docker 部署 ML 服务的团队需要自行编写 Dockerfile。
文档语言:虽然项目 README 提供了中文、日文、俄文等多语言版本,但英文技术文档的深度有时不如中文版本,国际化开发者可能需要借助翻译工具。
社区规模:相比 wandb(2017年起步)和 MLflow(Databricks 背书),SwanLab 起步较晚(2023年底),生态丰富度和社区规模仍有差距。
SwanLab 的出现代表了国内 AI 基础设施领域的活跃创新。它填补了国内开源训练追踪工具的空白,以更友好的中文文档和本土化服务降低了 AI 开发者的使用门槛。截至目前,项目已获得近 4000 个 GitHub Stars,吸引了 200+ 次 forks,活跃的 issue 追踪和持续的版本迭代表明这是一个健康发展的项目。
其与 Hugging Face Transformers、LLaMA Factory、ms-swift 等主流大模型微调框架的深度集成,体现了对国内 AI 开源生态的精准卡位。随着大模型平权趋势加速,类似 SwanLab 这样专注「训练过程可见性」的工具将在 AI 开发工作流中扮演越来越重要的角色。
项目信息:Apache-2.0 开源许可,由 SwanHub 团队维护,支持 Python 3.9~3.14,强烈依赖 PyTorch 生态。