目錄
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賬號(云端版)
如果你希望:
- 任何一臺遠程服務器上跑的實驗,都能匯總到一個網頁空間下進行管理
- 無論通勤還是運動,都可以用手機看到最新的訓練進展
- 將訓練曲線、超參數一鍵分享給小伙伴,讓他們看到你正在訓練的過程
- 保存你的所有歷史實驗,告別整理分布在各個文件夾里的日志
那么非常推薦你使用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研究者提供了良好的交流基礎,研究者們可以基于圖表進行溝通、分析與優化,而非以往看著枯燥的終端打印。這打破了團隊溝通的壁壘,提高了整體的研發效率。