Clipper论文8页总结

 

注:本文旨在精炼总结Clipper论文原文。部分内容纯属个人理解,并非Clipper作者愿意。如有异议欢迎讨论。

目录

Clipper8页总结... 

1.    Clipper设计初衷... 

2.    Clipper设计结构... 

3.    Clipper请求处理过程... 

4.    Clipper关键技术... 

问题难点1:Low-latency

解决方案... 

问题难点2:High-throughput 

解决方案... 

问题难点3:High-precision

解决方案... 

问题难点4:异质... 

解决方案... 

 

 

 

 

Clipper设计初衷

提供一个支持混合框架的低延时、高通量、高准确率的容易部署的机器学习应用程序在线推理服务。

特点:低延时、高通量、高准确率、混合框架、易部署。

功能:利用现有机器学习模型为前端应用程序提供在线推理服务后端。注:不含训练部分。

Clipper设计结构

Clipper论文8页总结_第1张图片

 

如上图,Clipper分成模型选择层(紫色)和模型抽象层(深绿色)两部分,夹在上层应用和底层机器学习框架之间。

模型选择层顾名思义用于多模型选择,主要关键技术是模型选择策略。模型抽象层用于抽象出底层基于机器学习框架的模型容器,统一各模型容器接口,使clipper具有简单易用的特点。

Clipper请求处理过程

Clipper对一次请求的处理分为3个过程,分别是Down Process、Up Process和Feedback Process。

Clipper论文8页总结_第2张图片

 

如上图,Down Process是用户应用程序发出查询请求的过程。前端应用程序通过RPC系统向Clipper发送查询请求给模型选择层。模型选择层收到查询请求后对查询请求进行处理,得到该查询请求的属性再依据其请求属性进行模型选择,并将模型选择结果发送给模型抽象层。模型抽象层收到来自模型选择层的请求后首先查找预测缓存是否有符合查询请求的信息,如果有则直接使用预测缓存中的信息标签,如果没有则将请求信息发送到自适应批处理队列计算标签再送到查询批中等待处理。最后查询批的请求通过RPC传送到底层Docker容器编排系统完成模型容器的编排完成应用程序请求工作。

Clipper论文8页总结_第3张图片

 

如上图,Up Process是底层模型容器将预测结果回传至上层应用程序的过程。底层模型容器经过计算得到包含推理结果和置信度的预测结果通过RPC同时上传到模型选择层和模型抽象层的预测缓存中。预测缓存收到预测结果后保存在对应的模型信息中。模型选择层收到预测结果后会根据模型选择策略对预测结果进行整合得到最终推理结果和最终置信度再通过RPC上传给前端应用程序。至此,用户发送的查询请求得到了查询结果响应。

Clipper论文8页总结_第4张图片

 

如上图,Feedback Process是用户通过应用程序向Clipper发送反馈的过程。反馈信息仍然通过RPC发送给模型选择层,再由模型选择层发送给模型抽象层。模型抽象层会将反馈信息发送到预测缓存中,并保存在预测缓存列表中和模型以及预测结果相对应的条目中,以便以后有同样模型调度时做参考。

Clipper关键技术

Clipper论文8页总结_第5张图片

 

如上图所示,Clipper的模型抽象层中有3个关键技术分别为预测缓存、自适应批处理和RPC系统,其中自适应批处理中又包含使用AIMD的动态batch size技术和延时批处理技术。模型选择层中的关键技术主要时模型选择策略,分为使用Exp3算法的单模型选择策略和使用Exp4算法的组合模型选择策略,其中组合模型选择策略中为了降低预测时延采用了Straggler Mitigation技术。

下面依据主要解决的问题逐一介绍Clipper中用到的关键技术,请直接转到本人的另一篇文章《Clipper解决问题和相关技术总结》。

你可能感兴趣的:(Clipper论文8页总结)