首次披露!阿里线下智能方案进化史

阿里妹导读:AI 技术已经从互联网走向零售、汽车、银行等传统行业。受限于延时、成本、安全等多方面的限制,单一的云解决方案往往不能满足场景需求。线下智能方案逐步成为了智能化过程中重要的一环,今天,我们就一起来了解这一环,希望这些内容可以让同学了解线下智能的前景和其中待解决的技术点。

前言

阿里巴巴机器智能实验室线下智能团队从16年底开始涉及线下智能领域,从算法、工程、产品化、业务落地多个方面入手,与合作伙伴们一起取得了一些小小的成绩。算法方面,我们提出了自主研发的模型压缩方法,新型模型结构和目标检测框架;工程方面,我们研发出一套非数据依赖的量化训练工具,并且针对不同硬件平台,研发了高效推理计算库;同时我们也和服务器研发团队一起抽象出了一套软硬件产品化方案,以服务多样的业务形式,并在真实业务场景中实验落地。

在后面的篇幅中,我们主要会从算法探索、训练工具、推理框架、产品化和业务模式等方面对之前的工作做一个总结和分享。

算法探索

基于 ADMM 的低比特量化

低比特量化是模型压缩( ModelCompression )和推理加速( Inference Acceleration )中一个核心的问题,目的是将神经网络中原有的浮点型参数量化成 1-8Bits 的定点参数,从而减小模型大小和计算资源消耗。为了解决这个问题,我们提出了基于 ADMM(Alternating Direction Method ofMultipliers)的低比特量化方案。在公开数据集 ImageNet 上,我们在 Alexnet,ResNet-18,Resnet-50 等经典 CNN 网络结构上做了实验,无论是精度上还是速度上均超过了目前已知的算法。我们可以在 3-bit 上面做到几乎无损压缩。目前该方法已经被广泛应用到各种端上目标检测和图像识别的实际项目中。相关成果已经在 AAAI 2018 上发表。

统一量化稀疏框架

量化技术可以通过简化计算单元(浮点计算单元->定点计算单元)提升推理速度。 稀疏化( Pruning ) 技术则是通过对神经网络中的通路进行裁剪来减少真实计算量。我们很自然的将这两个技术融合到了一起,来获取极限的理论加速比。在剪枝过程中,我们采用了渐进式的训练方法,并结合梯度信息决定网络中路径的重要程度。在 ResNet 结构上,我们可以做到90%稀疏度下的近似无损压缩。

 

在稀疏化研究过程中,我们发现了一个问题,更细粒度的裁剪往往会获得更高的精度,但是代价是牺牲了硬件友好性,很难在实际应用中获得理论加速比。在后面的章节中,我们会通过两个角度来解决这个问题:

  • 软硬件协同设计,从软硬件角度同时出发解决问题;
  • 新型轻量级网络,从软件角度设计适合更适合现有硬件的结构。

软硬件协同网络结构

通过量化和稀疏技术,我们可以获得一个理论计算量足够低,所需计算单元足够简单的深度网络模型。下一个要解决的问题就是我们如何将其转换成一个真实推理延时低的算法服务。为了挑战极限的推理加速效果,我们和服务器研发团队一起,从软硬件联合设计出发解决该问题。在该项目中,我们提出了以下几个创新点,其中包括:

  • 软硬件协同设计方面,我们针对硬件物理特性提出了异构并行分支结构,最大化并行效率。
  • 算法方面,我们利用量化、稀疏、知识蒸馏等技术,将理论计算量压缩到原始模型的18%。
  • 硬件方面,我们通过算子填充技术解决稀疏计算带来的带宽问题,利用算子重排技术平衡PE负载。

通过上述方案,我们只需要 0.174ms 的 latency 就可以完成 resnet-18 复杂程度的模型推理,达到业内最佳水平。该方案在对 latency 敏感的领域具有极大的优势。相关成果已经在 HotChips 30 上展出。

 

 

 

 

新型轻量级网络

软硬件协同设计是一个非常好的推理解决方案,但是改方案的开发成本和硬件成本都很高。某些特定的场景对于 latency 和 accuracy 的容忍度比较高(例如人脸抓拍)。为了解决这类需求,我们提出了一种多联合复用网络 (Multi-Layer Feature Federation Network, MuffNet) ,该结构同时具有3个特点:

  • 稀疏的拓扑结构,同时更容易获取高频响应;
  • 密集的计算节点,保证硬件友好性;
  • 针对低成本硬件充分优化,小计算量下精度提升更明显;

我们提出的新型网络由于每个单元的计算比较密集,并不存在过多的碎片操作,是非常适合在通用硬件上运行的。在公开数据集 ImageNet 上,我们在 40MFLops 计算量上相比目前业内最优的 shufflenetv2 结构,准确度绝对提升了2%。

端上目标检测框架

相比图像识别类任务,目标检测类任务的适用场景更广泛。高效的目标检测框架具有很高的研究价值。针对端上场景,我们提出了一个 LRSSD 框架( light refine single short multiboxdetector ), 该框架包括以下几个特点:

  • 简化 SSD HEAD,采用共享预测层 设计特征融合模块;
  • 融合不同尺度下信息 级联形式的 bbox 回归;
  • 对检测模型做全量化处理。

如上表所示,相同 backbone 网络的情况下,我们提出的 LRSSD 在减少 SSD HEAD 计算量的同时,mAP 可以稳定提升3%-4% 。从另一个角度来看,在保证检测精度不变的情况下,我们的方法可以将模型复杂度减少到原来的50%左右。如果再考虑到量化带来的速度加成,在相同精度下,相比原有全精度模型,我们可以获得总共约2-3倍的真实速度提升。

小结

上文给出了我们近2年内在线下智能—模型压缩领域所做的一些技术积累。归纳起来如下:

  • 量化方面:我们可以做到 3-bit 量化几乎无损压缩!
  • 稀疏方面:对于传统网络结构,我们可以做到90%稀疏度下的几乎无损压缩!
  • 软硬件协同设计方面:我们联合服务器研发团队,达到0.174ms/张的resnet18 极限推理速度,目前已知业内最佳效果!
  • 轻量级网络设计方面:我们在 40MFlops 计算量下,相对目前业内最好结构,在 ImageNet 数据集上绝对提升2%!
  • 端上目标检测方面,我们在保证精度不变的情况下,速度提升约2-3倍!

在技术探索的同时,我们也在积极的将上述技术应用到实际的业务中。在这一过程中我们发现了下列几个问题:

  • 易用性: 业务场景往往需要快速的迭代能力和灵活方便的部署能力,因此非标准化的方案很难被广泛应用。
  • 理论速度 vs 真实速度: 除了算法和硬件以外,真实的模型推理速度是需要一个高效的工程实现作为支撑的。
  • 集成化 :线下智能需要同时考验团队在硬件和软件方面两方面的实力,这对业务而言往往太过沉重。

在本文后半部分,我们首先会针对上述的几个问题介绍我们已经做过的尝试和沉淀出的解决方案。最后,我们列出了一些实例,展示如何在具体的业务场景中应用线下智能技术,希望可以给各位同学一个更直观的认识。

训练工具

在实际业务推广过程中,我们遇到的第一个问题是易用性问题:

  • 不同业务往往使用的深度学习库多种多样,例如 Caffe, Tensorflow, Mxnet 等等;
  • 不同业务使用的基础技术差异比较大,有分类识别、检测、分割、语音等等;
  • 不同业务的数据安全级别差异比较大,有些可以公开,有些则需要完全物理隔离;

为了让更多的场景都可以用上我们的服务,获得 AI 的红利,我们提出了一套标准化的量化训练工具。

如上图所示,首先,我们的工具输入支持多种模型格式( TensorFlow,Caffe,Mxnet 等)。其次,我们提供了两种不同的模型量化方法,一种是支持不同任务(分类,检测,分割等)的数据依赖型压缩方法( Data Dependent Compression ) , 适用于对数据安全要求不是很高,希望追求精度最大化的业务;另一种是数据非依赖压缩方法( Data Independent Compression ),适用于对数据安全要求高,或者业务逻辑不是特别复杂的场景。

最后,在量化工作完成后,我们的工具会自动完成推理图的优化和模型加密,生成可以实际部署的模型文件。配合对应的推理加速库即可在端上运行。从易用性和数据安全性角度出发,我们推荐使用数据非依赖性的压缩方法。

目前,该套工具作为MNN推荐的量化工具广泛应用在阿里集团内多个线下业务场景中。

推理框架

实际中遇到的第二个问题就是真实推理速度问题,毕竟光有易用性是不够的,实打实的业务效果才是业务最想要的。这里我们使用阿里集团其他的兄弟团队提供的推理框架:

  • ARM 架构: 我们采用淘系技术团队研发的 MNN 作为推理框架;
  • GPU 架构: 我们采用机器智能技术团队研发的 falcon_conv 卷积库作为推理框架;
  • FPGA 架构:我们采用服务器研发团队研发的推理框架。

MNN

MNN 是一个轻量级的深度学习端侧推理引擎,核心解决深度神经网络模型在端侧推理运行问题,涵盖深度神经网络模型的优化、转换和推理。目前,MNN已经在手淘、手猫、优酷、聚划算、UC、飞猪、千牛等 20 多个 App 中使用。选用常见的深度神经网络模型 MobileNet V2 和 SqueezeNet V1.1 作为测试样本:Android 方面,以小米6为例,MNN 在 CPU 和 GPU 上领先业界至少30%;iOS 方面,以iPhone 7为例,MNN 在 CPU 和 GPU 上领先业界至少15%。

FPGA

FPGA 上的推理框架由服务器研发团队完成。ResNet18 网络的推理时间只需要0.174ms,目前已知业内最佳性能。在边缘计算产品 alibabaedge 上,基于硬件实现的高效算子,推理速度为边缘 GPU 的两倍。在后面,我们会结合产品形态整体的介绍这一方案。

GPU

falcon_conv 是机器智能技术团队开发的一款由 CUDA C++编写,在 Nvidia GPU 上运行的低精度卷积库,它接受2份低精度( INT8 )张量作为输入,将卷积结果以float/int32 数据输出,同时支持卷积后一些常规操作( scale,batchnorm,relu… )的合并。我们在单张 Tesla P4 GPU 上,对 falcon_conv 的性能与 Nvidia 官方计算库Cudnn v7.1 做了比较,如图所示。几乎所有情况 falcon_conv 都优于 Cudnn ,个别用例有高至5倍的提升,用例选自 RESNET 和 VGG 中耗时较多的卷积参数。

产品化

在业务支持过程中我们遇到的第三个问题是集成化,产品化问题。除了手机类场景外,其他线下业务均需要额外的硬件平台作为支撑。在早先时候,我们更多的是依赖第三方提供的硬件设备,这时候成本,稳定性,可扩展性 成为制约线下项目拓展的几个主要问题。为了解决这些问题,我们根据以往的项目经验,对硬件设备进行归纳,沉淀出两类比较通用的线下产品化方案:智能盒子和一体化相机。每类产品均包含不同型号,以适应不同需求的场景。

智能盒子

我们提供的第一个方案为智能盒子方案。我们可以简单的把智能盒子当作一个适合于中小型场景的边缘服务器。盒子本身提供了多种接口,可以外接 usb/ip 相机,语音模块等传感器。直接本地部署,数据安全性高。我们针对业务特点提供了高低两个版本的智能盒子。其中,高端版本采用阿里巴巴自研的边缘计算产品 Alibaba Edge 。除了完善的硬件设计和高效的推理框架,该盒子还包含完善的编译器支持,具有非常好的易用性。 低端版本则为纯 ARM 的盒子。下面表格给出这两种盒子在性能,成本和适用场景的一个对比。

在这里我们着重介绍一下阿里巴巴自研的边缘计算产品 Alibaba Edge,该产品除了具有高达 3TGFlops 的AI计算能力外,相对边缘 GPU 方案有大幅的价格优势,同时具有云端一体化部署功能,产品平台化,可快速上线,支持大规模运维。

在下面的表格中,我们对比了 LRSSD300+MobileNetV2 的不同硬件设备上的运行时间,希望可以给大家一个更直观的认识。

一体化相机

我们提供的另一个集成方案为一体化相机。一体化相机特别适合云+端的部署模式:线下做相对比较简单的处理功能,云端则深度处理线下传回的信息。达到节约带宽,降低云成本的作用。同时,一体化相机具有方便部署,批量化生产后成本优势高的特点。目前一体化相机已经作为一个重要的载体形式被应用到我们所承接的对集团外合作项目中。

业务合作

在过去的2年间,我们尝试过多种不同的业务模式。在这里我们会列出主要几个不同形式的实例。

菜鸟未来园区

在菜鸟未来园区项目中,我们主要负责基础视觉类算法的输出,由菜鸟智慧园区团队同学负责业务算法和工程服务研发工作。经过半年的共同努力,我们先后完成了离岗睡岗检测,消防通道异常检测,车位占用检测,行人越界检测,入口计数检测等多个功能。

在项目合作的过程中,我们发现计算单元成本高是制约算法大范围推广的一个主要原因。为了解决这个问题,我们联合了服务器研发团队,开发出一版定制化软硬件解决方案:该方案的硬件平台为我们在上文中提到的边缘计算产品 Alibaba Edge,同时配备特别定制的高效模型结构和自研的快速检测算法。新版方案在检测精度几乎无损的情况下,推理速度提升了4-5倍,成本相比边缘 GPU 方案下降了1/2。

模型压缩加速

我们协助阿里集团不同业务同学完成对已有算法模型的量化瘦身与加速工作。例如:手机端 OCR 识别、手机端物体检测、手淘实人认证和刷脸登录/验证、菜鸟自提柜、阿里体育赛事刷脸入场、神州鹰人脸识别云相册等。

总结与展望

经过近两年的努力,机器智能技术实验室线下智能团队深耕线下智能领域。算法方面:我们在低比特量化、稀疏化、软硬件协同设计、轻量级网络设计、端上目标检测等多个方面取得了一定的积累,多项指标达到了业内最佳水平。工程方面:我们积累出了一套 高灵活性,高数据安全性 的训练工具 ; 并在合伙伙伴的帮助下,在ARM,FPGA,GPU 等多个平台下达到了业内最佳的推理性能。产品化方面:我们与合作伙伴一起,研发出适合于不同业务场景的智能盒子与一体化相机。最后,我们很幸运可以在集团内外多个不同形式的业务场景内打磨我们的技术。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同方服务器操作系统安装,同方云服务器安装使用手册

同方云服务器安装使用手册 内容精选换一换制作Docker镜像,有以下两种方法。快照方式制作镜像(偶尔制作的镜像):在基础镜像上,比如Ubuntu,先登录镜像系统并安装Docker软件,然后整体制作快照,即可得到所需软件…

蚂蚁金服面对亿级并发场景的组件体系设计

5 月 6 日,InfoQ 主办的 QCon 2019 全球软件开发大会在北京举行。蚂蚁金服技术专家吕丹(凝睇)在大会上做了《蚂蚁金服面对亿级并发场景的组件体系设计》的分享,我们根据演讲整理如下: 今天,我主要想和大家…

聚焦效率与目标差距,数据才是远程办公的内核!

作者|帆软数据应用研究院 新冠肺炎疫情将远程办公推向了春节后的热度高峰,引爆了远程移动办公应用市场。在“不出门,不聚集”的战疫要求下,远程办公成为企业减小损失、复工过渡的首选。 然而在众多企业如火如荼开展远程办公的同…

“大团队”和“敏捷开发”,谁说不可兼得?

阿里妹导读:当小团队的产出跟不上业务需要,团队就面临规模化的问题。从1个团队到3个团队,仍可以通过简单的团队沟通保持高效协作。当产品复杂到需要5个以上团队同时开发时,我们需要一定的组织设计来保证团队间的顺畅协作&#xff…

英雄联盟祖安服务器要维护多久,祖安玩家的春天!英雄联盟将回归队内语音,娱乐玩家遭殃了?...

英雄联盟之所以能一直保持这么高的人气,就是因为丰富的游戏内容,无论是地图资源、英雄 、符文搭配和出装选择,每隔一段时间就会来一个大革新,而今年英雄联盟更是迎来了史无前例的大更新,装备系统大改,装备界…

