在矩池云使用ChatGLM-6B ChatGLM2-6B

news2024/9/24 11:30:45

ChatGLM-6B 和 ChatGLM2-6B都是基于 General Language Model (GLM) 架构的对话语言模型,是清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同发布的语言模型。模型有 62 亿参数,一经发布便受到了开源社区的欢迎,在中文语义理解和对话生成上有着不凡的表现。

ChatGLM-6B 可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 针对中文问答和对话进行了优化,经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,已经能生成相当符合人类偏好的回答。

ChatGLM2-6B 则是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

  • 更强大的性能:基于 ChatGLM 初代模型的开发经验,全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。

  • 更长的上下文:基于 FlashAttention 技术,将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,会在后续迭代升级中则有望进行优化。

  • 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。

目前 ChatGLM-6B 以及 ChatGLM2-6B 均可通过登记进行商用,为方便大家使用,矩池云已第一时间获取到相关权限并上线了这两个模型的镜像,后续也会根据模型更新而进行镜像迭代,以下是在矩池云上使用 ChatGLM2-6B 的方法,ChatGLM-6B 的使用方法与其一致。

硬件要求

矩池云已经配置好了 ChatGLM-6B 和 ChatGLM2-6B 环境,显存需要大于13G。可以选择 A4000、P100、3090 或更高配置的显卡。

租用机器

在矩池云主机市场:https://matpool.com/host-market/gpu,选择显存大于13G的机器,比如 A4000 显卡,然后点击租用按钮(选择其他满足显存要求的显卡也可以)。

租用页面,搜索 ChatGLM2-6B,选择这个镜像,再点击租用即可。

机器租用成功后,你会看到 8000 端口对应链接,这是 ChatGLM2-6B 默认的 api 接口,镜像已经设置了开机自启,也就是说现在可以直接调用这个接口使用 ChatGLM2-6B 了。

使用 ChatGLM2-6B api

调用 ChatGLM2-6B api 需要发送 POST 请求。前面租用机器我们自定义了 8000 端口,在租用页面可以获得对应的公网链接,比如:https://hz.xxxx.com:xxxx/?token=xxxxx

需要注意,实际我们请求不需要 token,所以直接用:https://hz.xxxx.com:xxxx 这段即可。

curl请求:

curl -X POST "https://hz.xxxx.com:xxxx" \
     -H 'Content-Type: application/json' \
     -d '{"prompt": "你好", "history": []}'

Python请求:

import requests
import json
def getGLM(prompt, history):
    '''
    curl -X POST "https://hz.xxxx.com:xxxx" \
     -H 'Content-Type: application/json' \
     -d '{"prompt": "你好", "history": []}'
    '''
    url = 'https://hz.xxxx.com:xxxx'
    # 设置请求头
    headers = {
    'Content-Type': 'application/json'
    }
    data = {
    'prompt': prompt,
    'history': history
    }
    # 发送请求并获取响应
    response = requests.post(url, headers=headers, data=json.dumps(data))
    # 检查响应状态码
    if response.status_code == 200:
        # 获取响应数据
        rsp = response.json()
        return rsp
    else:
        print('请求失败,状态码:', response.status_code)
        
# 测试请求
history=[]
prompt = "假设你是一位Python高手,请用Python Pandas 模块实现一个Excel文件批量合并脚本"
getGLM(prompt, history)

A4000 回复复杂点的问题(回复字数1.5k左右),耗时 20-40s 左右。

ChatGLM2-6B 也有 web demo,大家也可以运行测试,具体的使用方法如下文。

运行 ChatGLM2-6B web demo

首先我们需要 kill 掉系统开启自启的 ChatGLM2-6B API 服务,Jupyterlab 里新建一个 Terminal,然后输入下面指令查看api服务器进程id。

ps aux | grep api.py

kill 掉相关进程,从上面运行结果可以看出,api.py 进程id是5869,执行下面指令即可 kill 相关进程:

# 注意 5869 换成你自己租用服务器里查出来的 api.py 程序的进程id
# 注意 5869 换成你自己租用服务器里查出来的 api.py 程序的进程id
# 注意 5869 换成你自己租用服务器里查出来的 api.py 程序的进程id
kill 5869

运行 ChatGLM2-6B 版本 运行

# 进入项目目录
cd /ChatGLM2-6B
# 安装依赖
pip install streamlit streamlit_chat
# 启动脚本
streamlit run web_demo2.py --server.port 8000 --server.address 0.0.0.0

运行后服务会启动到 8000端口,host 设置成0.0.0.0,这样我们访问租用页面 8000 端口链接即可访问到对应服务了。

前面租用机器我们自定义了 8000 端口,在租用页面可以获得对应的公网链接:

比如:https://hz.xxxx.com:xxxx/?token=xxxxx

需要注意的是,实际上我们在请求时候不需要 token,所以使用的地址直接用:https://hz.xxxx.com:xxxx 这段即可。

浅尝试一下生成的效果还不错,这个问题的回答有点出乎意料,给了一个用 pygame 写的猜数游戏,其他的一些模型一般回复的内容都是 cmd 版本的。

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

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

相关文章

