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…

Spring Security安全配置

使用Spring Boot与Spring MVC进行Web开发时,如果项目引入spring-boot- starter-security依赖启动器,MVC Security 安全管理功能就会自动生效,其默认的安全配置是在SecurityAutoConfiguration和UserDetailsServiceAutoConfiguration中实现的。…

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

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

Python中的正则表达式是什么,如何使用正则表达式?

正则表达式是一种强大的文本模式匹配工具,它提供了一种灵活的方法来查找、替换和提取文本中特定模式的内容。Python中使用内置的re模块来处理正则表达式。 下面是使用正则表达式的基本步骤: 导入re模块:在使用正则表达式之前,首…

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程序,而且也可用于开发非…

safari浏览器连调手机控制台闪退

仅仅对mac电脑 1、尝试清楚所有Safari缓存 打开Safari浏览器。 单击菜单栏中的Safari并打开“首选项” 选择“隐私”选项卡 单击管理网站数据 单击“全部删除”,然后单击下一个对话框中的“立即删除”进行确认2、清理系统缓存 :在 Finder 中&#xff…

【Linux】查看指定端口的UDP、TCP是否收到数据【2023.07.24】

简介 场景是终端上报数据给服务端,会有前端进行展示。通过wireshark看到终端给服务端发送数据了,但是UDP无法确定服务端是否正确收到,于是需要在Linux执行一些命令查看是否收到数据。 命令 这个命令会抓取发往或从端口12222的UDP数据报文。…

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

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

Golang中的协程(上)

Golang中的协程 1. 协程是什么?2. 为什么存在协程?3. 协程要怎么做?4. 协程会怎样?5. 协程的案例讲解6. 主线程和协程的执行顺序7. 主死从随的现象8. 如何开启多个协程 在Golang中,协程(Coroutine&#xff…

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

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

HDFS文件系统中,Fsimage和Edits

一、概念 Fsimage镜像文件:元数据的一个持久化检查点,包含Hadoop文件系统中的所有目录和文件元数据信息,但不包含文件块位置的信息。文件块位置信息只存储在内存中,是在DataNode加入集群的时候,NameNode询问DataNode得…

React.memo高阶组件

1、概念 React.memo 为高阶组件。 如果你的组件在相同 props 的情况下渲染相同的结果,那么你可以通过将其包装在 React.memo 中调用,以此通过记忆组件渲染结果的方式来提高组件的性能表现。这意味着在这种情况下,React 将跳过渲染组件的操作并…

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

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

Python亨元模式介绍、使用

一、Python亨元模式介绍 概念: 享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少创建对象的数量,以提高应用程序的性能。享元模式通过共享尽可能多的数据来减少内存使用。 功能: 享元模式的主要…

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

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