当前位置:   article > 正文

ChatGLM2 6B 本地部署_chatglm2-6b本地部署

chatglm2-6b本地部署

学习GAI已经有两个多月,迎来最后的一个课题,就是本地部署大模型。我们选用的是清华的ChatGLM2-6B的模型。发现在3070 8G显卡上,运行FP16的还是慢,完全不能接受,一句问好要30秒生成结果。最后还是选用INT4量化的算了。速度上比较好,示例完全可以运行,且返回时间比较接受。

ChatGLM2-6B的Github是这,克隆后,按文档去玩就可以了。可是,从huggingface下载模型文件好慢,又易断(不舍得用高速梯子,模型文件FP16的是11.6GB)。同时文档提供了方便的来源, 清华大学云盘https://github.com/THUDM/ChatGLM2-6Bicon-default.png?t=N7T8https://github.com/THUDM/ChatGLM2-6B

Demo中的代码是直接从HUGGINGFACE下载,如下:

 

  1. from transformers import AutoTokenizer, AutoModel
  2. tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
  3. model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()
  4. model = model.eval()

如果改用只检出huggingface的模型实现,命令:

  1. #Mac / Linux
  2. GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b
  3. #Windows
  4. set GIT_LFS_SKIP_SMUDGE=1
  5. git clone https://huggingface.co/THUDM/chatglm2-6b

如果在Windows下,要用一个没有横杠的文件夹名称,如"THUMDCHATGLM2",如果路径名称中有下划线,短横线,加载模型时会有错误提示,所以在本地加载模型时,文件夹名或路径中不要用这些符号。

所以完成克隆模型实现,再从清华云盘下载模型参数文件(11.6GB),然后复制到HUGGINGFace的克隆路径下。就可以修改demo实现代码。

  1. from transformers import AutoTokenizer, AutoModel
  2. tokenizer = AutoTokenizer.from_pretrained("D:\THUDM", trust_remote_code=True)
  3. model = AutoModel.from_pretrained("D:\THUDM", trust_remote_code=True).cuda()
  4. model = model.eval()

我是用THUDM做FP16的文件夹路径。在JUPYTER NOTEBOOK下加载模型,花了17.9s。

内存消耗:

 

然后试一个简单的推理:

 

  1. response, history = model.chat(tokenizer, "你好", history=[])
  2. print(response)

 

哈哈,用了2分种 29秒。推理过程中,消耗如下:

此时,部机已经卡到出汁了,每键入小小都在等待回显。然后,第二个问题根本没法推理出来。已经用12分钟了。

 从上面代码可见chatGLM2是自己维护了对话记录,第三个参数,history,就是了。用INT4后,运行三个问题,打印出来的history, 如下: 

  1. [('你好', '你好
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1001819
    推荐阅读
    相关标签