深度学习模型量化学习笔记

模型量化

参考:

0.什么是量化

  • 什么是量化

image-20221026135456312

  • 什么是模型量化

​ 模型是有权重(w) 和偏置 (b) 组成,其中w,b 都是以 float32 存储的,float32 在计算机中存储时占 32bitint8 在计算机中存储时占 8bit;模型量化就是用 int8 等更少位数的数据类型来代替 float32 表示模型的权重 (w) 偏置 (b) 的过程,从而达到减少模型尺寸大小、减少模型内存消耗及加快模型推理速度等目标。

​ 模型量化以损失推理精度为代价,将网络中连续取值或离散取值的浮点型参数(权重 w 和输入 x)线性映射为定点近似 (int8/uint8) 的离散值,取代原有的 float32 格式数据,同时保持输入输出为浮点型,从而达到减少模型尺寸大小、减少模型内存消耗及加快模型推理速度等目标。定点量化近似表示卷积和反卷积如下图 所示,左边是原始权重 float32 分布,右边是原始权重 float32 经过量化后又反量化后权重分布。

  • 都量化哪些部分

  • weight(权重):weight的量化是最常规也是最常见的。量化weight可达到减少模型大小内存和占用空间。

  • activation(激活函数输出):实际中activation往往是占内存使用的大头,因此量化activation不仅可以大大减少内存占用。更重要的是,结合weight的量化可以充分利用整数计算获得性能提升。

  • gradient(梯度)相对上面两者略微小众一些,因为主要用于训练。它主要作用是在分布式计算中减少通信开销,单机训练时也可以减少backward时的开销。

1. 为什么要量化

为了满足各种 AI 应用对检测精度的要求,深度神经网络结构的宽度、层数、深度以及各类参数等数量急速上升,导致深度学习模型占用了更大的存储空间,需要更长的推理时延,不利于工业化部署;对于边缘设备上的芯片而言,在存储、内存、功耗及时延性方面有许多限制,推理效率尤其重要。


  1. 通过模型量化等方式降低云和边缘设备(例如移动设备和 IoT 设备)的延迟时间推断成本。将优化后的模型部署到边缘设备,这些设备在处理、内存、耗电量、网络连接和模型存储空间方面存在限制。在现有硬件或新的专用加速器上执行模型并进行优化。
  2. 根据您的任务选择模型和优化工具:
  3. 利用现成模型提高性能在很多情况下,预先优化的模型可以提高应用的效率。

**量化好处: **

  • 减小模型尺寸,如 8 位整型量化可减少 75% 的模型大小;
  • 减少存储空间,在边缘侧存储空间不足时更具有意义;
  • 减少内存耗用,更小的模型大小意味着不需要更多的内存;
  • 加快推理速度,访问一次 32 位浮点型可以访问四次 int8 整型,整型运算比浮点型运算更快;CPU 用 int8 计算的速度更快
  • 减少设备功耗,内存耗用少了推理速度快了自然减少了设备功耗;
  • 支持微处理器,有些微处理器属于 8 位的,低功耗运行浮点运算速度慢,需要进行 8bit 量化。
  • 某些硬件加速器如 DSP/NPU 只支持 int8

image-20221026170501926

2. 主流量化手段

  • 量化分类(高通在 2019 年的一篇papercode

    • Level 1:无数据离线量 无需数据,不需要反向传播,一个 API 调用完成量化模型生产

    • Level 2:有数据离线量化 需要数据,不需要反向传播,数据用于校准 BN,或者统计激活值分布,用于降低讲话?误差

    • Level 3:量化感知训练 需要数据,需要反向传播。通过训练和微调使量化模型达到可接受的精度,一般需要完整的训练过程和超参数调整

    • Level 4:修改网络结构的量化感知训练 需要数据,需要反向传播,同时调整网络结构。需要明显更多的训练时间和细致的超参数调整

image-20221026183346481

2.1 均匀仿射量化(非对称量化 )

Uniform affifine quantization

2.2 对称均匀量化 Symmetric uniform quantization

Symmetric uniform quantization

对称量化是一般不对称情况的简化版本。对称量化器将零点限制为 0。这减少了在等式 (3) 中的累加操作期间处理零点偏移的计算开销。但是偏移量的缺乏限制了整数域和浮点域之间的映射。因此,选择有符号或无符号

论文推荐

入门-谷歌量化白皮书

2019高通-量化-Data-Free Quantization Through Weight Equalization and Bias Correction

猜你喜欢

转载自blog.csdn.net/sexyluna/article/details/127542146