当前位置: 首页 > news >正文

做旅游网站一年能挣多少苏州网站建设系统电话

做旅游网站一年能挣多少,苏州网站建设系统电话,一起做网店,企业网络安全培训内容文 | Sheryc_王苏本文首发于NLP宝藏公号【夕小瑶的卖萌屋】#xff0c;疯狂暗示#xff01;这个世界上有两种极具难度的工程#xff1a;第一种是把很平常的东西做到最大#xff0c;例如把语言模型扩大成能够写诗写文写代码的GPT-3#xff1b;而另一种恰恰相反#xff0c;…文 | Sheryc_王苏本文首发于NLP宝藏公号【夕小瑶的卖萌屋】疯狂暗示这个世界上有两种极具难度的工程第一种是把很平常的东西做到最大例如把语言模型扩大成能够写诗写文写代码的GPT-3而另一种恰恰相反是把很平常的东西做到最小。对于NLPer来说这种“小工程”最迫在眉睫的施展对象非BERT莫属。从18年那个109M参数的BERT到52M参数的蒸馏后的DistilBERT再到14.5M参数的蒸馏更多层的TinyBERT最后到12M参数的层级共享的ALBERT曾经那个在集群上加载参数都费劲的BERT现在甚至已经可以跑在手机平台上了。当我们为BERT的轻量化欢呼雀跃之时有这样一群人站了出来——只是手机端可不够他们的理想是让BERT跑在物联网设备上跑在低功耗芯片上跑在我们能触及的每一个电子器件上这样一群来自哈佛/塔夫茨/HuggingFace/康奈尔的软件和硬件极客们此刻已披上了法袍化身为为BERT极限瘦身的炼金术士向着这个看似不可能的目标添加着许多让人意想不到的配方…论文题目EdgeBERT: Optimizing On-Chip Inference for Multi-Task NLP论文链接https://arxiv.org/pdf/2011.14203.pdfArxiv访问慢的小伙伴也可以在【夕小瑶的卖萌屋】订阅号后台回复关键词【0105】下载论文PDF~配方基底ALBERT出处ALBERT: A Lite BERT for Self-supervised Learning of Language RepresentationsICLR20链接https://arxiv.org/pdf/1909.11942.pdfEdgeBERT是在ALBERT的基础上进行优化的。ICLR20上谷歌提出的ALBERT是目前最佳的BERT压缩方案。相比于过去利用知识蒸馏从原始BERT模型得到压缩模型例如DistilBERT [1]、TinyBERT [2]和利用浮点数量化得到压缩模型例如Q8BERT [3]ALBERT选择直接抛弃BERT的预训练参数只继承BERT的设计思想。正所谓不破不立继承BERT灵魂的ALBERT仅用12M参数就取得了和其他BERT变体相当的性能。ALBERT对BERT的设计采取了以下三点改进嵌入层分解BERT中WordPiece的嵌入维度和网络中隐藏层维度一致。作者提出嵌入层编码的是上下文无关信息而隐藏层则在此基础上增加了上下文信息所以理应具有更高的维数同时若嵌入层和隐藏层维度一致则在增大隐藏层维数时会同时大幅增加嵌入层参数量。ALBERT因此将嵌入层进行矩阵分解引入一个额外的嵌入层 。设WordPiece词汇表规模为 嵌入层维度为 隐藏层维度为 则嵌入层参数量可由 降低为 。参数共享BERT中每个Transformer层参数均不同。作者提出将Transformer层的所有参数进行层间共享从而将参数量压缩为仅有一层Transformer的量级。上下句预测任务→句序预测任务BERT中除语言模型的MLM任务外还进行了上下句预测任务判断句2是否为句1的下一句然而该任务被RoBERTa和XLNET等模型证实效果一般。作者提出将其替换为句序预测任务判断句2和句1之间的句子顺序来学习文本一致性。ALBERT的设计相当成功成为了压缩BERT的经典范例而为了做到最极限压缩BERT以ALBERT作为起点确实是个不错的主意。ALBERT已经如此强大EdgeBERT又能压到什么程度作者一上来就用一张在QQP上的内存占用/运算量/性能比较图吊足了读者的胃口。注意纵坐标的内存占用量是对数刻度本文对于ALBERT的利用除了作为初始化参数外还在对下游任务做fine-tune时利用已经fine-tune好的ALBERT作为teacher进行知识蒸馏来进一步提升模型性能。初级配方算法优化1. 基于熵的提前退出机制出处DeeBERT: Dynamic Early Exiting for Accelerating BERT InferenceACL20链接https://arxiv.org/pdf/2004.12993.pdfALBERT虽好但Transformer太深了算起来太慢让他变浅一点怎么样ACL20的DeeBERT恰好就提出了一种动态的提前退出机制Early Exit。这一机制的设计是希望让简单的文本经过较少的运算而复杂的文本经过更多的运算。实现上DeeBERT向 层的BERT模型添加了 个“出口层”分类器Early Exit Off-Ramps。出口层分类器 被放置在第 和 层Transformer之间作为判断第i层Transformer的信息是否足以进行推断的标志。进行推断时从最底层的分类器开始逐层计算出口层分类器的熵当某一层的出口层分类器熵小于某个阈值时则将该出口层分类器结果作为模型结果省去后续层的计算。上图表现的是不同的熵阈值在MNLI、QQP、SST-2、QNLI四个数据集上的平均退出层数、理论运行时间节省和相应的准确度。添加提前退出机制后在Acc损失1个百分点时能够在这四个数据集上分别降低30%、45%、54%和36%的理论运行时间在Acc损失5个百分点时能将在这四个数据集上的理论运行时间的降低进一步降低至44%、62%、78%和53%。2. 动态注意力范围出处Adaptive Attention Span in TransformersACL19链接https://arxiv.org/pdf/1905.07799.pdfALBERT虽好但Attention范围太广了算起来太慢让他变窄一点怎么样ACL19的Adaptive Attention提出的动态注意力范围正是试图通过这种方法减少注意力计算的。在Transformer的多头自注意力机制中不同head对应的注意力范围并不一致而让每一个head都对所有token进行注意力运算无疑增添了无用开销。为此Adaptive Attention为每一个head添加一个不同的mask使得每个token只能对周边的token计算注意力从而降低矩阵运算的开销。具体地mask函数 基于两个token之间的距离为注意力机制的权重计算添加了soft masking。注意力机制中的权重 变为 其中 为控制soft程度的超参数 为序列截止到token 的长度原文采用了Transformer Decoder结构学习语言模型故每个token只能于自己之前的token计算注意力。在EdgeBERT中没有提及公式不过根据模型图的结构来看分母应修改为对整个序列求和。mask函数中的 为mask的边界此边界值会跟随注意力的head相关参数和当前输入序列变化对于注意力机制中的每一个head 有 其中 、 可训练 为sigmoid函数。EdgeBERT甚至对Adaptive Attention又进一步做了简化 连算都不用算了直接给每一个head赋一个可学习的 连输入序列都不考虑了多出来的参数只有12个 因为有12个head。那么这样做的结果如何呢作者将所有序列都pad/trunc到128长度经过实验得到了一个惊人的结果表中展示的是经过优化后各个head的 值和模型在MNLI/QQP/SST-2/QNLI四个任务上的准确度。在一大半head几乎完全被mask掉 之后模型居然只在这几个任务上掉了0.5甚至0.05的准确度而这一方法也为模型带来了最高 的计算量降低。3. 一阶网络剪枝出处Movement Pruning: Adaptive Sparsity by Fine-TuningNeurIPS20链接https://arxiv.org/pdf/2005.07683.pdfALBERT虽好但参数存起来占用的内存太长了开销太大让他变短一点怎么样这里的网络剪枝方式使用到了NeurIPS20的一篇针对模型Fine-tune过程的剪枝算法。该论文的作者提出传统的零阶网络剪枝即给模型里的参数绝对值设定一个阈值高于它的保留低于它的置零的方法并不适用于迁移学习场景因为该场景下模型参数主要受原始模型影响却需要在目标任务上进行fine-tune和测试所以直接根据模型参数本身剪枝可能会损失源任务或目标任务的知识。与此相反作者提出一种基于Fine-tune过程中的一阶导数进行剪枝的Movement Pruning尽可能保留fine-tune过程中更加偏离0的参数。具体地对于模型参数 为其赋予同样size的重要性分数 则剪枝mask 。前向传播过程中神经网络利用加mask的参数计算输出的各分量 。反向传播过程中利用Straight-Through Estimator[4]的思想将 省略近似得到损失函数 对重要性分数 的梯度 对模型参数有将上述两个式子代换后省略 的mask矩阵 后可得 根据梯度下降当 时重要性 增大此时 与 异号。这表示只有当在反向传播时为正的参数变得更大或为负的参数变得更小时才会得到更大的重要性分数避免被剪枝。4. 零阶网络剪枝出处Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman CodingICLR16链接https://arxiv.org/pdf/1510.00149.pdf变短是变短了但感觉这剪得还不够好啊再换一种算法让它更短一点怎么样这种方法的做法非常简单给模型里的参数设定一个绝对值阈值绝对值高于它的保留绝对值低于它的置零。由于方法实在太过简单不用公式也能很容易理解的吧(・ω・)一阶和零阶网络剪枝的效果对比如上图所示MvP一阶网络剪枝MaP零阶网络剪枝。在参数稀疏程度更高时一阶剪枝的效果更好其他情况下是简单的零阶剪枝更有效。同时研究还发现当剪掉95%的嵌入层参数时模型竟然在4个任务上都保持了至少95%的准确度。5.动态浮点数量化出处AdaptivFloat: A Floating-point based Data Type for Resilient Deep Learning InferencearXiv Preprint链接https://arxiv.org/pdf/1909.13271.pdf诶怎么还有网络的运算和存储过程从深度、宽度和长度进行了全方位的优化模型还能再轻的确到此为止一般的炼丹师已经看着自己三维裁剪过的模型感到成就感满满了但这距离让BERT跑遍所有设备的目标还差得远。以下的部分就要开始深入一般NLP工程师见不到的第四个维度——硬件维度了。在深入硬件优化之前先来道偏软件的开胃菜看看如何在浮点数量化上下手优化存储吧我们平时在考虑利用浮点数特性进行计算加速时最先考虑的是使用FP16混合精度虽然有效但毕竟损失了信息效果也多多少少会受影响。既想保留精度又想加速训练减小存储那就只有深入底层修改浮点数的表示方法了这正是AdaptivFloat的初衷设计一种更加适合深度学习场景的浮点数数据类型。不过要讲明白AdaptivFloat数据类型需要涉及到一些与机器学习无关的知识。根据IEEE 754二进制浮点数标准一个浮点数的二进制表示由三个域组成符号位SignS、指数偏移值Exponent biasE和分数值Fraction或MantissaF。由此一个数可以表示为 。这时聪明的你可能发现有什么不对劲按照表示无符号整形的方法取指数偏移值只能取出正数啊2的负次幂怎么办这正是为什么称其为“指数偏移值”它并不代表实际上2的指数而是在其基础上需要加一个常数作为2的指数 。我们常用的浮点数保证了 的选取能够使得 在数轴两侧分布几乎均等例如在32位浮点数FP32中指数范围为-126至127但这样的数作为机器学习模型的参数显然有些不太合适为了增加小数的精度我们甚至要允许 这样显然不会出现的数也能表示这真的不是在浪费内存AdaptivFloat的最关键动机正在于此根据模型参数动态修改 。所谓动态体现在每个Tensor都能得到量身定做的 。方法也很简单找到Tensor里最大的一个数让它能被指数范围恰好覆盖到就好。不过说来简单为了实现这一方法需要配套地对现有浮点数表示方法进行许多其他修改感兴趣的话可以去看看AdaptivFloat原文此外IEEE 754标准[5]同样也可以作为参考哦~上图的结果中Bit Width是浮点数的总位数后五行在模型中使用了AdaptivFloat并将指数偏移值限制为3个bit。不比不知道谁能想到修改个量化方式居然直接用8bit在四个数据集上都干翻了FP32不仅节省了3/4的内存还取得了更好的性能或许这就是吹毛求疵挑战极限的极客们的浪漫高级配方存储介质选择光软件优化可不够如果软件优化就够了的话还买什么SSD换什么GPU不EdgeBERT的目的是尽可能降低边缘计算场景中使用BERT的推理延迟和耗能。为了最大限度地降低推理延迟需要为网络中不同的组成部分根据其增删改查的需求选取符合最大效能的存储介质。BERT类模型的一大特点在于它们都是预训练模型这类模型并非开箱即用而是需要在目标任务上fine-tune后才能使用。这使得这类模型天生地存在着两类存储需求嵌入层保存了Embedding向量。EdgeBERT在进行下游任务fine-tune时一般不对嵌入层进行修改。这类参数相当于只读参数只对快速读取有较高要求同时希望能够在掉电时依然保持原有数据来降低数据读写开销因此适用耗能低、读取速度快的eNVMEmbedded Non-Volatile Memory嵌入式非挥发性记忆体。本文选取的是基于MLC的ReRAM一种低功耗、高速度的RAM。其他参数这些参数需要在fine-tune时进行改变。此处使用的是SRAM与计算机内存的DRAM不同SRAM更贵但功耗更低、带宽更高常被用于制造cache或寄存器嵌入层用了ReRAM究竟能带来多大的影响上图结果表明仅仅是改变了嵌入层的硬件介质就能带来约 的推理延迟降低以及低至约 的能耗降低这对于边缘计算场景下简直是质变了为何ReRAM只有读但DRAM那边却要算DRAM读SRAM读/写呢因为此处的ReRAM是特殊设计的只读结构并且可以直接读入处理器进行运算。与此相反DRAM即电脑里一般使用的内存需要经过基于SRAM的处理器cache所以读写开销需要加上这部分读写开销。合并结果好了所有的基础配方一个一个单独使用的结果已经出来了那么把它们全都加在一起能产生什么样的结果呢这张图展示了完全体EdgeBERT在四个数据集上的性能、运算量和内存占用。其中所有红点的实验配置参照上表即TABLE IV。在性能准确度相比ALBERT下降1个百分点时EdgeBERT能取得 的内存降低和 的推理速度下降5个百分点时甚至能取得 的推理速度。Embedding经过裁剪后仅保留了40%使得存储进eNVM的嵌入层参数仅1.73MB。QQP的Transformer参数被mask掉80%MNLI、SST-2、QNLI的Transformer参数被mask掉60%后性能可以仅下降1个百分点。究极配方硬件加速器这是什么东西来给你展示一下谷歌给树莓派定制的TPU加速器CoralEdgeBERT专属的硬件加速器想来应该也是差不多的样子。这一部分完全不是王苏的菜…给各位上一张EdgeBERT加速器的硬件结构图感兴趣的各位可以去参照原文进行学习_(:з」∠)_这个加速器有什么用呢它是基于EdgeBERT的运算特点量身定做的加速器能够把fine-tune好的EdgeBERT完整地装进去进行运算。至于运算效果它们修改了模型图中VMAC序列即进行矩阵运算的单元序列长度与NVIDIA的移动端TX2 mGPU进行了推理时间和耗能的对比本文中提出的硬件加速器能够为EdgeBERT带来相比于baseline硬件加速器 的能耗降低相比于英伟达TX2移动端GPU甚至能够带来 的能耗降低耗电大户BERT家族终于也有能被说“省电”的一天了总结压缩BERT是一项研究但极限压缩BERT则是一项不易完成的工程无论是对Transformer模型的全方位裁剪还是对硬件存储介质读写性能与容错的取舍亦或是对专属硬件加速器的设计单独拿出一项已足够艰难将它们合在一起就不仅可能互相冲突甚至还可能产生逆向优化。这篇文章通过大量的实验测试了已有的几种优化方法在边缘计算场景下的性能比较了不同优化方法之间的差别分析了所有优化方法进行组合后的影响及效果并进一步提出了专属的硬件结构实现了对目前已有的最轻量BERT变体的即插即用。对于需要长待机、低功耗、短延迟的场景例如智能家居或是其他需要NLP技术加持的物联网设备或许我们真的能在不远的将来看到实体的类似EdgeBERT加速器的解决方案出现。虽然我们对于可能带来更大变革的模型结构依然处在探索当中但从当下实用的角度而言用基于Lottery Ticket Hypothesis[6]的BERT优化方法寻找一个更优的类BERT子结构依然是一个不错的课题至少它能让更多人、更多时候、更多场景能够用上性能强大的预训练模型。本文中提到的这些优化方法是不是也给爱思考的你带来了什么启发呢参考文献[1] Sanh et al. DistilBERT, a Distilled Version of Bert: Smaller, Faster, Cheaper and Lighter. In NeurIPS19 EMC2 Workshop. https://arxiv.org/pdf/1910.01108.pdf [2] Jiao et al. TinyBERT: Distilling BERT for Natural Language Understanding. In Findings of EMNLP20. https://arxiv.org/pdf/1909.10351.pdf [3] Zafrir et al. Q8BERT: Quantized 8Bit BERT. In NeurIPS19 EMC2 Workshop. https://arxiv.org/pdf/1910.06188.pdf [4] Bengio et al. Estimating or Propagating Gradients Through Stochastic Neurons for Conditional Computation. arXiv Preprint. https://arxiv.org/pdf/1308.3432.pdf [5] IEEE 754 - Wikipedia. https://zh.wikipedia.org/wiki/IEEE_754 [6] Frankle et al. The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks. In ICLR19. https://arxiv.org/pdf/1803.03635.pdf
http://www.zqtcl.cn/news/147358/

