CN111966361B - 用于确定待部署模型的方法、装置、设备及其存储介质 - Google Patents
用于确定待部署模型的方法、装置、设备及其存储介质 Download PDFInfo
- Publication number
- CN111966361B CN111966361B CN202011021003.5A CN202011021003A CN111966361B CN 111966361 B CN111966361 B CN 111966361B CN 202011021003 A CN202011021003 A CN 202011021003A CN 111966361 B CN111966361 B CN 111966361B
- Authority
- CN
- China
- Prior art keywords
- deployed
- kernel function
- model
- parameter information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 230000006870 function Effects 0.000 claims abstract description 326
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 79
- 230000015654 memory Effects 0.000 claims description 20
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000013135 deep learning Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 2
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施例公开了用于确定待部署模型的方法、装置、设备及其存储介质,涉及人工智能领域,尤其是深度学习技术领域。具体实现方案为:响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型的模型结构信息和模型变量数值;模型部署请求包括至少一个待部署参数信息;确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
Description
技术领域
本公开涉及计算机技术领域,具体涉及人工智能技术领域,尤其是深度学习技术,尤其涉及用于确定待部署模型的方法、装置、设备及其存储介质。
背景技术
近些年,深度学习取得突破性发展。我们可以使用训练框架得到训练好的模型,然后再使用预测框架将该训练好的模型部署到许多硬件设备。可见,训练框架和预测框架是深度学习的基石。
目前,采用预测框架对算子的核函数(Kernel)采用静态绑定的策略,即在编译阶段确定核函数,或者在核函数内部确定算子的计算逻辑,以实现模型部署。
发明内容
提供了一种用于确定待部署模型的方法、装置、设备及其存储介质。
根据第一方面,提供了一种用于确定待部署模型的方法,该用于确定待部署模型的方法可以包括:响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型,并读取目标模型的模型结构信息和模型变量数值;其中,模型结构信息包括多个算子,模型部署请求包括至少一个待部署参数信息;确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
根据第二方面,提供了一种用于确定属性信息的方法,该用于确定属性信息的方法可以包括:获取场景信息;将场景信息,输入上述的待部署模型,得到与场景信息相对应的属性信息。
根据第三方面,提供了一种用于确定待部署模型的装置,该用于确定待部署模型的装置可以包括:模型加载模块,被配置为响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型;数据读取模块,被配置为,并读取目标模型的模型结构信息和模型变量数值;其中,模型结构信息包括多个算子,模型部署请求包括至少一个待部署参数信息;第一确定模块,被配置为确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;第二确定模块,被配置为根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;第三确定模块,被配置为基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
根据第四方面,提供了一种用于确定属性信息的装置,该用于确定属性信息的装置可以包括:信息获取模块,被配置为获取场景信息;信息得到模块,被配置为将场景信息,输入上述的待部署模型,得到与场景信息相对应的属性信息。
根据第五方面,提供了一种电子设备,该电子设备可以包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够第一方面或第二方面所述的方法。
根据第六方面,提供了存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面或第二方面所述的方法。
根据第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面或第二方面所述的方法。
本公开上述实施例的用于确定待部署模型的方法、装置、设备及其存储介质,首先响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型,并读取目标模型的模型结构信息和模型变量数值;其中,模型结构信息包括多个算子,模型部署请求包括至少一个待部署参数信息;之后,确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;之后,根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;之后,基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。这一过程中,与背景技术中预测框架对算子的核函数采用静态绑定的策略,即在编译阶段确定核函数,或者在核函数内部确定算子的计算逻辑的处理导致算子的操作和算子的核函数两者之间紧密耦合,使得预测框架不能灵活地调用操作和核函数,进而不能将训练好的模型部署到不同的硬件设备中相比;本申请中由于确定了每个算子所对应的操作,以及基于至少一个待部署参数信息,确定了每个算子所对应的多个核函数,然后基于多个核函数中的每个核函数在其的待部署参数信息中的优先级来确定与每个算子所对应的操作绑定的核函数,进而将操作和核函数两者分层解耦,使得预测框架在预测阶段可以实现对核函数和操作的动态绑定和混合调度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开可以应用于其中的示例性系统架构;
图2是根据本公开的用于确定待部署模型的方法的一个实施例的流程图;
图3是根据本公开的用于确定待部署模型的方法的另一个实施例的流程图;
图4是根据本公开的用于确定待部署模型的方法的应用场景的一个示意图;
图5是根据本公开的用于确定属性信息的方法的一个实施例的流程图;
图6是根据本公开的用于确定待部署模型的装置的一个实施例的示意图;
图7是根据本公开的用于确定属性信息的装置的一个实施例的示意图;
图8是用来实现本公开实施例的用于确定待部署模型的方法或用于确定属性信息的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本公开的用于确定待部署模型的方法或装置或用于确定属性信息的方法或装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如各种客户端应用、多方交互应用、人工智能应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是支持文档处理应用的各种电子设备,包括但不限于智能终端、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103提供支持的后台服务器。后台服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
在实践中,本公开实施例所提供的用于确定待部署模型的方法或用于确定属性信息的方法可以由终端设备101、102、103或服务器105执行,用于确定待部署模型的装置或用于确定属性信息的装置也可以设置于终端设备101、102、103或服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
现有技术的技术方案,预测框架对算子的核函数(Kernel)采用静态绑定的策略,即在编译阶段确定核函数,或者在核函数内部确定算子的计算逻辑,上述操作使得算子直接对应核函数,这就会导致算子的操作(operation,OP)和算子的核函数两者之间紧密耦合,使得预测框架不能灵活地调用操作和核函数,进而不能将训练好的模型部署到不同的硬件设备中。
请参考图2,图2示出了根据本公开的用于确定待部署模型的方法的一个实施例的流程200。该用于确定待部署模型的方法包括以下步骤:
步骤201:响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型,并读取目标模型的模型结构信息和模型变量数值。
本实施例中,用于部署模型的方法的执行主体(例如图1所示的服务器或终端设备)可以响应于接收到的模型部署请求,加载与模型部署请求所对应的已完成训练的目标模型,并在加载目标模型的过程中,读取该目标模型的模型结构信息和模型变量数值。上述模型部署请求可以由用户在目标待部署设备(除上述执行主体之外的服务器或终端设备)上提交的部署模型的请求或用户在上述执行主体上提交的部署模型的请求,上述执行主体在接收到模型部署请求之后,可以从本地或远程存储的多个模型中获取与该模型部署请求所对应的目标模型。上述目标待部署设备可以为被执行模型部署的硬件设备,目标待部署设备的数量可以为一个或多个。
上述目标模型可以包括变量和多个算子。该变量可以为多维矩阵,用于保存模型状态信息。该算子可以接受输入变量,进行特定计算得到输出变量。其中,大量不同的算子可以组成复杂的模型结构,以实现特定的功能。上述模型结构信息可以包括多个算子中每个算子的类型、输入和输出等结构信息。上述模型变量数值可以包括变量的数值。
在这里,模型部署请求包括:至少一个待部署参数信息,该待部署参数信息用于设置模型结构信息中每个算子的核函数的参数。上述待部署参数信息可以为与目标待部署设备的硬件、计算精度和存储方式等相关的信息。
在加载目标模型之前,该用于确定待部署模型的方法还包括:根据模型部署请求中的目标模型的编号,从多个模型中确定目标模型;可选的,可以预先设置存储在上述执行主体本地或远程的多个模型中的每个模型的编号。或者,由上述执行主体可以将待部署参数信息与多个模型进行匹配,并根据匹配度从多个模型中选取匹配的目标模型。
加载与模型部署请求所对应的目标模型的方法,可以为现有技术或未来发展的技术中加载与模型部署请求所对应的目标模型的方法,本公开对此不做限定。例如,加载与模型部署请求所对应的目标模型的方法可以采用具有加载功能的控件或通过具有加载功能的程序指令来实现。
读取所述目标模型的模型结构信息和模型变量数值的方法,可以为现有技术或未来发展的技术中读取所述目标模型的模型结构信息和模型变量数值的方法,本公开对此不做限定。例如,读取所述目标模型的模型结构信息和模型变量数值的方法可以采用具有读取功能的控件或通过具有读取功能的程序指令来实现。
步骤202:确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数。
本实施例中,上述执行主体可以确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数。上述预测框架可以基于目标模型和输入变量,调用算子对输入变量进行计算,得到目标模型的输出。
在这里,每个算子的操作可以用于表征该算子的逻辑、输入和输出。在深度学习中,核函数是算子的实际计算,包括前向计算和反向传播两步。前向计算是对输入张量执行一个特定操作得到输出张量,反向计算是根据求导规则和输出张量的梯度,计算输入张量的梯度。
多个算子中每个算子所对应的操作的方法,可以为现有技术或未来发展的技术中确定多个算子中每个算子所对应的操作的方法,本公开对此不做限定。例如,确定多个算子中每个算子所对应的操作的方法可以采用创建工具或通过具有创建功能的指令来实现。
基于至少一个待部署参数信息,确定每个算子所对应的多个核函数的方法,可以为现有技术或未来发展的技术中基于至少一个待部署参数信息,确定每个算子所对应的多个核函数的方法,本公开对此不做限定。例如,基于至少一个待部署参数信息,确定每个算子所对应的多个核函数的方法可以采用创建工具或通过具有创建功能的指令。
步骤203:根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数。
本实施例中,上述执行主体可以根据每个算子所对应的多个核函数中的每个核函数,在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数。上述优先级可以为每个算子所对应的多个核函数中的每个核函数,在每个算子所对应的待部署参数信息中的优先级。
上述根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级可以包括:根据每个算子所对应的多个核函数中的每个核函数,对至少一个待部署参数信息中的每个待部署参数信息的优先级。
上述确定与每个算子所对应的操作绑定的核函数,可以包括:根据该算子所对应的多个核函数中的每个核函数,对至少一个待部署参数信息中的每个待部署参数信息的优先级,确定该算子所对应的操作绑定的核函数。其中,该算子可以为多个算子中的任意一个算子。
步骤204:基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
本实施例中,上述执行主体可以基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
上述确定待部署模型的方法,可以为现有技术或未来发展的技术中确定待部署模型的方法,本公开对此不做限定。例如,确定待部署模型的方法可以采用构成模型的工具或通过具有构建模型功能的指令来实现。
本公开的上述实施例提供的用于确定待部署模型的方法,先确定每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数,然后基于多个核函数中的每个核函数在其的待部署参数信息中的优先级来确定与每个算子所对应的操作绑定的核函数,进而将操作和核函数两者分层解耦,使得预测框架在预测阶段可以实现对核函数和操作的动态绑定和混合调度。
在本公开的一些可选实现方式中,在将算子所对应的操作与该算子所对应的核函数绑定之后,该用于确定待部署模型的方法还包括:遍历与每个算子所对应的操作绑定的核函数,并在访问当前核函数时,执行以下至少一项:判断该绑定的核函数包括的第一硬件信息与模型变量数值中的第二硬件信息是否匹配,如果不匹配则转换该绑定的核函数包括的第一硬件信息,直至转换后的第一硬件信息与第二硬件信息相匹配;判断该绑定的核函数包括的第一计算精度与模型变量数值中的第二计算精度是否匹配,如果不匹配则转换该绑定的核函数包括的第一计算精度,直至转换后第一计算精度与第二计算精度相匹配;判断该绑定的核函数包括的第一存储方式与模型变量数值中的第二存储方式是否匹配,如果不匹配则转换该绑定的核函数包括的第一存储方式,直至转换后的第一存储方式与第二存储方式相匹配。
在本实现方式中,上述执行主体可以遍历与每个算子所对应的操作绑定的核函数,并将与每个算子所对应的操作绑定的核函数与模型变量数值进行匹配,在与每个算子所对应的操作绑定的核函数中的第一硬件信息与模型变量数值中的第二硬件信息不匹配;和/或,在与每个算子所对应的操作绑定的核函数中的第一计算精度与模型变量数值中的第二硬件信息不匹配;和/或,在与每个算子所对应的操作绑定的核函数中的第一存储方式与模型变量数值中的第二存储方式不匹配时,针对不匹配的项进行调整;例如,第一硬件信息与第二硬件信息不匹配时,可以在模型变量数值中增加第一硬件信息的转换类型,以使第一硬件信息可以从更新后的模型变量数值中匹配到对应的硬件信息;或者,在第一硬件信息与第二硬件信息的转换类型对应时,则可以将第一硬件信息进行转换,以使转换的第一硬件信息与第二硬件信息匹配。
上述硬件信息可以为目标待部署设备的硬件信息,例如目标待部署设备的设备编号和目标待部署设备的中央处理器(Central Processing Unit/Processor,CPU)的型号。上述计算精度可以为目标待部署设备中计算时所要求的精度;上述存储方式可以为目标待部署设备中存储数据的方式。
在本实现方式中,在将核函数与算子的操作动态绑定之后,上述执行主体还可以在第一硬件信息与第二硬件信息不匹配时,在模型变量数值中增加第一硬件信息的转换类型,以使第一硬件信息可以从更新的模型变量数值中匹配到对应的硬件信息,进而可以在不同硬件信息对应的目标待部署设备上实现对核函数和操作的混合调度;和/或,上述执行主体还可以在第一计算精度与第二计算精度不匹配时,在模型变量数值中增加第一计算精度的转换类型,以使第一计算精度可以从更新的模型变量数值中匹配到对应的计算精度,进而可以实现不同计算精度的核函数的共存;和/或,上述执行主体还可以在第一存储方式与第二存储方式不匹配时,在模型变量数值中增加第一存储方式的转换类型,以使第一存储方式可以从更新的模型变量数值中匹配到对应的存储方式,进而可以对不同存储方式的变量的共存。
在一个具体的示例中,硬件信息可以包括ARM、X86和OpenCL等硬件信息,计算精度可以包括Float和Int8等不同计算精度,存储方式可以包括NCHW和NHWC等不同存储方式。
在一个具体示例中,当模型变量数值包括:第二硬件信息、第二计算精度和第二存储方式时,该用于确定待部署模型的方法还包括:遍历与每个算子所对应的操作绑定的核函数,并在访问当前核函数时,判断该绑定的核函数包括的第一硬件信息与第二硬件信息是否匹配,如果不匹配则转换该绑定的核函数包括的第一硬件信息,直至转换后的第一硬件信息与第二硬件信息相匹配;判断该绑定的核函数包括的第一计算精度与第二计算精度是否匹配,如果不匹配则转换该绑定的核函数包括的第一计算精度,直至转换后第一计算精度与第二计算精度相匹配;判断该绑定的核函数包括的第一存储方式与第二存储方式是否匹配,如果不匹配则转换该绑定的核函数包括的第一存储方式,直至转换后的第一存储方式与第二存储方式相匹配。
需要说明的是,与每个算子所对应的操作绑定的核函数不单单仅限于包括上述的第一硬件信息、第一计算精度和第一存储方式;核函数可以由用户在提交模型部署请求时,对该模型待部署请求进行设定,以增加核函数包括的类型。且模型变量数值也不单单仅限于上述的第二硬件信息、第二计算精度和第二存储方式;该模型变量数值可以由获取的与模型部署请求所对应的目标模型所确定。
上述匹配第一硬件信息与第二硬件信息的方法,可以为现有技术或未来发展的技术中匹配第一硬件信息与第二硬件信息的方法,本公开对此不做限定。例如,匹配第一硬件信息与第二硬件信息的方法可以采用相似度或通过特征匹配来实现。上述匹配第一计算精度与第二计算精度,以及匹配第一存储方式与第二存储方式的方法,与匹配第一硬件信息与第二硬件信息的方法相同,在此不再赘述。
在本实现方式中,通过匹配硬件信息、计算精度,以及存储方式,针针对至少一项不匹配时,在模型变量数值中增加该不匹配对应的转换类型,以使预测框架可以实现对多种硬件、多种计算精度,以及多种存储方式的变量的目标待部署设备进行模型部署。
在本实施方式中,在确定待部署模型之后,上述执行主体还可以基于待部署模型,对获取的场景信息进行预测,以确定与场景信息相对应的属性信息;或者,由上述执行主体将待部署模型发送至与待部署模型所对应的目标待部署设备,由与待部署模型所对应的目标待部署设备对获取的场景信息进行预测,以确定与场景信息相对应的属性信息。
请参考图3,图3示出了根据本公开的用于确定待部署模型的方法的另一个实施例的流程300。该用于确定待部署模型的方法包括以下步骤:
步骤301:响应于接收到模型部署请求,加载与所述模型部署请求所对应的目标模型,并读取所述目标模型的模型结构信息和模型变量数值。
本实施例的步骤301与前述实施例的步骤201一致,步骤301的具体实现方式可以分别参考前述实施例中步骤201的描述,此处不再赘述。
步骤302:确定所述多个算子中每个算子所对应的操作;以及基于所述至少一个待部署参数信息,确定所述每个算子所对应的多个核函数。
本实施例的步骤302与前述实施例的步骤202一致,步骤302的具体实现方式可以分别参考前述实施例中步骤202的描述,此处不再赘述。
步骤303:遍历多个算子中的每个算子所对应的操作,并在访问当前算子时,遍历该算子所对应的多个核函数中的每个核函数,在访问该核函数时,计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级;将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定。
在实施例中,上述执行主体可以遍历多个算子中的每个算子所对应的操作,并在访问当前算子时,遍历该算子所对应的多个核函数中的每个核函数,在访问该核函数时,计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级;将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定。
上述计算该核函数在确定其的待部署参数信息中的优先级,可以包括:计算每个核函数,对至少一个待部署参数信息中的每个待部署参数信息的优先级。
上述将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定的方法,可以为现有技术或未来发展的技术中将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定的方法,本公开对此不做限定。例如,将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定的方法可以采用对应映射关系或通过建立同一个索引来实现。
在本实现方式中,通过计算该核函数在确定其的待部署参数信息中的优先级,并将最高的优先级作为该核函数的优先级,并将最高优先级的核函数与该算子所对应的操作绑定,以实现操作和核函数的分层解耦。
步骤304:基于所述模型变量数值、所述每个算子所对应的操作,以及与所述每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
本实施例的步骤304与前述实施例的步骤204一致,步骤304的具体实现方式可以分别参考前述实施例中步骤204的描述,此处不再赘述。
本公开上述实施例的用于确定待部署模型的方法,先确定每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数,然后计算核函数在确定其的待部署参数信息中的优先级,并将最高优先级作为核函数的优先级;最后,从该算子的多个核函数中最高优先级的核函数与该算子对应的操作绑定,进而将操作和核函数两者分层解耦,使得预测框架在预测阶段可以实现对核函数和操作的动态绑定和混合调度。
在本公开的一些可选实现方式中,当至少一个待部署参数信息存储于存储表时,计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级,包括:针对至少一个待部署参数信息中的每个待部署参数信息执行如下操作;根据该待部署参数信息的权重和初始优先级,确定该待部署参数信息的最终优先级;将至少一个待部署参数信息中每个待部署参数信息的最终优先级中,最高的最终优先级作为该核函数的优先级。
在本实现方式中,上述执行主体可以先针对至少一个待部署参数信息中的每个待部署参数信息执行如下操作;之后,根据该待部署参数信息的权重和该待部署参数信息的初始优先级,确定该待部署参数信息的最终优先级;最终,将至少一个待部署参数信息中每个待部署参数信息的最终优先级中,最高的最终优先级作为该核函数的优先级。上述存储表可以为服务器中的表,或者是服务器。
上述将至少一个待部署参数信息中每个待部署参数信息的最终优先级中,最高的最终优先级作为该核函数的优先级可以包括:将至少一个待部署参数信息中最高的最终优先级作为核函数的优先级。
在本实现方式中,根据待部署参数信息的权重和优先级确定最终优先级,以实现操作和核函数的分层解耦。
在本公开的一些可选实现方式中,该待部署参数信息的权重基于以下步骤确定:根据该待部署参数信息的字节长度,以及该待部署参数信息在存储表中的索引位置,计算该待部署参数信息的权重。
在本实现方式中,上述执行主体可以根据该待部署参数信息的字节长度,以及该待部署参数信息在存储表中的索引位置,确定该待部署参数信息的权重。
上述待部署参数信息的字节长度可以为待部署参数信息存储在存储表中所占的字节数。上述待部署参数信息在存储表中的索引位置可以为待部署参数信息在存储表中存储的位置,在存储表中索引位置越靠前对应的优先级越高。
在本实现方式中,根据待部署参数信息的字节长度,以及该待部署参数信息在索引表中的位置来确定该待部署参数信息的权重,以便后续可以基于确定的待部署参数信息的权重和待部署参数信息的优先级来确定最终优先级,以实现操作和核函数的分层解耦。
在本公开的一些可选实现方式中,待部署参数信息的初始优先级基于以下步骤确定:根据该待部署参数信息,以及其与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级。
在本实现方式中,上述执行主体可以根据待部署参数信息与核函数的匹配度来确定该待部署参数信息的初始优先级。上述初始优先级并不是限定为最开始的优先级,而只是为表明不同于最终优先级。
上述匹配度可以通过余弦或曼哈顿距离(Manhattan Distance)计算该待部署参数信息与每个核函数之间的距离,且距离越小表示的匹配度越高。
需要说明的是,在计算距离之前,还可以判断该待部署参数信息与每个核函数是否为向量,如果该待部署参数信息与每个核函数中的至少一项不为向量时,则将该待部署参数信息转换为对应的向量,以及将每个核函数转换为对应的向量;之后,计算该待部署参数信息对应的向量与每个核函数对应的向量之间的距离。
在本实现方式中,根据待部署参数信息与核函数的匹配度来确定该待部署参数信息的初始优先级,以便后续可以基于确定的待部署参数信息的初始化优先级和该待部署参数信息的权重来确定最终优先级,以实现操作和核函数的分层解耦。
在本公开的一些可选实现方式中,待部署参数信息至少包括以下一项:目标硬件信息;目标计算精度;以及,目标存储方式。
在本实现方式中,通过目标硬件信息、目标计算精度和目标存储方式,以便后续构建每个算子所对应的核函数,以实现核函数与操作的分层解耦。
在本公开的一些可选实现方式中,根据该待部署参数信息,以及与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级,包括:针对该算子所对应的多个核函数中的每个核函数执行以下至少一项匹配操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;根据至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级。
在本实现方式中,上述执行主体可以针对该算子所对应的多个核函数中的每个核函数执行以下至少一项匹配操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;根据至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级。
上述的匹配度可以通过余弦或曼哈顿距离(Manhattan Distance)计算该待部署参数信息与每个核函数之间的距离,且距离越小表示匹配度越高。
上述硬件信息可以为目标待部署设备的硬件信息,例如目标待部署设备的设备编号和目标待部署设备的中央处理器(Central Processing Unit/Processor,CPU)的型号。上述计算精度可以为目标待部署设备中计算时所要求的精度;上述存储方式可以为目标待部署设备中存储数据的方式。例如,硬件信息可以包括ARM、X86和OpenCL等硬件信息,计算精度可以包括Float和Int8等不同计算精度,存储方式可以包括NCHW和NHWC等不同存储方式。
在本实现方式中,将核函数与待部署参数信息中的硬件信息、计算精度和存储方式进行匹配,得到至少一项匹配操作的匹配结果;然后,基于至少一项匹配结果,确定该待部署参数信息的初始优先级,以便后续基于该待部署参数信息确定核函数的优先级,以实现操作和核函数的分层解耦。
在本公开的一些可选实现方式中,根据至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级,包括:若至少一项匹配操作的匹配结果包括至少两项匹配操作的匹配结果,则根据至少两项匹配操作的匹配结果及其分别对应的权重进行加权求和,得到该待部署参数信息的初始优先级。
在本实现方式中,在至少一项匹配操作的匹配结果包括至少两项匹配操作的匹配结果时,上述执行主体可以根据至少两项匹配操作的匹配结果及其分别对应的权重进行加权求和,得到该待部署参数信息的初始优先级。
在一个具体的示例中,以一个核函数为示例,当匹配结果包括第一匹配结果和第二匹配结果时,待部署参数信息的初始优先级可以为:第一匹配度对应的优先级与预设的第一权重的乘积,以及第二匹配度对应的优先级与预设的第二权重的乘积的和。
在本实现方式中,通过至少两项匹配操作的匹配结果及其分别对应的权重进行加权求和,得到该待部署参数信息的初始优先级,以便后续基于该待部署参数信息的初始优先级确定核函数的优先级,以实现操作和核函数的分层解耦。
在本公开的一些可选实现方式中,当该待部署参数信息包括:目标硬件信息、目标计算精度和目标存储方式时,该根据该待部署参数信息,以及与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级,包括:针对该算子所对应的多个核函数中的每个核函数执行以下操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;根据该算子所对应的多个核函数中的每个核函数所对应的第一匹配度对应的优先级和预设的第一权重,第二匹配度对应的优先级和预设的第二权重,以及第三匹配度对应的优先级和预设的第三权重进行加权求和,得到该待部署参数信息的初始优先级;其中,预设的第一权重、预设的第二权重和预设的第三权重不同。
在本实现方式中,上述执行主体针对该算子所对应的多个核函数中的每个核函数执行以下操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;根据该算子所对应的多个核函数中的每个核函数所对应的第一匹配度对应的优先级和预设的第一权重,第二匹配度对应的优先级和预设的第二权重,以及第三匹配度对应的优先级和预设的第三权重进行加权求和,得到该待部署参数信息的初始优先级。
在一个具体的示例中,以一个核函数为示例,计算待部署参数信息的初始优先级可以包括:初始值为0,比较该待部署参数信息和核函数的硬件信息、计算精度和存储方式,当硬件信息匹配时,待部署参数信息的优先级为第一预设值(即第一匹配度对应的优先级)与预设的第一权重的乘积;当计算精度匹配时,待部署参数信息的优先级为第二预设值(即第二匹配度对应的优先级)与预设的第二权重的乘积;当存储方式匹配时,待部署参数信息的优先级为第三预设值(即第三匹配度对应的优先级)与预设的第三优先级的乘积,然后根据上述三个乘积进行相加,得到待部署参数信息的初始优先级。
在本实现方式中,通过核函数与待部署参数信息中的硬件信息、计算精度和存储方式的匹配度对应的优先级,以及匹配度对应的权重进行加权求和,得到待部署参数信息的初始优先级,以备后续基于该待部署参数信息确定核函数的优先级,实现操作和核函数的分层解耦。
请参考图4,图4示出了根据本公开的用于确定待部署模型的方法的应用场景的一个示意图。
步骤401:目标待部署设备向用于确定待部署模型的装置发送待部署请求;
步骤402:用于确定待部署模型的装置在接收到待部署请求后,加载与模型部署请求所对应的目标模型,并读取目标模型的模型结构信息和模型变量数值;其中,模型结构信息包括多个算子,模型部署请求包括至少一个待部署参数信息;确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
步骤403:用于确定待部署模型的装置向硬件所指示的目标待部署设备发送待部署模型。
请参考图5,图5示出了根据本公开的用于确定属性信息的方法的一个实施例的流程500。该用于确定属性信息的方法包括以下步骤:
步骤501:获取场景信息。
本实施例中,用于确定属性信息的方法的执行主体(例如图1所示的终端设备或服务端)可以获取场景信息。可选的,上述执行主体可以从本地或远程获取场景信息。上述场景信息可以包括多种应用场景的信息;上述属性信息可以包括多种应用场景的信息所对应的属性信息。例如,场景信息可以包括针对用户行为场景的信息、图像识别场景的信息和人脸识别场景的信息,该属性信息可以包括用户属性信息、图像属性信息和人脸属性信息,与针对用户行为场景的信息与该用户属性信息对应,该图像识别场景的信息与该图像属性信息对应,该人脸识别场景的信息与该人脸属性信息与对应。其中,用户属性信息可以包括以下项中的至少一项:用户的基本信息、地域信息、用户访问日志信息、用户的历史操作。图像属性信息可以包括以下项中的至少一项:分辨率、大小、颜色、位深、色调、饱和度、亮度、色彩通道、图像的层次。人脸属性信息可以包括以下项中的至少一项:五官的形状、大小和在人脸中的位置、虹膜、人脸轮廓。
获取场景信息的方法,可以为现有技术或未来发展的技术中获取场景信息的方法,本公开对此不做限定。例如,获取场景信息的方法可以采用爬虫技术或通过具有抓取数据的小程序来实现。
步骤502:将所述场景信息,输入待部署模型,得到场景信息的属性信息。
在本实施例中,上述执行主体可以根据待部署模型,确定属性信息。
在一个具体的示例中,在属性信息为用户属性信息时,上述执行主体可以将获取的针对用户场景的信息,输入待部署模型,得到用户属性信息,该属性信息可以包括以下项中的至少一项:用户的基本信息、地域信息、用户访问日志信息、用户的历史操作。
需要说明的是,用于确定待部署模型的步骤可以参照图2和图3对应的实施例中的描述,在此不再赘述。
本公开的上述实施例提供的用于确定属性信息的方法,通过待部署模型,就能确定与场景信息相对应的属性信息。
如图6所示,本实施例的用于确定待部署模型的装置600可以包括:模型加载模块601、数据读取模块602、第一确定模块603、第二确定模块604和第三确定模块605。其中,模型加载模块601,被配置为响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型;数据读取模块602,被配置为,并读取目标模型的模型结构信息和模型变量数值;其中,模型结构信息包括多个算子,模型部署请求包括至少一个待部署参数信息;第一确定模块603,被配置为确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;第二确定模块604,被配置为根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;第三确定模块605,被配置为基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。
在本实施例中,用于确定待部署模型的装置600中:模型加载模块601、数据读取模块602、第一确定模块603、第二确定模块604和第三确定模块605的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-204的相关说明,在此不再赘述。其中,第一确定模块603、第二确定模块604和第三确定模块605可以为相同的模块,也可以为不同的模块。
在本实施例的一些可选的实现方式中,第二确定模块604包括:算子遍历单元(图中未示出),被配置为遍历多个算子中的每个算子所对应的操作,并在访问当前算子时,遍历该算子所对应的多个核函数中的每个核函数;优先级作为单元(图中未示出),被配置为在访问该核函数时,计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级;核函数绑定单元(图中未示出),被配置为将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定。
在本实施例的一些可选的实现方式中,当至少一个待部署参数信息存储于存储表时,优先级作为单元包括:第二确定子单元(图中未示出),被配置为根据该待部署参数信息的权重和该待部署参数信息的初始优先级,确定该待部署参数信息的最终优先级;作为子单元(图中未示出),被配置为将至少一个待部署参数信息中每个待部署参数信息的最终优先级中,最高的最终优先级作为该核函数的优先级。
在本实施例的一些可选的实现方式中,该用于确定待部署模型的装置还包括:权重确定模块(图中未示出),被配置为根据该待部署参数信息的字节长度,以及该待部署参数信息在存储表中的索引位置,计算该待部署参数信息的权重。
在本实施例的一些可选的实现方式中,该用于确定待部署模型的装置还包括:优先级确定模块(图中未示出),被配置为根据该待部署参数信息,以及其与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级。
在本实施例的一些可选的实现方式中,该待部署参数信息至少包括以下一项:目标硬件信息;目标计算精度;以及,目标存储方式。
在本实施例的一些可选的实现方式中,优先级确定模块包括:匹配度确定单元(图中未示出),被配置为针对该算子所对应的多个核函数中的每个核函数执行以下至少一项匹配操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;优先级确定子单元(图中未示出),被配置为根据至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级。
在本实施例的一些可选的实现方式中,优先级确定子单元(图中未示出)进一步被配置为:若至少一项匹配操作的匹配结果包括至少两项匹配操作的匹配结果,则根据至少两项匹配操作的匹配结果及其分别对应的权重的加权结果,得到该待部署参数信息的初始优先级。
在本实施例的一些可选的实现方式中,该用于确定待部署模型的装置还包括:核函数遍历模块(图中未示出),被配置为遍历与每个算子所对应的操作绑定的核函数;匹配度确定模块(图中未示出),被配置为在访问当前核函数时,执行以下至少一项:判断该绑定的核函数包括的第一硬件信息与第二硬件信息是否匹配,如果不匹配则转换该绑定的核函数包括的第一硬件信息,直至转换后的第一硬件信息与第二硬件信息相匹配;判断该绑定的核函数包括的第一计算精度与第二计算精度是否匹配,如果不匹配则转换该绑定的核函数包括的第一计算精度,直至转换后第一计算精度与第二计算精度相匹配;判断该绑定的核函数包括的第一存储方式与第二存储方式是否匹配,如果不匹配则转换该绑定的核函数包括的第一存储方式,直至转换后的第一存储方式与第二存储方式相匹配。
如图7所示,本实施例的用于确定属性信息的装置700可以包括:信息获取模块701和信息得到模块702。其中,信息获取模块701,被配置为获取场景信息;信息得到模块702,被配置为将场景信息,输入待部署模型,得到场景信息的属性信息。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图8所示,是根据本公开实施例的用于确定待部署模型的方法或确定属性信息的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的用于确定待部署模型的方法或确定属性信息的方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的用于确定待部署模型的方法或确定属性信息的方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的用于确定待部署模型的方法或确定属性信息的方法对应的程序指令/模块。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于确定待部署模型的方法或确定属性信息的方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于确定待部署模型的方法或确定属性信息的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至用于确定待部署模型的方法或确定属性信息的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于确定待部署模型的方法或确定属性信息的方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与用于确定待部署模型的方法或确定属性信息的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。
本公开上述实施例的用于确定待部署模型的方法、装置、设备及其存储介质,首先响应于接收到模型部署请求,加载与模型部署请求所对应的目标模型,并读取目标模型的模型结构信息和模型变量数值;其中,模型结构信息包括多个算子,模型部署请求包括至少一个待部署参数信息;之后,确定多个算子中每个算子所对应的操作;以及基于至少一个待部署参数信息,确定每个算子所对应的多个核函数;之后,根据每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与每个算子所对应的操作绑定的核函数;之后,基于模型变量数值、每个算子所对应的操作,以及与每个算子所对应的操作绑定的核函数,确定部署至模型部署请求所指示的硬件的待部署模型。这一过程中,与背景技术中预测框架对算子的核函数采用静态绑定的策略,即在编译阶段确定核函数,或者在核函数内部确定算子的计算逻辑的处理导致算子的操作和算子的核函数两者之间紧密耦合,使得预测框架不能灵活地调用操作和核函数,进而不能将训练好的模型部署到不同的硬件设备中相比;本申请中由于先确定了每个算子所对应的操作;以及,基于至少一个待部署参数信息,确定了每个算子所对应的多个核函数,然后基于多个核函数中的每个核函数在其的待部署参数信息中的优先级来确定与每个算子所对应的操作绑定的核函数,进而将操作和核函数两者分层解耦,使得预测框架在预测阶段可以实现对核函数和操作的动态绑定和混合调度。
人工智能是研究计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语音处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (21)
1.一种用于确定待部署模型的方法,所述方法包括:
响应于接收到模型部署请求,加载与所述模型部署请求所对应的目标模型,并读取所述目标模型的模型结构信息和模型变量数值;其中,所述模型结构信息包括多个算子,所述模型部署请求包括至少一个待部署参数信息;
确定所述多个算子中每个算子所对应的操作;以及基于所述至少一个待部署参数信息,确定所述每个算子所对应的多个核函数;
遍历所述多个算子中的每个算子所对应的操作,并在访问当前算子时,遍历该算子所对应的多个核函数中的每个核函数,在访问该核函数时,计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级;将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定;
基于所述模型变量数值、所述每个算子所对应的操作,以及与所述每个算子所对应的操作绑定的核函数,确定部署至所述模型部署请求所指示的硬件的待部署模型。
2.根据权利要求1所述的方法,其中,当所述至少一个待部署参数信息存储于存储表时,所述计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级,包括:
针对至少一个待部署参数信息中的每个待部署参数信息执行如下操作;
根据该待部署参数信息的权重和该待部署参数信息的初始优先级,确定该待部署参数信息的最终优先级;
将所述至少一个待部署参数信息中每个待部署参数信息的最终优先级中,最高的最终优先级作为该核函数的优先级。
3.根据权利要求2所述的方法,其中,该待部署参数信息的权重基于以下步骤确定:
根据该待部署参数信息的字节长度,以及该待部署参数信息在所述存储表中的索引位置,计算该待部署参数信息的权重。
4.根据权利要求2或3所述的方法,其中,该待部署参数信息的初始优先级基于以下步骤确定:
根据该待部署参数信息,以及其与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级。
5.根据权利要求4所述的方法,其中,该待部署参数信息至少包括以下一项:目标硬件信息;目标计算精度;以及,目标存储方式。
6.根据权利要求5所述的方法,其中,所述根据该待部署参数信息,以及与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级,包括:
针对该算子所对应的多个核函数中的每个核函数执行以下至少一项匹配操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;
根据所述至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级。
7.根据权利要求6所述的方法,其中,所述根据所述至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级,包括:
若所述至少一项匹配操作的匹配结果包括至少两项匹配操作的匹配结果,则根据所述至少两项匹配操作的匹配结果及其分别对应的权重进行加权求和,得到该待部署参数信息的初始优先级。
8.根据权利要求1所述的方法,所述方法还包括:
遍历与所述每个算子所对应的操作绑定的核函数,并在访问当前核函数时,执行以下至少一项:判断该绑定的核函数包括的第一硬件信息与所述模型变量数值中的第二硬件信息是否匹配,如果不匹配则转换该绑定的核函数包括的第一硬件信息,直至转换后的第一硬件信息与所述第二硬件信息相匹配;判断该绑定的核函数包括的第一计算精度与所述模型变量数值中的第二计算精度是否匹配,如果不匹配则转换该绑定的核函数包括的第一计算精度,直至转换后第一计算精度与所述第二计算精度相匹配;判断该绑定的核函数包括的第一存储方式与所述模型变量数值中的第二存储方式是否匹配,如果不匹配则转换该绑定的核函数包括的第一存储方式,直至转换后的第一存储方式与所述第二存储方式相匹配。
9.一种用于确定属性信息的方法,所述方法包括:
获取场景信息;
将所述场景信息,输入如权利要求1所述的待部署模型,得到与所述场景信息相对应的属性信息。
10.一种用于确定待部署模型的装置,包括:
模型加载模块,被配置为响应于接收到模型部署请求,加载与所述模型部署请求所对应的目标模型;
数据读取模块,被配置为,并读取所述目标模型的模型结构信息和模型变量数值;其中,所述模型结构信息包括多个算子,所述模型部署请求包括至少一个待部署参数信息;
第一确定模块,被配置为确定所述多个算子中每个算子所对应的操作;以及基于所述至少一个待部署参数信息,确定所述每个算子所对应的多个核函数;
第二确定模块,被配置为根据所述每个算子所对应的多个核函数中的每个核函数在确定其的待部署参数信息中的优先级,确定与所述每个算子所对应的操作绑定的核函数,包括:算子遍历单元,被配置为遍历所述多个算子中的每个算子所对应的操作,并在访问当前算子时,遍历该算子所对应的多个核函数中的每个核函数;优先级作为单元,被配置为在访问该核函数时,计算该核函数在确定其的待部署参数信息中的优先级,并将计算的优先级中的最高优先级作为该核函数的优先级;核函数绑定单元,被配置为将该算子所对应的多个核函数中最高优先级的核函数,与该算子所对应的操作绑定;
第三确定模块,被配置为基于所述模型变量数值、所述每个算子所对应的操作,以及与所述每个算子所对应的操作绑定的核函数,确定部署至所述模型部署请求所指示的硬件的待部署模型。
11.根据权利要求10所述的装置,其中,当所述至少一个待部署参数信息存储于存储表时,所述优先级作为单元包括:
第二确定子单元,被配置为根据该待部署参数信息的权重和该待部署参数信息的初始优先级,确定该待部署参数信息的最终优先级;
作为子单元,被配置为将所述至少一个待部署参数信息中每个待部署参数信息的最终优先级中,最高的最终优先级作为该核函数的优先级。
12.根据权利要求11所述的装置,所述装置还包括:
权重确定模块,被配置为根据该待部署参数信息的字节长度,以及该待部署参数信息在所述存储表中的索引位置,计算该待部署参数信息的权重。
13.根据权利要求11或12所述的装置,所述装置还包括:
优先级确定模块,被配置为根据该待部署参数信息,以及其与该算子所对应的多个核函数中的每个核函数的匹配度,确定该待部署参数信息的初始优先级。
14.根据权利要求13所述的装置,其中,该待部署参数信息至少包括以下一项:目标硬件信息;目标计算精度;以及,目标存储方式。
15.根据权利要求14所述的装置,其中,所述优先级确定模块包括:
匹配度确定单元,被配置为针对该算子所对应的多个核函数中的每个核函数执行以下至少一项匹配操作:根据目标硬件信息与该核函数包括的第一硬件信息,确定该核函数所对应的第一匹配度;根据目标计算精度与该核函数包括的第一计算精度,确定该核函数所对应的第二匹配度;根据目标存储方式与该核函数包括的第一存储方式,确定该核函数所对应的第三匹配度;
优先级确定子单元,被配置为根据所述至少一项匹配操作的匹配结果,确定该待部署参数信息的初始优先级。
16.根据权利要求15所述的装置,其中,所述优先级确定子单元进一步被配置为:
若所述至少一项匹配操作的匹配结果包括至少两项匹配操作的匹配结果,则根据至少两项匹配操作的匹配结果及其分别对应的权重进行加权求和,得到该待部署参数信息的初始优先级。
17.根据权利要求10所述的装置,所述装置还包括:
核函数遍历模块,被配置为遍历与所述每个算子所对应的操作绑定的核函数;
匹配度确定模块,被配置为在访问当前核函数时,执行以下至少一项:判断该绑定的核函数包括的第一硬件信息与所述模型变量数值中的第二硬件信息是否匹配,如果不匹配则转换该绑定的核函数包括的第一硬件信息,直至转换后的第一硬件信息与所述第二硬件信息相匹配;判断该绑定的核函数包括的第一计算精度与所述模型变量数值中的第二计算精度是否匹配,如果不匹配则转换该绑定的核函数包括的第一计算精度,直至转换后第一计算精度与所述第二计算精度相匹配;判断该绑定的核函数包括的第一存储方式与所述模型变量数值中的第二存储方式是否匹配,如果不匹配则转换该绑定的核函数包括的第一存储方式,直至转换后的第一存储方式与所述第二存储方式相匹配。
18.一种用于确定属性信息的装置,所述装置包括:
信息获取模块,被配置为获取场景信息;
信息得到模块,被配置为将所述场景信息,输入如权利要求1所述的待部署模型,得到与所述场景信息相对应的属性信息。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8或9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-8或9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8或9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011021003.5A CN111966361B (zh) | 2020-09-25 | 2020-09-25 | 用于确定待部署模型的方法、装置、设备及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011021003.5A CN111966361B (zh) | 2020-09-25 | 2020-09-25 | 用于确定待部署模型的方法、装置、设备及其存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966361A CN111966361A (zh) | 2020-11-20 |
CN111966361B true CN111966361B (zh) | 2024-04-05 |
Family
ID=73387576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011021003.5A Active CN111966361B (zh) | 2020-09-25 | 2020-09-25 | 用于确定待部署模型的方法、装置、设备及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966361B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527281B (zh) * | 2020-12-17 | 2022-03-11 | 北京百度网讯科技有限公司 | 基于人工智能的算子升级方法、装置、电子设备及介质 |
CN112799642B (zh) * | 2021-01-18 | 2022-04-05 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备以及存储介质 |
CN115237428A (zh) * | 2021-04-24 | 2022-10-25 | 华为云计算技术有限公司 | Ai应用部署方法及相关平台、集群、介质、程序产品 |
CN114995876B (zh) * | 2022-07-18 | 2022-10-28 | 浙江大华技术股份有限公司 | 算法方案的生成方法、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256496B1 (en) * | 2008-12-15 | 2016-02-09 | Open Invention Network, Llc | System and method for hybrid kernel—and user-space incremental and full checkpointing |
CN110413287A (zh) * | 2019-07-31 | 2019-11-05 | 北京百度网讯科技有限公司 | 软件的部署方法和装置 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN111290762A (zh) * | 2020-01-19 | 2020-06-16 | 深圳云天励飞技术有限公司 | 一种深度学习网络的部署方法、装置及终端设备 |
CN111507476A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 部署机器学习模型的方法、设备和计算机程序产品 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10261806B2 (en) * | 2017-04-28 | 2019-04-16 | International Business Machines Corporation | Adaptive hardware configuration for data analytics |
US11556777B2 (en) * | 2017-11-15 | 2023-01-17 | Uatc, Llc | Continuous convolution and fusion in neural networks |
CN109919308B (zh) * | 2017-12-13 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
CN109492241B (zh) * | 2018-08-10 | 2020-03-10 | 中科寒武纪科技股份有限公司 | 转换方法、装置、计算机设备和存储介质 |
-
2020
- 2020-09-25 CN CN202011021003.5A patent/CN111966361B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256496B1 (en) * | 2008-12-15 | 2016-02-09 | Open Invention Network, Llc | System and method for hybrid kernel—and user-space incremental and full checkpointing |
CN111507476A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 部署机器学习模型的方法、设备和计算机程序产品 |
CN110413287A (zh) * | 2019-07-31 | 2019-11-05 | 北京百度网讯科技有限公司 | 软件的部署方法和装置 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN111290762A (zh) * | 2020-01-19 | 2020-06-16 | 深圳云天励飞技术有限公司 | 一种深度学习网络的部署方法、装置及终端设备 |
Non-Patent Citations (2)
Title |
---|
一种自动化远程统一部署软件平台;赵建平;鲍俊雷;程小林;吴学军;朱莉;赵建辉;;兵工自动化(02);全文 * |
人工智能算子接口标准化研究;黎子毅;李克森;李雨芮;范睿博;敖玉龙;杨超;;人工智能(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111966361A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966361B (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
EP3923160A1 (en) | Method, apparatus, device and storage medium for training model | |
JP2022003576A (ja) | 制御パルス生成方法、装置、システム、電子デバイス、記憶媒体及びプログラム | |
CN111967568B (zh) | 深度学习模型的适配方法、装置及电子设备 | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
CN112270711B (zh) | 模型训练以及姿态预测方法、装置、设备以及存储介质 | |
CN110706147B (zh) | 图像处理的环境确定方法、装置、电子设备和存储介质 | |
US20220004914A1 (en) | Code generation for auto-ai | |
CN114667507A (zh) | 使用基于应用的剖析的机器学习工作负载的弹性执行 | |
CN114861910B (zh) | 神经网络模型的压缩方法及装置、设备和介质 | |
CN111652354B (zh) | 用于训练超网络的方法、装置、设备以及存储介质 | |
EP4222598A1 (en) | Optimizing job runtimes via prediction-based token allocation | |
KR20210124934A (ko) | 모델 트레이닝 방법, 장치, 개발 시스템, 전자장비, 컴퓨터 판독 가능 저장 매체 및 컴퓨터 프로그램 | |
CN112580723B (zh) | 多模型融合方法、装置、电子设备和存储介质 | |
CN111767149B (zh) | 调度方法、装置、设备及存储设备 | |
US12001174B2 (en) | Determination of task automation using an artificial intelligence model | |
CN111767059B (zh) | 深度学习模型的部署方法、装置、电子设备和存储介质 | |
CN111738325B (zh) | 图像识别方法、装置、设备以及存储介质 | |
CN117743542A (zh) | 基于人工智能的信息处理方法、装置、电子设备及智能体 | |
CN111833391A (zh) | 图像深度信息的估计方法及装置 | |
US20220122038A1 (en) | Process Version Control for Business Process Management | |
CN112270412B (zh) | 网络算子处理方法、装置、电子设备及存储介质 | |
EP4363970A1 (en) | Method and system for resource governance in a multi-tenant system | |
CN111582480A (zh) | 用于对模型剪枝的方法和装置 | |
CN111522837B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |