专栏首页AI科技大本营的专栏首次在手机端不牺牲准确率实现BERT实时推理,比TensorFlow-Lite快近8倍,每帧只需45ms

首次在手机端不牺牲准确率实现BERT实时推理,比TensorFlow-Lite快近8倍,每帧只需45ms

作者 | 王言治

出品 | AI科技大本营(ID:rgznai100)

基于Transformer的预训练模型在许多自然语言处理(NLP)任务中取得了很高的准确度。但是这些预训练模型往往需要很大的计算量和内存。由于移动平台的存储空间以及计算能力的限制,这些模型很难实现在移动端的部署。

因此,在这个边缘计算越来越重要的今天,如何有效的压缩这些大模型成为了一个重要的研究课题。

在过去的一年中,为了减少BERT模型的大小,同时保持多个下游NLP任务的准确性,很多小模型被相继提出。例如,DistilBERT 和TinyBERT是通过减少Transformer Block数量来达到减小模型的目的,然而精确度相比于BERT-base有明显下降。

MobileBERT在BERT-base的基础上,成功的将模型尺寸比减小了4倍,并且保持了较小的精度损失。有意思的是,如果我们将MobileBERT与VGG-16进行对比, MobileBERT的计算量比VGG-16小5.3倍,但计算延迟却比VGG-16的高6.2倍。

造成这种现象的原因是MobileBERT拥有超过2000个计算层(与BERT-large相同),这会在计算过程中产生大量的中间结果,最终导致严重的计算延迟。

这也成为了将拥有较深层的网络模型部署在移动端实现实时推理的另一大阻碍。

因此,我们不禁思考,是否存在一种有效的解决方案,可以在不牺牲BERT模型准确率的情况下,在移动端实现实时推理?

近日,美国东北大学王言治研究组和威廉玛丽学院任彬研究组共同提出了名为CANAO的编译器感知的神经网络结构优化框架,在保持了与BERT原模型相近的准确率的同时,他们成功的将模型大小减少了4.8倍,速度提升了5倍。

相比于TensorFlow-Lite(TFLite), CANAO框架在速度方面提升了7.8倍,延迟仅为45ms,首次实现在手机端的高准确率(几乎不牺牲准确率)、实时自然语言处理任务。

他们将CANAO与三种模型BERT-base, DistilBERT, MobileBERT在准确率和延迟上做了对比。CANAOBERT w/o distill.是直接训练的小模型,CANAOBERT是通过知识蒸馏法训练的模型,CANAOBERT是通过NAS进一步优化模型宽度得到的模型。

可以看出,三个CANAO模型的延迟都小于对比的三种模型。相比于BERT-base,他们的模型在CPU和GPU上分别快了5.2倍和4.1倍,准确率仅降了0.5-2%。相比于MobileBERT, 他们的模型在CPU和GPU上分别快了1.49倍和1.53倍,准确率仅降了0.4-1%。

上表显示了他们的编译器感知的神经网络结构优化框架在DistilBERT,BERT-base以及他们的CANAOBERT模型上取得的效果,并与TFLite框架(只支持移动端CPU)进行了比较。CANAO框架可以分别在CPU和GPU上提升2倍和2.4倍的速度。未进行任何优化的BERT-base模型在TFLite上的运行速度是382ms, 而他们的压缩模型在CANAO框架下最快能达到45ms,速度提升了7.8倍。

他们的研究最先起始于对NLP模型的深度与模型准确率关系的探究。

目前大多数预训练NLP模型都很深,从计算层数来算的话,BERT-base有1000+层,Bert-large和MobileBERT有2000层,这会导致在移动端部署时很高的计算延迟。

那么NLP模型真的需要这么多层数吗?如果需要的话,要如何解决高延迟的问题呢?

模型深度vs模型准确率

首先,对于层数问题,他们做了多组对比实验。如下表所示,在拥有相同的计算量的前提下,他们分别使用了一个深且窄的网络结构和一个浅且宽的网络结构,并进行了准确率的对比,以此来探究模型深度与准确率的关系,这些模型是通过BERT-large蒸馏得到。

通过对比实验结果可以发现,在相同的计算量下,较深的网络确实比较浅的网络在准确率方面有更好的表现,从而也在一定程度说明了网络深度对于NLP模型的必要性。

那么要如何解决深度带来的高延迟问题呢?

他们提出了CANAO编译器感知的神经网络结构优化框架,其中包括:

1.基于轻量级多项式的层融合技术(Lightweight Polynomial-based Layer Fusion)

2.编译器感知的神经结构搜索技术(Compiler-aware Neural Architecture Search)

基于轻量级多项式的层融合技术

这是一种基于编译器的优化技术,通过有效的合并多个计算层,来大量减少由多次存取层间结果带来的计算延迟。

编译器感知的神经结构搜索技术

他们是首个将编译器优化信息作为反馈信息加入到神经结构搜索的循环中,来实现对网络模型的协同优化,让模型同时拥有高准确率和低延迟。

虽然使用网络延迟来优化网络结构的硬件感知神经结构搜索(hardware-aware NAS) 已经被提出,但是在NAS和编译器优化之间仍然缺少一些联系。

例如,现有的支持硬件的NAS: MnasNet、FBNet、ProxylessNAS都采用通用的、非优化的编译器。对于具有较浅层数的CV应用来说尚可达到较好的效果,但是对于具有数百甚至数千层的网络,如果没有编译器优化的协助,则很难实现低延迟的目标。

而他们提出的CANAO编译器感知的神经网络结构优化框架可以让搜索出的模型满足编译器优化后的对计算资源的高利用率,从而在保持高准确率的前提下,实现对BERT类模型在移动设备上的实时推断。

Demo视频见详见B站:

https://www.bilibili.com/video/BV1Wp4y1a7RK

更多技术细节可以查阅文章

https://arxiv.org/abs/2009.06823

结语

在移动手机普及的今天,如何在移动端等资源受限的设备上使用 BERT 模型,是一个极具挑战问题。而CANAO编译器感知的神经网络结构优化框架提供了一个有效的解决方案,它对BERT模型进行结构优化,并在编译器优化的协助下,在移动端实现了高准确率、实时自然语言处理。

作者简介:

王言治是美国东北大学电子与计算机工程系助理教授。他在清华电子系和南加州大学拿到本科和博士学位。他的主要研究方向是深度神经网络的加速与安全性。他们的CoCoPIE压缩编译协同优化框架可以实现大多数神经网络在移动端的实时推理。他的文章广泛发表于各个顶会顶刊,包括机器学习方向AAAI,CVPR,ICML,ICCV,ICLR,IJCAI,ECCV等,电路与设计自动化方向DAC,ICCAD,ISSCC,FPGA等,计算机系统方面ASPLOS,ISCA,MICRO,HPCA,CCS,VLDB,PLDI,ICS,PACT等。他的文章引用超过7200次,得过Google,Mathworks, Intel等研究奖项,得过4项最佳论文奖,另外10次提名,多次设计竞赛奖项。他的研究工作被媒体广泛报道和引用超过400次。他的多位学生已经在各个学校担任教职,包括康涅狄格大学,克莱姆森大学等,工作单位包括谷歌、脸书、腾讯、滴滴(超新星员工)。

