技术|华为诺亚Transformer后量化技术:效率百倍提升,视觉&NLP性能不减

机器之心专栏
机器之心编辑部

Transformer 在自然语言处理和视觉任务中取得了令人瞩目的成果 , 然而预训练大模型的推理代价是备受关心的问题 , 华为诺亚方舟实验室的研究者们联合高校提出针对视觉和 NLP 预训练大模型的后训练量化方法 。 在精度不掉的情况下 , 比 SOTA 训练感知方法提速 100 倍以上;量化网络性能也逼近训练感知量化方法 。
大型预训练模型在计算机视觉和自然语言处理中展现了巨大的潜力 , 但是模型大、参数多的问题也给它们的商业化落地带来了很大挑战 。 模型压缩技术是当前的研究热点 , 模型量化是其中的一个重要分支 。
当下预训练模型的量化为了保证性能 , 大多采用量化感知训练(Quantization-aware Training, QAT) 。 而模型后量化(Post-training Quantization, PTQ)作为另一类常用量化方法 , 在预训练大模型领域却鲜有探索 。 诺亚方舟实验室的研究者从以下四个方面对 QAT 与 PTQ 进行了详细对比:
  • 训练时间:QAT 由于模拟量化算子等操作 , 训练耗时远远超出全精度训练(FP) , 而 PTQ 仅仅需要几十分钟 , 大大缩短量化流程;
  • 显存开销:QAT 显存消耗大于全精度训练(FP) , 使得在显存有限的设备上难以进行量化训练 。 而 PTQ 通过逐层回归训练 , 无需载入整个模型到显存中 , 从而减小显存开销;
  • 数据依赖:QAT 需要获取整个训练数据集 , 而 PTQ 只需要随机采样少量校准数据 , 通常 1K~4K 张 / 条图像或者标注即可;
  • 性能:鉴于 QAT 在整个训练集上充分训练 , 其性能在不同的量化 bit 上均领先 PTQ 。 因此性能是 PTQ 的主要瓶颈 。
基于以上观测 , 研究者提出了针对视觉和 NLP 任务的 PTQ 方法 , 在保持其训练时间、显存开销、数据依赖上优势的同时 , 大大改善其性能 , 使其逼近量化感知训练的精度 。 具体而言 , 仅使用 1% 的训练数据和 1/150 的训练时间 , 即可达到 SOTA 量化方法的精度 。
接下来将分别介绍这两项工作 。
论文 1
《Post-Training Quantization for Vision Transformer》
技术|华为诺亚Transformer后量化技术:效率百倍提升,视觉&NLP性能不减
文章图片

论文链接:https://arxiv.org/pdf/2106.14156.pdf
方法概述
下图为视觉 Transformer 后训练量化算法框架:
技术|华为诺亚Transformer后量化技术:效率百倍提升,视觉&NLP性能不减
文章图片

排序损失量化
自注意力层是 Transfomer 结构中十分重要的部分 , 也是 Transformer 与传统卷积神经网络不同的地方 。 对于自注意力层 , 研究者发现量化使得注意力特征的相对顺序变得不同 , 会带来很大的性能下降 。 因此 , 他们在量化过程中引入了一个排序损失:

推荐阅读