IoT

PAI年度巨献:在线推理加速优化,降低推理GPU所需资源

背景

在线推理是抽象的算法模型触达具体的实际业务的最后一公里,PAI已经对外推出了PAI-EAS在线模型服务,帮助大家解决模型服务化的问题,目前已经吸引数百家企业入驻。但是在这个环节中,仍然还有这些已经是大家共识的痛点和诉求:

1.任何线上产品的用户体验都与服务的响应时长成反比,复杂的模型如何极致地压缩请求时延?
2.模型推理通常是资源常驻型服务,如何通过提升服务单机性能从而增加QPS同时大幅降低资源成本?
3.端-边-云是现在模型服务发展的必然趋势,如何让离线训练的模型“瘦身塑形”从而在更多设备上快速部署使用?

因此,在线推理的加速优化成为了AI界的重要研究领域。在前段时间,有不少用户看到了天猫精灵业务如何使用机器学习PAI进行模型推理优化,来咨询如何在自己的业务中get同款技术红利,今天为大家带来的这个好消息就是,高性能在线推理优化框架PAI-Blade终于在公共云和大家见面啦!

PAI-Blade发展历程

PAI-Blade是阿里云机器学习团队研发的面向通用场景的深度学习推理优化框架。经过1年多的发展,在阿里集团内部已经服务了包括安全部、AI Lab、阿里妈妈、搜索、达摩院、ICBU、CCO、新零售、菜鸟、X Lab等众多部门,满足集团内不同业态丰富业务场景下的多样化需求,模型涵盖了图像识别、目标检测、OCR检测识别、自然语言处理、语音识别、智能问答、人机对话、搜索、推荐、视频处理、文本分类等各类大家所熟知的AI子领域。

PAI-Blade对内首先需要服务好规模体量大、对RT/QPS要求严格、以及高影响力的关键业务。典型的案例比如阿里机器翻译,需支持21个语种、48个语向,在整个电商的完整链路上提供包括SEO,商品详情、搜索、评论,实时沟通等多个场景,针对集团内众多国际化业务提供全面的实时翻译能力,以及在大型会议上提供实时语音翻译、同声传译服务等。每天提供近十亿级的在线翻译服务,峰值数万QPS的语句翻译能力。如此规模体量的在线服务对于响应时间、吞吐量和资源成本都是极其敏感的。经过PAI-Blade的优化,实现2-3倍,在有些场景下甚至更高的性能提升。目前可以稳定支持200ms以内的响应时延,日调用7.5亿次,5000亿字符的并行处理能力,以及双11期间数倍于此的服务需求。

同样体量较大的业务还包括安全相关服务、搜索、推荐、天猫精灵等。业务的细节就不一一展开了,总的来说,对于规模体量较大的业务,优化所涉及的模型和热点虽有很多不同,但相似的是都有众多的服务场景和快速的模型迭代,以下整理了部分业务效果数据:

业务/部门 模型类别 模型 加速比
菜鸟无人车 (2D&3D)
目标检测
自研模型 RT 3.9x
ICBU 目标检测 自研检测模型 模型RT加速2x 
大知识产权业务 目标检测 RefineDet,caffeNet,自研模型 QPS 2.5x
天猫精灵 ASR 自研BERT模型 QPS 2.8x
CCO阿里店小蜜,AliOS车载场景等 自然语言处理 自研模型 QPS 3.43x
新零售业务 文本分类 TextCNN QPS 1.3x
安全部鉴黄业务 内容识别 自研模型 QPS 5.48x
视频搜索业务 视频 自研模型 QPS 1.8x

通常来说,不同的业务场景具有不同的需求层次。而PAI以Blade为核心,提供了一整套从模型优化,到一键式在线部署(包括部署环节优化),到离线runtime推理,到线上热点分析、tuning的全栈优化加速解决方案。在集团内部我们提供了不同层次,多种形式的接入方式。经过众多业务场景赋能过程中的反复打磨,PAI-Blade除了能够把针对不同业务的优化能力提炼沉淀到自研框架中,还锻造了一整套工程体系,努力简化用户的使用链路和上手成本。基于这些最佳实践,我们将全栈的推理优化能力进行了抽象和封装,并于2019岁末,以非常简单易用的形态呈现在PAI公共云产品中,正式开始对外公测,欢迎大家随时来撩,当前在上海Region免费试用。

极简试用体验

  1. 在PAI控制台您可以一键上传您的深度学习模型,支持多种模型格式,包括

    • Tensorflow (saved model or frozen pb)
    • Keras(.h5)
    • Caffe
    • Onnx

模型上传.gif

  1. 快速体验在不同卡型(Nvidia P4/Nvidia T4/Nvidia P100/Nvidia V100)上基于不同优化策略(O1无损优化、O2量化压缩优化)的优化效果。模型优化.gif

    1. 需要更高优化效果的用户,也可以直接在我们提供的高级配置框来提供更多模型信息
    2. 优化过程通常在几分钟即可完成,您可以在性能加速数据列看到优化后模型的latency加速的数据
  2. 每次优化任务都会产出一个新的模型挂在原模型的子模型列表中。之后根据不同策略下产出模型的效果对比,您可以直接选择优化效果最优的模型部署至PAI-EAS服务,这里需要注意先新建和优化时GPU卡相同的资源组再进行模型部署优化模型部署.gif
  3. 我们提供了封装好的Blade服务调用客户端SDK,服务部署完成后可以直接使用SDK进行高效服务调用。

敬请期待

  1. 支持优化后模型的自定义Processor开发
  2. 支持更多通用模型框架,让更多复杂信息对用户透明,降低使用门槛
  3. 通过简单易用的使用方式提供更多层次更灵活的优化策略

更多精彩

Leave a Reply

Your email address will not be published. Required fields are marked *