1 大模型量化基础
1.1 极大值量化(对称量化)

1.2 零点量化(非对称量化)

2 量化
2.1 动态量化
- 运行时量化:在模型推理阶段,动态计算激活值的量化参数,以适应不同的输入数据。
- 量化范围:通常仅对权重进行预量化,而激活值则在推理时实时量化。
- 数据依赖:不依赖校准数据,直接根据推理时的实时输入动态调整量化参数。
- 性能影响:可能增加推理时的计算负担,但能灵活适应数据变化。
2.2 静态量化
- 预校准量化:在模型训练完成后,使用校准数据集预先计算激活值的量化参数。
- 量化范围:实现权重和激活值的全面量化,推理时使用固定的量化参数。
- 数据依赖:需要校准数据集,以覆盖实际输入数据的分布。
- 性能影响:量化过程简单,但可能由于量化参数固定而不够灵活。
2.3 量化感知训练
- 训练时量化:在模型训练过程中融入量化影响,通过梯度更新优化量化参数。
- 过程特点:模拟量化过程,使模型在训练时就适应量化影响,从而在量化后保持较好性能。
- 性能影响:量化后的模型性能通常优于静态量化,但训练过程复杂,需更多时间和计算资源。
2.4 对比
它们本质上都是在寻找量化参数(缩放因子、零点等),只是寻找方式不同,动态量化在推理时实时计算调整量化参数、静态量化在训练后再使用少量数据过一遍模型,计算得到量化参数,类似于获得模板、而量化感知训练则是使用了神经网络来学习如何调整量化参数的思想,进而在训练模型时同样训练量化参数。
也因此,根据它们的特性,动态量化会占用推理时性能、静态量化会太死板、量化感知训练则是极大增加训练成本和资源消耗,但效果也一般更好。