1.基础介绍
Langchain-Chatchat 是一种利用 LangChain 思想实现的基于本地知识库的问答应用,旨在建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。其核心流程包括加载文件、读取文本、文本分割、文本向量化、问句向量化、在文本向量中匹配出与问句向量最相似的 top k 个片段,将匹配出的文本作为上下文和问题一起添加到 Prompt 中,最后提交给 LLM 生成回答。
Qwen-7B(14B)是阿里云研发的通义千问大模型系列的 70(140)亿参数规模的模型。它是基于 Transformer 的大语言模型,在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。在此基础上,使用对齐机制打造了基于大语言模型的 AI 助手 Qwen-7(14)B-Chat。
接下来结合 Langchain-Chatchat 与 Qwen-7B(14B),一步步搭建属于自己的本地知识库。
2.前期准备
环境要求:Python 3.10+,torch 推荐使用 2.0 及以上版本。GPU 显存需求:使用 Qwen-7B 和 Qwen-14B-int4 需要大概 24GB 显存,使用 Qwen-14B 需要 40GB 左右显存。
3.环境搭建
拉取 Langchain-Chatchat 项目代码:
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
安装依赖:
pip install -r requirements.txt
pip install -r requirements_api.txt
pip install -r requirements_webui.txt
4.模型下载
模型主要分为两部分:LLM 模型和 Embedding 模型。 支持的 Embedding 模型列表如下(部分):
{
"ernie-tiny": "nghuyong/ernie-3.0-nano-zh",
"text2vec-base": "shibing624/text2vec-base-chinese",
"bge-large-zh-v1.5": "/root/autodl-tmp/bge-large-zh-v1.5",
"m3e-large": "moka-ai/m3e-large"
}
个人推荐使用 bge-large-zh-v1.5。
git clone https://www.modelscope.cn/Xorbits/bge-large-zh-v1.5.git
Langchain-Chatchat v0.28 版本增加了很多 LLM 模型的支持,包括 ChatGLM、Baichuan、Qwen 系列等。本次选用 Qwen-7B-Chat、Qwen-14B-Chat 及 Qwen-14B-Chat-Int4。注意 7B 和 14B-int4 大概需要预留 30GB 硬盘空间,14B 需要 50GB 硬盘空间。
git clone https://www.modelscope.cn/qwen/Qwen-7B-Chat.git
git clone https://www.modelscope.cn/qwen/Qwen-14B-Chat-Int4.git
git https://www.modelscope.cn/qwen/Qwen-14B-Chat.git


