rknn 量化原理

在 RKNN (Rockchip Neural Network Toolkit) 中,传入校准数据集进行量化的过程是基于 Post-Training Quantization (PTQ) 的原理,特别是对于 8-bit 量化(INT8)模型,这是一个常见的过程。以下是其基本原理和流程:

  1. 校准数据集的作用

校准数据集是用于确定模型中每一层权重和激活值的动态范围的。量化将浮点数值(通常是 FP32)映射到整数值(如 INT8)。这种映射需要知道数值范围,从而计算缩放因子(scale)和零点(zero point)。

• 激活量化:

需要了解每一层输出的最小值和最大值,以便将浮点范围映射到 INT8 范围(通常是 -128 到 127)。

• 权重量化:

类似地,权重的动态范围也需要确定,以便正确映射到 INT8。

校准数据集通过多次推理,统计这些范围信息,从而为后续量化提供准确的参考。

  1. 量化的基本公式
    \text{int8_value} = \text{round}\left(\frac{\text{float_value} - \text{zero_point}}{\text{scale}}\right)

量化映射关系可表示为:



• Scale: 用于表示浮点数到整数的缩放因子。

• Zero Point: 用于调整量化范围与浮点范围的对齐。

通过校准数据集,可以统计每一层的输出范围(min 和 max),然后计算缩放因子和零点:



\text{scale} = \frac{\text{max_float} - \text{min_float}}{255} \quad \text{(对称量化)}

或者:



\text{scale} = \frac{\text{max_float} - \text{min_float}}{256}, \quad \text{zero_point} = -\frac{\text{min_float}}{\text{scale}}

  1. 校准的过程

校准过程分以下几步:

(1) 数据准备

传入校准数据集,这些数据应该能覆盖模型运行时的典型输入分布,通常是训练数据的一个子集或相似分布的数据。

(2) 模型推理

使用校准数据集对模型进行推理,统计每一层激活值和权重的分布情况。

(3) 统计范围

根据推理过程中收集的激活值分布,找到每一层输出的动态范围(min 和 max)。这通常使用以下方法:

• Min-Max 统计: 直接记录每一层激活的最小值和最大值。

• KL 散度: 比较量化分布和浮点分布的差异,选择一个最佳范围。

(4) 计算缩放参数

根据统计的动态范围计算 scale 和 zero point,用于后续量化。

(5) 替换浮点运算

将模型中的浮点计算替换为整数计算(例如使用 INT8 加法和乘法),并用校准得到的量化参数调整权重和激活。

  1. 校准数据的重要性

校准数据集的质量直接影响量化模型的准确性。原因是:

• 不同分布的校准数据可能导致量化参数与实际推理数据分布不匹配。

• 数据覆盖度不足(如仅覆盖某些输入模式)可能导致模型某些部分的动态范围被低估。

因此,选择校准数据时需尽可能贴近实际推理场景。

  1. RKNN 的优化

RKNN 在量化过程中可能采用了一些优化技术:

• 混合量化:如果某些层量化损失较大,可能保留这些层为 FP32 或使用 FP16。

• 改进的动态范围估计:比如使用 KL 散度方法或其他启发式统计技术来更好地捕捉分布。

总结

RKNN 的量化通过校准数据集来统计动态范围,计算量化参数(scale 和 zero point),并将模型权重和激活映射到整数值,从而减少推理时的计算复杂度和存储需求。这种方法依赖校准数据集的代表性和框架的量化策略优化。

相关推荐
长不大的杨瑞杰1 分钟前
OpenCode v2 配置工程实战:Config 优先级、JSONC、变量替换与多环境治理
人工智能·安全·云计算·软件工程·devops
.Bryce.10 分钟前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
小超人诞生日记12 分钟前
C++ 智能指针的使用及其原理详解
c++·算法
高升说17 分钟前
手眼方案怎么选:眼在手上与眼在手外的工程对比
人工智能·数码相机
Highcharts.js34 分钟前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
apple_6926588540 分钟前
基于 Qwen-Image-2.1 的人物替换 LoRA 模型及部署工作流 人物替换的效果 吊打闭源
人工智能·计算机视觉
甲维斯1 小时前
绝了!Codex找苹果客服解决Claude订阅问题!
人工智能
斗象科技1 小时前
斗象入选上海市“AI+制造“服务商能力图谱·AI安全服务商
人工智能·安全·制造
明志数科1 小时前
工业采集数据的计量口径分层与可复算质检设计
人工智能·机器人
qq_25294131681 小时前
日本道路病害检测数据集 | 道路病害 裂缝检测 坑洼识别 市政巡检9287期
人工智能·深度学习·yolo·目标检测·计算机视觉·道路检测