解读阿里云PAI模型压缩技术落地实时移动端智能应用

随着移动端AI应用部署需求的日益增强,模型压缩作为深度学习模型实现轻量化部署的有效手段,在移动端场景越来越受关注。尤其是剪枝、量化、权重稀疏化与网络结构搜索等算法策略,能够帮助减少深度模型端侧部署时的资源消耗(Latency、Energy与Memory等),始终是学术界与工业界的发展焦点。

阿里云机器学习PAI平台模型压缩技术,在端智能应用场景实现了端侧智能的快速赋能与应用落地。尤其在2020年阿里双十一期间,淘宝直播App的“一猜到底”语音交互游戏中,PAI模型压缩技术体现了关键作用。

淘宝直播一猜到底背后的模型压缩技术

在2020年阿里双十一期间,淘宝直播App上线了趣味极强的“商品价格竞猜游戏”,由当红主播现场推荐商品,粉丝以“语音猜价”形式参与互动:

图1 淘宝直播“商品价格竞猜游戏”: 1) 在淘宝直播找到“一猜到底”; 2) 首席猜价官吴佳煜; 3) 游戏现场,薇娅直播;

我们知道,“价格竞猜游戏”已经是智能语音识别技术在移动端应用的成功案例,经受住了淘宝直播高访问流量的严格考验,一方面需要语音识别的准确无误(Low Error Rate),另一方面需要语音识别的高实时率(High RTF)。这背后是阿里巴巴多个技术团队支持完成的,包括淘宝无线架构与开发技术、达摩院ASR算法、阿里云PAI (Platform of A. I.)模型压缩技术与MNN移动端推理引擎(参考文献[1])。此篇文章将详细解读涉及的模型压缩技术。

接下来,我们将解析PAI如何通过模型压缩技术,在帮助压缩模型的同时,保证了语音识别的高准确率,并显著降低模型在移动端部署时的ROM/RAM/RTF,即参数存储、运行时内存与实时率开销。

PAI混合精度量化技术

模型压缩是PAI云端一体解决方案的重要环节。如图2所示,在移动端智能语音的E2E优化部署链路中,PAI模型压缩技术(混合精度后量化量化训练、稀疏训练等)起着模型瘦身、复杂度降解的关键作用。

图2 PAI模型压缩在E2E链路中的关健作用

智能语音应用涉及的ASR模型(SAN-M: Memory-block equipped Transformer ASR (参考文献[1]),如图3所示),属于典型的Transformer结构(Encoder + Auto-regressive Decoder架构),并通过全局与局部相关性信息编码的有效结合,提升了模型的收敛性能,确保模型结构获得有效精简。

图3 SAN-M模型结构: 由特征驱动的Self-Attention、与训练驱动的DFSMN记忆单元相结合,实现全局相关性与局部相关性特征的有效融合

基于PAI团队研发的混合精度量化方法,有效实现了SAN-M模型的离线后量化(PTQ:Post-training Quantization)。混合精度量化技术的主要创新点包括:

  • 支持端到端Transformer的离线后量化相比于拆图量化量化训练等方法,端到端后量化具备快捷、高效的优势,能够帮助用户一键部署量化方案;
  • 集成了丰富的后量化策略,为后量化的精度鲁棒性提供了坚实保证;
  • 无Label干预的混合精度量化流程,无需提供数据标注,且能准确反映逐层量化的敏感度;

支持端到端Transformer的离线后量化

由于Transformer模型存在自回归循环解码操作,较难直接获取解码器中的张量数据,因此现有的模型压缩框架和推理优化工具,鲜少支持端到端Transformer的离线后量化如图4所示,PAI团队的后量化方法,引入了循环张量探针(Tensor Probe)的使用,有效支持了端到端Transformer模型的离线后量化。循环体内的张量(Tensor)通过若干个延迟单元的传输,构成了不同时刻的信号汇总。这些信号数据导出之后,便可有效支持离线量化参数的统计计算(KL、MSE或Cosine距离最小化等策略)。

图4 循环张量探针(Tensor Probe)的使用

集成了丰富的后量化策略

如图5所示,在执行Transformer模型的逐层量化(Layer-wise Quantization)时,每个网络层的输入/输出张量、以及网络权重的量化,都会引入量化噪声,主要包括Round误差、Clip误差。

图5 逐层量化引入的量化噪声

