本申请涉及深度学习,具体而言,本申请涉及一种模型切分方法、装置、电子设备及计算机存储介质。
背景技术:
1、随着深度学习技术的快速发展,网络模型的结构越来越复杂。在模型推理平台上对网络模型进行推理时,网络模型中的各个子结构会涉及数据交互,通常需要对各个子结构进行量化,在各个子结构与另一子结构进行交互时,要对量化后的子结构进行反量化操作,再进行数据交互。
2、现有技术中的方法在一些无需量化或反量化操作的位置添加了量化算子或反量化算子,从而使得模型中子结构的交互的效率较低,花费时间较多,导致资源浪费,使得总体性能较低。
技术实现思路
1、本申请实施例旨在解决现有的多个模型间插入大量非必要的量化与反量化算子浪费资源,花费时间较长,总体性能较低的问题。所述技术方案如下:
2、第一方面,本申请提供了一种模型切分方法,包括:
3、获取多任务模型,将所述多任务模型切分为多个子任务模型;所述每一子任务模型对应一个可选任务的输入标识和输出标识;
4、若检测到所述多个子任务模型中任一第一任务模型的输入标识为第二任务模型的输出标识,删除所述第一任务模型和所述第二任务模型的交互信息中的量化算子和反量化算子,得到更新交互信息;
5、通过所述各个子任务模型对应的更新交互信息,运行所述各个子任务模型以处理目标任务,得到目标任务对应的目标结果。
6、在第一方面的可选实施例中,所述将所述多任务模型切分为多个子任务模型,包括:
7、确定所述多任务模型中的多个可选任务的输入标识和输出标识;
8、基于所述每一可选任务的输入标识和输出标识确定切分点;
9、基于所述切分点将所述多任务模型切分,得到所述多个子任务模型。
10、在第一方面的可选实施例中,所述基于所述每一可选任务的输入标识和输出标识确定切分点,包括:
11、若检测到所述多个可选任务中第一任务的输入标识与第二任务的输出标识相同,则将所述多任务模型中第一任务的输入标识或第二任务的输出标识对应的节点作为所述切分点。
12、在第一方面的可选实施例中,所述基于所述切分点将所述多任务模型切分之后,还包括:
13、基于所述每一可选任务的输入标识和输出标识确定所述各个子任务模型之间的连接关系;
14、所述运行所述各个子任务模型处理目标任务,包括:
15、通过所述连接关系运行所述各个子任务模型以处理目标任务。
16、在第一方面的可选实施例中,所述运行所述各个子任务模型以处理目标任务,包括:
17、通过所述每一子任务模型分别对应的线程,分别运行所述各个子任务模型以处理目标任务。
18、在第一方面的可选实施例中,所述所述删除所述第一任务模型和所述第二任务模型的交互信息中的量化算子和反量化算子,得到更新交互信息,包括:
19、删除所述交互信息中所述第一任务模型的量化算子,并删除所述交互信息中所述第二任务模型的反量化算子,得到所述更新交互信息。
20、在第一方面的可选实施例中,所述运行所述各个子任务模型以处理目标任务,得到目标任务对应的目标结果之前,还包括:
21、从多个可选任务中确定出与所述目标任务对应的至少一个第一任务;
22、从所述各个子任务模型中确定所述至少一个第一任务分别对应的目标子任务模型;
23、所述运行所述各个子任务模型以处理目标任务,得到目标任务对应的目标结果,包括:
24、运行各个所述目标子任务模型,获取运行结果,将所述运行结果作为所述目标任务对应的目标结果。
25、在第一方面的可选实施例中,所述运行各个所述目标子任务模型,获取运行结果,将所述运行结果作为所述目标任务对应的目标结果,包括:
26、将所述各个目标子任务模型的输出信息保存在预设的存储空间;
27、若检测到所述各个目标子任务模型中第一目标任务模型的输入标识为第二目标任务模型的输出标识,从所述存储空间中获取所述第二目标任务模型的输出信息,作为所述第一目标任务模型的输入信息,以运行所述各个目标子任务模型,获取运行结果;
28、将所述运行结果作为所述目标任务对应的目标结果。
29、第二方面,提供了一种模型切分装置,该装置包括:
30、切分模块,用于获取多任务模型,将所述多任务模型切分为多个子任务模型;所述每一子任务模型对应一个可选任务的输入标识和输出标识;
31、删除模块,用于若检测到所述多个子任务模型中任一第一任务模型的输入标识为第二任务模型的输出标识,删除所述第一任务模型和所述第二任务模型的交互信息中的量化算子和反量化算子,得到更新交互信息;
32、运行模块,用于通过所述各个子任务模型对应的更新交互信息,运行所述各个子任务模型以处理目标任务,得到目标任务对应的目标结果。
33、第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现本申请第一方面中任一项所述方法的步骤。
34、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本申请第一方面中任一项所示的模型切分方法。
35、本申请实施例提供的技术方案带来的有益效果是:
36、本申请提供的模型切分方法,通过将多任务模型切分成多个子任务模型,若检测到多个子任务模型中任一第一任务模型的输入标识为第二任务模型的输出标识,删除第一任务模型和第二任务模型的交互信息中的量化算子和反量化算子,得到更新交互信息,通过各个子任务模型对应的更新交互信息,运行各个子任务模型以处理目标任务,得到目标任务对应的目标结果,在子模型之间进行交互时,删除过程中大量的非必要的量化与反量化的过程,能够加快整体运行进程,提升多个任务模型运行的整体性能。
37、进一步的,切分后的子任务模型分别运行在单独的线程上,当一个子任务模型的输出标识与其他多个子任务模型的输入标识相同,则这个子任务模型在对应的线程上运行完毕之后,另外的子任务模型可以各自在不同的线程上并行运行,能够大大减少运行时间,能够快速地获取多个任务的运行结果,能够有效增加多任务模型运行时的吞吐效率。
38、另外,在运行各个子任务模型时,可以将每个子任务模型运行后获取的输出结果存储在预设的存储空间中,若是有子任务模型需要以另一个子任务模型的输出信息为输入信息的时候,可以直接从预设的存储空间中获取对应的输出信息作为输入信息以运行该子任务模型,将运行获得的输出信息存储在本地的预设存储空间,不需要借助外部内存,有效降低了外部存储的带宽占用。
1.一种模型切分方法,其特征在于,包括:
2.基于权利要求1所述的模型切分方法,其特征在于,所述将所述多任务模型切分为多个子任务模型,包括:
3.基于权利要求2所述的模型切分方法,其特征在于,所述基于所述每一可选任务的输入标识和输出标识确定切分点,包括:
4.基于权利要求2所述的模型切分方法,其特征在于,所述基于所述切分点将所述多任务模型切分之后,还包括:
5.基于权利要求1所述的模型切分方法,其特征在于,所述运行所述各个子任务模型以处理目标任务,包括:
6.基于权利要求1所述的模型切分方法,其特征在于,所述删除所述第一任务模型和所述第二任务模型的交互信息中的量化算子和反量化算子,得到更新交互信息,包括:
7.基于权利要求1所述的模型切分方法,其特征在于,所述运行所述各个子任务模型以处理目标任务,得到目标任务对应的目标结果之前,还包括:
8.基于权利要求7所述的模型切分方法,其特征在于,所述运行各个所述目标子任务模型,获取运行结果,将所述运行结果作为所述目标任务对应的目标结果,包括:
9.一种模型切分装置,其特征在于,包括:
10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的模型切分方法的步骤。