谷歌工程师万字好文:我们为何追求高性能深度学习?如何实现?

作者: Gaurav Menghani

来源: 学术头条

发布日期: 2021-08-01

本文探讨了高性能深度学习的必要性和实施策略文章首先指出尽管取得了巨大进步但其高昂的开销促使我们需要寻找更加经济环保的方法接着介绍了四个核心领域的关键技术和工具压缩技巧蒸馏数据增强自动化NAS最后讨论基础设施的重要性特别是软件生态系统和硬件加速器的角色强调只有综合运用才能真正推动发展前进方向.

深度学习技术的突破性进展彰显了其令人难以置信的潜力,提供了让人兴奋的新的 AI 增强软件和系统。但是,从财政、计算再到环境等几个角度上考虑,训练最强大的模型是极其昂贵的。提高这些模型的效率会在很多领域产生深远的影响,因此,基于这一需求,未来所开发的模型只会有助于进一步扩大深度学习所提供的范围、适用性和价值。

本文将基于 arxiv 论文 Efficient Deep Learning: A Survey on Making Deep Learning Models Smaller, Faster, and Better(“数据实战派”后台回复“HPDL”可获下载链接)首先展示深度学习领域模型的快速增长及其在继续扩大规模的阶段激发了对效率和性能的需求。

随后将给出一个基本框架介绍实现高效深度学习的可用工具和技术并进一步为每个重点领域提供详细的示例盘点工业界和学术界迄今为止的重要探索。

