2021-07-10
一天确实看不完,还是拆开写吧(其实还是因为没有花够时间);
Batch: machine learning inference serving on serverless platforms with adaptive [2]
地址:SC'20
二、motivation and challenge
更新一个图,batch在整个体系中的位置2.1 ML 推理的特征
bursty
2.2 为啥用serverless
应对Bursty的方法,要么多申请资源,要么autoscaling
工业界用autoscaling,AWS有SageMaker;
我们发现SageMaker有点慢,在面临busty的时候需要好几分钟;
Serverless潜在的优势是解决资源分配的问题;
1.从原生lambda和sagemaker中可以看出,sagemaker的滞后性
- serverless 比Iaas省钱(这个有待商榷,理论上是如此)
2.3 sota
现有的方案是serverless+Iaas的混合,缺点是启动速度慢(但是是个可用的版本)
2.4 本文工作的切入点batching
现有的工作是没有考虑到推理的batching的,
batching是指,将若干个推理请求放在一起推理,可以充分利用GPU的并行资源。
batching主要在两个维度,一个size一个timeout(还没理解)
对于resnet,处理一个推理需要1280MB,而处理20个也只需要1664MB,这个效益很大,所以做了一个实验,探究不同的batch数量和内存大小变化的分析。
时间,size,内存的两两对比
结论:batching是否好用取决了对参数的个数,模型的大小,以及延迟时间进行了最佳的配置。
2.5 ML 推理用serverless的难点
1.serverless 是无状态的,并不支持batching
2.云平台提供的serverless不支持明确的延迟要求
- 2.4提到的几个参数是需要随着情况的变化动态调整的,这也是需要系统支持的
- 对模型参数进行调整需要基于数据的轻量级模型,本文使用了基于分析的模型analytical models(是使用简单模型而不是复杂模型的意思?)
三、系统设计
我们设计一个系统BATCH,它可以决定最优化的系统配置,系统的数据流如下
主要有两个部分,
1,profiler
To profile the inference time on the serverless platform
训练一个模型来决定memory和time
数据收集: KPC-Toolbox [42] to fit the collected arrival trace into a Markovian Arrival Process (MAP),利用工具记录每个request的信息
模型:multivariable polynomial regression
背后的insight:inference的到达是deterministic
2,buffer
因为serverless原生不支持批处理,所以系统设计了一个缓冲空间,由Performance Optimizer来决定每次batch的size,和等待请求过来的timeout
- Performance Optimizer
这是整个系统的核心
用了一个分析的方法来找到最佳的size ,而不是用模拟或者回归的方法。
因为基于分析的方法更加轻量级,不需要regression方法需要的那么多数据,分析的方法不需要训练
模型的三个要求 - 能捕捉到bursty
2.能捕捉到模型的deterministic(这个有点难)
3.能预测性能 in the form of latency percentiles(这个也有点难,因为一般分析模型只会给出平均值这类的结果)
四、形式化及验证
一堆公式,分析了三种request的到达模型
1.poison
2.Markovpoison
3.MAP
(感觉传统网络的方法来了,被poison达到支配的恐怖)
五、实现过程
1.环境和base
AWS,boto3 library
We minimize the invocation delay by 2× through persisting the model graphs in memory
-
推理
收集足够的request就起一个serverless -
profiler
用简单的系统参数,来进行建模,
实现:We prototype the Profiler atop of AWS CloudWatch -
buffer
需要一点计算资源,
实现:using the streaming service offered by AWS -
Performance optimizer
协同profiler和buffer,可以在10秒内给出最佳的batch size
实现:AWS t2.nano instance ($0.14/day) hosting BATCH components.
六、实验结果
6.1环境配置
- ML框架
tf版本
mxnet版本
2 ML模型
mobinet
resnet-18
Inception-v4
ResNet-v2
3 request到达的trace
人工两个
真实数据一个
4 比较对象
vanilla lambda
sagemaker
MArk
6.2 request的模型是Deterministic吗?
实验结果结果,误差在3%
6.3 验证分析模型
用MMPP和真实数据进行验证
6.4 优化开销或延迟
一堆结果
6.5 讨论
GPU:之前serverless不支持对GPU的调用,但是未来肯定会支持,and这个方法还能用
冷启动问题:本文觉得不重要,所以没管。但是如果真的有,AWS也有解决冷启动的方案
七、相关工作
serverless 应用在ML训练,开山作为18年,Serving deep learning models in a serverless platform,18年,19年涌现了一大批
动态调节batching用于ML推断,来自17年NSDI的Clipper: A low-latency online prediction serving system
动态调节batching还用在2010的Stout和19年Grand-SLAm,
八、结论
本文就是动态调节batching在serverless这个新环境的实践
这算是一种排列组合吗?
参考文献:
- 批处理如何理解:https://zhuanlan.zhihu.com/p/382306521
整个模型上线的流程需要理清楚
网友评论