本技术提供了一种面向Grounding DINO的量化推理加速方法及系统,属于计算机网络信息技术领域,方法包括:将待量化Grounding DINO模型中Linear层替换为W4Linear层,并获取待量化Grounding DINO模型的权重和权重矩阵的形状;根据权重矩阵的形状动态调整分组大小,基于分组大小对权重进行量化;对量化后的权重进行压缩,将待检测数据输入量化压缩后的Grounding DINO模型,模型基于W4A32行乘行去量化矩阵乘法推理出结果;解决Grounding DINO模型在资源受限的设备上部署时不能使用仅权重分组量化的问题,以及模型无法直接应用低位矩阵乘法内核的问题。
背景技术
Grounding DINO是一种基于Transformer的开放集目标检测模型,可以在图片中检测人类语言输入指定的任意对象,该任务因其作为通用目标检测器的巨大潜力而具有广泛的应用。然而,其基于Transformer的架构,导致了大量的内存消耗和访存开销,阻碍了它们在资源受限的设备上的部署,并增加了能量消耗。为此需要压缩这个预训练模型,量化是压缩预训练模型最有效的方法之一。量化是将FP32类型的数值量化成位宽低的整数,减少了模型的内存消耗和访存开销。
量化方法往往分为量化感知训练(Quantization-Aware Training,QAT)和训练后量化(Post-training Quantization,PTQ)。尽管QAT可以减小模型精度的下降,但在训练的过程中需要更多的训练数据、较长的优化时间以及更为精细的超参数控制,尤其是Grounding DINO在训练过程中需要更多类别的图片数据,所以QAT不能很友好地解决这些问题。其中,PTQ包括动态量化、静态量化和仅权重量化,动态量化表示在推理过程中实时计算激活的量化因子,这可能导致较高的计算开销;而静态量化在部署前将模型的权重和激活值转换为低精度,导致对输入变化的灵活性较低。相比之下,仅权重量化不需要复杂的量化参数调整或校准步骤,简化了量化过程,由于激活保持float32格式,仅权重量化提供了更高的灵活性,可以适应不同的输入值,保证了预训练模型的泛化性能。
目前,许多计算机视觉研究工作集中在训练后量化技术,它们往往对权重和激活都进行了量化。论文《RepQ-ViT:Scale Reparameterization for Post-TrainingQuantization of Vision Transformers》(Zhikai Li等,Institute of Automation,Chinese Academy of Sciences等,December,2022)将量化和推理过程解耦,量化阶段采用复杂的量化器,而推理阶段则采用尺度重新参数化的简化量化器,确保了量化的准确性和推理的高效性。论文《NoisyQuant:Noisy Bias-Enhanced Post-Training ActivationQuantization for Vision Transformers》(Yijiang Liu等,Nanjing University等,November,2022)发现,对于特定的量化器,向被量化值添加固定的均匀噪声偏置可以在理论上显著减少量化误差,并通过引入均匀噪声偏置来增强视觉Transformer的后训练激活量化性能。然而,尽管这些工作在量化激活方面付出了巨大努力,但是其需要依赖特定的数据集来维持模型性能,并且这些工作没有设计相应的内核来实现加速。
仅权重量化在大型语言模型(LLMs)领域有着广泛的研究,证实了仅权重量化的有效性。为了保持模型的通用性,论文《AWQ:Activation-Aware Weight Quantization forOn-Device LLM Compression and Acceleration》(Ji Lin,Jiaming Tang,Haotian Tang,Shang Yang,Xingyu Dang and Song Han,June,2023)这项工作提出了激活感知权重量化,主要通过观察激活值来寻找显著的权重,然后对显著权重进行缩放来保护显著权重,AWQ不依赖任何反向传播或重建,因此它可以很好地保留LLM在不同域和模态上的泛化能力,而不会过度拟合校准集,AWQ这篇工作实现了一个高效且灵活的推理框架TinyChat,实现超过3倍左右的加速,但是其在分组大小上设置了固定值128。针对Grounding DINO模型中某些Linear层的行维度并非128的整数倍,导致无法直接应用固定分组大小的权重分组量化方法。并且,目前LLMs的权重存储类型为FP16,而Grounding DINO权重存储类型为FP32,现有的专为LLM设计的低位矩阵乘法内核无法直接应用于Grounding DINO模型。
实现思路