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 = False
                    if 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、向知识库中添加一个文件,点击上传文件并加载,等待几分钟以后,模型完成训练,即可针对上传的文件进行问答。

相关推荐
java1234_小锋2 小时前
Transformer 大语言模型(LLM)基石 - 输出层(Output Layer)详解以及算法实现
深度学习·语言模型·transformer
南山安2 小时前
LangChain 入门实战:从零搭建 AI 应用工作流
javascript·面试·langchain
用户377833043492 小时前
( 教学 )Agent 构建 Memory(提示词对话存储)1. ConversationBufferMemory(对话缓存存储, 版本>1.0和<1.0的区别
langchain·agent
后端小张2 小时前
【AI 学习】LangChain框架深度解析:从核心组件到企业级应用实战
java·人工智能·学习·langchain·tensorflow·gpt-3·ai编程
前端程序猿之路3 小时前
简易版AI知识助手项目 - 构建个人文档智能问答系统
前端·人工智能·python·ai·语言模型·deepseek·rag agent
LDG_AGI3 小时前
【推荐系统】深度学习训练框架(二十):Meta Device — 延迟初始化,零显存定义超大规模模型
人工智能·pytorch·分布式·深度学习·机器学习·语言模型
大模型真好玩3 小时前
LangGraph1.0速通指南(三)—— LangGraph1.0 自动邮件处理智能体实战
人工智能·langchain·agent
软件测试小仙女3 小时前
认真测试大语言模型(LLM)
软件测试·人工智能·测试工具·ai·语言模型·自然语言处理·llm
小陈phd3 小时前
大语言模型实战(六)——面向目标架构案例之FunctionCall技巧介绍
人工智能·语言模型·架构
会飞的小新4 小时前
从 LLM 到 ReACT Agent:推理与行动协同的智能体框架深度解析
人工智能·语言模型