亚洲中文字幕无码日韩精品,亚洲一区制服无码中字,亚洲精品第一国产综合精品99 ,一本大道中文日本香蕉

微立頂科技

新聞資訊

創(chuàng)新 服務(wù) 價(jià)值

  ChatGLM2-6B 的 Lora 微調(diào)教程

發(fā)布日期:2023/11/8 23:29:24      瀏覽量:

0. 背景

現(xiàn)在開始學(xué)習(xí)微調(diào),主要學(xué)習(xí) Lora 微調(diào)。

這次嘗試了修改 ChatGLM2-6B 自我認(rèn)知,文章中記錄了整個(gè)微調(diào)過程。

1. 部署微調(diào)項(xiàng)目

git clone https://github.com/hiyouga/ChatGLM-Efficient-Tuning.git
conda create -n chatglm_etuning python=3.10
conda activate chatglm_etuning
cd ChatGLM-Efficient-Tuning
pip install -r requirements.txt

2. 數(shù)據(jù)集說明

我們使用 self_cognition 數(shù)據(jù)集,該數(shù)據(jù)集包含了 18 條關(guān)于模型自我認(rèn)知的數(shù)據(jù),我們的目標(biāo)是修改模型自身的知識(shí),使模型給出我們希望的答復(fù)。

首先,對(duì)數(shù)據(jù)做以下修改,

sed -i ’s/ChatGLM-6B/ChatGLM2-6B/g’ data/self_cognition.json

# 提示:您可以將 [NAME] 換成您自己的名字,從而讓模型回答它的創(chuàng)造者是您。
sed -i ’s/\[NAME\]/AI小鎮(zhèn)/g’ data/self_cognition.json

其次,查看 data/self_cognition.json,這里我們列出兩條示例。

[
    {
      "instruction": "你身份是什么?",
      "input": "",
      "output": "我叫ChatGLM2-6B,是一個(gè)由AI小鎮(zhèn)于2023年獨(dú)立訓(xùn)練和開發(fā)的人工智能助手。我的主要目標(biāo)是協(xié)助用戶解決問題和滿足他們的需求。"
    },
    {
      "instruction": "你的身份信息能告訴我嗎?",
      "input": "",
      "output": "當(dāng)然可以,我是ChatGLM2-6B,一個(gè)由AI小鎮(zhèn)創(chuàng)建的人工智能助手。我在2023年研發(fā)完成,旨在為用戶提供有針對(duì)性的回答和幫助。"
    }
]

3. 模型監(jiān)督微調(diào)(Lora)

運(yùn)行以下命令在單個(gè) GPU 上進(jìn)行模型監(jiān)督微調(diào)。我們使用 self_cognition 數(shù)據(jù)集,采用 lora 微調(diào)方法,微調(diào)后的模型保存在 cognition 文件夾中。為了保證模型微調(diào)成功,我們采用 0.001 的學(xué)習(xí)率,在數(shù)據(jù)集上訓(xùn)練 10 個(gè) epoch。

CUDA_VISIBLE_DEVICES=0 python src/train_sft.py     --do_train     --use_v2     --dataset self_cognition     --finetuning_type lora     --lora_rank 32     --output_dir cognition     --overwrite_cache     --per_device_train_batch_size 2     --gradient_accumulation_steps 2     --lr_scheduler_type cosine     --logging_steps 10     --save_steps 1000     --warmup_steps 0     --learning_rate 1e-3     --num_train_epochs 10.0     --fp16

運(yùn)行結(jié)果日志如下,

4. 模型效果測試

運(yùn)行以下命令在單個(gè) GPU 上測試模型效果,它會(huì)加載 cognition 文件夾內(nèi)保存的微調(diào)模型權(quán)重,并合并進(jìn)原版 ChatGLM2-6B 模型的參數(shù)權(quán)重中,同時(shí)啟動(dòng)流式交互窗口。

CUDA_VISIBLE_DEVICES=0 python src/cli_demo.py     --use_v2     --checkpoint_dir cognition

向微調(diào)后的 ChatGLM2-6B 模型問一些自我認(rèn)知問題,我們可以發(fā)現(xiàn)它能夠給出我們期望的回答。

同時(shí),我們還測試了兩個(gè)額外的問題,驗(yàn)證結(jié)果說明模型的原本知識(shí)并沒有被嚴(yán)重破壞。

5. 導(dǎo)出微調(diào)模型

如果要將微調(diào)后的模型部署在您的項(xiàng)目框架中,請(qǐng)使用 export_model.py 將微調(diào)后的權(quán)重合并到 ChatGLM2-6B 模型中并導(dǎo)出完整模型。(提示:output_dir 不要使用大寫字母)

python src/export_model.py     --use_v2     --checkpoint_dir cognition     --output_dir ./chatglm2_6b_lora

然后訪問 https://huggingface.co/THUDM/chatglm2-6b/tree/main,將 configuration_chatglm.py、modeling_chatglm.py、quantization.py、tokenization_chatglm.py 4個(gè)文件下載到 ./chatglm2_6b_lora 目錄下面。

然后執(zhí)行下面命令,修改幾個(gè)配置值。

sed -i ’s/THUDM\/chatglm2-6b--//g’ ./chatglm2_6b_lora/config.json
sed -i ’s/THUDM\/chatglm2-6b/\.\.\/chatglm2_6b_lora/g’ ./chatglm2_6b_lora/config.json
sed -i ’s/THUDM\/chatglm2-6b--//g’ ./chatglm2_6b_lora/tokenizer_config.json
sed -i ’s/THUDM\/ChatGLM2-6B/\.\.\/chatglm2_6b_lora/g’ ./chatglm2_6b_lora/modeling_chatglm.py
sed -i ’s/THUDM\/chatglm2-6b/\.\.\/chatglm2_6b_lora/g’ ./chatglm2_6b_lora/modeling_chatglm.py

6. 調(diào)用導(dǎo)出的模型

創(chuàng)建 chatglm2_6b_lora.py,

cat << EOF > chatglm2_6b_lora.py
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained(’./chatglm2_6b_lora’, trust_remote_code=True)
model = AutoModel.from_pretrained(’./chatglm2_6b_lora’, trust_remote_code=True).half().cuda()
response, history = model.chat(tokenizer, "你是誰?", history=[])
print(response)
EOF

執(zhí)行 chatglm2_6b_lora.py,

python chatglm2_6b_lora.py

輸出結(jié)果如下,


完結(jié)!



  業(yè)務(wù)實(shí)施流程

需求調(diào)研 →

團(tuán)隊(duì)組建和動(dòng)員 →

數(shù)據(jù)初始化 →

調(diào)試完善 →

解決方案和選型 →

硬件網(wǎng)絡(luò)部署 →

系統(tǒng)部署試運(yùn)行 →

系統(tǒng)正式上線 →

合作協(xié)議

系統(tǒng)開發(fā)/整合

制作文檔和員工培訓(xùn)

售后服務(wù)

馬上咨詢: 如果您有業(yè)務(wù)方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗(yàn)積累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     聯(lián)系人:石先生/雷先生