当前位置:   article > 正文

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验_chatgml2-6b 原模型和训练模型合并

chatgml2-6b 原模型和训练模型合并

1 ChatGLM2-6B介绍

ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练,它具备多领域知识、代码能力、常识推理及运用能力;支持与用户通过自然语言对话进行交互,处理多种自然语言任务。比如:对话聊天、智能问答、创作文章、创作剧本、事件抽取、生成代码等等

ChatGLM2-6B升级亮点

ChatGLM-6B的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,又增加许多新特性:

(1)更强大的性能

基于ChatGLM初代模型的开发经验,全面升级了ChatGLM2-6B的基座模型。ChatGLM2-6B使用了GLM的混合目标函数,经过了1.4T中英标识符的预训练与人类偏好对齐训练。评测结果显示,与初代模型相比,ChatGLM2-6B在MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。

(2)更长的上下文

基于 FlashAttention 技术,研究人员将基座模型的上下文长度由 ChatGLM-6B 的2K扩展到了32K,并在对话阶段使用8K的上下文长度训练,允许更多轮次的对话。但当前版本的ChatGLM2-6B对单轮超长文档的理解能力有限,会在后续迭代升级中着重进行优化。

(3)更高效的推理

基于 Multi-Query Attention 技术,ChatGLM2-6B有更高效的推理速度和更低的显存占用。在官方的模型实现下,推理速度相比初代提升了42%,INT4量化下,6G显存支持的对话长度由1K提升到了8K。

(4) 更开放的协议

ChatGLM2-6B权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。

相比于初代模型,ChatGLM2-6B在数理逻辑、知识推理、长文档理解等多个维度的能力上,都取得了巨大的提升。

2 ChatGLM2-6B本地部署

2.1 conda环境准备

conda环境准备详见:annoconda

2.2 运行环境安装

  1. conda create -n chatglm python=3.9
  2. conda activate chatglm
  3. git clone https://github.com/THUDM/ChatGLM2-6B
  4. cd ChatGLM2-6B
  5. pip install -r requirements.txt
  6. mkdir THUDM
  7. cd THUDM
  8. git clone https://huggingface.co/THUDM/chatglm2-6b

上面步骤完成后,查看已经下载的模型,显示如下:

  1. [root@localhost ChatGLM2-6B]# ll THUDM/chatglm2-6b/
  2. 总用量 12195716
  3. -rw-r--r-- 1 root root 1263 82 10:42 config.json
  4. -rw-r--r-- 1 root root 2304 82 10:42 configuration_chatglm.py
  5. -rw-r--r-- 1 root root 51910 82 10:42 modeling_chatglm.py
  6. -rw-r--r-- 1 root root 4198 82 10:42 MODEL_LICENSE
  7. -rw-r--r-- 1 root root 1827780615 82 10:45 pytorch_model-00001-of-00007.bin
  8. -rw-r--r-- 1 root root 1968299005 82 10:48 pytorch_model-00002-of-00007.bin
  9. -rw-r--r-- 1 root root 1927414561 82 10:51 pytorch_model-00003-of-00007.bin
  10. -rw-r--r-- 1 root root 1815225523 82 10:53 pytorch_model-00004-of-00007.bin
  11. -rw-r--r-- 1 root root 1968299069 82 10:56 pytorch_model-00005-of-00007.bin
  12. -rw-r--r-- 1 root root 1927414561 82 10:59 pytorch_model-00006-of-00007.bin
  13. -rw-r--r-- 1 root root 1052808067 82 11:01 pytorch_model-00007-of-00007.bin
  14. -rw-r--r-- 1 root root 20645 82 11:01 pytorch_model.bin.index.json
  15. -rw-r--r-- 1 root root 14880 82 11:01 quantization.py
  16. -rw-r--r-- 1 root root 8175 82 11:01 README.md
  17. -rw-r--r-- 1 root root 10318 82 11:01 tokenization_chatglm.py
  18. -rw-r--r-- 1 root root 256 82 11:01 tokenizer_config.json
  19. -rw-r--r-- 1 root root 1018370 82 11:01 tokenizer.model

2.3 更改代码

[root@localhost ChatGLM2-6B]# vi web_demo.py 

最后一行代码,更改为share=True,更改后如下所示:

demo.queue().launch(share=True, inbrowser=True)

 2.4 启动web

[root@localhost ChatGLM2-6B]# python web_demo.py 

看到如下画面,表示启动成功

  1. Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:06<00:00, 1.13it/s]
  2. /root/anaconda3/envs/chat/lib/python3.9/site-packages/gradio/components/textbox.py:259: UserWarning: The `style` method is deprecated. Please set these arguments in the constructor instead.
  3. warnings.warn(
  4. Running on local URL: http://127.0.0.1:7860
  5. Running on public URL: https://ac0a819376990775ad.gradio.live
  6. This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)

通过启动返回的地址进行局域网访问

https://ac0a819376990775ad.gradio.live

启动界面如下:

3 ChatGLM2-6B使用

3.1 web问答

3.1.1 知识问答

 

 3.1.2 文本生成

 

3.1.3 数理逻辑

3.1.4 语言理解

3.1.5 常识问题

 3.1.6 代码生成

 3.1.7 医疗问题

3.1.8 内容总结

 3.2 通过代码调用chatglm

代码保存在根目录的test.py文件中

  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, device='cuda')
  4. model = model.eval()
  5. question = '肿瘤居家营养应该注意什么?'
  6. response, history = model.chat(tokenizer, question, history=[])
  7. print(response)

代码执行后,打印输出如下:

  1. [root@localhost ChatGLM2-6B]# python test.py
  2. Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:08<00:00, 1.26s/it]
  3. 肿瘤患者在居家护理过程中,饮食是非常重要的一环,以下是一些肿瘤居家营养应该注意的事项:
  4. 1. 均衡饮食:肿瘤患者需要摄入足够的蛋白质、维生素、矿物质和纤维素等营养物质,以支持身体恢复和预防并发症。建议患者多吃蔬菜、水果、全谷类、豆类、坚果和种子等富含营养的食物。
  5. 2. 控制热量和脂肪:肿瘤患者需要控制卡路里摄入量,以避免体重增加和影响治疗效果。建议减少高热量和高脂肪的食物,如油炸食品、甜点和高脂肪的肉类等。
  6. 3. 增加蛋白质的摄入:蛋白质是身体所需的重要营养物质,对于肿瘤患者来说,摄入足够的蛋白质可以帮助身体修复和恢复。建议患者增加蛋白质摄入,包括豆类、肉类、鱼类和蛋白质粉等。
  7. 4. 控制钠的摄入:肿瘤患者需要控制钠的摄入量,以避免血压升高和影响治疗效果。建议减少盐的摄入,包括海盐、盐和其他高钠食品等。
  8. 5. 避免刺激性食物:一些肿瘤患者可能会出现恶心、呕吐等症状,这些食物可能会加重症状。建议患者避免吃辛辣、油腻、咖啡、酒等刺激性食物。
  9. 6. 注意饮食卫生:肿瘤患者需要保持饮食卫生,以避免食物中毒和其他感染性疾病的发生。建议患者勤洗手、生熟分开、储存食物规范等。
  10. 肿瘤患者在居家护理过程中,饮食需要遵循医生或营养师的建议,以支持身体恢复和预防并发症。

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

闽ICP备14008679号