目录

1. 什么是SwanLab?

1.1 核心特性

2. 安装SwanLab

3. 登录SwanLab账号(云端版)

4. 5分钟快速上手

更多案例

5. SwanLab功能组件

5.1 图表视图

5.2 表格视图

5.3 硬件监控

5.4 环境记录

5.5 组织协同

6. 训练框架集成

6.1 基础框架

6.2 专有/微调框架

6.3 计算机视觉

6.4 强化学习

6.5 其他框架

FAQ

为什么要记录训练?

训练可视化的价值是什么?


1. 什么是SwanLab?

  • 开始使用:https://swanlab.cn
  • Github:https://github.com/swanhubx/swanlab
  • 官方文档:欢迎使用SwanLab | SwanLab官方文档
  • 案例:kites/yolov8-optimize-v2

SwanLab 是一个开源、现代化设计的深度学习训练跟踪与可视化工具,常被称为"中国版 Weights & Biases + Tensorboard"。目前SwanLab在Github上已收获 1k+ Star,也借此感谢各位小伙伴的支持。

SwanLab同时支持云端和离线使用,并适配了从PyTorch、Transformers、Lightning再到LLaMA Factory、veRL等30多种主流AI训练框架,Python API设计也简洁易上手,能轻松嵌入你的训练代码。

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

SwanLab支持移动端使用,让你在手机上也能实时看到训练进展。同时,SwanLab也是目前唯一支持昇腾NPU等国产卡硬件监控的训练工具。

1.1 核心特性

以下是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. 支持自托管: 支持离线环境使用,自托管的社区版同样可以查看仪表盘与管理实验

2. 安装SwanLab

SwanLab的安装非常简单,只需要使用Python的包管理工具pip,一行命令安装即可:

pip install swanlab
Python版本需要>=3.8

3. 登录SwanLab账号(云端版)

如果你希望:

  1. 任何一台远程服务器上跑的实验,都能汇总到一个网页空间下进行管理
  2. 无论通勤还是运动,都可以用手机看到最新的训练进展
  3. 将训练曲线、超参数一键分享给小伙伴,让他们看到你正在训练的过程
  4. 保存你的所有历史实验,告别整理分布在各个文件夹里的日志

