ChatGLM系列一——ChatGLM的介绍与使用

news2024/11/16 15:41:17

下面是官方对ChatGLM的介绍:

ChatGLM-6B,结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。经过约 1T 标识符的中英双语训练,辅以监督微调、 反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 虽然规模不及千亿模型,但大大降低了用户部署的门槛,并且已经能生成相当符合人类偏好的回答。

在这里插入图片描述
通过05-25更新的lmsys arena Leaderboard[1]可以看到:

在英文问题上,6b的规模排在第14,排在他前面且规模更小的只有fastchat-t5-3b,fastchat-t5-3b和vicuna都出自lmsys团队,采用真实用户数据——shareGPT,它对模型效果提升十分明显。在非英文问题上,ChatGLM排名第7,规模比前面的模型都小,排在它前面的模型基座来自于Open AI、Anthropic和Meta(vicuna的基座是LLaMA)。
在这里插入图片描述
这里首先要提到ChatGLM团队先前的工作——GLM 130B。这是一份相当扎实的工作,[2]中还介绍他们在过程中碰到的问题和解决方案,对大模型训练十分有参考性。另外,值得一提的是,ChatGLM有别于类似GPT、LLaMA的单向解码器,它在上下文部分是双向的,而输出部分是单向的,通过下图可以清晰地看明白:
在这里插入图片描述
ChatGLM的官网[3]引用了HELM的大模型评估,可以看到GLM和GPT-3效果接近。但[2]中有提到,GLM在预训练过程中加入了指令数据,这无疑会提升模型在下游任务的表现,而GPT-3仅仅是做了文本的预训练。

在这里插入图片描述从官方的描述中我们可以知道:ChatGLM经过 1T 标识符的中英双语训练。有了GLM-130B的经验,在6B规模上做预训练便轻车熟路。值得注意的点是——1T标识符的中英双语,相信这是ChatGLM在中文上表现优异的重要原因,虽然说在英文习得的能力也能迁移到中文上,但迁移的过程中会损失多少,以及有些表达是只有在中文语境下才特有的。所以现在BELLE[4]、Linly[5]等开源工作都会选择在LLaMA的基础上进行包括中文的继续预训练。关键是,中文的优质数据是少于英文的,不知道这1T标识符的中英双语是多少个epoch的结果,如果只是1个epoch,那意味着ChatGLM的数据优势十分明显。数据是data-centric AI范式的关键。

ChatGLM-6B模型使用

一、创建环境

conda create -n chatglm python=3.8
conda activate chatglm 

二、下载代码

git clone https://github.com/THUDM/ChatGLM-6B.git

三、安装依赖

我这里是cuda11.2,根据自己的版本安装,这里是pytorch版本:https://pytorch.org/get-started/previous-versions/

pip install torch==1.10.0+cu111 torchvision==0.11.1+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirement.txt

四、修改代码

vim web_demo.py
# 增加server_name和server_port参数
demo.queue().launch(share=True,server_name="0.0.0.0",server_port=9234)
# 如果gpu太小,修改如下代码
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(4).cuda()

在这里插入图片描述

五、运行代码

python web_demo.py

六、测试

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130328.html

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

相关文章

权限系统设计(转载)

1 为什么需要权限管理 2 权限模型 2.1 权限设计 2.2 为什么需要角色 2.3 权限模型的演进 2.4 用户划分 2.5 理想的RBAC模型 3 权限系统表设计 3.1 标准RBAC模型表设计 3.2 理想RBAC模型表设计 4 结语 1 为什么需要权限管理 日常工作中权限的问题时时刻刻伴随着我们&a…

白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档

白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频附文档 文章目录 前言启动 Nginx 案例最后 视频:https://www.bilibili.com/video/BV1WN411W79V/ 国内互联网经过多年发展,单体应用已经无法支持我们的互联网业务,分布…

css面试题及答案 【集合目录】

前言: 欢迎浏览和关注本专栏《 前端就业宝典 》, 不管是扭螺丝还是造火箭, 多学点知识总没错。 这个专栏是扭螺丝之上要造火箭级别的知识,会给前端工作学习的小伙伴带来意想不到的帮助。 本专栏将前端知识拆整为零,主要…

Redis单Reactor单线程网络模型

Redis单线程单Reactor网络模型 redis单线程里不能执行十分耗时的流程,不然会客户端响应不及时 解决方法一: beforesleep里删除过期键操作若存在大量过期键时,会耗费大量时间,redis采用的策略之一就是采用timelimit方案超过阈值就…

Hadoop部署过程中问题总结

Hadoop伪分布式集群部署问题总结 一、HDFS初始化失败 初始化失败,HDFS初始化操作如下: hdfs namenode -format然后我运行后报错:error parsing conf core-site.xml 出现这个信息就说明core-site.xml配置文件出错了,用vim命令可…

