LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署

参考资料

1、LangChain + ChatGLM2-6B 搭建个人专属知识库中的LangChain + ChatGLM2-6B 构建知识库这一节:基本的逻辑和步骤是对的,但要根据Windows和现状做很多调整。

2、没有动过model_config.py中的“LORA_MODEL_PATH_BAICHUAN”这一项内容,却报错:对报错“LORA_MODEL_PATH_BAICHUAN”提供了重要解决思路,虽然还不是完全按文中的方式解决的。

3、[已解决ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: ‘e:\anaconda\install_r])(https://blog.csdn.net/yuan2019035055/article/details/127078460)

解决方案

一、下载源码

采用git clone方式一直不成功,建议直接到github上搜索langchain-chatglm,在https://github.com/chatchat-space/langchain-ChatGLM页面,点击“CODE”->点击“Download ZIP”,直接下载源码,然后将文件夹改为名LangChain-ChatGLM,放到D:\_ChatGPT\langchain-chatglm_test目录下:

二、安装依赖

1、进入Anaconda Powershell Prompt

2、进入虚拟环境

conda activate langchain-chatglm_test

3、进入目录

cd D:\_ChatGPT\langchain-chatglm_test\langchain-ChatGLM

4、安装依赖

pip install -r requirements.txt --user     
pip install peft
pip install timm
pip install scikit-image
pip install torch==1.13.1+cu116 torchvision torchaudio  -f  https://download.pytorch.org/whl/cu116/torch_stable.html

三、下载模型

3.1、下载chatglm2-6b模型

1、进入Anaconda Powershell Prompt

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

mkdir -p D:\_ChatGPT\_common
cd D:\_ChatGPT\_common

3、安装 git lfs

git lfs install

4、在这里下载chatglm2-6b的huggingface模型文件。

git clone https://huggingface.co/THUDM/chatglm2-6b

5、下载完成后,将模型文件的目录名改为chatglm2-6b,因为Windows下目录如果有减号,后续应用处理会出错。

6、如果之前已下载该模型,则不必重复下载。

3.2、下载text2vec模型

1、进入Anaconda Powershell Prompt,进入公共目录

cd D:\_ChatGPT\_common

2、安装 git lfs

git lfs install

3、在这里下载text2vec的huggingface模型文件。

git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese

4、下载完成后,将目录改为text2vev,因为Windows下目录如果有减号,后续应用处理会出错。

四、参数调整

4.1、model_config.py文件

1、进入configs目录,修改其下的model_config.py文件,
对embedding_model_dict的参数

embedding_model_dict = {..."text2vec": r"D:\_ChatGPT\_common\text2vec",...
}

修改llm_model_dict参数。

llm_model_dict = {..."chatglm-6b": {..."pretrained_model_name": r"D:\_ChatGPT\_common\chatglm2_6b","...},...
}

将LLM_MODEL的值做修改:

LLM_MODEL = "chatglm2-6b"

4.2、loader.py文件

1、进入modes\loader目录,修改loader.py文件

2、在if LORA_MODEL_PATH_BAICHUAN:前加一句LORA_MODEL_PATH_BAICHUAN = False,如下所示:

            if torch.cuda.is_available() and self.llm_device.lower().startswith("cuda"):# 根据当前设备GPU数量决定是否进行多卡部署num_gpus = torch.cuda.device_count()if num_gpus < 2 and self.device_map is None:# if LORA_MODEL_PATH_BAICHUAN is not None:LORA_MODEL_PATH_BAICHUAN = Falseif LORA_MODEL_PATH_BAICHUAN:

3、在每一个mode = XXX.from_pretrained(XXX)后面加上.quantize(8).cuda(),对模型进行量化,否则加载会报内存不够的错误。

五、启动

1、关闭fanqiang软件
2、运行如下命令

python .\webui.py

3、访问http://localhost:7860

六、上传文档进行问答

1、在http://localhost:7860界面,在请选择要加载的知识库,选择samples

2、向知识库中添加一个文件,点击上传文件并加载,等待几分钟以后,模型完成训练,即可针对上传的文件进行问答。

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

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

相关文章

【Docker】 使用Docker-Compose 搭建基于 WordPress 的博客网站

引 本文将使用流行的博客搭建工具 WordPress 搭建一个私人博客站点。部署过程中使用到了 Docker 、MySQL 。站点搭建完成后经行了发布文章的体验。 WordPress WordPress 是一个广泛使用的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;用于构建和管理网站、博客和…

LeetCode235. 二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 文章目录 [235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/)一、题目二、题解方法一&#xff1a;递归方法二&#xff1a;迭代 一、题目 给定一个二叉搜索树, 找到该树中两个指定…

故障011:dmap服务缺失libnsl.so修复

故障011&#xff1a;dmap服务缺失libnsl.so修复 1. 问题描述2. 解决方法2.1 初步分析2.2 动手实操2.2.1 模糊搜索大法2.2.2 僵桃代李大法 DM技术交流QQ群&#xff1a;940124259 1. 问题描述 今天遇二期XC环境&#xff0c;达梦DM 7.6的DmAPService备份辅助进程服务无法启动&a…

Python 函数

Built-in Functions — Python 3.11.4 documentation

C++基础语法——继承

1.继承是什么&#xff1f; 继承是一种面向对象编程的概念&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;从另一个类&#xff08;称为基类或父类&#xff09;继承属性和方法。继承使得子类能够使用基类已有的代码&#xff0c;并且可以在此基础上进行扩展或修…

CentOS系统环境搭建(十五)——CentOS安装Kibana

centos系统环境搭建专栏&#x1f517;点击跳转 关于Elasticsearch的安装请看CentOS系统环境搭建&#xff08;十二&#xff09;——CentOS7安装Elasticsearch。 CentOS安装Kibana 文章目录 CentOS安装Kibana1.下载2.上传3.解压4.修改kibana配置文件5.授予es用户权限6.kibana 后台…

win下qwidget全屏弹窗后其他窗口鼠标样式无法更新的问题

在win平台下&#xff0c;实现截取选桌面执行推理功能&#xff0c;用一个qwidget(j对象名为m_selectWidget)来显示选取范围的边框&#xff0c;但这个qwidget显示后&#xff0c;其他窗口在他下面可以接受鼠标相应的事件&#xff0c;但原来的鼠标形状功能失效&#xff08;mac正常&…

Linux的基本权限(文件,目录)

文章目录 前言一、Linux权限的概念二、Linux权限管理 1.文件访问者分类2.文件类型和访问类型3.文件访问权限的相关设置方法三、目录的权限四、权限的总结 前言 Linux下一切皆文件&#xff0c;指令的本质就是可执行文件&#xff0c;直接安装到了系统的某种路径下 一、Linux权限的…

jenkins使用

安装插件 maven publish over ssh publish over ssh 会将打包后的jar包&#xff0c;通过ssh推送到指定的服务器上&#xff0c;&#xff0c;在jenkins中设置&#xff0c;推送后脚本&#xff0c;实现自动部署jar包&#xff0c;&#xff0c; 装了这个插件之后&#xff0c;可以在项…

数据结构--拓扑排序

数据结构–拓扑排序 AOV⽹ A O V ⽹ \color{red}AOV⽹ AOV⽹(Activity On Vertex NetWork&#xff0c;⽤顶点表示活动的⽹)&#xff1a; ⽤ D A G 图 \color{red}DAG图 DAG图&#xff08;有向⽆环图&#xff09;表示⼀个⼯程。顶点表示活动&#xff0c;有向边 < V i , V j …

Eigen 的简单使用 与 轨迹拟合代码的理解

工作中遇到一个问题&#xff0c;发到hmi的车辆引导线为斜的&#xff0c;有一说一&#xff0c;仔细看下这段代码&#xff0c;发现用到了Eigen库用来多项式曲线拟合&#xff0c;线性回归&#xff0c;矩阵向量计算等。 #include <iostream> #include <vector> #inclu…

Kafka 集群搭建过程

前言 跟着尚硅谷海哥文档搭建的Kafka集群环境&#xff0c;在此记录一下&#xff0c;侵删 注意&#xff1a;博主在服务器上搭建环境的时候使用的是一个服务器&#xff0c;所以这篇博客可能会出现一些xsync分发到其他服务器时候的错误&#xff0c;如果你在搭建的过程中出现了错…

UE5.2程序发布及运行问题记录

发布后的程序默认是以全屏模式启动运行的&#xff0c;通过添加以下命令行参数&#xff0c;可实现程序的窗口模式运行&#xff1a; -ResX1280 -ResY720 -WINDOWED 发布后的程序&#xff0c;启动时&#xff0c;提示显卡驱动警告&#xff08;如图1所示&#xff09;&#xff0c;但是…

k8s认证详解 k8s证书详解 2023推荐

推荐阅读 https://www.yii666.com/blog/478731.html?actiononAll 在 Kube-apiserver 中提供了很多认证方式&#xff0c;其中最常用的就是 TLS 认证&#xff0c;当然也有 BootstrapToken&#xff0c;BasicAuth 认证等&#xff0c;只要有一个认证通过&#xff0c;那么 Kube-api…

电脑msvcr120.dll丢失怎么修复,msvcr120.dll怎么安装?

msvcr120.dll是Microsoft Visual C Redistributable的一部分&#xff0c;它是Windows操作系统中的一个动态链接库文件。这个文件包含了一些用于C编程的函数和资源&#xff0c;它们被许多应用程序用于提供特定的功能和服务。如果你在运行某个程序时遇到了缺少msvcr120.dll的错误…

小知识积累

1、使用JSON.parse(JSON.stringify()) 深拷贝时会出现的问题 var obj {a: "zs",b: undefined,c: Symbol("score"),d: null,e: function () {console.log("show");},};console.log(JSON.parse(JSON.stringify(obj)));很明显undefined、函数、sym…

Java进阶篇--数据结构

目录 一.数组&#xff08;Array&#xff09;&#xff1a; 1.1 特点&#xff1a; 1.2 基本操作&#xff1a; 1.3 使用数组的好处包括&#xff1a; 1.4 数组也有一些限制&#xff1a; 二.集合框架&#xff08;Collections Framework&#xff09;&#xff1a; 2.1 列表…

爬虫的代理IP池写哪里了?

亲爱的程序员小伙伴们&#xff0c;想要提高爬虫效率和稳定性&#xff0c;组建一个强大的代理IP池是非常重要的一步&#xff01;今天我就来和你分享一下&#xff0c;代理IP池到底应该写在哪里&#xff0c;以及如何打造一个令人瞩目的代理IP池&#xff01;准备好了吗&#xff1f;…

每天一道leetcode:934. 最短的桥(图论中等广度优先遍历)

今日份题目&#xff1a; 给你一个大小为 n x n 的二元矩阵 grid &#xff0c;其中 1 表示陆地&#xff0c;0 表示水域。 岛 是由四面相连的 1 形成的一个最大组&#xff0c;即不会与非组内的任何其他 1 相连。grid 中 恰好存在两座岛 。 你可以将任意数量的 0 变为 1 &#…

JVM——JDK 监控和故障处理工具总结

文章目录 JDK 命令行工具jps:查看所有 Java 进程jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数jmap:生成堆转储快照**jhat**: 分析 heapdump 文件**jstack** :生成虚拟机当前时刻的线程快照 JDK 可视化分析工具JConsole:Java 监视与管理控制台连接…