整體流程於上一份微調文件基本一致,此份是詳細備份及關鍵說明:
1.處理文件
處理好法律名詞解釋爲json文件的格式,其中prompt column爲 content
,response column 爲summary
,如下:
(如果KEY不是content-summary的形式,也可修改train.sh對應的項,見後文)
2.數據上傳與下載
將處理好後的文件壓縮上傳,打開oss軟件,.\oss login
登錄後使用oss指令上傳文件:
cp 壓縮文件所在目錄\xxx.zip oss://
在恆源雲的終端,登錄後轉到對應的文件夾(此處是ChatGLM/ChatGLM-6B-main/ptuning
),下載後解壓,指令如下:
`cd /ChatGLM/ChatGLM-6B-main/ptuning //轉到微調文件夾
`oss cp oss://xxx.zip .`//下載壓縮數據文件
`unzip -q xxx.zip` //解壓
3.更改訓練文件參數
修改train.sh
和evaluate.sh
中的train_file
、validation_file
和test_file
爲你自己的 JSON 格式數據集路徑,並將prompt_column
和response_column
修改爲 JSON 文件中輸入文本和輸入文本對應的 KEY。
同時要更改字符長度,因爲法律名詞的解釋較長,所以將target改爲256比較合適。
修改batch size,可以增加顯存的利用率,默認爲1,此處設置爲2,可嘗試設爲4。
修改步數,主要是save step,由於系統空間較小,可通過增大save step來減少保存次數,減少存儲量;還可以通過更改輸出目錄,將輸出保存到臨時空間中,不會佔用系統空間,但是後續還需移動。
4.啓動訓練
上述更改保存後,執行代碼開始訓練
bash train.sh
此步驟後,生成的文件默認存放於 ./output/adgen-chatglm-6b-pt-8-1e-2/
。
5.評估
修改evaluate.sh文件,修改內容同上,不再贅述。同時運行,生成評估文件
bash evaluate.sh
此步驟後,結果存放於 ./output/adgen-chatglm-6b-pt-8-1e-2/generated_predictions.txt
。
6.部署模型
返回ChatGLM/ChatGLM-6B-main/
,修改cli_demo.py文件。將文件中的模型改爲訓練後產生的checkpoints的地址(此處爲./ptuning/output/adgen-chatglm-6b-pt-128-2e-2/checkpoint-1000
)
上述步驟保存後,執行代碼開始運行:
python cli_demo.py
(注意:根據官方文檔說明,微調後模型只支持第一輪對話,後續對話可能會生成錯誤!)
附:
對於以下情形,如果要直接定位到詳細解釋,就需要把訓練數據改爲具體解釋,而不是“詳見xxx”這種格式。