PAI团队的后量化方法,集成了多种可改善量化效果的PTQ策略,允许用户在Post-training阶段妥善解决量化误差问题,以避免进一步使用量化训练(QAT:Quantization-aware Training)等繁重方法。具体的PTQ策略,包括改进的KL算法、EasyQuant、Bias Correction、ADMM、Weight Adjustment等:

  • KL算法的改进,能够有效减少输入/输出张量的量化噪声;并且可以根据Activation的数据分布,自动选择最佳KL策略;
  • EasyQuant参考文献 [3])的使用,可进一步减少输入/输出张量的量化误差,尤其能改善INT7等更低精度量化的效果;
  • Bias Correction参考文献 [4])通过网络权重量化偏差(均值与方差的偏差)的补偿,减少权重量化噪声;同时对Bias Correction的适当改进,增强了对达摩院Transformer ASR的补偿效果;
  • ADMM参考文献 [5])亦可优化权重量化参数,减少权重量化噪声;也适当改进了ADMM的使用,从而在交替方向迭代范围内,确保权重量化误差最小;
  • Weight Adjustment参考文献 [6])在Kernel weight按Per-tensor量化时,通过Per-channel形式的等价均衡变换,可以减少Weight量化误差。

无Label干预的混合精度量化流程

如图6所示,基于多种后量化策略的有效集成,PAI团队提出了Label-free混合精度量化流程(Label-free AMP Pipeline, AMP:Automatic Mixed Precision):

  • 该流程从模型输入到混合精度决策,无需数据标注(Label)的干预,简洁易用、快捷有效;
  • 量化误差按逐层统计,并能准确表示每个网络层的量化敏感度,为混合精度(INT8/FP32混合)决策提供了有效基础;
  • 通过把控回退的网络层数,可选择出精度与模型容量折中最佳的帕累托最优解,完成多目标优化;
  • 生成的混合精度量化表,能够对接移动端推理框架MNN,以生成低延迟、高推理精度的运行时推理引擎;从而构成了完整的工具链路,即从混合精度量化、到移动端的推理部署;
  • AMP Pipeline不仅适用于移动端,也适用于CPU/GPU优化部署,体现了PAI云端一体的优势所在。

图6 Label-free混合精度量化流程(Label-free AMP Pipeline)

基于AMP Pipeline,在移动端部署Transformer ASR模型时,通过回退Op数的把控,可以实现WER (SER)与ROM/RAM (RTF)之间的合理折中,妥善解决多目标优化问题。需要注意的原则主要有:

  • Model size、Latency与内存占用等,都会随着回退Op数的增加而增加,通常可以视作统一的目标函数,并以回退Op数作为自变量;
  • 在相同的帕累托前沿(Pareto front)上,回退Op数越多,通常WER越低、Model size越高,因此需要折中选择;
  • 不同的Pareto front (取决于PTQ策略的改善效果),回退相同的Op数,达到的折中状态有所不同;参考图7所示的Pareto fronts,都回退Op1,Pareto2的状态、优于Pareto1的状态;
  • AMP目标:采用更有优势的PTQ策略,得到更好的Pareto front,为混合精度择优提供有效基础;

图7 两种Pareto front的对比

表1列出了双十一使用的Transformer ASR模型,在业务测试集上的精度表现(WER:字错误率,SER:句错误率),包括FP32、全INT8、AMP INT8的对比。相比于原浮点模型,经过AMP INT8量化之后(回退3个Op,分类层保留为FP32实现),ASR模型的WER绝对损失低于0.1%、SER绝对损失低于0.5%、理论压缩比约为3.19倍。并且,量化模型对Bad case也体现出了较强的容错性能,助力淘宝直播“价格竞猜游戏”经受住了直播场景的严格考验。

表1 ASR模型在业务测试集上的表现

量化方式

WER

SER

Theoretical Model Size

Encoder

Decoder

FP32

FP32

0.62%

4.27%

33.4MB

全INT8

1.06%

7.21%

9.36MB

AMP INT8 (回退3个Op)

0.70%

4.74%

10.48MB

PAI模型压缩简介

离线量化相关的策略(包括PTQ/AMP等),已集成至PAI Blade,欢迎联系使用;并且面向移动端应用,Blade压缩工具支持随机稀疏压缩与PTQ叠加使用,例如60%稀疏度时,叠加INT8量化、压缩比可达6.6倍左右;