plsql不加date

nls_date_format YYYY-MM-DDnls_timestamp_format YYYY-MM-DD NUMBER_OF_PROCESSORS 8

阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云

5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。据估算,云上成本不到传统数据库的1/6。目前,…

在加州最古老的监狱教课是种什么样的体验?

彼得斯登(Peter Stern)是阿里巴巴战略投资部的一名洋小二,是办公室出了名的“空中飞人”。 斯登一年中大部分时间都在各大洲飞来飞去——但无论多忙,每个月他都会去圣昆丁监狱上课。 不好走的“最后一里路” 圣昆丁州立监狱是加…

BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览

一、引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库,国内以阿里云的Cloud HBase、POLARDB…

概率中的 50 个具有挑战性的问题 [05/50]:正方形硬币

一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇…

从HelloWorld看Knative Serving代码实现

概念先知 官方给出的这几个资源的关系图还是比较清晰的: 1.Service: 自动管理工作负载整个生命周期。负责创建route,configuration以及每个service更新的revision。通过Service可以指定路由流量使用最新的revision,还是固定的revision。 2.Route&#x…

策略模式+工厂模式(反射)+枚举代替 大量 if..else if..

实际项目中我们经常碰到需要使用if…else…if的分支判断这种情况。 这种写法带来一些弊端。 一旦分支多太多,逻辑复杂,会导致代码十分冗长,增加阅读难度。 如果需要增加或减少分支,需要改动if…elseif,增大因代码改动而…

我最喜欢的云 IDE 推荐!

云IDE——这是我最喜欢的一种完全避免管理开发环境的新方法。作者 | David Kramer译者 | 弯月,责编 | 郭芮头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)以下为译文:设置和维护开发环境是一件非常麻烦的事情。如…

阿里五年晋升三次,这个程序员要聊聊他的选择

小二穆远是蚂蚁金服的一名程序员,五年晋升了三次,他要聊聊自己的五年阿里之旅,那些变化、坚持和泪水。请看本期的年陈故事会。 说起与阿里的缘分,是因为读书时在T公司实习,不喜欢实习那个组的工作内容,毅然…

IP应用加速技术详解:如何提升动静混合站点的访问速率?

全站加速(DCDN)-IPA是阿里云自主研发四层加速产品,它基于TCP/UDP的私有协议提供加速服务,包括解决跨运营商网络不稳定、单线源站、突发流量、网络拥塞等诸多因素导致的延迟高、服务不稳定的问题,提升传输性能和用户体验…

2020 年最新版 68 道Redis面试题,20000 字干货,赶紧收藏起来备用!

作者 | ThinkWon责编 | 徐威龙来源 | CSDN 博客封图| CSDN 下载于视觉中国Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不…

异常检测的N种方法,阿里工程师都盘出来了

阿里妹导读:互联网黑产盛行,其作弊手段层出不穷,导致广告效果降低,APP推广成本暴增。精准识别作弊是互联网公司和广告主的殷切期望。今天我们将从时间序列、统计、距离、线性方法、分布、树、图、行为序列、有监督机器学习和深度学…

TalkingData的Spark On Kubernetes实践

众所周知,Spark是一个快速、通用的大规模数据处理平台,和Hadoop的MapReduce计算框架类似。但是相对于MapReduce,Spark凭借其可伸缩、基于内存计算等特点,以及可以直接读写Hadoop上任何格式数据的优势,使批处理更加高效…

ORACLE使用批量插入100万测试数据

CREATE TABLE test_data (ID varchar2(32),NAME1 varchar2(9),NAME2 varchar2(100),NAME3 varchar2(100) ); COMMENT ON TABLE test_data IS 测试表;beginfor i in 1 .. 1000000 loopINSERT INTO "DCA"."TEST_DATA" ("ID", "NAME1", &…

阿里技术男的成长史:越想证明自己死得越快……

在上海工作8年后,身为部门经理的钱磊,管理着一家ERP公司的百十来号员工,“再往上爬就是老板和他儿子了……从这个领域的技术角度来讲算是做到了顶。”05年,钱磊就开始关注一家名字奇怪,做事也奇怪的公司。 要不要折腾…