高效的深度学习:对深度学习模型进行更小,更快,更好的调查综述

  • 摘要
  • 一、引言
    • 高效的深度学习
  • 二、五个主要方面提升模型效率
    • 2.1 压缩技术
    • 2.2 学习技术
    • 2.2 自动化
    • 2.4 高效的架构
    • 2.5 基础设施

论文的作者为微软研究院,即做模型轻量化

摘要

深度学习已经彻底改变了计算机视觉,自然语言理解,语音识别,信息检索等领域。然而,随着深度学习模型的逐步改进,他们的参数数量,延迟,培训所需的资源等都有显着增加。因此,要注意模型的这些足迹度量,而且不仅仅是其质量变得重要。我们呈现并激励深度学习效率的问题,随后对模型效率的五个核心领域进行了彻底的调查(跨越式建模技术,基础设施和硬件),并在那里进行了精彩的工作。我们还提供了一个基于实验的指南以及代码,用于从业者优化其模型培训和部署。我们相信这是在高效的深度学习空间中覆盖模型效率景观的第一个全面调查,从建模技术到硬件支持。我们的希望是,本调查将向读者提供精神模型和对现场的必要了解,以应用通用效率技术,立即获得显着改进,并为他们提供进一步的研究和实验的想法,以实现额外的收益。

一、引言

  • 在培训或部署模型时,深入学习从业者可能面临以下挑战。

可持续服务器端缩放:培训和部署大型深度学习模型成本高昂。虽然培训可能是一次性成本(或者如果使用预先训练的模型),则可以长时间部署和让推理运行在服务器端RAM,CPU等的消费方面是昂贵的.对于像谷歌,Facebook,亚马逊等的组织,也有一个非常真正的令人担忧的数据中心碳足迹,甚至可以花费数十亿美元每年资本支出他们的数据中心。

启用On-Device部署:某些深度学习应用程序需要在IOT和智能设备上运行RealTime(其中模型推断直接在设备上发生),以实现多种原因(隐私,连接,响应性)。因此,它变得必须优化目标设备的模型。

隐私和数据灵敏度:当用户数据可能很敏感时,可以使用尽可能少的数据。因此,有效地培训具有数据分数的模型意味着需要更小的数据收集。

新应用程序:某些新应用程序提供现有的现有机型的新约束(围绕模型质量或足迹)可能无法解决现有的型号。

模型的爆炸:虽然一个单数模型可能很好,但在不同应用程序的相同基础架构上训练和/或部署多个模型可能最终耗尽可用资源。

高效的深度学习

**推理效率:**这主要处理有人部署推理模型的问题(计算给定输入的模型输出),请问。模特小吗?它快速等吗?更具体地说,模型有多少参数,磁盘大小,推理期间的磁盘消耗,推理延迟等。

**培训效率:**这涉及某人培训模型的问题,例如模型训练多久?多少设备?模型可以适合内存吗?。它也可以包括问题,如,模型需要多少数据在给定任务上实现所需的性能?

二、五个主要方面提升模型效率

2.1 压缩技术

这些是一般的技术和算法,它通常通过压缩其层来优化模型的架构。典型示例是量化[82],其通过降低其精度(例如,从32位浮点值到8位无符号整数)来压缩层的权重矩阵,其质量最小。

2.2 学习技术

这些是专注于培训模型的算法(以减少预测错误,需要更少的数据,收敛速度更快等)。然后可以通过修剪所需的参数的数量来更换改进的质量/更高的占地面积/更有效的模型。学习技术的示例是蒸馏[75],其通过学习模仿更大的模型来允许提高较小模型的精度。

2.2 自动化

这些是使用自动化改进给定模型的核心度量的工具。一个例子是超参数优化(HPO)[61]在优化超参数有助于提高准确性,然后可以为具有较小参数的模型交换。同样,体系结构搜索也落在此类别中,其中架构本身被调整,搜索有助于找到优化丢失/准确性的模型,以及诸如模型延迟,模型大小等的其他度量。

2.4 高效的架构

这些(卷积层,关注等)设计的基本块,这是在它们之前使用的基线方法(分别的完全连接的层和RNNS)的显着飞跃。作为示例,卷积层引入了用于图像分类的参数共享,这避免了为每个输入像素学习单独的权重,并且还使它们能够鲁棒到过度装备。同样,注意层[21]解决了SEQ2SEQ模型中信息瓶颈的问题。这些架构可以直接用于效率提升。

2.5 基础设施

最后,我们还需要基础设施和工具的基础,帮助我们建立和利用高效模型。这包括模型训练框架,例如Tensorflow [1],Pytorch [119]等(以及具体用于部署高效模型所需的工具,例如Tensorflow Lite(TFLITE),Pytorch Mobile等)。我们依靠基础设施和工具来利用有效模型的收益。例如,要获得两者使用量化模型的大小和延迟改进,我们需要推动平台来支持量化模式的公共神经网络层。

