赞
踩
学习GAI已经有两个多月,迎来最后的一个课题,就是本地部署大模型。我们选用的是清华的ChatGLM2-6B的模型。发现在3070 8G显卡上,运行FP16的还是慢,完全不能接受,一句问好要30秒生成结果。最后还是选用INT4量化的算了。速度上比较好,示例完全可以运行,且返回时间比较接受。
ChatGLM2-6B的Github是这,克隆后,按文档去玩就可以了。可是,从huggingface下载模型文件好慢,又易断(不舍得用高速梯子,模型文件FP16的是11.6GB)。同时文档提供了方便的来源, 清华大学云盘https://github.com/THUDM/ChatGLM2-6Bhttps://github.com/THUDM/ChatGLM2-6B
Demo中的代码是直接从HUGGINGFACE下载,如下:
- from transformers import AutoTokenizer, AutoModel
-
- tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
- model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()
- model = model.eval()
如果改用只检出huggingface的模型实现,命令:
- #Mac / Linux
-
- GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b
-
- #Windows
-
- set GIT_LFS_SKIP_SMUDGE=1
- git clone https://huggingface.co/THUDM/chatglm2-6b
如果在Windows下,要用一个没有横杠的文件夹名称,如"THUMDCHATGLM2",如果路径名称中有下划线,短横线,加载模型时会有错误提示,所以在本地加载模型时,文件夹名或路径中不要用这些符号。
所以完成克隆模型实现,再从清华云盘下载模型参数文件(11.6GB),然后复制到HUGGINGFace的克隆路径下。就可以修改demo实现代码。
- from transformers import AutoTokenizer, AutoModel
-
- tokenizer = AutoTokenizer.from_pretrained("D:\THUDM", trust_remote_code=True)
- model = AutoModel.from_pretrained("D:\THUDM", trust_remote_code=True).cuda()
- model = model.eval()
我是用THUDM做FP16的文件夹路径。在JUPYTER NOTEBOOK下加载模型,花了17.9s。
内存消耗:
然后试一个简单的推理:
- response, history = model.chat(tokenizer, "你好", history=[])
- print(response)
哈哈,用了2分种 29秒。推理过程中,消耗如下:
此时,部机已经卡到出汁了,每键入小小都在等待回显。然后,第二个问题根本没法推理出来。已经用12分钟了。
从上面代码可见chatGLM2是自己维护了对话记录,第三个参数,history,就是了。用INT4后,运行三个问题,打印出来的history, 如下:
- [('你好', '你好 本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1001819推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。