AIMET工具模型量化介绍(1)
AIMET模型量化
模型通常在 CPU 和 GPU 等浮点硬件上进行训练。 但是,当这些经过训练的模型在支持固定精度运算的量化硬件上运行时,模型参数会从浮点精度转换为固定精度。 例如,在支持 8 位整数运算的硬件上运行时,训练模型中的浮点参数需要转换为 8 位整数。 据观察,对于某些模型,由于使用固定精度参数和固定精度操作而引入的噪声,在 8 位固定精度运行时上运行会导致精度损失。
AIMET 提供了多种技术和工具,有助于创建量化模型,相对于浮点模型而言,精度损失最小。
用例
1.预测目标精度:AIMET 使用户能够模拟量化的效果,从而在量化目标上运行时获得模型精度的一阶估计。 这对于在不需要实际目标平台的情况下估计目标精度很有用。 请注意,为了创建模拟模型,AIMET 使用代表性数据样本来计算每层量化编码。2. 计算每层编码的微调模型:AIMET 使用户能够使用代表性数据样本计算每层量化编码。 并且它进一步使用户能够使用训练管道来微调模型,以在给定这些计算编码的情况下提高量化精度。
3. 训练后量化(无微调):在某些情况下,用户可能不希望进一步训练模型以提高量化精度。 这可能是一些原因
- 可能无法访问此模型的训练管道
- 可能无法访问用于微调的标记训练数据
- 可能想要避免选择正确的超参数和训练模型所需的时间和精力
在上述场景中,AIMET 提供了一组训练后量化技术,可以改变模型参数以实现更好的量化精度。 这些技术旨在解决模型中的特定均衡问题,可能不适用于所有模型。
用户流程
下图显示了一个决策流程,可用于确定如何最好地利用 AIMET 中可用的技术。 图中的相关步骤用带数字的绿色圆圈标注。 在图表之后,为每个带注释的步骤提供了更多详细信息。
AIMET 量化功能
**量化模拟:**AIMET 使用户能够修改模型以添加量化模拟操作。当使用这些量化模拟操作在模型上运行评估时,用户可以观察量化硬件上预期精度的一阶模拟。
**量化可视化:**AIMET 提供可视化工具,帮助指导用户确定 AIMET 训练后量化技术是否对给定模型有用
应用自适应舍入:确定权重张量的最佳舍入以提高量化性能
**应用跨层均衡:**训练后量化技术可帮助模型提高量化精度,而无需重新训练。跨层均衡均衡了连续层中的权重范围。
应用偏差校正:偏差校正可校正由于量化噪声引起的层输出偏移
Quantization-aware Fine-tuning:用户可以使用 AIMET 生成的 Quantization Sim 模型进行训练,以提高模型的量化精度。这是在量化硬件上模拟模型的微调。