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