dsh-fine-tune:在 DSH 裏給本地小模型做 LoRA/QLoRA 微調

前言

寫的是智能體應用的人,多半會碰到一個坎:全棧模型好用,但它跑在別人的服務器上,你手裏只有 API。要用 API 之外的產出——換基座、加領域語料、做可復現的實驗——就得自己有一隻能落地的卡。另一個常見妥協是腳本化訓練:翻多個腳本,拼配置,盯顯存,最後還得自己寫評測,跑通一次要一整天。

下面介紹的 songrui111/dsh-fine-tune(DSH plugin,作者 songrui111,分類「模型推理」)把這件事收進一個面板裏:導入數據 → 訓練 → 評測 → 導出,產物是一個幾十 MB 的 LoRA 適配器。目錄頁見 https://www.skillhub.cn/plugins/songrui111/dsh-fine-tune ,倉庫見 https://github.com/songrui111/dsh-fine-tune 。

這是什麼

一句話:在 DeepSeek Harness 裏微調一個下載到你自己機器上的開源小模型(Qwen / Llama 系的 QLoRA / LoRA),不需要命令行寫死一整套訓練腳本。

它解決的是「小模型在自己卡上做領域適配,並且過程可見、數字可比」這件事。它不能做的事也很明確,README 一開始就講:微調不了你正在聊天的那個雲端模型——你沒有它的權重;macOS 沒有 CUDA,訓練不可行;顯存不夠訓大模型是物理限制。

作者只在 RTX 3060 Laptop 6 GB + Windows 11 上完整跑通(安裝、訓練、評測、導出),其餘環境未驗證,這點下面單列。

硬件和系統要求

項 要求
系統 Windows 10/11(Linux 未驗證,安裝器目前直接拒絕非 Windows 平臺)
顯卡 NVIDIA,6 GB 顯存起
驅動 支持 CUDA 11.8 以上
Python 3.10+(用來建虛擬環境)
磁盤 約 10 GB(依賴 3-5 GB + 模型 1 GB + 數據)

顯存對應的訓練能力,README 裏給出的是實測/推算值:

顯存 能訓
6 GB 0.5B(QLoRA,seq ≤ 1024),顯存峯值 2.86 GiB
8 GB 1.5B
12 GB 3B
24 GB 7B

其中 6 GB 一檔是實測標定,8/12/24 GB 是按顯存推算,不是實測。

安裝與啓用

README 給出的安裝路徑是插件市場,沒有寫 dsh plugin add 之類的命令:

  1. 在插件市場安裝本插件
  2. 打開面板,頂部會提示「訓練需要 Python 環境」,點安裝環境
  3. 等待 10-20 分鐘(下載 torch 等約 3-5 GB)
  4. 裝完會驗證 GPU 真的能跑矩陣乘法,不只是能 import

環境裝在 $DSH_HOME/fine-tune/venv,重裝插件不用重下。

裝完的面板上有 「導入示例數據集」 按鈕(60 條,只在數據集列表爲空時出現,文件在 sample/sample.jsonl),點一下就能先把流程跑通。

安裝失敗時的自檢:

報錯 原因
nvidia-smi 不可用 沒有 N 卡,或驅動沒裝
沒有匹配的 torch 輪子 驅動太舊,升級驅動
顯存不足 4 GB 以下訓練不可行(裝完也訓不動,所以不下載)
找不到 Python 3.10+ 裝 Python 並勾選 Add to PATH

package.json 裏對宿主和 peer 依賴的要求是 engines.dsh >= 0.1.7-rc.2、peerDependencies: @deepseek-ai/schemastery >= 3.18.0,插件版本 0.6.0。

典型用法

1. 準備數據

JSONL,每行一個對話。兩種寫法都行:

{"messages":[{"role":"user","content":"問題"},{"role":"assistant","content":"答案"}]}

簡寫版:

{"prompt":"問題","response":"答案"}

建議 100 條以上。少於 20 條,訓出來的差別大概率在噪聲裏。

導入後先在面板裏看數據卡(樣本數、token 分佈、去重結果),再進訓練。

2. 訓練

