Langchain-Chatchat搭建(GPU)
编辑Langchain-Chatchat搭建(GPU)
1.环境概况:
centos7.9
CUDA=11.7
Chatchat==0.2.10(截至24/3/4 最新master分支)
2.拉库
# 拉取仓库
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
cd Langchain-Chatchat
3.创建环境、安装依赖
# 本环境以conda为主
conda create -n chatchat python=3.11
# 激活环境
conda activate
# 优先安装CUDA为11.7版本的最新torch 本次查询 torch=2.0.1
# 参考地址:https://pytorch.org/get-started/previous-versions/
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
到此后需要先检查一系列requirements.txt中的依赖信息
安装依赖过程中,因项目推荐的torch版本为2.1.2,且CUDA版本推荐是>=12.1。但是由于部署环境CUDA版本仅仅只有11.7,因此需要对依赖进行一定的注释。
# 形如指明torch版本信息需要进行优先注释
torch==2.1.2
torchvision==0.16.2
torchaudio==2.1.2
# 其次应该注释某些依赖包 形如
xformers==0.0.23.post1
sentence_transformers==2.2.2
# 这类高版本的依赖包有些是强制绑定的需要torch=2.1.2版本或者以上的,因此也需要优先注释,后续通过搜索各个版本之间的兼容性,再做安装。
安装依赖:
# 安装全部依赖
pip install -r requirements.txt
pip install -r requirements_api.txt
pip install -r requirements_webui.txt
# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
因此在安装过程中,需要持续观察pip安装进度,如果遇到需要安装torch=2.1.2或者有nvidia的关键字出现12的需要也需要及时终止安装进程。
3.初始化知识库和配置文件
# 生成配置文件
python copy_config_example.py
# 初始化知识库 这边需要等待一会
python init_database.py --recreate-vs
初始化知识库的过程中应该先删除 knowledge_base/samples/content/llm/img 这个文件夹下的图片
以下原因:
1.还没安装paddlepaddle ocr来识别图片的依赖包
2.当前paddlepaddle与torch存在一定冲突
因此暂时先删除图片,后续如果有需要再做调整。
4.编辑配置文件
进入configs文件夹
cd configs
python startup.py -a
进入config文件夹
基础配置项 basic_config.py
该配置基负责记录日志的格式和储存路径,通常不需要修改。模型配置项 model_config.py
先在项目目录创建models文件夹,后续所有的模型文件都放在该文件夹内## 设置模型根目录 就是刚刚我们在项目目录创建的models文件夹 MODEL_ROOT_PATH = 'models' # 选用的 Embedding 名称 EMBEDDING_MODEL = "bge-large-zh-v1.5" # 根据需求选择EMBEDDING模型 # LLM模型 支持本地模型及在线api # list的第一个为调用接口默认选用的模型 LLM_MODELS = ["Qwen1.5-72B-Chat", "zhipu-api", "openai-api"] # 模型路径 # Langchain-Chatchat 为根目录 可以使用相对路径或绝对路径来确定模型的位置 (如果本地有模型的话) # 例子 MODEL_PATH = { "Qwen1.5-72B-Chat": "Qwen/Qwen1.5-72B-Chat", }
提示词配置项 prompt_config.py
提示词配置分为三个板块,分别对应三种聊天类型。llm_chat: 基础的对话提示词, 通常来说,直接是用户输入的内容,没有系统提示词。
knowledge_base_chat: 与知识库对话的提示词,在模板中,我们为开发者设计了一个系统提示词,开发者可以自行更改。
agent_chat: 与Agent对话的提示词,同样,我们为开发者设计了一个系统提示词,开发者可以自行更改。
prompt模板使用Jinja2语法,简单点就是用双大括号代替f-string的单大括号 请注意,本配置文件支持热加载,修改prompt模板后无需重启服务。
数据库配置 kb_config.py
服务和端口配置项 server_config.py
5.启动
单卡启动
python startup.py -a
多卡启动
编辑 server_config.py# 编辑FSCHAT_MODEL_WORKERS # 其中default key下的 "gpus": "4,5,6", # 更改成你服务器中你想使用的卡 "num_gpus": 3, # 使用的GPU的数量 "max_gpu_memory": "60GiB", # 每个GPU占用的最大显存 这个根据实际情况而定
一般服务器使用该命令就能多卡启动
python startup.py -a
如果以上命令多卡使用不了,请使用以下指令,使用环境变量而来
CUDA_VISIBLE_DEVICES=4,5,6 python startup.py -a
- 0
- 0
-
分享