chatglm-6b雲端微調

下載依賴

pip install rouge_chinese nltk jieba datasets

下載訓練數據集(示例)

ADGEN 數據集任務爲根據輸入(content)生成一段廣告詞(summary)。

{
    "content": "類型#上衣*版型#寬鬆*版型#顯瘦*圖案#線條*衣樣式#襯衫*衣袖型#泡泡袖*衣款式#抽繩",
    "summary": "這件襯衫的款式非常的寬鬆,利落的線條可以很好的隱藏身材上的小缺點,穿在身上有着很好的顯瘦效果。領口裝飾了一個可愛的抽繩,漂亮的繩結展現出了十足的個性,配合時尚的泡泡袖型,盡顯女性甜美可愛的氣息。"
}

​ 1.從 Google Drive 或者 Tsinghua Cloud 下載處理好的 ADGEN 數據集,注意將AdvertiseGen.tar.zip文件解壓後得到dev.json和train.json文件,再將其壓縮成AdvertiseGen.zip文件,上傳至雲端,方法同上(目錄放到ChatGLM-6B-main\ptuning中)

​ 2.在ChatGLM-6B-main\ptuning目錄下運行train.sh (不要存在多級目錄)

注意要預留足夠的硬盤空間!由於此處空間預留不充分,導致訓練數據失敗。但是好在checkpoints-1000保存下來了,可以使用。默認輸出地址是./output/adgen-chatglm-6b-pt-8-1e-2/

image

​ 3.打開evaluate.sh,將CHECKPOINT改成輸出結果的更改爲訓練時保存的 checkpoint 名稱,同時將step從3000改成1000,運行以下指令進行模型推理和評測:

bash evaluate.sh

生成的結果保存在 ./output/adgen-chatglm-6b-pt-8-1e-2/generated_predictions.txt中。

image

使用自己的數據集:

​ 修改 train.shevaluate.sh 中的 train_filevalidation_filetest_file爲你自己的 JSON 格式數據集路徑,並將 prompt_columnresponse_column 改爲 JSON 文件中輸入文本和輸出文本對應的 KEY。

​ 其中train.sh 中的 PRE_SEQ_LENLR 分別是 soft prompt 長度和訓練的學習率,可以進行調節以取得最佳的效果。P-Tuning-v2 方法會凍結全部的模型參數,可通過調整 quantization_bit 來被原始模型的量化等級,不加此選項則爲 FP16 精度加載。

​ 在默認配置 quantization_bit=4per_device_train_batch_size=1gradient_accumulation_steps=16 下,INT4 的模型參數被凍結,一次訓練迭代會以 1 的批處理大小進行 16 次累加的前後向傳播,等效爲 16 的總批處理大小,此時最低只需 6.7G 顯存。若想在同等批處理大小下提升訓練效率,可在二者乘積不變的情況下,加大 per_device_train_batch_size 的值,但也會帶來更多的顯存消耗,請根據實際情況酌情調整。

image

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章