2024-11-28
深度学习
00

目录

1. 动态离线量化
2. 静态离线量化方法
3. 量化训练
transformer 反量化

动态离线量化方法、静态离线量化方法和量化训练方法是什么区别?

https://paddlelite.paddlepaddle.org.cn/user_guides/quant_aware.html

https://paddlelite.paddlepaddle.org.cn/user_guides/quant/quant_post_dynamic_demo.html

1. 动态离线量化

动态离线量化方法简单易用,不需要校准数据,主要用于减小模型体积,无法明显提升预测速度。

2. 静态离线量化方法

静态离线量化通过利用少量校准数据计算量化因子,能够快速生成量化后的模型。此量化模型可用于预测推理,显著降低计算负担、内存占用,并减少模型文件大小。

静态离线量化包括两种常见的量化因子计算方法:非饱和量化和饱和量化。

1.非饱和量化方法:该方法计算 Tensor 的绝对值最大值(abs_max),并将其映射为 127。 2.饱和量化方法:采用 KL 散度来确定一个合适的阈值 T(0 < T < abs_max),将其映射为 127。

通常,待量化操作(Op)的权重采用非饱和量化方法,而待量化操作的激活(如输入和输出)则使用饱和量化方法。 使用条件:

  • 已训练好的预测模型
  • 少量校准数据(例如:100-500 张图像)

缺点:

  • 对于某些模型,特别是计算量较小或本身较为精简的模型,量化后可能会导致一定的精度损失。

3. 量化训练

  1. 简介 量化训练是通过较多的训练数据对已经训练好的模型进行量化的方法。此过程模拟量化操作,在训练阶段更新权重,以减少量化误差,从而提升量化后模型的精度。 使用条件:
  • 已有预训练模型
  • 较为充足的训练数据(通常大于 5000 张图像)

优势:

  • 有效降低计算量,减少内存占用,减小模型大小
  • 量化后模型精度较少受影响

缺点:

  • 对数据量和硬件要求较高,使用门槛较高。

建议首先使用“静态离线量化”方法对模型进行量化,验证精度后再考虑使用量化训练。如果静态量化后的模型精度不满足需求,再采用量化训练以优化精度。

transformer 反量化

量化后的模型输出都要反量化才会得到浮点数值,一般框架里都带了,所以不用我们操作。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!