那么非常推荐你使用SwanLab云端版(https://swanlab.cn);如果你希望离线记录,那么可以跳过本节。

使用云端版非常简单,首先在官网上注册1个账号,然后在你的工作区点击左下角的「小闪电」

然后,复制你的API Key:

最后,打开命令行终端,输入swanlab login,按回车后,粘贴API Key(粘贴的内容在命令行是看不见的,所以请放心你已经粘贴进去了 = w =),再按回车,完成登录。

4. 5分钟快速上手

SwanLab最核心的功能是深度学习训练过程记录与可视化,下面是一个最简代码示例:

import swanlab
import random# 创建一个SwanLab项目
swanlab.init(# 设置项目名project="my-awesome-project",# 设置超参数config={"learning_rate": 0.02,"architecture": "CNN","dataset": "CIFAR-10","epochs": 10}
)# 模拟一次训练
epochs = 10
offset = random.random() / 5
for epoch in range(2, epochs):acc = 1 - 2 ** -epoch - random.random() / epoch - offsetloss = 2 ** -epoch + random.random() / epoch + offset# 记录训练指标swanlab.log({"acc": acc, "loss": loss})# [可选] 完成训练,这在notebook环境中是必要的
swanlab.finish()

这是一个模拟训练过程的脚本,其中用到了SwanLab最核心的两个API swanlab.init()和 swanlab.log()

  • swanlab.init:创建SwanLab实验,支持传入项目名project、实验名experiment_name、超参数config、笔记description等一系列参数。
  • swanlab.log: 记录指标(Metric),将传入的字典进行记录

上面的代码中,首先创建了1个SwanLab实验,它归属于项目my-awesome-project;然后在10论epoch中,每轮epoch ,SwanLab对acc和loss进行1次记录。

运行脚本后,我们可以在网页上看到可视化图表

在「卡片」选项卡,可以看到在swanlab.init中被记录的超参数:

更多案例

我们也写了各个门类的训练入门教程,帮助你更好地了解SwanLab的使用方法:

  • MNIST手写体识别
  • 猫狗分类
  • BERT文本分类 | SwanLab官方文档
  • 音频分类
  • LSTM股票预测
  • DQN强化学习-推车倒立摆
  • Stable Diffusion文生图微调
  • Qwen微调案例
  • Qwen2-VL多模态大模型微调实战
  • 从零预训练一个自己的大模型

5. SwanLab功能组件

5.1 图表视图

  • 折线图

机器学习过程需要跟踪与模型性能相关的不同指标。这对于快速发现问题,并确定模型是否过度拟合等非常重要。通过 SwanLab 折线图看板,可视化关键指标,并对比不同实验的指标差异,让调试模型更轻松:

  • 图像

  • 音频

  • 文本

  • 日志记录

启动swanlab.init后,会自动记录命令行的打印信息,并支持网页端搜索和下载。

5.2 表格视图

通过多实验超参数与指标展示进行对比,支持筛选、排序、行拖拽与列拖拽等操作进行辅助分析。

5.3 硬件监控

支持实时监控训练过程中,英伟达GPU、昇腾NPU、内存、CPU的性能变化。

5.4 环境记录

支持自动记录训练使用的操作系统、Python环境、Git仓库、运行命令、运行时长等环境信息。

以及支持记录Python列表,并可以通过搜索快速定位先前实验的Python库版本:

5.5 组织协同

支持创建组织,邀请你的AI搭子在一个空间下协作训练。

测试组织

6. 训练框架集成

  • 将SwanLab集成到你的库 | SwanLab官方文档

6.1 基础框架

  • PyTorch
  • MindSpore
  • Keras

6.2 专有/微调框架

  • PyTorch Lightning
  • HuggingFace Transformers
  • LLaMA Factory
  • Modelscope Swift
  • DiffSynth-Studio
  • Sentence Transformers
  • OpenMind
  • Torchtune
  • XTuner
  • MMEngine
  • FastAI
  • LightGBM
  • XGBoost

6.3 计算机视觉

  • Ultralytics
  • MMDetection
  • MMSegmentation
  • PaddleDetection
  • PaddleYOLO

6.4 强化学习

  • Stable Baseline3
  • veRL
  • HuggingFace trl
  • EasyR1

6.5 其他框架

  • Tensorboard
  • Weights&Biases
  • MLFlow
  • HuggingFace Accelerate
  • Hydra
  • Omegaconf
  • OpenAI
  • ZhipuAI

FAQ

为什么要记录训练?

相较于软件开发,模型训练更像一个实验科学。一个品质优秀的模型背后,往往是成千上万次实验。研究者需要不断尝试、记录、对比,积累经验,才能找到最佳的模型结构、超参数与数据配比。在这之中,如果没有好的训练记录工具进行辅助,管理实验本身的复杂度就会让你的科研进展受到很大阻力,所以记录训练非常重要。

训练可视化的价值是什么?

机器学习模型训练往往伴随着大量的超参数、指标、日志等数据,很多关键信息往往存在于实验的中间而非结尾,如果不对连续的指标通过图表进行可视化,往往会错失发现问题的最佳时机,甚至错过关键信息。同时不进行可视化,也难以对比多个实验之间的差异。 可视化也为AI研究者提供了良好的交流基础,研究者们可以基于图表进行沟通、分析与优化,而非以往看着枯燥的终端打印。这打破了团队沟通的壁垒,提高了整体的研发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/71650.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/71650.shtml
英文地址,请注明出处:http://en.pswp.cn/web/71650.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025天梯训练1

PTA | L3-1 直捣黄龙 30分 思路&#xff1a;多关键字最短路&#xff0c;同时还要记录最短路径条数。 typedef struct node{int from,d,pass,kl;bool operator<(const node &x)const{if(d!x.d) return d>x.d;if(pass!x.pass) return pass<x.pass;return kl<x.…

EasyRTC嵌入式视频通话SDK的跨平台适配,构建web浏览器、Linux、ARM、安卓等终端的低延迟音视频通信

1、技术背景 WebRTC是一项开源项目&#xff0c;旨在通过简单的API为浏览器和移动应用程序提供实时通信&#xff08;RTC&#xff09;功能。它允许在无需安装插件或软件的情况下&#xff0c;实现点对点的音频、视频和数据传输。 WebRTC由三个核心组件构成&#xff1a; GetUserM…

【git】ssh配置提交 gitcode-ssh提交

【git】ssh配置提交 gitcode-ssh提交 之前一直用的是gitee和阿里云的仓库&#xff0c;前两天想在gitcode上面备份一下我的打洞代码和一些资料 就直接使用http克隆了下来 。 在提交的时候他一直会让我输入账号和密码&#xff0c;但是我之前根本没有设置过这个&#xff0c;根本没…

Dify部署踩坑指南(Windows+Mac)

组件说明 Dify踩坑及解决方案 ⚠️ 除了修改镜像版本&#xff0c;nginx端口不要直接修改docker-compose.yaml &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 1、更换镜像版本 这个文件是由.env自动生成的&#xff0c;在.env配置 …

Linux进程调度与管理:(五)进程的调度之调度节拍

《Linux6.5源码分析&#xff1a;进程管理与调度系列文章》 本系列文章将对进程管理与调度进行知识梳理与源码分析&#xff0c;重点放在linux源码分析上&#xff0c;并结合eBPF程序对内核中进程调度机制进行数据实时拿取与分析。 在进行正式介绍之前&#xff0c;有必要对文章引…

K8S学习之基础十七:k8s的蓝绿部署

蓝绿部署概述 ​ 蓝绿部署中&#xff0c;一共有两套系统&#xff0c;一套是正在提供服务的系统&#xff0c;一套是准备发布的系统。两套系统都是功能完善、正在运行的系统&#xff0c;只是版本和对外服务情况不同。 ​ 开发新版本&#xff0c;要用新版本替换线上的旧版本&…

【定制开发】碰一碰发视频系统定制开发,支持OEM

在短视频营销爆发的2025年&#xff0c;"碰一碰发视频"技术已成为实体商家引流标配。某连锁餐饮品牌通过定制化开发&#xff0c;单月视频发布量突破10万条&#xff0c;获客成本降低80%&#xff01;本文将深入解析该系统的技术架构与开发要点&#xff0c;助你快速搭建高…

[Lc7_分治-快排] 快速选择排序 | 数组中的第K个最大元素 | 库存管理 III

目录 1. 数组中的第K个最大元素 题解 代码 2.库存管理 III 代码 1. 数组中的第K个最大元素 题目链接&#xff1a;215. 数组中的第K个最大元素 题目分析&#xff1a; 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要…

AI视频生成工具清单(附网址与免费说明)

以下是一份详细的AI视频制作网站总结清单&#xff0c;包含免费/付费信息及核心功能说明&#xff1a; AI视频生成工具清单&#xff08;附网址与免费说明&#xff09; 1. Synthesia 网址&#xff1a;https://www.synthesia.io是否免费&#xff1a;免费试用&#xff08;生成视频…

dp_走方格(包含dfs分析,记忆化搜索)

类似题目解析&#xff1a;dp_最长上升子序列&#xff08;包含dfs分析&#xff0c;记忆化搜索&#xff09;-CSDN博客 题目链接&#xff1a;2067. 走方格 - AcWing题库 题目图片&#xff1a; 分析题目&#xff08;dfs&#xff09; 这个题目说有一个行为n行&#xff0c;列为m列…

Windows系统安装python2025最新安装包,包括环境配置,以及安装python编程软件PyCharm2024.3.3免费社区版本,详细全流程

一、python安装包安装 1、python安装包下载 浏览器打开官网&#xff0c;最好是谷歌浏览器 https://www.python.org/downloads/windows/ 下载安装包&#xff08;注意处理器是32位还是64位&#xff09; 注意&#xff1a;下载完成后&#xff0c;找到安装包并双击运行。在安装向导…

【GPT入门】第3课 客服会话质检(思维链)

【GPT入门】第3课 客服会话质检 1.质检任务2. 代码3.核心 1.质检任务 任务本质是检查客服与用户的对话是否有不合规的地方 质检是电信运营商和金融券商大规模使用的一项技术 每个涉及到服务合规的检查点称为一个质检项 我们选一个质检项&#xff0c;产品信息准确性&#xff0…

ubuntu 20.04 C++ 源码编译 cuda版本 opencv4.5.0

前提条件是安装好了cuda和cudnn 点击下载&#xff1a; opencv_contrib4.5.0 opencv 4.5.0 解压重命名后 进入opencv目录&#xff0c;创建build目录 “CUDA_ARCH_BIN ?” 这里要根据显卡查询一下,我的cuda是11&#xff0c;显卡1650&#xff0c;所以是7.5 查询方法1&#xff1…

K8s 1.27.1 实战系列(四)验证集群及应用部署测试

一、验证集群可用性 1、检查节点 kubectl get nodes ------------------------------------------------------ NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 3h48m v1.27.1 k8s-node1 Ready <none> …

【C++设计模式】第七篇:桥接模式(Bridge)

注意&#xff1a;复现代码时&#xff0c;确保 VS2022 使用 C17/20 标准以支持现代特性。 抽象与实现的解耦之道 1. 模式定义与用途​​ 核心思想​ ​桥接模式&#xff1a;将抽象部分与实现部分分离&#xff0c;使二者可以独立变化。​关键用途&#xff1a; ​1.拆分复杂继承…

在 Spring Boot 2.7.x 中引入 Kafka-0.9 的实践

文章目录 在 Spring Boot 2.7.x 中引入 Kafka-0.9 的实践一、下载 Kafka-0.9二、启动 Zookeeper 和 Kafka三、创建 Spring Boot 项目四、引入 kafka 依赖五、移除 Kafka 自动配置六、编写 Kafka 生产者6.1 Kafka配置类6.2 生产者监听类 七、编写Controller发送Kafka八、验证消费…

字符串中的数字之和

题目描述 程序要求能够提取输入的字符串中的数字&#xff0c;将数字累加&#xff0c;得到数字之和&#xff0c;如输入的字符串为"abc76wet23er1.",应该提取数字76,23,1,求和后&#xff0c;即76231100。 输入格式: 输入一个字符串&#xff0c;字符串长度不超过100.…

77.ObservableCollection使用介绍1 C#例子 WPF例子

可观察集合ObservableCollection using System; using System.Collections.ObjectModel;class Program {static void Main(){// 创建一个可观察集合ObservableCollection<string> list new ObservableCollection<string>();// 注册集合变化事件list.CollectionCh…

ORACLE 执行查询语句慢(不走对应索引)

1. 索引未被创建或未正确创建 确保为查询中涉及的列创建了索引。例如&#xff0c;如果你经常需要按column_name列进行查询&#xff0c;确保已经为该列创建了索引,索引创建语句 CREATE INDEX idx_column_name ON table_name(column_name); 2、索引不可用 原因:索引可能被标记为不…

r1-reasoning-rag:一种新的 RAG 思路

最近发现了一个开源项目&#xff0c;它提供了一种很好的 RAG 思路&#xff0c;它将 DeepSeek-R1 的推理能力结合 Agentic Workflow 应用于 RAG 检索 项目地址 https://github.com/deansaco/r1-reasoning-rag.git 项目通过结合 DeepSeek-R1、Tavily 和 LangGraph&#xff0c;实现…