如今无数应用中都有着机器学习的身影过去十年中采用神经网络的深度学习一直是训练新机器学习模型的主要方法它的崛起通常要归功于2012年举办的ImageNet竞赛就在同年多伦多大学的一支团队提交了一个名为AlexNet以首席开发人员Alex Krizhevsky命名的深卷积网络比接下来提交的成绩还要高出41%在此之前人们曾尝试过深卷积但从未兑现承诺90年代卷积层的概念最早由LeCun等人提出类似地若干神经网络也在80年代90年代陆续地进入大众视野究竟是何原因让深网花费如此长的时间才超越手工调优特征工程呢这其中结合了多种因素计算依赖图形处理单元GPU进行训练算法采用ReLU作为激活函数使得梯度反向传播更深深网迭代采用的是Sigmoid或Tanh激活函数除了很小的输入范围外在处达到饱和因此改变输入变量会导致非常微小的梯度而当存有很多层时梯度基本上就消失了三个激活函数的图像如下所示简言之ReLU不会出现消失的问题而且从计算的角度上看Sigmoid和Tanh激活函数均需要复杂度的指数而ReLU通过简单的阈值便可得到值数据ImageNet全球最大的图像识别数据库包含有>1M数千个类型数百张有标注的图像随着互联网产品的出现收集标注数据的成本也不断降低鉴于这一开拓性的工作人们竞相使用越来越多的参数来创建更深的网络如VGGInceptionResNet等架构在随后的几年里相继打破了以往ImageNet竞赛记录如今这些模型也已在现实世界进行了部署我们在自然语言理解NLU领域看到了类似的Transformer架构显著优于之前的基准测试随后BERTGPT-3只需要给定的提示便可续写生动逼真的故事作为最强的文本生成成功引发了人们的关注上述两个都已部署到现实的生产中可以推断研究一直关注改善现有的技术水平因此我们看到了在分类文本分类等基准上的不断优化每一次新突破都会导致增加所需的资源数量以及预测延迟等方面的增加现在诸如GPT-3的自然语言仅一次都要花费数百万美元其中还不包括尝试不同的超参组合微调或手动自动运行调试的成本毫不夸张地说这些高达数十亿甚至数万亿与此同时令人难以置信催生出将其应用于新任务的需求力求突破现有的瓶颈这就产生了一个有趣的问题速度会受其限制具体地说随着新时代的到来变得越来越大并在不同传播难免会面临着以下问题可持续的服务器端扩展大型成本很高虽然可能只是一次性如果使用预训可能是免费的但是持续很长时间段仍可能很昂贵此外对用于培训的数据中心的碳足迹carbon footprint也是一种非常现实的担忧像谷歌Facebook亚马逊每年在其中心上的资本支出高达数十亿美元任何都是非常显著启用设备部署智能手机物联网设备IoT devices的出现应用程序必须是实时的对ML产生了一定的需求其中推理直接发生在设备上这就使得优化它们将要运行的成为当务之急隐私敏感性用户受到各种限制如欧洲GDPR法律能够用少量有效地意味着需要更少的数据收集类似地启用意味着完全可以在用户的而不必将发送到服务器端应用程序New Applications还可以启用在现有约束下无法执行的应用程序爆炸通常同一台机上并发多个这便减少了单个可用资源这可能发生在服务器端也可能位于用于不同功能的不同中的概括来说我们所确定的核心挑战是一个看似宽泛此处明确了需要重点调查研究的两个方面推理主要处理依据给定输出的可能会提及的小吗快不快具体来说这个包含多少磁盘大小RAM消耗各为多少呢涉及到的人提问比如要多长时间需要的能适应内存吗此外还可能包括以下问题需要在给定任务上有预期的性能如果在的任务上有两个同样出色的想要选择其中一个更好更为理想在上都可以做到最佳如果要在受到限制移动嵌入式云则需要注意无论是什么我们都希望达到这意味着选择的对于关注的权衡而言都是最好的绿点表示帕累托最优pareto-optimal没有其他红点相同相反的情况下获得更高的准确性与同时帕累托最边界根据定义比其他因为它们在最有效应该放在考虑之内反过来高效的被定义为一组允许用户只需花少的来同时实现的那么影响又是哪些建模大支柱在建的同时也不容忽视开始构建以方案交付能力时所需的基础便是高性能首先是四大压缩剪枝Pruning这是一种流行的我们可以无关紧要连接从而使变得稀疏LeCun等人发表的最脑损伤OBDOptimal Brain Damage题文中减去了4倍同时还提高了能力和泛化HassibiZhu提出了Optimal Brain Surgeon工作较好的利用误差函数的二次导数信息解析预测权值扰动对的程度自顶向下削弱部分连接权实现结构化差异主要体现在以下几个方面非结构化v/s Structured非结构化的灵活所有一视同仁而在块size>1例如rowwise修剪或在滤波器channelwise经验直觉告诉我们某些相对更容易一些前几层足够小则无法容忍显著分布每层设置相同的预算或者基础上分配调度然而额外的标准该何时想每轮中等量的还是在剪枝开始较快然后逐渐放慢再生Regrowth某些情况下允许再生这样就会百分比的运行实际具备意义的块大小可以辅助提高保留相同Top精度Elsen等人构建约66%稠密高出倍他们通过库NHWCchannelslast标准密集表示转换NCHWchannelsfirstBCSRBlock Compressed Sparse Row适用于ARMWebAssemblyJavaScript浏览器执行编程内核尽管引入了一些约束总的来说朝着改进迈出了有希望一步量化Quantization另一种思路即典型几乎所有权重都是位浮如果我们愿意降低一些质量的话准确率精度召回率指标较低精度的格式位存储例如持久化为最小映射最大线性地外推extrapolate整数值足以减少的大小例如b=8则将位浮无符号unsigned integers空间减少在进行恢复原始由于舍入误差lossy representation鉴于大量的内置冗余小型敏感性强可能会降低精度实验的方式模拟过程中行为解决这个问题添加节点量化dequantizeactivation权重矩阵看起来与阶段这种称为Fake Quantization方式使得模式具有更强鲁棒注意现在正在training activationWeight Jacobkrishnamoori详细描述步骤由于都是在模拟的模式下运行的这意味着所有接收都可以较低表示经过后应该很强的鲁棒能够直接低数学运算移动嵌入式物联网受限GEMMLOWP提速依赖硬件支持ARM处理器Neon intrinsicTensorflow Lite框架允许用户直接底层烦恼除了还有些技术低秩矩阵分解KMeans聚类共享等等活跃总的来说用来减少提升提炼Distillation前述尝试不同的方式最佳性能Hinton集合暗知识dark knowledge| Hinton said: Dark knowledge is the most of what deep learning methods actually learn教师modelteacher model现有标签生成软label.soft labels捕获的关系卡车更像汽车而非苹果学生networkstudent network最小化crossentropy loss缩放可以根据结果Sanh蒸馏一个保留了的CPU占用率少速度约Data Augmentation计算机视觉弥补不足扩充目的提升涉及转换不需要重新过程成为不变labelinvariant transformations如果您教旋转不会改变标签其他的翻转拉伸裁剪高斯噪声检测情感倾向引入拼写错误SelfSupervised Learning邻近快速的进展通用完全不需要标注意义对比contrastive learningtrain modelinput similar inputsimilar representationsrepresentations ndimensional embeddingsembeddingsuseful featurespretrainingfine tuningULMFIT率先提出了通用的想法next word taskWikiText源自英文维基百科页面preprocessing unlabelled dataMasked Language Model句子predict missing wordsBERTarchitecturemulti layer Transformer structureattention mechanismefficiently solves NLP longterm dependency problemsgeneral encoderbetter handle other tasksOpenAI GPTfamily NLU benchmarksexisting infrastructurepowerful software hardware foundationTensorflow ecosystempopular machinelearning frameworklarge enterprises production processsupport widest range efficiencysoftware Tensorflow Lite for OnDevice Use Caseslowresource environmentsinference TensorflowJS TFecosystem library browser Nodejs trainingrunning neural networks WebGL interface GPU accelerationimported TFcreated new modelsTFmodel optimization toolkitgraph quantizationsparsityweight clusteringXLAaccelerated linear algebra graph compilercustomized operations kernelsoptimized linear algebra calculationsPyTorch ecosystemacademia industry popular machinelearning platform availability functionality comparable TensorFlowdevice case light interpreter mobile PyTorch posttraining quantizationgraph optimizationsgeneraloptimization PyTorch JIT TorchScript Python subset added typecheckingfeaturesbridge researchdevelopment flexible code deployable production inferencerepresentationmobile execution main way GlowTensorComprehensioncompilersgenerate lowerlevel IRIRhigher level IRIRPyTorch provides detailed guide core ideasuse Pytorch JIT pointwise operationsaddition subtraction multiplication divisionetcenable buffer checkpointinglayersoutputs memorybackward passremaining layerscomputationally expensive large outputsactivationsspecific device optimizationscuDNNlibrary NVIDIA GPUmixed precision trainingGPU sectionTrain Distributed Data Parallel Trainingdatasets multiple GPUshardware optimized libraries ARM Cortex series processors SIMDsingle instruction multi datainstructionsvectorizedoperationsbatchdata Neon instructionsQNNPACK XNNPACKlibrariesoptimized ARM Neonsupport x86 SSE2AVXarchitecturesused quantized inference mode TFLite floatpointmodelsAccelerate iOS NNAPI Androidabstract hardwarelevel acceleration decisionslowlevel librariesNVIDIA GPUsgraphics processing unitsoriginally designed accelerate computer graphics CUDA library availability expanded beyond Alexnet ImageNet competition standardizing usage deep learning models since then Nvidia released several iterations microarchitecturesincreasingly focused performanceintroduced Tensor Cores dedicated execution units support range precisionsfp32 fpbfloatintint4reduced precision multiplyaccumulate MAC operation BCexpensive operation reduced precision completedB = B × C + DA Dprecisions fpA Dselected based architectureNVIDIA reports faster trainingspeed depending architecturesupports faster sparse inferencesparse layers uptimes NVidia cuDNNslibrarystandard neural network operations versionsfully connectedconvolutionalactivation etcGoogle Cloud servicepublic accesscore architectureutilizes Systolic Array designmesh topologyunits calculate partial results sequentially passed next unitclocksteprhythmic mannerheart contractionsystore intermediate resultsmemoryeach chip two coresgridboard interconnected chipsfurther expand traininfopodsaccording publicly released numbers each chip vcan teraflops pod petaflopsinternal applications Google search general BERTDeepMind AlphaGoAlphaZeroEdgeTPUASICchiplinear algebraic computationsrestricted subsets intquantifiedensorfliteledge devicesbudgetmuch smallerdesigned custom ASICchipanalogous specializedaccelerationlinear algebraic computationsinferencesmaller than cent coinmultiple IoTdevicesdeployed Raspberry Pi development boardsPixel Neural Core Pixel smartphonesindependent soldered PCBsJetson Nano module Jetsonseries acceleratorsembedded IoTdevicesenable DLapplicationsNano lightweight deployment lowpower System on ModuleSoMTXvariantsbased Volta Pascal architectureshome automationindustrial robotscomputeintensive applications

UUID: 098f076e-768e-4d78-bd18-c6dd8f789660

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/学术头条公众号-pdf2txt/学术头条2021年/2021-08-01_谷歌工程师万字好文:我们为何追求高性能深度学习?如何实现?.txt

是否为广告: 否

处理费用: 0.0167 元