除了离线后量化之外,在诸如量化训练、网络剪枝、权重稀疏化与模型结构搜索等模型压缩领域,PAI团队也长期坚持耕耘:

  • 量化训练(QAT):Normal INT4/INT8、INT8 Winograd、Overflow-aware Quantization;
  • 网络剪枝:Channel-wise Pruning、AMC;
  • 权重稀疏化:Random/Block Sparsity;
  • 模型结构搜索:Channel-wise/Block-wise/Layer-wise NAS;

在模型压缩方面,以量化训练为例,PAI与MNN团队合作提出了INT8 Winograd量化与计算加速技术、并发表了合作论文 (参考文献[7])。在下游迁移阶段,针对带有一维卷积(kernel size>=3)的ASR模型,经过INT8 Winograd量化训练,能够有效确保Conv1D-based ASR模型的量化精度稳健性,并进一步实现一维卷积在移动端的INT8计算加速。

从PAI量化训练、到MNN移动端优化部署,同样构成了完整的量化/优化工具链路(如图8所示),为端智能应用提供了一种可行的加速方案。此外,MNN的Overflow-aware Quantization (OAQ)也集成到了PAI平台:OAQ利用量化比特位宽的表示冗余,借助INT16单元,寄存中间、与最终乘累加结果,实现计算加速。

图8 从大规模预训练、到量化微调、再到优化部署的工具链路

参考文献

[1] 淘宝直播“一猜到底”——移动端实时语音识别技术方案及应用: https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&mid=2650412372&idx=1&sn=74bbcdddb12f70ab31a936ef9ad8697c&chksm=8396dd4cb4e1545a19c4eb17da127c9ea344ec7652531a6ddd88f79a0b849b72e25f58285eba&token=821270436&lang=zh_CN

[2] Zhifu Gao, Shiliang Zhang, Ming Lei, Ian McLoughlin, "SAN-M: Memory Equipped Self-Attention for End-to-End Speech Recognition", arXiv preprint 2006.01713.

[3] Di Wu, Qi Tang, Yongle Zhao, Ming Zhang, Ying Fu, Debing Zhang, "EasyQuant: Post-training Quantization via Scale Optimization", arXiv preprint 2006.16669, 2020.

[4] Ron Banner, Yury Nahshan, Elad Hoffer, Daniel Soudry, "Post-training 4-bit quantization of convolution networks for rapid-deployment", arXiv preprint 1810.05723, 2018.

[5] Cong Leng, Hao Li, Shenghuo Zhu, Rong Jin, "Extremely Low Bit Neural Network: Squeeze the Last Bit Out with ADMM", arXiv preprint 1707.09870, 2017.

[6] Markus Nagel, Mart van Baalen, Tijmen Blankevoort, Max Welling, "Data-Free Quantization Through Weight Equalization and Bias Correction", arXiv preprint 1906.04721, 2019.

[7] Yiwu Yao, Yuchao Li, Chengyu Wang, Tianhang Yu, Houjiang Chen, Xiaotang Jiang, Jun Yang, Jun Huang, Wei Lin, Hui Shu, Chengfei Lv, "INT8 Winograd Acceleration for Conv1D Equipped ASR Models Deployed on Mobile Devices", arXiv preprint 2010.14841, 2020.

入门深度学习量化阿里云
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

阿里云机构

阿里云创立于2009年,是全球领先的云计算及人工智能科技公司,致力于以在线公共服务的方式,提供安全、可靠的计算和数据处理能力,让计算和人工智能成为普惠科技。 阿里云服务着制造、金融、政务、交通、医疗、电信、能源等众多领域的领军企业,包括中国联通、12306、中石化、中石油、飞利浦、华大基因等大型企业客户,以及微博、知乎、锤子科技等明星互联网公司。在天猫双11全球狂欢节、12306春运购票等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。 2014年,阿里云曾帮助用户抵御全球互联网史上最大的DDoS攻击,峰值流量达到每秒453.8Gb 。在Sort Benchmark 2016 排序竞赛 CloudSort项目中,阿里云以1.44$/TB的排序花费打破了AWS保持的4.51$/TB纪录。在Sort Benchmark 2015,阿里云利用自研的分布式计算平台ODPS,377秒完成100TB数据排序,刷新了Apache Spark 1406秒的世界纪录。 2018年9月22日,2018杭州·云栖大会上阿里云宣布成立全球交付中心。

https://www.aliyun.com/about?spm=5176.12825654.7y9jhqsfz.76.e9392c4afbC15r
量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

暂无评论
暂无评论~