美文网首页论文阅读
[MLsys/Serveless]Batch: machine

[MLsys/Serveless]Batch: machine

作者: sagfugetabf | 来源:发表于2021-07-10 19:47 被阅读0次

    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的滞后性

    1. 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不支持明确的延迟要求

    1. 2.4提到的几个参数是需要随着情况的变化动态调整的,这也是需要系统支持的
    2. 对模型参数进行调整需要基于数据的轻量级模型,本文使用了基于分析的模型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
    1. Performance Optimizer
      这是整个系统的核心
      用了一个分析的方法来找到最佳的size ,而不是用模拟或者回归的方法。
      因为基于分析的方法更加轻量级,不需要regression方法需要的那么多数据,分析的方法不需要训练
      模型的三个要求
    2. 能捕捉到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

    1. 推理
      收集足够的request就起一个serverless

    2. profiler
      用简单的系统参数,来进行建模,
      实现:We prototype the Profiler atop of AWS CloudWatch

    3. buffer
      需要一点计算资源,
      实现:using the streaming service offered by AWS

    4. Performance optimizer
      协同profiler和buffer,可以在10秒内给出最佳的batch size
      实现:AWS t2.nano instance ($0.14/day) hosting BATCH components.

    六、实验结果

    6.1环境配置

    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这个新环境的实践

    这算是一种排列组合吗?


    参考文献:

    1. 批处理如何理解:https://zhuanlan.zhihu.com/p/382306521
      整个模型上线的流程需要理清楚

    相关文章

      网友评论

        本文标题:[MLsys/Serveless]Batch: machine

        本文链接:https://www.haomeiwen.com/subject/kqxhpltx.html