大模型ChatGLM下载、安装与使用

在人工智能领域,清华技术成果转化的公司智谱AI启动了支持中英双语的对话机器人ChatGLM内测。ChatGLM是一个初具问答和对话功能的千亿中英语言模型, 并针对中文进行了优化,现已开启邀请制内测,后续还会逐步扩大内测范围。

ChatGLM可以很轻松地部署在本地的硬件上,当时采用的是THUDM/chatglm-6b-int4。(使用的时候,需要安装一些特定的Python包,按提示安装即可。)

为了后续的学习和再训练,我们直接使用完整的ChatGLM存档结构,代码如下:

from transformers import AutoTokenizer, AutoModel
names = ["THUDM/chatglm-6b-int4","THUDM/chatglm-6b"]
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
print("-----------------------")
response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
print(response)

从打印结果来看,此时的展示结果与chatglm-6b-int4没有太大差别。

可以直观地看到,此时的下载较烦琐,下载文件被分成了8部分,依次下载,然后将其系统地合并,如图16-4所示。

需要注意的是,对于下载的存档文件还需要进行合并处理,展示如图16-5所示。

图16-5  对下载的存档文件进行合并处理

最终展示的结果如图16-6所示。

图16-6  最终展示的结果

请读者自行打印验证这部分内容。需要注意的是,即使问题是一样的,但是回答也有可能不同,因为我们所使用的ChatGLM是生成式模型,前面的生成直接影响了后面的生成,而这一点也是生成模型不好的地方,前面的结果有了波动,后面就会发生很大的变化,会产生滚雪球效应。

16.2.3  ChatGLM的使用与Prompt介绍

前面简单向读者介绍了ChatGLM的使用,除此之外,ChatGLM还有很多可以胜任的地方,例如进行文本内容的抽取,读者可以尝试如下任务:

content="""ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,
基于 General Language Model (GLM) 架构,具有 62 亿参数。
手机号 18888888888
结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 
ChatGLM-6B 使用了较 ChatGPT 更为高级的技术,针对中文问答和对话进行了优化。
邮箱 123456789@qq.com
经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,
账号:root 密码:xiaohua123
62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的博客。
"""
prompt='从上文中,提取"信息"(keyword,content),包括:"手机号"、"邮箱"、"账号"、"密码"等类型的实体,输出json格式内容'
input ='{}\n\n{}'.format(content,prompt)
print(input)
response, history = model.chat(tokenizer, input, history=[])
print(response)

这是一个经典的文本抽取任务,希望通过ChatGLM抽取其中的内容,在这里我们使用了一个Prompt(中文暂时称为“提示”),Prompt是研究者为了下游任务设计出来的一种输入形式或模板,它能够帮助ChatGLM“回忆”起自己在预训练时“学习”到的东西。

Prompt也可以帮助使用者更好地“提示”预训练模型所需要做的任务,在这里我们通过Prompt的方式向ChatGLM传达一个下游任务目标,即需要其对文本进行信息抽取,抽取其中蕴含的手机、邮箱、账号、密码等常用信息。最终显示结果如图16-7所示。

图16-7  对文本进行信息抽取

可以看到,这是一个使用JSON格式表示的抽取结果,其中的内容根据Prompt中的定义提供了相应的键-值对,直接抽取了对应的信息。

本文节选自《从零开始大模型开发与微调:基于PyTorch与ChatGLM》,获出版社和作者授权共享。

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

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

相关文章

【数据结构和算法】最大连续1的个数 III

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:滑动窗口 2.2 滑动窗口解题模板 三、代码 3.1 方法一:滑动窗口 四、…

头歌—衍生密码体制

# 第1关:Rabin密码体制 题目描述 任务描述 Rabin密码体制是RSA密码体制的一种。 本关任务:使用Rabin密码体制对给定的明文进行加密。 相关知识 为了完成本关任务,你需要掌握:Rabin密码体制。 Rabin密码体制 在本关中&#x…

rk3588多模型检测部署quickrun

quickrun 是一款rk3588 rknn多模型高效高并发部署软件 软件框架 采用session思想,可以定义多个session满足不同模型的义务需求。比如充电桩检测,垃圾分类,悬崖检测,模型共用一个摄像头,采用yolov5的模型。 采用消息…

C语言之初识C语言

文章目录 前言一、什么是C语言二、第一个C语言程序三、数据类型四、变量,常量1、变量1.1 变量的命名1.2 变量的分类1.3 变量的使用1.4 变量的作用域和生命周期2、变量 五、字符串1. 概念2. 求解字符串的长度【strlen】3. 转义字符【含笔试题】 六、注释七、选择语句…

