LLM - 第2版 GLM 中文对话模型 ChatGLM2-6B 服务配置 (2)

news2024/9/22 14:29:46

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://blog.csdn.net/caroline_wendy/article/details/131445696

  • ChatGLM-6B v1 工程:基于 ChatGLM-6B 模型搭建 ChatGPT 中文在线聊天 (1)
  • ChatGLM2-6B v2 工程:第2版 GLM 中文对话模型 ChatGLM2-6B 服务配置 (2)

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

  1. 更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
  2. 更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。
  3. 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。

以上来自于官网的介绍。

  • GitHub 工程:https://github.com/THUDM/ChatGLM2-6B
  • HuggingFace 模型:https://huggingface.co/THUDM/chatglm2-6b

配置主要参考:CSDN - 基于 ChatGLM-6B 的工程配置搭建 ChatGPT 中文在线聊天

1. 配置 ChatGLM2-6B 环境

配置 docker 环境:

docker network ls
df -h
docker images | grep "glm"

nvidia-docker run -it --privileged --network bridge --net=host --shm-size 32G --name chat-chenlong -p 9300:9300 -v /data:/data -v /nfs:/nfs glm:nvidia-pytorch-1.11.0-cu116-py3

添加自定义的配置 ~/.bashrc 文件:

# myconfig
export TORCH_HOME=/nfs/chenlong/workspace/torch_home/

配置 conda 环境:

conda create -n chatglm2 python=3.8
conda activate chatglm2

git clone git@github.com:THUDM/ChatGLM2-6B.git ChatGLM2-6B-official
cd ChatGLM2-6B-official
pip install -r requirements.txt

2. 下载 ChatGLM2-6B 模型

在下载模型之前,需要修改 THU-Cloud-Downloader/main.py 逻辑,使用 file 筛选文件名称,否则 ChatGLM2-6B 文件夹过大:

for obj in objects:
    if obj["is_dir"]:
        filelist += dfs_search_files(share_key, obj['folder_path'])
    elif args.file is None:
        filelist.append(obj)
    else:
    		# 修改为 obj['file_path']
        mat = re.match(args.file.replace('*', '.*'), obj['file_path'])
        if mat is not None:
            filelist.append(obj)
return filelist

下载 ChatGLM2-6B 的参数,模型下载路径,即清华云盘 - ChatGLM2-6B:

git clone git@hf.co:THUDM/chatglm2-6b
cd THU-Cloud-Downloader

python main.py --link https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c --save ../chatglm2-6b-bin/ --file /chatglm2-6b/

同时,还要下载 tokenizer.model 文件,不包括在云盘中,替换相应的文件,否则报错。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBJv94Pt-1687960631862)(/Users/wang/Library/Application Support/typora-user-images/image-20230628214505731.png)]

3. 启动 ChatGLM2-6B 服务

修改 web_demo.py

demo.queue().launch(share=False, inbrowser=True, server_name='0.0.0.0', server_port=9300)

vscode 支持直接跳转:http://localhost:9300/

ChatGLM2

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

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

相关文章

react umi中使用svg线上图片不加载问题

参考链接&#xff1a; https://www.jianshu.com/p/c927122a6e82 前言&#xff1a; 在react项目中&#xff0c;我们本地通过img标签的src使用svg图片是可以加载的&#xff0c;但是发布到线上图片加载不出来。 import stopImg from /images/stop.svg; <img src{stopImg }/&…

Transformer时间序列:PatchTST引领时间序列预测进

Transformer时间序列&#xff1a;PatchTST引领时间序列预测进 引言为什么transformer框架可以应用到时间序列呢统计学模型深度学习模型 PatchTSTPatchTST模型架构原理。通道独立性Patchingpatching的优点Transformer编码器 利用表示学习改进PatchTST使用PatchTST模型进行预测初…

深入理解 Golang: 聚合、引用和接口类型的底层数据结构

Go 中有基础类型、聚合类型、引用类型和接口类型。基础类型包括整数、浮点数、布尔值、字符串&#xff1b;聚合类型包括数组、结构体&#xff1b;引用类型包括指针、切片、map、function、channel。在本文中&#xff0c;介绍部分聚合类型、引用类型和接口类型的底层表示及原理。…

如何在Microsoft Excel中快速筛选数据

你通常如何在 Excel 中进行筛选?在大多数情况下,通过使用自动筛选,以及在更复杂的场景中使用高级过滤器。 使用自动筛选或 Excel 中的内置比较运算符(如“大于”和“前10项”)来显示所需数据并隐藏其余数据。筛选单元格或表范围中的数据后,可以重新应用筛选器以获取最新…

数据结构与算法基础-学习-25-图之MST(最小代价生成树)之Prim(普利姆)算法

一、生成树概念 1、所有顶点均由边连接在一起&#xff0c;但不存在回路的图。 2、一个图可以有许多棵不同的生成树。 二、生成树特点 1、生成树的顶点个数与图的顶点个数相同。 2、生成树是图的极小连通子图&#xff0c;去掉一条边则非连通。 3、一个有n个顶点的连通图的生…

stm32f103c8t6移植U8g2