语音信号的A律压缩和u律压缩matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 A律压缩算法 4.2 μ律压缩算法 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(…

DanceFight VoxEdit 大赛

准备好让自己的创造力更上一层楼了吗?别再犹豫了,The Sandbox 将为你们带来一场激动人心的挑战,让你们的 VoxEdit 技能和舞蹈动作激情四射!准备好参加终极数字盛会——DanceFight VoxEdit 大赛!🕺&#x1…

物理层扩展以太网

扩展站点与集线器之间的距离:   在10BASE-T星型以太网中,可使用光纤和一对光纤调制解调器来扩展站点与集线器之间的距离。   为站点和集线器各增加一个用于电信号和光信息号转换的光纤调制解调器,以及他们之间的通信光纤。 扩展共享式以太…

ICS PA0

目录 环境配置工具的使用及相关资源Compling and Running NEMU配置系统make menuconfig项目构建make运行与调试 Submit 环境配置 Ubuntu安装中的分区不太明白安装了中文输入法和必要的工具链虚拟机与主机互联 工具的使用及相关资源 vim(vimtutor是vim的一个内置教…

Nginx跳转模块——location与rewrite

一、location 1、location作用 用于匹配uri(文件、图片、视频) uri:统一资源标识符。是一种字符串标识,用于标识抽象的或物理资源文件、图片、视频 2、locatin分类 1、精准匹配:location / {...} 2、一般匹配&a…

【80天学习完《深入理解计算机系统》】第三天 2.3 整数运算【正负溢出】【运算的溢出】【类型转换的二进制扩展】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)

ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754) 二、Variant 1 (CVE-2017-5753) 三、Variant 2 (CVE-2017-5715) 四、Variant 3 (CVE-2017-5754) 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, C…

向量数据库介绍

1.什么是向量数据 向量数据库是一种专门用于存储和检索向量数据的数据库。它不同于传统的关系型数据库,而是基于向量相似度匹配的方式来实现高效的数据查询和分析。 向量数据库的应用场景非常广泛,包括但不限于以下几个方面: 图片、音频和视频…

微服务02-docker

1、Docker架构 1.1 镜像和容器 Docker中有几个重要的概念: 镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。Docker镜像是用于创建 Docker 容器的模板 。就像面向对象编…

js代码执行顺序(同步与异步)

1.同步与异步 异步任务又分为宏任务和微任务 2.执行规则 同步代码遇到,直接执行Promise中.then前的代码直接执行,.then后的代码丢入微任务队列中遇到定时器直接将里面的代码丢入宏任务队列中同步代码执行完,去看微任务,有则执行;再去看宏任务&#xf…

文件的权限

1、修改文件的所属者和所属组 2、修改文件某一类人(所属者、所属组、其他人)的权限 一、用户对于普通文件的权限 二、用户对于目录文件的权限 三、访问控制列表ACL 四、特殊权限(了解) wuneng创建了几个文件,xiaoming对…

【C语言】预处理详解

本文目录 1 预定义符号 2 #define 2.1 #define 定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 2.7 命名约定 3 #undef 4 命令行定义 5 条件编译 6 文件包含 6.1 头文件被包含的方式 6.2 嵌套文件包含 1 预定义符号 __…

2023亚马逊秋季大促定档!卖家要做好准备!

亚马逊Prime秋季促销,又称亚马逊Prime会员早享日(Prime Early AccessSale),是亚马逊在2022年才正式推出的一个面向Prime会员的促销活动,与每年7月举办的Prime Day大促是同等级活动,去年秋季大促也是在10月举…

C - The Battle of Chibi

题意:就是问你数组中长度为m的上升子序列(没说连续)有多少个。 1:可以想到状态表示dp[ i ][ j ] 代表以 a[i] 为结尾的且长度为 j 的严格单增子序列的数目, 那么状态计算就为 , 那我们如果不优化直接写,一层n&am…

数据结构刷题训练——链表篇(一)

目录 前言 题目一:链表的中间节点 思路 分析 题解 题目二:链表中倒数第k个结点 思路 分析 题解 题目三:合并两个有序链表 思路 分析 题解 方法二 题解 题目四:链表的回文结构 思路 分析 题解 总结 前言 今天我将开…

家政小程序开发制作

家政小程序是一种基于移动互联网的工具,旨在为用户提供方便快捷的家政服务。下面是家政小程序的功能介绍: 1. 家政服务展示:家政小程序可以展示各类家政服务的详细信息,包括清洁、保姆、月嫂、保洁等多种服务项目,以及…

【vue3】基础知识点-pinia

学习vue3,都会从基础知识点学起。了解setup函数,ref,recative,watch、computed、pinia等如何使用 今天说vue3组合式api,pinia 戳这里,跳转pinia中文文档 官网的基础示例中提供了三种写法 1、选择式api&a…

性能测试场景分析并设计?超细案例讲解

前言 性能测试场景,其实和功能测试没什么区别,只是侧重点不同。 我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法,目的是为了尽可能的覆盖业务场景,避免遗漏导致的功能逻辑缺失或者未达到预期。 而在性能测试…

【C++】初识模板

C模板入门 一、泛型编程 二、函数模板1. 函数模板的概念2. 函数模板格式3. 函数模板的原理4. 函数模板的实例化5. 模板参数的匹配原则 三、类模板 一、泛型编程 假设我们想实现一个交换函数,并且支持不同类型的参数实现,我们可以用 typedef 将类型进行重…

V2MOM工作法

V2MOM分别代表愿景(vision)、价值(values)、方法(methods)、障碍(obstacles)、衡量指标(measurement)。 第一,我真正想要的是什么呢?这…