模型量化方法及其装置与流程
未命名
07-17
阅读:174
评论:0

1.本技术涉及数据处理技术领域,尤其涉及一种模型量化方法及其装置。
背景技术:
2.随着人工智能技术的迅猛发展,深度学习模型在图像分类、目标检测、语音识别等场景下被广泛使用,模型的计算的复杂度同时体现在空间存储量和时间计算量上,为了减少内存占用和参数更新,提高缓存利用率,通常需要对深度学习模型的模型参数进行量化。深度学习模型通常具有不同的模型格式,因此,如何提高模型量化的通用性,平衡深度学习模型的量化效率以及量化精度,已经成为重要的研究方向之一。
技术实现要素:
3.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。
4.本技术第一方面实施例提出了一种模型量化方法,包括:
5.获取待量化的源深度学习模型和源深度学习模型的第一模型格式;
6.获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型;
7.对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型;
8.对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型。
9.本技术可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新,提高缓存利用率。
10.本技术第二方面实施例提出了一种模型量化装置,包括:
11.第一获取模块,用于获取待量化的源深度学习模型和所述源深度学习模型的第一模型格式;
12.第二获取模块,用于获取量化后目标深度学习模型所支持的第二模型格式,并在所述第一模型格式与所述第二模型格式不一致时,对所述源深度学习模型进行格式转换,以获取所述第二模型格式下的第一候选深度学习模型;
13.量化模块,用于对所述第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型;
14.转换模块,用于对所述第二候选深度学习模型进行轻量级推理转换,以获取量化后的所述目标深度学习模型。
15.本技术第三方面实施例提出了一种电子设备,包括:
16.至少一个处理器;以及
17.与至少一个处理器通信连接的存储器;其中,
18.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本技术第一方面实施例中提供的模型量化方法。
19.本技术第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机指令,其中,计算机指令用于使计算机执行根据本技术第一方面实施例中提供的模型量化方法。
20.本技术第五方面实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本技术第一方面实施例中提供的模型量化方法。
附图说明
21.图1是本技术一个实施例的模型量化方法的流程图;
22.图2是本技术一个实施例的模型量化方法的流程图;
23.图3是本技术一个实施例的模型量化方法的流程图;
24.图4是本技术一个实施例的模型量化方法的流程图;
25.图5是本技术一个实施例的模型量化方法的示意图;
26.图6是本技术一个实施例的模型量化方法的示意图;
27.图7是本技术一个实施例的模型量化装置的结构框图;
28.图8是本技术一个实施例的电子设备的结构示意图。
具体实施方式
29.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
30.需要说明的是,模型量化,就是通过某种方法将浮点模型转为定点模型,比如,将模型参数从float-32量化到更低位数,如float-16、int8、1bit等。为了获得更大的压缩率和更快的运行速度,或受限于部署平台的计算单元类型,模型通常需要对整个网络模型的权值和激活值均进行定点量化,以降低模型计算的开销。在处理int8整数数据时,图形处理器使用更快更便宜的8位张量核来计算卷积和矩阵乘法运算,这会产生更多的计算吞吐量。将激活和参数数据的精度从32位浮点值降低到8位整数可导致4倍的数据缩减,减少内存占用意味着模型需要更少的存储空间,参数更新更小,缓存利用率更高。
31.下面结合附图来描述本技术实施例的模型量化方法及其装置。
32.图1是本技术一个实施例的模型量化方法的流程图,如图1所示,该方法包括以下步骤:
33.s101,获取待量化的源深度学习模型和源深度学习模型的第一模型格式。
34.本技术实施例中,源深度学习模型可以为多深度学习框架下已经训练好的高精度模型。源深度学习模型可以为用于图像识别的模型、用于图像分类的模型、用于语音识别的模型等等。本公开对此不做限定。
35.本技术实施例中,量化后目标深度学习模型所支持的模型格式为第二模型格式,本技术实施例由模型量化方法可以由支持第二模型格式的服务器或设备执行,可选地,第
二模型格式可以为符号数学系统(tensorflow)模型格式。在一些实现中,可以将符号数学系统部署在服务器中,若服务器可以基于符号数学系统运行源深度学习模型,可以确定第一模型格式与第二模型格式一致。若服务器基于符号数学系统不能运行源深度学习模型,可以确定第一模型格式与第二模型格式不一致。
36.s102,获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型。
37.为了使得当前服务器或设备支持源深度学习模型的运行和量化,本技术实施例中,对在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,获取第二模型格式下的第一候选深度学习模型,以便于后续对深度学习模型的量化。
38.在一些实现中,可以基于中间格式(onnx格式)对第一模型格式下的源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型。可选地,可以对源深度学习模型进行开放神经网络交换,以获取标准模型格式下的第三候选深度学习模型。将第三候选深度学习模型从标准模型格式向第二模型格式进行格式转换,得到第一候选深度学习模型。其中,标准模型格式即为onnx格式。
39.s103,对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型。
40.其中,源深度学习模型中的各个模型参数可以为模型的权重、偏置、激活值中的一项或多项。进行格式转换后,模型参数未发生改变,也就是说,源深度学习模型与第一候选深度学习模型的模型参数一致。
41.本技术实施例中,为了平衡深度学习模型的量化效率以及量化精度,可以根据业务场景的量化精度需求对第一候选深度学习模型的模型参数进行训练感知量化(qat)或训练后量化(ptq),以获取第二候选深度学习模型。需要说明的是,可以根据预设的目标数据位宽对第一候选深度学习模型的模型参数进行量化处理,目标数据位宽为量化后的模型参数对应的长度。比如,量化后的模型参数为int8类型,则目标数据位宽为8位。
42.需要说明的是,源深度学习模型中的各个模型参数的数据位宽大于目标数据位宽。比如,待压缩模型中的各个模型参数为float-32(即数据位宽为32位),则量化后的模型参数可以为int8类型,即目标数据位宽为8位,还可以int4类型,即目标数据位宽为4位。
43.s104,对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型。
44.本技术实施例中,对第二候选深度学习模型进行轻量级推理转换(tflite转换),以获取量化后的目标深度学习模型。针对第二候选深度学习模型,可以通过tflite转换方便地转换模型输出数据类型,由此,目标深度学习模型可以达到模型数据量化、模型输出量化等多种模型量化功能。
45.本技术实施例中,获取待量化的源深度学习模型和源深度学习模型的第一模型格式;获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型,可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型。对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深
度学习模型;对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新,提高缓存利用率。
46.图2是本技术一个实施例的模型量化方法的流程图,如图2所示,该方法包括以下步骤:
47.s201,获取待量化的源深度学习模型和源深度学习模型的第一模型格式。
48.s202,获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型。
49.关于步骤s201~步骤s202的内容可以参见上述实施例中的内容,此处不再赘述。
50.s203,获取源深度学习模型的目标量化精度。
51.在一些实现中,源深度学习模型的目标量化精度为计算过程中保留的小数位数,例如对图像数据进行处理的过程中,各通道像素值的保留小数位数。在一些实现中,可以获取源深度学习模型的业务场景对量化精度的需求,根据业务场景对量化精度的需求获取源深度学习模型的目标量化精度,例如,可以根据源深度学习模型的业务场景对量化精度的需求确定源深度学习模型的目标量化精度为需要进行高精度量化或不需要进行高精度量化。
52.s204,调用模型量化组件,由模型量化组件根据目标量化精度对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型。
53.本技术实施例中,模型量化组件可以是精度调优工具(tfmot量化工具),举例说明,若目标量化精度大于或等于预设量化精度阈值,也就是说源深度学习模型的目标量化精度为需要进行高精度量化,由模型量化组件对第一候选深度学习模型的模型参数进行训练感知量化,以获取第二候选深度学习模型。针对训练感知量化(quantization aware training,qat),可以使用tfmot量化工具进行自动量化,该工具的优势在于能够指定特定层(例如全连接神经网络层(dense层)、激活层)进行量化,有效量化权重、激活值并灵活组合各层量化操作,对模型能够很方便地进行定制化量化,兼具灵活性和有效性。训练感知量化会降低模型训练速度,但是能够获得更高的精度。
54.可选地,训练感知量化在深度学习模型经过训练后进行,它是对深度学习模型结构进行修改,加入了一些量化节点,然后对已训练好的模型再次训练,把量化的误差噪声作为模型的一部分进行了再次调优训练,所以几乎可以达到无损的精度。
55.举例说明,若目标量化精度小于预设量化精度阈值,也就是说源深度学习模型的目标量化精度为不需要进行高精度量化,由模型量化组件对第一候选深度学习模型的模型参数进行训练后量化,以获取第二候选深度学习模型。针对训练后量化(post-training quantization,ptq),可以使用tfmot量化工具进行自动量化,该工具能够指定量化模型为特定的数据类型(例如float16、int8)。ptq方式是在高精度模型经过训练后进行的。例如,若模型激活值、权重为float32类型,通过训练后量化对深度学习模型的权重、激活值进行int8量化,权重量化比较容易因为已知道其值的分布,对于激活值在推理(inference)时才可感知到,所以需要通过样本集进行范围(scale)的计算。最终的模型大小(size)会减少4倍,但是推理精度是有损失的一般在2-3%的精度损失。
56.s205,对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型。
57.关于步骤s205的内容可以参见上述实施例中的内容,此处不再赘述。
58.本技术实施例中,获取源深度学习模型的目标量化精度,调用模型量化组件,由模型量化组件根据目标量化精度对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型,本技术可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新,提高缓存利用率。
59.图3是本技术一个实施例的模型量化方法的流程图,如图1所示,该方法包括以下步骤:
60.s301,获取待量化的源深度学习模型和源深度学习模型的第一模型格式。
61.s302,获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型。
62.s303,对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型。
63.关于步骤s301~步骤s303的内容可以参见上述实施例中的内容,此处不再赘述。
64.s304,监听节点构建请求。
65.在一些实现中,若第二候选深度学习模型满足业务需求的精度,则无需在第二候选深度学习模型中的指定神经网络层增加量化节点和/或反量化节点。在一些实现中,若基于模型量化组件对第一候选深度学习模型的模型参数进行量化处理后,获取的第二候选深度学习模型未满足业务需求的精度,则进一步对节点构建请求进行监听,根据节点构建请求执行构造量化节点和/或反量化节点的造作,以便于进一步对第二候选深度学习模型进行精度调优。
66.s305,根据节点构建请求,在第二候选深度学习模型中的指定神经网络层增加量化节点和/或反量化节点。
67.本技术实施例中,指定神经网络层可以是dense层和/或激活层。
68.s306,基于量化节点和/或反量化节点对第二候选深度学习模型的模型参数进行量化调优。
69.在一些实现中,获取量化节点的第一量化参数,并基于第一量化参数对第二候选深度学习模型的模型参数进行量化操作,以获取缩小位宽后的第二候选深度学习模型。
70.在一些实现中,获取反量化节点的第二量化参数,并基于第二量化参数对第二候选深度学习模型的模型参数进行反量化操作,以获取扩大位宽后的第二候选深度学习模型。
71.需要说明的是,本技术实施例中,基于量化节点和反量化节点对第二候选深度学习模型的模型参数进行量化调优后,提升了第二候选深度学习模型的模型参数的准确度,第二候选深度学习模型的目标数据位宽未发生变化。
72.s307,对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型。
73.关于步骤s37的内容可以参见上述实施例中的内容,此处不再赘述。
74.本技术实施例中,监听节点构建请求,根据节点构建请求,在第二候选深度学习模型中的指定神经网络层增加量化节点和/或反量化节点,基于量化节点和/或反量化节点对第二候选深度学习模型的模型参数进行量化调优。本技术可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,进一步提高深度学习模型的精度以及准确度。
75.图4是本技术一个实施例的模型量化方法的流程图,如图1所示,该方法包括以下步骤:
76.s401,获取待处理的初始数据,并基于初始数据构造目标推理请求,初始数据为图像数据和/或语音数据和/或文本数据。
77.本技术实施例中,接收初始推理请求,对初始推理请求中的初始数据进行预处理,以获取符合符号数学系统标准输入的目标推理请求。也就是说对初始数据进行解析,获取候选数据,进一步地,获取推理请求模板,从候选数据中提取系统处理所需的信息,进而对推理请求模板的填充位置进行填充,以得到目标推理请求。
78.在一些实现中,为了提高服务吞吐能力,可以对于多请求进行合并批量(batch)处理。
79.s402,将目标推理请求输入目标深度学习模型进行处理,以获取初始数据对应的目标量化数据。
80.在一些实现中,为了提高服务吞吐能力,可以将等待wait队列,也即批量的目标推理请求输入目标深度学习模型进行处理,以获取初始数据对应的目标量化数据。可选地,若模型需要图形处理器(graphics processing unit,gpu),可以从多个候选图形处理器中确定目标图形处理器,例如,可以随机选择一台候选图形处理器,或根据候选图形处理器的任务量从多个候选图形处理器中选出一台任务量最少的图形处理器,检查该候选图形处理器的可用性,若该候选图形处理器可用,则将该候选图形处理器确定为目标图形处理器,否则将预设的候选图形处理器确定为目标图形处理器。进一步地,将目标深度学习模型和目标图形处理器进行关联,并为目标图形处理器分配设备驱动(device)资源,并将批量的目标推理请求发送至目标图形处理器。调用目标图形处理器基于目标深度学习模型对目标推理请求进行处理,以获取初始数据对应的目标量化数据。
81.本技术实施例中,获取待处理的初始数据,并基于初始数据构造目标推理请求,将目标推理请求输入目标深度学习模型进行处理,以获取初始数据对应的目标量化数据。本技术可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新,提高缓存利用率,进一步提高深度学习模型的精度以及准确度。
82.如图5所示,本技术实施例中,获取待量化的源深度学习模型,并判断源深度学习模型的模型格式是否为tensorflow格式,若源深度学习模型的模型格式与符号数学系统模型格式不一致,对源深度学习模型进行onnx格式转换,以获取tensorflow格式的第一候选深度学习模型,若源深度学习模型的模型格式与符号数学系统模型格式一致,确定源深度学习模型为第一候选深度学习模型;进一步地,判断当前业务场景需求是否需要高精度量化,响应于当前业务场景需求为高精度量化,由模型量化组件对第一候选深度学习模型的
模型参数进行qat量化,以获取第二候选深度学习模型。响应于当前业务场景不需要高精度量化,由模型量化组件对第一候选深度学习模型的模型参数进行ptq量化,以获取第二候选深度学习模型。进一步地,监听节点构建请求,若监听到节点构建请求,根据节点构建请求,在第二候选深度学习模型中的指定神经网络层增加量化节点和/或反量化节点;基于量化节点和/或反量化节点对第二候选深度学习模型的模型参数进行量化调优。进而对第二候选深度学习模型进行tflite转换,以获取量化后的目标深度学习模型。
83.如图6所示,获取获取量化后的目标深度学习模型后,可以基于目标深度学习模型提供预估服务,也就是说,通过在原有预估服务中集成tflite,实现对量化模型的预估支持,实现量化后模型的对外预估服务。预估服务主要流程如下:获取待处理的初始数据,对初始数据进行解析,获取候选数据;获取推理请求模板,并基于候选数据中的信息对推理请求模板进行填充,得到目标推理请求。从多个候选图形处理器中确定目标图形处理器,并将目标深度学习模型和目标图形处理器进行关联;为目标图形处理器分配设备驱动资源,并将目标推理请求批量发送至目标图形处理器;调用目标图形处理器基于目标深度学习模型对目标推理请求进行处理,以获取初始数据对应的目标量化数据。
84.本技术可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新,提高缓存利用率。
85.如图7所示,基于同一申请构思,本技术实施例还提供了一种模型量化装置700,包括:
86.第一获取模块710,用于获取待量化的源深度学习模型和源深度学习模型的第一模型格式;
87.第二获取模块720,用于获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型;
88.量化模块730,用于对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型;
89.转换模块740,用于对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型。
90.在一些实现中,量化模块730,还用于:
91.获取源深度学习模型的目标量化精度;
92.调用模型量化组件,由模型量化组件根据目标量化精度对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型。
93.在一些实现中,量化模块730,还用于:
94.响应于目标量化精度大于或等于预设量化精度阈值,由模型量化组件对第一候选深度学习模型的模型参数进行训练感知量化,以获取第二候选深度学习模型。
95.在一些实现中,量化模块730,还用于:
96.响应于目标量化精度小于预设量化精度阈值,由模型量化组件对第一候选深度学习模型的模型参数进行训练后量化,以获取第二候选深度学习模型。
97.在一些实现中,第二获取模块720,还用于:
98.对源深度学习模型进行开放神经网络交换,以获取标准模型格式下的第三候选深度学习模型;
99.将第三候选深度学习模型从标准模型格式向第二模型格式进行格式转换,得到第一候选深度学习模型。
100.在一些实现中,量化模块730,还用于:
101.监听节点构建请求;
102.根据节点构建请求,在第二候选深度学习模型中的指定神经网络层增加量化节点和/或反量化节点;
103.基于量化节点和/或反量化节点对第二候选深度学习模型的模型参数进行量化调优。
104.在一些实现中,量化模块730,还用于:
105.获取量化节点的第一量化参数,并基于第一量化参数对第二候选深度学习模型的模型参数进行量化操作,以获取缩小位宽后的第二候选深度学习模型;和/或
106.获取反量化节点的第二量化参数,并基于第二量化参数对第二候选深度学习模型的模型参数进行反量化操作,以获取扩大位宽后的第二候选深度学习模型。
107.在一些实现中,装置还包括处理模块750,用于:
108.获取待处理的初始数据,并基于初始数据构造目标推理请求,初始数据为图像数据和/或语音数据和/或文本数据;
109.将目标推理请求输入目标深度学习模型进行处理,以获取初始数据对应的目标量化数据。
110.在一些实现中,处理模块750,还用于:
111.对初始数据进行解析,获取候选数据;
112.获取推理请求模板,并基于候选数据对推理请求模板进行填充,得到目标推理请求。
113.在一些实现中,处理模块750,还用于:
114.从多个候选图形处理器中确定目标图形处理器,并将目标深度学习模型和目标图形处理器进行关联;
115.为目标图形处理器分配设备驱动资源,并将目标推理请求发送至目标图形处理器;
116.调用目标图形处理器基于目标深度学习模型对目标推理请求进行处理,以获取初始数据对应的目标量化数据。
117.本技术可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新,提高缓存利用率。
118.基于同一申请构思,本技术实施例还提供了一种电子设备。
119.图8为本技术实施例提供的电子设备的结构示意图。如图8所示,该电子设备800,包括存储器810、处理器820及存储在存储器810上并可在处理器820上运行的计算机程序产品,处理器执行计算机程序时,实现前述的模型量化方法。
120.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
121.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
122.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
123.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
124.基于同一申请构思,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令用于使计算机执行上述实施例中的模型量化方法。
125.基于同一申请构思,本技术实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时上述实施例中的模型量化方法。
126.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本技术可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
127.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
128.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
129.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种模型量化方法,其特征在于,包括:获取待量化的源深度学习模型和所述源深度学习模型的第一模型格式;获取量化后目标深度学习模型所支持的第二模型格式,并在所述第一模型格式与所述第二模型格式不一致时,对所述源深度学习模型进行格式转换,以获取所述第二模型格式下的第一候选深度学习模型;对所述第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型;对所述第二候选深度学习模型进行轻量级推理转换,以获取量化后的所述目标深度学习模型。2.根据权利要求1所述的方法,其特征在于,所述对所述第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型,包括:获取所述源深度学习模型的目标量化精度;调用模型量化组件,由所述模型量化组件根据所述目标量化精度对所述第一候选深度学习模型的模型参数进行量化处理,以获取所述第二候选深度学习模型。3.根据权利要求2所述的方法,其特征在于,所述调用模型量化组件,由所述模型量化组件根据所述目标量化精度对所述第一候选深度学习模型的模型参数进行量化处理,以获取所述第二候选深度学习模型,包括:响应于所述目标量化精度大于或等于预设量化精度阈值,由所述模型量化组件对所述第一候选深度学习模型的模型参数进行训练感知量化,以获取所述第二候选深度学习模型。4.根据权利要求2所述的方法,其特征在于,所述调用模型量化组件,由所述模型量化组件根据所述目标量化精度对所述第一候选深度学习模型的模型参数进行量化处理,以获取所述第二候选深度学习模型,包括:响应于所述目标量化精度小于预设量化精度阈值,由所述模型量化组件对所述第一候选深度学习模型的模型参数进行训练后量化,以获取所述第二候选深度学习模型。5.根据权利要求1-4任一项所述的方法,其特征在于,所述对所述源深度学习模型进行格式转换,以获取所述第二模型格式下的第一候选深度学习模型,包括:对所述源深度学习模型进行开放神经网络交换,以获取标准模型格式下的第三候选深度学习模型;将所述第三候选深度学习模型从所述标准模型格式向所述第二模型格式进行格式转换,得到所述第一候选深度学习模型。6.根据权利要求1所述的方法,其特征在于,所述对所述第二候选深度学习模型进行轻量级推理转换之前,还包括:监听节点构建请求;根据所述节点构建请求,在所述第二候选深度学习模型中的指定神经网络层增加量化节点和/或反量化节点;基于所述量化节点和/或反量化节点对所述第二候选深度学习模型的模型参数进行量化调优。7.根据权利要求6所述的方法,其特征在于,所述基于所述量化节点和/或反量化节点
对所述第二候选深度学习模型的模型参数进行量化调优,包括:获取所述量化节点的第一量化参数,并基于所述第一量化参数对所述第二候选深度学习模型的模型参数进行量化操作,以获取缩小位宽后的第二候选深度学习模型;和/或获取所述反量化节点的第二量化参数,并基于所述第二量化参数对所述第二候选深度学习模型的模型参数进行反量化操作,以获取扩大位宽后的第二候选深度学习模型。8.根据权利要求1所述的方法,其特征在于,根据所述目标深度学习模型进行数据处理的过程,包括:获取待处理的初始数据,并基于所述初始数据构造目标推理请求,所述初始数据为图像数据和/或语音数据和/或文本数据;将所述目标推理请求输入所述目标深度学习模型进行处理,以获取所述初始数据对应的目标量化数据。9.根据权利要求8所述的方法,其特征在于,所述基于所述初始数据构造目标推理请求,包括:对所述初始数据进行解析,获取候选数据;获取推理请求模板,并基于所述候选数据对所述推理请求模板进行填充,得到所述目标推理请求。10.根据权利要求8所述的方法,其特征在于,所述将所述目标推理请求输入预设的目标深度学习模型进行处理,以获取所述初始数据对应的目标量化数据,包括:从多个候选图形处理器中确定目标图形处理器,并将所述目标深度学习模型和所述目标图形处理器进行关联;为所述目标图形处理器分配设备驱动资源,并将所述目标推理请求发送至所述目标图形处理器;调用所述目标图形处理器基于目标深度学习模型对所述目标推理请求进行处理,以获取所述初始数据对应的目标量化数据。11.一种模型量化装置,其特征在于,包括:第一获取模块,用于获取待量化的源深度学习模型和所述源深度学习模型的第一模型格式;第二获取模块,用于获取量化后目标深度学习模型所支持的第二模型格式,并在所述第一模型格式与所述第二模型格式不一致时,对所述源深度学习模型进行格式转换,以获取所述第二模型格式下的第一候选深度学习模型;量化模块,用于对所述第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型;转换模块,用于对所述第二候选深度学习模型进行轻量级推理转换,以获取量化后的所述目标深度学习模型。12.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
13.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-10中任一项所述的方法。14.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-10中任一项所述的方法。
技术总结
本申请提出了一种模型量化方法及其装置,涉及数据处理技术领域。该方法包括:获取待量化的源深度学习模型和源深度学习模型的第一模型格式;获取量化后目标深度学习模型所支持的第二模型格式,并在第一模型格式与第二模型格式不一致时,对源深度学习模型进行格式转换,以获取第二模型格式下的第一候选深度学习模型;对第一候选深度学习模型的模型参数进行量化处理,以获取第二候选深度学习模型;对第二候选深度学习模型进行轻量级推理转换,以获取量化后的目标深度学习模型。本申请可以提高模型量化的通用性,适用于多深度学习训练框架生成的不同模型格式的深度学习模型,可以平衡深度学习模型的量化效率以及量化精度,减少内存占用和参数更新。存占用和参数更新。存占用和参数更新。
技术研发人员:金均生 李盼 王景森 赵磊 刘明华 李健 齐浩 林战刚 胡景贺
受保护的技术使用者:北京京东世纪贸易有限公司
技术研发日:2023.03.29
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/