离线AI聊天清华大模型(ChatGLM3)本地搭建

在特定的情况下,要保证信息安全的同时还能享受到AIGC大模型带来的乐趣和功能,那么,离线部署就能帮助到你,最起码,它是一个真正可用的方案。

大模型本身清华的 (ChatGLM3),为的是对中文支持友好,另外就是我也很看好它,毕竟一直在优化自己的模型,提升模型的质量。

如果基础环境没有布置好可以参考我上篇文章《Ubuntu 22.04 Tesla V100s显卡驱动,CUDA,cuDNN,MiniCONDA3 环境的安装》。

ChatGLM3 (ChatGLM3-6B)

项目地址

https://github.com/THUDM/ChatGLM3

大模型是很吃CPU和显卡的,所以,要不有一个好的CPU,要不有一块好的显卡,显卡尽量13G+,内存基本要32GB+。

清华大模型分为三种(ChatGLM3-6B-Base,ChatGLM3-6B,ChatGLM3-6B-32K)

从上图也可以看到,ChatGLM3-6B-32K的话是最高配的模型,而ChatGLM3-6B-Base是最低配的模型。

一般会选择 ChatGLM3-6B普通模型来使用,当然,如果配置高,可以用32K的,会更好。

ChatGLM3 部署

如果不能访问github,那么就不容易下载资源了,主要是资源也比较大,可以自己想办法。

ChatGLM3 项目git clone

很简单一句命令就下载下来了。

git clone https://github.com/THUDM/ChatGLM3

执行完,就下载完毕了

但是,默认里面是没有模型的,只有自带的简单的聊天项目以及相关的接口示例项目,还得继续下载模型。

ChatGLM3-6B 模型下载

当然,如果你自己不下载这些模型,这些模型就会在运行的时候自动下载(网络不好的话会影响使用体验,所以,建议提前下载)

模型下载提供了两个地址来下载,第一个不可以,那就选择第二个。

打开地址后,发现这个文件还挺大,而且还是 git项目的方式来进行展现的。

其中 LFS那种可以直接点击然后,保存的方式来下载,也可以用git命令来下载。

git lfs install

需要 git增加 lfs 的功能,才能直接下载这么大的文件

 git clone https://huggingface.co/THUDM/chatglm3-6b

或者

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

下载完毕后,就有很多文件


看一下大小 11.6GB ,还挺大的

项目配置和部署

把下载的服务直接放到需要运行的地方
然后,执行上节的python 环境管理

conda create --name chatglm3 python=3.10
conda activate chatglm3

然后,进入到主项目中,开始配置一些环境

cd ChatGLM3

第一步是要安装python 的依赖包

pip install -r requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple

它会自己安装一些依赖包,很快就安装完了

也可以查询自己安装了什么包

pip list                  //查看安装了什么包
pip show openai // 查看包安装到了哪里

当然,我也是按照 README.md 里面的部署方式来部署的,具体以README.md为准。

修改配置

可以看到,实际上我们可以运行8种案例。

  1. 基础例子(cli_demo , web_demo_streamlit )
  2. 综合例子(聊天,工具,代码解释)
  3. 基础模型微调
  4. 聊天模型微调
  5. 类似于langchain的案例
  6. openai接口的案例
  7. TensorRT-LLM推理部署
  8. 工具调用

目前,只有第二种的综合例子,是比较有趣的,就以它为案例进行配置修改。

composite_demo

看到,这个demo下还有requirements.txt 文件,我们把他给安装了

pip install -r requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple

演示中使用 Code Interpreter 还需要安装 Jupyter 内核:

pip install ipykernel -i https://mirror.sjtu.edu.cn/pypi/web/simpleipython kernel install --name chatglm3 --user

接着修改client.py里面的配置信息


修改里面的模型地址为你的模型地址即可,我这边直接写了个绝对路径。

然后,执行以下命令启动服务

streamlit run main.py

正常情况下,控制台会出现以下信息

而网页会出现以下信息

左侧就像OpenAI那种的参数细节的调整,右侧是三种不同的使用方式选择。

效果展示

对话模式

输入你是谁,它就输自动的输出信息,速度还挺快。

而控制台也会显示你输入的信息以及返回的信息。

根据这个问题可以看到,这个模型,虽然对中文的支持度很高,但是,也掺杂一些英文信息。

工具模式

工具模式,需要自己先定义工具,我这边没有定义,有兴趣的可以整一下。

以下是自带的工具进行的演示:

我调用了一个查询天气的工具(tool_registry.py) 文件可以看到 get_weather的代码

@register_tool
def get_weather(city_name: Annotated[str, 'The name of the city to be queried', True],
) -> str:"""Get the current weather for `city_name`"""if not isinstance(city_name, str):raise TypeError("City name must be a string")key_selection = {"current_condition": ["temp_C", "FeelsLikeC", "humidity", "weatherDesc", "observation_time"],}import requeststry:resp = requests.get(f"https://wttr.in/{city_name}?format=j1")resp.raise_for_status()resp = resp.json()ret = {k: {_v: resp[k][0][_v] for _v in v} for k, v in key_selection.items()}except:import tracebackret = "Error encountered while fetching weather data!\n" + traceback.format_exc()return str(ret)
代码解释器模式

我尝试了很久也没有得到以下的效果。

可能是我的打开姿势不对,我只能获取这样的。

但是,给出的代码,还是很合理的,看着就能执行。

感兴趣的可以参考

https://zhipu-ai.feishu.cn/wiki/VdYWwcZfmiNBnlkwYf1cqytcngf
异常:

如果没有修改配置就会出现这个问题,当然,如果网络好的话,它会自己去安装。

总结

至此 ChatGLM3就演示完了,效果还是不错的说。比之前版本好太多了,我还会继续关注它的。

它也可以通过Web api的方式,自己搞个前端进行展现。

总体来讲,清华ChatGLM3-6B大模型对中文支持度还是蛮高的。

参考资料地址

《清华ChatGLM3 ChatGLM3-6B 大模型》
https://github.com/THUDM/ChatGLM3

一键三连呦!,感谢大佬的支持,您的支持就是我的动力!

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

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

相关文章

爬虫基础一(持续更新)

爬虫概念: 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 分类: 1,通用爬虫:抓取一整张页面数据 2,聚焦爬虫:抓取页面中的局部内容 3,增量式爬虫&…

NFC刷卡soc芯片SI3262集成刷卡+触摸+ACD超低功耗一体

简介 13.56mhz刷卡soc芯片SI3262集成刷卡触摸ACD超低功耗,ACD模式刷卡距离可达到5cm以上,非常适用于小体积门锁,密码锁,柜锁,接下来介绍一下这款芯片的具体功能。 优势 1.超低功耗,最低功耗达 1.7uA&…

【网络安全 | Misc】世安杯 适合作为桌面(Stegsolve及Winhex的使用)

正文 解压后得到图片: 图片属性正常,无特殊点,经测试,无隐写文件: Stegsolve 运行方法: 可以看到出现二维码: 对其解密得到: 03F30D0A79CB05586300000000000000000100000040000000…

【起草】【第六章】ChatGPT 在软件测试的应用场景

6.1 、引言 & 背景 在测试领域,AIGC 的爆发引发了对其在软件测试中的应用可能性的广泛研究和探讨。传统的软件测试方法往往需要大量的人力和时间投入,而 AIGC 技术的引入可能为测试领域带来革命性的变化。AIGC 在测试中的优势在于其高效的自动化能力…

R语言学习笔记-R包的安装

推荐在线安装,可以解决包与包之间的依赖关系。 1.首先在RGui: 2.在RStudio 的console下: 如安装ggplot2包,则: install.packages("ggplot2") 生信方面: 首先安装: install.packa…

HDFS客户端UnknownHostException事故解析

文章目录 前言事故现场问题分析是否是整个域名解析服务当时都出问题了是否是出问题的pods本身的域名解析有问题 异常发生的全部过程域名的解析是什么时候发生的,怎么发生的域名解析的详细流程 重试发生在什么地方为什么重试会无效 Bugfix代码详解关于StandardHostRe…

jenkins解决工具找不到的问题

--------------------------插件选择版本最好能跟服务器对上

腾讯云服务器怎么买划算?最新优惠价格表

2023腾讯云轻量应用服务器优惠价格表,12月最新报价,腾讯云轻量2核2G3M带宽62元一年、2核2G4M轻量服务器118元一年,540元三年、2核4G5M带宽218元一年,756元三年、4核8G12M轻量服务器646元15个月,CVM云服务器S5实例2核2G…

C语言实验2:循环结构程序设计和数组

目录 一、实验要求 二、实验内容 实验一:循环结构程序设计 1.1 代码 截图 分析 1.2 代码 截图 分析 1.3 代码 截图 分析 实验二:数组 2.1 代码 截图 分析 2.2 代码 截图 分析 2.3 代码 截图 分析 实验三:循环结…

产品管理-学习笔记-版本的划分

版本号说明【X.Y.Z_修饰词】 版本号定义原则X表示大版本号,一般当产品出现重大更新、调整、不再向后兼容的情况时我们会在X上加1Y表示功能更新,在产品原有的基础上增加、修改部分功能,且并不影响产品的整体流程或业务Z表示小修改&#xff0c…

小米SU7汽车发布会; 齐碳科技C+轮融资;网易 1 月 3 日发布子曰教育大模型;百度文心一言用户数已突破 1 亿

投融资 • 3200 家 VC 投资的创业公司破产,那个投 PLG 的 VC 宣布暂停投资了• 云天励飞参与 AI 技术与解决方案提供商智慧互通 Pre-IPO 轮融资• 百度投资 AIGC 公司必优科技• MicroLED量测公司点莘技术获数千万级融资• 智慧互通获AI上市公司云天励飞Pre-IPO轮战…

Buck电源设计常见的一些问题(五)MOS管振荡抑制方法(三)

MOS管振荡抑制方法(三)Rboot的选取 1.Rboot的选取2.总结1.Rboot的选取 同步 Buck 变换器一般采用自举电路供电,如图所示。开关节点上升沿的振荡与上管开通关系密切,上管开通时的驱动电流路径如图所示。因此,可以通过增大 Rboot来减缓上管开通的速度,从而抑制开关节点的振…

创建和配置Spring MVC框架构建Web应用

1 认识Spring MVC Spring Web MVC是构建在Servlet API之上的Web框架,自诞生之时就被纳入了Spring框架中。其正式/官方名称为“Spring Web MVC”,源自其所属的模块(spring-webmvc),但通常被称为“Spring MVC”。 1.1…

Zblog主题模板:ZblogitseanPage博客主题模板

zblog主题模板:ZblogitseanPage博客主题模板 ZblogitseanPage博客主题模板主要是以文字内容为主导,将页面的设计杂乱的图片和元素进行最小化或者去除,从而使整个页面更加简洁、清晰,突出信息的呈现。 下面介绍一下zblog主题模板:Z…

MobaXterm自定义关键字高亮(解决绿色不亮问题)

作用 终端中的一些关键字高亮可以提高我们的效率,本文是解决在部分关键字没有高亮的情况下,添加自定义关键字使其高亮 教程 打开设置 基于已有模式进行拓展 在已有Session中选择自定义的规则,重启MobaXterm即可 解决绿色不亮问题 由…

除法计算器 C语言xdoj48

问题描述 小明的弟弟刚开始学习除法,为了检查弟弟的计算结果是否正确,小明决定设计一个简单计算器程序来验算。 输入说明 输入数据由四个整数m,n,q,r构成,m为被除数,n为除数&#xff0c…

OpenCV-Python(21):OpenCV中的轮廓性质

3.轮廓的性质 本文我们将主要学习基于轮廓来提取一些经常使用的对象特征。 3.1 长宽比 边界矩形的宽高比: x,y,w,h cv2.boundingRect(cnt) aspect_ratio float(w)/h 3.2 Extent 轮廓面积与边界矩形面积的比。 area cv2.contourArea(cnt) x,y,w,h cv2.bounding…

rime中州韵 symbols.custom.yaml 配置

今天我们所做的配置,将实现扩展符号的输入效果,如下👇: 基础扩展符号的配置 要实现输入法能够输入扩展的符号,我们需要在输入方案中引入扩展符号集。 如果你使用的输入方案是 wubi_pinyin.schema.yaml,…

VMware16 pro 安装openEuler-23.09-x86_64,详细操作流程+详图。

1.环境: win11, vmware16 pro, openEuler-23.09-x86_64-dvd.iso 社区版openEuler 23.09官方下载地址: openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、…

《深入理解JAVA虚拟机笔记》对象的创建和访问、对象头

对象的创建 当 Java 虚拟机遇到一条字节码 new 指令时,首先将去检查这个指令的参数是否能做常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载…