From d2440d3640ff1b724cdd1f5eab724ad76bb0c0a2 Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Mon, 14 Aug 2023 19:11:01 +0800 Subject: [PATCH] update README.md --- README.md | 51 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 459518f..86059db 100644 --- a/README.md +++ b/README.md @@ -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) - [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) -- [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) - [Neutralzz/BiLLa-7B-SFT](https://huggingface.co/Neutralzz/BiLLa-7B-SFT) - [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` 为基础镜像 -- 该版本内置一个 `embedding` 模型:`m3e-large`,内置 `fastchat+chatglm2-6b-32k` +- 该版本内置一个 `embedding` 模型:`m3e-large`,内置 `FastChat+chatglm2-6b-32k` - 该版本目标为方便一键部署使用,请确保您已经在Linux发行版上安装了NVIDIA驱动程序 - 请注意,您不需要在主机系统上安装CUDA工具包,但需要安装 `NVIDIA Driver` 以及 `NVIDIA Container Toolkit`,请参考[安装指南](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) - 首次拉取和启动均需要一定时间,首次启动时请参照下图使用 `docker logs -f ` 查看日志 @@ -190,7 +190,7 @@ $ git clone https://huggingface.co/moka-ai/m3e-base llm_model_dict={ "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" }, } @@ -223,11 +223,17 @@ embedding_model_dict = { #### 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 模型**服务: @@ -235,9 +241,19 @@ embedding_model_dict = { $ 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 模型**服务: @@ -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 ``` -注:以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令: +注:以如上方式启动LLM服务会以nohup命令在后台运行 FastChat 服务,如需停止服务,可以运行如下命令: ```shell $ 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.json,peft路径下包含model.bin格式的lora权重。 +本项目基于 FastChat 加载 LLM 服务,故需以 FastChat 加载 LoRA 路径,即保证路径名称里必须有 peft 这个词,配置文件的名字为 adapter_config.json,peft 路径下包含 model.bin 格式的 LoRA 权重。 示例代码如下: ```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-names peft-dummy-1 \ --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 ``` -详见 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 服务 -本地部署情况下,!!!**启动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** 服务; @@ -304,7 +320,7 @@ $ python server/api.py #### 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 $ streamlit run webui.py @@ -325,6 +341,7 @@ $ streamlit run webui.py --server.port 666 - Web UI 对话界面: ![](img/webui_0813_0.png) + - Web UI 知识库管理页面: ![](img/webui_0813_1.png) @@ -360,7 +377,7 @@ $ streamlit run webui.py --server.port 666 - [X] DuckDuckGo 搜索 - [ ] Agent 实现 - [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 的接入 - [X] Embedding 模型接入 - [X] 支持调用 HuggingFace 中各开源 Emebdding 模型