Windows环境部署安装Chatglm2-6B-int4

news2024/11/19 9:39:52

chatglm2-6B是最近比较火爆的大模型,可以在消费级显卡上部署使用,适合学习。但是一般人也不一定有那么高的硬件配置,所以部署个int4版本应该是大多数人的最好选择。我就在家里部署起了int4版本的chatglm2-6B,记录一下免得忘了。

几个步骤:

1. 安装pytorch-gpu, 这个可以看下前一个博客:win10安装pytorch GPU_相国的博客-CSDN博客

2. 下载chatglm2的源码,并安装它的依赖

创建新的python环境,然后上chatglm2-6B的官方github下载源码GitHub - THUDM/ChatGLM2-6B: ChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型 直接右键下载打包的源码即可,解压到本地目录

里面 model 目录是新创建的,为了放chatglm2的模型文件。

然后在你的Python环境中 pip install -r requirements.txt 就行。 下载的库很多记得用国内pip源!

这里我直接用前一个博客pytorch的那个环境,正好chatglm2也是用pytorch 2.0.1 ,这样就少下载一个巨库。

3. 下载chatglm2-int4的模型文件

从THUDM/chatglm2-6b-int4 at main (huggingface.co)

下载里面的模型文件下来,放到上面的model目录里。

里面重点是那个3.9G的 pytorch_model.bin文件,据说下载速度比较慢,我是从清华大学云盘下载的:清华大学云盘 (tsinghua.edu.cn)

(其实模型文件放哪里无所谓,不提前下载也行,它会按huggingface transformer下载模型的方式下载到被本地的)

 4. 修改使用模型的py脚本

清华官方提供了几种使用chatglm2的方式,有cli, http, gradio, streamlit, 根据你的需要打开相应的py的文件,修改 from_pretrained 函数那里,一共三处,以streamlit为的web_demo2.py例

所有的模型加载改成下面:

    tokenizer = AutoTokenizer.from_pretrained(r"D:\LLM\ChatGLM2-6B-main\model", trust_remote_code=True)
    model = AutoModel.from_pretrained(r"D:\LLM\ChatGLM2-6B-main\model", trust_remote_code=True).half().cuda()

图片可能有点长,需要打开来看。就是from_pretrained的两个路径地址,改为你保存模型的目录地址;另外一个是int4的启动方式,增加一个 .half()  。 原来chatglm2的官方源码里是没有这个的,我就按照THUDM/chatglm2-6b-int4 · Hugging Face 这里改。

不同客户端有不同启动方式,比如streamlit的是:  streamlit run web_demo2.py 

 int4的速度确实是不怎么快 :(

5. 踩过的坑

看了一些博客写的部署过程,感觉不难,但实际操作起来还是有一些问题。

比如model的路径我之前直接用相对路径报了个模型找不到的错,于是我改成了绝对路径。

比如有博客是下载chatglm2模型的N个bin文件回来,修改量化启动方式有些不是用 .half() 的,这就不细说了。

最后一个启动访问客户端以后,命令行出现了缺少gcc ,但不影响使用,就没理它

 

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

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

相关文章

Docker资源限制

Docker资源限制 一、cpu资源控制1、 设置cpu使用率上限2、设置cpu资源占用比(设置多个容器时才有效)3、设置容器绑定指定的CPU 三、内存资源控制四、磁盘IO配额控制1、限制Block IO2、限制bps和iops进行限制 一、cpu资源控制 cgroups是一个非常强大的li…

VMware虚拟机无法自动获取IP地址的解决办法

安装好虚拟机后,网络是ok的,但是关机后,再次开启就不能用了。网上找了好多方法,都不管用,最后恢复默认设置搞定了,实在没办法的可以试一试

【致敬未来的攻城狮计划】第3期 作业汇总贴 + 获奖公布(文末荐书)

目录 一、写在前面 二、种子学员介绍 三、作业贴汇总 四、小小总结 五、获奖公布 六、学员有话说 七、特别致谢 八、友情荐书 一、写在前面 时间过得真快,距离 【致敬未来的攻城狮计划】第3期 的发起,已经过去有些时间了,让我们一起…

FileHub使用教程:Github Token获取步骤,使用快人一步

FileHub介绍 filehub是我开发的一个免费文件存储软件,可存万物。软件仓库:GitHub - Sjj1024/s-hub: 一个使用github作为资源存储的软件 软件下载地址:。有问题可以留言或者提Issue, 使用第一步:获取Github Token 使…

苹果手机充电充不进去什么原因?2023最新解决方法!

最近新买了一部苹果手机,才开心没两天呢,今天突然就发现苹果手机充电充不进了,这是为什么呢?有没有朋友知道呀?” 苹果手机作为目前年轻人比较喜欢的一款手机,也渐渐走进我们的生活。但在使用苹果手机时&am…

windows下载安装nvm并使用安装node

nvm安装 NVM(Node Version Manager)是一个用于管理 Node.js 版本的工具,可以在同一台计算机上安装和切换不同版本的 Node.js 1.官网下载 官网:https://github.com/coreybutler/nvm-windows/releases 2.安装步骤 解压后点击e…

网访问内网机器:基于frp的内网穿透

随缘更新些我自己的博客网站里的文章吧 因为经常需要远程访问自己的机器,所以写一个博客记录一下 公网访问内网机器:基于frp的内网穿透 从公网中访问自己的私有设备向来是一件难事儿。 1. 为什么需要内网穿透? A. 计算机网络 如何在自己的机…

【Lua学习笔记】Lua进阶——Table,迭代器

文章目录 官方唯一指定数据结构--tabletable的一万种用法字典和数组 迭代器ipairs()pairs() 回到Table 在【Lua学习笔记】Lua入门中我们讲到了Lua的一些入门知识点,本文将补充Lua的一些进阶知识 官方唯一指定数据结构–table 在上篇文章的最后,我们指出…

【windows】连接共享打印机提示:0x0000011B

【问题现象】 添加共享打印机的时候, 提示错误:0x0000011B。 【解决方法】 按winr键,在运行输入regedit 然后在注册表中找到路径: 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print 打开后,在右侧…

Android 之 Canvas API 详解 (Part 3) Matrix 和 drawBitmapMesh

本节引言: 在Canvas的API文档中,我们看到这样一个方法:drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) 这个Matrix可是有大文章的,前面我们在学Paint的API中的ColorFilter中曾讲过ColorMatrix 颜色矩阵,一个4…

