聊聊ChatGLM-6B部署与微调的深入理解

ChatGLM的部署,主要是两个步骤:

  1. 在Github上下载chatglm的库文件
  2. 在Hugging Face上下载模型参数与配置文件

ChatGLM包

从Github上看ChatGLM项目文件的结构来看,仅仅是包含三种部署方式的py代码与微调的py代码

而相关的实现细节,比如神经网络、激活函数、损失函数等具体的实现,并不在该项目源码中。

不管以哪种方式部署,最核心就是三句代码,其作用是引入模型参数,初始化transformers配置;以web部署的方式为例:

python 复制代码
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,实现web方式的使用

// 调用模型方法,开始进行对话推理
xx = model.stream_chat(xxxx);

web的调用是基于Gradio;

api的调用是基于fastapi;

cli的调用是基于python解释器;

微调

微调的解决方案一般是P-Tuning或LoRA;ChatGLM-6B是基于P-Tuning v2实现的微调,P-Tuning v2是基于连续提示(continuous prompts)的思想。微调会生成新的模型参数文件,也称为checkpoint文件。

微调时可以选择全参数微调或是部分参数微调,其流程是训练+推理。训练生成新的checkpoint文件(模型参数);推理则是加载模型参数文件。

训练前,需要调整参数,一般修改train.sh脚本文件就行。

推理时,加载原模型文件与微调后生成的checkpoint文件。还是通过那三句代码。

输出的checkpoint文件如下:

checkpoint文件夹内的文件如下:

transformers的联系

目前的模型,都会对接到Hugging Face平台的transformers库中,通过transformers库来管控大模型。所以在推理阶段通过三句代码就能调用AI模型。在微调阶段,生成的checkpoint文件中,其结构是Hugging Face平台的文件结构,包含transformers的相关配置及初始化信息。

总结

相关推荐
OT.Ter11 天前
ChatGLM2-6B微调记录【2】
chatgpt·大模型·微调·chatglm
小白顶呱呱2 个月前
chatglm本地服务器大模型量化cpu INT4 INT8 half float运行、多卡多GPU运行改这一条指令就行啦!
服务器·大模型·chatglm·gpu算力
skywalk81632 个月前
使用PaddleNLP调用大模型ChatGLM3-6b进行信息抽取
人工智能·llm·chatglm
skywalk81635 个月前
安装后或升级启智环境到飞桨2.6版本(develop)
人工智能·chatglm·paddlepaddle·llama·paddlenlp·千问
m0_375599737 个月前
智谱AI通用大模型:官方开放API开发基础
chatglm·大语言模型
又见阿郎7 个月前
聊聊ChatGLM3多用户并发API调用的问题
chatglm·vllm
又见阿郎8 个月前
聊聊ChatGLM-6B医疗数据微调
chatglm
PleaseBrave8 个月前
【大模型API调用初尝试一】智谱AI && 通义千问
人工智能·深度学习·大模型·chatglm·通义千问·智谱ai·大模型api
North_D9 个月前
大语言模型LangChain+ChatGLM3-6B的本地知识库与行业知识库价值体现
人工智能·语言模型·langchain·chatglm·大语言模型·本地知识库·行业知识库