diff --git a/doc/DESIGN.md b/doc/DESIGN.md index ce89854006ac389d954cb2bda89c54e6f1a2e6d2..12dce781a2ba19b678ea488a1b45841d1b611cc2 100644 --- a/doc/DESIGN.md +++ b/doc/DESIGN.md @@ -26,7 +26,7 @@ PaddlePaddle是公司开源的机器学习框架,广泛支持各种深度学 ## 3. Paddle Serving总体框架 -![Paddle-Serging总体框图](https://paddle-serving.bj.bcebos.com/doc/framework.png) +![Paddle-Serging总体框图](framework.png) **模型管理框架**:对接多种机器学习平台的模型文件,向上提供统一的inference接口 **业务调度框架**:对各种不同预测模型的计算逻辑进行抽象,提供通用的DAG调度框架,通过DAG图串联不同的算子,共同完成一次预测服务。该抽象模型使用户可以方便的实现自己的计算逻辑,同时便于算子共用。(用户搭建自己的预测服务,很大一部分工作是搭建DAG和提供算子的实现) @@ -62,31 +62,31 @@ class FluidFamilyCore { 参考TF框架的模型计算的抽象思想,将业务逻辑抽象成DAG图,由配置驱动,生成workflow,跳过C++代码编译。业务的每个具体步骤,对应一个具体的OP,OP可配置自己依赖的上游OP。OP之间消息传递统一由线程级Bus和channel机制实现。例如,一个简单的预测服务的服务过程,可以抽象成读请求数据->调用预测接口->写回预测结果等3个步骤,相应的实现到3个OP: ReaderOp->ClassifyOp->WriteOp -![预测服务Service](https://paddle-serving.bj.bcebos.com/doc/predict-service.png) +![预测服务Service](predict-service.png) 关于OP之间的依赖关系,以及通过OP组建workflow,可以参考[从零开始写一个预测服务](CREATING.md)的相关章节 服务端实例透视图 -![服务端实例透视图](https://paddle-serving.bj.bcebos.com/doc/server-side.png) +![服务端实例透视图](server-side.png) #### 3.2.2 Paddle Serving的多服务机制 -![Paddle Serving的多服务机制](https://paddle-serving.bj.bcebos.com/doc/multi-service.png) +![Paddle Serving的多服务机制](multi-service.png) -Paddle Serving实例可以同时加载多个模型,每个模型用一个Service(以及其所配置的workflow)承接服务。可以参考[Demo例子中的service配置文件](../serving/conf/service.prototxt)了解如何为serving实例配置多个service +Paddle Serving实例可以同时加载多个模型,每个模型用一个Service(以及其所配置的workflow)承接服务。可以参考[Demo例子中的service配置文件](../demo-serving/conf/service.prototxt)了解如何为serving实例配置多个service #### 3.2.3 业务调度层级关系 从客户端看,一个Paddle Serving service从顶向下可分为Service, Endpoint, Variant等3个层级 -![调用层级关系](https://paddle-serving.bj.bcebos.com/doc/multi-variants.png) +![调用层级关系](multi-variants.png) 一个Service对应一个预测模型,模型下有1个endpoint。模型的不同版本,通过endpoint下多个variant概念实现: 同一个模型预测服务,可以配置多个variant,每个variant有自己的下游IP列表。客户端代码可以对各个variant配置相对权重,以达到调节流量比例的关系(参考[客户端配置](CLIENT_CONFIGURE.md)第3.2节中关于variant_weight_list的说明)。 -![Client端proxy功能](https://paddle-serving.bj.bcebos.com/doc/client-side-proxy.png) +![Client端proxy功能](client-side-proxy.png) ## 4. 用户接口 diff --git a/doc/client-side-proxy.png b/doc/client-side-proxy.png new file mode 100755 index 0000000000000000000000000000000000000000..1e7639ac401955d9b7c2761820f3c3cdc7fbf8fd Binary files /dev/null and b/doc/client-side-proxy.png differ diff --git a/doc/framework.png b/doc/framework.png new file mode 100755 index 0000000000000000000000000000000000000000..676d35bed06893d0f6247561756c4595f48f1698 Binary files /dev/null and b/doc/framework.png differ diff --git a/doc/multi-service.png b/doc/multi-service.png new file mode 100755 index 0000000000000000000000000000000000000000..629024e58f58299d16fb133601c09e673746d560 Binary files /dev/null and b/doc/multi-service.png differ diff --git a/doc/multi-variants.png b/doc/multi-variants.png new file mode 100755 index 0000000000000000000000000000000000000000..c3d141b14712b4853629f9119d60347a20779268 Binary files /dev/null and b/doc/multi-variants.png differ diff --git a/doc/predict-service.png b/doc/predict-service.png new file mode 100755 index 0000000000000000000000000000000000000000..ccd92e4bb1b5c58787118b564cc6a776d648be01 Binary files /dev/null and b/doc/predict-service.png differ diff --git a/doc/server-side.png b/doc/server-side.png new file mode 100755 index 0000000000000000000000000000000000000000..7a96996c2a4d14832c9c2177a09e78181b1a551c Binary files /dev/null and b/doc/server-side.png differ