「數據」頁勾選數據集 → 「下一步」→ 選模型和序列長度 → 「開始訓練」。

6 GB 顯卡的一組關鍵參數:

參數 值
模型 Qwen2.5-0.5B-Instruct
訓練方式 QLoRA
序列長度 1024

訓練啓動前有顯存預估框:放不下就不啓動,不會跑到一半 OOM。看預估框是綠色再點開始。

3. 評測

「評測與發佈」頁,跑 20 條,看工具調用準確率和文本相似度。之後可以導出 adapter、合併權重,或導出 GGUF 給 Ollama。

實測數據(RTX 3060 Laptop 6 GB)

在 1614 條工具調用樣本上訓練 Qwen2.5-0.5B:

項 結果
耗時 18.3 分鐘(190 步)
顯存峯值 2.86 GiB
loss 1.49 → 0.68
工具調用準確率 0% → 10%
文本相似度 F1 0.005 → 0.271
沾題率 0% → 90%

底座 0% 是正常的:0.5B 原本不會輸出那種 JSON 結構。10% 是 0.5B 在這項任務上的真實水平,不是訓練沒做好;要更高準確率只能換更大模型,需要更大顯存。

有一個坑值得記下來:把數據集的上下文壓縮掉之後(爲了塞進更短的序列),train_loss 卡在 1.61 不降,完全學不到東西;原版數據能降到 0.68。提示裏的歷史上下文是決策依據,不是冗餘,不要爲了省顯存去裁剪它——用更大的序列長度,或者接受截斷。

已知限制

已驗證:Windows 11 + RTX 3060 6 GB,torch 2.5.1+cu121 / transformers 4.46.3 / peft 0.13.2 / bitsandbytes 0.44.1,本機訓練、評測、導出完整鏈路。

未驗證:

項 說明
Linux 代碼寫了,安裝器和訓練一次都沒在 Linux 上跑過
其他顯卡型號 只在這塊 3060 上測過
遠程 SSH 後端 有端到端測試(11/11 通過),但用的是模擬 SSH 服務器,沒連過真實遠程 GPU
CUDA 11.8 輪子 驅動太舊時安裝器會選它,未實測
多卡 不支持

架構上,宿主側 index.js 負責路由、權限門和訓練進程管理,client/client.js 是面板,lib/ 下是顯存估算、參數校驗、CUDA 輪子選擇、安裝、本機/SSH 後端、數據集讀寫;python/fnt_worker/ 是訓練、評測、導出的 Python worker。README 說明了用 venv 而不是打包依賴的原因:torch 版本取決於顯卡,3-5 GB 的包體積也超過插件應有的範圍,裝錯版本比不裝更難排查。

適用場景與注意

適合:手上有 NVIDIA 顯卡、想在 DSH 裏對較小的開源模型做領域適配或工具調用格式對齊,並且接受 0.5B–7B 這個量級的玩家。它把數據導入、顯存預估、訓練、評測、導出收在一個面板裏,適合先跑通流程、再看數字是否可接受。

不建議:需要訓 7B 以上、需要多卡、或者期望微調雲端模型的人。Linux 用戶目前裝不上,遠程 SSH 後端沒連過真實 GPU,兩處都不要當成已驗證能力。

還有兩點要注意。第一,插件是在當前 DSH 進程裏運行的,用的就是當前進程的權限,安裝前先看一眼源碼(倉庫裏列出了 files 清單)和許可證,MIT。第二,目錄頁是社區站點,與 DeepSeek / 幻方沒有官方從屬關係,不是官方應用商店。

結尾

這個插件的價值不在於把一個大模型訓出多高的分數,而在於把「導入數據 → 訓練 → 評測 → 導出」這條鏈路收進面板,讓本地小模型的適配變成一次可重複、數字可判定的實驗。前提是你接受它只在 Windows + RTX 3060 Laptop 6 GB 上驗證過這個事實。

目錄頁:https://www.skillhub.cn/plugins/songrui111/dsh-fine-tune
倉庫:https://github.com/songrui111/dsh-fine-tune

安裝前請自行檢查源碼與許可證。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