Clipper解决问题和相关技术总结

领导让精度clipper后还要总结clipper中解决的问题和相关技术,并写一个10页以内的全文总结,于是就只能写了。下面进入正题。

注:本文需要对clipper有一定了解再阅读,建议先阅读本人整理的《clipper 论文8页总结》。此外,结合目录结构查询阅读可以提高阅读效率。

 

目录结构

Clipper解决问题和相关技术总结

问题难点1:Low-latency

解决方案

RPC System

Prediction Cache(Caching)

Straggler Mitigation

问题难点2:High-throughput

解决方案

Batching

Dynamic Batching

Delayed Batching

问题难点3:High-precision

解决方案

Model Selection Policy

Single Model Selection Policy

Ensemble Model Selection Policy

问题难点4:异质

解决方案

Model Container(MC)

 

 

 

问题难点1:Low-latency

解决方案

RPC System

首先普及一个概念:只要是远程调用都可以叫RPC,rest是一种常用的RPC,也是Clipper中使用的RPC。

RPC可以保证不同服务之间的互相调用。即使是跨语言跨平台也不是问题,让构建分布式系统更加容易。RPC框架都会有服务降级、流量控制的功能,以保证服务的高可用。同时,使用私有协议的RPC往往可以大幅度提升通信时间。

Prediction Cache(Caching)

在一些应用(如推荐系统)中,有些项目的预测是需要反复进行的。Clipper为这些频繁且重复的查询提供预测缓存服务。

预测缓存主要有2个功能。功能一是存储记录查询请求与模型预测之间的对应关系,以便给日后的重复查询提供快速的模型选择及模型预测结果。另一个功能是存储模型预测的反馈信息,以便提供给模型选择策略从而给其他预测提供改善服务。

Straggler Mitigation

该技术主要用于组合模型策略消除或降低尾延时。组合模型策略中,随着组合模型数量增加,尾延时也会急剧上升。如下图黑色实线所示,模型数量达到2时,尾延时就已经超过预期的20ms了;模型数量继续增加,则尾延时会持续增长到接近150ms。而图中黑色虚线可以看出组合模型的平均延时其实并没有那么高,因此判定组合模型延时主要来自于尾延时,即消除尾延时可以极大的改善组合模型的预测时间。

Clipper解决问题和相关技术总结_第1张图片

Straggler Mitigation的核心思想在于丢弃预设20ms还未预测完成的模型,以保证组合模型总体预测时间不超过20ms。最终实验结果如上图绿色曲线。

 

问题难点2:High-throughput

解决方案

Batching

Batching的实现是由用户设置SLO延迟目标,clipper设置的是20ms。然后在不超过20ms 的延迟下尽可能的增加单次请求发送的数量,即clipper发送一次请求并不是一个查询,而是一个或多个查询,从而同时完成一个或多个预测再一起返回给上层应用程序。

另外,Batching里还有两个核心技术以提高吞吐率,分别为Dynamic Batching和Delayed Batching。下图展示了不使用Batching技术(黑色)、使用他人的Quantile Regresstion技术(深绿色)和Dynamic Batching技术(浅绿色)的吞吐量及P99延时对比。

Clipper解决问题和相关技术总结_第2张图片

Dynamic Batching

(此技术的理解需要结合深度学习经验,这里默认已经掌握)。

Dynamic Batch Size技术一改传统的固定batch预测(推理),实现动态mini-batch以最大限度利用硬件资源(如GPU显存),通过自使用尽可能占满全部硬件资源的最大batch_size 提升整体预测的吞吐率。实现方法主要是如下图将预测函数的输入从数据矩阵(npdarray)统一成batch列表(list),其中列表长度即为mini-batch的大小。

Delayed Batching

核心思想为当单次查询量较少的时候在适当的延时里等候后续的查询一同预测,以提高预测吞吐量。下图展示了两个模型的不同延时时间的Delayed Batching与吞吐量、时延以及batch size的关系。

Clipper解决问题和相关技术总结_第3张图片

 

 

问题难点3:High-precision

解决方案

Model Selection Policy

众所周知机器学习的预测正确率可以通过组合多个模型的预测结果来获得提升。Model Selection Policy正是利用这一点旨在整合多个模型的预测结果,使得各个模型的劣势可以互相补偿,得到一个比任意单一模型预测正确率都高的最终预测结果,从而提高整体预测准确率。

模型选择有两种策略,分别时Single Model Selection Policy和Ensemble Model Selection Policy。当有多个可用模型存在时两种策略并存,若有最佳模型存在时选择最佳模型,若组合模型能够获得更高的分数则采用组合模型。其中应用了一些已有的算法(如Exp3、Exp4),算法具体内容参考论文《The nonstochastic multiarmed bandit problem》

Single Model Selection Policy

Single Model Selection Policy采用Exp3算法基于noisy feedback以最小的计算开销标准来从所有可用模型中选择一个最佳模型。

另外,Exp3相比于A/B testing方法,在实现相同功能的前提下Exp3具有更好的鲁棒性和轻量性,能够降低选择模型时消耗的时间,从而也提高整体的延时指标。

Ensemble Model Selection Policy

Ensemble Model Selection Policy根据所有可用模型的预测结果和置信度自适应地组合来自所有可用模型的预测以提高准确性,而不是选择单个模型。至于组合的方法clipper中是使用线性组合的方式计算基础模型预测的加权平均值。下图展示了两个数据集上的两种模型选择策略对预测准确率的影响。其中 4-agree和5-agree代表四个或五个模型rank-1预测结果相同,并且每个条形的宽度定义了该类别中示例的比例。

Clipper解决问题和相关技术总结_第4张图片

问题难点4:异质

解决方案

Model Container(MC)

如下图红色框内使用docker容器把各种不同的服务打包,并编写统一接口调用。

Clipper解决问题和相关技术总结_第5张图片

下图是模型选择层调用MC的通用接口伪代码。

Clipper解决问题和相关技术总结_第6张图片

你可能感兴趣的:(Clipper解决问题和相关技术总结)