背景信息

官方仓库 https://github.com/chatchat-space/Langchain-Chatchat

本次演示环境为 Windows 11 PRO 、RTX 4080 16GB、i7-13700KF

本次Langchain-Chatchat版本为 v0.2.10

先用 python --version 检查版本号,我是使用Python官网的Windows安装包安装的 Python 3.10.11,请勿安装最新版本,项目开发者用的是3.11.7

然后需要安装CUDA Toolkit,这个和平常的显卡驱动不是一个东西,为了兼容性,建议安装 CUDA 12.1版本,我安装的是CUDA Toolkit 12.1.0 版本,官方下载页面是 https://developer.nvidia.com/cuda-12-1-0-download-archive 这个东西是EXE的安装程序,按照提示操作即可。项目开发者用的也是12.1。

本次按照为联网安装,如果你的网络环境为中国特色墙中墙,请自行在命令行终端启用本次会话代理或者在网卡、路由器等通过TAP、网关级代理等方式实现。本次需要Git和pip环境,PIP可配置镜像源,优先考虑阿里源其次考虑腾讯源,我用的是腾讯源,有限速比较慢。你会遇到的几乎所有问题都是下载失败导致的。

在Powershell环境中设置代理的命令如下(仅对本次窗口有效果)

$env:http_proxy="http://127.0.0.1:10809"
$env:https_proxy="http://127.0.0.1:10809"

常见问题 FAQ

1,提示 | ERROR | stderr | AssertionError: Torch not compiled with CUDA enabled
没有CUDA环境或者你安装的PyTorch不支持CUDA,这个PyTorch必须是对应的特色版本,请用

pip uninstall torch torchvision torchaudio

进行卸载
Pytorch的pip安装必须用官网的界面配置出来拿到的指令跑 https://pytorch.org/get-started/locally/
我使用的安装命令是

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

2,提示 | ERROR | stderr | ERROR: [Errno 13] error while attempting to bind on address ('127.0.0.1', 20000): 以一种访问权限不允许的方式做了一个访问套接字的尝试。

默认端口被占用,需要在 Langchain-Chatchat\configs\server_config.py 修改端口

3,安装依赖 wavedrom 时报错 (setuptools_scm)

pip install setuptools_scm

然后重新安装依赖

4, 提示 ModuleNotFoundError: No module named 'pwd'
这个在Windows没有,是BUG,请降级:

pip install langchain-community==0.0.19

参考 https://github.com/chatchat-space/Langchain-Chatchat/issues/3040

正式操作

拉取仓库
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

下载模型
(也可以手动下载,但是不推荐,文件比较多,要一个个点)
(我看了下我的文件夹,2个加起来51GB,把隐藏的.git文件夹删除能省去一半)

git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://huggingface.co/BAAI/bge-large-zh

初始化知识库和配置文件(第二步CPU会起飞)

python copy_config_example.py
python init_database.py --recreate-vs

一键启动

python startup.py -a

然后在终端会问你要邮箱,后续不再需重复提供。然后打开对应端口的web界面就能用了

更多部署参考文档 Langchain-Chatchat/wiki/开发环境部署

启动参数

一键启动脚本 startup.py, 一键启动所有 Fastchat 服务、API 服务、WebUI 服务,示例代码:

python startup.py -a

并可使用 Ctrl + C 直接关闭所有运行服务。如果一次结束不了,可以多按几次。
可选参数包括 -a (或--all-webui), --all-api, --llm-api, -c (或--controller), --openai-api, -m (或--model-worker), --api, --webui,其中:
--all-webui 为一键启动 WebUI 所有依赖服务;
--all-api 为一键启动 API 所有依赖服务;
--llm-api 为一键启动 Fastchat 所有依赖的 LLM 服务;
--openai-api 为仅启动 FastChat 的 controller 和 openai-api-server 服务;
其他为单独服务启动选项。
若想指定非默认模型,需要用 --model-name 选项,示例:

python startup.py --all-webui --model-name Qwen-7B-Chat

更多信息可通过

python startup.py -h

查看。

硬件要求

对于系统来说,我的Windows11PRO是可以完全运行的,官方的环境用的是Ubuntu(含Docker)
但是请注意,GPU模式需要用GPU,普通的VPS没有可用的GPU只能CPU,用Vmware和HyperV应该也是不怎么兼容的。
根据官方文档的说明的FP16本地模型GPU运行要求如下(下面的显存要求是最低要求,还要考虑到历史记录等显存占用)
7B的模型,显存14GB以上,推荐显卡 NVIDIA RTX4080 16G及以上
14B级模型,显存30GB以上,推荐显卡 NVIDIA Tesla V100 32G及以上
39B级模型,显存69GB以上,推荐显卡 NVIDIA A100 80G及以上
72B级模型,显存145GB以上,只能多卡来叠加实现

官方给出了估算方式
FP16: 显存占用(GB) = 模型量级 x 2
Int4: 显存占用(GB) = 模型量级 x 0.75
Embedding 模型将会占用 1-2G 的显存,历史记录最多会占用 数GB 的显存
电脑的内存要求至少应该比模型运行的显存大,这个一般问题不大。

硬件推荐

在家用场景时,可原生7B模型中推荐使用的GPU如下
桌面端GPU
24G:RTX3090、RTX3090Ti、RTX4090、RTX4090D
16G:RTX4080S、RTX4080、RTX4070TiS、RTX4060Ti
移动端GPU
16G:RTX4090、RTX3080、RTX3080Ti
国产云服务器常见GPU
NVIDIA T4: 显存 16G
NVIDIA V100: 显存 16G/32G
NVIDIA P40: 显存 24G
NVIDIA A10: 显存 24G
其他GPU
显存 16G:RTX 2000 Ada、NVIDIA A2、RTX 4000 Ada Laptop
显存 20G:RTX 4000 Ada
显存 24G:RTX 4500 Ada、NVIDIA A30
显存 32G:RTX 5000 Ada、NVIDIA V100S
显存 48G:NVIDIA A40、NVIDIA L40、RTX A6000
显存 64G:NVIDIA A16
显存 80G:NVIDIA A100、NVIDIA H100

 

最后更新于 2024-02-24