【AI视野·今日NLP 自然语言处理论文速览 第五十八期】Thu, 19 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 19 Oct 2023 Totally 74 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Understanding Retrieval Augmentation for Long-Form Question Answering Authors Hung Ting Chen, Fangyuan…

STM32 TIM(一)定时中断

STM32 TIM(一)定时中断 定一个时间,然后让定时器每隔这个时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的,比如你要做个时钟、秒表,或者使用一些程序算法的时候,都需要用到定时中断…

06数据结构——图

6.2图的存储及基本操作 6.2.1邻接矩阵法 图的邻接矩阵存储结构定义如下: #define MaxVertexNUm 100 //顶点数目的最大值 typedef char VertexType; //顶点的数据类型 typedef int EdgeType; //带权图中边上权值的数据类型 ty…

webrtc-stream编译报错记录

磁盘空间不足错误 错误信息 677.2 fatal: cannot create directory at blink/web_tests/external/wpt: No space left on device说明:这个错误是由于本地在配置docker资源时所给磁盘空间太小导致,直接根据镜像大小合理分配资源大小即可 pushd和popd执…

Android Studio新功能-设备镜像Device mirroring-在电脑侧显示手机实时画面并可控制

下载最新的灰测版本-蜥蜴 成功运行到真机后,点击右侧Running Devices选项卡,再点击号 选中当前设备; 非常丝滑同步,在电脑侧也可以顺畅控制真机 该功能大大方便了我们视线保持在显示器上专注开发,并且便于与UI视觉进行…

【Rust日报】2023-10-22 Korvin - 一个 WASM 前端框架,比基线 vanillajs 实现快了 33%!...

Yazi v0.1.5 发布 - 有史以来最大的更新 Yazi - 💥 用 Rust 编写的基于异步 I/O 的快速终端文件管理器。 嘿伙计!我很高兴在这里宣布Yazi v0.1.5 发布了! 这是有史以来最大的更新,也是周期最长的更新。该版本带来了许多有意义的变…

【进程VS容器VS虚拟机】

进程 VS 容器 VS 虚拟机 如果站在技术实现原理的角度来看,其实容器更像进程,而非虚拟机。 但是如果我们讨论这门技术的应用场景、解决的问题、终端用户是如何使用的,就会发现容器跟虚拟机非常相似,它们解决的是同样的问题&#…

渗透测试工具-sqlmap

sqlmap是一个开源渗透测试的自动化工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器。它配备了一个强大的检测引擎,许多用于终极渗透测试的利基功能,以及广泛的开关,包括数据库指纹识别、从数据库中获取数据、访问底层文件系…

悟空crm安装搭建 报错[0] RedisException in Redis.php line 56问题处理办法

相信很多朋友进行安装悟空crm的时候 提示错误: [0] RedisException in Redis.php line 56 Connection refused 不知道怎么样处理是吧~~~ $this->options array_merge($this->options, $options);}# redis 密码$password config(cache.password);if (!empty…

1024特别剪辑: 使用Python Turtle 库绘制一棵随机生成的树

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…

【excel技巧】excel单元格内如何换行?

Excel表格,在制作完成之后,在输入数据的时候,总是会遇到内容长度太长导致无法全部显示或者破坏表格整体格式。几天分享4个单元格换行的方法给大家。 方法一: 首先我们先介绍一个,通过调整列宽的方式来达到显示全部内…

xcode The document “...“ could not be saved

Today when I tried to save a file on my project I get an error message saying: The document “nameOfFile.m” could not be saved. I tried reinstalling xcode but no luck. The file can be edited with other editors and I see the same behavior on all my project…

C# Enum.TryParse字符串既可以使用名称也可以使用数字值

var tryParse Enum.TryParse<LicenseType>("0", out var licenseType);以前没留意&#xff0c;以为将字符串装枚举的方法Enum.TryParse的字符串只能填名称&#xff0c;最近发现字符串是数字值也可以转换成相应的枚举

DevOps持续集成-Jenkins(4)

❤️作者简介&#xff1a;2022新星计划第三季云原生与云计算赛道Top5&#x1f3c5;、华为云享专家&#x1f3c5;、云原生领域潜力新星&#x1f3c5; &#x1f49b;博客首页&#xff1a;C站个人主页&#x1f31e; &#x1f497;作者目的&#xff1a;如有错误请指正&#xff0c;将…

【Android Studio】工程中文件Annotate with Git Blame 不能点击

问题描述 工程文件中想要查看代码提交信息但是相关按钮不可点击 解决方法 Android Studio -> Preferences -> Version Control-> 在Unregistered roots里找到你想要的工程文件 点击左上角➕号 然后右下角Apply即可