在AutoDL上使用LLamaFactory進(jìn)行模型訓(xùn)練 原創(chuàng)
前言
在眾多的GPU云平臺(tái)中,AutoDL是我們常用的一個(gè)。它因?yàn)轱@卡可快速擴(kuò)展、實(shí)例運(yùn)行穩(wěn)定、網(wǎng)絡(luò)連接速度快,深受大家的喜愛。不過其端口映射略微復(fù)雜,所以本篇文章,我們將介紹在AutoDL平臺(tái)上進(jìn)行模型訓(xùn)練的過程。
環(huán)境準(zhǔn)備
1.1 創(chuàng)建實(shí)例
通過查看LLamaFactory的官方文檔,我們可以得知,LLamaFactory的運(yùn)行需要依賴以下環(huán)境:
必需依賴 | 最低版本 | 推薦版本 |
python | 3.8 | 3.11 |
torch | 1.13.1 | 2.4.0 |
transformers | 4.41.2 | 4.43.4 |
datasets | 2.16.0 | 2.20.0 |
accelerate | 0.30.1 | 0.32.0 |
peft | 0.11.1 | 0.12.0 |
trl | 0.8.6 | 0.9.6 |
可選依賴 | 最低版本 | 推薦版本 |
CUDA | 11.6 | 12.2 |
deepspeed | 0.10.0 | 0.14.0 |
bitsandbytes | 0.39.0 | 0.43.1 |
vllm | 0.4.3 | 0.5.0 |
flash-attn | 2.3.0 | 2.6.3 |
根據(jù)以上的依賴環(huán)境版本,我們?cè)贏utoDL上選擇較為穩(wěn)定的??Pytorch2.3.0+Python3.12+CUDA12.1?
?。
1.2 (可選)無(wú)卡模式運(yùn)行
- AutoDL實(shí)例創(chuàng)建成功之后,默認(rèn)是帶著顯卡啟動(dòng)運(yùn)行的,此時(shí)的費(fèi)用是2元/小時(shí)。
- 因?yàn)槲覀兦捌谶M(jìn)行環(huán)境部署以及拉取數(shù)據(jù),暫時(shí)不涉及訓(xùn)練部分,也就用不到GPU。
- 這種情況下,我們可以將實(shí)例關(guān)閉之后以無(wú)卡模式運(yùn)行。
注意:
當(dāng)后續(xù)開啟訓(xùn)練時(shí),不要忘了切換回有顯卡模式運(yùn)行。
1.2 下載LLamaFactory
# 拉取LLamaFactory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
# 進(jìn)入LLamaFactory目錄
cd LLaMA-Factory
# 安裝依賴
pip install -e ".[torch,metrics]"
1.3 啟動(dòng)LLamaFactory
llamafactory-cli webui
運(yùn)行結(jié)果:
1.4 端口映射
因?yàn)長(zhǎng)LamaFactory的默認(rèn)訪問端口為??7860?
?,所以我們需要進(jìn)行端口映射才可以訪問。
注意:
- 在ModelScope中,我們是通過?
?export GRADIO_SERVER_PORT=7860 GRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/?
?命令設(shè)置環(huán)境變量來實(shí)現(xiàn)的。- 以上方法不可行在AutoDL中不可行。
AutoDL官方提供方法是使用SSH隧道來實(shí)現(xiàn)。
具體方法:
1.點(diǎn)擊自定義服務(wù)
2.在彈出的頁(yè)面中提示中,選擇對(duì)應(yīng)操作系統(tǒng)的方法。
1.4.1 Mac用戶
Mac用戶下使用此方法:
1.復(fù)制ssh命令
2.在MAC的terminal命令行下執(zhí)行如下命令
ssh -CNg -L 7860:127.0.0.1:7860 root@connect.nmb1.seetacloud.com -p 16035
執(zhí)行結(jié)果:
注意:
- 因?yàn)長(zhǎng)LamaFactory的默認(rèn)訪問端口為?
?7860?
?,所以我們根據(jù)需要修改上面的命令行中的端口為??7860?
?。- 運(yùn)行ssh命令行后,系統(tǒng)會(huì)提示是否繼續(xù),輸入?
?yes?
?繼續(xù)。
3. 復(fù)制密碼
4. 輸入密碼
在命令行粘貼上一步的代碼后回車,回車之后如果沒有提示連接中斷,始終閃爍光標(biāo),那么代表端口監(jiān)聽正常。
如果提示?
?Permission denied, please try again.?
?,代表密碼輸入錯(cuò)誤,請(qǐng)重試。
5. 瀏覽器訪問llamafactory
在上一步,我們通過SSH與服務(wù)器成功建立了隧道連接,接下來,我們就可以在瀏覽器中輸入如下地址訪問。
http://localhost:7860/
注意:
請(qǐng)保持命令行全程后臺(tái)運(yùn)行,不要關(guān)閉,否則鏈接會(huì)中斷。
1.4.2 Windows用戶
Windows用戶與服務(wù)器建立隧道連接的方法不同,需要按照官網(wǎng)提示下載程序。
1.下載AutoDL-SSH-Tools
2.解壓.zip文件后,雙擊運(yùn)行??AutoDL.exe?
?
3.復(fù)制SSH和密碼,填入工具相應(yīng)位置
4.啟動(dòng)代理
5.瀏覽器中輸入??http://localhost:7860/?
?后,訪問llamafactory
模型訓(xùn)練
1. 數(shù)據(jù)準(zhǔn)備
此處復(fù)用【課程總結(jié)】day24(上):大模型三階段訓(xùn)練方法(LLaMa Factory)中的數(shù)據(jù)。
1.1 下載數(shù)據(jù)
git clone https://www.modelscope.cn/datasets/xiaofengalg/Chinese-medical-dialogue.git
1.2 注冊(cè)自定義數(shù)據(jù)
在LLamaFactory的??dataset_info.json?
?中添加如下數(shù)據(jù)集:
"custom_sft_train_data":{
"file_name":"/root/Chinese-medical-dialogue/data/data/train_0001_of_0001.json",
"columns":{
"prompt":"instruction",
"query":"input",
"response":"output"
}
},
注意:
以上file_name是數(shù)據(jù)集的絕對(duì)路徑,需要根據(jù)實(shí)際情況修改。
2. 模型準(zhǔn)備
git clone https://www.modelscope.cn/qwen/Qwen2-0.5B.git
3. 模型訓(xùn)練
后續(xù)內(nèi)容與??【大模型三階段訓(xùn)練方法(LLaMa Factory)】??一致,此處不再贅述。
總結(jié)
- 在AutoDL上使用LLamaFactory進(jìn)行模型訓(xùn)練,需要進(jìn)行端口映射,具體方法為使用SSH隧道。
- 建立SSH隧道在Mac和Windows下不同,Mac直接使用命令行運(yùn)行ssh命令,Window下需要下載客戶端程序運(yùn)行。
- 運(yùn)行SSH命令時(shí),需要根據(jù)需要設(shè)置相應(yīng)映射的端口。
?
本文轉(zhuǎn)載自公眾號(hào)一起AI技術(shù) 作者:熱情的Dongming
原文鏈接:??https://mp.weixin.qq.com/s/N4qG9mazswyzUWRHuSpjUA??
