小众AI

SwanLab
SwanLab - 轻量的 AI 模型训练跟踪与可视化工具
开源、轻量的 AI 模型训练跟踪与可视化工具,提供了一个跟踪、记录、比较、和协作实验的平台。
  官网   代码仓

SwanLab 是一款开源、轻量的 AI 模型训练跟踪与可视化工具,提供了一个跟踪、记录、比较、和协作实验的平台。

SwanLab 面向人工智能研究者,设计了友好的Python API 和漂亮的UI界面,并提供训练可视化、自动日志记录、超参数记录、实验对比、多人协同等功能。在SwanLab上,研究者能基于直观的可视化图表发现训练问题,对比多个实验找到研究灵感,并通过在线网页的分享与基于组织的多人协同训练,打破团队沟通的壁垒,提高组织训练效率。

借助SwanLab,科研人员可以沉淀自己的每一次训练经验,与合作者无缝地交流和协作,机器学习工程师可以更快地开发可用于生产的模型。

主要功能

  1. 📊 实验指标与超参数跟踪: 极简的代码嵌入您的机器学习 pipeline,跟踪记录训练关键指标
  • 支持云端使用(类似Weights & Biases),随时随地查看训练进展。手机看实验的方法
  • 支持超参数记录与表格展示
  • 支持的元数据类型:标量指标、图像、音频、文本、…
  • 支持的图表类型:折线图、媒体图(图像、音频、文本)、…
  • 后台自动记录:日志logging、硬件环境、Git 仓库、Python 环境、Python 库列表、项目运行目录
  1. ⚡️ 全面的框架集成: PyTorch、🤗HuggingFace Transformers、PyTorch Lightning、🦙LLaMA Factory、MMDetection、Ultralytics、PaddleDetetion、LightGBM、XGBoost、Keras、Tensorboard、Weights&Biases、OpenAI、Swift、XTuner、Stable Baseline3、Hydra 在内的 30+ 框架

  1. 💻 硬件监控: 支持实时记录与监控CPU、NPU(昇腾Ascend)、GPU(英伟达Nvidia)、内存的系统级硬件指标

  2. 📦 实验管理: 通过专为训练场景设计的集中式仪表板,通过整体视图速览全局,快速管理多个项目与实验

  3. 🆚 比较结果: 通过在线表格与对比图表比较不同实验的超参数和结果,挖掘迭代灵感

  4. 👥 在线协作: 您可以与团队进行协作式训练,支持将实验实时同步在一个项目下,您可以在线查看团队的训练记录,基于结果发表看法与建议

  5. ✉️ 分享结果: 复制和发送持久的 URL 来共享每个实验,方便地发送给伙伴,或嵌入到在线笔记中

  6. 💻 支持自托管: 支持离线环境使用,自托管的社区版同样可以查看仪表盘与管理实验

安装和使用

1. 安装SwanLab

使用 pip 在Python3环境的计算机上安装swanlab库。

打开命令行,输入:

pip install swanlab

按下回车,等待片刻完成安装。

如果遇到安装速度慢的问题,可以指定国内源安装: pip install swanlab -i https://mirrors.cernet.edu.cn/pypi/web/simple

2. 登录账号

如果你还没有SwanLab账号,请在 官网 免费注册。

打开命令行,输入:

swanlab login

当你看到如下提示时:

swanlab: Logging into swanlab cloud.
swanlab: You can find your API key at: https://swanlab.cn/settings
swanlab: Paste an API key from your profile and hit enter, or press 'CTRL-C' to quit:

用户设置页面复制您的 API Key,粘贴后按下回车(你不会看到粘贴后的API Key,请放心这是正常的),即可完成登录。之后无需再次登录。

如果你的计算机不太支持swanlab login的登录方式,也可以使用python脚本登录:

import swanlab
swanlab.login(api_key="你的API Key", save=True)

3. 开启一个实验并跟踪超参数

在Python脚本中,我们用swanlab.init创建一个SwanLab实验,并向config参数传递将一个包含超参数键值对的字典:

import swanlab

run = swanlab.init(
    # 设置项目
    project="my-project",
    # 跟踪超参数与实验元数据
    config={
        "learning_rate": 0.01,
        "epochs": 10,
    },
)

run是SwanLab的基本组成部分,你将经常使用它来记录与跟踪实验指标。

4. 记录实验指标

在Python脚本中,用swanlab.log记录实验指标(比如准确率acc和损失值loss)。

用法是将一个包含指标的字典传递给swanlab.log

swanlab.log({"accuracy": acc, "loss": loss})

5. 完整代码,在线查看可视化看板

我们将上面的步骤整合为下面所示的完整代码:

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})

更多...


wdoc
一个功能强大的 RAG(检索增强生成)系统,旨在汇总、搜索和查询各种文件类型的文档。
ai-financial-agent
探索人工智能在投资研究中的应用。
Meetily
一个 AI 驱动的会议助手,可捕获实时会议音频、实时转录并生成摘要,同时确保用户隐私。