CN112784989A - 推理系统、推理方法、电子设备及计算机存储介质 - Google Patents
推理系统、推理方法、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112784989A CN112784989A CN201911089253.XA CN201911089253A CN112784989A CN 112784989 A CN112784989 A CN 112784989A CN 201911089253 A CN201911089253 A CN 201911089253A CN 112784989 A CN112784989 A CN 112784989A
- Authority
- CN
- China
- Prior art keywords
- inference
- model
- reasoning
- information
- computing device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 116
- 238000012545 processing Methods 0.000 claims abstract description 168
- 230000001133 acceleration Effects 0.000 claims abstract description 130
- 238000004364 calculation method Methods 0.000 claims abstract description 126
- 230000006870 function Effects 0.000 claims description 65
- 238000005094 computer simulation Methods 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 21
- 238000013135 deep learning Methods 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000013459 approach Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种推理系统及方法,其中,推理系统包括相互连接的第一计算设备和第二计算设备,第一计算设备中设置有推理客户端,第二计算设备中包括推理加速资源以及推理服务端;推理客户端用于获取进行推理的计算模型的模型信息和待推理数据,并分别将模型信息和待推理数据发送至第二计算设备中的推理服务端;推理服务端用于通过推理加速资源载入并调用模型信息指示的计算模型,通过计算模型对待推理数据进行推理处理并向推理客户端反馈推理处理的结果。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种推理系统、推理方法、电子设备及计算机存储介质。
背景技术
深度学习一般分为训练和推理(Inference)两个部分,其中,通过训练部分搜索和求解模型的最优参数,而通过推理部分则可以将训练完成的模型部署在在线环境中,以进行实际使用。以人工智能领域为例,推理在部署后,可通过神经网络推导计算将输入转化为特定目标输出。例如,对图片进行物体检测、对文字内容进行分类等,在视觉、语音、推荐等场景被广泛应用。
目前,大部分的推理依赖于具有推理加速卡如GPU(Graphics Processing Unit,图形处理器)的硬件计算资源。例如,在人工智能推理中,一种方式是GPU通过PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)插槽与计算机主机连接。其中,推理涉及的前后处理和其他业务逻辑通过CPU计算,而推理的处理则通过PCIE插槽发送到GPU进行计算,形成典型的异构计算场景。例如,在图1所示的电子设备100中,同时设置有CPU 102和GPU 104,GPU 104可以通过PCIE插槽106设置于电子设备主板108上,并通过主板108上的主板线路与CPU 102交互。在一个推理过程中,CPU 102首先对相关数据或信息进行处理,进而将处理后的数据或信息通过PCIE插槽106发送到GPU 104,GPU 104根据接收的数据或信息,使用GPU 104中的计算模型进行推理处理,之后,再将推理处理结果返回给CPU 102,CPU 102再进行相应的后续处理。
但是,上述方式存在以下问题:需要CPU和GPU同台的异构计算机器,且该异构计算机器中的CPU/GPU的规格固定,这种固定的CPU/GPU性能配比限制了涉及推理的应用的部署,导致无法满足广泛的推理场景需求。
发明内容
有鉴于此,本发明实施例提供一种推理方案,以解决上述部分或全部问题。
根据本发明实施例的第一方面,提供了一种推理系统,包括相互连接的第一计算设备和第二计算设备,其中,所述第一计算设备中设置有推理客户端,所述第二计算设备中设置有推理加速资源以及推理服务端;其中:所述推理客户端用于获取进行推理的计算模型的模型信息和待推理数据,并分别将所述模型信息和所述待推理数据发送至所述第二计算设备中的推理服务端;所述推理服务端用于通过推理加速资源载入并调用所述模型信息指示的计算模型,通过所述计算模型对所述待推理数据进行推理处理并向所述推理客户端反馈所述推理处理的结果。
根据本发明实施例的第二方面,提供了一种推理方法,所述方法包括:获取进行推理的计算模型的模型信息,并将所述模型信息发送至目标计算设备,以指示所述目标计算设备使用所述目标计算设备中设置的推理加速资源载入所述模型信息指示的计算模型;获取待推理数据,并将所述待推理数据发送至所述目标计算设备,以指示所述目标计算设备使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理;接收所述目标计算设备反馈的所述推理处理的结果。
根据本发明实施例的第三方面,提供了另一种推理方法,所述方法包括:获取源计算设备发送的用于推理的计算模型的模型信息,通过推理加速资源载入所述模型信息指示的计算模型;获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理;向所述源计算设备反馈所述推理处理的结果。
根据本发明实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指示,所述可执行指示使所述处理器执行如第二方面所述的推理方法对应的操作,或者,所述可执行指示使所述处理器执行如第三方面所述的推理方法对应的操作。
根据本发明实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二方面所述的推理方法;或者,实现如第三方面所述的推理方法。
根据本发明实施例提供的推理方案,将推理处理部署在不同的第一和第二计算设备中,其中,第二计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而第一计算设备则可以负责推理处理之前和之后的数据处理。并且,第一计算设备中部署有推理客户端,第二计算设备中部署有推理服务端,在进行推理时,第一计算设备和第二计算设备通过推理客户端和推理服务端进行交互。推理客户端可以先将计算模型的模型信息发送给推理服务端,推理服务端使用推理加速资源载入相应的计算模型;接着,推理客户端向推理服务端发送待推理数据,推理服务端在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以通过推理客户端和推理服务端无缝转接到远程具有推理加速资源的设备上进行,且推理客户端和推理服务端之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种具有推理计算资源的电子设备的结构示意图;
图2a为根据本发明实施例一的一种推理系统的结构框图;
图2b为根据本发明实施例的一种推理系统实例的结构示意图;
图3a为根据本发明实施例二的一种推理系统的结构框图;
图3b为根据本发明实施例的一种推理系统实例的结构示意图;
图3c为使用图3b所示推理系统进行推理的过程示意图;
图3d为使用图3b所示推理系统进行推理的交互示意图;
图4为根据本发明实施例三的一种推理方法的流程图;
图5为根据本发明实施例四的一种推理方法的流程图;
图6为根据本发明实施例五的一种推理方法的流程图;
图7为根据本发明实施例六的一种推理方法的流程图;
图8为根据本发明实施例七的一种电子设备的结构示意图;
图9为根据本发明实施例八的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
参照图2a,示出了根据本发明实施例一的一种推理系统的结构框图。
本实施例的推理系统包括相互连接的第一计算设备202和第二计算设备204,其中,第一计算设备202中设置有推理客户端2022,第二计算设备204中设置有推理服务端2042以及推理加速资源2044。
其中,推理客户端2022用于获取进行推理的计算模型的模型信息和待推理数据,并分别将所述模型信息和所述待推理数据发送至所述第二计算设备204中的推理服务端2042;推理服务端2042用于通过推理加速资源2044载入并调用所述模型信息指示的计算模型,通过所述计算模型对所述待推理数据进行推理处理并向推理客户端2022反馈所述推理处理的结果。
在一种可行的实现中,第一计算设备202中的推理客户端2022先获取进行推理的计算模型的模型信息,并将所述模型信息发送至第二计算设备204中的推理服务端2042;第二计算设备204中的推理服务端2042通过推理加速资源2044载入所述模型信息指示的计算模型;第一计算设备202中的推理客户端2022再获取待推理数据,并将待推理数据发送至第二计算设备204中的推理服务端2042;第二计算设备204中的推理服务端2042使用推理加速资源2044调用载入的所述计算模型,通过所述计算模型对待推理数据进行推理处理并向推理客户端2022反馈所述推理处理的结果。
上述推荐系统中,第二计算设备204因具有推理使用的推理加速资源2044,可以有效加载用于推理的计算模型和进行大数据量的推理计算。又因推理加速资源2044所在的第二计算设备204与第一计算设备202相互独立设置,推理加速资源2044如GPU无需和第一计算设备202中的处理器资源如CPU遵循固定的规格设置,使得推理加速资源2044的实现更为灵活和多样。其中,推理加速资源2044可以实现为:包括但不限于GPU、NPU的多种形式。从而,第一计算设备中202中配置常规处理数据的资源如CPU即可。
进行推理的计算模型可以为根据业务需求设置的任意适当的计算模型,其可适用于深度学习框架(包括但不限于Tensorflow框架、Mxnet框架、PyTorch框架)即可。在一种可行方式中,第二计算设备204中可以预先设置有计算模型的资源池,若所需使用的计算模型在资源池中,则可直接加载使用;若不在资源池中,则可从第一计算设备202中获取。在另一种可行方式中,第二计算设备204中可以没有预先设置的计算模型的资源池,在需要进行推理时,从第一计算设备202获取所需的计算模型,进而存储在本地。经过多次推理,可以获得不同的计算模型并最终存储成为计算模型的资源池。获得的不同的计算模型可以来自于不同的第一计算设备202,也即,第二计算设备204可以为不同的第一计算设备202提供推理服务,以从不同的第一计算设备202获得不同的计算模型。
推理客户端2022向推理服务端2042发送的计算模型的模型信息可以唯一标识计算模型,如,可以为计算模型的标识信息如标识ID号。但不限于此,在一种可行方式中,计算模型的模型信息也可以是计算模型的校验信息,如MD5信息,校验信息一方面可以标识计算模型,另一方面还可以进行计算模型的校验,通过一种信息实现多种功能,降低了信息处理的成本。模型信息可以在第一计算设备202加载模型时获得。
以下,以一个具体实例对上述推理系统的结构进行示例性说明,如图2b所示。
图2b中,第一计算设备202实现为一台终端设备即第一终端设备,其中设置有处理器CPU以进行相应的业务处理,第二计算设备204也实现为一台终端设备即第二终端设备,其中设置有推理加速资源GPU。并且,第一计算设备202中加载有深度学习框架,以及设置于深度学习框架中的推理客户端;第二计算设备204中则对应设置有推理服务端。本实施例中,还设定第二计算设备204中设置有计算模型的资源池,其中存储有多个计算模型,如计算模型A、B、C和D。
本领域技术人员应当明白的是,上述实例仅为示例性说明,在实际应用中,第一计算设备202和第二计算设备204可以均实现为终端设备,或者可以均实现为服务器,或者,第一计算设备202实现为服务器而第二计算设备204实现为终端设备或者相反,本发明实施例对此不作限制。
基于图2b的推理系统,一种使用该推理系统进行推理的过程如下。
以图像识别为例,深度学习框架载入模型时即可获得相应的模型信息,推理客户端将计算模型的信息先发送给第二终端设备,第二终端设备通过其中的推理服务端接收该计算模型的信息。假设,该计算模型的信息指示待使用的计算模型为计算模型A,第二终端设备的资源池中存储有计算模型A、B、C和D,则,第二终端设备会通过GPU直接从资源池中加载计算模型A。进而,第二终端设备通过推理服务端和推理客户端,从第一终端设备获取待推理数据如待识别的图像,然后第二终端设备通过GPU调用计算模型A对该图像进行目标对象识别,如识别图像中是否有人像。在识别结束后,第二终端设备会将识别结果通过推理服务端发送给第一终端设备的推理客户端,由推理客户端交由CPU进行后续处理,如增加AR特效等。
需要说明的是,本发明实施例中,若无特殊说明,诸如“多个”、“多种”等与“多”有关的数量,意指两个及两个以上。
根据本实施例提供的推理系统,将推理处理部署在不同的第一和第二计算设备中,其中,第二计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而第一计算设备则可以负责推理处理之前和之后的数据处理。并且,第一计算设备中部署有推理客户端,第二计算设备中部署有推理服务端,在进行推理时,第一计算设备和第二计算设备通过推理客户端和推理服务端进行交互。推理客户端可以先将计算模型的模型信息发送给推理服务端,推理服务端使用推理加速资源载入相应的计算模型;接着,推理客户端向推理服务端发送待推理数据,推理服务端在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以通过推理客户端和推理服务端无缝转接到远程具有推理加速资源的设备上进行,且推理客户端和推理服务端之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例二
本实施例对实施例一中的推理系统进行了进一步优化,如图3a所示。
如实施例一中所述,本实施例的推理系统包括:相互连接的第一计算设备202和第二计算设备204,其中,第一计算设备202中设置有推理客户端2022,第二计算设备204中设置有推理服务端2042以及推理加速资源2044。
第一计算设备202中的推理客户端2022用于获取进行推理的计算模型的模型信息,并将所述模型信息发送至第二计算设备204中的推理服务端2042;第二计算设备204中的推理服务端2042用于通过推理加速资源2044载入所述模型信息指示的计算模型;第一计算设备202中的推理客户端2022还用于获取待推理数据,并将待推理数据发送至第二计算设备204中的推理服务端2042;第二计算设备204中的推理服务端2042还用于使用推理加速资源2044调用载入的所述计算模型,通过所述计算模型对待推理数据进行推理处理并向推理客户端2022反馈所述推理处理的结果。
在一种可行方式中,第一计算设备202和第二计算设备204通过弹性网络相互连接。其中,所述弹性网络包括但不限于ENI(Elastic Network Interface)网络。弹性网络具有更好的可扩展性和灵活性,通过弹性网络连接第一计算设备202和第二计算设备204,使得推理系统也具备更好的可扩展性和灵活性。但不限于此,在实际应用中,第一计算设备202和第二计算设备204之间可以采用任意适当的方式或网络相连,能够顺利实现两者的数据交互即可。
在本实施例中,可选地,推理客户端2022可以实现为嵌入第一计算设备202中的深度学习框架内部的组件,或者,所述推理客户端可以实现为可被所述深度学习框架调用的可调用文件。深度学习框架提供了一种深入学习的平台,基于深度学习框架,程序人员可以方便地部署各种计算模型,实现不同的推理功能。将推理客户端2022实现为适用于深度学习框架的组件或可调用文件的形式,一方面使其兼容性和适用性更好,另一方面,也大大降低了推理计算资源解耦的实现成本。类似地,推理服务端2042也同样可实现为组件或可调用文件的形式。
基于上述结构,本实施例的推理系统可以方便地通过推理客户端2022和推理服务端2042进行相应数据和信息的交互,通过远程调用推理加速资源2044实现推理处理。
此外,本实施例中,推理客户端2022还用于在确定第二计算设备204中不存在所述计算模型时,将所述计算模型发送至推理服务端2042。
可选地,所述计算模型的模型信息为所述计算模型的标识信息或校验信息;推理服务端2042还用于通过所述标识信息或所述校验信息,确定第二计算设备204中是否存在所述计算模型,并将确定结果返回给推理客户端2022。但不限于此,其它确定第二计算设备204是否存在所述计算模型的方式也同样适用,如,每隔一定时间第二计算设备204向外广播其所具有的计算模型;或者,在需要时或每隔一定时间,第一计算设备202主动发送消息询问第二计算设备204中的计算模型的资源情况,等等。
例如,若第二计算设备204中未预先设置计算模型的资源池或者资源池中没有所需的计算模型时,推理客户端2022会将第一计算设备202中的计算模型发送给第二计算设备204,包括但不限于计算模型的结构和其包含的数据。在推理客户端2022向推理服务端2042发送的计算模型的信息为标识信息或校验信息的情况下,推理服务端2042会先根据接收到的标识信息或校验信息来确定第二计算设备204中是否存在所需的计算模型,并将确定结果返回给推理客户端2022。若该确定结果指示第二计算设备204中不存在所需的计算模型时,第一计算设备202从本地获取计算模型并将其发送给第二计算设备204,借由第二计算设备204的推理加速资源运行该计算模型,进行推理处理。
通过这种方式,可以有效保证具备推理加速资源的第二计算设备204能够顺利完成推理处理。
除此之外,在一种可行方式中,推理客户端2022还用于获取请求所述计算模型对所述待推理数据进行推理处理的推理请求,并对所述推理请求进行语义分析,根据语义分析结果确定待调用的所述计算模型中的处理函数,将所述处理函数的信息发送给所述推理服务端2042;所述推理服务端2042在通过所述计算模型对所述待推理数据进行推理处理时,通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
在一些推理的具体业务应用中,业务可能并不需要计算模型所有的推理功能,仅需部分功能即可。例如,某个推理用于对文字内容进行分类,而当前业务仅需其中的计算功能对相应文字向量进行加法计算,则此种情况下,当推理客户端2022接收到请求某个计算模型对文字向量进行加法计算的推理请求后,通过对该推理请求进行语义分析,确定仅需调用该计算模型中的COMPUTE()函数即可,则可将该函数的信息发送给推理服务端2042。推理服务端2042在获得该函数的信息后,可直接调用计算模型中的COMPUTE()函数进行文字向量的加法计算即可。
可见,通过这种方式,使得计算模型的使用更为精准,大大提高了计算模型的推理效率,并且,降低了推理负担。
在一种可行方式中,处理函数的信息可以为处理函数的API接口信息,通过API接口信息既可快速地确定待使用的计算模型中的处理函数,还可以直接获取该函数相应的接口信息,以在后续进行推理处理时直接使用。
可选地,第二计算设备204中设置有一种或多种类型的推理加速资源;当推理加速资源包括多种类型时,不同类型的推理加速资源具有不同的使用优先级;推理服务端2042根据预设的负载均衡规则和多种类型的推理加速资源的优先级,使用推理加速资源。
例如,第二计算设备204中除设置有GPU外,还可以设置NPU或其它推理加速资源。多种推理加速资源间具有一定的优先级,所述优先级可以通过任意适当方式设置,如根据运行速度设置或者人工设置等等,本发明实施例对此不作限制。进一步可选地,第二计算设备204中还可以设置CPU。此种情况下,可以设置GPU的使用优先级最高、NPU次之、CPU优先级最低。
通过这种方式,当高优先级的推理加速资源负荷较重时,则可使用优先级较低的推理加速资源进行推理处理。一方面,保证了推理处理可被有效执行,另一方面,也可降低推理加速资源的成本。需要说明的是,某一类型的推理加速资源的数量可能为一个,也可能为多个,由本领域技术人员根据需求设置,本发明实施例对此不作限制。此外,预设的负载均衡规则除上述按优先级进行负载均衡外,本领域技术人员还可以根据实际需要设置其它适当的负载均衡规则,本发明实施例对此不作限制。
以下,以一个具体实例,对本实施例中的推理系统进行说明。
如图3b所示,与传统CPU和推理加速资源如GPU在同一台电子设备的架构不同,本实例中,将CPU和推理加速资源解耦成两部分,即图3b中的CPU client machine(前台客户机器)和Server accelerator pools(后台推理加速卡机器)。其中,前台客户机器是用户可操作的用于执行推理业务的机器,后台推理加速卡机器用于推理的计算,两者的通信通过ENI实现。在前台客户机器中设置有多个推理框架,图中示意为“Tensorflow inferencecode”、“pyTorch inferce code”和“Mxnet inference code”。在后台推理加速卡机器中设置有多种推理加速卡,图中示意为“GPU”、“Ali-NPU”和“Other Accelerator”。
为了实现将前台客户机器的推理业务转发到后台加速卡执行并返回推理的结果以实现用户侧无感支持,本实例中提供了两个组件分别常驻于前台客户机器和后台加速卡机器,分别是EAI client module(即推理客户端)和service daemon(即推理服务端)。
其中,EAI client module是前台客户机器中的组件,其功能包括:a)和后台service daemon通过网络连接通信;b)解析计算模型的语义和推理请求;c)将计算模型的语义的解析结果和推理请求的解析结果发送给后台的service daemon;d)接收servicedaemon发送的推理结果并返回给深度学习框架。在一种实现方式中,EAI client module可以实现为plugin模块嵌入到深度学习框架(如Tensorflow/pyTorch/Mxnet等)的功能代码里,在推理业务通过深度学习框架加载计算模型的时候,EAI client module会截获载入的计算模型,解析计算模型的语义以生成计算模型的信息,如校验信息(可为MD5信息),将计算模型和/或计算模型的信息,以及后续操作转接到后端service daemon进行实际的推理计算。
Service daemon是后台推理加速卡机器的常驻服务组件,其功能包括:a)接收EAIclient module发送的计算模型的信息和推理请求的解析结果;b)根据计算模型的信息和推理请求的解析结果,选取后台推理加速卡机器中最优的推理加速卡;c)将推理计算下发给推理加速卡;d)接收推理加速卡计算的推理结果并返回给EAI client module。
其中,GPU、Ali-NPU和Other Accelerator之间具有一定的优先级,如,从高到低依次为GPU->Ali-NPU->Other Accelerator,则在实际使用时,优先使用GPU,若GPU资源不够再使用Ali-NPU,若Ali-NPU的资源仍不够,再使用Other Accelerator。
可见,与传统通过PCIE卡槽将CPU和GPU推理加速卡绑定在一台机器不同的是,本实例中的弹性远程推理通过弹性网卡将CPU机器(CPU client machine)和推理加速卡(server accelerator pools)解耦,对用户来说,购买CPU和GPU同台的机器不再成为必须。
基于图3b所示推理系统的推理过程如图3c所示,包括:步骤①,EAI clientmodule在用户通过深度学习框架启动推理任务载入计算模型的时候截取并解析计算模型的语义,获得计算模型的信息;进而,获取用户的推理请求,并解析推理请求,获得计算模型中待使用的处理函数的信息;步骤②,EAI client module通过弹性网络与sevice daemon连接,将计算模型的信息和处理函数的信息转发给后台的service daemon;步骤③,service daemon根据计算模型的信息和处理函数的信息,选取最优的推理加速卡,并通过推理加速卡载入计算模型进行推理计算;步骤④,推理加速卡将推理计算的结果返回给service daemon;步骤⑤,service daemon将推理计算的结果通过弹性网络转发给EAIclient daemon;步骤⑥,EAI client daemon将推理计算的结果返回给深度学习框架。
由此,用户在前台客户机器进行推理业务,EAI client module和service daemon在后台自动将用户的推理业务转发到远程推理加速卡进行推理计算,并将推理计算的结果返回给前台客户机器的深度学习框架,做到了用户的无感弹性推理,无需改动推理代码就能享受到推理加速服务。并且,用户无需购买带有GPU的机器,只需要通过普通的CPU机器就可以完成相同的推理加速效果,且不需要修改任何代码逻辑。
在一个深度学习框架为Tensorflow框架的具体示例中,前台客户机器和后台推理加速卡机器的交互如图3d所示。
该推理交互包括:步骤1,前台客户机器通过Tensorflow框架载入计算模型;步骤2,EAI client module截获计算模型并校验模型;步骤3,EAI client module与servicedaemon建立通道,传送计算模型;步骤4,service daemon分析计算模型,并根据分析结果从加速卡池中选择最优的推理加速器;步骤5,选择出的推理加速器载入计算模型;步骤6,用户输入图片/文字并发起推理请求;步骤7,Tensorflow框架获取用户输入,EAI clientmodule截获推理请求,解析出待使用的处理函数的信息,和用户输入的待推理数据;步骤8,EAI client module将处理函数的信息和待推理数据传送给service daemon;步骤9,service daemon将处理函数的信息和待处理数据转发给推理加速器;步骤10,推理加速器通过计算模型进行推理计算并将推理计算的推理结果发送给service daemon;步骤11,service daemon将推理结果传输到EAI client module;步骤12,EAI client module接收推理结果并将推理结果转交给Tensorflow框架;步骤13,Tensorflow框架将推理结果展示给用户。
由此,实现了Tensorflow框架下的弹性推理过程。
根据本实施例提供的推理系统,将推理处理部署在不同的第一和第二计算设备中,其中,第二计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而第一计算设备则可以负责推理处理之前和之后的数据处理。并且,第一计算设备中部署有推理客户端,第二计算设备中部署有推理服务端,在进行推理时,第一计算设备和第二计算设备通过推理客户端和推理服务端进行交互。推理客户端可以先将计算模型的模型信息发送给推理服务端,推理服务端使用推理加速资源载入相应的计算模型;接着,推理客户端向推理服务端发送待推理数据,推理服务端在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以通过推理客户端和推理服务端无缝转接到远程具有推理加速资源的设备上进行,且推理客户端和推理服务端之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例三
参照图4,示出了根据本发明实施例三的一种推理方法的流程图。本实施例的推理方法从第一计算设备的角度,对本发明的推理方法进行说明。
本实施例的推理方法包括以下步骤:
步骤S302:获取进行推理的计算模型的模型信息,并将所述模型信息发送至目标计算设备,以指示所述目标计算设备使用所述目标计算设备中设置的推理加速资源载入所述模型信息指示的计算模型。
本实施例中的目标计算设备的实现可参照前述实施例中的第二计算设备。
本步骤的执行可参照前述多个实施例中推理客户端的相关部分,例如,在深度学习框架载入计算模型时即可获取计算模型的模型信息,进而发送给目标计算设备。目标计算设备接收到模型信息后,通过相应的推理加速资源如GPU载入对应的计算模型。
步骤S304:获取待推理数据,并将所述待推理数据发送至所述目标计算设备,以指示所述目标计算设备使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理。
其中,如前所述,待推理数据是使用计算模型进行推理计算的任意适当的数据,在目标计算设备载入计算模型后,即可将待推理数据发送至目标计算设备。目标计算设备收到该待推理数据后,使用推理加速资源如GPU载入的计算模型对待推理数据进行推理处理。
步骤S306:接收所述目标计算设备反馈的所述推理处理的结果。
在目标计算设备使用GPU载入的计算模型对待推理数据进行推理处理完成后,获得推理处理的结果并将其发送给本实施例的执行主体如推理客户端,推理客户端则接收该推理处理的结果。
在具体实现时,本实施例的推理方法可以由前述实施例中第一计算设备的推理客户端实现,上述过程的具体实现也可参照前述实施例中推理客户端的操作,在此不再赘述。
通过本实施例,将推理处理部署在不同的计算设备中,其中,目标计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而执行本实施例的推理方法的当前计算设备则可以负责推理处理之前和之后的数据处理。在进行推理时,当前计算设备可以先将计算模型的模型信息发送给目标计算设备,目标计算设备使用推理加速资源载入相应的计算模型;接着,当前计算设备向目标计算设备发送待推理数据,目标计算设备在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以无缝转接到远程具有推理加速资源的目标计算设备上进行,且当前计算设备和目标计算设备之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例四
本实施例的推理方法仍从第一计算设备的角度,对本发明的推理方法进行说明。参照图5,示出了根据本发明实施例四的一种推理方法的流程图,该推理方法包括:
步骤S402:获取进行推理的计算模型的模型信息,并将所述模型信息发送至目标计算设备。
在一种可行方式中,所述计算模型的模型信息为所述计算模型的标识信息或校验信息。
在具体实现时,第一计算设备可将所述标识信息或校验信息发送给目标计算设备,如前述实施例中的第二计算设备,由目标计算设备根据所述标识信息或校验信息判断本地是否具有对应的计算模型,并将判断结果反馈给第一计算设备,实现第一计算设备对目标计算设备中是否存在计算模型的判断。
步骤S404:若根据所述模型信息确定所述目标计算设备中不存在所述计算模型,则将所述计算模型发送至所述目标计算设备,并指示所述目标计算设备使用所述目标计算设备中设置的推理加速资源载入所述计算模型。
当所述计算模型的模型信息为所述计算模型的标识信息或校验信息时,本步骤可以实现为:若通过所述标识信息或所述校验信息,确定所述目标计算设备中不存在所述计算模型,则将所述计算模型发送至所述目标计算设备。包括:将计算模型的结构及其数据均发送给目标计算设备。
若目标计算设备中不存在所需的计算模型,则可以将计算模型发送给目标计算设备。目标计算设备获取并存储该计算模型,在后续使用中若再次使用到该计算模型,则目标计算设备可以直接从本地获取。由此,保证了不论目标计算设备中是否具有所需的计算模型,都可顺利实现推理处理。
步骤S406:获取待推理数据,并将所述待推理数据发送至所述目标计算设备,以指示所述目标计算设备使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理。
在一种可行方式中,所述获取待推理数据,并将所述待推理数据发送至所述目标计算设备可以包括:获取请求所述计算模型对所述待推理数据进行推理处理的推理请求,并对所述推理请求进行语义分析;根据语义分析结果确定待调用的所述计算模型中的处理函数,将所述处理函数的信息和所述待推理数据发送给所述目标计算设备,以指示所述目标计算设备通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
其中,所述处理函数的信息可选地可以为所述处理函数的API接口信息。
步骤S408:接收所述目标计算设备反馈的所述推理处理的结果。
在具体实现时,本实施例的推理方法可以由前述实施例中第一计算设备的推理客户端实现,上述过程的具体实现也可参照前述实施例中推理客户端的操作,在此不再赘述。
通过本实施例,将推理处理部署在不同的计算设备中,其中,目标计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而执行本实施例的推理方法的当前计算设备则可以负责推理处理之前和之后的数据处理。在进行推理时,当前计算设备可以先将计算模型的模型信息发送给目标计算设备,目标计算设备使用推理加速资源载入相应的计算模型;接着,当前计算设备向目标计算设备发送待推理数据,目标计算设备在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以无缝转接到远程具有推理加速资源的目标计算设备上进行,且当前计算设备和目标计算设备之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例五
参照图6,示出了根据本发明实施例五的一种推理方法的流程图。本实施例的推理方法从第二计算设备的角度,对本发明的推理方法进行说明。
本实施例的推理方法包括以下步骤:
步骤S502:获取源计算设备发送的用于推理的计算模型的模型信息,通过推理加速资源载入所述模型信息指示的计算模型。
本实施例中,源计算设备可以为前述实施例中的第一计算设备,所述模型信息包括但不限于标识信息和/或校验信息。
步骤S504:获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理。
通过推理加速资源载入计算模型后,当接收到从源计算设备发送来的待推理数据,即可使用推理加速资源载入的计算模型对其进行推理处理。
步骤S506:向所述源计算设备反馈所述推理处理的结果。
在具体实现时,本实施例的推理方法可以由前述实施例中第二计算设备的推理服务端实现,上述过程的具体实现也可参照前述实施例中推理服务端的操作,在此不再赘述。
通过本实施例,将推理处理部署在不同的计算设备中,其中,执行本实施例的推理方法的当前计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而源计算设备则可以负责推理处理之前和之后的数据处理。在进行推理时,源计算设备可以先将计算模型的模型信息发送给当前计算设备,当前计算设备使用推理加速资源载入相应的计算模型;接着,源计算设备向当前计算设备发送待推理数据,当前计算设备在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以无缝转接到远程具有推理加速资源的设备上进行,且源计算设备和当前计算设备之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例六
本实施例的推理方法仍从第二计算设备的角度,对本发明的推理方法进行说明。参照图7,示出了根据本发明实施例六的一种推理方法的流程图,该推理方法包括:
步骤S602:根据计算模型的模型信息,确定本地不存在所述计算模型,则向所述源计算设备请求所述计算模型,并在从所述源计算设备获取所述计算模型后,通过所述推理加速资源载入所述计算模型。
本实施例中,计算模型的模型信息可以为所述计算模型的标识信息或校验信息;则,本步骤可以实现为:根据所述标识信息或所述校验信息,确定本地不存在所述计算模型,则向所述源计算设备请求所述计算模型,并在从所述源计算设备获取所述计算模型后,通过所述推理加速资源载入所述计算模型。所述源计算设备发送来的计算模型包括但不限于计算模型的结构及其对应数据。
此外,在一种可选方式中,所述推理加速资源包括一种或多种类型;当所述推理加速资源包括多种类型时,不同类型的推理加速资源具有不同的使用优先级;则,所述通过推理加速资源载入所述模型信息指示的计算模型包括:根据预设的负载均衡规则和多种类型的所述推理加速资源的优先级,使用推理加速资源载入所述模型信息指示的计算模型。
其中,所述负载均衡规则和所述优先级均可由本领域技术人员根据实际需求适当设置。
步骤S604:获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理。
在一种可行方式中,本步骤可以实现为:获取源计算设备发送的待推理数据和待调用的所述计算模型中的处理函数的信息,通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。其中,所述处理函数的信息可以由源计算设备通过对推理请求进行解析获得。
可选地,所述处理函数的信息为所述处理函数的API接口信息。
步骤S606:向所述源计算设备反馈所述推理处理的结果。
在具体实现时,本实施例的推理方法可以由前述实施例中第二计算设备的推理服务端实现,上述过程的具体实现也可参照前述实施例中推理服务端的操作,在此不再赘述。
通过本实施例,将推理处理部署在不同的计算设备中,其中,执行本实施例的推理方法的当前计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而源计算设备则可以负责推理处理之前和之后的数据处理。在进行推理时,源计算设备可以先将计算模型的模型信息发送给当前计算设备,当前计算设备使用推理加速资源载入相应的计算模型;接着,源计算设备向当前计算设备发送待推理数据,当前计算设备在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以无缝转接到远程具有推理加速资源的设备上进行,且源计算设备和当前计算设备之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例七
参照图8,示出了根据本发明实施例七的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图8所示,该电子设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、以及通信总线708。
其中:
处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。
通信接口704,用于与其它电子设备或服务器进行通信。
处理器702,用于执行程序710,具体可以执行上述实施例三或四中的推理方法实施例中的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702执行以下操作:获取进行推理的计算模型的模型信息,并将所述模型信息发送至目标计算设备,以指示所述目标计算设备使用所述目标计算设备中设置的推理加速资源载入所述模型信息指示的计算模型;获取待推理数据,并将所述待推理数据发送至所述目标计算设备,以指示所述目标计算设备使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理;接收所述目标计算设备反馈的所述推理处理的结果。
在一种可选的实施方式中,程序710还用于使得处理器702在若确定所述目标计算设备中不存在所述计算模型时,则将所述计算模型发送至所述目标计算设备。
在一种可选的实施方式中,所述计算模型的模型信息为所述计算模型的标识信息或校验信息;程序710还用于使得处理器702在所述若确定所述目标计算设备中不存在所述计算模型时,则将所述计算模型发送至所述目标计算设备之前,通过所述标识信息或所述校验信息,确定所述目标计算设备中是否存在所述计算模型。
在一种可选的实施方式中,程序710还用于使得处理器702在获取待推理数据,并将所述待推理数据发送至所述目标计算设备时:获取请求所述计算模型对所述待推理数据进行推理处理的推理请求,并对所述推理请求进行语义分析;根据语义分析结果确定待调用的所述计算模型中的处理函数,将所述处理函数的信息和所述待推理数据发送给所述目标计算设备,以指示所述目标计算设备通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
在一种可选的实施方式中,所述处理函数的信息为所述处理函数的API接口信息。
程序710中各步骤的具体实现可以参见上述相应的推理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例的电子设备,将推理处理部署在不同的计算设备中,其中,目标计算设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而执行本实施例的推理方法的当前电子设备则可以负责推理处理之前和之后的数据处理。在进行推理时,当前电子设备可以先将计算模型的模型信息发送给目标计算设备,目标计算设备使用推理加速资源载入相应的计算模型;接着,当前电子设备向目标计算设备发送待推理数据,目标计算设备在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以无缝转接到远程具有推理加速资源的目标计算设备上进行,且当前电子设备和目标计算设备之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
实施例八
参照图9,示出了根据本发明实施例八的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图9所示,该电子设备可以包括:处理器(processor)802、通信接口(Communications Interface)804、存储器(memory)806、以及通信总线808。
其中:
处理器802、通信接口804、以及存储器806通过通信总线808完成相互间的通信。
通信接口804,用于与其它电子设备或服务器进行通信。
处理器802,用于执行程序810,具体可以执行上述实施例五或六中的推理方法实施例中的相关步骤。
具体地,程序810可以包括程序代码,该程序代码包括计算机操作指令。
处理器802可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器806,用于存放程序810。存储器806可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序810具体可以用于使得处理器802执行以下操作:获取源计算设备发送的用于推理的计算模型的模型信息,通过推理加速资源载入所述模型信息指示的计算模型;获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理;向所述源计算设备反馈所述推理处理的结果。
在一种可选的实施方式中,所述计算模型的模型信息为所述计算模型的标识信息或校验信息;程序810还用于使得处理器802在获取源计算设备发送的用于推理的计算模型的模型信息,通过推理加速资源载入所述模型信息指示的计算模型时:根据所述标识信息或所述校验信息,确定本地不存在所述计算模型,则向所述源计算设备请求所述计算模型,并在从所述源计算设备获取所述计算模型后,通过所述推理加速资源载入所述计算模型。
在一种可选的实施方式中,程序810还用于使得处理器802在获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理时:获取源计算设备发送的待推理数据和待调用的所述计算模型中的处理函数的信息,通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
在一种可选的实施方式中,所述处理函数的信息为所述处理函数的API接口信息。
在一种可选的实施方式中,所述推理加速资源包括一种或多种类型;当所述推理加速资源包括多种类型时,不同类型的推理加速资源具有不同的使用优先级;程序810还用于使得处理器802在通过推理加速资源载入所述模型信息指示的计算模型时:根据预设的负载均衡规则和多种类型的所述推理加速资源的优先级,使用推理加速资源载入所述模型信息指示的计算模型。
程序810中各步骤的具体实现可以参见上述相应的推理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例的电子设备,将推理处理部署在不同的计算设备中,其中,执行本实施例的推理方法的当前电子设备中设置有推理加速资源,可以通过计算模型进行主要的推理处理,而源计算设备则可以负责推理处理之前和之后的数据处理。在进行推理时,源计算设备可以先将计算模型的模型信息发送给当前电子设备,当前电子设备使用推理加速资源载入相应的计算模型;接着,源计算设备向当前电子设备发送待推理数据,当前电子设备在接收到待推理数据后,即可通过载入的计算模型进行推理处理。由此,实现了推理所使用的计算资源的解耦,通过计算模型进行的推理处理和推理处理之外的数据处理可以通过不同的计算设备实现,其中一台配置有推理加速资源如GPU即可,无需一台电子设备上同时具有CPU和GPU,有效解决了因现有异构计算机器的CPU/GPU的规格固定,而使涉及推理的应用的部署受限,导致无法满足广泛的推理场景需求的问题。
此外,对于用户来说,其在使用涉及推理的应用时,推理计算可以无缝转接到远程具有推理加速资源的设备上进行,且源计算设备和当前电子设备之间的交互对于用户是无感知的,因此,可以保证涉及推理的应用的业务逻辑和用户进行推理业务的使用习惯不变,低成本地实现了推理且提升了用户使用体验。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的推理方法。此外,当通用计算机访问用于实现在此示出的推理方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的推理方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (20)
1.一种推理系统,其特征在于,包括相互连接的第一计算设备和第二计算设备,其中,所述第一计算设备中设置有推理客户端,所述第二计算设备中设置有推理加速资源以及推理服务端;
其中:
所述推理客户端用于获取进行推理的计算模型的模型信息和待推理数据,并分别将所述模型信息和所述待推理数据发送至所述第二计算设备中的推理服务端;
所述推理服务端用于通过推理加速资源载入并调用所述模型信息指示的计算模型,通过所述计算模型对所述待推理数据进行推理处理并向所述推理客户端反馈所述推理处理的结果。
2.根据权利要求1所述的推理系统,其特征在于,所述推理客户端还用于在确定所述第二计算设备中不存在所述计算模型时,将所述计算模型发送至所述推理服务端。
3.根据权利要求2所述的推理系统,其特征在于,所述计算模型的模型信息为所述计算模型的标识信息或校验信息;
所述推理服务端还用于通过所述标识信息或所述校验信息,确定所述第二计算设备中是否存在所述计算模型,并将确定结果返回给所述推理客户端。
4.根据权利要求1所述的推理系统,其特征在于,
所述推理客户端还用于获取请求所述计算模型对所述待推理数据进行推理处理的推理请求,并对所述推理请求进行语义分析,根据语义分析结果确定待调用的所述计算模型中的处理函数,将所述处理函数的信息发送给所述推理服务端;
所述推理服务端在所述通过所述计算模型对所述待推理数据进行推理处理时,通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
5.根据权利要求4所述的推理系统,其特征在于,所述处理函数的信息为所述处理函数的AP I接口信息。
6.根据权利要求1所述的推理系统,其特征在于,所述第二计算设备中设置有一种或多种类型的推理加速资源;
当所述推理加速资源包括多种类型时,不同类型的推理加速资源具有不同的使用优先级;
所述推理服务端根据预设的负载均衡规则和多种类型的所述推理加速资源的优先级,使用推理加速资源。
7.根据权利要求1-6任一项所述的推理系统,其特征在于,所述第一计算设备和所述第二计算设备通过弹性网络相互连接。
8.根据权利要求1-6任一项所述的推理系统,其特征在于,所述推理客户端为嵌入所述第一计算设备中的深度学习框架内部的组件,或者,所述推理客户端为可被所述深度学习框架调用的可调用文件。
9.一种推理方法,其特征在于,所述方法包括:
获取进行推理的计算模型的模型信息,并将所述模型信息发送至目标计算设备,以指示所述目标计算设备使用所述目标计算设备中设置的推理加速资源载入所述模型信息指示的计算模型;
获取待推理数据,并将所述待推理数据发送至所述目标计算设备,以指示所述目标计算设备使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理;
接收所述目标计算设备反馈的所述推理处理的结果。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若确定所述目标计算设备中不存在所述计算模型时,则将所述计算模型发送至所述目标计算设备。
11.根据权利要求10所述的方法,其特征在于,所述计算模型的模型信息为所述计算模型的标识信息或校验信息;
在所述若确定所述目标计算设备中不存在所述计算模型时,则将所述计算模型发送至所述目标计算设备之前,所述方法还包括:通过所述标识信息或所述校验信息,确定所述目标计算设备中是否存在所述计算模型。
12.根据权利要求9所述的方法,其特征在于,所述获取待推理数据,并将所述待推理数据发送至所述目标计算设备,包括:
获取请求所述计算模型对所述待推理数据进行推理处理的推理请求,并对所述推理请求进行语义分析;
根据语义分析结果确定待调用的所述计算模型中的处理函数,将所述处理函数的信息和所述待推理数据发送给所述目标计算设备,以指示所述目标计算设备通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
13.根据权利要求12所述的方法,其特征在于,所述处理函数的信息为所述处理函数的AP I接口信息。
14.一种推理方法,其特征在于,所述方法包括:
获取源计算设备发送的用于推理的计算模型的模型信息,通过推理加速资源载入所述模型信息指示的计算模型;
获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理;
向所述源计算设备反馈所述推理处理的结果。
15.根据权利要求14所述的方法,其特征在于,所述计算模型的模型信息为所述计算模型的标识信息或校验信息;
所述获取源计算设备发送的用于推理的计算模型的模型信息,通过推理加速资源载入所述模型信息指示的计算模型,包括:
根据所述标识信息或所述校验信息,确定本地不存在所述计算模型,则向所述源计算设备请求所述计算模型,并在从所述源计算设备获取所述计算模型后,通过所述推理加速资源载入所述计算模型。
16.根据权利要求14所述的方法,其特征在于,所述获取所述源计算设备发送的待推理数据,使用推理加速资源调用载入的所述计算模型,通过所述计算模型对所述待推理数据进行推理处理,包括:
获取源计算设备发送的待推理数据和待调用的所述计算模型中的处理函数的信息,通过调用载入的所述计算模型中所述处理函数的信息指示的处理函数,对所述待推理数据进行推理处理。
17.根据权利要求16所述的方法,其特征在于,所述处理函数的信息为所述处理函数的AP I接口信息。
18.根据权利要求14所述的方法,其特征在于,所述推理加速资源包括一种或多种类型;
当所述推理加速资源包括多种类型时,不同类型的推理加速资源具有不同的使用优先级;
所述通过推理加速资源载入所述模型信息指示的计算模型包括:根据预设的负载均衡规则和多种类型的所述推理加速资源的优先级,使用推理加速资源载入所述模型信息指示的计算模型。
19.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指示,所述可执行指示使所述处理器执行如权利要求9-13中任一项所述的推理方法对应的操作,或者,所述可执行指示使所述处理器执行如权利要求14-18中任一项所述的推理方法对应的操作。
20.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求9-13中任一项所述的推理方法;或者,实现如权利要求14-18中任一项所述的推理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911089253.XA CN112784989B (zh) | 2019-11-08 | 2019-11-08 | 推理系统、推理方法、电子设备及计算机存储介质 |
TW109128235A TW202119255A (zh) | 2019-11-08 | 2020-08-19 | 推理系統、推理方法、電子設備及電腦儲存媒體 |
PCT/CN2020/127026 WO2021088964A1 (zh) | 2019-11-08 | 2020-11-06 | 推理系统、推理方法、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911089253.XA CN112784989B (zh) | 2019-11-08 | 2019-11-08 | 推理系统、推理方法、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784989A true CN112784989A (zh) | 2021-05-11 |
CN112784989B CN112784989B (zh) | 2024-05-03 |
Family
ID=75748575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911089253.XA Active CN112784989B (zh) | 2019-11-08 | 2019-11-08 | 推理系统、推理方法、电子设备及计算机存储介质 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN112784989B (zh) |
TW (1) | TW202119255A (zh) |
WO (1) | WO2021088964A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344208A (zh) * | 2021-06-25 | 2021-09-03 | 中国电信股份有限公司 | 数据推理方法、装置及系统 |
CN114997401A (zh) * | 2022-08-03 | 2022-09-02 | 腾讯科技(深圳)有限公司 | 自适应推理加速方法、装置、计算机设备和存储介质 |
WO2023083026A1 (zh) * | 2021-11-12 | 2023-05-19 | 华为技术有限公司 | 一种数据采集方法、系统以及相关装置 |
CN116402141A (zh) * | 2023-06-09 | 2023-07-07 | 太初(无锡)电子科技有限公司 | 一种模型推理方法、装置、电子设备及存储介质 |
CN116723191A (zh) * | 2023-08-07 | 2023-09-08 | 深圳鲲云信息科技有限公司 | 利用加速装置执行数据流加速计算的方法和系统 |
WO2024000605A1 (zh) * | 2022-07-01 | 2024-01-04 | 北京小米移动软件有限公司 | 一种ai模型推理的方法及其装置 |
CN117454993A (zh) * | 2023-11-20 | 2024-01-26 | 汇智睿晟(杭州)信息技术有限公司 | 一种基于数据处理的自动推理平台 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114154644A (zh) * | 2021-11-30 | 2022-03-08 | 北京航空航天大学 | 一种机器学习数据处理方法及装置 |
TWI832279B (zh) * | 2022-06-07 | 2024-02-11 | 宏碁股份有限公司 | 人工智慧模型運算加速系統及人工智慧模型運算加速方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120000367A (ko) * | 2010-06-25 | 2012-01-02 | 건국대학교 산학협력단 | 사용자 중심의 상황 인지 시스템, 이에 적합한 상황 정보 변환 방법 및 사례 기반 추론 방법 |
CN104020983A (zh) * | 2014-06-16 | 2014-09-03 | 上海大学 | 一种基于OpenCL的KNN-GPU加速方法 |
CN105808568A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 一种上下文分布式推理方法和装置 |
CN108171117A (zh) * | 2017-12-05 | 2018-06-15 | 南京南瑞信息通信科技有限公司 | 基于多核异构并行计算的电力人工智能视觉分析系统 |
CN109145168A (zh) * | 2018-07-11 | 2019-01-04 | 广州极天信息技术股份有限公司 | 一种专家服务机器人云平台 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及系统 |
CN110199274A (zh) * | 2016-12-02 | 2019-09-03 | 微软技术许可有限责任公司 | 用于自动化查询回答生成的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383835A (zh) * | 2016-08-29 | 2017-02-08 | 华东师范大学 | 一种基于形式语义推理和深度学习的自然语言知识挖掘系统 |
-
2019
- 2019-11-08 CN CN201911089253.XA patent/CN112784989B/zh active Active
-
2020
- 2020-08-19 TW TW109128235A patent/TW202119255A/zh unknown
- 2020-11-06 WO PCT/CN2020/127026 patent/WO2021088964A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120000367A (ko) * | 2010-06-25 | 2012-01-02 | 건국대학교 산학협력단 | 사용자 중심의 상황 인지 시스템, 이에 적합한 상황 정보 변환 방법 및 사례 기반 추론 방법 |
CN104020983A (zh) * | 2014-06-16 | 2014-09-03 | 上海大学 | 一种基于OpenCL的KNN-GPU加速方法 |
CN105808568A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 一种上下文分布式推理方法和装置 |
CN110199274A (zh) * | 2016-12-02 | 2019-09-03 | 微软技术许可有限责任公司 | 用于自动化查询回答生成的系统和方法 |
CN108171117A (zh) * | 2017-12-05 | 2018-06-15 | 南京南瑞信息通信科技有限公司 | 基于多核异构并行计算的电力人工智能视觉分析系统 |
CN109145168A (zh) * | 2018-07-11 | 2019-01-04 | 广州极天信息技术股份有限公司 | 一种专家服务机器人云平台 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及系统 |
Non-Patent Citations (1)
Title |
---|
李从东;谢天;汤勇力;李浩民;: "面向云制造服务的语义X列表知识表达与推理体系", 计算机集成制造系统, no. 07, 15 July 2012 (2012-07-15) * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344208A (zh) * | 2021-06-25 | 2021-09-03 | 中国电信股份有限公司 | 数据推理方法、装置及系统 |
CN113344208B (zh) * | 2021-06-25 | 2023-04-07 | 中国电信股份有限公司 | 数据推理方法、装置及系统 |
WO2023083026A1 (zh) * | 2021-11-12 | 2023-05-19 | 华为技术有限公司 | 一种数据采集方法、系统以及相关装置 |
WO2024000605A1 (zh) * | 2022-07-01 | 2024-01-04 | 北京小米移动软件有限公司 | 一种ai模型推理的方法及其装置 |
CN114997401A (zh) * | 2022-08-03 | 2022-09-02 | 腾讯科技(深圳)有限公司 | 自适应推理加速方法、装置、计算机设备和存储介质 |
CN114997401B (zh) * | 2022-08-03 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 自适应推理加速方法、装置、计算机设备和存储介质 |
CN116402141A (zh) * | 2023-06-09 | 2023-07-07 | 太初(无锡)电子科技有限公司 | 一种模型推理方法、装置、电子设备及存储介质 |
CN116402141B (zh) * | 2023-06-09 | 2023-09-05 | 太初(无锡)电子科技有限公司 | 一种模型推理方法、装置、电子设备及存储介质 |
CN116723191A (zh) * | 2023-08-07 | 2023-09-08 | 深圳鲲云信息科技有限公司 | 利用加速装置执行数据流加速计算的方法和系统 |
CN116723191B (zh) * | 2023-08-07 | 2023-11-10 | 深圳鲲云信息科技有限公司 | 利用加速装置执行数据流加速计算的方法和系统 |
CN117454993A (zh) * | 2023-11-20 | 2024-01-26 | 汇智睿晟(杭州)信息技术有限公司 | 一种基于数据处理的自动推理平台 |
Also Published As
Publication number | Publication date |
---|---|
WO2021088964A1 (zh) | 2021-05-14 |
TW202119255A (zh) | 2021-05-16 |
CN112784989B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112784989A (zh) | 推理系统、推理方法、电子设备及计算机存储介质 | |
WO2023185166A1 (zh) | 服务调用方法、装置、设备及存储介质 | |
CN111858041B (zh) | 一种数据处理方法及服务器 | |
CN111490946A (zh) | 基于OpenCL框架的FPGA连接实现方法及装置 | |
CN114726906B (zh) | 设备交互方法、装置、电子设备和存储介质 | |
CN115358404A (zh) | 基于机器学习模型推理的数据处理方法、装置及设备 | |
CN114285906B (zh) | 报文处理方法、装置、电子设备及存储介质 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114363414A (zh) | 一种调度计算实例的方法、装置及系统 | |
CN107797845B (zh) | 用于访问容器的方法和装置 | |
CN110309462B (zh) | 数据展示方法及系统 | |
CN111580883A (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
CN109005060B (zh) | 一种基于层级化高度异构分布式系统的深度学习应用优化框架 | |
CN108304104B (zh) | 一种数据获取方法及其设备、存储介质、终端 | |
CN111783643B (zh) | 人脸识别的方法、装置、电子设备及存储介质 | |
CN114579054A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN106776947A (zh) | 资源获取方法、装置及终端 | |
CN106210031A (zh) | 业务执行方法、装置、客户端及服务器 | |
CN111866159A (zh) | 人工智能服务的调用方法、系统、设备和存储介质 | |
CN111401560A (zh) | 推理任务的处理方法、设备和存储介质 | |
CN114153312B (zh) | Vpa控制方法、装置、设备、存储介质及程序产品 | |
US20170310766A1 (en) | Service state determining method for service processing device and scheduling device | |
KR20240071249A (ko) | 증강 현실 기반의 통신 시스템 및 방법과 이를 수행하기 위한 컴퓨팅 장치 | |
CN113419865B (zh) | 云资源处理方法、相关装置及计算机程序产品 | |
CN113535187B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40051245 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |