README.md 9.2 KB
Newer Older
M
MRXLT 已提交
1 2
([简体中文](./README_CN.md)|English)

D
Dong Daxiang 已提交
3 4
<p align="center">
    <br>
5
<img src='doc/images/serving_logo.png' width = "600" height = "130">
D
Dong Daxiang 已提交
6 7
    <br>
<p>
8

D
Dong Daxiang 已提交
9 10
<p align="center">
    <br>
B
barrierye 已提交
11
    <a href="https://travis-ci.com/PaddlePaddle/Serving">
12 13 14 15 16 17 18 19
        <img alt="Build Status" src="https://img.shields.io/travis/com/PaddlePaddle/Serving/develop?style=flat-square">
        <img alt="Docs" src="https://img.shields.io/badge/docs-中文文档-brightgreen?style=flat-square">
        <img alt="Release" src="https://img.shields.io/badge/release-0.7.0-blue?style=flat-square">
        <img alt="Python" src="https://img.shields.io/badge/python-3.6+-blue?style=flat-square">
        <img alt="License" src="https://img.shields.io/github/license/PaddlePaddle/Serving?color=blue&style=flat-square">
        <img alt="Forks" src="https://img.shields.io/github/forks/PaddlePaddle/Serving?color=yellow&style=flat-square">
        <img alt="Issues" src="https://img.shields.io/github/issues/PaddlePaddle/Serving?color=yellow&style=flat-square">
        <img alt="Contributors" src="https://img.shields.io/github/contributors/PaddlePaddle/Serving?color=orange&style=flat-square">
T
TeslaZhao 已提交
20
        <img alt="Community" src="https://img.shields.io/badge/join-Wechat,QQ-orange?style=flat-square">
B
barrierye 已提交
21
    </a>
D
Dong Daxiang 已提交
22 23
    <br>
<p>
D
Dong Daxiang 已提交
24

25
***
W
wangjiawei04 已提交
26

T
TeslaZhao 已提交
27
The goal of Paddle Serving is to provide high-performance, flexible and easy-to-use industrial-grade online inference services for machine learning developers and enterprises.Paddle Serving supports multiple protocols such as RESTful, gRPC, bRPC, and provides inference solutions under a variety of hardware and multiple operating system environments, and many famous pre-trained model examples. The core features are as follows:
D
Dong Daxiang 已提交
28

W
wangjiawei04 已提交
29

