Update README.md
Browse files
README.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
| 24 |
## Usage
|
| 25 |
|
| 26 |
|
| 27 |
-
##
|
| 28 |
|
| 29 |
Install the dependencies required for the web demo
|
| 30 |
|
|
@@ -45,6 +45,79 @@ pip install 'lmdeploy[all]==v0.4.2'
|
|
| 45 |
由于默认安装的是 runtime 依赖包,但是我们这里还需要部署和量化,所以,这里选择 `[all]`。
|
| 46 |
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
```bash
|
| 49 |
pip install streamlit==1.24.0
|
| 50 |
```
|
|
|
|
| 24 |
## Usage
|
| 25 |
|
| 26 |
|
| 27 |
+
## DEMO
|
| 28 |
|
| 29 |
Install the dependencies required for the web demo
|
| 30 |
|
|
|
|
| 45 |
由于默认安装的是 runtime 依赖包,但是我们这里还需要部署和量化,所以,这里选择 `[all]`。
|
| 46 |
|
| 47 |
|
| 48 |
+
### Model convert
|
| 49 |
+
|
| 50 |
+
Convert lmdeploy TurboMind
|
| 51 |
+
|
| 52 |
+
```bash
|
| 53 |
+
# 转换模型(FastTransformer格式) TurboMind
|
| 54 |
+
lmdeploy convert internlm-chat-7b /path/to/internlm-chat-7b
|
| 55 |
+
```
|
| 56 |
+
|
| 57 |
+
这里我们使用我们训练好的提供的模型文件,就在用户根目录执行,如下所示。
|
| 58 |
+
|
| 59 |
+
```bash
|
| 60 |
+
lmdeploy convert internlm2-chat-7b /root/autodl-tmp/agri_intern/GouMang --tokenizer-path ./GouMang/tokenizer.json
|
| 61 |
+
```
|
| 62 |
+
|
| 63 |
+
执行完成后将会在当前目录生成一个 `workspace` 的文件夹。这里面包含的就是 TurboMind 和 Triton “模型推理”需要到的文件。
|
| 64 |
+
|
| 65 |
+
### Chat Locally
|
| 66 |
+
|
| 67 |
+
```bash
|
| 68 |
+
lmdeploy chat turbomind ./workspace
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
### 2.3 TurboMind推理+API服务
|
| 72 |
+
|
| 73 |
+
在上面的部分我们尝试了直接用命令行启动 Client,接下来我们尝试如何运用 lmdepoy 进行服务化。
|
| 74 |
+
|
| 75 |
+
”模型推理/服务“目前提供了 Turbomind 和 TritonServer 两种服务化方式。此时,Server 是 TurboMind 或 TritonServer,API Server 可以提供对外的 API 服务。我们推荐使用 TurboMind,TritonServer 使用方式详见《附录1》。
|
| 76 |
+
|
| 77 |
+
首先,通过下面命令启动服务。
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
```bash
|
| 81 |
+
# ApiServer+Turbomind api_server => AsyncEngine => TurboMind
|
| 82 |
+
lmdeploy serve api_server ./workspace \
|
| 83 |
+
--server_name 0.0.0.0 \
|
| 84 |
+
--server-port 23333 \
|
| 85 |
+
--instance_num 64 \
|
| 86 |
+
--tp 1
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
上面的参数中 `server_name` 和 `server_port` 分别表示服务地址和端口,`tp` 参数我们之前已经提到过了,表示 Tensor 并行。还剩下一个 `instance_num` 参数,表示实例数,可以理解成 Batch 的大小。执行后如下图所示。
|
| 90 |
+
|
| 91 |
+
### 2.4 网页 Demo 演示
|
| 92 |
+
|
| 93 |
+
这一部分主要是将 Gradio 作为前端 Demo 演示。在上一节的基础上,我们不执行后面的 `api_client` 或 `triton_client`,而是执行 `gradio`。
|
| 94 |
+
|
| 95 |
+
> 由于 Gradio 需要本地访问展示界面,因此也需要通过 ssh 将数据转发到本地。命令如下:
|
| 96 |
+
>
|
| 97 |
+
> ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p <你的 ssh 端口号>
|
| 98 |
+
|
| 99 |
+
#### 2.4.1 TurboMind 服务作为后端
|
| 100 |
+
|
| 101 |
+
API Server 的启动和上一节一样,这里直接启动作为前端的 Gradio。
|
| 102 |
+
|
| 103 |
+
```bash
|
| 104 |
+
# Gradio+ApiServer。必须先开启 Server,此时 Gradio 为 Client
|
| 105 |
+
lmdeploy serve gradio http://0.0.0.0:23333 --server-port 6006
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
+
#### 2.4.2 TurboMind 推理作为后端
|
| 109 |
+
|
| 110 |
+
当然,Gradio 也可以直接和 TurboMind 连接,如下所示。
|
| 111 |
+
|
| 112 |
+
```bash
|
| 113 |
+
# Gradio+Turbomind(local)
|
| 114 |
+
lmdeploy serve gradio ./workspace
|
| 115 |
+
```
|
| 116 |
+
|
| 117 |
+
可以直接启动 Gradio,此时没有 API Server,TurboMind 直接与 Gradio 通信。
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
|
| 121 |
```bash
|
| 122 |
pip install streamlit==1.24.0
|
| 123 |
```
|