ChatGLM2-6B在windows下的部署

2023-08-10 ChatGLM2-6B在windows下的部署

一、部署环境

1、Windows 10 专业版, 64位,版本号:22H2,内存:32GB

2、已安装CUDA11.3

3、已安装Anaconda3 64bit版本

4、有显卡NVIDIA GeForce RTX 3060 Laptop GPU

二、从huggingface下载chatglm2-6b模型文件

1、进入Anaconda Powershell Prompt

2、创建保存chatglm2-6b的huggingface模型的公共目录。之所以创建一个公共目录,是因为这个模型文件是可以被各种应用共用的。注意创建目录所在磁盘至少要有30GB的空间,因为chatglm2-6b的模型文件至少有23GB大小。
mkdir -p D:_ChatGPT_common_test

3、进入刚刚创建的目录,在这里下载chatglm2-6b的huggingface模型文件。注意下载前要提前打开fanqiang软件,否则下载无法成功。模型文件大概23GB,因此下载时间很长,需要耐心等待。下载过程中可能多次报“Recv failure: Connection was reset”错误,遇到错误就重新下载,直到成功为止。
cd D:_ChatGPT_common_test
git clone https://huggingface.co/THUDM/chatglm2-6b

4、下载时如果报如下错误:
Errors logged to ‘D:_ChatGPT_common_test\chatglm2-6b.git\lfs\logs\20230810T095928.1917897.log’.
Use git lfs logs last to view the log.
error: external filter ‘git-lfs filter-process’ failed
fatal: pytorch_model-00001-of-00007.bin: smudge filter lfs failed
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with ‘git status’
and retry with ‘git restore --source=HEAD 😕’
则用如下方式解决后重新下载:
git lfs clean --force

三、从github下载chatglm2-6b应用文件

1、进入Anaconda Powershell Prompt

2、创建一个目录,并进入该目录
mkdir -p D:_ChatGPT\langchain-chatglm_test
cd D:_ChatGPT\langchain-chatglm_test

3、在该目录下载chatglm2-6b应用文件,这个下载很快。
git clone https://github.com/THUDM/ChatGLM2-6B

四、创建虚拟环境并安装依赖包

1、进入Anaconda Powershell Prompt

2、创建虚拟环境
conda create -n langchain-chatglm_test python=3.10

3、进入虚拟环境
conda activate langchain-chatglm_test

4、进入chatglm2-6b应用文件所在目录
cd D:_ChatGPT\langchain-chatglm_test\ChatGLM2-6B

5、安装相关依赖
pip install -r requirements.txt
pip install transformers4.26.1
pip install torch
1.12.1+cu113  -f https://download.pytorch.org/whl/cu113/torch_stable.html

五、修改文件

1、进入D:_ChatGPT\langchain-chatglm_test\ChatGLM2-6B目录,用编辑器打开web_demo.py文件。

2、修改如下两处的模型地址,用实际的huggingface模型下载地址取代"/mnt/workspace/chatglm2-6b",例如:

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()

改为

