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

news2024/11/14 3:12:06

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-6B

pip install -r requirements.txt

mkdir 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.live

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文件中

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, 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.coloradmin.cn/o/834161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

干翻Dubbo系列第八篇:Dubbo直连开发核心三要素概述

文章目录 文章说明 一&#xff1a;Dubbo直连开发概念 1&#xff1a;直连设计中的核心组件 (一)&#xff1a;Provider服务的提供者 (二): Consumer服务的访问者 (三)&#xff1a;网络通信明白图 文章说明 本文内容整理自《孙哥说Dubbo系列视频课程》&#xff0c;孙帅老师…

❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件

❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件 cmd或者终端用nvm 安装提示&#xff1a; npm不是内部或外部命令,也不是可运行的程序或批处理文件 原因&#xff08;一&#xff09; 提示这个问题&#xff0c;有可能是Node没有安装&#xff0c;也有可能是没有配置…

【LeetCode】105. 从前序与中序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 这道题也是经典的数据结构题了&#xff0c;有时候面试题也会遇到&#xff0c;已知前序与中序的遍历序列&#xff0c;由前序遍历我们可以知道第一个元素就是根节点&#xff0c;而中序遍历的特点就是根节点的左边全部为左子树&#xff0c;右…

C高级-day2

思维导图 #!/bin/bash echo "$(head -n 5 /etc/group | tail -1)" mkdir /home/ubuntu/copy cd /home/ubuntu/copy cp /etc/shadow test chown root test chmod o-r,o-w,o-x test#include <myhead.h> //递归实现&#xff0c;输入一个数&#xff0c;输出这个数的…

OpenShift 4 - 可观测性之用 OpenTelemetry+Tempo 实现 Distributed Tracing

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.13 的环境中验证 文章目录 技术架构部署 Distributed Tracing 运行环境安装 minio 环境安装 Grafana Tempo 环境 部署测试应用并进行观测跟踪测试应用1测试应用2 参考 技术架构 Tempo …

Vue3 watch监听器

概览&#xff1a;watch监听器的定义以及使用场景。在vue3中的监听器的使用方式&#xff0c;watch的三个参数&#xff0c;以及进一步了解第一个参数可以是一个属性&#xff0c;也可以是一个数组的形式包含多个属性。 watch在vue3和vue2中的使用&#xff1a; vue3中&#xff1a…

互联网+同城上门预约推拿系统-到家理疗服务平台源码

随着互联网技术的不断发展&#xff0c;越来越多的传统行业开始拥抱互联网&#xff0c;实现线上线下融合。推拿按摩作为人们日常保健、治疗疾病的一种方式&#xff0c;也在不断探索与互联网的结合。 本文将介绍基于互联网思维的家庭同城预约推拿系统到家服务平台的源码如何实现…

k8s pod数据存储Volumes

一、说在前面的话 在 Kubernetes 的 Deployment 中&#xff0c;您可以使用多种类型的 Volumes 来管理 Pod 中的数据。 作用是用来共享目录及配置&#xff0c;不用在每个pod里进行配置。 本文主要概述怎么使用HostPath、PersistentVolumeClaim、ConfigMap。 二、k8s有哪些Vol…

嵌入式入门教学——C51

一、前期准备 1、硬件设备 2、软件设备 二、预备知识 1、什么是单片机&#xff1f; 在一片集成电路芯片上集成微处理器、存储器、IO接口电路&#xff0c;从而构成了单芯片微型计算机&#xff0c;及单片机。STC89C52单片机&#xff1a; STC&#xff1a;公司89&#xff1a;所属…

基于图片、无人机、摄像头拍摄进行智能检测功能

根据要求进行无人机拍摄的视频或图片进行智能识别&#xff0c;开发过程需要事项 1、根据图片案例进行标记&#xff0c;进行模型训练 2、视频模型训练 开发语言为python 根据需求功能进行测试结果如下 根据车辆识别标记进行的测试结果截图 测经过查看视频 8月1日

深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现

深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现 RepViT: Revisiting Mobile CNN From ViT Perspective PDF: https://arxiv.org/pdf/2307.09283.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: https://gith…

DSP学习笔记

间接寻址&#xff08;通过放在辅助寄存器里面&#xff0c;可以对地址包括很多操作&#xff0c;1&#xff0c;-1&#xff0c;/-平移量&#xff0c;辅助寄存器内容的修改是在ARAU0和ARAU1中完成的。分为单操作数和双操作数&#xff0c;有很多模式在ARAU。单操作数间接寻址&#x…

[PyTorch][chapter 46][LSTM -1]

前言&#xff1a; 长短期记忆网络&#xff08;LSTM&#xff0c;Long Short-Term Memory&#xff09;是一种时间循环神经网络&#xff0c;是为了解决一般的RNN&#xff08;循环神经网络&#xff09;存在的长期依赖问题而专门设计出来的。 目录&#xff1a; 背景简介 LSTM C…

dubbo的高可用

1、zookeeper宕机与dubbo直连 现象&#xff1a;zookeeper注册中心宕机&#xff0c;还可以消费dubbo暴露的服务。 原因&#xff1a; 健壮性 &#xff08;1&#xff09;监控中心宕掉不影响使用&#xff0c;只是丢失部分采样数据. &#xff08;2&#xff09;数据库宕掉后&#x…

三、线性工作流

再生产的各个环节&#xff0c;正确使用gamma编码及gamma解码&#xff0c;使得最终得到的颜色数据与最初输入的物理数据一致。如果使用gamma空间的贴图&#xff0c;在传给着色器前需要从gamma空间转到线性空间。 如果不在线性空间下进行渲染&#xff0c;会产生的问题&#xff1a…

SQL Server安装配置

又得装数据库...头秃 报错 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证... 1是可能主机名不一致导致的&#xff0c;这种换主机名&#xff0c;二是没开sql 服务。 第二种先打开SQL Server 资源配置管理器 打…

【腾讯云Cloud Studio实战训练营】React 快速构建点餐页面

前言&#xff1a; Cloud Studio是一个在线的云集成开发环境&#xff08;IDE&#xff09;&#xff0c;可以让开发人员在浏览器中轻松地开发、测试、调试和部署应用程序。它提供了基于云的计算资源和工具&#xff0c;例如代码编辑器、编译器、调试器、版本控制系统和项目管理工具…

8.4算法

#include <stdio.h> #include <stdlib.h> #include <string.h>// 1.求1/阶乘累加 int main() {int n;int i;double temp 1;double result 0;printf("Input:");scanf("%d", &n);for (i 1; i < n; i) {temp * i;//1,2,6,24resul…

Kafka的配置和使用

目录 1.服务器用docker安装kafka 2.springboot集成kafka实现生产者和消费者 1.服务器用docker安装kafka ①、安装docker&#xff08;docker类似于linux的软件商店&#xff0c;下载所有应用都能从docker去下载&#xff09; a、自动安装 curl -fsSL https://get.docker.com | b…

Jenkins工具系列 —— 插件 钉钉发送消息

文章目录 安装插件 Ding TalkJenkins 配置钉钉机器人钉钉APP配置项目中启动钉钉通知功能 安装插件 Ding Talk 点击 左侧的 Manage Jenkins —> Plugins ——> 左侧的 Available plugins Jenkins 配置钉钉机器人 点击 左侧的 Manage Jenkins &#xff0c;拉到最后 钉…