CN116384505A - 一种数据处理的方法、装置、存储介质及电子设备 - Google Patents

一种数据处理的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116384505A
CN116384505A CN202310164810.XA CN202310164810A CN116384505A CN 116384505 A CN116384505 A CN 116384505A CN 202310164810 A CN202310164810 A CN 202310164810A CN 116384505 A CN116384505 A CN 116384505A
Authority
CN
China
Prior art keywords
target
execution
target model
data
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310164810.XA
Other languages
English (en)
Inventor
金跃
吴侠宝
刘永超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202310164810.XA priority Critical patent/CN116384505A/zh
Publication of CN116384505A publication Critical patent/CN116384505A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本说明书公开了一种数据处理的方法、装置、存储介质及电子设备,首先,获取目标模型以及目标设备的设备参数。其次,根据设备参数,生成目标设备执行目标模型所需运算操作时所采用的各候选执行方案。而后,针对每个候选执行方案,通过该候选执行方案,执行运行目标模型时所需的运算操作,以确定目标设备通过执行运算操作得到目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案的执行评估参数。最后,根据各候选执行方案对应的执行评估参数,确定目标执行方案,并对目标设备执行目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过目标模型执行数据处理。本方法可以保证目标设备能够有效的通过目标模型执行数据处理。

Description

