赞
踩
读前须知:该项目不是大模型,只是为大模型提供一个集合和可交互的界面
更多详细内容请查看官方文档:Langchain-Chatchat-Wiki
该项目运行最佳坏境为
conda create -n Chat python=3.11.7
source activate Chat
pip3 install --upgrade pip
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
pip install -r requirements.txt
项目中是至少需要一个 LLM 模型和一个Embedding 模型:
具体支持模型请参考官方文档:Langchain-Chatchat支持列表
这里是参考官方文档下载的LLM 模型 THUDM/ChatGLM3-6B 与 Embedding 模型 BAAI/bge-large-zh,但是实际使用时可根据自己的需求进行模型下载
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b
$ git clone https://huggingface.co/BAAI/bge-large-zh
在Langchain-Chatchat/configs
目录下面找到model_config.py.example
修改其中的模型配置
#这里填入你存放Embedding和LLM模型的路径 MODEL_ROOT_PATH = "" # 选用的 Embedding 名称(修改成你使用的名称,这里使用的是bge-large-zh) EMBEDDING_MODEL = "bge-large-zh" # Embedding 模型运行设备。设为"auto"会自动检测,也可手动设定为"cuda","mps","cpu"其中之一。(这里优先使用gpu) EMBEDDING_DEVICE = "cuda" # 要运行的 LLM 名称,可以包括本地模型和在线模型。列表中本地模型将在启动项目时全部加载。 LLM_MODELS = ["chatglm3-6b", "zhipu-api", "openai-api"] # LLM 运行设备。设为"auto"会自动检测,也可手动设定为"cuda","mps","cpu"其中之一。(也建议改成gpu) LLM_DEVICE = "cuda" #根据需要填入api_key ONLINE_LLM_MODEL = { # 线上模型。请在server_config中为每个在线API设置不同的端口 ········ } MODEL_PATH = { "embed_model": { #路径改为你的Embedding模型的路径 "bge-large-zh": "../bge-large-zh", #其他模型根据需要修改路径 } "llm_model": { #路径改为你的llm模型的路径 "chatglm3-6b": "../chatglm3-6b", #其他模型根据需要修改路径 } }
python copy_config_example.py
第一次运行本项目
python init_database.py --recreate-vs
如果在最后一步时出现报错可以执行一下下面的代码测试以下知识库是否已经建立好了,如果在执行下面代码后没有出现报错则就时正常生成知识库
已经有创建过知识库
python init_database.py --create-tables
python startup.py -a
可选参数包括 -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
查看。
项目支持多卡加载,需在 startup.py 中的 create_model_worker_app 函数中,修改如下三个参数:
gpus=None,
num_gpus= 1,
max_gpu_memory="20GiB"
其中,gpus
控制使用的显卡的ID,例如 “0,1”;
num_gpus
控制使用的卡数;
max_gpu_memory
控制每个卡使用的显存容量。
注1:server_config.py的FSCHAT_MODEL_WORKERS字典中也增加了相关配置,如有需要也可通过修改FSCHAT_MODEL_WORKERS字典中对应参数实现多卡加载,且需注意server_config.py的配置会覆盖create_model_worker_app 函数的配置。
注2:少数情况下,gpus参数会不生效,此时需要通过设置环境变量CUDA_VISIBLE_DEVICES来指定torch可见的gpu,示例代码:
CUDA_VISIBLE_DEVICES=0,1 python startup.py -a
.py的配置会覆盖create_model_worker_app 函数的配置。
注2:少数情况下,gpus参数会不生效,此时需要通过设置环境变量CUDA_VISIBLE_DEVICES来指定torch可见的gpu,示例代码:
CUDA_VISIBLE_DEVICES=0,1 python startup.py -a
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。