加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.cn/)- 云渲染、网络安全、数据安全、数据分析、人体识别!
当前位置: 首页 > 大数据 > 正文

模型压缩方法综述

发布时间:2021-05-22 21:36:55 所属栏目:大数据 来源:互联网
导读:近年来,基于Transformer的语言模型在神经机器翻译,自然语言推理,and 其他一揽子自然语言理解任务中取得了实质性进展。采用不同语言建模损失进行自监督的预训练,意味着模型可以通过大规模语料来提高许多下游任务的性能。然而,海量参数和长计算轨迹意味着

近年来,基于Transformer的语言模型在神经机器翻译,自然语言推理,and 其他一揽子自然语言理解任务中取得了实质性进展。 采用不同语言建模损失进行自监督的预训练,意味着模型可以通过大规模语料来提高许多下游任务的性能。 然而,海量参数和长计算轨迹意味着BERT及其变体在生产部署中困难重重。 值得庆幸的是,在过去2年里,我们看到了各种各样的技术的发展,它们缓解了这些苦痛并加速了模型的预测。具体来说,本文将重点介绍下面这套模型预训练后可以打的组合拳,这能降低模型预测的计算成本:

  • 数值精度缩减: 通过减少浮点数精度和量化来加快速度

  • 操作合并: 在计算图中合并所选节点

  • 剪枝: 识别并删除网络中的非必要部分

  • 知识蒸馏: 训练高效的小规模学生模型,以模仿表达力更强、开销更大的老师模型

  • 模块替换: 通过替换来降低模型的复杂性或深度

数值精度缩减:

数值精度缩减可能是加速模型预测的最通用方法。在过去的几年里,GPU硬件对16位浮点数运算的支持不佳,这意味着降低权重和激活函数的计算精度往往效果适得其反,但带有Tensor Core的NVIDIA Volta和Turing 架构的引入意味着现代GPU现在已经具备了高效的16位浮点数运算能力。

浮点数的表示

浮点类型存储三种的数值信息——符号、指数和分数。 传统的32位浮点数表示法用8位表示指数,用23位来表示尾数。 而传统的16位浮点数表示法(即NVIDIA硬件使用的格式)将32位表示法中的指数和尾数位差不多减少了一半。TPU则用了一种名为 bfloat16 的表示方法,它将部分比特位从尾数移至指数,以部分精度为代价换取了更大的数值表示能力。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读