聊聊ChatGLM-6B部署与微调的深入理解
2024/1/3 1:03:32
本文主要是介绍聊聊ChatGLM-6B部署与微调的深入理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ChatGLM的部署,主要是两个步骤:
- 在Github上下载chatglm的库文件
- 在Hugging Face上下载模型参数与配置文件
ChatGLM包
从Github上看ChatGLM项目文件的结构来看,仅仅是包含三种部署方式的py代码与微调的py代码
而相关的实现细节,比如神经网络、激活函数、损失函数等具体的实现,并不在该项目源码中。
不管以哪种方式部署,最核心就是三句代码,其作用是引入模型参数,初始化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,实现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的相关配置及初始化信息。
总结
这篇关于聊聊ChatGLM-6B部署与微调的深入理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解
- 2024-12-20利用Gemini构建处理各种PDF文档的Document AI管道