一种数据处理的方法、装置、存储介质及电子设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据处理的方法、装置、存储介质及电子设备。
背景技术
随着深度学习的兴起,深度学习已经在图像分类、自然语言处理、自动驾驶、增强现实、隐私数据保护和其他AI领域有着广泛的应用。
目前,深度学习模型通常需要依托于服务器进行数据处理,如何保证服务器能够有效地执行深度学习模型所需的运算任务,则是一个亟待解决的问题。
发明内容
本说明书提供一种数据处理的方法、装置、存储介质及电子设备,以实现服务器有效地执行深度学习模型所需的运算任务。
本说明书采用下述技术方案:
本说明书提供了一种数据处理的方法,包括:
获取目标模型以及目标设备的设备参数,所述目标设备用于执行所述目标模型所需的运算操作;
根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案;
针对每个候选执行方案,通过该候选执行方案,执行运行所述目标模型时所需的运算操作,以确定所述目标设备通过执行所述运算操作得到所述目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数;
根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过所述目标执行方案,对所述目标设备执行所述目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过所述目标模型执行数据处理。
可选地,根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案,具体包括:
确定所述目标模型的输入数据的维度数,以及确定所述目标设备中单个处理器所能处理的数据的最大维度数;
根据所述目标模型的输入数据的维度数以及所述最大维度数,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量;
根据所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案。
可选地,根据所述目标模型的输入数据的维度数以及所述最大维度数,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量,具体包括:
根据所述目标模型的输入数据以及输出数据,确定所述目标模型对应的维度比,所述维度比用于表示所述目标模型的输入数据的维度数与输出数据的维度数之间的比值;
若确定所述维度比超过所述目标设备对应的维度比阈值,则根据所述维度比以及所述最大维度数,对所述输入数据进行拆分,并确定出拆分出的数据的数量;
根据所述拆分出的数据的数量,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量。
可选地,根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案,具体包括:
确定所述目标模型的输入数据的维度数,以及确定所述目标设备中单个处理器所能处理的数据的最大维度数;
根据所述最大维度数以及所述输入数据的维度数,对所述输入数据进行拆分,并确定出拆分出的数据的维度数;
根据拆分出的数据的维度数以及所述最大维度数,确定所述目标设备中单个处理器所能并行处理拆分出的数据的数量;
根据确定出的所述目标设备中单个处理器所能并行处理拆分出的数据的数量,确定所述目标设备中单个处理器执行并行运算操作所采用的线程数;
根据所述线程数,生成各候选执行方案。
可选地,根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案,具体包括:
确定在运算过程中存在运算先后关系的各数据,作为相关数据;
对除相关数据以外的其他数据的运算顺序进行调整,确定所述目标设备执行所述目标模型所需运算操作时处理器处理各数据的各运算顺序;
根据所述各运算顺序,生成各候选执行方案。
可选地,根据各候选执行方案对应的执行评估参数,确定目标执行方案,具体包括:
获取预设的基础方案;
确定所述目标设备通过执行所述基础方案得到所述目标模型的输出结果时所监测到的执行评估参数,作为所述基础方案对应的执行评估参数;
根据所述基础方案对应的执行评估参数以及各候选执行方案对应的执行评估参数,确定目标执行方案。
可选地,所述方法还包括:
接收用户的业务请求;
根据所述业务请求,将所述业务请求对应的业务数据输入到所述目标模型中,以通过所述目标执行方案,执行所述目标模型处理所述业务数据所需的运算操作,得到业务结果。
本说明书提供了一种数据处理的装置,包括:
获取模块,用于获取目标模型以及目标设备的设备参数,所述目标设备用于执行所述目标模型所需的运算操作;
生成模块,用于根据所述设备参数,生成所述目标设备执行所述目标模型所需的运算操作时所采用的各候选执行方案;
确定模块,用于针对每个候选执行方案,通过该候选执行方案,执行运行所述目标模型时所需的运算操作,以确定所述目标设备通过执行所述运算操作得到所述目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数;
调整模块,用于根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过所述目标执行方案,对所述目标设备执行所述目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过所述目标模型执行数据处理。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据处理的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的数据处理的方法中,首先,获取目标模型以及目标设备的设备参数,目标设备用于执行目标模型所需的运算操作。其次,根据设备参数,生成目标设备执行目标模型所需运算操作时所采用的各候选执行方案。而后,针对每个候选执行方案,通过该候选执行方案,执行运行目标模型时所需的运算操作,以确定目标设备通过执行运算操作得到目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数。最后,根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过目标执行方案,对目标设备执行目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过目标模型执行数据处理。
从上述方法中可以看出,本方法可以根据设备参数,生成目标设备执行目标模型所需运算操作时所采用的各候选执行方案。其次,通过各候选执行方案,确定各候选执行方案对应的执行评估参数。最后,根据各候选执行方案对应的执行评估参数,确定目标执行方案。从而,保证目标设备能够有效的通过目标模型执行数据处理。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附
图中:
图1为本说明书实施例提供的一种数据处理的方法的流程示意图;
图2为本说明书实施例提供的一种确定目标执行方案的示意图;
图3为本说明书实施例提供的一种数据处理的装置的结构示意图;
图4为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种数据处理的方法的流程示意图,具体包括以下步骤:
S100:获取目标模型以及目标设备的设备参数,所述目标设备用于执行所述目标模型所需的运算操作。
在本说明书实施例中,数据处理的方法的执行主体可以是目标设备,目标设备可以是指服务器、台式电脑等电子设备。为了便于描述,下面仅以目标设备为执行主体,对本说明书提供的数据处理的方法进行说明。
在本说明书实施例中,目标设备可以获取目标模型以及目标设备的设备参数,这里提到的目标设备用于执行目标模型所需的运算操作。这里提到的目标模型可以是指各种用于执行业务的深度学习模型,也可以是指各种深度学习模型内部的网络结构,例如,批处理归一化(batch Normalization,BN)、层归一化(layer Normalization,LN)等。本说明书不对深度学习模型以及深度学习模型内部的网络结构进行限定。
这里提到的目标设备的设备参数可以是指CPU核的参数、CPU核数、GPU核的参数、GPU核数、寄存器的参数、寄存器的数量等硬件参数。
当然,这里提到的目标设备的设备参数还可以是指目标设备内的各硬件的分布情况,各硬件的功耗情况等。
具体的,目标设备内可以预先设置目标设备的设备参数配置表,设备参数配置表可以记录不同型号的目标设备对应的设备参数。目标设备可以通过目标设备的型号,从预先配置的设备参数配置表中确定目标设备对应的设备参数。
当然,目标设备对应的厂商可以提供查询目标设备对应的设备参数的查询接口,因而,目标设备可以调用预先配置的设备参数配置表的查询接口,得到目标设备对应的设备参数。例如,目标设备对应的厂商可以提供查询目标设备对应的设备参数的API接口,从而可以通过目标设备对应的厂商提供的API接口,得到目标设备对应的设备参数。
S102:根据所述设备参数,生成所述目标设备执行所述目标模型所需的运算操作时所采用的各候选执行方案。
在实际应用中,目标模型通常需要依托于目标设备进行数据处理。而为了提高训练目标模型或应用目标模型的效率,通常需要对目标设备在数据处理时所应用的执行方案进行调整,以提高目标设备在执行目标模型所需运算操作时的运算效率。但是,上述执行方案通常需要专家基于目标模型的算法,花费大量的时间手工编写,效率较低。
由于,专家手工编写的执行方案无法对不同的目标设备上的运算过程进行调整,也无法对不同的目标模型所需的运算进行调整,导致确定执行方案的效率较低。
基于此,目标设备可以通过生成各候选执行方案,以确定执行各候选执行方案后的执行评估参数,从而确定出目标执行方案。
在本说明书实施例中,目标设备可以根据设备参数,生成目标设备执行目标模型所需的运算操作时所采用的各候选执行方案。由于,目标模型的实际表现形式为代码,部署在目标设备中,这里提到的候选执行方案可以是指目标设备以不同的方式执行目标模型,也就是说,通过目标设备以不同的方式运行代码。
其中,候选执行方案中包含有多种影响目标模型的输出结果时所监测到的执行评估参数的影响因素。例如,目标设备执行目标模型所需运算操作时所采用的处理器的数量、目标设备执行目标模型所需运算操作时单个处理器所能并行处理的数据的数量、目标设备执行目标模型所需运算操作时的各数据的运算顺序等。目标设备可以根据上述影响因素中的至少一种,生成目标设备执行目标模型所需的运算操作时所采用的各候选执行方案。
在实际应用中,在对目标模型进行数据处理时,通常仅启动一个处理器执行目标模型进行数据处理时所需的运算操作,但是,这种方法所需的运算时间较长,会导致目标模型的训练时长也较长。基于此,目标设备可以将输入数据拆分为多个维度数相同的数据,并通过多个处理器对多个维度数相同的数据进行运算,得到多个中间运算结果,再根据多个中间运算结果,确定输出数据,以通过同时启动多个处理器的方法,提高目标模型的处理数据的效率。
在本说明书实施例中,目标设备可以确定目标模型的输入数据的维度数,以及确定目标设备中单个处理器所能处理的数据的最大维度数。
其次,目标设备可以根据目标模型的输入数据的维度数以及最大维度数,确定目标设备执行目标模型所需运算操作时所需的处理器的数量。
例如,目标模型的输入数据的维度数为一千维,单个处理器所能处理的数据的最大维度数为一百维,则确定目标设备执行目标模型所需运算操作时所需的处理器的数量至少需要十个。当然,目标设备执行目标模型所需运算操作时所需的处理器的数量可以根据上述影响因素中的至少一种进行确定。
最后,目标设备可以根据目标设备执行目标模型所需运算操作时所需的处理器的数量,生成目标设备执行目标模型所需运算操作时所采用的各候选执行方案。
进一步的,目标设备可以根据目标模型的输入数据以及输出数据,确定目标模型对应的维度比,维度比用于表示目标模型的输入数据的维度数与输出数据的维度数之间的比值。
若确定维度比超过目标设备对应的维度比阈值,则根据维度比以及最大维度数,对输入数据进行拆分,并确定出拆分出的数据的数量。
然后,目标设备可以根据拆分出的数据的数量,确定目标设备执行目标模型所需运算操作时所需的处理器的数量。
具体的,目标设备可以确定各种中间运算结果,每个候选执行方案中的中间运算结果的维度数可以不同,一个候选执行方案中对应有一种中间运算结果的维度数。
其次,针对每种中间运算结果,目标设备可以根据目标模型的输入数据的维度与该种中间运算结果的维度数之间的比值,确定该种中间运算结果对应的维度比。
然后,若中间运算结果的维度比小于目标设备对应的维度比阈值,目标设备可以根据该种中间运算结果的维度数,对输入数据进行拆分,并确定出拆分出的数据的数量。
最后,目标设备可以根据拆分出的数据的数量,确定目标设备执行目标模型所需运算操作时所需的处理器的数量。
例如,输入数据为一千维的数据,输出数据为一维的数据,若确定中间运算结果的维度数为十维,目标设备内的处理器单次可以处理的最大维度数为一百,且该种中间运算结果对应的维度比不大于目标设备对应的维度比阈值,则目标设备根据中间运算结果对应的维度数(十)以及输入数据的维度数(一千),确定启用的处理器的数量(一至十)。也就是说,通过启用的处理器的数量,根据一千维的输入维度,确定十维的中间运算结果,再根据十维的中间运算结果,确定一维的输出维度。
其中,这里得到的中间运算结果可以存储在全局内存中,所有处理器均可以从全局内存中获取数据。中间运算结果也可以存储在共享内存中。例如,目标设备有16个处理器,可以组成4个计算群,每个计算群内部的共享内存可以共用数据。
在实际应用中,不同的中间运算结果对应有不同的拆分出的数据的维度数,对不同的拆分出的数据进行处理所需的运算量并不相同。因此,目标设备需要根据拆分出的数据的维度数,确定目标设备中单个处理器执行并行运算操作所采用的线程数。
在本说明书实施例中,目标设备可以确定目标模型的输入数据的维度数,以及确定目标设备中单个处理器所能处理的数据的最大维度数。
其次,目标设备可以根据最大维度数以及输入数据的维度数,对输入数据进行拆分,并确定出拆分出的数据的维度数。
而后,目标设备可以根据拆分出的数据的维度数以及最大维度数,确定目标设备中单个处理器所能并行处理拆分出的数据的数量。
然后,目标设备可以根据确定出的目标设备中单个处理器所能并行处理拆分出的数据的数量,确定目标设备中单个处理器执行并行运算操作所采用的线程数。
最后,目标设备可以根据线程数,生成各候选执行方案。
例如,输入数据为一千维的数据,输出数据为一维的数据,若确定中间运算结果的维度数为一百维,目标设备内的处理器单次可以处理的最大维度数为一百,则确定目标设备中单个处理器所能并行处理拆分出的数据的数量为十个。从而,确定目标设备中单个处理器执行并行运算操作所采用的线程数为十个。当然,不同的拆分出的数据的维度数,确定出的单个处理器执行并行运算操作所采用的线程数不同。
进一步的,处理器执行并行运算操作所采用的线程得到的中间运算结果需要存储在寄存器中,但是寄存器的内存容量有限,若存储的中间运算结果较多,存储的数据超出寄存器的内容容量,会导致处理器执行目标模型所需运算操作时的运算时间增长。基于此,目标设备无法直接根据设备参数,确定处理器执行并行运算操作所采用的线程数,需要确定目标设备执行目标模型所需运算操作时采用的各候选执行方案中处理器执行并行运算操作所采用的线程数,以在后续执行中,根据各候选执行方案对应的运算时间,选取目标执行方案。
在实际应用中,目标设备执行目标模型的过程中,各数据会存在运算先后关系,例如,需要先运算数据A,再基于数据A的运算结果,对数据B进行运算。但是,若有两个不具有运算先后关系的数据,目标设备对这两个数据的运算顺序进行调整,可能会减少目标设备执行目标模型所需运算操作时的运算时长。
在本说明书实施例中,目标设备可以确定在运算过程中存在运算先后关系的各数据,作为相关数据。
其次,目标设备可以对除相关数据以外的其他数据的运算顺序进行调整,确定目标设备执行目标模型所需运算操作时处理器处理各数据的各运算顺序。
最后,目标设备可以根据各运算顺序,生成各候选执行方案。
在实际应用中,目标设备执行目标模型的过程中,各数据会存在运算先后关系。但是,部分目标模型可能将这两部分分开进行计算,这样会导致重复访问,若将存在运算先后关系的各数据放入同一个处理器进行运算,可以减少内存访问的次数,降低运算时长。
在本说明书实施例中,目标设备可以确定在运算过程中存在运算先后关系的各数据,作为相关数据。
其次,目标设备可以将相关数据放入同一个处理器进行运算。
具体的,目标设备可以将相关数据放入同一个处理器中,确定首个相关数据的运算结果,并将首个相关数据的运算结果存储到处理器的寄存器中,以用于下一个相关数据的运算,确定下一个相关数据的运算结果,直到计算出输出结果。
例如,本说明书以层归一化为例,对上述方法进行详细说明。
层归一化的前向传播公式如下所示。
Figure BDA0004102020690000071
在上述公式中,E[x]可以用于表示平均数。Var[x]可以用于表示方差,方差是指每个样本值与全体样本值的平均数之差的平方值的平均数。也就是说,Var[x]与E[x]之间有运算先后关系,需要先运算E[x]对应的代码,再运算Var[x]对应的代码。目标设备可以将Var[x]对应的代码与E[x]对应的代码放入同一个处理器进行运算,从而减少内存访问的次数,降低运算时长。
层归一化的后向传播公式如下所示。
Figure BDA0004102020690000081
Figure BDA0004102020690000082
Figure BDA0004102020690000083
在上述公式中,xi可以用于表示第i个输入的数据。μ可以用于表示平均数。δ2可以用于表示方差,方差是指每个样本值与全体样本值的平均数之差的平方值的平均数。x可以用于表示输入的梯度。也就是说,μ、δ2以及x之间有运算先后关系,需要先运算μ对应的代码,再运算δ2对应的代码,最后运算x对应的代码。目标设备可以将μ对应的代码、δ2对应的代码以及x对应的代码放入同一个处理器进行运算,从而减少内存访问的次数,降低运算时长。
在实际应用中,目标设备执行目标模型的过程中,各数据会存在运算先后关系。但是,若有两个不具有运算先后关系的数据,目标设备对这两个数据的进行并行运算,会减少目标设备执行目标模型所需运算操作时的运算时长。
在本说明书实施例中,目标设备可以确定在运算过程中存在运算先后关系的各数据,作为相关数据。
其次,目标设备可以对在运算过程中不存在运算先后关系的各数据进行并行运算。
需要说明的是,目标设备可以选取上述候选执行方案中的一种或多种,得到目标执行方案。例如,目标执行方案中可以同时包括:目标设备执行目标模型所需运算操作时所采用的处理器的数量、目标设备执行目标模型所需运算操作时单个处理器并行运算数据的数量、目标设备执行目标模型所需运算操作时处理器处理各数据的运算顺序等中的至少一种。
并且,不同的候选执行方案可以不完全相同。例如,候选执行方案A与候选执行方案B中的目标设备执行目标模型所需运算操作时所采用的处理器的数量相同、目标设备执行目标模型所需运算操作时单个处理器并行运算数据的数量相同,目标设备执行目标模型所需运算操作时处理器处理各数据的运算顺序不同。
S104:针对每个候选执行方案,通过该候选执行方案,执行运行所述目标模型时所需的运算操作,以确定所述目标设备通过执行所述运算操作得到所述目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数。
在本说明书实施例中,目标设备可以针对每个候选执行方案,通过该候选执行方案,执行运行目标模型时所需的运算操作,以确定目标设备通过执行运算操作得到目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数。这里提到的执行评估参数可以是指运算时长、运算资源消耗量等参数。
这里提到的输出结果可以是指目标设备将测试数据输入到目标模型中,通过各候选执行方案,在确定各候选执行方案对应的执行评估参数的过程中,得到的测试数据对应的输出结果。
S106:根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过所述目标执行方案,对所述目标设备执行所述目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过所述目标模型执行数据处理。
在本说明书实施例中,目标设备可以根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过目标执行方案,对目标设备执行目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过目标模型执行数据处理。
具体的,目标设备可以根据各候选执行方案的运算时长、运算资源消耗量等执行评估参数,确定目标执行方案。
当然,目标设备可以根据候选执行方案的运算时长、运算资源消耗量等执行评估参数,确定综合得分。根据各候选执行方案的综合得分,确定目标执行方案。这里提到的综合得分可以是指根据执行评估参数确定出的得分。例如,运算时长越短,得分越高。再例如,运算资源消耗量越少、得分越高。可以根据实际需求,确定综合得分对应的公式。本说明书不对综合得分对应的公式进行限定。
在实际应用中,为了保证用户可以在短时间内得到执行方案。目标设备可以预先设置一个基础执行方案,避免在短时间内无法确定出可以对目标设备执行目标模型的目标执行方案。
在本说明书实施例中,目标设备可以获取预设的基础方案。这里提到的基础方案可以是通过专家经验得到的。
而后,目标设备可以确定目标设备通过执行基础方案得到目标模型的输出结果时所监测到的执行评估参数,作为基础方案对应的执行评估参数。
最后,目标设备可以根据基础方案对应的执行评估参数以及各候选执行方案对应的执行评估参数,确定目标执行方案。
具体的,在设定时间内,目标设备可以通过各候选执行方案以及基础方案,执行目标模型所需的运算操作,确定各候选执行方案对应的执行评估参数以及基础方案对应的执行评估参数。目标设备可以从中选取出运算时长最短或综合得分最高的执行方案,作为目标执行方案。
在实际应用中,由于每个执行方案均是基于经验规则确定单个设备参数,没有考虑不同设备参数之间的影响,无法判断确定出的设备参数是否最优。因此,确定出的设备参数可能不是最优的参数值。基于此,目标设备可以基于运算过程和设备参数确定设备参数的初始值,然后以该初始值作为基准,不断调整设备参数的数值的大小,直至确定出的执行评估参数的综合得分最高,以得到目标执行方案。
在本说明书实施例中,目标设备可以以最小化目标设备通过执行运算操作得到目标模型的输出结果时所监测到的执行评估参数为调整目标,确定候选执行方案。
需要说明的是,本说明书中确定候选执行方案的方法可以是指随机搜索算法。
当然,目标设备可以单独调整每个设备参数的数值,直至确定出的执行评估参数的综合得分最高,以得到目标执行方案。
在本说明书实施例中,目标设备在通过目标执行方案,对目标设备执行目标模型所需的运算操作进行调整之后,目标设备可以接收用户的业务请求,根据业务请求,将业务请求对应的业务数据输入到目标模型中,以通过目标执行方案,执行目标模型处理业务数据所需的运算操作,得到业务结果。
在本说明书实施例中,目标设备确定目标执行方案的具体流程如图2所示。
图2为本说明书实施例提供的一种确定目标执行方案的示意图。
在图2中,目标设备可以根据设备参数,生成目标设备执行目标模型所需运算操作时所采用的各候选执行方案。然后,目标设备可以确定各候选执行方案对应的执行评估参数。根据各候选执行方案对应的执行评估参数,确定目标执行方案。
从上述方法中可以看出,本方法可以根据设备参数,生成目标设备执行目标模型所需运算操作时所采用的各候选执行方案。其次,通过各候选执行方案,确定各候选执行方案对应的执行评估参数。最后,根据各候选执行方案对应的执行评估参数,确定目标执行方案。从而,保证目标设备能够有效的通过目标模型执行数据处理。
以上为本说明书实施例提供的一种数据处理的方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。
图3为本说明书实施例提供的一种数据处理的装置的结构示意图,所述装置包括:
获取模块300,用于获取目标模型以及目标设备的设备参数,所述目标设备用于执行所述目标模型;
生成模块302,用于根据所述设备参数,生成所述目标设备执行所述目标模型时所采用的各候选执行方案;
确定模块304,用于针对每个候选执行方案,通过该候选执行方案,执行运行所述目标模型时所需的运算操作,以确定所述目标设备通过执行所述运算操作得到所述目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数;
调整模块306,用于根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过所述目标执行方案,对所述目标设备执行所述目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过所述目标模型执行数据处理。
可选地,所述生成模块302具体用于,确定所述目标模型的输入数据的维度数,以及确定所述目标设备中单个处理器所能处理的数据的最大维度数,根据所述目标模型的输入数据的维度数以及所述最大维度数,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量,根据所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案。
可选地,所述生成模块302具体用于,根据所述目标模型的输入数据以及输出数据,确定所述目标模型对应的维度比,所述维度比用于表示所述目标模型的输入数据的维度数与输出数据的维度数之间的比值,若确定所述维度比超过所述目标设备对应的维度比阈值,则根据所述维度比以及所述最大维度数,对所述输入数据进行拆分,并确定出拆分出的数据的数量,根据所述拆分出的数据的数量,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量。
可选地,所述生成模块302具体用于,确定所述目标模型的输入数据的维度数,以及确定所述目标设备中单个处理器所能处理的数据的最大维度数,根据所述最大维度数以及所述输入数据的维度数,对所述输入数据进行拆分,并确定出拆分出的数据的维度数,根据拆分出的数据的维度数以及所述最大维度数,确定所述目标设备中单个处理器所能并行处理拆分出的数据的数量,根据确定出的所述目标设备中单个处理器所能并行处理拆分出的数据的数量,确定所述目标设备中单个处理器执行并行运算操作所采用的线程数,根据所述线程数,生成各候选执行方案。
可选地,所述生成模块302具体用于,确定在运算过程中存在运算先后关系的各数据,作为相关数据,对除相关数据以外的其他数据的运算顺序进行调整,确定所述目标设备执行所述目标模型所需运算操作时处理器处理各数据的各运算顺序,根据所述各运算顺序,生成各候选执行方案。
可选地,所述调整模块306具体用于,获取预设的基础方案,确定所述目标设备通过执行所述基础方案得到所述目标模型的输出结果时所监测到的执行评估参数,作为所述基础方案对应的执行评估参数,根据所述基础方案对应的执行评估参数以及各候选执行方案对应的执行评估参数,确定目标执行方案。
可选地,所述调整模块306具体还用于,接收用户的业务请求,根据所述业务请求,将所述业务请求对应的业务数据输入到所述目标模型中,以通过所述目标执行方案,执行所述目标模型处理所述业务数据所需的运算操作,得到业务结果。
本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述图1提供的数据处理的方法。
本说明书实施例还提供了图4所示的电子设备的结构示意图。如图4,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1提供的数据处理的方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
需要说明的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、***、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种数据处理的方法,包括:
获取目标模型以及目标设备的设备参数,所述目标设备用于执行所述目标模型所需的运算操作;
根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案;
针对每个候选执行方案,通过该候选执行方案,执行运行所述目标模型时所需的运算操作,以确定所述目标设备通过执行所述运算操作得到所述目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数;
根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过所述目标执行方案,对所述目标设备执行所述目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过所述目标模型执行数据处理。
2.如权利要求1所述的方法,根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案,具体包括:
确定所述目标模型的输入数据的维度数,以及确定所述目标设备中单个处理器所能处理的数据的最大维度数;
根据所述目标模型的输入数据的维度数以及所述最大维度数,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量;
根据所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案。
3.如权利要求2所述的方法,根据所述目标模型的输入数据的维度数以及所述最大维度数,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量,具体包括:
根据所述目标模型的输入数据以及输出数据,确定所述目标模型对应的维度比,所述维度比用于表示所述目标模型的输入数据的维度数与输出数据的维度数之间的比值;
若确定所述维度比超过所述目标设备对应的维度比阈值,则根据所述维度比以及所述最大维度数,对所述输入数据进行拆分,并确定出拆分出的数据的数量;
根据所述拆分出的数据的数量,确定所述目标设备执行所述目标模型所需运算操作时所需的处理器的数量。
4.如权利要求1所述的方法,根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案,具体包括:
确定所述目标模型的输入数据的维度数,以及确定所述目标设备中单个处理器所能处理的数据的最大维度数;
根据所述最大维度数以及所述输入数据的维度数,对所述输入数据进行拆分,并确定出拆分出的数据的维度数;
根据拆分出的数据的维度数以及所述最大维度数,确定所述目标设备中单个处理器所能并行处理拆分出的数据的数量;
根据确定出的所述目标设备中单个处理器所能并行处理拆分出的数据的数量,确定所述目标设备中单个处理器执行并行运算操作所采用的线程数;
根据所述线程数,生成各候选执行方案。
5.如权利要求1所述的方法,根据所述设备参数,生成所述目标设备执行所述目标模型所需运算操作时所采用的各候选执行方案,具体包括:
确定在运算过程中存在运算先后关系的各数据,作为相关数据;
对除相关数据以外的其他数据的运算顺序进行调整,确定所述目标设备执行所述目标模型所需运算操作时处理器处理各数据的各运算顺序;
根据所述各运算顺序,生成各候选执行方案。
6.如权利要求1所述的方法,根据各候选执行方案对应的执行评估参数,确定目标执行方案,具体包括:
获取预设的基础方案;
确定所述目标设备通过执行所述基础方案得到所述目标模型的输出结果时所监测到的执行评估参数,作为所述基础方案对应的执行评估参数;
根据所述基础方案对应的执行评估参数以及各候选执行方案对应的执行评估参数,确定目标执行方案。
7.如权利要求1所述的方法,所述方法还包括:
接收用户的业务请求;
根据所述业务请求,将所述业务请求对应的业务数据输入到所述目标模型中,以通过所述目标执行方案,执行所述目标模型处理所述业务数据所需的运算操作,得到业务结果。
8.一种数据处理的装置,包括:
获取模块,用于获取目标模型以及目标设备的设备参数,所述目标设备用于执行所述目标模型所需的运算操作;
生成模块,用于根据所述设备参数,生成所述目标设备执行所述目标模型所需的运算操作时所采用的各候选执行方案;
确定模块,用于针对每个候选执行方案,通过该候选执行方案,执行运行所述目标模型时所需的运算操作,以确定所述目标设备通过执行所述运算操作得到所述目标模型的输出结果时所监测到的执行评估参数,作为该候选执行方案对应的执行评估参数;
调整模块,用于根据各候选执行方案对应的执行评估参数,确定目标执行方案,并通过所述目标执行方案,对所述目标设备执行所述目标模型所需的运算操作进行调整,以根据调整后的运算操作,通过所述目标模型执行数据处理。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-7任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1-7任一项所述的方法。
CN202310164810.XA 2023-02-13 2023-02-13 一种数据处理的方法、装置、存储介质及电子设备 Pending CN116384505A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310164810.XA CN116384505A (zh) 2023-02-13 2023-02-13 一种数据处理的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310164810.XA CN116384505A (zh) 2023-02-13 2023-02-13 一种数据处理的方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116384505A true CN116384505A (zh) 2023-07-04

