赞
踩
前面三篇分别讲解了如何在本地环境部署大模型,那么今天简单的通过 Langchain-Chatchat 和 chatGLM3结合在本地环境搭建一套属于自己的大模型知识库。
往期llm系列文章
一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
该项目是一个可以实现 __完全本地化__推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。 本开源方案采用Apache License,可以免费商用,无需付费。
目前支持市面上主流的本地大语言模型和Embedding模型,支持开源的本地向量数据库。
本项目实现原理如下图所示,过程包括加载文件
-> 读取文本
-> 文本分割
-> 文本向量化
-> 问句向量化
-> 在文本向量中匹配出与问句向量最相似的 top k个
-> 匹配出的文本作为上下文和问题一起添加到 prompt中
-> 提交给 LLM生成回答
。
从文档处理角度来看,实现流程如下:
详细介绍参考官方README介绍。
conda create -n chatglm2 python=3.11
conda activate chatglm2
cd /Users/joseph.wang/llm
#拉取仓库
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
#进入目录
cd Langchain-Chatchat
#安装全部依赖
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt
# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
请注意,LangChain-Chatchat 0.2.x 系列是针对 Langchain 0.0.x 系列版本的,如果你使用的是 Langchain 0.1.x 系列版本,需要降级您的Langchain版本。
cd /Users/joseph.wang/llm/Langchain-Chatchat
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://huggingface.co/BAAI/bge-large-zh
按照下列方式初始化自己的知识库和简单的复制配置文件
python3 copy_config_example.py
python3 init_database.py --recreate-vs
cd /Users/joseph.wang/llm/Langchain-Chatchat/configs (chatglm2) joseph.wang@joseph ~/llm/Langchain-Chatchat/configs master ± tree -L 1 . ├── __init__.py ├── __pycache__ ├── basic_config.py ├── basic_config.py.example ├── kb_config.py ├── kb_config.py.example ├── model_config.py ├── model_config.py.example ├── prompt_config.py ├── prompt_config.py.example ├── server_config.py └── server_config.py.example
basic_config.py
、kb_config.py
、model_config.py
、prompt_config.py
、server_config.py
这些文件都有不同的作用,由于我是用Mac M1来运行的,因为需要修改model_config.py
这个文件。
编辑model_config.py
,只修改如下部分,其他地方不用修改,或者根据自己的模型需要修改即可。
... EMBEDDING_MODEL = "bge-large-zh" ... EMBEDDING_DEVICE = "mps" ... LLM_MODELS = ["chatglm3-6b"] #, "zhipu-api", "openai-api"] ... LLM_DEVICE = "mps" ... MODEL_PATH = { "embed_model": { ... "bge-large-zh": "/Users/joseph.wang/llm/Langchain-Chatchat/bge-large-zh", ... }, "llm_model": { "chatglm3-6b": "/Users/joseph.wang/llm/Langchain-Chatchat/chatglm3-6b", ... }, ... ...
cd /Users/joseph.wang/llm/Langchain-Chatchat
python3 startup.py -a
内存消耗(会比较消耗内存)
启动过程如下
虽然代码中有错误的部分,但是影响不大,运行起来没问题
创建知识库
填写知识库的信息和选择向量库的类型、模型(在model_config.py
中已经定义了)
选择本地的文档
后台导入数据过程
想数据存放到向量库中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。