windows 本地部署 ChatGLM2-6b 教程

介绍

ChatGLM2-6B是智谱AI及清华KEG实验室发布的中英双语对话模型,它是 ChatGLM-6B 的第二代版本。

主要特点:

  • 性能提升:ChatGLM2-6B 在初代模型的基础上进行了全面升级,使用了 GLM 的混合目标函数,并经过了 1.4T 中英标识符的预训练与人类偏好对齐训练。在多个数据集上的性能相较于初代模型有了显著提升,例如在 MMLU 上提升了 23%,在 CEval 上提升了 33%,在 GSM8K 上提升了 571%,在 BBH 上提升了 60%。

  • 更长的上下文处理能力:利用 FlashAttention 技术,ChatGLM2-6B 的上下文长度从 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度进行训练,这允许了更多轮次的对话。

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

  • 开放的协议:ChatGLM2-6B 的权重对学术研究完全开放,并在获得官方书面许可后允许商业使用。

  • 部署和使用:ChatGLM2-6B 支持在多种硬件和软件环境下部署,包括 GPU 和 CPU 环境。模型也可以通过量化来减少对硬件资源的需求。

  • 模型量化:模型提供了不同精度的版本,包括 FP16、INT4 等,以适应不同的部署需求和硬件限制。

  • 多卡部署:如果用户有多个 GPU,ChatGLM2-6B 支持模型在多张 GPU 上进行切分和部署,以解决单张 GPU 显存不足的问题。

  • 开源社区:ChatGLM2-6B 旨在与开源社区共同推动大模型技术的发展,并鼓励开发者遵守开源协议。

  • 模型微调:提供了使用 P-Tuning v2 对 ChatGLM2-6B 进行参数微调的方法,以适应特定的应用场景。

  • 模型架构:ChatGLM2-6B 采用了 Prefix Decoder-only 架构,综合了单项注意力和双向注意力的优点。

  • 模型容量和多轮对话能力:虽然 ChatGLM2-6B 在多维度上有所提升,但相比于更大容量的模型,其在长答案生成和多轮对话场景下可能存在一定的局限性。

  • 模型开源信息:模型的代码和权重已在 GitHub 和 ModelScope 等平台上开源,供学术研究和商业使用。

代码参考

目前在git上已经获星15.5k,算是一款比较火爆的开源中英文对话模型。
git地址:https://github.com/THUDM/ChatGLM2-6B
在这里插入图片描述

windows平台搭建部署ChatGLM2-6b过程

  1. 代码下载:git clone https://github.com/yanceyxin/ChatGLM2-6B.git

  2. cd 到 ChatGLM2-6B文件目录,打开README.md,解读配置过程,根据README.md进行部署;
    在这里插入图片描述

  3. 在当前目录下,打开PowerShell,使用 pip 安装依赖:pip install -r requirements.txt,其中 transformers 库版本推荐为 4.30.2torch 推荐使用 2.0 及以上的版本,以获得最佳的推理性能。【该过程相对比较慢,即使设计科学上网也要一段时间】
    在这里插入图片描述

  4. 报错了:不能安装“TBB”,查资料解决吧。
    在这里插入图片描述
    查找资料,是给ananconda 升级 mkl 包的错误,删掉Anaconda3\Anaconda3\Lib\site-packages中TBB-0.2-py3.11.egg-info文件,重新pip install -r requirements.txt,即成功;
    在这里插入图片描述

  5. 安装成功在这里插入图片描述

  6. 根据自己的设备能力修改demo中模型量化精度,用GPU可以选择低成本模型,修改如下代码为int4精度;
    model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4", trust_remote_code=True).cuda()
    在这里插入图片描述

  7. 当前目录下用Python运行web_demo.py,接近4G数据,又是漫长的下载等待时间,即使科学上网也要相对长的时。在这里插入图片描述

  8. 建议可以手动下载模型,根据自己本地设备的能力选择相应精度的模型,放到源码相应目录里。网址:https://huggingface.co/THUDM/chatglm2-6b-int4/tree/main
    在这里插入图片描述

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

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

相关文章

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目,eureka是其中的一个模块,依赖主要继承父依赖 学习视频:b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

API提取IP

API代理作为IP代理的一项重要业务,在绕开地域网络限制,提高作业效率等方面提供强大的技术支持。它能够帮助用户快速实现软件与软件间的交流,无障碍连通不同应用程序逻辑开发的系统应用。API代理用途范围广泛,如使用API提取代理IP、…

02-JVM学习记录-运行时数据区

二、运行时数据区 每个JVM只有一个Runtime实例,只有一个运行时数据区。 虚拟机栈、堆、方法区最重要 方法区和堆与虚拟机的生命周期相同(随虚拟机启动而创建,虚拟机退出而销毁),程序计数器、虚拟机栈、本地方法栈生命…

区块链技术与应用学习笔记(12-13节)——北大肖臻课程

目录 12.BTC-匿名性 一、什么是匿名? 1,有可能破坏比特币匿名性的两个方面 2,如何提高匿名性 一个比特币用户能采用什么样的方法尽量提高个人的匿名性? 分解: 1、网络层怎么提高匿名性? 2、应用层怎么提高匿名性? 零知…

2024年vue 开发环境 Node.js于win10环境下的安装

2024年vue 开发环境 Node.js于win10环境下的安装 导航 文章目录 2024年vue 开发环境 Node.js于win10环境下的安装导航一、下载node.js二、安装node.js三、测试(一)四、环境配置五、测试(二)六、安装淘宝镜像七、安装vue脚手架 一、下载node.js Node.js 官方网站下载&#xff…

cgroup 资源控制介绍

