1.3. 工具链概览¶
地平线J5芯片工具链(以下简称 工具链)是一套完整的边缘AI算法落地解决方案,可以帮助您把浮点模型量化为定点模型, 并在地平线AI芯片上快速部署自研算法模型。
目前在GPU上训练的模型大部分都是浮点模型,即参数使用的是float类型存储。 地平线BPU架构的AI芯片使用的是int8的计算精度(业内AI芯片的通用精度),能运行定点量化模型。 那么从训练出的浮点精度转为定点模型的过程,我们叫做量化。 同时模型量化后能够有效减少模型大小,加速深度学习推理的速度,因此也在学术界和工业界的广泛研究和应用。
依据是否要对量化后的参数进行调整,我们可以将量化方法分为量化感知训练(QAT)和训练后量化(PTQ)。 这两种方法的操作区别如下图所示(图左为QAT,图右为PTQ):

量化训练QAT是将训练过的模型量化后又再进行重训练。由于定点数值无法用于反向梯度计算,实际操作过程是在某些op前插入伪量化节点(fake quantization nodes), 用于在训练时获取流经该op的数据的截断值,便于在部署量化模型时对节点进行量化时使用。我们需要在训练中通过不断优化精度来获取最佳的量化参数。由于它需要对模型进行训练, 对操作人员技术要求较高。
训练后量化 PTQ 是使用一批校准数据对训练好的模型进行校准, 将训练过的FP32网络直接转换为定点计算的网络,过程中无需对原始模型进行任何训练。只对几个超参数调整就可完成量化过程, 且过程简单快速, 无需训练, 因此此方法已被广泛应用于大量的端侧和云侧部署场景,我们优先推荐您尝试PTQ方法来查看是否满足您的部署精度和性能要求。 有关PTQ方案的详细信息请阅读 训练后量化(PTQ) 章节内容。
工具链由PTQ模型后量化转换和嵌入式编译等部分组成,工具链组成示意图如下:

其中:
Runtime SDK 提供了异构模型的运行库支持,运行库包含arm和x86(暂未提供)两个部分,分别用于在地平线AI芯片平台和X86仿真平台执行异构模型。 有关runtime应用开发请阅读 runtime应用开发指导 章节内容。
此外,工具链提供了丰富的开发 工具 、 示例 以及内置了大量算法模型的 模型发布物 帮助用户上手理解, 并可以提高用户的开发效率。
工具链的整体使用流程如下图所示,地平线推荐您先尝试PTQ方式来查看是否满足您的部署精度和性能要求。
