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 需要大概 24G 显存,使用 Qwen-14b 需要 40G 左右显存。
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",
"ernie-base": "nghuyong/ernie-3.0-base-zh",
"text2vec-base": "shibing624/text2vec-base-chinese",
"text2vec": "GanymedeNil/text2vec-large-chinese",
"text2vec-paraphrase": "shibing624/text2vec-base-chinese-paraphrase",
"text2vec-sentence": "shibing624/text2vec-base-chinese-sentence",
"text2vec-multilingual": "shibing624/text2vec-base-multilingual",
"text2vec-bge-large-chinese": "shibing624/text2vec-bge-large-chinese",
"m3e-small": "moka-ai/m3e-small",
"m3e-base": "moka-ai/m3e-base",
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
}


