Langchian-ChatGLM安装部署
本文最后更新于:2023年8月15日 晚上
Langchian-ChatGLM安装部署
介绍
Langchain-ChatGLM项目是一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案.
本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

从文档处理角度来看,实现流程如下:

部署要求
- ChatGLM-6B模型
| 量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(高效参数微调) |
|---|---|---|
| FP16(无量化) | 13 GB | 14 GB |
| INT8 | 8 GB | 9 GB |
| INT4 | 6 GB | 7 GB |
Embedding
本项目中默认选用的 Embedding 模型 GanymedeNil/text2vec-large-chinese 约占用显存 3GB,也可修改为在 CPU 中运行。
部署步骤
环境检查
1 | |
项目依赖
1 | |
下载本地模型
作者在QA中提供了模型的百度云盘地址,方便国内下载
- ernie-3.0-base-zh.zip 链接: https://pan.baidu.com/s/1CIvKnD3qzE-orFouA8qvNQ?pwd=4wih
- ernie-3.0-nano-zh.zip 链接: https://pan.baidu.com/s/1Fh8fgzVdavf5P1omAJJ-Zw?pwd=q6s5
- text2vec-large-chinese.zip 链接: https://pan.baidu.com/s/1sMyPzBIXdEzHygftEoyBuA?pwd=4xs7
- chatglm-6b-int4-qe.zip 链接: https://pan.baidu.com/s/1DDKMOMHtNZccOOBGWIOYww?pwd=22ji
- chatglm-6b-int4.zip 链接: https://pan.baidu.com/s/1pvZ6pMzovjhkA6uPcRLuJA?pwd=3gjd
- chatglm-6b.zip 链接: https://pan.baidu.com/s/1B-MpsVVs1GHhteVBetaquw?pwd=djay
这里下载到linux服务器推荐使用百度网盘linux客户端bypy,需先将模型文件保存到百度网盘的/我的应用数据/bypy目录下,具体的bypy登录流程见bypy文档
1 | |
配置本地模型路径
修改config/model_config.py文件
1 | |
启动项目
gradio webui启动
1 | |
使用本地的向量模型会导致警告,这个不需要处理
1WARNING 2023-06-12 23:29:00,381-1d: No sentence-transformers model found with name /root/workspace/models/text2vec-large-chinese. Creating a new one with MEAN pooling.
启动后访问7860端口即可,如果需要调整端口,需要调整webui.py文件中的端口
1 | |
api启动
1 | |
前端项目启动
需安装nodejs版本>=18.15.0
1 | |
Langchian-ChatGLM安装部署
http://example.com/2023/06/17/NLP/llm/Langchian-ChatGLM安装部署/