UE5 Landscape 制作GIS卫星图地形

1. 总体想法: 制作GIS地形,使用Landscaping MapBox是一个好方法,但是区域过大,会占用很多内存 https://blog.csdn.net/qq_17523181/article/details/135029614 如果采用QGis,导出卫星图,在UE5里拼合出地形…

Prometheus实战篇::什么是Exporter

欢迎各位关注下我的微信公众号:全干程序员demo 回复 “java面试” 获取[java精品面试题] 回复 “idea” 获取[idea2023最新版破解至2099年] 回复"自媒体" 获取个人自媒体笔记:玩转字节跳动平台(可以联系我催更,有时可能因为工作或者发布文章没空更新,因为笔记都是我自…

Centos安装Docker及使用

文章目录 配置要求Centos安装Docker卸载docker(可选)安装docker首先需要大家虚拟机联网,安装yum工具然后更新本地镜像源:然后输入安装docker命令:查看docker的版本 启动docker关闭防火墙接着通过命令启动docker 配置镜…

数学建模学习笔记-皮尔逊相关系数

内容:皮尔逊相关系数 一.概念:是一个和线性线关的相关性系数 1.协方差概念: 协方差受到量纲的影响因此需要剔除 2.相关性的误区 根据这个结论,我们在计算该系数之前需要确定是否为线性函数 二.相关性的计算 1.Matlab&#xff…

Enge问题解决教程

目录 解决问题的一般步骤: 针对"Enge问题"的具体建议: 以下是一些普遍适用的解决问题的方法: 以下是一些更深入的Enge浏览器问题和解决办法: 浏览器性能问题: 浏览器插件与网站冲突: 浏览…

MsSQL中的索引到底长啥样,查找过程怎么进行

参考文章一 参考文章二 建表 mysql> create table user(-> id int(10) auto_increment,-> name varchar(30),-> age tinyint(4),-> primary key (id),-> index idx_age (age)-> )engineinnodb charsetutf8mb4;insert into user(name,age) values(张三,…

键盘失灵?别慌!三招帮你调出电脑软键盘

在电脑使用中,我们有时候需要输入文字,但可能会遇到键盘突然失灵的情况。这时,我们可以使用电脑自带的软键盘来解决问题。本文将介绍如何调出电脑软键盘,以便在需要时进行文字输入。 下面以Windows10系统电脑调出软键盘为例进行演…

JSON Web Token JWT几种简单的绕过方法

JWT结构 JSON Web Token(JWT)是一个非常轻巧的规范。 这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 JWT常被用于前后端分离,可以和Restful API配合使用,常用于构建身份认证机制 如图为JWT加密后的示例&…

[数据结构进阶 C++] 二叉搜索树(BinarySearchTree)的模拟实现

文章目录 1、二叉搜索树1.1 二叉搜索数的概念1.2 二叉搜索树的操作1.2.1 二叉搜索树的查找1.2.2 二叉搜索树的插入1.2.3 二叉搜索树的删除 2、二叉搜索树的应用2.1 K模型2.2 KV模型 3、二叉搜索树的性能分析4、K模型与KV模型完整代码4.1 二叉搜索树的模拟实现(K模型…

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

作者:kele 一、背景 SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…

Redis-学习笔记

Remote Dictionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API,是跨平台的非关系型数据库。 Redis 通常被称为数据结构服务器&…

系列十二(面试)、Java中的GC回收类型有哪些?

一、Java中的GC回收类型 1.1、概述 Java中的GC回收类型主要包含以下几种,即:UseSerialGC、UseParallelGC、UseConcMarkSweepGC、UseParNewGC、UseParallelOldGC、UseG1GC。 1.2、源码

【Linux笔记】文件查看和编辑

🍎个人博客:个人主页 🏆个人专栏:Linux学习 ⛳️ 功不唐捐,玉汝于成 目录 前言 命令 cat (Concatenate and Display): more 和 less: nano 和 vim (文本编辑器): 结语 我的其他博客 前言 学习Linux命令行和文件…

EfficientDet:Scalable and Efficient Object Detection中文版 (BiFPN)

EfficientDet: Scalable and Efficient Object Detection EfficientDet:可扩展和高效的目标检测 摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了用于目标检测的神经网络架构设计选择,并提出了几个关键的优化方法来提高效率。首先&…

Leetcode—剑指Offer LCR 025.两数相加II【中等】

2023每日刷题(六十七) Leetcode—LCR 025.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode…