本发明专利技术公开了一种bert模型压缩加速的方法、系统、设备和存储介质,方法包括:构建第一学生模型,使用通用数据集训练所述第一学生模型,并基于基准bert模型将所述第一学生模型转化为预训练bert模型;构建第二学生模型,使用自然语言任务数据集训练所述第二学生模型,并基于所述预训练bert模型将所述第二学生模型转换为伪量化模型;以及将所述伪量化模型转换成量化模型,并对所述量化模型的算子进行合并以生成推理引擎。本发明专利技术压缩了bert模型的体积,加快了推理速度,提高了bert模型的整体性能。
【技术实现步骤摘要】
一种bert模型压缩加速的方法、系统、设备及介质
本专利技术涉及模型推理领域,更具体地,特别是指一种bert模型压缩加速的方法、系统、计算机设备及可读介质。
技术介绍
在NLP(NaturalLanguageProcessing,自然语言处理)领域,BERT模型的强大毫无疑问,但由于模型过于庞大,单个样本计算一次的开销动辄上百毫秒,很难应用到实际生产中。对于bert模型的压缩,现有技术包括Bert模型蒸馏,量化和裁剪。在自然语言理解任务中,如果直接使用int8量化技术来加速模型的推理速度,虽然可以获得2倍的加速效果,但是精度会出现严重下降,而且伪量化模型不能直接进行推理运算。如果仅用知识蒸馏对bert模型进行压缩,对模型推理的加速效果也不太理想。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种bert模型压缩加速的方法、系统、计算机设备及计算机可读存储介质,在训练阶段采用模型蒸馏和量化等手段进行模型压缩,在推理阶段采用模型转换和算子合并等手段完成模型的实际推理应用,大大压缩了bert模型的体积,并且提高了推理速度。基于上述目的,本专利技术实施例的一方面提供了一种bert模型压缩加速的方法,包括如下步骤:构建第一学生模型,使用通用数据集训练所述第一学生模型,并基于基准bert模型将所述第一学生模型转化为预训练bert模型;构建第二学生模型,使用自然语言任务数据集训练所述第二学生模型,并基于所述预训练bert模型将所述第二学生模型转换为伪量化模型;以及将所述伪量化模型转换成量化模型,并对所述量化模型的算子进行合并以生成推理引擎。在一些实施方式中,所述基于基准bert模型将所述第一学生模型转化为预训练bert模型包括:将基准bert模型作为老师模型,构建所述老师模型和所述第一学生模型之间对应层蒸馏的目标代价函数,最小化所述目标代价函数以将所述第一学生模型转化为预训练bert模型。在一些实施方式中,所述将所述伪量化模型转换成量化模型包括:对所述伪量化模型进行解析以获得伪量化节点,将所述伪量化节点转换为量化节点和反量化节点。在一些实施方式中,所述对所述量化模型的算子进行合并以生成推理引擎包括:对矩阵乘法中的权重进行量化以生成包括比例系数的新权重,提取所述比例系数并与下一个输入量化层的量化系数进行合并。本专利技术实施例的另一方面,还提供了一种bert模型压缩加速系统,包括:第一训练模块,配置用于构建第一学生模型,使用通用数据集训练所述第一学生模型,并基于基准bert模型将所述第一学生模型转化为预训练bert模型;第二训练模块,配置用于构建第二学生模型,使用自然语言任务数据集训练所述第二学生模型,并基于所述预训练bert模型将所述第二学生模型转换为伪量化模型;以及量化模块,配置用于将所述伪量化模型转换成量化模型,并对所述量化模型的算子进行合并以生成推理引擎。在一些实施方式中,所述第一训练模块配置用于:将基准bert模型作为老师模型,构建所述老师模型和所述第一学生模型之间对应层蒸馏的目标代价函数,最小化所述目标代价函数以将所述第一学生模型转化为预训练bert模型。在一些实施方式中,所述量化模块配置用于:对所述伪量化模型进行解析以获得伪量化节点,将所述伪量化节点转换为量化节点和反量化节点。在一些实施方式中,所述量化模块配置用于:对矩阵乘法中的权重进行量化以生成包括比例系数的新权重,提取所述比例系数并与下一个输入量化层的量化系数进行合并。本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。本专利技术具有以下有益技术效果:在训练阶段采用模型蒸馏和量化等手段进行模型压缩,在推理阶段采用模型转换和算子合并等手段完成模型的实际推理应用,大大压缩了bert模型的体积,并且提高了推理速度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1为本专利技术提供的bert模型压缩加速的方法的实施例的示意图;图2为本专利技术实施例的训练阶段的示意图;图3为本专利技术实施例的推理阶段的示意图;图4a为本专利技术实施例的伪量化模型的计算图;图4b为本专利技术实施例的伪量化模型中伪量化节点展开后的网络结构图;图4c为本专利技术实施例的权重量化合并后的网络结构图;图4d为本专利技术实施例的算子合并后的网络结构图;图5为本专利技术提供的bert模型压缩加速的计算机设备的实施例的硬件结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。基于上述目的,本专利技术实施例的第一个方面,提出了一种bert模型压缩加速的方法的实施例。图1示出的是本专利技术提供的bert模型压缩加速的方法的实施例的示意图。如图1所示,本专利技术实施例包括如下步骤:S1、构建第一学生模型,使用通用数据集训练第一学生模型,并基于基准bert模型将第一学生模型转化为预训练bert模型;S2、构建第二学生模型,使用自然语言任务数据集训练第二学生模型,并基于预训练bert模型将第二学生模型转换为伪量化模型;以及S3、将伪量化模型转换成量化模型,并对量化模型的算子进行合并以生成推理引擎。本专利技术实施例主要包括训练阶段和推理阶段,训练阶段包括模型的预训练和模型的微调,推理阶段包括模型的转换和算子的合并。图2示出的是本专利技术实施例中训练阶段的示意图。如图2所示,采用Wiki通用数据集对初始模型进行预训练,然后采用具体任务专用数据集进行再次训练,并通过模型蒸馏和量化对再次训练后的模型进行微调。构建第一学生模型,使用通用数据集训练第一学生模型,并基于基准bert模型将第一学生模型转化为预训练bert模型。在一些实施方式中,所述基于基准bert模型将所述第一学生模型转化为预训练bert模型包括:将基准bert模型作为老师模型,构建所述老师模型和所述第一学生模型之间对应层蒸馏的目标代价函数,最小化所述目标代价函数以将所述第一学生模型转化为预训练bert模型。本专利技术实施例采用标准bert模型作为老师模型,在预训练阶段主要使bert模型在大型数据集wiki中学习到通用知识本文档来自技高网...
【技术保护点】
1.一种bert模型压缩加速的方法,其特征在于,包括以下步骤:/n构建第一学生模型,使用通用数据集训练所述第一学生模型,并基于基准bert模型将所述第一学生模型转化为预训练bert模型;/n构建第二学生模型,使用自然语言任务数据集训练所述第二学生模型,并基于所述预训练bert模型将所述第二学生模型转换为伪量化模型;以及/n将所述伪量化模型转换成量化模型,并对所述量化模型的算子进行合并以生成推理引擎。/n
【技术特征摘要】
1.一种bert模型压缩加速的方法,其特征在于,包括以下步骤:
构建第一学生模型,使用通用数据集训练所述第一学生模型,并基于基准bert模型将所述第一学生模型转化为预训练bert模型;
构建第二学生模型,使用自然语言任务数据集训练所述第二学生模型,并基于所述预训练bert模型将所述第二学生模型转换为伪量化模型;以及
将所述伪量化模型转换成量化模型,并对所述量化模型的算子进行合并以生成推理引擎。
2.根据权利要求1所述的方法,其特征在于,所述基于基准bert模型将所述第一学生模型转化为预训练bert模型包括:
将基准bert模型作为老师模型,构建所述老师模型和所述第一学生模型之间对应层蒸馏的目标代价函数,最小化所述目标代价函数以将所述第一学生模型转化为预训练bert模型。
3.根据权利要求1所述的方法,其特征在于,所述将所述伪量化模型转换成量化模型包括:
对所述伪量化模型进行解析以获得伪量化节点,将所述伪量化节点转换为量化节点和反量化节点。
4.根据权利要求1所述的方法,其特征在于,所述对所述量化模型的算子进行合并以生成推理引擎包括:
对矩阵乘法中的权重进行量化以生成包括比例系数的新权重,提取所述比例系数并与下一个输入量化层的量化系数进行合并。
5.一种bert模型压缩加速的方法,其特征在于,包括:
第一训练模块,配置用于构建第一学生模型,使用通用数据集训练所述第一学生模型,并基于基准bert模型将所述第...
【专利技术属性】
技术研发人员:王曦辉,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。