Wandb(全称为Weights and Biases)是一个用于跟踪、可视化和协作机器学习项目的工具。 它提供了许多功能,包括实时的指标跟踪、超参数调整、模型的可视化等。
但是对于国内用户来说,Wandb可能会出现网络卡顿,技术沟通不畅等问题。
这篇文章将介绍一款功能平替,加载、沟通更加流畅的AI模型训练平台【Swanlab】。
为什么使用SwanLab?
与软件工程不同,人工智能是一个实验性学科,产生灵感、快速试验、验证想法 是AI研究的主旋律。而记录下实验过程和灵感,就像化学家记录实验手稿一样,是每一个AI研究者、研究组织形成积累、提升加速度的核心。
先前的实验记录方法,是在计算机前盯着终端打印的输出,复制粘贴日志文件(或TFEvent文件),粗糙的日志对灵感的涌现造成了障碍,离线的日志文件让研究者之间难以形成合力。
与之相比,SwanLab提供了一套云端AI实验跟踪方案,面向训练过程,提供了训练可视化、实验跟踪、超参数记录、日志记录、多人协同等功能,研究者能轻松通过直观的可视化图表找到迭代灵感,并且通过在线链接的分享与基于组织的多人协同训练,打破团队沟通的壁垒。
以往的AI研究的分享和开源更关注结果,而我们更关注过程。
社区用户对SwanLab的产品评价可以归结为简洁易用、提升效率与迭代迅速
——泽毅,SwanLab 联合创始人
更重要的是,SwanLab是开源的,由一帮热爱开源的机器学习工程师与社区共同构建,我们提供了完全自托管的版本,可以保证你的数据安全与隐私性。
希望以上信息和这份指南可以帮助你了解这款产品,我们相信 SwanLab 能够帮助到你。
SwanLab能做什么?
1. 📊实验指标与超参数跟踪: 极简的代码嵌入您的机器学习pipeline,跟踪记录训练关键指标
- 自由的超参数与实验配置记录
- 支持的元数据类型:标量指标、图像、音频、文本、...
- 支持的图表类型:折线图、媒体图(图像、音频、文本)、...
- 自动记录:控制台logging、GPU硬件、Git信息、Python解释器、Python库列表、代码目录
2. ⚡️全面的框架集成: PyTorch、PyTorch Lightning、🤗HuggingFace Transformers、MMEngine、Ultralytics等主流框架
3. 📦组织实验: 集中式仪表板,快速管理多个项目与实验,通过整体视图速览训练全局
4. 🆚比较结果: 通过在线表格与对比图表比较不同实验的超参数和结果,挖掘迭代灵感
5. 👥在线协作: 您可以与团队进行协作式训练,支持将实验实时同步在一个项目下,您可以在线查看团队的训练记录,基于结果发表看法与建议
6. ✉️分享结果: 复制和发送持久的URL来共享每个实验,方便地发送给伙伴,或嵌入到在线笔记中
7. 💻支持自托管: 支持不联网使用,自托管的社区版同样可以查看仪表盘与管理实验
Swanlab vs Wandb
【国产平替】
【加载流畅】
【流通流畅】
Swanlab【快速入门】
1. 创建账号并安装SwanLab
在开始之前,请确保你创建好了一个SwanLab账号,并安装了我们的Python库。
- 在 SwanLab官网 免费注册账号,然后登录你的SwanLab账号
- 使用 pip 在Python3环境的计算机上安装swanlab库
打开命令行(Windows系统推荐使用PowerShell),输入:
bash
pip install swanlab
按下回车,等待片刻完成安装。
2. 在编程环境上登录SwanLab
下一步,你需要在你的编程环境上登录SwanLab。
打开命令行,输入:
bash
swanlab login
出现如下提示时:
bash
swanlab: Logging into swanlab cloud.
swanlab: You can find your API key at: https://dev101.swanlab.cn/settings
swanlab: Paste an API key from your profile and hit enter, or press 'CTRL-C' to quit:
在用户设置页面复制您的 API Key,粘贴后按下回车,即可完成登录。
3. 开启一个实验并跟踪超参数
在Python脚本中,我们用
swanlab.init
创建一个SwanLab实验,并向
config
参数传递将一个包含超参数键值对的字典:
python
run = swanlab.init(
# 设置项目
project="my-project",
# 跟踪超参数与实验元数据
config={
"learning_rate": 0.01,
"epochs": 10,
},
)
run
是SwanLab的基本组成部分,你将经常使用它来记录与跟踪实验指标。
4. 记录实验指标
在Python脚本中,用
swanlab.log
记录实验指标(比如准确率acc和损失值loss)。
用法是将一个包含指标的字典传递给
swanlab.log
:
python
swanlab.log({"accuracy": acc, "loss": loss})
5. 完整代码,在线查看可视化看板
我们将上面的步骤整合为下面所示的完整代码:
python
import swanlab
import random
# 初始化SwanLab
run = swanlab.init(
# 设置项目
project="my-project",
# 跟踪超参数与实验元数据
config={
"learning_rate": 0.01,
"epochs": 10,
},
)
print(f"学习率为{run.config.learning_rate}")
offset = random.random() / 5
# 模拟训练过程
for epoch in range(2, run.config.epochs):
acc = 1 - 2**-epoch - random.random() / epoch - offset
loss = 2**-epoch + random.random() / epoch + offset
print(f"epoch={epoch}, accuracy={acc}, loss={loss}")
# 记录指标
swanlab.log({"accuracy": acc, "loss": loss})
运行代码,访问SwanLab,查看在每个训练步骤中,你使用SwanLab记录的指标(准确率和损失值)的改进情况。
Github与邮件
- GitHub Issues:反馈使用SwanLab时遇到的错误和问题
- 电子邮件支持:反馈关于使用SwanLab的问题 - 产品: zeyi.lin@swanhub.co- 合作: shaohon_chen@115lab.club
版权归原作者 Rellaaaaa 所有, 如有侵权,请联系我们删除。