1
- # 一键部署推理服务
1
+ # 大模型服务化部署-快速开始教程
2
2
3
- 本文档展示了如何使用docker一键跑通大模型推理。支持的模型可参考 [ 可一键跑通的模型列表 ] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md )
3
+ * 该部署工具是基于英伟达 Triton 框架专为服务器场景的大模型服务化部署而设计。它提供了支持 gRPC、HTTP 协议的服务接口,以及流式 Token 输出能力。底层推理引擎支持连续批处理、weight only int8、后训练量化(PTQ)等加速优化策略,为用户带来易用且高性能的部署体验。 *
4
4
5
- # 快速开始
6
- 基于预编译镜像部署,使用飞桨静态图模型部署。本节以a100/v100机器跑Llama 3推理为例。其他模型需按照要求导出为静态图模型格式。 更细致的模型推理、量化教程可以参考[ 大模型推理教程] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/inference.md ) :
5
+ ## 快速开始
7
6
8
- ## 一键启动推理服务(推荐 )
7
+ 基于预编译镜像部署, ** 使用飞桨静态图模型部署 ** 。本节以a100/v100机器跑 meta-llama/Meta-Llama-3-8B-Instruct bf16 推理为例子。其他模型需按照要求导出为 ** 静态图模型格式 ** 。更多模型请参考 [ LLaMA ] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/llama.md ) 、 [ Qwen ] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/qwen.md ) 、 [ DeepSeek ] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/deepseek.md ) 、 [ Mixtral ] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/mixtral.md ) , 更细致的模型推理、量化教程可以参考 [ 大模型推理教程 ] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/inference.md )
9
8
10
- 该方法仅支持[ 可一键跑通的模型列表] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md ) 中的模型进行一键启动推理服务
11
9
12
- 本节以 meta-llama/Meta-Llama-3-8B-Instruct bf16 推理为例子
10
+ ### 支持镜像
13
11
14
- > MODEL_PATH # 静态图模型存放路径。
15
- > model_name # 参考文档可一键跑通的模型列表
12
+ | cuda版本| 支持硬件架构| 镜像地址| 支持的典型设备|
13
+ | :------| :-:| :-:| :-:|
14
+ | 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 |
15
+ | 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 |
16
+
17
+ ### 静态图快速部署
16
18
17
- a100
19
+ 该方法仅支持[ 可一键跑通的模型列表] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md ) 中的模型进行一键启动推理服务。
20
+
21
+ 为了避免模型过大导致的下载时间过长问题,我们直接提供了自动下载的脚本(参考文档[ 服务化部署流程] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/deploy_usage_tutorial.md ) ),支持下载后再启动服务进行推理。进入容器后根据单机或多机模型进行静态图下载。
22
+
23
+ ` MODEL_PATH ` 为指定模型下载的存储路径,可自行指定
24
+ ` model_name ` 为指定下载模型名称,具体支持模型可查看[ 文档] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md )
25
+
26
+ Note:
27
+ 1 . 请保证 shm-size >= 5,不然可能会导致服务启动失败
28
+ 2 . 部署前请确认模型所需要的环境和硬件,请参考[ 文档] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md )
29
+
30
+
31
+ ** A100部署示例**
18
32
``` shell
19
33
export MODEL_PATH=${MODEL_PATH:- $PWD }
20
34
export model_name=${model_name:- " meta-llama/Meta-Llama-3-8B-Instruct-Append-Attn/bfloat16" }
@@ -23,7 +37,10 @@ docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap
23
37
-dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 /bin/bash \
24
38
-c -ex ' start_server $model_name && tail -f /dev/null'
25
39
```
26
- v100
40
+
41
+
42
+ ** V100部署示例**
43
+
27
44
``` shell
28
45
export MODEL_PATH=${MODEL_PATH:- $PWD }
29
46
export model_name=${model_name:- " meta-llama/Meta-Llama-3-8B-Instruct-Block-Attn/float16" }
@@ -33,12 +50,17 @@ docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap
33
50
-c -ex ' start_server $model_name && tail -f /dev/null'
34
51
```
35
52
36
-
37
- ## 用户手动导出
53
+ ### 服务测试
54
+ ```
55
+ curl 127.0.0.1:9965/v1/chat/completions \
56
+ -H'Content-Type: application/json' \
57
+ -d'{"text": "hello, llm"}'
58
+ ```
59
+ ### 用户手动导出静态图部署
38
60
39
61
不支持一键导出的模型暂时仅支持用户自行导出进行服务化推理,可参考以下内容进行推理服务化部署
40
62
41
- ### 模型导出
63
+ #### 模型导出
42
64
43
65
高性能部署需要先将动态图模型,导出为静态图推理格式,针对A100/V100机器的导出命令如下:
44
66
@@ -48,17 +70,17 @@ docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap
48
70
> --block_attn #支持sm<80的机器导出,如果append_attn无法推理可直接替换成block_attn
49
71
> [ sm对应GPU型号查询] ( https://developer.nvidia.com/cuda-gpus )
50
72
51
- a100
73
+ ** A100部署示例 **
52
74
``` shell
53
75
export MODEL_PATH=${MODEL_PATH:- $PWD }
54
76
docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
55
77
-v $MODEL_PATH /:/models -dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 /bin/bash \
56
78
-c -ex ' cd /opt/source/PaddleNLP &&export PYTHONPATH=$PWD:$PYTHONPATH && cd llm && python3 predict/export_model.py --model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct --output_path /models --dtype bfloat16 --inference_model 1 --append_attn 1' \
57
79
&& docker logs -f $( docker ps -lq)
58
80
```
59
- > ⚠️ v100由于硬件指令限制,仅支持float16
60
81
61
- v100
82
+ ** V100部署示例**
83
+ ⚠️ v100由于硬件指令限制,仅支持float16
62
84
``` shell
63
85
export MODEL_PATH=${MODEL_PATH:- $PWD }
64
86
docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
@@ -71,37 +93,17 @@ docker run -i --rm --gpus all --shm-size 32G --network=host --privileged --cap
71
93
具体的部署细节以及参数说明可以查看[ 文档] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/deploy_usage_tutorial.md )
72
94
73
95
74
- a100
75
96
``` shell
76
- export MODEL_PATH=${MODEL_PATH:- $PWD }
77
- docker run --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
78
- -v $MODEL_PATH /:/models -dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1 /bin/bash \
79
- -c -ex ' start_server && tail -f /dev/null'
80
- ```
97
+ export docker_img=ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda124-cudnn9-v2.1
81
98
82
- v100
83
- ``` shell
84
99
export MODEL_PATH=${MODEL_PATH:- $PWD }
85
100
docker run --gpus all --shm-size 32G --network=host --privileged --cap-add=SYS_PTRACE \
86
- -v $MODEL_PATH /:/models -dit ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddlenlp:llm-serving-cuda118-cudnn8-v2.1 /bin/bash \
101
+ -v $MODEL_PATH /:/models -dit $docker_img /bin/bash \
87
102
-c -ex ' start_server && tail -f /dev/null'
88
103
```
89
104
90
- ## 服务化测试
91
-
92
- > 观察到如下日志后可以
93
- > Init triton server success
94
- > 模型加载完成可以进行服务化测试
95
-
96
105
97
- ``` shell
98
- curl 127.0.0.1:9965/v1/chat/completions \
99
- -H' Content-Type: application/json' \
100
- -d' {"text": "hello, llm"}'
101
- ```
102
- ## 镜像
106
+ ** 更多文档**
103
107
104
- | cuda版本| 支持硬件架构| 镜像地址| 支持的典型设备|
105
- | :------| :-:| :-:| :-:|
106
- | 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 |
107
- | 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 |
108
+ - 部署工具详细说明请查看[ 服务化部署流程] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/deploy_usage_tutorial.md )
109
+ - 静态图支持模型请查看[ 静态图模型下载支持] ( https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/server/docs/static_models.md )
0 commit comments