Skip to content

Commit 9ce8c6f

Browse files
ltd0924luotingdan
andauthored
[Doc] 完善文档,更新示例模型 (#10085)
* [Doc] 完善文档,更新示例模型 * [Doc] 完善文档,更新示例模型 * [Doc] 完善文档,更新示例模型 * fix bug --------- Co-authored-by: luotingdan <luotingdan@baidu.com>
1 parent 9c2011e commit 9ce8c6f

File tree

4 files changed

+58
-27
lines changed

4 files changed

+58
-27
lines changed

llm/README.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -468,20 +468,16 @@ else:
468468

469469
该部署工具是基于英伟达 Triton 框架专为服务器场景的大模型服务化部署而设计。它提供了支持 gRPC、HTTP 协议的服务接口,以及流式 Token 输出能力。底层推理引擎支持连续批处理、weight only int8、后训练量化(PTQ)等加速优化策略,为用户带来易用且高性能的部署体验。
470470

471-
基于预编译镜像部署,本节以 Meta-Llama-3-8B-Instruct-A8W8C8 为例,更细致的模型推理、量化教程可以参考[大模型推理教程](./docs/predict/inference.md)
471+
基于预编译镜像部署,本节以 DeepSeek-R1-Distill-Llama-8B(weight_only_int8) 为例,自动下载静态图进行部署,具体支持模型可查看[文档](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md),更细致的模型推理、量化教程可以参考[大模型推理教程](./docs/predict/inference.md)
472472

473473
```shell
474-
# 下载模型
475-
wget https://paddle-qa.bj.bcebos.com/inference_model/Meta-Llama-3-8B-Instruct-A8W8C8.tar
476-
mkdir Llama-3-8B-A8W8C8 && tar -xf Meta-Llama-3-8B-Instruct-A8W8C8.tar -C Llama-3-8B-A8W8C8
477474

478-
# 挂载模型文件
479-
export MODEL_PATH=${PWD}/Llama-3-8B-A8W8C8
480-
481-
docker run --gpus all --shm-size 5G --network=host --privileged --cap-add=SYS_PTRACE \
482-
-v ${MODEL_PATH}:/models/ \
483-
-dit registry.baidubce.com/paddlepaddle/fastdeploy:llm-serving-cuda123-cudnn9-v1.2 \
484-
bash -c 'export USE_CACHE_KV_INT8=1 && cd /opt/output/Serving && bash start_server.sh; exec bash'
475+
export MODEL_PATH=${MODEL_PATH:-$PWD}
476+
export model_name=${model_name:-"deepseek-ai/DeepSeek-R1-Distill-Llama-8B/weight_only_int8"}
477+
docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
478+
-v $MODEL_PATH:/models -e "model_name=${model_name}" \
479+
-dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 /bin/bash \
480+
-c -ex 'start_server $model_name && tail -f /dev/null'
485481
```
486482

487483
等待服务启动成功(服务初次启动大概需要40s),可以通过以下命令测试:
@@ -494,6 +490,7 @@ curl 127.0.0.1:9965/v1/chat/completions \
494490

495491
Note:
496492
1. 请保证 shm-size >= 5,不然可能会导致服务启动失败
493+
2. 部署前请确认模型所需要的环境和硬件,请参考[文档](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md)
497494

498495
更多模型请参考[LLaMA](./docs/predict/llama.md)[Qwen](./docs/predict/qwen.md)[DeepSeek](./docs/predict/deepseek.md)[Mixtral](./docs/predict/mixtral.md)
499496
更多关于该部署工具的使用方法,请查看[服务化部署流程](./server/docs/deploy_usage_tutorial.md)

llm/server/docs/deploy_usage_tutorial.md

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,29 @@
33

44
*该部署工具是基于英伟达 Triton 框架专为服务器场景的大模型服务化部署而设计。它提供了支持 gRPC、HTTP 协议的服务接口,以及流式 Token 输出能力。底层推理引擎支持连续批处理、weight only int8、后训练量化(PTQ)等加速优化策略,为用户带来易用且高性能的部署体验。*
55

6+
## 静态图快速部署
7+
8+
该方法仅支持[可一键跑通的模型列表](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md)中的模型进行一键启动推理服务。
9+
10+
为了避免模型过大导致的下载时间过长问题,我们直接提供了自动下载的[脚本](#静态图下载),支持下载后再启动服务进行推理。进入容器后根据单机或多机模型进行静态图下载。
11+
12+
`MODEL_PATH` 为指定模型下载的存储路径,可自行指定
13+
`model_name` 为指定下载模型名称,具体支持模型可查看[文档](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md)
14+
15+
Note:
16+
1. 请保证 shm-size >= 5,不然可能会导致服务启动失败
17+
2. 部署前请确认模型所需要的环境和硬件,请参考[文档](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md)
18+
19+
**A100部署示例**
20+
```shell
21+
export MODEL_PATH=${MODEL_PATH:-$PWD}
22+
export model_name=${model_name:-"deepseek-ai/DeepSeek-R1-Distill-Llama-8B/weight_only_int8"}
23+
docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
24+
-v $MODEL_PATH:/models -e "model_name=${model_name}" \
25+
-dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 /bin/bash \
26+
-c -ex 'start_server $model_name && tail -f /dev/null'
27+
```
28+
629

730
## 部署环境准备
831

@@ -19,10 +42,14 @@
1942

2043
### 准备部署镜像
2144

22-
为了方便部署,我们提供了 cuda12.4 与 cuda 11.8 的镜像,可以直接拉取镜像,或者使用我们提供的 `Dockerfile` [构建自定义镜像](#基于 dockerfile 创建自己的镜像)
23-
```
24-
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1
25-
```
45+
为了方便部署,我们提供了 cuda12.4 与 cuda 11.8 的镜像,可以直接拉取镜像,或者使用我们提供的 `Dockerfile` [构建自定义镜像](#基于-dockerfile-创建自己的镜像)
46+
47+
48+
|cuda版本| 支持硬件架构|镜像地址|支持的典型设备|
49+
|:------|:-:|:-:|:-:|
50+
| cuda11.8 | 70 75 80 86 |ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda118-cudnn8-v2.1 |V100,T4,A100,A30,A10 |
51+
| cuda12.4 | 80 86 89 90 |ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 |A100,A30,A10,L20,H20,H100 |
52+
2653

2754
### 准备模型
2855

@@ -45,7 +72,7 @@ cd /home/workspace/models_dir
4572

4673
#### 静态图下载
4774

48-
除了支持通过设置`model_name` 在启动时进行自动下载,服务提供脚本可以进行自行下载
75+
除了支持通过设置`model_name` 在启动时进行自动下载,服务提供脚本可以进行自行下载**部署时需指定环境变量`MODEL_DIR` 为模型下载存储路径**
4976

5077
脚本所在路径`/opt/output/download_model.py`
5178

@@ -170,28 +197,34 @@ export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
170197
更多请求参数请参考[模型配置参数介绍](#模型配置参数介绍)
171198

172199
### 启动服务
200+
针对模型部署我们提供两种方案:
201+
- 模型已保存在指定路径下进行部署
202+
- 静态图自动下载部署
203+
173204
#### 单机启动
205+
模型已保存在指定路径下进行部署
174206

175207
```shell
208+
export MODEL_DIR=${MODEL_DIR:-"/models"}
176209
start_server
177210

178211
# 重新启动服务前,需要停止服务,执行 stop_server
179212
```
180-
启动脚本位置: /opt/output/Serving
213+
静态图自动下载部署
214+
`model_name` 为指定下载模型名称,具体支持模型可查看[文档](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md)
215+
216+
```shell
217+
model_name="deepseek-ai/DeepSeek-R1-2nodes/weight_only_int8"
218+
start_server $model_name
219+
220+
# 重新启动服务前,需要停止服务,执行 stop_server
221+
```
181222
#### 多机启动
182223
##### 依次启动服务
183224
1. 启动 master node 主节点服务
184225
2. 依次启动其他节点的服务
185226

186-
**启动命令**
187-
188-
```
189-
start_server
190-
191-
# 重新启动服务前,需要停止服务
192-
193-
stop_server
194-
```
227+
启动命令与单机相同
195228

196229
##### mpi启动
197230
若使用mpi 进行启动需提前配置各机器的ssh 可以正常访问

llm/server/docs/general_model_inference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Note:
3131
**A100部署示例**
3232
```shell
3333
export MODEL_PATH=${MODEL_PATH:-$PWD}
34-
export model_name=${model_name:-"meta-llama/Meta-Llama-3-8B-Instruct-Append-Attn/bfloat16"}
34+
export model_name=${model_name:-"deepseek-ai/DeepSeek-R1-Distill-Llama-8B/weight_only_int8"}
3535
docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
3636
-v $MODEL_PATH:/models -e "model_name=${model_name}" \
3737
-dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 /bin/bash \

llm/server/server/server/engine/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ def print(self, file=None):
213213

214214
def _get_download_model(self, model_type="default"):
215215
env = os.environ
216+
model_name = env.get("model_name")
216217
# Define supported model patterns
217218
supported_patterns = [
218219
r".*Qwen.*",

0 commit comments

Comments
 (0)