Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Serving
提交
b526a195
S
Serving
项目概览
PaddlePaddle
/
Serving
接近 2 年 前同步成功
通知
186
Star
833
Fork
253
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
105
列表
看板
标记
里程碑
合并请求
10
Wiki
2
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Serving
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
105
Issue
105
列表
看板
标记
里程碑
合并请求
10
合并请求
10
Pages
分析
分析
仓库分析
DevOps
Wiki
2
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b526a195
编写于
3月 25, 2022
作者:
T
TeslaZhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update doc
上级
54190159
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
240 addition
and
67 deletion
+240
-67
doc/Offical_Docs/3-0_QuickStart_Int_CN.md
doc/Offical_Docs/3-0_QuickStart_Int_CN.md
+2
-0
doc/Offical_Docs/3-2_QuickStart_Pipeline_OCR_CN.md
doc/Offical_Docs/3-2_QuickStart_Pipeline_OCR_CN.md
+152
-27
doc/Offical_Docs/4-0_ModelZoo_CN.md
doc/Offical_Docs/4-0_ModelZoo_CN.md
+33
-33
doc/Offical_Docs/9-0_Kubernetes_CN.md
doc/Offical_Docs/9-0_Kubernetes_CN.md
+53
-7
未找到文件。
doc/Offical_Docs/3-0_QuickStart_Int_CN.md
浏览文件 @
b526a195
# 部署案例概述
doc/Offical_Docs/3-2_QuickStart_Pipeline_OCR_CN.md
浏览文件 @
b526a195
...
...
@@ -14,13 +14,13 @@ PaddleOCR 提供的 PP-OCR 系列模型覆盖轻量级服务端、轻量级移
| 中英文超轻量移动端模型 | 9.4M | ch_ppocr_mobile_v2.0_xx | 移动端|
| 中英文通用服务端模型 | 143.4M | ch_ppocr_server_v2.0_xx | 服务器端 |
## 服务化部署案例
本章节选用中英文超轻量模型 ch_PP-OCRv2_xx 制作部署案例,模型体积小,效果很好,属于性价比很高的选择。
## Python Pipeline 设计
Python Pipeline 框架使用 Python 语言开发,是一套端到端多模型组合服务编程框架,旨在降低编程门槛,提高资源使用率(尤其是GPU设备),提升整体服务的预估效率。详细设计参考
[
Python Pipeline 设计与使用
](
)
Paddle Serving 提供2种 OCR 的部署案例,分别是基于 Python Pipeline 和 C++ Serving 实现。 Python Pipeline 框架使用 Python 语言开发,具备更好的易用性。C++ Serving 框架使用 C++ 开发。本文介绍基于 Python Pipeline 的部署案例。
**Python Pipeline 部署案例**
## 部署案例
前提条件是你已完成
[
环境安装
](
)步骤,并已验证环境安装成功,此处不在赘述。
...
...
@@ -29,7 +29,11 @@ Paddle Serving 提供2种 OCR 的部署案例,分别是基于 Python Pipeline
git clone https://github.com/PaddlePaddle/Serving
```
#### 1.获取模型
按以下5个步骤操作即可实现 OCR 示例部署。
**一.获取模型**
本章节选用中英文超轻量模型 ch_PP-OCRv2_xx 制作部署案例,模型体积小,效果很好,属于性价比很高的选择。
为了节省大家的时间,已将预训练模型使用
[
保存模型服务化参数
](
)方法打包成压缩包,下载并解压即可使用。如你自训练的模型需经过保存模型服务化参数步骤才能服务化部署。
```
...
...
@@ -39,38 +43,149 @@ python3 -m paddle_serving_app.package --get_model ocr_det
tar -xzvf ocr_det.tar.gz
```
#### 2.下载测试数据集(可选)
提供1套测试图片集,或者使用自有数据集,
忽略此步骤。
**二.下载测试数据集(可选)**
第二步,下载测试图片集,如使用自有测试数据集,可
忽略此步骤。
```
wget --no-check-certificate https://paddle-serving.bj.bcebos.com/ocr/test_imgs.tar
tar xf test_imgs.tar
```
#### 3.修改 Config.yml 配置(可选)
由于配置项较多,每个选择已有详细中文说明,因此,仅重点介绍部分核心选项的使用。
-
dag: 表示有向无环图级别的选项,如图中 op 节点资源类型,推荐使用进程模型,即 False
-
tracer: 统计各个阶段耗时、channel堆积信息记录在 PipelineServingLogs/pipeline.tracer 文件中
-
op: 表示模型或处理函数,如此配置中定义了 det 和 rec 2个模型
-
concurrency: 是进程或线程的并发数,可实现单机多卡推理。
-
local_service_conf: 本地推理(非远端 RPC 推理),推荐使用 local_predictor,性能好。
-
model_config: 模型路径
-
fetch_list: 指定返回模型的某个 fetch var,注释(不填)此项时,为返回所有 fetch var。
-
device_type: 计算硬件类型
-
devices: 设备ID,可以设置多张卡,如"0, 1, 2"
-
thread_num: 为 CPU 推理时,数学计算线程数,开大可降低处理时长
-
ir_optim: IR 优化,开启 TensorRT 时,必须开启 ir_optim
**三.修改 Config.yml 配置(可选)**
第三步,通过修改配置文件设置服务、图、OP 级别属性。如果使用默认配置,此步骤可忽略。
由于配置项较多,仅重点介绍部分核心选项的使用,完整配置选项说明可参考
[
配置说明
](
)
```
#rpc端口, rpc_port和http_port不允许同时为空。当rpc_port为空且http_port不为空时,会自动将rpc_port设置为http_port+1
rpc_port: 18090
#http端口, rpc_port和http_port不允许同时为空。当rpc_port可用且http_port为空时,不自动生成http_port
http_port: 9999
#worker_num, 最大并发数。当build_dag_each_worker=True时, 框架会创建worker_num个进程,每个进程内构建grpcSever和DAG
##当build_dag_each_worker=False时,框架会设置主线程grpc线程池的max_workers=worker_num
worker_num: 20
#build_dag_each_worker, False,框架在进程内创建一条DAG;True,框架会每个进程内创建多个独立的DAG
build_dag_each_worker: false
#有向无环图级别的选项
dag:
#op资源类型, True, 为线程模型;False,为进程模型
is_thread_op: False
#重试次数
retry: 1
#使用性能分析, True,生成Timeline性能数据,对性能有一定影响;False为不使用
use_profile: false
# 统计各个阶段耗时、Channel在 PipelineServingLogs/pipeline.tracer
tracer:
#每次记录的间隔,单位:秒
interval_s: 10
#模型或可独立控制并发的处理函数级别选项
op:
det:
#并发数,is_thread_op=True时,为线程并发;否则为进程并发
concurrency: 6
#当op配置没有server_endpoints时,从local_service_conf读取本地服务配置
local_service_conf:
#client类型,包括brpc, grpc和local_predictor.local_predictor不启动Serving服务,进程内预测
client_type: local_predictor
#det模型路径
model_config: ocr_det_model
#Fetch结果列表,以client_config中fetch_var的alias_name为准
fetch_list: ["save_infer_model/scale_0.tmp_1"]
# device_type, 0=cpu, 1=gpu, 2=tensorRT, 3=arm cpu, 4=kunlun xpu
device_type: 0
#计算硬件ID,当devices为""或不写时为CPU预测;当devices为"0", "0,1,2"时为GPU预测,表示使用的GPU卡
devices: ""
#use_mkldnn
#use_mkldnn: True
#thread_num
thread_num: 2
#ir_optim
ir_optim: True
#开启tensorrt后,进行优化的子图包含的最少节点数
#min_subgraph_size: 13
rec:
#并发数,is_thread_op=True时,为线程并发;否则为进程并发
concurrency: 3
#超时时间, 单位ms
timeout: -1
#Serving交互重试次数,默认不重试
retry: 1
#当op配置没有server_endpoints时,从local_service_conf读取本地服务配置
local_service_conf:
#client类型,包括brpc, grpc和local_predictor。local_predictor不启动Serving服务,进程内预测
client_type: local_predictor
#rec模型路径
model_config: ocr_rec_model
#Fetch结果列表,以client_config中fetch_var的alias_name为准
fetch_list: ["save_infer_model/scale_0.tmp_1"]
#### 4. 多模型组合
每个 op (模型或函数) 处理和 图结构 定义在 web_service.py 程序中。
# device_type, 0=cpu, 1=gpu, 2=tensorRT, 3=arm cpu, 4=kunlun xpu
device_type: 0
#计算硬件ID,当devices为""或不写时为CPU预测;当devices为"0", "0,1,2"时为GPU预测,表示使用的GPU卡
devices: ""
#use_mkldnn,仅当 CPU 推理时使用
#use_mkldnn: True
#thread_num,为 CPU 推理时,数学计算线程数,开大可降低处理时长
thread_num: 2
#ir_optim,IR 优化,开启 TensorRT 时,必须开启 ir_optim
ir_optim: True
#开启tensorrt后,进行优化的子图包含的最少节点数
#min_subgraph_size: 3
```
# DetOp 继承于 Class Op 并重写前后处理
**四.代码与配置信息绑定 **
第四步,实现代码和配置文件 Config.yml 绑定,以及设置多模型组合关系。具体包括:
1.
重写模型前后处理:
每个 op (模型或函数) 处理和 图结构 定义在 web_service.py 程序中,本案例实现了
`DetOp`
和
`RecOp`
2个 OP
```
# DetOp 对应配置文件 Config.yml中 det op
class DetOp(Op):
def init_op(self):
def preprocess(self, input_dicts, data_id, log_id):
def postprocess(self, input_dicts, fetch_dict, data_id, log_id):
# 图结构由在 OcrService::get_pipeline_response 函数中定义,并通过 input_ops 参数设定 Op 关系。
# RecOp 对应配置文件 Config.yml中 rec op
class RecOp(Op):
def init_op(self):
def preprocess(self, input_dicts, data_id, log_id):
def postprocess(self, input_dicts, fetch_dict, data_id, log_id):
```
2.
构建多模型组合关系
继承父类
`WebService`
派生出
`OcrService`
类,通过重写
`get_pipeline_response()`
接口,实例化
`DetOp`
和
`RecOp`
,
`name`
字段与 config.yml 中 op 名称一致; input_ops 是前置 OP 列表实现 多模型组合的图结构。
```
class OcrService(WebService):
def get_pipeline_response(self, read_op):
det_op = DetOp(name="det", input_ops=[read_op])
...
...
@@ -78,18 +193,28 @@ class OcrService(WebService):
return rec_op
```
#### 5.启动服务
启动服务前,要确认 URL://{ip}:{port}/{name}/{method} 。本项目中 {name} 即是 web_service.py 中 OcrService name 参数 "ocr"。 {method} 默认为 "prediction"
3.
绑定代码与配置文件
通过构造函数
`OcrService(name="ocr")`
设置请求 URL 中 name 字段;通过
`prepare_pipeline_config()`
接口绑定配置文件
`config.yml`
;通过
`run_service()`
接口启动服务。
```
ocr_service = OcrService(name="ocr")
ocr_service.prepare_pipeline_config("config.yml")
ocr_service.run_service()
```
之后,启动服务和测试客户端请求
#### 5.启动服务与验证
运行程序
`web_service.py`
启动服务端
```
# Run Server
python3 web_service.py &>log.txt &
```
启动客户端前,要确认 URL://{ip}:{port}/{name}/{method} 。本项目中 {name} 即是 web_service.py 中 OcrService name 参数 "ocr"。 {method} 默认为 "prediction"
```
# Run Client
python3 pipeline_http_client.py
```
...
...
doc/Offical_Docs/4-0_ModelZoo_CN.md
浏览文件 @
b526a195
...
...
@@ -12,40 +12,40 @@ Paddle Serving 已实现7个类别,共计46个模型的服务化部署示例
完整模型部署示例请参阅下表:
| 模型 | 类型 | 示例使用的框架 | 下载 |
| --- | --- | --- | ---- |
| pp_shitu | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/pp_shitu
)
|
[
.tar.gz
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/serving/pp_shitu.tar.gz
)
|
| resnet_v2_50_imagenet | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/resnet_v2_50
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet_V2_50
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ImageClassification/resnet_v2_50_imagenet.tar.gz
)
| Pipeline Serving, C++ Serving|
|
场景|
模型 | 类型 | 示例使用的框架 | 下载 |
| --- | --- | --- | ---
| ---
- |
|
图像识别 |
pp_shitu | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/pp_shitu
)
|
[
.tar.gz
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/serving/pp_shitu.tar.gz
)
|
|
图像分类 |
resnet_v2_50_imagenet | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/resnet_v2_50
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet_V2_50
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ImageClassification/resnet_v2_50_imagenet.tar.gz
)
| Pipeline Serving, C++ Serving|
| mobilenet_v2_imagenet | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/mobilenet
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ImageClassification/mobilenet_v2_imagenet.tar.gz
)
|
| resnet50_vd | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/imagenet
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd.tar
)
|
| ResNet50_vd_KL | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd_KL
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd_KL.tar
)
|
| ResNet50_vd_FPGM | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd_FPGM
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd_FPGM.tar
)
|
| ResNet50_vd_PACT | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd_PACT
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd_PACT.tar
)
|
| ResNeXt101_vd_64x4d | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNeXt101_vd_64x4d
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNeXt101_vd_64x4d.tar
)
|
| DarkNet53 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/DarkNet53
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/DarkNet53.tar
)
|
| MobileNetV1 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/MobileNetV1
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/MobileNetV1.tar
)
|
| MobileNetV2 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/MobileNetV2
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/MobileNetV2.tar
)
|
| MobileNetV3_large_x1_0 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/MobileNetV3_large_x1_0
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/MobileNetV3_large_x1_0.tar
)
|
| HRNet_W18_C | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/HRNet_W18_C
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/HRNet_W18_C.tar
)
|
| ShuffleNetV2_x1_0 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ShuffleNetV2_x1_0
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ShuffleNetV2_x1_0.tar
)
|
| bert_chinese_L-12_H-768_A-12 | PaddleNLP |
[
C++ Serving
](
../examples/C++/PaddleNLP/bert
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleNLP/bert
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/SemanticModel/bert_chinese_L-12_H-768_A-12.tar.gz
)
|
| senta_bilstm | PaddleNLP |
[
C++ Serving
](
../examples/C++/PaddleNLP/senta
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/SentimentAnalysis/senta_bilstm.tar.gz
)
|C++ Serving|
| lac | PaddleNLP |
[
C++ Serving
](
../examples/C++/PaddleNLP/lac
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/LexicalAnalysis/lac.tar.gz
)
|
| transformer | PaddleNLP |
[
Pipeline Serving
](
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/examples/machine_translation/transformer/deploy/serving/README.md
)
|
[
model
](
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/machine_translation/transformer
)
|
| ELECTRA | PaddleNLP |
[
Pipeline Serving
](
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/examples/language_model/electra/deploy/serving/README.md
)
|
[
model
](
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/language_model/electra
)
|
| In-batch Negatives | PaddleNLP |
[
Pipeline Serving
](
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/neural_search/recall/in_batch_negative
)
|
[
model
](
https://bj.bcebos.com/v1/paddlenlp/models/inbatch_model.zip
)
|
| criteo_ctr | PaddleRec |
[
C++ Serving
](
../examples/C++/PaddleRec/criteo_ctr
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/criteo_ctr_example/criteo_ctr_demo_model.tar.gz
)
|
| criteo_ctr_with_cube | PaddleRec |
[
C++ Serving
](
../examples/C++/PaddleRec/criteo_ctr_with_cube
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/unittest/ctr_cube_unittest.tar.gz
)
|
| wide&deep | PaddleRec |
[
C++ Serving
](
https://github.com/PaddlePaddle/PaddleRec/blob/release/2.1.0/doc/serving.md
)
|
[
model
](
https://github.com/PaddlePaddle/PaddleRec/blob/release/2.1.0/models/rank/wide_deep/README.md
)
|
| blazeface | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/blazeface
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ObjectDetection/blazeface.tar.gz
)
|C++ Serving|
| cascade_mask_rcnn_r50_vd_fpn_ssld_2x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/cascade_rcnn
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/pddet_demo/cascade_mask_rcnn_r50_vd_fpn_ssld_2x_coco_serving.tar.gz
)
|
| yolov4 | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/yolov4
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ObjectDetection/yolov4.tar.gz
)
|C++ Serving|
| faster_rcnn_hrnetv2p_w18_1x | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/faster_rcnn_hrnetv2p_w18_1x
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/pddet_demo/faster_rcnn_hrnetv2p_w18_1x.tar.gz
)
|
| fcos_dcn_r50_fpn_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/fcos_dcn_r50_fpn_1x_coco
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/fcos_dcn_r50_fpn_1x_coco.tar
)
|
| ssd_vgg16_300_240e_voc | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/ssd_vgg16_300_240e_voc
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/ssd_vgg16_300_240e_voc.tar
)
|
| yolov3_darknet53_270e_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/yolov3_darknet53_270e_coco
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleDetection/yolov3
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/yolov3_darknet53_270e_coco.tar
)
|
| faster_rcnn_r50_fpn_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/faster_rcnn_r50_fpn_1x_coco
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleDetection/faster_rcnn
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/faster_rcnn_r50_fpn_1x_coco.tar
)
|
| ppyolo_r50vd_dcn_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/ppyolo_r50vd_dcn_1x_coco
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/ppyolo_r50vd_dcn_1x_coco.tar
)
|
|
图像分类 |
resnet50_vd | PaddleClas |
[
C++ Serving
](
../examples/C++/PaddleClas/imagenet
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd.tar
)
|
|
图像分类 |
ResNet50_vd_KL | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd_KL
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd_KL.tar
)
|
|
图像分类 |
ResNet50_vd_FPGM | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd_FPGM
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd_FPGM.tar
)
|
|
图像分类 |
ResNet50_vd_PACT | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNet50_vd_PACT
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNet50_vd_PACT.tar
)
|
|
图像分类 |
ResNeXt101_vd_64x4d | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ResNeXt101_vd_64x4d
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ResNeXt101_vd_64x4d.tar
)
|
|
图像分类 |
DarkNet53 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/DarkNet53
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/DarkNet53.tar
)
|
|
图像分类 |
MobileNetV1 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/MobileNetV1
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/MobileNetV1.tar
)
|
|
图像分类 |
MobileNetV2 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/MobileNetV2
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/MobileNetV2.tar
)
|
|
图像分类 |
MobileNetV3_large_x1_0 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/MobileNetV3_large_x1_0
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/MobileNetV3_large_x1_0.tar
)
|
|
图像生成 |
HRNet_W18_C | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/HRNet_W18_C
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/HRNet_W18_C.tar
)
|
|
图像分类 |
ShuffleNetV2_x1_0 | PaddleClas |
[
Pipeline Serving
](
../examples/Pipeline/PaddleClas/ShuffleNetV2_x1_0
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/model/ShuffleNetV2_x1_0.tar
)
|
|
文本生成 |
bert_chinese_L-12_H-768_A-12 | PaddleNLP |
[
C++ Serving
](
../examples/C++/PaddleNLP/bert
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleNLP/bert
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/SemanticModel/bert_chinese_L-12_H-768_A-12.tar.gz
)
|
|
情感分析 |
senta_bilstm | PaddleNLP |
[
C++ Serving
](
../examples/C++/PaddleNLP/senta
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/SentimentAnalysis/senta_bilstm.tar.gz
)
|C++ Serving|
|
词法分析 |
lac | PaddleNLP |
[
C++ Serving
](
../examples/C++/PaddleNLP/lac
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/text/LexicalAnalysis/lac.tar.gz
)
|
|
机器翻译 |
transformer | PaddleNLP |
[
Pipeline Serving
](
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/examples/machine_translation/transformer/deploy/serving/README.md
)
|
[
model
](
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/machine_translation/transformer
)
|
|
标点符号预测 |
ELECTRA | PaddleNLP |
[
Pipeline Serving
](
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/examples/language_model/electra/deploy/serving/README.md
)
|
[
model
](
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/language_model/electra
)
|
|
抽取文本向量|
In-batch Negatives | PaddleNLP |
[
Pipeline Serving
](
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/neural_search/recall/in_batch_negative
)
|
[
model
](
https://bj.bcebos.com/v1/paddlenlp/models/inbatch_model.zip
)
|
|
CTR预估 |
criteo_ctr | PaddleRec |
[
C++ Serving
](
../examples/C++/PaddleRec/criteo_ctr
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/criteo_ctr_example/criteo_ctr_demo_model.tar.gz
)
|
|
CTR预估 |
criteo_ctr_with_cube | PaddleRec |
[
C++ Serving
](
../examples/C++/PaddleRec/criteo_ctr_with_cube
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/unittest/ctr_cube_unittest.tar.gz
)
|
|
推荐 |
wide&deep | PaddleRec |
[
C++ Serving
](
https://github.com/PaddlePaddle/PaddleRec/blob/release/2.1.0/doc/serving.md
)
|
[
model
](
https://github.com/PaddlePaddle/PaddleRec/blob/release/2.1.0/models/rank/wide_deep/README.md
)
|
|
人脸识别|
blazeface | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/blazeface
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ObjectDetection/blazeface.tar.gz
)
|C++ Serving|
|
目标检测 |
cascade_mask_rcnn_r50_vd_fpn_ssld_2x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/cascade_rcnn
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/pddet_demo/cascade_mask_rcnn_r50_vd_fpn_ssld_2x_coco_serving.tar.gz
)
|
|
目标检测 |
yolov4 | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/yolov4
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/paddle_hub_models/image/ObjectDetection/yolov4.tar.gz
)
|C++ Serving|
|
关键点检测 |
faster_rcnn_hrnetv2p_w18_1x | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/faster_rcnn_hrnetv2p_w18_1x
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/pddet_demo/faster_rcnn_hrnetv2p_w18_1x.tar.gz
)
|
|
目标检测 |
fcos_dcn_r50_fpn_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/fcos_dcn_r50_fpn_1x_coco
)
|
[
.tar.gz
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/fcos_dcn_r50_fpn_1x_coco.tar
)
|
|
目标检测 |
ssd_vgg16_300_240e_voc | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/ssd_vgg16_300_240e_voc
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/ssd_vgg16_300_240e_voc.tar
)
|
|
目标检测 |
yolov3_darknet53_270e_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/yolov3_darknet53_270e_coco
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleDetection/yolov3
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/yolov3_darknet53_270e_coco.tar
)
|
|
目标检测 |
faster_rcnn_r50_fpn_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/faster_rcnn_r50_fpn_1x_coco
)
</br>
[
Pipeline Serving
](
../examples/Pipeline/PaddleDetection/faster_rcnn
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/faster_rcnn_r50_fpn_1x_coco.tar
)
|
|
目标检测 |
ppyolo_r50vd_dcn_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/ppyolo_r50vd_dcn_1x_coco
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/ppyolo_r50vd_dcn_1x_coco.tar
)
|
| ppyolo_mbv3_large_coco | PaddleDetection |
[
Pipeline Serving
](
../examples/Pipeline/PaddleDetection/ppyolo_mbv3
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/ppyolo_mbv3_large_coco.tar
)
|
| ttfnet_darknet53_1x_coco | PaddleDetection |
[
C++ Serving
](
../examples/C++/PaddleDetection/ttfnet_darknet53_1x_coco
)
|
[
.tar
](
https://paddle-serving.bj.bcebos.com/pddet_demo/ttfnet_darknet53_1x_coco.tar
)
|
| YOLOv3-DarkNet | PaddleDetection |
[
C++ Serving
](
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/deploy/serving
)
|
[
.pdparams
](
https://paddledet.bj.bcebos.com/models/yolov3_darknet53_270e_coco.pdparams
)
</br>
[
.yml
](
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/configs/yolov3/yolov3_darknet53_270e_coco.yml
)
|
...
...
doc/Offical_Docs/
2-4
_Kubernetes_CN.md
→
doc/Offical_Docs/
9-0
_Kubernetes_CN.md
浏览文件 @
b526a195
...
...
@@ -30,6 +30,25 @@ Paddle Serving 的 Kubernetes 集群部署方案设计如下图所示,用户
kubectl apply -f https://bit.ly/kong-ingress-dbless
```
**二. 安装 Kubernetes **
kubernetes 集群环境安装和启动步骤如下,并使用 kubectl 命令与通过它与 Kubernetes 进行交互和管理。
```
// close OS firewall
systemctl disable firewarlld
systemctl stop firewarlld
// install etcd & kubernetes
yum install -y etcd kubernetes
// start etcd & kubernetes
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
```
**二. 制作镜像**
...
...
@@ -67,7 +86,17 @@ docker commit pipeline_serving_demo registry.baidubce.com/paddlepaddle/serving:k
docker push registry.baidubce.com/paddlepaddle/serving:k8s_ocr_pipeline_0.8.3_post101
```
最终,你完成了业务镜像制作环节。
最终,你完成了业务镜像制作环节。通过拉取制作的镜像,创建Docker示例后,在
`/home`
路径下验证模型目录,通过以下命令验证 Wheel 包安装。
```
pip3.7 list | grep paddle
```
输出显示已安装3个 Serving Wheel 包和1个 Paddle Wheel 包。
```
paddle-serving-app 0.8.3
paddle-serving-client 0.8.3
paddle-serving-server-gpu 0.8.3.post101
paddlepaddle-gpu 2.2.2.post101
```
**三. 集群部署**
...
...
@@ -88,11 +117,27 @@ check k8s_serving.yaml and k8s_ingress.yaml please.
运行命令后,生成2个 yaml 文件,分别是 k8s_serving.yaml 和 k8s_ingress.yaml。执行以下命令启动 Kubernetes 集群 和 Ingress 网关。
```
kubectl
apply
-f k8s_serving.yaml
kubectl
apply
-f k8s_ingress.yaml
kubectl
create
-f k8s_serving.yaml
kubectl
create
-f k8s_ingress.yaml
```
最终通过输入以下命令检验集群部署状态:
Kubernetes 下常用命令
| 命令 | 说明 |
| --- | --- |
| kubectl create -f xxx.yaml | 使用 xxx.yml 创建资源对象 |
| kubectl apply -f xxx.yaml | 使用 xxx.yml 更新资源对象 |
| kubectl delete po mysql| 删除名为 mysql 的 pods |
| kubectl get all --all-namespace | 查询所有资源信息 |
| kubectl get po | 查询所有 pods |
| kubectl get namespace | 查询所有命名空间 |
| kubectl get rc | 查询所有|
| kubectl get services | 查询所有 services |
| kubectl get node | 查询所有 node 节点 |
| kubectl get deploy | 查询集群部署状态 |
按下面4个步骤查询集群状态并进入 Pod 容器:
1.
最终通过输入以下命令检验集群部署状态:
```
kubectl get deploy
...
...
@@ -104,7 +149,7 @@ NAME READY UP-TO-DATE AVAILABLE AGE
ocr 1/1 1 1 10m
```
查询全部 Pod 信息 运行命令:
2.
查询全部 Pod 信息 运行命令:
```
kubectl get pods
```
...
...
@@ -114,12 +159,13 @@ NAME READY STATUS RESTARTS AGE
ocr-c5bd77d49-mfh72 1/1 Running 0 10m
uci-5bc7d545f5-zfn65 1/1 Running 0 52d
```
进入 Pod container 运行命令:
3.
进入 Pod container 运行命令:
```
kubectl exec -ti ocr-c5bd77d49-mfh72 -n bash
```
查询集群服务状态:
4.
查询集群服务状态:
```
kubectl get service --all-namespaces
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录