一、背景介紹
模型部署基本步驟分為模型選擇、模型部署、運(yùn)行,如果需要在特定的場(chǎng)景下定制化模型,則還需要進(jìn)行數(shù)據(jù)集的選擇、數(shù)據(jù)集格式轉(zhuǎn)換、微調(diào)。
根據(jù)上述的步驟本教程選取如下的開源模型、數(shù)據(jù)集,來(lái)對(duì)醫(yī)療場(chǎng)景下進(jìn)行定制化模型部署。當(dāng)然模型部署對(duì)GPU要求非常高,所以本教程將使用AutoDL提供的服務(wù)器資源。
- 地址:https://www.autodl.com/home
ChatGLM-6B(模型):清華開源的、支持中英雙語(yǔ)對(duì)話的語(yǔ)言模型,具有62億參數(shù)。
- 地址:https://github.com/THUDM/ChatGLM-6B
HuatuoGPT-sft-data-v1(數(shù)據(jù)集):醫(yī)療數(shù)據(jù)集,擁有333M龐大數(shù)據(jù)。
- 地址:https://huggingface.co/datasets/FreedomIntelligence/HuatuoGPT-sft-data-v1
ChatGLM Efficient Tuning(微調(diào)):針對(duì)ChatGLM-6B進(jìn)行微調(diào),集成多個(gè)微調(diào)框架。
- 地址:https://github.com/hiyouga/ChatGLM-Efficient-Tuning/blob/main/README_zh.md
二、創(chuàng)建服務(wù)器資源
進(jìn)入AutoDL官網(wǎng)申請(qǐng)一臺(tái)服務(wù)器資源,可以按如下圖步驟操作:
進(jìn)入后選擇社區(qū)鏡像,在紅框處輸入:
WhaleOps/dolphinschedulerllm/dolphinscheduler-llm-0521
這個(gè)鏡像集成了基礎(chǔ)的模型運(yùn)行環(huán)境,可以方便以后部署。
創(chuàng)建完成后等待服務(wù)器創(chuàng)建完成即可。創(chuàng)建完成后可以參考下圖:
至此服務(wù)器資源已創(chuàng)建完成。
三、模型部署
點(diǎn)擊JupyterLab進(jìn)入服務(wù)器的控制臺(tái)。
進(jìn)入終端,正式開始模型部署。
3.1 下載ChatGLM模型
首先進(jìn)入/root/autodl-tmp目錄,在這里創(chuàng)建一個(gè)文件夾用來(lái)保存ChatGLM模型,文件目錄可以參考下圖用git_project來(lái)存放模型。
進(jìn)入git_project目錄輸入git clone?https://huggingface.co/THUDM/chatglm-6b?命令下載模型,模型文件比較大可能要等一段時(shí)間。下載完成后可以進(jìn)入chatglm-6b目錄,目錄內(nèi)容參考下圖,后面運(yùn)行就需要依賴下圖的模型。
3.2 下載ChatGLM運(yùn)行依賴
回到git_project目錄輸入git clone?https://github.com/THUDM/ChatGLM-6B.git?命令,下載完成后進(jìn)入ChatGLM-6B目錄,可以看到如下目錄:
我們使用pip install -r requirements.txt 命令下載腳本依賴的庫(kù)。等待命令跑完即可。
3.3 ChatGLM運(yùn)行
運(yùn)行模型需要配置一下模型的文件位置,輸入vim web_demo.py ,修改內(nèi)容參考下圖紅框處。
把紅框處的內(nèi)容改成我們剛剛下載好的模型地址。上圖是已經(jīng)改過(guò)的,可以參考下。
現(xiàn)在已經(jīng)可以運(yùn)行了,輸入 python web_demo.py 試試看。
運(yùn)行后可以看到只能夠在本地自己使用,為了讓運(yùn)行的模型可以分享給大家使用,可以修改參數(shù)share=True,參數(shù)位置位于web_demo.py最底部??梢詤⒖枷聢D:
再嘗試輸入 python web_demo.py 后可以看到控制臺(tái)打印了url地址,參考下圖:
復(fù)制 public URL的地址,放到瀏覽器中體驗(yàn)一下部署好的模型吧。
這是部署好的界面:
四、數(shù)據(jù)集
雖然基礎(chǔ)模型在各個(gè)方面都了解,但一旦深入就開始胡言亂語(yǔ)了。下面我們開始對(duì)模型微調(diào),使它在醫(yī)療方面表現(xiàn)的更好一些。
4.1 下載數(shù)據(jù)集
AutoDL服務(wù)器下載HuggingFace內(nèi)容比較慢,所以先在本地下載好數(shù)據(jù)集后,再上傳到服務(wù)器。
進(jìn)入這個(gè)網(wǎng)址,按下圖步驟進(jìn)行操作:
4.2 數(shù)據(jù)集環(huán)境配置
進(jìn)入git_project目錄,下載微調(diào)框架,輸入 git clone :
https://github.com/hiyouga/ChatGLM-Efficient-Tuning.git。
進(jìn)入ChatGLM-Efficient-Tuning目錄后可以看到如下子目錄:
我們進(jìn)入data目錄,在data目錄下新建huatuo_gpt文件夾用來(lái)存放我們的數(shù)據(jù)集和數(shù)據(jù)集格式轉(zhuǎn)換腳本。
把下載好的數(shù)據(jù)集放到huatuo_gpt下,并新增一個(gè)腳本文件。參考圖如下:
腳本可以參考鏈接,具體腳本編寫參考這個(gè)網(wǎng)址:
https://huggingface.co/docs/datasets/dataset_script
回到data目錄,編輯dataset_info.json文件,對(duì)剛才新增的數(shù)據(jù)集進(jìn)行配置。把dataset_info.json劃到最后面,新增如下紅框內(nèi)容:
至此數(shù)據(jù)集環(huán)境已經(jīng)配置好了。
五、微調(diào)
環(huán)境已經(jīng)配置完成了,現(xiàn)在可以進(jìn)行微調(diào),具體步驟如下。
回到ChatGLM-Efficient-Tuning目錄,輸入命令:
CUDA_VISIBLE_DEVICES=0 python src/train_sft.py \
--do_train \
--model_name_or_path /root/autodl-tmp/git_project/chatglm-6b \
--dataset huatuo_gpt \
--finetuning_type lora \
--output_dir /root/autodl-tmp/train_model \
--per_device_train_batch_size 4 \
--gradient_accumulation_steps 4 \
--lr_scheduler_type cosine \
--logging_steps 10 \
--save_steps 1000 \
--learning_rate 5e-5 \
--num_train_epochs 3.0 \
--fp16 > output.log &
對(duì)部分參數(shù)講解一下:
--model_name_or_path:基礎(chǔ)模型的文件位置。
--dataset:剛才在dataset_info中設(shè)置的名稱。
--finetuning_type:微調(diào)模型的類型。
--output_dir:訓(xùn)練后模型的文件位置。
具體模型參數(shù)可以參考這個(gè)地址:
https://github.com/hiyouga/ChatGLM-Efficient-Tuning/wiki/%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95#%E5%BE%AE%E8%B0%83%E8%AE%AD%E7%BB%83
運(yùn)行這個(gè)腳本大概需要40小時(shí)左右。
六、運(yùn)行
微調(diào)結(jié)束后進(jìn)入ChatGLM-Efficient-Tuning目錄,輸入vim src/utils/config.py命令修改一下基礎(chǔ)模型的文件位置,具體參考如下:
為了可以在瀏覽器中訪問(wèn),我們回到ChatGLM-Efficient-Tuning目錄輸入vim src/web_demo.py, 劃到最下面修改參數(shù)為share=True,參考如下:
現(xiàn)在可以運(yùn)行微調(diào)后的模型了,輸入python src/web_demo.py --checkpoint_dir 訓(xùn)練后模型的文件位置 命令??梢栽诳刂婆_(tái)看見(jiàn)如下紅框的地址。復(fù)制到瀏覽器上就可以體驗(yàn)了。
七、訓(xùn)練前后對(duì)比
微調(diào)前的效果:
微調(diào)后的效果:
可以看到微調(diào)前的對(duì)醫(yī)療的回答結(jié)果比較淺顯,微調(diào)后回答結(jié)果專注治療、解決辦法。
到此就結(jié)束了,大家可以自己動(dòng)手嘗試一下。
更多AI小知識(shí)歡迎關(guān)注“神州數(shù)碼云基地”公眾號(hào),回復(fù)“AI與數(shù)字化轉(zhuǎn)型”進(jìn)入社群交流文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-771740.html
版權(quán)聲明:文章由神州數(shù)碼武漢云基地團(tuán)隊(duì)實(shí)踐整理輸出,轉(zhuǎn)載請(qǐng)注明出處。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-771740.html
到了這里,關(guān)于AIGC|手把手教你進(jìn)行ChatGLM模型部署實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!