BertTransformer模型压缩与优化加速

BertTransformer模型压缩与优化加速
前⾔
Bert/Transformer结构及其变体,已成为⾃然语⾔处理 (NLP)、语⾳识别 (ASR)等领域的主流序列建模结构。并且,相⽐于卷积操作的局部特征提取能⼒、以及平移不变性,Self-Attention/Cross-Attention的全局Context信息编码或长时依赖建模能⼒,能够使图像/视觉模型具备更强的相关性建模能⼒(更好的全局视野)、与动态建模能⼒(领域或样本适应性)。因此在计算机视觉领域 (CV),Vision Transformer模型结构 (如ViT、Deit、Swin-Transformer、PVT、SegFormer与DETR等)也⽇益流⾏、⽅兴未艾。然
⽽,Transformer模型的⾼计算复杂度与参数量,限制了模型的推理部署(包括服务端与移动端应⽤),其计算、存储与运⾏时内存等资源开销都成为限制因素(存在⼤量密集计算算⼦、与访存算⼦,如BatchMatMul、LayerNorm、Transpose/Reshape等)。例如,从标准Transformer layer的Tensor处理结构来看,MHA的Context特征计算与特征长度的平⽅、Embedding特征维度成正⽐:
Standard Self-Attention (X=Y) / Cross-Attention (X!=Y):
lg km380
Standard FFN:
本⽂从以下⼏个维度举例说明,解析Bert/Transformer模型的加速⽅法,体现了从建模依赖、数据依赖到硬件依赖的优化层次:
模型结构精简化与知识蒸馏;
模型量化 (Quantization);
⽹络结构搜索 (NAS: Network Architecture Search);
小学生论坛计算图优化 (计算图等价变换);
推理优化引擎 (Faster Transformer / Torch-TensorRT / AICompiler);
模型结构精简化与知识蒸馏
Lite-Transformer
Lite Transformer是⼀种融合卷积与Self-Attention操作的、⾼效精简的Transformer结构,可应⽤于NMT、ASR等序列⽣成任务。其核⼼是长短距离注意⼒结构 (LSRA:Long-Short Range Attention),能够有效融合卷积与Attention机制。LSRA将输⼊Embedding沿Feature维度split成两部分,其中⼀部分通过GLU (Gate Linear Unit)、⼀维卷积,⽤以提取局部Context信息;⽽另⼀部分依靠Self-attention,完成全局相关性信息编码。⼀维卷积的引⼊,能够减轻计算量与参数量。Lite Transformer核⼼结构如下,⾸先将FFN的宽度摊平 (flatten),其次引⼊LSRA以替换Self-Attention:
SAN-M
SAN-M表⽰Self-Attention与DFSMN记忆单元的融合,是⼀种Transformer ASR模型。DFSMN适合捕获局部信息,Self-Attention模块具备较强的长时依赖建模能⼒,因此⼆者存在互补性。SAN-M通过将两个模块的特性融合在⼀起,实现了优势互补。Biasic Sub-layer 表⽰包含了SAN-M的Self-Attention模块,DFSMN添加在values后⾯,其输出与Multi-head Attention (MHA)相加:
MiniLM (知识蒸馏)
针对NLP任务,深度⾃注意⼒知识蒸馏 (Deep Self-Attention Distillation),通过迁移Teacher model最后⼀层Self-Attention模块的Attention score信息与Value relation信息,可有效实现Student model的诱
导训练。只迁移最后⼀层的知识,能够直接迁移语义信息,显得简单有效、训练速度更快;⽽且相⽐于层间特征迁移,不需要⼿动设计Teacher-student之间的层对应关系。Attention score信息与Value relation信息的知识迁移如下:
Attention score transfer:
Value relation transfer:
若选择的Self-attention layer为LSRA,除了在Multi-head Attention (MHA)分⽀迁移Attention score与Value relation;在CNN 分⽀需要迁移Feature map的信息,这⾥主要计算AT loss:
式中Fs,j表⽰学⽣⽹络⾥第j个⽹络层的特征输出,Ft,j表⽰Teacher network⾥第j个group的特征输出。
Switch-Transformer
针对内容理解与⽣成、以及多模态特征表征等AI任务,基于MoE(Mixture of Experts)单元的⼤模型的参数规模不断扩展(Switch-Transformer是其中的典型代表之⼀),但⼤模型对算⼒的需求、被MoE的稀疏激活(Sparse activation)或动态路由
(Dynamic routing)机制有效缓解。MoE单元属于典型的Sample驱动型结构设计,使得MoE-based模型具备良好的动态建模能⼒(动态卷积、Self-Attention等亦如是),因此MoE能够⾮常好的适应多任务/多模态、甚⾄在线实时的场景应⽤需求。Switch-Transformer 的MoE单元结构如下,具体执⾏过程包括动态路由(Dynamic routing)、数据分派(Data dispatch)、专家计算
(Expert computation)与结果合并(Result combine):
模型量化 (Quantization)
Transformer ASR模型压缩
瑞利分布
针对Transformer ASR,⽂章提出了联合随机稀疏与PTQ量化 (KL量化、ADMM与混合精度设置)的压缩策略,整体实现了10倍压缩,且绝对精度损失约0.5%。总体流程如下:
模型稀疏化,更新Weight重要性,渐进式增加稀疏度:
KL量化,计算Activation量化参数:
ADMM,优化Weight量化参数:
混合精度量化设置,减少量化误差:
此外,针对Transformer模型的量化,需要讨论全⽹络INT8量化与计算的意义:
全⽹络INT8量化:
同时减少计算密集算⼦与访存密集算⼦的开销;
实现模型压缩,INT8模型是FP32模型的1/4;
Fully INT8 Attention Path:
基本的全INT8通路:
Dense layer的输⼊与输出均为INT8 Tensor;
多媒体网络教室Reshape与Transpose的操作对象为INT8 Tensor,节省内存开销:
autoit
Dense+Reshape+Transpose、与Transpose+Reshape+Dense可以实现Op fusion;
BatchMatMul、Softmax的操作对象保留为FP32 Tensor,确保模型预测精度;
E ncoder的Self-Attention:
X=Y;
Decoder的Self-Attention:
X=Y,Batch_size=Batch_size * Beam_size,Seq_len=1;
汉字与中国心k_dense与v_dense的输出会添加到Cache,按照INT8类型搬运数据,可节省访存开销:
PTQ for Vision Transformer
针对Vision Transformer的PTQ量化,分别针对FFN与Self-Attention,提出了Similarity-aware Quantization与Ranking-aware Quantization:
Similarity-aware Quantization: 基于优化⽅式确定Weight与Activation量化的最优量化参数,并以Pearson相似度作为Target loss;
Ranking-aware Quantization: 在相似度Loss基础之上,叠加Attention map的Ranking loss作为约束,以准确感知不同Attention map的重要性排序,确保Self-attention量化的有效性(优先保留重要Attention map的信息);

本文发布于:2024-09-23 11:25:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/53850.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   量化   计算   结构
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议