基于 Langchain-Chatchat 快速构建本地 LLM 智能知识库
简介
Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现的开源项目。它支持检索增强生成(RAG)技术,旨在提供一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。该项目允许用户利用本地部署的开源模型进行私有化知识管理,确保数据安全性。
实现原理
本项目全流程使用开源模型来实现本地知识库问答应用。最新版本中通过使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。
整个流程的执行过程主要包括:
- 文档解析:将上传的文档(PDF, TXT, Word 等)进行清洗和分块。
- 向量化:使用 Embedding 模型将文本块转换为向量并存储到向量数据库(如 FAISS, Milvus)。
- 检索:根据用户问题在向量数据库中检索相关片段。
- 生成:将检索到的片段作为上下文输入给 LLM,生成最终回答。
需要注意的是,本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。
部署要求
软件要求
操作系统 推荐使用 Linux Ubuntu 22.04.5 kernel version 6.7。其他系统可能出现系统兼容性问题。
最低要求 该要求仅针对标准模式,轻量模式使用在线模型,不需要安装 torch 等库,也不需要显卡即可运行。
- Python 版本:>= 3.8 (不稳定), < 3.12
- CUDA 版本:>= 12.1
推荐要求 开发者在以下环境下进行代码调试,在该环境下能够避免最多环境问题。
- Python 版本:== 3.11.7
- CUDA 版本:== 12.1
硬件要求
如果想要顺利在 GPU 运行本地模型的 FP16 版本,你至少需要以下的硬件配置,来保证在我们框架下能够实现稳定连续对话:
- ChatGLM3-6B & LLaMA-7B-Chat 等 7B 模型:最低显存要求 14GB,推荐显卡 RTX 4080
- Qwen-14B-Chat 等 14B 模型:最低显存要求 30GB,推荐显卡 V100
- Yi-34B-Chat 等 34B 模型:最低显存要求 69GB,推荐显卡 A100
- Qwen-72B-Chat 等 72B 模型:最低显存要求 145GB,推荐显卡多卡 A100 以上
实际部署配置示例:
处理器:Intel® Core™ i9 processor 14900K
内存:256 GB DDR5
显卡组:NVIDIA RTX4090 X 1 / NVIDIA RTXA6000 X 1
硬盘:1 TB
操作系统:Ubuntu 22.04 LTS / Arch Linux, Linux Kernel 6.6.7
显卡驱动版本:545.29.06
Cuda 版本:12.3 Update 1
Python 版本:.


