update README.md

This commit is contained in:
imClumsyPanda 2023-08-14 19:11:01 +08:00
parent fc56b07f31
commit d2440d3640
1 changed files with 34 additions and 17 deletions

View File

@ -87,7 +87,7 @@ docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/ch
- [FreedomIntelligence/phoenix-inst-chat-7b](https://huggingface.co/FreedomIntelligence/phoenix-inst-chat-7b) - [FreedomIntelligence/phoenix-inst-chat-7b](https://huggingface.co/FreedomIntelligence/phoenix-inst-chat-7b)
- [h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b](https://huggingface.co/h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b) - [h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b](https://huggingface.co/h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b)
- [lcw99/polyglot-ko-12.8b-chang-instruct-chat](https://huggingface.co/lcw99/polyglot-ko-12.8b-chang-instruct-chat) - [lcw99/polyglot-ko-12.8b-chang-instruct-chat](https://huggingface.co/lcw99/polyglot-ko-12.8b-chang-instruct-chat)
- [lmsys/fastchat-t5-3b-v1.0](https://huggingface.co/lmsys/fastchat-t5) - [lmsys/FastChat-t5-3b-v1.0](https://huggingface.co/lmsys/FastChat-t5)
- [mosaicml/mpt-7b-chat](https://huggingface.co/mosaicml/mpt-7b-chat) - [mosaicml/mpt-7b-chat](https://huggingface.co/mosaicml/mpt-7b-chat)
- [Neutralzz/BiLLa-7B-SFT](https://huggingface.co/Neutralzz/BiLLa-7B-SFT) - [Neutralzz/BiLLa-7B-SFT](https://huggingface.co/Neutralzz/BiLLa-7B-SFT)
- [nomic-ai/gpt4all-13b-snoozy](https://huggingface.co/nomic-ai/gpt4all-13b-snoozy) - [nomic-ai/gpt4all-13b-snoozy](https://huggingface.co/nomic-ai/gpt4all-13b-snoozy)
@ -144,7 +144,7 @@ docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/ch
``` ```
- 该版本镜像大小 `33.9GB`,使用 `v0.2.0`,以 `nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04` 为基础镜像 - 该版本镜像大小 `33.9GB`,使用 `v0.2.0`,以 `nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04` 为基础镜像
- 该版本内置一个 `embedding` 模型:`m3e-large`,内置 `fastchat+chatglm2-6b-32k` - 该版本内置一个 `embedding` 模型:`m3e-large`,内置 `FastChat+chatglm2-6b-32k`
- 该版本目标为方便一键部署使用请确保您已经在Linux发行版上安装了NVIDIA驱动程序 - 该版本目标为方便一键部署使用请确保您已经在Linux发行版上安装了NVIDIA驱动程序
- 请注意您不需要在主机系统上安装CUDA工具包但需要安装 `NVIDIA Driver` 以及 `NVIDIA Container Toolkit`,请参考[安装指南](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) - 请注意您不需要在主机系统上安装CUDA工具包但需要安装 `NVIDIA Driver` 以及 `NVIDIA Container Toolkit`,请参考[安装指南](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
- 首次拉取和启动均需要一定时间,首次启动时请参照下图使用 `docker logs -f <container id>` 查看日志 - 首次拉取和启动均需要一定时间,首次启动时请参照下图使用 `docker logs -f <container id>` 查看日志
@ -190,7 +190,7 @@ $ git clone https://huggingface.co/moka-ai/m3e-base
llm_model_dict={ llm_model_dict={
"chatglm2-6b": { "chatglm2-6b": {
"local_model_path": "/Users/xxx/Downloads/chatglm2-6b", "local_model_path": "/Users/xxx/Downloads/chatglm2-6b",
"api_base_url": "http://localhost:8888/v1", # "name"修改为fastchat服务中的"api_base_url" "api_base_url": "http://localhost:8888/v1", # "name"修改为FastChat服务中的"api_base_url"
"api_key": "EMPTY" "api_key": "EMPTY"
}, },
} }
@ -223,11 +223,17 @@ embedding_model_dict = {
#### 5.1 启动 LLM 服务 #### 5.1 启动 LLM 服务
**!!!注意1**5.1.1-5.1.3三种方式只需选择一个即可。 如需使用开源模型进行本地部署,需首先启动 LLM 服务,启动方式分为三种:
**!!!注意2**如果启动在线的API服务如OPENAI的api接口则无需启动LLM服务即5.1小节的任何命令均无需启动。 - [基于多进程脚本 llm_api.py 启动 LLM 服务](README.md#5.1.1-基于多进程脚本-llm_api.py-启动-LLM-服务)
- [基于命令行脚本 llm_api_launch.py 启动 LLM 服务](README.md#5.1.2-基于命令行脚本-llm_api_launch.py-启动-LLM-服务)
- [LoRA 加载](README.md#5.1.3-LoRA-加载)
##### 5.1.1 基于多进程脚本llm_api.py启动LLM服务 三种方式只需选择一个即可,具体操作方式详见 5.1.1 - 5.1.3。
如果启动在线的API服务如 OPENAI 的 API 接口),则无需启动 LLM 服务,即 5.1 小节的任何命令均无需启动。
##### 5.1.1 基于多进程脚本 llm_api.py 启动 LLM 服务
在项目根目录下,执行 [server/llm_api.py](server/llm_api.py) 脚本启动 **LLM 模型**服务: 在项目根目录下,执行 [server/llm_api.py](server/llm_api.py) 脚本启动 **LLM 模型**服务:
@ -235,9 +241,19 @@ embedding_model_dict = {
$ python server/llm_api.py $ python server/llm_api.py
``` ```
项目支持多卡加载需在llm_api.py中修改create_model_worker_app函数中修改gpus=None,num_gpus=1,max_gpu_memory="20GiB",三个参数其中gpus控制使用的卡的ID如果“0,1";num_gpus控制使用的卡数;max_gpu_memory控制每个卡使用的显存容量。 项目支持多卡加载,需在 llm_api.py 中修改 create_model_worker_app 函数中,修改如下三个参数:
```python
gpus=None,
num_gpus=1,
max_gpu_memory="20GiB"
```
其中,`gpus` 控制使用的显卡的ID如果 "0,1";
##### 5.1.2 基于命令行脚本llm_api_launch.py启动LLM服务 `num_gpus` 控制使用的卡数;
`max_gpu_memory` 控制每个卡使用的显存容量。
##### 5.1.2 基于命令行脚本 llm_api_launch.py 启动 LLM 服务
在项目根目录下,执行 [server/llm_api_launch.py](server/llm_api.py) 脚本启动 **LLM 模型**服务: 在项目根目录下,执行 [server/llm_api_launch.py](server/llm_api.py) 脚本启动 **LLM 模型**服务:
@ -257,22 +273,22 @@ $ python server/llm_api_launch.py --model-path-addresss model1@host1@port1 model
$ python server/llm_api_launch.py --gpus 0,1 --num-gpus 2 --max-gpu-memory 10GiB $ python server/llm_api_launch.py --gpus 0,1 --num-gpus 2 --max-gpu-memory 10GiB
``` ```
以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令: 以如上方式启动LLM服务会以nohup命令在后台运行 FastChat 服务,如需停止服务,可以运行如下命令:
```shell ```shell
$ python server/llm_api_shutdown.py --serve all $ python server/llm_api_shutdown.py --serve all
``` ```
亦可单独停止一个 fastchat 服务模块,可选 [`all`, `controller`, `model_worker`, `openai_api_server`] 亦可单独停止一个 FastChat 服务模块,可选 [`all`, `controller`, `model_worker`, `openai_api_server`]
##### 5.1.3 lora加载 ##### 5.1.3 LoRA 加载
本项目基于fastchat加载LLM服务故需以fastchat加载lora路径即保证路径名称里必须有peft这个词配置文件的名字为adapter_config.jsonpeft路径下包含model.bin格式的lora权重。 本项目基于 FastChat 加载 LLM 服务,故需以 FastChat 加载 LoRA 路径,即保证路径名称里必须有 peft 这个词,配置文件的名字为 adapter_config.jsonpeft 路径下包含 model.bin 格式的 LoRA 权重。
示例代码如下: 示例代码如下:
```shell ```shell
PEFT_SHARE_BASE_WEIGHTS=true python3 -m fastchat.serve.multi_model_worker \ PEFT_SHARE_BASE_WEIGHTS=true python3 -m FastChat.serve.multi_model_worker \
--model-path /data/chris/peft-llama-dummy-1 \ --model-path /data/chris/peft-llama-dummy-1 \
--model-names peft-dummy-1 \ --model-names peft-dummy-1 \
--model-path /data/chris/peft-llama-dummy-2 \ --model-path /data/chris/peft-llama-dummy-2 \
@ -282,11 +298,11 @@ PEFT_SHARE_BASE_WEIGHTS=true python3 -m fastchat.serve.multi_model_worker \
--num-gpus 2 --num-gpus 2
``` ```
详见 https://github.com/lm-sys/FastChat/pull/1905#issuecomment-1627801216 详见 [FastChat 相关 PR](https://github.com/lm-sys/FastChat/pull/1905#issuecomment-1627801216)
#### 5.2 启动 API 服务 #### 5.2 启动 API 服务
本地部署情况下,!!!**启动LLM 服务后!!!**,再执行 [server/api.py](server/api.py) 脚本启动 **API** 服务; 本地部署情况下,按照 [5.1 节](README.md#5.1-启动-LLM-服务)**启动 LLM 服务后**,再执行 [server/api.py](server/api.py) 脚本启动 **API** 服务;
在线调用API服务的情况下直接执执行 [server/api.py](server/api.py) 脚本启动 **API** 服务; 在线调用API服务的情况下直接执执行 [server/api.py](server/api.py) 脚本启动 **API** 服务;
@ -304,7 +320,7 @@ $ python server/api.py
#### 5.3 启动 Web UI 服务 #### 5.3 启动 Web UI 服务
**!!!启动API服务后!!!**,执行 [webui.py](webui.py) 启动 **Web UI** 服务(默认使用端口 `8501` 按照 [5.2 节](README.md#5.2-启动-API-服务)**启动 API 服务后**,执行 [webui.py](webui.py) 启动 **Web UI** 服务(默认使用端口 `8501`
```shell ```shell
$ streamlit run webui.py $ streamlit run webui.py
@ -325,6 +341,7 @@ $ streamlit run webui.py --server.port 666
- Web UI 对话界面: - Web UI 对话界面:
![](img/webui_0813_0.png) ![](img/webui_0813_0.png)
- Web UI 知识库管理页面: - Web UI 知识库管理页面:
![](img/webui_0813_1.png) ![](img/webui_0813_1.png)
@ -360,7 +377,7 @@ $ streamlit run webui.py --server.port 666
- [X] DuckDuckGo 搜索 - [X] DuckDuckGo 搜索
- [ ] Agent 实现 - [ ] Agent 实现
- [X] LLM 模型接入 - [X] LLM 模型接入
- [X] 支持通过调用 [fastchat](https://github.com/lm-sys/FastChat) api 调用 llm - [X] 支持通过调用 [FastChat](https://github.com/lm-sys/FastChat) api 调用 llm
- [ ] 支持 ChatGLM API 等 LLM API 的接入 - [ ] 支持 ChatGLM API 等 LLM API 的接入
- [X] Embedding 模型接入 - [X] Embedding 模型接入
- [X] 支持调用 HuggingFace 中各开源 Emebdding 模型 - [X] 支持调用 HuggingFace 中各开源 Emebdding 模型