OpenCV 实现视频稳流,附Python与C++代码!| 防抖技术
文章分享自微信公众号:
AI科技大本营

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 超越YOLOv4-tiny!比YOLOv3快7倍!YOLObile:移动端上的目标检测

    https://github.com/CoCoPIE-Pruning/CoCoPIE-ModelZoo/tree/master/YOLObile

    Amusi
  • AAAI2021 | 在手机上实现19FPS实时的YOLObile目标检测,准确率超高

    随着近年来 CNN 在目标检测领域的发展和创新,目标检测有了更加广泛的应用。考虑到在实际场景中的落地需求,目标检测网络往往需要在保持高准确率的同时拥有较低的计算...

    公众号机器学习与生成对抗网络
  • 深度学习落地移动端——Q音探歌实践(二)

    接上文 上一节内容里,我们大致介绍了我们对移动端可用的硬件条件的探索,接下来,我们更专注于介绍一些专注于移动端设备的机器学习框架,以及在Q音探歌,我们接入深度...

    QQ音乐技术团队
  • 1.3MB的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源

    这是个模型非常小、号称目前最快的YOLO算法——大小只有1.3MB,单核每秒148帧,移动设备上也能轻易部署。

    用户3578099
  • 1.3MB的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源

    这是个模型非常小、号称目前最快的YOLO算法——大小只有1.3MB,单核每秒148帧,移动设备上也能轻易部署。

    AI算法与图像处理
  • 1.3MB超轻YOLO算法!全平台通用,速度快上45%丨开源

    这是个模型非常小、号称目前最快的YOLO算法——大小只有1.3MB,单核每秒148帧,移动设备上也能轻易部署。

    IT大咖说
  • YOLO-Fastest:目前最快的YOLO网络!移动端上可达148 FPS

    这是个模型非常小、号称目前最快的YOLO算法——大小只有1.3MB,单核每秒148帧,移动设备上也能轻易部署。

    深度学习技术前沿公众号博主
  • 加速 BERT 模型有多少种方法?从架构优化、模型压缩到模型蒸馏最新进展详解!

    原文链接:https://blog.inten.to/speeding-up-bert-5528e18bb4ea

    AI科技评论
  • 加速BERT模型:从架构优化、模型压缩到模型蒸馏

    原文链接:https://blog.inten.to/speeding-up-bert-5528e18bb4ea

    AI研习社
  • 【NLP】加速BERT:从架构优化、模型压缩到模型蒸馏最新进展详解

    原文链接:https://blog.inten.to/speeding-up-bert-5528e18bb4ea

    yuquanle
  • 骁龙8四倍AI算力「硬科技」:上可超分下可增强信号,多个算法同时跑

    11 月 30 日,高通发布的全新一代骁龙 8 移动平台(骁龙 8 Gen 1)让我们对即将推出的安卓旗舰手机有了期待,从最近解禁的跑分来看,这块芯片 GPU ...

    机器之心
  • 精度 VS 效率:模型越小,精度就一定越低吗?

    以下是我最近在伦敦 O’Reilly AI Conference 和 DroidCon 上的两次谈话的改编。

    AI研习社
  • 加速BERT:从架构优化、模型压缩到模型蒸馏最新进展详解

    BERT 在 NLP 领域的地位正如 ResNet 在 CV 领域的地位一样,属于里程碑的进展。目前,BERT 已经成为 NLP 深度学习管道中的重要组成部分。

    zenRRan
  • 没数据也能玩转BERT!无监督语义匹配实战

    对于字面上的匹配总体来说并不复杂,但实际效果就仅限于有字符交集的词语。若是想要上升到语义之间有相关度,就可以化归为学术界常见的语义匹配的问题。

    zenRRan
  • Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍

    Facebook发布了一个开源框架,叫QNNPACK,是手机端神经网络计算的加速包。

    量子位
  • 【工程】深度学习模型部署的那些事儿

    当我们千辛万苦完成了前面的数据获取、数据清洗、模型训练、模型评估等等步骤之后,终于等到老大说“上线”啦。想到辛苦训练出来的模型要被调用还有点小激动呢,可是真当下...

    yuquanle
  • 【干货】模仿人类的印象机制,商汤提出精确实时的视频目标检测方法

    【导读】最近,针对视频目标检测中速度精度难以两全的问题,来自商汤科技(SenseTime)的学者发表论文提出一个新的概念——印象网络,其体现出了自然高效的特征聚...

    WZEARW
  • AIoT应用创新大赛-基于TencentOS Tiny 的多功能行人检测仪

    大家好,很高兴能够参与这次腾讯云AIoT应用创新大赛,非常希望能够在这次比赛中得到收获与提升,同时也希望能够通过这次比赛能与各位交流学习。

    jj_俊
  • 资源 | 让手机神经网络速度翻倍:Facebook开源高性能内核库QNNPACK

    为了将最新的计算机视觉模型部署到移动设备中,Facebook 开发了一个用于低密度卷积的优化函数库——QNNPACK,用在最佳神经网络中。

    机器之心

扫码关注云+社区

领取腾讯云代金券