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 [email protected] -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 |
```
|