Langchain-Chatchat 简介
Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型与 Langchain 应用框架实现的开源项目,支持检索增强生成 (RAG) 的大模型知识库。该项目旨在建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。依托于支持的开源 LLM 与 Embedding 模型,可实现全部使用开源模型进行离线私有部署,同时也支持 OpenAI GPT API 的调用。
实现原理
本项目全流程使用开源模型来实现本地知识库问答应用。最新版本中通过使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。
数据处理流程主要包括文档解析、文本切片、向量化存储及检索生成。用户无需涉及微调训练过程,但可利用微调或训练对本项目效果进行优化。
部署要求
软件要求:
- 操作系统:Linux Ubuntu 22.04.5 kernel version 6.7(其他系统可能出现兼容性问题)。
- Python 版本:>= 3.8 (< 3.12),推荐 == 3.11.7。
- CUDA 版本:>= 12.1,推荐 == 12.1。
硬件要求: 若要在 GPU 运行本地模型的 FP16 版本以保证稳定连续对话,建议配置如下:
- 7B 模型 (如 ChatGLM3-6B & LLaMA-7B-Chat):最低显存 14GB,推荐显卡 RTX 4080。
- 14B 模型 (如 Qwen-14B-Chat):最低显存 30GB,推荐显卡 V100。
- 34B 模型 (如 Yi-34B-Chat):最低显存 69GB,推荐显卡 A100。
- 72B 模型 (如 Qwen-72B-Chat):最低显存 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 版本:3.11.7
部署方案
Docker 部署
开发组提供了一键部署的 docker 镜像文件。开发者可以在 AutoDL 平台和 Docker 平台一键部署。
docker run -d --gpus all -p 80:8501 isafetech/chatchat:0.2.10
# 或国内镜像源
docker run -d --gpus all -p 80:8501 ccr.ccs.tencentyun.com/chatchat/chatchat:0.2.10
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.10
该版本镜像大小约 50.1GB,基于 nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04。内置并默认启用 Embedding 模型 bge-large-zh-v1.5 和 ChatGLM3-6B。请确保已在 Linux 发行版上安装了 NVIDIA 驱动程序及 NVIDIA Container Toolkit。
本地部署方案
- 安装 python 环境
# 创建 conda 环境
$ conda create -n env_name python=3.8
$ conda activate env_name
# 更新 pip
$ pip3 install --upgrade pip