目录 一 cgroup 介绍 1,cgroup 是什么 2,cgroups有四大功能 二 cgroups对 CPU 的控制 1,cpu 的工作原理 2,设置CPU使用率上限 2.1 cgroups对 CPU 的控制 原理 2.2 --cpu-period 2.3 --cpu-quota 2.4 设置…

Linux(Centos)服务器探索ffmpeg笔记 (命令行、Nvidia硬件加速、GPU、CPU、CUDA、h264_nvenc、过滤器、加水印)

目录 前言内容简介为什么会有这篇文章 1、服务器上怎么使用ffmpeg1.1 使用编译好的(需要root权限)1.2 自己怎么编译(需要root权限) 2 、非Root用户要怎么安装和使用3、ffmpeg命令的一些使用引导和参数介绍3.1 编译参数3.2 查询支持…

uniapp H5实现签名

第一种&#xff1a;跳转签名页面 1、创建审核页面audit.vue <template><view><uni-section title""><view class"auditClass"><uni-forms :model"baseFormData" ref"baseFormRef" :rules"rules&quo…

【Flink入门修炼】2-3 Flink Checkpoint 原理机制

如果让你来做一个有状态流式应用的故障恢复&#xff0c;你会如何来做呢&#xff1f; 单机和多机会遇到什么不同的问题&#xff1f; Flink Checkpoint 是做什么用的&#xff1f;原理是什么&#xff1f; 一、什么是 Checkpoint&#xff1f; Checkpoint 是对当前运行状态的完整记…

elementui el-date-picker禁止选择今年、今天、之前、时间范围限制18个月

1、禁止选择今年之前的所有年份 <el-date-pickerv-if"tabsActive 0":clearable"false"v-model"yearValue"change"yearTimeChange"type"year"placeholder"选择年"value-format"yyyy":picker-options…

03 OLED显示屏实现

文章目录 前言一、软件模拟IIC协议1.开启IIC协议2.结束IIC协议3.传输数据 二、OLED的操作1.传输数据的准备2.写入命令3.写入数据4.初始化函数5.设置光标6.显示字符7.显示字符串8.清屏9.显示汉字10.显示图片11.显示动图 三、完整代码总结 前言 这一章主要是上一节没有讲完的项目…

前端项目中使用插件prettier/jscodeshift/json-stringify-pretty-compact格式化代码或json数据

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、json代码格式化-选型二、json-stringify-pretty-compact简单试用三、prettier在前端使用四、查看prettier支持的语言和插件五、使用prettier格式化vue代码最终效果如图&#xff1a; ![在这里插入图片描述](https://im…

LLM应用实战:当KBQA集成LLM(二)

1. 背景 又两周过去了&#xff0c;本qiang~依然奋斗在上周提到的项目KBQA集成LLM&#xff0c;感兴趣的可通过传送门查阅先前的文章《LLM应用实战&#xff1a;当KBQA集成LLM》。 本次又有什么更新呢&#xff1f;主要是针对上次提到的缺点进行优化改进。主要包含如下方面&#…

多客圈子交友系统 uniapp+thinkphp6适配小程序/H5/app/api全开源,多款插件自选,支持个性定制!

网上交友的优点包括&#xff1a; 1. 方便&#xff1a;网上交友可以随时随地进行&#xff0c;不受时间和空间的限制&#xff0c;方便且高效。 2. 匿名性&#xff1a;网上交友可以实现匿名性&#xff0c;用户可以匿名地搜索、聊天或交换信息&#xff0c;保护个人隐私和安全。 3.…

COOIS 生产订单显示系统增强

需求说明&#xff1a;订单系统显示页面新增批量打印功能 增强点&#xff1a;CL_COIS_DISP_LIST_NAVIGATION -->TOOLBAR方法中新增隐式增强添加自定义打印按钮 增强点&#xff1a;BADI-->WORKORDER_INFOSYSTEM新增增强实施 实现位置&#xff1a;IF_EX_WORKORDER_INFOSYS…

制造型企业 如何实现便捷的机台文件统一管理?

机台文件统一管理&#xff0c;这是生产制造型企业都需要去做的&#xff0c;机台文件需要统一管理的原因主要包括以下几点&#xff1a; 1、提高效率&#xff1a;统一管理可以简化文件的访问和使用过程&#xff0c;提高工作效率&#xff0c;尤其是在需要频繁访问或更新机台文件的…

MySQL中什么情况下会出现索引失效?如何排查索引失效?

目录 1-引言&#xff1a;什么是MySQL的索引失效&#xff1f;(What、Why)1-1 索引失效定义1-2 为什么排查索引失效 2- 索引失效的原因及排查&#xff08;How&#xff09;2-1 索引失效的情况① 索引列参与计算② 对索引列进行函数操作③ 查询中使用了 OR 两边有范围查询 > 或 …

USB设备的音频类UAC

一、UAC简介 UAC&#xff08;USB Audio Class&#xff09;是USB设备的音频类&#xff0c;它定义了USB音频设备与主机计算机通信的方式。UAC标准是USB规范的一部分&#xff0c;并受到各种操作系统&#xff08;包括Windows、macOS和Linux&#xff09;的支持。 UAC是基于libusb,实…

图像在神经网络中的预处理与后处理的原理和作用(最详细版本)

1. 问题引出及内容介绍 相信大家在学习与图像任务相关的神经网络时&#xff0c;经常会见到这样一个预处理方式。 self.to_tensor_norm transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) 具体原理及作用稍后解释&…

java8 Stream流常用方法(持续更新中...)

java8 Stream流常用方法 1.过滤数据中年龄大于等于十八的学生2.获取对象中其中的一个字段并添加到集合(以学生姓名&#xff08;name&#xff09;为例)3.获取对象中其中的一个字段并转为其他数据类型最后添加到集合(以学生性别&#xff08;sex&#xff09;为例&#xff0c;将Str…