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

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.mzph.cn/news/8176.shtml

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

相关文章

【AST抽象语法树】结构分析及特性

什么是AST? AST译名抽象语法树(Abstract Syntax Tree),是一种用于表示源代码结构的数据结构。 它在编译器、解析器和静态代码分析等领域中被广泛使用。 AST结构分析 我们利用成熟的astexplorer来进行结构化的比较和分析。可以尝试登录以下网…

树 - 前缀树(Trie Tree)

树 - 前缀树(Trie Tree) 什么是前缀树前缀树的实现节点数据结构定义插入方法●非递归方式●递归方式 查询单词方法●非递归方式●递归方式 查询前缀方法●非递归方式●递归方式 前缀树的复杂度前缀树有哪些应用前缀树的压缩:基数树双数组Trie树(DoubleAr…

探讨ChatGPT的强化学习:AI学习与交互的未来

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

ES6基础知识八:你是怎么理解ES6中Proxy的?使用场景?

一、介绍 定义: 用于定义基本操作的自定义行为 本质: 修改的是程序默认形为,就形同于在编程语言层面上做修改,属于元编程(meta programming) 元编程(Metaprogramming,又译超编程,是指某类计算…

ChatGPT和搜索引擎哪个更好用

目录 ChatGPT和搜索引擎的概念 ChatGPT和搜索引擎的作用 ChatGPT的作用 搜索引擎的作用 ChatGPT和搜索引擎哪个更好用 总结 ChatGPT和搜索引擎的概念 ChatGPT是一种基于对话的人工智能技术,而搜索引擎则是一种用于在互联网上查找和检索信息的工具。它们各自具…

kaggle新赛:Bengali.AI 语音识别大赛赛题解析

赛题名称:Bengali.AI Speech Recognition 赛题链接:https://www.kaggle.com/competitions/bengaliai-speech 赛题背景 竞赛主办方 Bengali.AI 致力于加速孟加拉语(当地称为孟加拉语)的语言技术研究。Bengali.AI 通过社区驱动的…

7p透明屏的制造过程复杂琐屑吗?

7p透明屏是一种新型的显示技术,它可以使屏幕变得透明,让用户可以透过屏幕看到背后的物体。这种技术在科幻电影中经常出现,但现在已经成为现实。 7p透明屏的工作原理是利用液晶显示技术和透明材料。液晶显示技术是一种通过控制液晶分子的排列…

【Qt】安装Qt 5.7.1 MSVC2013 64bit版本的说明

【Qt】安装Qt 5.7.1 MSVC2013 64bit版本的说明 1、背景2、安装Qt 5.7.13、运行Qt Creator 1、背景 刚开始Qt是C库,后来Qt发展就越来越强大了。后来Qt 发展成为一套跨平台C图形用户界面应用程序开发框架。 注意它不但可以开发GUI程序,而且也可用于开发非…

Python怎么将图片转换成base64编码

目录 什么是base64编码 Base64编码的特点 Base64编码的应用 Python怎么将图片转换成base64编码 什么是base64编码 Base64编码是一种将二进制数据转换为ASCII字符的编码方式。它是由MIME(Multipurpose Internet Mail Extensions)规范定义的&#xff0…

怎么清空回收站?3个方法轻松搞定!

有没有大佬知道该怎么清空回收站呀?想把回收站清空了不知道该如何操作!求一个清空方法!感谢大家啦! 电脑的回收站会为我们保存一些删除的数据,如果我们删除文件后意识到这些文件仍然是有用的,可以利用回收站…

Istio Pilot源码学习(一):Pilot-Discovery启动流程、ConfigController配置规则发现

本文基于Istio 1.18.0版本进行源码学习 1、Pilot-Discovery工作原理 Pilot-Discovery是Istio控制面的核心,负责服务网格中的流量管理以及控制面和数据面之间的配置下发 Pilot-Discovery从注册中心(如Kubernetes)获取服务信息并汇集&#xff…

直播带货app开发开发流程分析

随着小视频管理体系愈来愈变成人们的生活中的一部分,也随之短视频卖货逐步形成岗位内主流的转现方式,将短视频平台生产制造变成短视频带货体系计划愈来愈多,那样,把小视频管理体系开发设计变成短视频带货体系必须两步?…

谷粒商城篇章5 ---- P173-P192 ---- 检索服务【分布式高级篇二】

目录 1 检索服务 1.1 搭建页面环境 1.1.1 引入依赖 1.1.2 将检索页面放到gulimall-search的src/main/resources/templates/目录下 1.1.3 调整搜索页面 1.1.4 将静态资源放到linux的nginx相关映射目录下/root/docker/nginx/html/static/ search/ 1.1.5 SwitchHosts配置域…

疲劳驾驶检测和识别3:Android实现疲劳驾驶检测和识别(含源码,可实时检测)

疲劳驾驶检测和识别3:Android实现疲劳驾驶检测和识别(含源码,可实时检测) 目录 疲劳驾驶检测和识别3:Android实现疲劳驾驶检测和识别(含源码,可实时检测) 1.疲劳驾驶检测和识别方法 2.人脸检测方法 3.疲劳驾驶检测和识别模型…

《人工智能安全》课程总体结构

1 课程内容 人工智能安全观:人工智能安全问题、安全属性、技术体系等基本问题进行了归纳整理。人工智能安全的主要数据处理方法,即非平衡数据分类、噪声数据处理和小样本学习。人工智能技术赋能网络空间安全攻击与防御:三个典型实例及攻击图…

Vue异步更新、$nextTick

需求:编辑标题, 编辑框自动聚焦 1. 点击编辑,显示编辑框 2. 让编辑框, 立刻获取焦点 this. isShowEdit true // 显示输入框 this . $refs . inp . focus () // 获取焦点 问题:"显示之后",立刻获…

24 鼠标常用事件

鼠标进入:enterEvent鼠标离开:leaveEvent鼠标按下:mousePressEvent鼠标释放:mouseRelaseEvent鼠标移动:mouseMoveEvent 提升为自定义控件MyLabel 代码: //mylabel.h #ifndef MYLABEL_H #define MYLABEL_H#…

易班开放应用授权重定向,出现跨域的解决方案

问题描述 今天开发H5网站需要接入易班,经过易班授权然后重定向(code: 302),使用axios发请求,但是前后端均配置跨域的情况下,不管怎么弄都是一直跨域 但是我们看network,network中对应请求的res…

微服务初始

今天准备开始学习微服务,使用微服务肯定是因为他有好处。 首先了解到的三种架构,传统单体,集群架构,微服务架构 单体架构 有单点问题,如果宕机所有的服务都不可用所有业务的功能模块都聚集在一起,如果代…

tinkerCAD案例:9. Saw Shaped Wrench 锯形扳手

tinkerCAD案例:9. Saw Shaped Wrench 锯形扳手 ln this lesson you will learn how to create a cool saw shaped wrench. 在本课中,您将学习如何制作一个很酷的锯形扳手。 Start the lesson by dragging a polygon to the workplane. 通过将多边形拖动…