U8g2代码下载&#xff1a; https://github.com/olikraus/u8g2 1&#xff0c;准备一个正常运行的KEIL5 MDK模板 2&#xff0c;下载u8g2的源码和 u8g2的STM32实例模板 源码: https://github.com/olikraus/u8g2 STM32实例模板: https://github.com/nikola-v/u8g2_template_stm32f…

100天精通Golang(基础入门篇)——第11天:深入解析Go语言中的切片(Slice)及常用函数应用

&#x1f337; 博主 libin9iOak带您 Go to Golang Language.✨ &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &#x1f30a; 《I…

期望最大化注意力网络 EMANet

论文&#xff1a;Expectation-Maximization Attention Networks for Semantic Segmentation Github&#xff1a;https://github.com/XiaLiPKU/EMANet ICCV2019 oral 论文提出的期望最大化注意力机制Expectation- Maximization Attention (EMA)&#xff0c;摒弃了在全图上计算注…

再述时序约束

再述时序约束 一、为什么要加时序约束&#xff1f;二、时序分析是什么&#xff1f;三、时序分析的一些基本概念三、 时序分析的一些基本公式 一、为什么要加时序约束&#xff1f; 一次笔者在调试HDMI输出彩条&#xff0c;出现彩条时有时无现象&#xff0c;笔者视频输出芯片的驱…

leecode-数组多数-摩尔投票法

题目 题目 分析 最开始思路&#xff1a;排序&#xff0c;然后取nums[n/2]&#xff0c;但是时间复杂度不过关。 摩尔投票法&#xff0c;学到了&#xff01; 代码 class Solution { public:int majorityElement(vector<int>& nums) {//摩尔投票int cnt0;int targ…

计算机二级c语言题库

计算机C语言二级考试&#xff08;60道程序设计&#xff09; 第1道 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换成大写&#xff08;若该位置上不是字母&#xff0c;则不转换&#xff09;。 例如&#xff0c;若输入"abc4EFG"&…

OpenCV学习笔记 | ROI区域选择提取 | Python

摘要 ROI区域是指图像中我们感兴趣的特定区域&#xff0c;OpenCV提供了一些函数来选择和提取ROI区域&#xff0c;我们可以使用OpenCV的鼠标事件绑定函数&#xff0c;然后通过鼠标操作在图像上绘制一个矩形框&#xff0c;该矩形框即为ROI区域。本文将介绍代码的实现以及四个主要…

opencv编译

文章目录 一、编译前工作二、编译安装1、Windows2、Linux 一、编译前工作 进入下载页面https://github.com/opencv/opencv&#xff0c;下载指定.tar.gz源码包&#xff0c;例如&#xff1a;opencv-4.7.0.tar.gz。解压到指定目录。 二、编译安装 opencv构建时&#xff0c;需要…

使用docker搭建hadoop集群

1.下载安装docker 2.启动docker 3.配置docker镜像 4.获取hadoop镜像 5.拉取hadoop镜像 6.运行容器 7.进入容器 8.配置免密 9.格式化节点 10.启动节点 11.查看节点信息 (img-CBr9VbGk-1687962511910)] 11.查看节点信息

javascript原型、原型链、继承详解

一、原型和原型链的基本概念 在JavaScript中&#xff0c;每个对象都有一个原型对象&#xff08;prototype&#xff09;。原型对象就是一个普通的对象&#xff0c;在创建新对象时&#xff0c;可以将该对象作为新对象的原型。原型对象可以包含共享的属性和方法&#xff0c;这些属…

Appium自动化-ADB连接手机提示unauthorized

目录 开头&#xff1a; 问题&#xff1a; 调研&#xff1a; 重启大法 终极大法 总结&#xff1a; 开头&#xff1a; 当使用ADB&#xff08;Android Debug Bridge&#xff09;连接手机时&#xff0c;如果提示"unauthorized"&#xff08;未授权&#xff09;错误&a…

javaee HttpSessionListener监听器统计在线人数

先创建ServletContextListener 在全局对象application中设置count属性 package com.yyy.listener;import java.util.ArrayList;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax…

易基因|表观遗传学与脑卒中:DNA甲基化的作用及衰老对血脑屏障修复的影响

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 脑卒中&#xff08;俗称中风&#xff09;是导致死亡和长期残疾的主要原因&#xff0c;尤其是对于老龄人来说。脑卒中的平均生存时间为6-7年&#xff0c;许多患者存在身体残疾和晚期认知功…

技术岗/算法岗面试如何准备?5000字长文、6个角度以2023秋招经历分享面试经验

技术岗/算法岗面试流程是什么样的&#xff1f;技术面都干什么&#xff1f;Coding 机试如何准备&#xff1f;技术面考察哪些知识&#xff0c;如何准备&#xff1f;项目八股如何准备&#xff1f;简历要注意什么&#xff1f;怎么做&#xff1f; 大家好&#xff0c;我是卷了又没卷…

uniapp 适配全面屏

1、manifest.json 文件修改 app-plus 下 添加 "safearea": {"background": "#00000000","bottom": {"offset": "auto"}},2、部分页面设置全屏&#xff08;登录页面&#xff09; methods: {//设置页面全屏onShow(…