当前位置: 首页 > news >正文

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验

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 运行环境安装

conda create -n chatglm python=3.9
conda activate chatglm git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6Bpip install -r requirements.txtmkdir THUDM
cd THUDM
git clone https://huggingface.co/THUDM/chatglm2-6b

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

[root@localhost ChatGLM2-6B]# ll THUDM/chatglm2-6b/
总用量 12195716
-rw-r--r-- 1 root root       1263 8月   2 10:42 config.json
-rw-r--r-- 1 root root       2304 8月   2 10:42 configuration_chatglm.py
-rw-r--r-- 1 root root      51910 8月   2 10:42 modeling_chatglm.py
-rw-r--r-- 1 root root       4198 8月   2 10:42 MODEL_LICENSE
-rw-r--r-- 1 root root 1827780615 8月   2 10:45 pytorch_model-00001-of-00007.bin
-rw-r--r-- 1 root root 1968299005 8月   2 10:48 pytorch_model-00002-of-00007.bin
-rw-r--r-- 1 root root 1927414561 8月   2 10:51 pytorch_model-00003-of-00007.bin
-rw-r--r-- 1 root root 1815225523 8月   2 10:53 pytorch_model-00004-of-00007.bin
-rw-r--r-- 1 root root 1968299069 8月   2 10:56 pytorch_model-00005-of-00007.bin
-rw-r--r-- 1 root root 1927414561 8月   2 10:59 pytorch_model-00006-of-00007.bin
-rw-r--r-- 1 root root 1052808067 8月   2 11:01 pytorch_model-00007-of-00007.bin
-rw-r--r-- 1 root root      20645 8月   2 11:01 pytorch_model.bin.index.json
-rw-r--r-- 1 root root      14880 8月   2 11:01 quantization.py
-rw-r--r-- 1 root root       8175 8月   2 11:01 README.md
-rw-r--r-- 1 root root      10318 8月   2 11:01 tokenization_chatglm.py
-rw-r--r-- 1 root root        256 8月   2 11:01 tokenizer_config.json
-rw-r--r-- 1 root root    1018370 8月   2 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 

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

Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:06<00:00,  1.13it/s]
/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.warnings.warn(
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://ac0a819376990775ad.gradio.liveThis 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文件中

from transformers import AutoTokenizer, AutoModeltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
model = model.eval()question = '肿瘤居家营养应该注意什么?'
response, history = model.chat(tokenizer, question, history=[])
print(response)

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

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

http://www.lryc.cn/news/111110.html

相关文章:

  • [国产MCU]-BL602开发实例-开发环境搭建
  • 春秋云镜 CVE-2020-26048
  • 使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——简单应用
  • 一个.NET开发的Web版Redis管理工具
  • javaAPI(四):jdk8中的日期时间API
  • 解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~
  • Vue + ElementUI 实现可编辑表格及校验
  • 中介者模式——协调多个对象之间的交互
  • 启动Flink显示初始化状态怎么解决?
  • VB+SQL采购管理系统设计与实现
  • TBB库中实现协程(coroutine)的源码说明
  • 【CSS弹性盒模型 display:flex;常用参数及常见的布局】
  • golang函数传参——值传递理解
  • Liunx环境下git的详细使用(gitee版)
  • exoplayer的使用-2,与flutter相互通信
  • 【基础类】—类型转换
  • 【云原生】 一文了解docker中的网络
  • 嵌入式开发学习(STC51-15-红外遥控)
  • 代码编辑器实践之vue-codemirror使用
  • Mapstruct
  • 初阶C语言——特别详细地介绍函数
  • pulsar-client-1-2 PulsarClient构造函数
  • 原型链污染是什么
  • java之石头迷阵单击游戏、继承、接口、窗体、事件、组件、按钮、图片
  • Debian 系列 Linux 的静态 DNS 、gateway 、IP 设置和网络重启
  • IP路由基础+OSPF 基础
  • window远程连接Linux
  • MyBatis 查询数据库之二(增、删、改、查操作)
  • unraid docker桥接模式打不开页面,主机模式正常
  • 第七章:进程间通信(IPC)——构成进程间通信的信道方案