README.md

    (简体中文|English)




    Build Status Docs Release Python License Forks Issues Contributors Community


    Paddle Serving 依托深度学习框架 PaddlePaddle 旨在帮助深度学习开发者和企业提供高性能、灵活易用的工业级在线推理服务。Paddle Serving 支持 RESTful、gRPC、bRPC 等多种协议,提供多种异构硬件和多种操作系统环境下推理解决方案,和多种经典预训练模型示例。核心特性如下:

    • 集成高性能服务端推理引擎 Paddle Inference 和端侧引擎 Paddle Lite,其他机器学习平台(Caffe/TensorFlow/ONNX/PyTorch)可通过 x2paddle 工具迁移模型
    • 具有高性能 C++ Serving 和高易用 Python Pipeline 2套框架。C++ Serving 基于高性能 bRPC 网络框架打造高吞吐、低延迟的推理服务,性能领先竞品。Python Pipeline 基于 gRPC/gRPC-Gateway 网络框架和 Python 语言构建高易用、高吞吐推理服务框架。技术选型参考技术选型
    • 支持 HTTP、gRPC、bRPC 等多种协议;提供 C++、Python、Java 语言 SDK
    • 设计并实现基于有向无环图(DAG) 的异步流水线高性能推理框架,具有多模型组合、异步调度、并发推理、动态批量、多卡多流推理、请求缓存等特性
    • 适配 x86(Intel) CPU、ARM CPU、Nvidia GPU、昆仑 XPU、华为昇腾310/910、海光 DCU、Nvidia Jetson 等多种硬件
    • 集成 Intel MKLDNN、Nvidia TensorRT 加速库,以及低精度量化推理
    • 提供一套模型安全部署解决方案,包括加密模型部署、鉴权校验、HTTPs 安全网关,并在实际项目中应用
    • 支持云端部署,提供百度云智能云 kubernetes 集群部署 Paddle Serving 案例
    • 提供丰富的经典模型部署示例,如 PaddleOCR、PaddleClas、PaddleDetection、PaddleSeg、PaddleNLP、PaddleRec 等套件,共计40+个预训练精品模型
    • 支持大规模稀疏参数索引模型分布式部署,具有多表、多分片、多副本、本地高频 cache 等特性、可单机或云端部署
    • 支持服务监控,提供基于普罗米修斯的性能数据统计及端口访问

    教程与案例

    论文

    文档

    部署

    此章节引导您完成安装和部署步骤,强烈推荐使用Docker部署Paddle Serving,如您不使用docker,省略docker相关步骤。在云服务器上可以使用Kubernetes部署Paddle Serving。在异构硬件如ARM CPU、昆仑XPU上编译或使用Paddle Serving可阅读以下文档。每天编译生成develop分支的最新开发包供开发者使用。

    使用

    安装Paddle Serving后,使用快速开始将引导您运行Serving。第一步,调用模型保存接口,生成模型参数配置文件(.prototxt)用以在客户端和服务端使用;第二步,阅读配置和启动参数并启动服务;第三步,根据API和您的使用场景,基于SDK编写客户端请求,并测试推理服务。您想了解跟多特性的使用场景和方法,请详细阅读以下文档。

    开发者

    为Paddle Serving开发者,提供自定义OP,变长数据处理。

    模型库

    Paddle Serving与Paddle模型套件紧密配合,实现大量服务化部署,包括图像分类、物体检测、语言文本识别、中文词性、情感分析、内容推荐等多种类型示例,以及Paddle全链条项目,共计46个模型。

    图像分类与识别 NLP 推荐系统 人脸识别 目标检测 文字识别 图像分割 关键点检测 视频理解
    14 6 3 1 10 8 2 1 1

    更多模型示例进入模型库

    社区

    您想要同开发者和其他用户沟通吗?欢迎加入我们,通过如下方式加入社群

    微信

    • 微信用户请扫码

    QQ

    • 飞桨推理部署交流群(Group No.:697765514)

    贡献代码

    如果您想为Paddle Serving贡献代码,请参考 Contribution Guidelines(English)

    • 感谢 @w5688414 提供 NLP Ernie Indexing 案例
    • 感谢 @loveululu 提供 Cube python API
    • 感谢 @EtachGu 更新 docker 使用命令
    • 感谢 @BeyondYourself 提供grpc教程,更新FAQ教程,整理文件目录。
    • 感谢 @mcl-stone 提供faster rcnn benchmark脚本
    • 感谢 @cg82616424 提供unet benchmark脚本和修改部分注释错误
    • 感谢 @cuicheng01 提供PaddleClas的11个模型
    • 感谢 @Jiaqi Liu 新增list[str]类型输入的预测支持
    • 感谢 @Bin Lu 提供PP-Shitu C++模型示例

    反馈

    如有任何反馈或是bug,请在 GitHub Issue提交

    License

    Apache 2.0 License

    项目简介

    A flexible, high-performance carrier for machine learning models(『飞桨』服务化部署框架)

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/PaddlePaddle/Serving

    发行版本 14

    Release v0.9.0

    全部发行版

    贡献者 36

    全部贡献者

    开发语言

    • C++ 51.6 %
    • Python 27.0 %
    • Shell 8.0 %
    • CMake 6.0 %
    • Go 4.4 %