3步輕松微調Qwen3,本地電腦就能搞,這個方案可以封神了!【喂飯級教程】
本地部署Llama-factory
首先我們需要本地部署一個零代碼,專門用來微調大模型的開源項目:Llama-factory。
它在GitHub目前已經斬獲49K 超高Star。
??https://github.com/hiyouga/LLaMA-Factory??
并且,這個項目還是我們國人開源的,作者是北京航空航天大學博士生-鄭耀威
先通過git指令把源碼拉取到本地。
git clone https://github.com/hiyouga/LLaMA-Factory.git
如果沒有git,也可以直接下載源碼的zip包。
然后,我們還是使用docker-compose部署。
首先,進入如下目錄:
在地址欄輸入cmd,回車,進入控制臺。
在控制臺輸入docker-compose up -d。
這個過程需要下載很多依賴,最終會構建一個33G左右的docker鏡像。
整個下載過程可能要持續20分鐘左右。
看到如下日志就代表部署成功~
如果想啟動webui,我們還需要進入llamafactory容器內部。
docker compose exec llamafactory bash
然后執行 llamafactory-cli webui 啟動webui。
啟動之后,我們可以在瀏覽器訪問llama-factory的webui頁面啦!
地址:127.0.0.1:7860
剛打開默認是英文,我們可以在左上角語言那里,下拉選擇zh,配置成文中。
準備數據集
這一步是非常核心的環節,微調的效果很大程度上取決于準備的數據集質量。
如何采集、預處理實際需求中需要的高質量的數據集,可以放到后續的文章中分享。
今天我們主要目的是跑通整個微調流程。
魔搭社區集成了相當豐富的中文數據集(我們可以先搞個現成的來測試)
??https://www.modelscope.cn/datasets??
而且有很多分類可以選。
咱們今天就找一個角色扮演(甄嬛)的數據集來微調(方便查看效果)
??https://www.modelscope.cn/datasets/kmno4zx/huanhuan-chat??
進來之后,可以在數據預覽這里查看詳細數據。
有個注意事項,就是llama-factory目前只支持兩種格式的數據集。
如下圖,Alpaca格式和Sharegpt格式。
然后,我們切換到數據集文件這邊,打開huanhuan.json文件。
可以看到它其實就是Alpaca格式的數據集,僅下載這一個文件即可。
下載下來的數據集,我們放在項目根目錄的data文件夾下。
在llama-factory添加數據集,不僅要把數據文件放到data目錄下,還需要在配置文件dataset_info.json里面添加一條該數據集的記錄。
然后,打開data文件夾中一個名為dataset_info.json的配置文件。
添加一條huanhuan.json的json配置,保存。
這樣,我們新添加的數據集才能被llama-factory識別到。
這里保存之后,webui那邊會實時更新,不需要重啟。
微調
上面的準備工作都做好之后,我們就可以在llama-factory的webui上面配置微調相關的參數了。
本次我們的重點是微調,暫不對參數進行深入講解。
llama-factory已經給了默認參數,接下來我們重點關注需要改動的地方即可。
首先是模型,我們選擇此次需要微調的Qwen3-1.7B-Instruct。
微調方式使用默認的lora即可。
Base 版本(如 Qwen3-1.7B-Base)
基礎預訓練模型
沒有經過指令微調
適合繼續搞預訓練或從頭開始指令微調
通常情況下輸出質量不如 Instruct 版本
Instruct 版本(如 Qwen3-1.7B-Instruct)
經過指令微調的模型
更適合直接對話和指令遵循
已經具備基本的對話能力
更適合用來進一步微調
往下拉,找到train(就是微調),選擇我們剛剛配置好的嬛嬛數據集。
訓練輪數可以選擇1輪,會快一些(如果后面發現效果不理想,可以多訓練幾輪),我這里最終選擇了3輪,因為我發現僅1輪效果不佳。
由于我們的數據集都是一些短問答,可以把截斷長度設置小一點,為1024(默認是2048)
預熱步數是學習率預熱采用的步數,通常設置范圍在2-8之間,我們這里配置4,梯度累計設置為4。
本次使用的是lora微調,所以還是得看看lora的參數配置。
主要關注的就是lora秩,和lora縮放系數。
lora秩越大(可以看作學習的廣度),學習的東西越多,微調之后的效果可能會越好,但是也不是越大越好。太大的話容易造成過擬合(書呆子,照本宣科,不知變通),這里設置為8。
lora縮放系數(可以看作學習強度),越大效果可能會越好,對于一些用于復雜場景的數據集可以設置更大一些,簡單場景的數據集可以稍微小一點。我這里設置256。
到這里我們的參數就配置完畢。
接下來,咱們就可以正式"煉丹"啦!
拉倒最底部,點擊開始。
一般過幾秒,就會在下面看到日志,橙色的條是進度條。
webui的控制臺這邊也能看到日志。
只要沒有報錯即可。
開始之后,llama-factory如果沒有找到模型,會先自動下載模型。
模型下載完成之后,可以到下面這個目錄查找下載好的模型。
然后就是漫長的等待,我的微調了25分鐘才搞定。
之前微調qwen3-4b的模型,僅1輪就耗費了1個小時40分鐘。
看到類似下面這條"訓練完畢"就代表微調成功。
如果想重新微調,記得改一下下面紅框中的兩個值。
微調成功后,在檢查點路徑這里,下拉可以選擇我們剛剛微調好的模型。
把窗口切換到chat,點擊加載模型。
加載好之后就可以在輸入框發送問題,測試微調模型的回復效果了。
如果想切換回微調之前的模型,只需要把檢查點路徑置空。
然后在chat這里卸載模型,再加載模型即可。
接下來,我們就可以導出模型了。
檢查點路徑選擇我們剛剛微調好的模型。
切換到export,填寫導出目錄/app/output/qwen3-1.7b-huanhuan。
點擊導出。
注意:上面的路徑前面固定填/app/output/,后面的文件夾名稱可以自定義。
導出完成之后就可以在項目根目錄的output目錄下,看到自己剛剛導出的qwen3-1.7b-huanhuan文件夾。
里面就是導出的qwen3微調模型和相關文件。
導入ollama,接入Cherry Studio
在導出模型所在文件夾的地址欄輸入cmd 回車,進入當前目錄的控制臺。
我們需要輸入一個ollama命令(前提是先啟動了ollama)。
指令中的qwen3-1.7b-huanhuan是我自己起的名字(可自定義),這就是導入ollama后的模型名稱。
ollama create qwen3-1.7b-huanhuan -f Modefile
結果發現,報錯了...無法導入。
查了一下資料才發現,目前ollama還沒有支持導入微調后的qwen3...
看下面這個issue,有位老哥提交了修復代碼,但是官方說要后面自己實現。
目前ollama官方最新版是v0.7.1我測試了一下,還是沒有支持導入微調后的qwen3,所以這塊得等官方修復了。
當然,我們可以先換成qwen2.5來進行微調。
用上面同樣的方式導出微調模型,然后導入到ollama。
導入成功后,可以用ollama list指令查看。
打開Cherry Studio,在設置->模型服務->ollama->管理里面就能看到剛剛導入的微調后的qwen2.5模型了。
添加之后,就能在Cherry Studio的對話框里面選擇微調好的模型啦~
本文轉載自??袋鼠帝 AI 客棧??,作者:袋鼠帝 AI 客棧