相关文章:

  • 网站制作报价被哪些因素影响建设银行官方网站首页个人登录
  • 免费网站怎么建谁能给个网站谢谢
  • 吴忠网站建设家里面的服务器可以做网站吗
  • 这是我自己做的网站做网站前台要学什么课程
  • 程序网站开发建设隔离变压器移动网站
  • 网站设置不发送消息怎么设置回来用typecho做的网站
  • 网站机房建设嵌入式培训机构哪家好
  • 购物网站页面设计图片网站 签约
  • 上海网站改版方案网站邮件设置
  • 如何在自己网站添加链接高端品牌logo图片
  • 网站建设找c宋南南app软件设计
  • 龙岗网站推广seo 0xu
  • 成都做网站微网站后台录入
  • 开发区网站建设山东房地产新闻
  • 手机如何搭建网站网站菜单导航
  • 网站建设丿金手指专业社交投票论坛网站开发
  • 做一套网站开发多少钱设计高端的国外网站
  • 有没有网站做lol网站的网页设计实验报告书
  • 网站后台域名重庆好的seo平台
  • 文化建设设计公司网站跨境电商亚马逊
  • 建设企业网站官网下载中心游戏网站开发设计报告
  • 外贸网站导航栏建设技巧专做奢侈品品牌的网站
  • 网站开发工程师资格证网站建设代理都有哪些
  • 汕头网站建设技术托管wordpress faq
  • 外贸网站建设系统能联系做仿瓷的网站
  • 阿里云网站域名绑定做网站的需要哪些职位
  • cnnic网站备案dnf网站上怎么做商人
  • 怎么做微拍网站代理记账公司注册
  • 长宁深圳网站建设公司建材公司网站建设方案
  • 做网站哪些软件比较好wordpress的留言功能