2021-06-23对深度学习模型进行更小,更快,更好的综述——微软研究院相关推荐

  1. 收藏 | PyTorch深度学习模型训练加速指南2021

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:LORENZ KUHN 编译:ronghuaiyang ...

  2. 用于阿尔茨海默症分期早期检测的多模态深度学习模型

    目前大多数阿尔茨海默症(AD)和轻度认知障碍(MCI)研究使用单一数据模式来预测,例如AD的分期.多种数据模式的融合可以提供AD分期分析的整体视图.因此,我们使用深度学习对成像(磁共振成像(MRI)) ...

  3. 在深度学习模型的优化上,梯度下降并非唯一的选择

    如果你是一名机器学习从业者,一定不会对基于梯度下降的优化方法感到陌生.对于很多人来说,有了 SGD,Adam,Admm 等算法的开源实现,似乎自己并不用再过多关注优化求解的细节.然而在模型的优化上,梯 ...

  4. 深度学习模型部署-triton

    链接:https://www.zhihu.com/question/517971355/answer/2721126560 以前学习过tf-server 部署和移动端部署方式,今天发现一个新的部署方式 ...

  5. 语音去噪深度学习模型论文总结(大多基于transformer)

    深度学习模型: ​ 我总结了之前看的模型,并又寻找了基于transformer的模型,挑选了四个性能较好(评判标准是各种语音评价指标.该论文提出的模型与已有模型相比较得到的结果)的模型,其中前面三个是 ...

  6. 论文解读:CLNN-loop:预测不同细胞系和CTCF结合位点 (CBS) 对类型中CTCF介导的染色质环的深度学习模型

    Title:CLNN-loop: A deep learning model to predict CTCF-mediated chromatin loops in the different cel ...

  7. 利用深度学习模型预测双色球

    1.前言 深度学习模型可以简单理解为一个高度非线性的复合函数,网路输入可以看作自变量x,输出可以看作因变量y.看过网上其他人做的一些双色球预测,基本上是基于BP神经网络(也就是全连接神经网络)和LST ...

  8. 用 Java 训练深度学习模型,原来这么简单

    作者 | DJL-Keerthan&Lanking 来源 | HelloGitHub 头图 | CSDN下载自东方IC 前言 很长时间以来,Java 都是一个很受企业欢迎的编程语言.得益于丰富 ...

  9. 如何在浏览器上跑深度学习模型?并且一行JS代码都不用写

    翻译 | 林椿眄 编辑 | 周翔 2017 年 8 月,华盛顿大学的陈天奇团队发布了 TVM,和 NNVM 一起组成深度学习到各种硬件的完整优化工具链,支持手机.CUDA.OpenCL.Metal.J ...

  10. 如何部署深度学习模型?

    应用背景介绍 早在遥远的1989年,一家叫做ALVIVN的公司首次将神经网络用在汽车上,进行车道线检测和地面分割.时至今日,深度学习已经应用在自动驾驶系统的多个分支领域.首先是感知领域,常用的传感器有 ...

最新文章

  1. Nginx 反向代理工作原理简介与配置详解
  2. java怎么快速创建构造方法,详解系列文章
  3. 对 Accordion 组件使用样式
  4. Error while retrieving the leader gateway. Retrying to connect to akka.tcp://flink@laptop:xxxx
  5. 如何在Go中编写防弹代码:不会失败的服务器工作流程
  6. socket 选项 详细说明
  7. 汇编代码调用main和分配内存
  8. python分词训练_python练习17:用jieba分词做关键词提取,用matplotlib做可视化
  9. 样本方差的期望_如何理解方差和偏差
  10. 先验概率、后验概率与似然估计
  11. 应有那个数据库操作类的一个简单实例
  12. [BZOJ1031] [JSOI2007] 字符加密Cipher (后缀数组)
  13. OpenCore引导配置说明0.6.9版-基于OpenCore-0.6.9-05-04正式版
  14. cocosBuilder使用总结
  15. 老男孩 linux 2014 360下载,360安全卫士2014旧版
  16. apache ab压测与参数传递
  17. RGB-D深度相机原理
  18. 【lomoyi笔记】2020.7.31VMware虚拟机安装黑苹果macOS Catalina10.15
  19. java获取当天剩余时间
  20. hadoop是什么?

热门文章

  1. TB/T3139-2021机车车辆有害物质限量新标准解读
  2. 请大声说出我是猪 整蛊代码_大声笑的完整形式是什么?
  3. 安装和使用Dplayer
  4. 需要注意苹果的订阅机制!
  5. 【论文简述及翻译】GA-Net: Guided Aggregation Net for End-to-end Stereo Matching(CVPR 2019)
  6. Biomedical images dataset findings(4 Chest page)
  7. 锐龙r7 5800X和i9 10900k 哪个好
  8. Sketch for mac(矢量绘图UI设计)
  9. 学习笔记17 差分方程
  10. php设置自动换行,网页中的文字怎么设置自动换行