tokenizer = AutoTokenizer.from_pretrained("D:\_ChatGPT\_common\chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("D:\_ChatGPT\_common\chatglm2-6b", trust_remote_code=True).cuda()

3、由于显存可能不够,可采用模型量化方式缩小模型,修改如下:

model = AutoModel.from_pretrained("D:\_ChatGPT\_common\chatglm2-6b", trust_remote_code=True).quantize(8).cuda()

如果用INT8量化还不行,可以改为INT4量化。

4、将文件对应处修改为如下,使得本地可以访问

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

六、启动应用

1、进入Anaconda Powershell Prompt

2、进入虚拟环境
conda activate langchain-chatglm_test

3、进入chatglm2-6b应用文件所在目录
cd D:_ChatGPT\langchain-chatglm_test\ChatGLM2-6B

4、启动应用。注意启动应用前要关闭fanqiang,否则可以启动,但运行时报错。
python web_demo.py

七、报错及处理

1、报错:AssertionError: Torch not compiled with CUDA enabled
处理:pip install torch==1.12.1+cu113  -f https://download.pytorch.org/whl/cu113/torch_stable.html

2、报错:ModuleNotFoundError: No module named ‘transformers_modules.chatglm2-6b’
处理:pip install transformers==4.26.1

八、参考文档

LangChain + ChatGLM2-6B 搭建个人专属知识库

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

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

相关文章

(leecode)设计循环队列

(温馨提示:这是博主最最喜欢的歌曲哦,没有之一) 题目: 题解: 思路: 方法一(数组): 方法二(链表): 题目: 设计你的循环队列实现。 循环队列是一种线性数…

MATLAB|信号处理的Simulink搭建与研究

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

PostgreSQL技术沙龙|PPT合集速来下载

新机遇,新态势,新发展 2023年8月5日,由中国开源软件推进联盟PG分会(中国PG分会)联合杭州云贝教育共同举办的“PostgreSQL技术沙龙杭州站”圆满举行。本次活动结合当下去O、国产化趋势,邀请社群技术专家围…

Vue3.2+TS在v-for的时候,循环处理时间,将其变成xx-xx-xx xx:xx:xx格式,最后教给大家自己封装一个时间hooks,直接复用

Vue3.2TS在v-for的时候&#xff0c;循环处理时间&#xff0c;将其变成xx-xx-xx xx:xx:xx格式 最后教给大家自己封装一个时间hooks&#xff0c;直接复用 1.没有封装&#xff0c;直接使用 <template><div><ul><li v-for"item,index in arr" :k…

深入理解Maven中的properties标签

系列文章目录 文章目录 系列文章目录前言一、properties标签的基本语法二、使用properties标签配置项目版本三、使用properties标签配置依赖版本四、使用properties标签配置插件版本五、使用properties标签实现条件判断六、使用外部properties文件总结前言 在Maven项目中,pro…

服务器数据恢复-断电导致ext4文件系统文件丢失的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器挂载一台存储设备&#xff0c;存储中划分一个Lun&#xff1b;服务器操作系统是Linux centos&#xff0c;EXT4文件系统。 服务器故障&分析&#xff1a; 意外断电导致服务器操作系统无法启动&#xff0c;系统在修复后可以正常启动&…

没有jsoup,rust怎么解析html呢?

在 Rust 中&#xff0c;你可以使用各种库来解析网页内容。一个常用的库是 reqwest &#xff0c;它提供了一个简单的方式来发送 HTTP 请求并获取网页内容。另外&#xff0c;你可以使用 scraper 或 select 等库来解析 HTML 或 XML 格式的网页内容。 下面是一个使用 reqwest 和 sc…

C语言函数详解(1)

目录 函数是什么 C语言中函数的分类 库函数 自定义函数 函数的参数 实际参数&#xff08;实参&#xff09; 形式参数&#xff08;形参&#xff09; 函数的调用 传值调用 传址调用 练习 函数的嵌套调用和链式访问 嵌套调用 链式访问 函数是什么 数学中我们常见到函…

揭秘浏览器键入URI到页面显示的过程: 浏览器键入URI,到页面显示,中间发生什么?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

TypeScript学习笔记

1.ts和js的区别 2. ts的优势 3. ts下载后报错解决方法 报错: PS C:\Users\\Desktop> tsc -v tsc : 无法加载文件 C:\Users\32173\AppData\Roaming\npm\tsc.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/ go.microsoft.com/fwlink/?…

【软件工程 | 模块耦合】什么是模块耦合及分类

概念 耦合(coupling)是对两个模块之间联接程度的一种度量。模块间的依赖程度越大&#xff0c;则其耦合程度也就越大&#xff1b; 反之&#xff0c;模块间的依赖程度越小&#xff0c;则其耦合程度也就越小。 很显然&#xff0c;为了使软件具有较好的可维护性和可修改性&#xf…

【LeetCode每日一题】——205.同构字符串

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 简单 三【题目编号】 205.同构字符串 四【题目描述】 给定两个字符…

nginx组件location匹配的规则和优先级

注意&#xff1a; location匹配的规则和优先级——重点 nginx常用的变量——要求掌握 rewrite重定向功能——掌握&#xff0c;理解 location 匹配的规则和和优先级 location匹配 常见的nginx正则表达式&#xff08;匹配的文件内容&#xff09; “.” &#xff1a; 任意单…

资深媒体人宋繁银加入《数据猿》任总编辑,全面负责公司整体内容工作

大数据产业创新服务媒体 ——聚焦数据 改变商业 2023年7月北京&#xff0c;《数据猿》宣布正式任命宋繁银为总编辑&#xff0c;全面负责公司整体内容工作。此次重要的人事任命标志着《数据猿》的发展迈上了一个新的台阶&#xff0c;对于《数据猿》团队而言&#xff0c;不仅是一…

Nginx反向代理出现错误 502 bad gateway 案例解析

场景描述 Nginx uwsgi flask Flask框架写的程序&#xff0c;使用uwsgi启动&#xff0c;Nginx作为反向代理调用Flask应用。 Flask应用有些操作时间比较长&#xff0c;会超过1分钟&#xff0c;在网页端访问会出现错误: 502 bad gateway。 Nginx的错误日志中会出现错误&#xf…

Python中的*args, **kwargs

在Python中&#xff0c;*args 和 **kwargs 是两种传递变量数量的参数到一个函数的方法。它们分别用于处理位置参数和关键字参数。 *args: *args 允许在函数定义中传入一个非固定数量的位置参数。这些参数在函数内部作为一个元组 (tuple) 访问。可以使用任何名称而不仅仅是args&…

最强Python自动化神器Playwright

相信玩过爬虫的朋友都知道selenium&#xff0c;一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规的操作了&#xff0c;爬虫爬不了的&#xff0c;就用自动化测试凑一凑。 虽然selenium有完备的文档&#xff0c;但也需要一定的学习成本&#xff0c;对于一个纯…

redis的事务和watch机制

这里写目录标题 第一章、redis事务和watch机制1.1&#xff09;redis事务&#xff0c;事务的三大命令语法&#xff1a;开启事务 multi语法&#xff1a;执行事务 exec语法&#xff1a;取消事务 discard 1.2&#xff09;redis事务的错误和回滚的情况1.3&#xff09;watch机制语法&…

VS Code安装使用教程

目录 1. VS Code是什么&#xff1f; 2. VS Code的下载和安装 下载&#xff1a; 安装&#xff1a; 2.2 环境的介绍 3. VS Code配置C/C开发环境 3.1 下载和配置MinGW-w64编译器套件 下载&#xff1a; 配置&#xff1a; 3.2 安装C/C插件 3.3 重启VSCode 4. 在VSCode上编…

06-3_Qt 5.9 C++开发指南_多窗体应用程序的设计(主要的窗体类及其用途;窗体类重要特性设置;多窗口应用程序设计)

文章目录 1. 主要的窗体类及其用途2. 窗体类重要特性的设置2.1 setAttribute()函数2.2 setWindowFlags()函数2.3 setWindowState()函数2.4 setWindowModality()函数2.5 setWindowOpacity()函数 3. 多窗口应用程序设计3.1 主窗口设计3.2 QFormDoc类的设计3.3 QFormDoc类的使用3.…