30
- Integrate high-performance server-side inference engine paddle Inference and mobile-side engine paddle Lite. Models of other machine learning platforms (Caffe/TensorFlow/ONNX/PyTorch) can be migrated to paddle through [x2paddle](https://github.com/PaddlePaddle/X2Paddle).
T
TeslaZhao 已提交
31 32 33 34
- There are two frameworks, namely high-performance C++ Serving and high-easy-to-use Python pipeline. The C++ Serving is based on the bRPC network framework to create a high-throughput, low-latency inference service, and its performance indicators are ahead of competing products. The Python pipeline is based on the gRPC/gRPC-Gateway network framework and the Python language to build a highly easy-to-use and high-throughput inference service. How to choose which one please see [Techinical Selection](doc/Serving_Design_EN.md#21-design-selection).
- Support multiple [protocols](doc/C++_Serving/Inference_Protocols_CN.md) such as HTTP, gRPC, bRPC, and provide C++, Python, Java language SDK.
- Design and implement a high-performance inference service framework for asynchronous pipelines based on directed acyclic graph (DAG), with features such as multi-model combination, asynchronous scheduling, concurrent inference, dynamic batch, multi-card multi-stream inference, etc.
- Adapt to a variety of commonly used computing hardwares, such as x86 (Intel) CPU, ARM CPU, Nvidia GPU, Kunlun XPU, etc.; Integrate acceleration libraries of Intel MKLDNN and  Nvidia TensorRT, and low-precision and quantitative inference.
35 36 37 38
- Provide a model security deployment solution, including encryption model deployment, and authentication mechanism, HTTPs security gateway, which is used in practice.
- Support cloud deployment, provide a deployment case of Baidu Cloud Intelligent Cloud kubernetes cluster.
- Provide more than 40 classic pre-model deployment examples, such as PaddleOCR, PaddleClas, PaddleDetection, PaddleSeg, PaddleNLP, PaddleRec and other suites, and more models continue to expand.
- Supports distributed deployment of large-scale sparse parameter index models, with features such as multiple tables, multiple shards, multiple copies, local high-frequency cache, etc., and can be deployed on a single machine or clouds.
W
wangjiawei04 已提交
39 40


41 42
<h2 align="center">Tutorial</h2>

J
Jiawei Wang 已提交
43

44
- AIStudio tutorial(Chinese) : [Paddle Serving服务化部署框架](https://www.paddlepaddle.org.cn/tutorials/projectdetail/1975340)
W
wangjiawei04 已提交
45

46
- Video tutorial(Chinese) : [深度学习服务化部署-以互联网应用为例](https://aistudio.baidu.com/aistudio/course/introduce/19084)
D
Dong Daxiang 已提交
47
<p align="center">
48
    <img src="doc/images/demo.gif" width="700">
D
Dong Daxiang 已提交
49
</p>
D
Dong Daxiang 已提交
50

51 52 53 54 55 56 57
<h2 align="center">Documentation</h2>


> Set up

This chapter guides you through the installation and deployment steps. It is strongly recommended to use Docker to deploy Paddle Serving. If you do not use docker, ignore the docker-related steps. Paddle Serving can be deployed on cloud servers using Kubernetes, running on many commonly hardwares such as ARM CPU, Intel CPU, Nvidia GPU, Kunlun XPU. The latest development kit of the develop branch is compiled and generated every day for developers to use.

T
TeslaZhao 已提交
58
- [Install Paddle Serving using docker(stable wheel packages)](doc/Install_EN.md)
59
- [Build Paddle Serving from Source with Docker](doc/Compile_EN.md)
60
- [Deploy Paddle Serving on Kubernetes](doc/Run_On_Kubernetes_CN.md)
T
TeslaZhao 已提交
61
- [Deploy Paddle Serving with Security gateway(Chinese)](doc/Serving_Auth_Docker_CN.md)
62
- [Deploy Paddle Serving on more hardwares](doc/Run_On_XPU_EN.md)
T
TeslaZhao 已提交
63
- [Latest Wheel packages(not stable)](doc/Latest_Packages_CN.md)
D
Dong Daxiang 已提交
64

65
> Use
W
wangjiawei04 已提交
66

67
The first step is to call the model save interface to generate a model parameter configuration file (.prototxt), which will be used on the client and server. The second step, read the configuration and startup parameters and start the service. According to API documents and your case, the third step is to write client requests based on the SDK, and test the inference service.
W
wangjiawei04 已提交
68

69 70 71
- [Quick Start](doc/Quick_Start_EN.md)
- [Save a servable model](doc/Save_EN.md)
- [Description of configuration and startup parameters](doc/Serving_Configure_EN.md)
T
TeslaZhao 已提交
72 73 74 75 76
- [Guide for RESTful/gRPC/bRPC APIs(Chinese)](doc/C++_Serving/Introduction_CN.md#42-多语言多协议Client)
- [Infer on quantizative models](doc/Low_Precision_EN.md)
- [Data format of classic models(Chinese)](doc/Process_data_CN.md)
- [C++ Serving(Chinese)](doc/C++_Serving/Introduction_CN.md) 
  - [Protocols(Chinese)](doc/C++_Serving/Inference_Protocols_CN.md)
77 78 79 80 81 82
  - [Hot loading models](doc/C++_Serving/Hot_Loading_EN.md)
  - [A/B Test](doc/C++_Serving/ABTest_EN.md)
  - [Encryption](doc/C++_Serving/Encryption_EN.md)
  - [Analyze and optimize performance(Chinese)](doc/C++_Serving/Performance_Tuning_CN.md)
  - [Benchmark(Chinese)](doc/C++_Serving/Benchmark_CN.md)
- [Python Pipeline](doc/Python_Pipeline/Pipeline_Design_EN.md)
T
TeslaZhao 已提交
83
  - [Analyze and optimize performance](doc/Python_Pipeline/Performance_Tuning_EN.md)
84 85
  - [Benchmark(Chinese)](doc/Python_Pipeline/Benchmark_CN.md)
- Client SDK
T
TeslaZhao 已提交
86
  - [Python SDK(Chinese)](doc/C++_Serving/Introduction_CN.md#42-多语言多协议Client)
87
  - [JAVA SDK](doc/Java_SDK_EN.md)
T
TeslaZhao 已提交
88
  - [C++ SDK(Chinese)](doc/C++_Serving/Introduction_CN.md#42-多语言多协议Client)
89
- [Large-scale sparse parameter server](doc/Cube_Local_EN.md)
W
wangjiawei04 已提交
90

91
<br>
W
wangjiawei04 已提交
92

93
> Developers
D
Dong Daxiang 已提交
94

95 96
For Paddle Serving developers, we provide extended documents such as custom OP, level of detail(LOD) processing.
- [Custom Operators](doc/C++_Serving/OP_EN.md)
T
TeslaZhao 已提交
97
- [Processing LoD Data](doc/LOD_EN.md)
98
- [FAQ(Chinese)](doc/FAQ_CN.md)
W
wangjiawei04 已提交
99

100
<h2 align="center">Model Zoo</h2>
W
wangjiawei04 已提交
101

J
Jiawei Wang 已提交
102

103 104
Paddle Serving works closely with the Paddle model suite, and implements a large number of service deployment examples, including image classification, object detection, language and text recognition, Chinese part of speech, sentiment analysis, content recommendation and other types of examples,  for a total of 42 models.

105
<p align="center">
106 107 108 109 110

| PaddleOCR | PaddleDetection | PaddleClas | PaddleSeg | PaddleRec | Paddle NLP | 
| :----:  | :----: | :----: | :----: | :----: | :----: | 
| 8 | 12 | 13 | 2 | 3 | 4 | 

111
</p>
112 113 114

For more model examples, read [Model zoo](doc/Model_Zoo_EN.md)

T
TeslaZhao 已提交
115
<p align="center">
116 117
  <img src="https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/imgs_results/PP-OCRv2/PP-OCRv2-pic003.jpg?raw=true" width="345"/> 
  <img src="doc/images/detection.png" width="350">
T
TeslaZhao 已提交
118
</p>
W
fix doc  
wangjiawei04 已提交
119

D
Dong Daxiang 已提交
120

W
wangjiawei04 已提交
121
<h2 align="center">Community</h2>
D
Dong Daxiang 已提交
122

123 124 125
If you want to communicate with developers and other users? Welcome to join us, join the community through the following methods below.

### Wechat
126
- WeChat scavenging
T
TeslaZhao 已提交
127 128 129


<p align="center">
130
  <img src="doc/images/wechat_group_1.jpeg" width="250">
T
TeslaZhao 已提交
131
</p>
132 133

### QQ
T
TeslaZhao 已提交
134
- QQ Group(Group No.:697765514)
135

T
TeslaZhao 已提交
136
<p align="center">
137
  <img src="doc/images/qq_group_1.png" width="200">
T
TeslaZhao 已提交
138
</p>
D
Dong Daxiang 已提交
139

D
Dong Daxiang 已提交
140

141
> Contribution
D
Dong Daxiang 已提交
142

143
If you want to contribute code to Paddle Serving, please reference [Contribution Guidelines](doc/Contribute_EN.md)
144 145 146 147 148 149
- Thanks to [@loveululu](https://github.com/loveululu) for providing python API of Cube.
- Thanks to [@EtachGu](https://github.com/EtachGu) in updating run docker codes.
- Thanks to [@BeyondYourself](https://github.com/BeyondYourself) in complementing the gRPC tutorial, updating the FAQ doc and modifying the mdkir command
- Thanks to [@mcl-stone](https://github.com/mcl-stone) in updating faster_rcnn benchmark
- Thanks to [@cg82616424](https://github.com/cg82616424) in updating the unet benchmark  modifying resize comment error
- Thanks to [@cuicheng01](https://github.com/cuicheng01) for providing 11 PaddleClas models
P
PaddlePM 已提交
150

151
> Feedback
D
Dong Daxiang 已提交
152

D
Dong Daxiang 已提交
153 154
For any feedback or to report a bug, please propose a [GitHub Issue](https://github.com/PaddlePaddle/Serving/issues).

155
> License
D
Dong Daxiang 已提交
156

D
Dong Daxiang 已提交
157
[Apache 2.0 License](https://github.com/PaddlePaddle/Serving/blob/develop/LICENSE)