RWKV-Runner LoRA微調(diào)功能使用說明 (視頻文本)
大家好,本視頻將會講解RWKV-Runner的LoRA微調(diào)使用方法
RWKV-Runner中的微調(diào)功能基于項(xiàng)目RWKV-LM-LoRA,這是它的github鏈接: https://github.com/Blealtan/RWKV-LM-LoRA
RWKV-Runner訓(xùn)練功能所做的事情只是為此項(xiàng)目封裝了一套簡單的GUI,并提供了自動的WSL訓(xùn)練環(huán)境配置,如果你不想要使用GUI訓(xùn)練,仍然可以使用finetune目錄下的腳本進(jìn)行訓(xùn)練
在windows上使用GUI進(jìn)行LoRA微調(diào)時,你需要先打開RWKV-Runner的訓(xùn)練頁面,然后點(diǎn)擊訓(xùn)練按鈕,如果你是初次使用,那么此時尚未安裝好python環(huán)境,將會提示你進(jìn)行python下載和安裝,跟隨指引,點(diǎn)擊下載,在下載完成后,再次點(diǎn)擊訓(xùn)練,會繼續(xù)要求你進(jìn)行安裝依賴
在依賴安裝完畢后,你可以從模型頁面選擇一個你想要微調(diào)的基底模型下載,對于中文用戶,通常建議使用3B,7B中文增強(qiáng)模型,對于初次訓(xùn)練要確認(rèn)環(huán)境可用,則建議先使用開銷較低的0.1B模型,如果下載速度為0,你可以點(diǎn)擊打開網(wǎng)頁按鈕,手動下載,并放置在models目錄,目前推薦使用World系列模型進(jìn)行微調(diào),如果你希望使用Raven系列模型,需要自行前往RWKV官方的huggingface頁面,下載rwkv-4-pile基底模型,并將詞表路徑改為backend-python/rwkv_pip/20B_tokenizer.json,使用World模型則直接使用默認(rèn)值即可
下載完模型后,在訓(xùn)練參數(shù)一欄,選擇你要使用的基底模型,然后點(diǎn)擊訓(xùn)練,初次執(zhí)行時,會提示你數(shù)據(jù)需要轉(zhuǎn)換,點(diǎn)擊上方的轉(zhuǎn)換按鈕,將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為更適合訓(xùn)練的格式
此時再次點(diǎn)擊訓(xùn)練,將會嘗試開啟windows WSL功能,激活Linux環(huán)境,此操作會要求管理員權(quán)限,你需要點(diǎn)擊確認(rèn),在彈出的窗口完成激活后,會建議你重啟電腦,如果你先前已經(jīng)開啟過WSL功能,則可以不進(jìn)行重啟
接著,會自動查詢是否安裝了Ubuntu系統(tǒng),如果沒有找到該系統(tǒng),將會提示你進(jìn)行安裝,對于一般使用windows家庭版或?qū)I(yè)版的用戶,點(diǎn)擊安裝后,Microsoft Store將會自動打開并跳轉(zhuǎn)至Ubuntu安裝界面
使用商店安裝前,建議你先在命令行執(zhí)行一次wsl --update進(jìn)行更新,并執(zhí)行wsl --set-default-version 2將默認(rèn)版本設(shè)為2,然后點(diǎn)擊商店的安裝按鈕,安裝完畢后,再點(diǎn)擊打開,讓其執(zhí)行初始化配置
如果你使用的是服務(wù)器版Windows系統(tǒng),通常該系統(tǒng)沒有商店組件,請使用命令行自行安裝Ubuntu系統(tǒng)
之后,繼續(xù)點(diǎn)擊訓(xùn)練按鈕,現(xiàn)在將會為Linux配置訓(xùn)練環(huán)境,軟件界面將會出現(xiàn)一系列命令文本,并下載多個組件,此階段請保證你的網(wǎng)絡(luò)暢通,環(huán)境配置只需要執(zhí)行一次
在環(huán)境配置完畢后,將自動開始訓(xùn)練,當(dāng)你見到這個圖形化Loss曲線時,意味著訓(xùn)練已正式開始,根據(jù)你設(shè)置的保存間隔輪次,在LoRA模型一欄,將會出現(xiàn)多個訓(xùn)練完成的LoRA權(quán)重,你可以選擇一個權(quán)重,并點(diǎn)擊合并模型,將會生成一個直接可用的完整模型,并可在配置頁面選擇,正常啟動
如果你希望從某個LoRA權(quán)重繼續(xù)訓(xùn)練,也可以在LoRA模型一欄選擇,并點(diǎn)擊訓(xùn)練,如果你希望從頭開始進(jìn)行LoRA微調(diào),則這里選擇“空”
關(guān)于訓(xùn)練數(shù)據(jù),你可以點(diǎn)擊這里的幫助按鈕,目前支持兩種格式
一種是在這里填寫一個文件夾路徑,文件夾內(nèi)的所有txt文件,在你點(diǎn)擊轉(zhuǎn)換按鈕后,會自動處理成訓(xùn)練數(shù)據(jù),txt文件的內(nèi)容,根據(jù)你的應(yīng)用場景而定,你可以在續(xù)寫頁面查看這里的各類預(yù)設(shè),這些文本直接保存為txt,就可以用作對應(yīng)的訓(xùn)練數(shù)據(jù)。例如一整本小說,保存為txt,用作訓(xùn)練數(shù)據(jù);又或者這樣的對話形式,用作訓(xùn)練數(shù)據(jù),訓(xùn)練聊天模型;也可以是代碼,指令,或者特定的翻譯格式,由你自己決定??傊?xùn)練數(shù)據(jù)是什么樣的,使用的時候就用一樣的方式使用
另一種訓(xùn)練數(shù)據(jù)是直接填寫jsonl格式文件的路徑,點(diǎn)擊轉(zhuǎn)換,然后開始訓(xùn)練,你可以點(diǎn)擊這里查看jsonl格式文件示例,自己將數(shù)據(jù)處理成這種格式
接下來是這里的一些訓(xùn)練參數(shù)介紹,除去之前已經(jīng)提到的,這里還有的常用參數(shù)包括以下內(nèi)容,以下沒有提到的則不建議用戶修改:
顯卡數(shù)量:你有幾張Nvidia顯卡,就填幾
精度:通常推薦bf16,這也是RWKV官方訓(xùn)練所用的精度
上下文長度:訓(xùn)練的模型所能夠進(jìn)行對話/續(xù)寫的上下文長度,注意目前不建議太長,如果你的數(shù)據(jù)量足夠長,那么可以適當(dāng)增加,但不建議超過4096 (需要更長上下文長度,甚至無限長度的,后面會提到另一個訓(xùn)練項(xiàng)目)
訓(xùn)練步數(shù):一輪訓(xùn)練的步數(shù),Loss曲線中,一個節(jié)點(diǎn)就是一輪,更小的步數(shù)會有更細(xì)粒度的Loss節(jié)點(diǎn)和權(quán)重
訓(xùn)練輪次:一共訓(xùn)練多少輪后停止
保存間隔輪次:每訓(xùn)練多少輪存一個LoRA權(quán)重
學(xué)習(xí)率:懂的都懂,一般沒必要改,改的話不要大于1e-4
LoRA R:可訓(xùn)練的參數(shù)量,如果你正在使用一個較大的模型,或/且有較多的訓(xùn)練數(shù)據(jù),那么可以適當(dāng)增加LoRA R,例如增加到16,32
微批次大?。憾亩级绻阌?xùn)練時,顯存有富裕,且數(shù)據(jù)較多,可以適當(dāng)增大此項(xiàng),例如設(shè)為2,4,8
如果訓(xùn)練過程中提示你內(nèi)存不足,請注意,你可能需要自己配置.wslconfig文件,分配更多的內(nèi)存空間
訓(xùn)練停止后,如果內(nèi)存空間沒有釋放,可以使用wsl --shutdown終止wsl,強(qiáng)制釋放
最后是另一個RWKV無限上下文訓(xùn)練的項(xiàng)目,如果你有更高的訓(xùn)練/微調(diào)需求,可以使用此項(xiàng)目:https://github.com/RWKV/RWKV-infctx-trainer
你也可以在這個網(wǎng)址查看一些相關(guān)說明:https://github.com/SynthiaDL/TrainChatGalRWKV
由于這個項(xiàng)目有比較詳細(xì)的介紹,這里就不多贅述了,此外RWKV-Runner已經(jīng)自動進(jìn)行了環(huán)境部署,你可以很輕松地通過命令行在WSL跑起這個項(xiàng)目