New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

swanlab

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

swanlab

Python library for streamlined tracking and management of AI training processes.

  • 0.4.6
  • Source
  • PyPI
  • Socket score

Maintainers
2
SwanLab

SwanLab

一个开源、现代化设计的深度学习训练跟踪与可视化工具
同时支持云端/离线使用,适配30+主流框架,与你的实验代码轻松集成

🔥SwanLab 在线版 · 📃 文档 · 报告问题 · 建议反馈 · 更新日志


中文 / English / 日本語 / Русский

👋 加入我们的微信群

目录


🌟 最近更新

  • 2025.01.22:新增sync_tensorboardXsync_tensorboard_torch功能,支持与此两种TensorBoard框架同步实验跟踪;

  • 2025.01.17:新增sync_wandb功能,文档,支持与Weights & Biases实验跟踪同步;大幅改进了日志渲染性能

  • 2025.01.11:云端版大幅优化了项目表格的性能,并支持拖拽、排序、筛选等交互

  • 2025.01.01:新增折线图持久化平滑、折线图拖拽式改变大小,优化图表浏览体验

  • 2024.12.22:我们与 LLaMA Factory 完成了联合集成,现在你可以在LLaMA Factory中使用SwanLab来跟踪和可视化大模型微调实验使用指引

  • 2024.12.15:硬件监控(0.4.0) 功能上线,支持CPU、NPU(Ascend)、GPU(Nvidia)的系统级信息记录与监控。

  • 2024.12.06:新增对LightGBMXGBoost的集成;提高了对日志记录单行长度的限制。

  • 2024.11.26:环境选项卡-硬件部分支持识别华为昇腾NPU鲲鹏CPU;云厂商部分支持识别青云基石智算


👋🏻 什么是SwanLab

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 上无延迟地接收所有发布通知~ ⭐️

star-us


📃 在线演示

来看看 SwanLab 的在线演示:

ResNet50 猫狗分类Yolov8-COCO128 目标检测
跟踪一个简单的 ResNet50 模型在猫狗数据集上训练的图像分类任务。使用 Yolov8 在 COCO128 数据集上进行目标检测任务,跟踪训练超参数和指标。
Qwen2 指令微调LSTM Google 股票预测
跟踪 Qwen2 大语言模型的指令微调训练,完成简单的指令遵循。使用简单的 LSTM 模型在 Google 股价数据集上训练,实现对未来股价的预测。
ResNeXt101 音频分类Qwen2-VL COCO数据集微调
从ResNet到ResNeXt在音频分类任务上的渐进式实验过程基于Qwen2-VL多模态大模型,在COCO2014数据集上进行Lora微调。

更多案例


🏁 快速开始

1.安装

pip install swanlab

2.登录并获取 API Key

  1. 免费注册账号

  2. 登录账号,在用户设置 > API Key 里复制您的 API Key

  3. 打开终端,输入:

swanlab login

出现提示时,输入您的 API Key,按下回车,完成登陆。

3.将 SwanLab 与你的代码集成

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 中设置logirmode这两个参数,即可离线跟踪实验:

...

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 来反馈你想要集成的框架。

基础框架

专有/微调框架

计算机视觉

强化学习

其他框架:

更多集成


🆚 与熟悉的工具的比较

Tensorboard vs SwanLab

  • ☁️ 支持在线使用: 通过 SwanLab 可以方便地将训练实验在云端在线同步与保存,便于远程查看训练进展、管理历史项目、分享实验链接、发送实时消息通知、多端看实验等。而 Tensorboard 是一个离线的实验跟踪工具。

  • 👥 多人协作: 在进行多人、跨团队的机器学习协作时,通过 SwanLab 可以轻松管理多人的训练项目、分享实验链接、跨空间交流讨论。而 Tensorboard 主要为个人设计,难以进行多人协作和分享实验。

  • 💻 持久、集中的仪表板: 无论你在何处训练模型,无论是在本地计算机上、在实验室集群还是在公有云的 GPU 实例中,你的结果都会记录到同一个集中式仪表板中。而使用 TensorBoard 需要花费时间从不同的机器复制和管理 TFEvent 文件。

  • 💪 更强大的表格: 通过 SwanLab 表格可以查看、搜索、过滤来自不同实验的结果,可以轻松查看数千个模型版本并找到适合不同任务的最佳性能模型。 TensorBoard 不适用于大型项目。

Weights and Biases vs SwanLab

  • Weights and Biases 是一个必须联网使用的闭源 MLOps 平台

  • SwanLab 不仅支持联网使用,也支持开源、免费、自托管的版本


👥 社区

社区与支持

SwanLab README 徽章

如果你喜欢在工作中使用 SwanLab,请将 SwanLab 徽章添加到你的 README 中:

swanlab

[![swanlab](https://img.shields.io/badge/powered%20by-SwanLab-438440)](https://github.com/swanhubx/swanlab)

在论文中引用 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 做出贡献吗?首先,请花点时间阅读 贡献指南

同时,我们非常欢迎通过社交媒体、活动和会议的分享来支持 SwanLab,衷心感谢!

下载 Icon

SwanLab-Icon-SVG


Contributors


📃 协议

本仓库遵循 Apache 2.0 License 开源协议

Star History

Star History Chart

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc