SwanLab簡明教程:從萌新到高手

目錄

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;實現…