🏚️老生常谈 — 参数的动态量化和静态量化
00 分钟
2024-10-24
2024-10-24
type
status
date
slug
summary
tags
category
icon
password
URL-TEXT
😀
本文介绍推理的动态量化与静态量化

📝 参数的动态量化和静态量化

动态量化

运行时参与计算
 

权重量化

在部署之前,对权重进行量化。
 
  • 找到权重的最小值和最大值:
  • 计算权重的量化参数(scale 和 zero_point):
其中,quant_min 和 quant_max 是量化范围,对于UINT8,通常为0和255。
 
  • 量化权重:
 

激活值动态量化

在推理时,对每个输入动态计算激活值的量化参数。
  • 获取当前输入激活值的最小值和最大值:
  • 计算激活值的量化参数(动态):
  • 量化激活值:
 

量化推理

使用量化的权重和激活值进行推理,计算量化后的输出,后续可在必要时反量化。
 
权重量化:
 
激活值动态量化
 
 

静态量化

 
使用校准数据集来预先确定激活值的量化参数。
 

收集校准数据

 

计算激活值的量化参数

 

激活值量化

 

权重量化

• 与动态量化相同,提前量化权重。
 

量化推理

 

数值示例:

激活值静态量化:
 
注意:
 

🤗 总结归纳

总结文章的内容
  • 动态量化:
    • 激活值量化参数:在推理时根据输入数据动态计算。
    • 适用场景:快速部署,无需校准数据,但推理时有额外的计算开销。
 
  • 静态量化:
    • 激活值量化参数:在部署前通过校准数据预先计算并固定。
    • 适用场景:对性能要求高的场景,推理效率更高,但需要额外的校准步骤。
 
 
上一篇
万岁更相送,贤圣莫能度
下一篇
Mersenne Twister算法