一个开源、现代化设计的深度学习训练跟踪与可视化工具
同时支持云端/离线使用,适配30+主流框架,与你的实验代码轻松集成
🔥SwanLab 在线版 · 📃 文档 · 报告问题 · 建议反馈 · 更新日志
👋 加入我们的微信群
-
2025.01.01:新增折线图持久化平滑、折线图拖拽式改变大小,优化图表浏览体验
-
2024.12.22:我们与 LLaMA Factory 完成了联合集成,现在你可以在LLaMA Factory中使用SwanLab来跟踪和可视化大模型微调实验,使用指引。
-
2024.12.15:硬件监控(0.4.0) 功能上线,支持CPU、NPU(Ascend)、GPU(Nvidia)的系统级信息记录与监控。
-
2024.11.26:环境选项卡-硬件部分支持识别华为昇腾NPU与鲲鹏CPU;云厂商部分支持识别青云基石智算。
-
2024.11.24:重构设计语言的全新UI上线,优化大量交互细节,并支持黑夜模式。
-
2024.11.11:VSCode 插件上线;新增与Keras框架的集成;新增
run.public
方法,支持获取实验的项目名、实验名、链接等信息,#732
SwanLab 是一款开源、轻量的 AI 模型训练跟踪与可视化工具,提供了一个跟踪、记录、比较、和协作实验的平台。
SwanLab 面向人工智能研究者,设计了友好的Python API 和漂亮的UI界面,并提供训练可视化、自动日志记录、超参数记录、实验对比、多人协同等功能。在SwanLab上,研究者能基于直观的可视化图表发现训练问题,对比多个实验找到研究灵感,并通过在线网页的分享与基于组织的多人协同训练,打破团队沟通的壁垒,提高组织训练效率。
以下是其核心特性列表:
1. 📊 实验指标与超参数跟踪: 极简的代码嵌入您的机器学习 pipeline,跟踪记录训练关键指标
- 支持云端使用(类似Weights & Biases),随时随地查看训练进展。手机看实验的方法
- 支持超参数记录与表格展示
- 支持的元数据类型:标量指标、图像、音频、文本、...
- 支持的图表类型:折线图、媒体图(图像、音频、文本)、...
- 后台自动记录:日志logging、硬件环境、Git 仓库、Python 环境、Python 库列表、项目运行目录
2. ⚡️ 全面的框架集成: PyTorch、🤗HuggingFace Transformers、PyTorch Lightning、🦙LLaMA Factory、MMDetection、Ultralytics、PaddleDetetion、LightGBM、XGBoost、Keras、Tensorboard、Weights&Biases、OpenAI、Swift、XTuner、Stable Baseline3、Hydra 在内的 30+ 框架
3. 💻 硬件监控: 支持实时记录与监控CPU、NPU(昇腾Ascend)、GPU(英伟达Nvidia)、内存的系统级硬件指标
4. 📦 实验管理: 通过专为训练场景设计的集中式仪表板,通过整体视图速览全局,快速管理多个项目与实验
4. 🆚 比较结果: 通过在线表格与对比图表比较不同实验的超参数和结果,挖掘迭代灵感
5. 👥 在线协作: 您可以与团队进行协作式训练,支持将实验实时同步在一个项目下,您可以在线查看团队的训练记录,基于结果发表看法与建议
6. ✉️ 分享结果: 复制和发送持久的 URL 来共享每个实验,方便地发送给伙伴,或嵌入到在线笔记中
7. 💻 支持自托管: 支持离线环境使用,自托管的社区版同样可以查看仪表盘与管理实验
Important
收藏项目,你将从 GitHub 上无延迟地接收所有发布通知~ ⭐️
来看看 SwanLab 的在线演示:
ResNet50 猫狗分类 | Yolov8-COCO128 目标检测 |
---|---|
跟踪一个简单的 ResNet50 模型在猫狗数据集上训练的图像分类任务。 | 使用 Yolov8 在 COCO128 数据集上进行目标检测任务,跟踪训练超参数和指标。 |
Qwen2 指令微调 | LSTM Google 股票预测 |
---|---|
跟踪 Qwen2 大语言模型的指令微调训练,完成简单的指令遵循。 | 使用简单的 LSTM 模型在 Google 股价数据集上训练,实现对未来股价的预测。 |
ResNeXt101 音频分类 | Qwen2-VL COCO数据集微调 |
---|---|
从ResNet到ResNeXt在音频分类任务上的渐进式实验过程 | 基于Qwen2-VL多模态大模型,在COCO2014数据集上进行Lora微调。 |
pip install swanlab
swanlab login
出现提示时,输入您的 API Key,按下回车,完成登陆。
import swanlab
# 初始化一个新的swanlab实验
swanlab.init(
project="my-first-ml",
config={'learning-rate': 0.003},
)
# 记录指标
for i in range(10):
swanlab.log({"loss": i, "acc": i})
大功告成!前往SwanLab查看你的第一个 SwanLab 实验。
自托管社区版支持离线查看 SwanLab 仪表盘。
在 swanlab.init 中设置logir
和mode
这两个参数,即可离线跟踪实验:
...
swanlab.init(
logdir='./logs',
mode='local',
)
...
-
参数
mode
设置为local
,关闭将实验同步到云端 -
参数
logdir
的设置是可选的,它的作用是指定了 SwanLab 日志文件的保存位置(默认保存在swanlog
文件夹下)- 日志文件会在跟踪实验的过程中被创建和更新,离线看板的启动也将基于这些日志文件
其他部分和云端使用完全一致。
打开终端,使用下面的指令,开启一个 SwanLab 仪表板:
swanlab watch ./logs
运行完成后,SwanLab 会给你 1 个本地的 URL 链接(默认是http://127.0.0.1:5092)
访问该链接,就可以在浏览器用离线看板查看实验了。
将你最喜欢的框架与 SwanLab 结合使用!
下面是我们已集成的框架列表,欢迎提交 Issue 来反馈你想要集成的框架。
基础框架
专有/微调框架
- PyTorch Lightning
- HuggingFace Transformers
- OpenMind
- LLaMA Factory
- Modelscope Swift
- Sentence Transformers
- Torchtune
- XTuner
- MMEngine
- FastAI
- LightGBM
- XGBoost
计算机视觉
强化学习
其他框架:
-
☁️ 支持在线使用: 通过 SwanLab 可以方便地将训练实验在云端在线同步与保存,便于远程查看训练进展、管理历史项目、分享实验链接、发送实时消息通知、多端看实验等。而 Tensorboard 是一个离线的实验跟踪工具。
-
👥 多人协作: 在进行多人、跨团队的机器学习协作时,通过 SwanLab 可以轻松管理多人的训练项目、分享实验链接、跨空间交流讨论。而 Tensorboard 主要为个人设计,难以进行多人协作和分享实验。
-
💻 持久、集中的仪表板: 无论你在何处训练模型,无论是在本地计算机上、在实验室集群还是在公有云的 GPU 实例中,你的结果都会记录到同一个集中式仪表板中。而使用 TensorBoard 需要花费时间从不同的机器复制和管理 TFEvent 文件。
-
💪 更强大的表格: 通过 SwanLab 表格可以查看、搜索、过滤来自不同实验的结果,可以轻松查看数千个模型版本并找到适合不同任务的最佳性能模型。 TensorBoard 不适用于大型项目。
-
Weights and Biases 是一个必须联网使用的闭源 MLOps 平台
-
SwanLab 不仅支持联网使用,也支持开源、免费、自托管的版本
- GitHub Issues:使用 SwanLab 时遇到的错误和问题
- 电子邮件支持:反馈关于使用 SwanLab 的问题
- 微信交流群:交流使用 SwanLab 的问题、分享最新的 AI 技术
如果你喜欢在工作中使用 SwanLab,请将 SwanLab 徽章添加到你的 README 中:
[![swanlab](https://img.shields.io/badge/powered%20by-SwanLab-438440)](https://github.com/swanhubx/swanlab)
如果您发现 SwanLab 对您的研究之旅有帮助,请考虑以下列格式引用:
@software{Zeyilin_SwanLab_2023,
author = {Zeyi Lin, Shaohong Chen, Kang Li, Qiushan Jiang, Zirui Cai, Kaifang Ji and {The SwanLab team}},
doi = {10.5281/zenodo.11100550},
license = {Apache-2.0},
title = {{SwanLab}},
url = {https://github.com/swanhubx/swanlab},
year = {2023}
}
考虑为 SwanLab 做出贡献吗?首先,请花点时间阅读 贡献指南。
同时,我们非常欢迎通过社交媒体、活动和会议的分享来支持 SwanLab,衷心感谢!
Contributors
本仓库遵循 Apache 2.0 License 开源协议