Family

ID=86962362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310164810.XA Pending CN116384505A (zh) 2023-02-13 2023-02-13 一种数据处理的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116384505A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116842060A (zh) * 2023-08-30 2023-10-03 之江实验室 一种基于代理模型重排技术的推理查询优化方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116842060A (zh) * 2023-08-30 2023-10-03 之江实验室 一种基于代理模型重排技术的推理查询优化方法及装置
CN116842060B (zh) * 2023-08-30 2024-01-09 之江实验室 一种基于代理模型重排技术的推理查询优化方法及装置

Similar Documents

Publication Publication Date Title
CN115981870B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116521380A (zh) 一种资源自适应协同的模型训练加速方法、装置及设备
CN116225669B (zh) 一种任务执行方法、装置、存储介质及电子设备
CN116167463A (zh) 一种模型训练的方法、装置、存储介质及电子设备
CN117312394B (zh) 一种数据访问方法、装置、存储介质及电子设备
CN116432778A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116384505A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116151363A (zh) 分布式强化学习***
CN109656946B (zh) 一种多表关联查询方法、装置及设备
CN116932175B (zh) 一种基于序列生成的异构芯片任务调度方法以及装置
CN116402165B (zh) 一种算子检测的方法、装置、存储介质以及电子设备
CN116150563B (zh) 一种业务执行方法、装置、存储介质及电子设备
CN116304212A (zh) 一种数据处理***、方法、设备及存储介质
CN116108498A (zh) 一种程序执行的方法、装置、存储介质及电子设备
CN114676132A (zh) 一种数据表关联方法、装置、存储介质及电子设备
CN109614388B (zh) 一种预算扣减方法和装置
CN116109008B (zh) 一种业务执行的方法、装置、存储介质及电子设备
CN117171577B (zh) 一种高性能算子选择的动态决策方法及装置
CN116107636B (zh) 一种硬件加速方法、装置、存储介质及电子设备
CN117522669B (zh) 一种图形处理器内存优化方法、装置、介质及设备
CN117455015B (zh) 一种模型优化的方法、装置、存储介质及电子设备
CN117118523B (zh) 一种信息传输***、方法、装置、存储介质及电子设备
CN115795342B (zh) 一种业务场景分类的方法、装置、存储介质及电子设备
CN110851416B (zh) 数据存储性能分析方法和装置、宿主机确定方法和装置
CN116204324A (zh) 一种任务执行的方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination