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

ChatGLM-6B-部署与使用


Blog’s 主页: 白乐天_ξ( ✿>◡❛)
🌈 个人Motto:他强任他强,清风拂山冈!
💫 欢迎来到我的学习笔记!

什么是ChatGLM-6B

一、简介

ChatGLM-6B 是由清华大学知识工程实验室(KEG)与智谱 AI 联合打造的一个开源的、支持中英双语的对话语言模型。

二、基本参数

  • 参数量:62 亿参数。

三、技术架构与特点

  • 架构基础:基于 General Language Model(GLM)架构,参考了 OpenAI 的 GPT 和 Google’s BERT 结构,并融合了 GLM 的技术特点。
  • 语言能力:具备良好的中英双语对话生成能力,能够理解和处理中英文混合输入。

四、应用场景

  • 智能客服:为企业提供高效的客户服务解决方案,回答用户的问题,解决用户的疑虑。
  • 智能助手:作为个人智能助手,帮助用户完成各种任务,如日程安排、信息查询、文本创作等。
  • 教育培训:辅助教学,回答学生的问题,提供学习建议和指导。
  • 内容创作:生成文章、故事、诗歌等各种文本内容。

ChatGLM-6B 模型的使用方法

ChatGLM - 6B 模型的使用方法主要有以下几种:
  1. 本地部署运行
  • 环境准备:
    • 安装 Python(建议使用 Python 3.8 及以上版本)。
    • 安装必要的库和依赖项,使用pip install -r requirements.txt,其中transformers库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可。
  • 模型加载:
  from transformers import AutoTokenizer, AutoModeltokenizer = AutoTokenizer.from_pretrained("thudm/chatglm - 6b", trust_remote_code=True)model = AutoModel.from_pretrained("thudm/chatglm - 6b", trust_remote_code=True).half().cuda()model = model.eval()
  • 对话交互
  response, history = model.chat(tokenizer, "白乐天", history=())print(response)response, history = model.chat(tokenizer, "你好,白乐天!", history=history)print(response)
  1. 使用网页版 Demo
    1. 下载模型仓库:git clone https://github.com/thudm/chatglm - 6b
    2. 进入仓库目录:cd chatglm - 6b
    3. 安装gradio库:pip install gradio
    4. 运行网页版程序:python web_demo.py,程序会运行一个 Web 服务器,并输出地址,在浏览器中打开输出的地址即可使用。

3.通过 API 调用
安装额外的依赖:pip install fastapi uvicorn
运行仓库中的api.py文件:python api.py,默认部署在本地的 8000 端口。

DAMODEL(丹摩智算)平台-ChatGLM-6B 服务端部署

1.什么是DAMODEL(丹摩智算)?

DAMODEL(丹摩智算)是专为 AI 打造的智算云,致力于提供丰富的算力资源与基础设施助力 AI 应用的开发、训练、部署。

2.实例创建

1. 首先先进入丹摩平台,按照图示进行操作:

  1. 进入创建页面后,首先在实例配置中选择付费类型为按量付费,其次选择单卡启动,然后选择需求的 GPU 型号,本次实验可以选择选择:按量付费GPU 数量 1NVIDIA-GeForc-RTX-4090,该配置为 60GB 内存,24GB 的显存。

方法和前一篇文章【Llama3.1的部署与使用】一样,看着操作就行了!

  1. 配置数据硬盘的大小选择默认大小 50GB,选择 PyTorch1.13.1 的框架启动
  2. 点击创建密钥对,输入自定义的名称。创建好密钥对后,选择刚刚创建好的密钥对,并点击立即创建,等待一段时间后即可启动成功!

3.模型准备

  1. 启动环境后,打开终端,用 git 克隆ChatGLM-6B项目
cd /home/aistudio/work/
git clone https://github.com/THUDM/ChatGLM-6B.git
# 如果遇见github因为网络问题导致失败,可选择gitcode站点进行下载
# git clone https://gitcode.com/applib/ChatGLM-6B.git
  1. 成功克隆项目后,会显示如下文件夹:

  1. cd进入该文件夹,使用pip安装项目依赖:
pip install -r requirements.txt
  1. 等待一会儿看见显示如 Successfully installed,就表示安装完成!

  1. 安装完依赖,我们现在就开始引入模型文件。
    1. 首先点击文件存储,点击上传文件。

  1. 下载 Hugging Face 上的 ChatGLM-6B 预训练模型,也可以进入魔塔社区选择Chatglm3-6B里的所有文件进行下载。

  1. 将下载下来的模型文件及配置进行上传并解压,上传时尽量保持该界面首页显示,等待上传成功后再进行其他操作。

4.模型启动

上传好预训练模型及解压后,我们就可以启动Python脚本进行运行了。

  1. 首先我们使用cli_demo.py命令行进行交互;
  2. 然后我们再使用web_ demo.py命令行,使用本机服务器进行网页交互。
  3. 确定预训练模型的本地路径。假设你的模型解压后存放在/home/user/models/chatglm-6b路径下。
  4. 打开cli_demo.py文件:
    • 找到类似以下的代码行:
tokenizer = AutoTokenizer.from_pretrained("thudm/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("thudm/chatglm-6b", trust_remote_code=True).half().cuda()
  • 将其修改为:
tokenizer = AutoTokenizer.from_pretrained("/home/user/models/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("/home/user/models/chatglm-6b", trust_remote_code=True).half().cuda()
  • 注意将路径替换为你实际的模型存放路径。
  1. 打开web_demo.py文件:
    • 同样找到类似的代码行并进行修改,修改方式与cli_demo.py文件一致。

修改完成后,保存文件。现在你就可以使用本地模型启动了,根据你的需求运行相应的脚本文件即可进行命令行交互或网页交互。

  1. 如果在终端输入python cli_demo.py成功启动模型后,你将进入一个交互界面,可以按照以下方式进行操作:
    1. 对话交互: 当你输入文本时,模型会根据你的输入生成相应的回复。例如,你输入 “今天天气怎么样?”,模型可能会给出类似 “很抱歉,不清楚你所在地区的具体天气情况呢。你可以通过天气预报网站或应用查询。” 这样的回答。
    2. 清空对话历史和清除屏幕: 如果输入 “clear”,程序会清空之前的对话历史,并且清除屏幕,为新的对话做好准备。
    3. 退出程序: 当你输入 “stop” 时,程序会退出,结束当前的交互会话。

这种交互方式为用户提供了灵活的操作选择,可以根据自己的需求随时调整对话状态或结束程序。同时,通过不断输入不同的问题和指令,可以更好地了解模型的能力和特点。

相关文章:

ChatGLM-6B-部署与使用

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 什么是ChatGLM-6B 一、简介 ChatGLM-6B 是由清华大学知识工程实验室(KEG&…...

李宏毅结构化学习 03

文章目录 一、Sequence Labeling 问题概述二、Hidden Markov Model(HMM)三、Conditional Random Field(CRF)四、Structured Perceptron/SVM五、Towards Deep Learning 一、Sequence Labeling 问题概述 二、Hidden Markov Model(HMM) 上图 training data 中的黑色字为x&#xff…...

java重点学习-总结

十五 总结 https://kdocs.cn/l/crbMWc8xEZda (总结全部的精华) 1.面试准备 企业筛选简历规则简历编写注意事项(亮点)项目怎么找,学习到什么程度面试过程(表达结构、什么样的心态去找工作) 2.redis 缓存相关(缓存击穿、穿透、雪崩、缓存过期淘…...

文件操作

文件的由来:在程序中,之前每一个程序都是需要运行然后输入数据,当程序结束时输入的数据也随之消散,为了下一次运行时不再输入数据就有文件的由来,使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据…...

docker存储

docker分层结构 如图所示,容器是由最上面可读可写的容器层,以及若干个只读镜像层组成,创建容器时,容器中的 数据都来自镜像层。这样的分层机构最大的特点是写时复制: 1、容器中新生成的数据会直接存放在容器层&#xf…...

Ubuntu20.04.6 环境下docker设置proxy

问题背景: 在进行dokcer pull操作的时候,会失败且出现如下提示Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting h…...

如何给文件夹里面的文件批量添加前缀和编号(利用C#写的小工具)

运行结果 将上面的文件编号效果 下载过后启动这个程序即可(这个程序灵感来源是上次给美术资源分类和编号的时候给我干吐了,所以写了这个工具) 体验链接:laozhupeiqia/批处理 --- laozhupeiqia/批处理 (github.com) 如果对你有帮助…...

使用分布式调度框架时需要考虑的问题——详解

引言 随着企业系统的规模不断扩大,特别是在分布式计算和云计算环境下,如何协调多个节点或服务执行任务成为一个关键问题。分布式调度框架在这种背景下应运而生,它可以调度成千上万的任务,在多个节点上分配、执行和监控任务&#…...

C语言编译四大阶段

目录 一、引言 二、预处理阶段 三、编译阶段 四、汇编阶段 五、链接阶段 六、总结 本文将详细介绍C语言编译的四个阶段,包括预处理、编译、汇编和链接。通过学习这些阶段,读者可以更好地理解C语言程序的编译过程,提高编程效率。 一、引…...

C# 关于“您与该网站的连接不是私密连接...”的问题

目录 问题现象 范例运行环境 WebService 类 类介绍 增加参数 实现 小结 问题现象 最近在访问开发的微信支付功能时遇到了无法访问令牌的错误,这个错误是公司内部应用程序接口返回的访问错误。经过排查是访问 HTTPS 站点遇到的错误,提示证书风险…...

【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集

主要内容如下: 1、Visdrone2019数据集介绍 2、下载、制作YOLO格式训练集 3、模型训练及预测 4、Onnxruntime推理 运行环境:Python3.8(要求>3.8),torch1.12.0cu113(要求>1.8)&#xff0c…...

VUE项目在Linux子系统部署

1、导读 环境:Windows 11、python 3.12.3、Django 4.2.11、 APScheduler 3.10.4 vue 背景:换系统需要重新安装,避免后期忘记,此处记录一下啊 事件:20240922 说明:使用node启动,非nginx&…...

开源 | 如何在产品上扩展大储存?合宙LuatOS外挂SPI Flash库轻松搞定

我们都知道芯片的储存都是寸土寸金的,当你的产品需要存储照片、音频、文档等资源的时候,有没有眉头一紧?内部不够只能外扩,但是外扩要编写各种驱动,还有Flash替换,这都要消耗头发啊! 但&#x…...

20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32F103C8T6 采用DHT11读取温度、滑动变阻器模拟读取电流、电压。 通过OLED屏幕显示,设置电流阈值为80,电流小阈值为50,电压阈值为60,温度阈值…...

spring自定义属性编辑器

文章目录 spring自定义属性编辑器步骤 spring自定义属性编辑器 属性编辑器是用来解析bean的配置文件中的属性标签的,spring的BeanWrapperImpl默认会注册CustomCollectionEditor(集合)、CustomMapEditor(Map)、CurrencyEditor(货币)、ByteArrayPropertyEditor等&…...

在VMware16中安装Windows 10:完整教程

在VMware中安装Windows 10:完整教程 1.安装环境准备2.创建虚拟机 1.安装环境准备 1.虚拟机: VMware-workstation-full-16.2.2-19200509 2.系统镜像:win10 2.创建虚拟机 1.自定义 2.下一步 3.稍后安装系统 3.默认下一步 4.虚拟机取名和选择存放路径(按需更改…...

MATLAB系列09:图形句柄

MATLAB系列09:图形句柄 9. 图形句柄9.1 MATLAB图形系统9.2 对象句柄9.3 对象属性的检测和更改9.3.1 在创建对象时改变对象的属性9.3.2 对象创建后改变对象的属性 9.4 用 set 函数列出可能属性值9.5 自定义数据9.6 对象查找9.7 用鼠标选择对象9.8 位置和单位9.8.1 图…...

把设计模式用起来!(4) 用不好模式?之原理不明

(清华大学出版社 《把设计模式用起来》书稿试读) 上一篇:把设计模式用起来!(3)用不好模式?之时机不对 为什么用不好设计模式?——原理不明 难搞的顾客:“抹这种霜&#…...

安卓13去掉下拉菜单的Dump SysUI 堆的选项 android13删除Dump SysUI 堆

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析3.1 位置13.2 位置24.代码修改5.编译6.彩蛋1.前言 客户需要去掉下拉菜单里面的Dump SysUI 堆图标,不让使用这个功能。 2.问题分析 android的下拉菜单在systemui里面,这里我们只需要定位到对应的添加代…...

vue3常用的组件间通信

一 props props 可以实现父子组件通信&#xff0c;props数据是只读。 1. 基本用法 在父组件中&#xff0c;你可以这样传递 props&#xff1a; <template><ChildComponent message"Hello, Vue 3!" /> </template><script setup> import C…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...