Python 生成随机图片验证码

Python 生成随机图片验证码 在写一个Web项目的时候一般要写登录操作,而为了安全起见,现在的登录功能都会加上输入图片验证码这一功能,在利用Django开发Web项目的过程中,可以使用 Python 生成一个如下所示的图片验证码&#xff1a…

MVC与MVVM模式的区别

一、MVC Model(模型):用于处理应用程序数据逻辑,负责在数据库中存取数据。处理数据的crud View(视图):处理数据显示的部分。通常视图是依据模型数据创建的。 Controller(控制器&…

Leetcode-每日一题【剑指 Offer 51. 数组中的逆序对】

题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 解题思路 前置知识 分治法 设计思想: 将规模为n的问题分解为k个规模较小的子问题…

解析LED防蓝光灯珠技术原理

LED防蓝光灯珠能有效减少蓝光对眼睛的持续伤害,通过便携式光谱分析仪对比检测,使用LED防蓝光灯珠后,手机屏幕发出的蓝光强度得到了有效抑制,减少了有害蓝光对眼睛的伤害。LED防蓝光灯珠主要是通过将有害蓝光进行反射,或…

(css)AI智能问答页面布局

(css)AI智能问答页面布局 效果&#xff1a; html <!-- AI框 --><div class"chat-top"><div class"chat-main" ref"chatList"><div v-if"!chatList.length" class"no-message"><span>欢迎使…

<PrivateImplementationDetails>.ComputeStringHash 错误解决办法

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0119 “PrivateImplementationDetails”是一个 类型&#xff0c;这在给定的上下文中无效 G:\\_Default.cs 26 活动 用 ILSPY 或者 .NET Reflector 、dnspy 等反编译出来之后 <Privat…

专访伊士曼中国区高管赵志伟:以创新应对新能源汽车后市场变化

受访人&#xff1a;伊士曼高性能膜事业部中国区商务总监赵志伟 新能源汽车发展至规模化阶段&#xff0c;以贴膜、保养维修为主的后市场产业迎来快速崛起&#xff0c;新能源消费者在汽车贴膜、改装和养护领域也表现出比燃油车更高频的需求度。 作为一家全球特种材料公司&#x…

【iOS】KVOKVC原理

1 KVO 键值监听 1.1 KVO简介 KVO的全称是Key-Value Observing&#xff0c;俗称"键值监听"&#xff0c;可以用于监听摸个对象属性值得改变。 KVO一般通过以下三个步骤使用&#xff1a; // 1. 添加监听 [self.student1 addObserver:self forKeyPath:"age"…

Windows实现端口转发(附配置过程图文详解)

文章目录 1. 前言2. 命令提示符3. 防火墙4. netsh 命令4.1 查看已有的转发规则4.2 新增转发规则4.3 删除转发规则 5. 图解汇总6. 欢迎纠正~ 1. 前言 利用Windows端口转发&#xff0c;实现本地设备 ⬅➡ 公网主机 ⬅➡ 远端服务器 2. 命令提示符 以管理员身份打开“命令提示…

【雕爷学编程】Arduino动手做(88)---水流量传感器模块2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…