深度学习模型量化原理

深度学习模型量化原理

深度学习模型的量化 (Quantization)是一种优化技术,它通过减少模型中权重和激活值的精度来减小模型大小和提高推理速度,同时尽量保持模型的准确度。

模型在训练时,一般是以标准的float32类型(fp32)进行运算的,即使用32个bit来表示一个浮点数并进行浮点数运算。但是在边缘计算设备上进行推理时,处理器往往没有那么高的算力支持fp32的运算。此时,我们常常将模型量化为int8类型 来减小模型大小 并加快推理速度。

对称量化与非对称量化

int8量化分为对称量化(Symmetric Quantization)与非对称量化(Asymmetric Quantization),通常对称量化的性能会优于非对称量化, 而精度上非对称量化更优。

非对称量化

如图所示,非对称量化就是把数值缩放到[-128,127](int8)或者[0,255](uint8)之间,量化公式如下:
r = S ( q + Z ) q = i n t ( r S ) − Z S = max − min qmax − qmin Z = R o u n d ( − min S + qmin ) r=S(q+Z) \quad q=int(\frac{r}{S})-Z \\ S=\frac{\text{max}-\text{min}}{\text{qmax}-\text{qmin}} \\ Z=Round(-\frac{\text{min}}{S}+\text{qmin}) r=S(q+Z)q=int(Sr)−ZS=qmax−qminmax−minZ=Round(−Smin+qmin)

其中, Z Z Z是zeropoint, S S S是scale, q q q是量化后的值, r r r是真实的值; min / max \text{min}/\text{max} min/max是原始值的范围, qmin / qmax \text{qmin}/\text{qmax} qmin/qmax是量化后值的范围。

非对称量化的优点是能够更灵活地表示数据范围,特别是当数据分布不是以零为中心对称时。然而,非对称量化的缺点是执行量化和反量化操作可能需要更多的计算

对称量化

对称量化是当 Z = 0 Z=0 Z=0时非对称量化的特例。
r = S q q = i n t ( r S ) r=Sq \quad q=int(\frac{r}{S}) r=Sqq=int(Sr)

这种方法比非对称量化更简单,容易在硬件上实现,并且对称量化可以减少量化和反量化过程中的计算量,因为它不需要像非对称量化那样处理零点偏移。

对称量化假设数据分布是对称的,但在实际应用中,很多数据分布并不是对称的,这限制了对称量化的应用场景。

校准

当我们对激活值进行非对称量化时,需要知道值的动态范围(最小值、最大值),但是模型训练后一般是不会保存这些信息的,所以在量化阶段我们仍然需要一个比较小的训练集(一般从模型的训练集中抽取100-200张各个类型的数据)来进行校准 (Calibration)。

校准就是收集输入数据在模型各层的输出值,并统计得到动态范围。除此以外,TensorRT等方法还使用了KLD方法(基于KL散度)来获取量化门限,这种方法不是直接将 m i n , m a x min,max min,max映射到 − 127 , 127 -127,127 −127,127,而是寻找一个阈值,将阈值以外极值附近的点直接映射为最大/最小值。

参考文献:

个阈值,将阈值以外极值附近的点直接映射为最大/最小值。

参考文献:

A Survey of Quantization Methods for Efficient Neural Network Inference

相关推荐
宸津-代码粉碎机1 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
Y3815326621 小时前
SERP API 计费口径:credits_charged、执行失败扣费与退款边界
python·搜索引擎
chenbingjie_c1 小时前
C++ 进阶核心知识点总结:模板、内存分区、new/delete、内存池
开发语言·c++
做萤石二次开发的哈哈2 小时前
视频解码器怎么对接?解码上墙、电视墙开窗与场景切换的ISAPI接入实战
人工智能·物联网·监控·视频编解码·大屏端·萤石开放平台·蓝海aiot一站式工作台
Leo.yuan2 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
长谷深风1113 小时前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
科技观察哨3 小时前
六足平台选型与纳米定位系统集成:HEB-640六自由度位移台在半导体光刻对准中的参数边界与国产替代评估
前端·人工智能
Escalating_xu3 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言
云上先途3 小时前
任务智能体可以自动完成哪些类型工作,是不是只能做简单重复操作?
大数据·人工智能
蒸鱼Yuzheng3 小时前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性