聊聊ChatGLM-6B部署与微调的深入理解
ChatGLM的部署,主要是兩個(gè)步驟:
- 在Github上下載chatglm的庫(kù)文件
- 在Hugging Face上下載模型參數(shù)與配置文件
ChatGLM包
從Github上看ChatGLM項(xiàng)目文件的結(jié)構(gòu)來(lái)看,僅僅是包含三種部署方式的py代碼與微調(diào)的py代碼
而相關(guān)的實(shí)現(xiàn)細(xì)節(jié),比如神經(jīng)網(wǎng)絡(luò)、激活函數(shù)、損失函數(shù)等具體的實(shí)現(xiàn),并不在該項(xiàng)目源碼中。
不管以哪種方式部署,最核心就是三句代碼,其作用是引入模型參數(shù),初始化transformers配置;以web部署的方式為例:
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()
// 引入Gradio,實(shí)現(xiàn)web方式的使用
// 調(diào)用模型方法,開(kāi)始進(jìn)行對(duì)話推理
xx = model.stream_chat(xxxx);
web的調(diào)用是基于Gradio;
api的調(diào)用是基于fastapi;
cli的調(diào)用是基于python解釋器;
微調(diào)
微調(diào)的解決方案一般是P-Tuning或LoRA;ChatGLM-6B是基于P-Tuning v2實(shí)現(xiàn)的微調(diào),P-Tuning v2是基于連續(xù)提示(continuous prompts)的思想。微調(diào)會(huì)生成新的模型參數(shù)文件,也稱為checkpoint文件。
微調(diào)時(shí)可以選擇全參數(shù)微調(diào)或是部分參數(shù)微調(diào),其流程是訓(xùn)練+推理。訓(xùn)練生成新的checkpoint文件(模型參數(shù));推理則是加載模型參數(shù)文件。
訓(xùn)練前,需要調(diào)整參數(shù),一般修改train.sh腳本文件就行。
推理時(shí),加載原模型文件與微調(diào)后生成的checkpoint文件。還是通過(guò)那三句代碼。
輸出的checkpoint文件如下:
checkpoint文件夾內(nèi)的文件如下:
transformers的聯(lián)系
目前的模型,都會(huì)對(duì)接到Hugging Face平臺(tái)的transformers庫(kù)中,通過(guò)transformers庫(kù)來(lái)管控大模型。所以在推理階段通過(guò)三句代碼就能調(diào)用AI模型。在微調(diào)階段,生成的checkpoint文件中,其結(jié)構(gòu)是Hugging Face平臺(tái)的文件結(jié)構(gòu),包含transformers的相關(guān)配置及初始化信息。
總結(jié)
總結(jié)
以上是生活随笔為你收集整理的聊聊ChatGLM-6B部署与微调的深入理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Windows下使用图形化的Havoc
- 下一篇: 查看笔记本电脑电池报告(当前电池损耗度)