Skip to content

Commit 68e6654

Browse files
committed
[llm] update docs
1 parent 3ff625b commit 68e6654

1 file changed

Lines changed: 60 additions & 29 deletions

File tree

llm/docs/FastDeploy_usage_tutorial.md

Lines changed: 60 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,51 @@
22
## 目录
33

44
- [部署环境准备](#部署环境准备)
5+
- [基础环境](#基础环境)
56
- [准备部署镜像](#准备部署镜像)
67
- [准备模型](#准备模型)
78
- [创建容器](#创建容器)
8-
- [基于dockerfile创建自己的镜像](#基于dockerfile创建自己的镜像)
99
- [启动服务](#启动服务)
1010
- [配置参数](#配置参数)
11-
- [启动FastDeploy](#启动FastDeploy)
11+
- [启动服务](#启动服务)
1212
- [服务状态查询](#服务状态查询)
1313
- [服务测试](#服务测试)
1414
- [Python 客户端](#Python-客户端)
1515
- [HTTP调用](#HTTP调用)
1616
- [返回示例](#返回示例)
17+
- [基于dockerfile创建自己的镜像](#基于dockerfile创建自己的镜像)
1718
- [模型配置参数介绍](#模型配置参数介绍)
1819
- [请求参数介绍](#请求参数介绍)
1920

2021
## 部署环境准备
2122

23+
### 基础环境
24+
目前 FastDeploy 仅支持在 Linux 系统下部署,部署之前请确保系统有正确的 GPU 环境。
25+
26+
- 安装 docker
27+
请参考 [Install Docker Engine](https://docs.docker.com/engine/install/) 选择对应的 Linux 平台安装 docker 环境。
28+
29+
- 安装 NVIDIA Container Toolkit
30+
请参考 [Installing the NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-the-nvidia-container-toolkit) 了解并安装 NVIDIA Container Toolkit。
31+
32+
NVIDIA Container Toolkit 安装成功后,参考 [Running a Sample Workload with Docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/sample-workload.html#running-a-sample-workload-with-docker) 测试 NVIDIA Container Toolkit 是否可以正常使用。
33+
2234
### 准备部署镜像
2335

24-
为了方便部署,我们提供了cuda12.3的镜像,可以直接拉取镜像,或者使用dockerfile[构建自定义镜像](#基于dockerfile创建自己的镜像)
36+
为了方便部署,我们提供了 cuda12.3 的镜像,可以直接拉取镜像,或者使用dockerfile[构建自定义镜像](#基于dockerfile创建自己的镜像)
2537
```
26-
docker pull registry.baidubce.com/paddlepaddle/fastdeploy:llm-serving-cuda123-cudnn9-v1.0
38+
docker pull registry.baidubce.com/paddlepaddle/fastdeploy:llm-serving-cuda123-cudnn9-v1.2
2739
```
2840

2941
### 准备模型
3042

31-
模型放在对应文件夹下,以 `/home/workspace/models_dir` 为例
43+
FastDeploy 为 PaddleNLP 静态图模型提供了高效的部署方案,模型静态图导出方案请参考:[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)[Mixtral](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/predict/mixtral.md) ...
44+
导出后的模型放在任意文件夹下,以 `/home/workspace/models_dir` 为例
45+
3246
```
3347
cd /home/workspace/models_dir
3448
35-
# 模型内目录结构需要整理成特定格式,如下是单卡部署的模型目录结构
49+
# 导出的模型目录结构格式如下所示,理论上无缝支持 PaddleNLP 导出静态图模型,无需修改模型目录结构
3650
# /opt/output/Serving/models
3751
# ├── config.json # 模型配置文件
3852
# ├── xxxx.model # 词表模型文件
@@ -46,33 +60,23 @@ cd /home/workspace/models_dir
4660

4761
### 创建容器
4862

63+
将模型目录挂载到容器中,默认模型挂载地址为 `/models/`,服务启动时可通过 `MODEL_DIR` 环境变量自定义挂载地址。
4964
```
5065
docker run --gpus all \
5166
--name fastdeploy_serving \
5267
--privileged \
5368
--cap-add=SYS_PTRACE \
5469
--network=host \
55-
--shm-size=10G \
56-
-v /home/workspace/models_dir:/fastdeploy/models/ \
57-
-dit registry.baidubce.com/paddlepaddle/fastdeploy:llm-serving-cuda123-cudnn9-v1.0 bash
70+
--shm-size=5G \
71+
-v /home/workspace/models_dir:/models/ \
72+
-dit registry.baidubce.com/paddlepaddle/fastdeploy:llm-serving-cuda123-cudnn9-v1.2 bash
5873
5974
# 进入容器,检查GPU环境和模型挂载是否正常
6075
docker exec -it fastdeploy_serving /bin/bash
6176
nvidia-smi
62-
ls /fastdeploy/models/
63-
```
64-
65-
## 基于dockerfile创建自己的镜像
66-
67-
```
68-
git clone https://github.com/PaddlePaddle/FastDeploy.git
69-
cd FastDeploy/llm
70-
71-
docker build --network=host -f ./dockerfiles/Dockerfile_serving_cuda123_cudnn9 -t llm-serving-cu123-self .
77+
ls /models/
7278
```
7379

74-
创建自己的镜像后,可以基于该镜像[创建容器](#创建容器)
75-
7680
## 启动服务
7781

7882
### 配置参数
@@ -118,7 +122,7 @@ export PUSH_MODE_HTTP_WORKERS="1" # HTTP服务进程数,在 PUSH_MODE_HTTP_POR
118122

119123
更多请求参数请参考[模型配置参数介绍](#模型配置参数介绍)
120124

121-
### 启动FastDeploy
125+
### 启动服务
122126

123127
```
124128
cd /opt/output/Serving
@@ -171,14 +175,30 @@ import requests
171175
172176
url = f"http://127.0.0.1:{PUSH_MODE_HTTP_PORT}/v1/chat/completions"
173177
req_id = str(uuid.uuid1())
174-
data = {
175-
"text": "Hello, how are you?",
176-
"req_id": req_id,
177-
"max_dec_len": 64,
178-
"stream": True,
179-
}
178+
data_single = {
179+
"text": "Hello, how are you?",
180+
"req_id": req_id,
181+
"max_dec_len": 64,
182+
"stream": True,
183+
}
180184
# 逐token返回
181-
res = requests.post(url, json=data, stream=True)
185+
res = requests.post(url, json=data_single, stream=True)
186+
for line in res.iter_lines():
187+
print(json.loads(line))
188+
189+
# 多轮对话
190+
data_multi = {
191+
messages=[
192+
{"role": "user", "content": "Hello, who are you"},
193+
{"role": "system", "content": "I'm a helpful AI assistant."},
194+
{"role": "user", "content": "List 3 countries and their capitals."},
195+
],
196+
"req_id": req_id,
197+
"max_dec_len": 64,
198+
"stream": True,
199+
}
200+
# 逐token返回
201+
res = requests.post(url, json=data_multi, stream=True)
182202
for line in res.iter_lines():
183203
print(json.loads(line))
184204
```
@@ -268,6 +288,17 @@ for chunk in response:
268288
print("\n")
269289
```
270290

291+
## 基于dockerfile创建自己的镜像
292+
293+
为了方便用户构建自定义服务,我们提供了基于dockerfile创建自己的镜像的脚本。
294+
```
295+
git clone https://github.com/PaddlePaddle/FastDeploy.git
296+
cd FastDeploy/llm
297+
298+
docker build --network=host -f ./dockerfiles/Dockerfile_serving_cuda123_cudnn9 -t llm-serving-cu123-self .
299+
```
300+
创建自己的镜像后,可以基于该镜像[创建容器](#创建容器)
301+
271302
## 模型配置参数介绍
272303

273304
| 字段名 | 字段类型 | 说明 | 是否必填 | 默认值 | 备注 |

0 commit comments

Comments
 (0)