CN112036558A - 模型管理方法、电子设备和介质 - Google Patents
模型管理方法、电子设备和介质 Download PDFInfo
- Publication number
- CN112036558A CN112036558A CN201910483980.8A CN201910483980A CN112036558A CN 112036558 A CN112036558 A CN 112036558A CN 201910483980 A CN201910483980 A CN 201910483980A CN 112036558 A CN112036558 A CN 112036558A
- Authority
- CN
- China
- Prior art keywords
- hardware
- model
- information
- request
- server
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 31
- 238000000034 method Methods 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000003044 adaptive effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种模型管理方法,应用于服务端,所述方法包括接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息,从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型,以及向所述用户端发送所述目标模型。本公开还提供了一种电子设备以及一种计算机可读存储介质。
Description
技术领域
本公开涉及一种模型管理方法、电子设备和介质。
背景技术
深度学习作为近年爆发的人工智能技术,使用了多层神经网络层(卷积、循环神经网络等),计算量大,但是精度远远高于之前的人工特征提取的图像算法。深度学习可以分为训练和推理2个部分,传统深度学习的推理和训练框架是保持一致的,比如使用caffe训练,则用caffe去推理,使用tensorflow训练,则使用tensorflow推理。但是这样对硬件厂商来说可能是低效的,因为硬件厂商希望根据自己的硬件特性,去实现一些加速的推理框架。
目前已知已经有大量硬件厂商推出了推理加速框架。他们的实现方式在于把流行的框架模型转换到自己的私有模型(原因是硬件不能直接支持所有通用框架的优化),然后通过自己的加速推理SDK去推理。比如intel的openvino,能够支持intel cpu、gpu、嵌入式设备movidius的推理加速。NVIDIA的tensorrt,支持把caffe、tensorflow、onnx转换成tensorrt的模型。
以上各种的推理加速平台给设备端推理带来了很大的工程难点。在开发一个智能应用(包含深度学习推理的应用)时,上层应用是直接去调用推理API的,这大大限制了应用本身的可扩展性和兼容性。
发明内容
本公开的一个方面提供了一种模型管理方法,应用于服务端,所述方法包括接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息,从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型,以及向所述用户端发送所述目标模型。
可选地,在接收调用请求之前,所述方法还包括响应于获得注册请求,将待注册的模型分别转换为适配于不同硬件的多个模型,并为所述待注册的模型分配标识信息。
可选地,所述从所述识别信息对应的多个模型中确定与所述硬件信息适配的目标模型包括在所述硬件信息表明用户端具有多个硬件时,基于所述多个硬件的处理代价和负载,从所述多个硬件中确定一个硬件作为目标硬件,以及从所述识别信息对应的多个模型中确定与所述目标硬件适配的目标模型。
可选地,所述方法还包括获得委托请求,基于所述委托请求,接收待处理数据,通过所述目标模型处理所述待处理数据,得到处理结果,以及发送所述处理结果。
可选地,所述调用请求还包括校验信息,所述方法还包括在所述校验信息验证失败的情况下,拒绝发送所述目标模型。
本公开的另一个方面提供了一种模型管理方法,应用于用户端,所述方法包括向服务端发送调用请求,所述调用请求包括所述用户端的硬件信息和被调用的模型的识别信息,以及接收来自服务端的目标模型,所述目标模型包括与所述识别信息对应的多个模型中适配所述硬件信息的模型。
可选地,所述方法还包括向服务端发送注册请求,用于将所述用户端的模型注册到服务端。
可选地,所述方法还包括发送委托请求,用于委托服务端处理待处理数据,以及接收处理结果。
可选地,所述调用请求还包括校验信息,所述目标模型的数据被划分为第一部分和第二部分,所述方法还包括至多缓存所述第一部分的数据而不缓存所述第二部分的数据。
本公开的另一个方面提供了一种模型管理装置,包括第一接收模块、确定模块以及第一发送模块。第一接收模块,用于接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息。确定模块,用于从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型。第一发送模块,用于向所述用户端发送所述目标模型。
可选地,所述装置还包括第一注册模块,用于响应于获得注册请求,将待注册的模型分别转换为适配于不同硬件的多个模型,并为所述待注册的模型分配标识信息。
可选地,所述确定模块包括第一确定子模块和第二确定子模块。第一确定子模块,用于在所述硬件信息表明用户端具有多个硬件时,基于所述多个硬件的处理代价和负载,从所述多个硬件中确定一个硬件作为目标硬件。第二确定子模块,用于从所述识别信息对应的多个模型中确定与所述目标硬件适配的目标模型。
可选地,所述装置还包括获得模块、第二接收模块、处理模块以及第二发送模块。获得模块,用于获得委托请求。第二接收模块,用于基于所述委托请求,接收待处理数据。处理模块,用于通过所述目标模型处理所述待处理数据,得到处理结果。第二发送模块,用于发送所述处理结果。
可选地,所述调用请求还包括校验信息,所述装置还包括拒绝模块,用于在所述校验信息验证失败的情况下,拒绝发送所述目标模型。
本公开的另一个方面提供了一种模型管理装置,包括第三发送模块和第三接收模块。第三发送模块,用于向服务端发送调用请求,所述调用请求包括所述用户端的硬件信息和被调用的模型的识别信息。第三接收模块,用于接收来自服务端的目标模型,所述目标模型包括与所述识别信息对应的多个模型中适配所述硬件信息的模型。
可选地,所述装置还包括第二注册模块,用于向服务端发送注册请求,用于将所述用户端的模型注册到服务端。
可选地,所述装置还包括第四发送模块和第四接收模块。第四发送模块,用于发送委托请求,用于委托服务端处理待处理数据。第四接收模块,用于接收处理结果。
可选地,所述调用请求还包括校验信息,所述目标模型的数据被划分为第一部分和第二部分,所述装置还包括缓存模块,用于至多缓存所述第一部分的数据而不缓存所述第二部分的数据。
本公开的另一个方面提供了一种电子设备,包括处理器以及存储器。所述存储器上存储有计算机程序,所述计算机程序被处理器执行时使得处理器执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开实施例的方法通过在服务端调用模型的标识信息而不是直接调用某个具体模型,上层应用可以做到硬件无关性,服务端可以按照调用方的硬件信息为其选择相应的优化模型。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的模型管理方法的应用场景的示意图;
图2示意性示出了根据本公开实施例的模型管理方法的流程图;
图3A示意性示出了根据本公开实施例的从所述识别信息对应的多个模型中确定与所述硬件信息适配的目标模型的流程图;
图3B示意性示出了根据本公开实施例的接受委托处理数据的流程图;
图4示意性示出了根据本公开另一实施例的模型管理方法的流程图;
图5示意性示出了根据本公开实施例的模型管理装置的框图;
图6示意性示出了根据本公开另一实施例的模型管理装置的框图;以及
图7示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种模型管理方法,应用于服务端,所述方法包括接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息,从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型,以及向所述用户端发送所述目标模型。
图1示意性示出了根据本公开实施例的模型管理方法的应用场景的示意图。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括用户端101、102、103,网络104和服务端105。网络104用以在用户端101、102、103和服务端105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用用户端101、102、103通过网络104与服务端105交互,以接收或发送消息等。用户端101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
用户端101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务端105可以是提供各种服务的服务端,例如对用户利用用户端101、102、103所浏览的网站提供支持的后台管理服务端(仅为示例)。后台管理服务端可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给用户端。
根据本公开实施例,用户端101、102、103可以将模型注册到服务端105,也可以在调用模型时从服务端105获得该模型。本公开实施例的方法实现了用户端101、102、103方便地从服务端105调用模型。
需要说明的是,以下图2、图3A和图3B所描述的方法例如可以由服务端105执行,相应地,以下图5所描述的模型管理装置一般可以设置于服务端105中。以下图2、图3A和图3B所描述的方法也可以由不同于服务端105且能够与用户端101、102、103和/或服务端105通信的服务端执行。相应地,以下图5所描述的模型管理装置也可以设置于不同于服务端105且能够与用户端101、102、103和/或服务端105通信的服务端中。
以下图4所描述的方法例如可以由用户端101、102、103执行,相应地,以下图6所描述的模型管理装置一般可以设置于用户端101、102、103中。以下图4所描述的方法也可以由不同于用户端101、102、103且能够与用户端101、102、103和/或服务端105通信的用户端执行。相应地,以下图6所描述的模型管理装置也可以设置于不同于用户端101、102、103且能够与用户端101、102、103和/或服务端105通信的用户端中。
应该理解,图1中的用户端、网络和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的用户端、网络和服务端。
图2示意性示出了根据本公开实施例的模型管理方法的流程图。
如图2所示,该方法应用于服务端,包括操作S210~S230。
在操作S210,接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息。
在操作S220,从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型。
在操作S230,向所述用户端发送所述目标模型。
根据本公开实施例,以上方法可以实现为一个统一推理抽象层,作为一个多模型的平台,用于注册模型并提供模型的调用。
例如,用户端的上层应用例如需要调用某面部检测模型,则发送该面部检测模型的标识信息,例如通用唯一识别码(UUID,Universally Unique Identifier),通过该标识信息调用模型。与此不同的是,相关技术必须调用某个具体的模型,在调用时必须提供存放模型的明确的地址信息,才能完成调用。
其中,在发送调用请求时,还可以发送用户端的硬件信息,包括硬件类型、硬件厂商等等。可选地,该硬件信息可以是单独记载的信息,也可以是能够反映不同硬件类型或硬件厂商等硬件信息的任何特征信息,例如调用请求的形式中能够用于区分不同硬件信息的形式特征信息。
根据本公开实施例,服务端在接收到调用请求后,根据标识信息确定用户端需要调用的模型,例如,某面部检测模型。
根据本公开实施例,在接收调用请求之前,所述方法还包括响应于获得注册请求,将待注册的模型分别转换为适配于不同硬件的多个模型,并为所述待注册的模型分配标识信息。
例如,某用户端A可以向服务端提交模型X0,请求将X0注册到服务端。该模型X0可以是已经在用户端A的硬件上进行了优化的模型,但如果将X0运行在其他硬件上,则不能实现最佳的优化,甚至存在不兼容的问题。本公开实施例的服务端在接收到注册请求后,可以利用不同硬件厂商提供的转换组件将模型X0转换为适用于多个硬件平台的多个模型X1,X2,X3,……,Xn,并为这一组模型分配一个标识信息,完成模型的注册。
这样,服务端在根据标识信息确定用户端需要调用的模型后,可以进一步根据用户端的硬件信息从多个模型中确定一个适合的模型作为目标模型返回给用户端。
本公开实施例的模型不再和具体硬件绑定,标识信息只对应用程序描述了一种能力,比如图像识别的能力、自然语言处理能力等。用户端的应用程序调用这种能力时,服务端会为其选择最适合当前硬件的模型文件,从而提高系统的兼容性。
图3A示意性示出了根据本公开实施例的从所述识别信息对应的多个模型中确定与所述硬件信息适配的目标模型的流程图。
如图3A所示,该方法包括操作S311~S312。
在操作S311,在所述硬件信息表明用户端具有多个硬件时,基于所述多个硬件的处理代价和负载,从所述多个硬件中确定一个硬件作为目标硬件。
在操作S312,从所述识别信息对应的多个模型中确定与所述目标硬件适配的目标模型。
根据本公开实施例,用户端可能有多个硬件,例如多个GPU和多个CPU,服务端可以存储有不同硬件运行相应模型的处理代价的信息,例如,对于同一标识信息的不同模型的调用,使用第一硬件完成处理的耗时为第二时长,使用第二硬件完成处理的耗时为第二时长,若第一时长小于第二时长,则第一硬件优先于第二硬件被使用,可以为用户端选择与第一硬件的硬件信息对应的模型。
根据本公开实施例,还可以基于不同硬件运行模型的处理任务产生的负载来选择相应的硬件。例如对于同一标识信息的不同模型的调用,使用第一硬件处理将对第一硬件产生第一百分比的负载,使用第二硬件处理将对第二硬件产生第二百分比的负载。若第一百分比小于第二百分比,则运行在第一硬件上对用户端产生的影响较小,第一硬件优先于第二硬件被使用,可以为用户端选择与第一硬件的硬件信息对应的模型。
传统的设计是将应用的调用固定在某一个硬件上,如果某一个用户端的该硬件的负载很高,则无法满足需要,但其他硬件处于闲置状态。
根据本公开实施例,用户端还可以在请求中提交表明多个硬件的当前实际负载情况的实际信息,服务端可以根据用户端的多个硬件的实际负载情况,为用户端选择适合运行硬件以及与硬件相对应的模型文件。例如,第一硬件处于几乎满负载的状态而第二硬件处于相对空闲的状态,服务端可以选择与第二硬件的硬件信息相对应的模型发送给用户端,使用户端通过第二硬件进行处理。
图3B示意性示出了根据本公开实施例的接受委托处理数据的流程图。
如图3B所示,该方法包括操作S321~S324。
在操作S321,获得委托请求。
在操作S322,基于所述委托请求,接收待处理数据。
在操作S323,通过所述目标模型处理所述待处理数据,得到处理结果。
在操作S324,发送所述处理结果。
根据本公开实施例,在用户端的硬件不足以很好地完成处理任务时,可以向服务端发送委托请求,请求将该调用在服务端执行,只将处理结果返回用户端。
传统的模型加密可以通过硬件加密实现。由于大部分硬件都是高度定制的设备,硬件的模型加密是和硬件高度相关的,因此传统的硬件加密的通用性较差。根据本公开实施例,所述调用请求还包括校验信息,所述方法还包括在所述校验信息验证失败的情况下,拒绝发送所述目标模型。本公开实施例的服务端还可以对模型进行加密,解决服务端模型加密的问题,防止数据外泄。
图4示意性示出了根据本公开另一实施例的模型管理方法的流程图。
如图4所示,该方法应用于用户端,包括操作S410和S420。
在操作S410,向服务端发送调用请求,所述调用请求包括所述用户端的硬件信息和被调用的模型的识别信息。
在操作S420,接收来自服务端的目标模型,所述目标模型包括与所述识别信息对应的多个模型中适配所述硬件信息的模型。
根据本公开实施例,所述方法还包括向服务端发送注册请求,用于将所述用户端的模型注册到服务端。
根据本公开实施例,所述调用请求还可以包括多个硬件的实际负载信息。
根据本公开实施例,所述方法还包括发送委托请求,用于委托服务端处理待处理数据,以及接收处理结果。例如,在用户端的硬件不足以很好地完成处理任务时,可以向服务端发送委托请求,请求将该调用在服务端执行,只将处理结果返回用户端。
根据本公开实施例,所述调用请求还包括校验信息,所述目标模型的数据被划分为第一部分和第二部分,所述方法还包括至多缓存所述第一部分的数据而不缓存所述第二部分的数据。根据本公开实施例,用户端可以对接收的模型进行部分地缓存,以解决在多次调用时每次调用都需要完整传输模型导致效率低下的问题。然而,本公开实施例的方法限制了每次只能缓存部分数据而非模型的全部数据,由于用户端的模型在不受到保护的情况下可能发生外泄,而仅缓存了模型的第一部分不会导致模型外泄,每次使用时必须通过验证信息从服务端获得第二部分,起到了对模型的保护。
本公开实施例的方法通过在服务端调用模型的标识信息而不是直接调用某个具体模型,上层应用可以做到硬件无关性,服务端可以按照调用方的硬件信息为其选择相应的优化模型。
图5示意性示出了根据本公开实施例的模型管理装置500的框图。
如图5所示,模型管理装置500包括第一接收模块510、确定模块520以及第一发送模块530。该模型管理装置500可以执行上文参考图2、图3A和图3B描述的各种方法。
第一接收模块510,例如执行参考上文图2描述的操作S210,用于接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息。
确定模块520,例如执行参考上文图2描述的操作S220,用于从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型。
第一发送模块530,例如执行参考上文图2描述的操作S230,用于向所述用户端发送所述目标模型。
根据本公开实施例,该装置500还可以包括第一注册模块,用于响应于获得注册请求,将待注册的模型分别转换为适配于不同硬件的多个模型,并为所述待注册的模型分配标识信息。
根据本公开实施例,该确定模块520可以包括第一确定子模块和第二确定子模块。
第一确定子模块,例如执行参考上文图3A描述的操作S311,用于在所述硬件信息表明用户端具有多个硬件时,基于所述多个硬件的处理代价和负载,从所述多个硬件中确定一个硬件作为目标硬件。
第二确定子模块,例如执行参考上文图3A描述的操作S312,用于从所述识别信息对应的多个模型中确定与所述目标硬件适配的目标模型。
根据本公开实施例,该装置500还可以包括获得模块、第二接收模块、处理模块以及第二发送模块。
获得模块,例如执行参考上文图3B描述的操作S321,用于获得委托请求。
第二接收模块,例如执行参考上文图3B描述的操作S322,用于基于所述委托请求,接收待处理数据。
处理模块,例如执行参考上文图3B描述的操作S323,用于通过所述目标模型处理所述待处理数据,得到处理结果。
第二发送模块,例如执行参考上文图3B描述的操作S324,用于发送所述处理结果。
根据本公开实施例,所述调用请求还包括校验信息,该装置500还可以包括拒绝模块,用于在所述校验信息验证失败的情况下,拒绝发送所述目标模型。
图6示意性示出了根据本公开实施例的模型管理装置600的框图。
如图6所示,该模型管理装置600包括第三发送模块610和第三接收模块620。该模型管理装置600可以执行上文参考图4描述的各种方法。
第三发送模块,例如执行参考上文图4描述的操作S410,用于向服务端发送调用请求,所述调用请求包括所述用户端的硬件信息和被调用的模型的识别信息。
第三接收模块,例如执行参考上文图4描述的操作S420,用于接收来自服务端的目标模型,所述目标模型包括与所述识别信息对应的多个模型中适配所述硬件信息的模型。
根据本公开实施例,该装置600还可以包括第二注册模块,用于向服务端发送注册请求,用于将所述用户端的模型注册到服务端。
根据本公开实施例,该装置600还可以包括第四发送模块和第四接收模块。第四发送模块,用于发送委托请求,用于委托服务端处理待处理数据。第四接收模块,用于接收处理结果。
根据本公开实施例,所述调用请求还包括校验信息,所述目标模型的数据被划分为第一部分和第二部分,该装置600还可以包括缓存模块,用于至多缓存所述第一部分的数据而不缓存所述第二部分的数据。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或同件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一接收模块510、确定模块520、第一发送模块530、第一注册模块、第一确定子模块、第二确定子模块、获得模块、第二接收模块、处理模块、第二发送模块以及拒绝模块中的多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块510、确定模块520、第一发送模块530、第一注册模块、第一确定子模块、第二确定子模块、获得模块、第二接收模块、处理模块、第二发送模块以及拒绝模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块510、确定模块520、第一发送模块530、第一注册模块、第一确定子模块、第二确定子模块、获得模块、第二接收模块、处理模块、第二发送模块以及拒绝模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
又如,第三发送模块610、第三接收模块620、第二注册模块、第四发送模块、第四接收模块以及缓存模块中的多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第三发送模块610、第三接收模块620、第二注册模块、第四发送模块、第四接收模块以及缓存模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第三发送模块610、第三接收模块620、第二注册模块、第四发送模块、第四接收模块以及缓存模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。图7示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的计算机系统700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有系统700操作所需的各种程序和数据。处理器701、ROM 702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。系统700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可渎存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种模型管理方法,应用于服务端,所述方法包括:
接收来自用户端的调用请求,所述调用请求包括用户端的硬件信息和被调用的模型的标识信息;
从所述标识信息对应的多个模型中确定与所述硬件信息适配的目标模型;以及
向所述用户端发送所述目标模型。
2.根据权利要求1所述的方法,其中,在接收调用请求之前,所述方法还包括:
响应于获得注册请求,将待注册的模型分别转换为适配于不同硬件的多个模型,并为所述待注册的模型分配标识信息。
3.根据权利要求1所述的方法,其中,所述从所述识别信息对应的多个模型中确定与所述硬件信息适配的目标模型包括:
在所述硬件信息表明用户端具有多个硬件时,基于所述多个硬件的处理代价和负载,从所述多个硬件中确定一个硬件作为目标硬件;
从所述识别信息对应的多个模型中确定与所述目标硬件适配的目标模型。
4.根据权利要求1所述的方法,还包括:
获得委托请求;
基于所述委托请求,接收待处理数据;
通过所述目标模型处理所述待处理数据,得到处理结果;
发送所述处理结果。
5.根据权利要求1所述的方法,其中,所述调用请求还包括校验信息,所述方法还包括:
在所述校验信息验证失败的情况下,拒绝发送所述目标模型。
6.一种模型管理方法,应用于用户端,所述方法包括:
向服务端发送调用请求,所述调用请求包括所述用户端的硬件信息和被调用的模型的识别信息;以及
接收来自服务端的目标模型,所述目标模型包括与所述识别信息对应的多个模型中适配所述硬件信息的模型。
7.根据权利要求6所述的方法,还包括:
向服务端发送注册请求,用于将所述用户端的模型注册到服务端。
8.根据权利要求6所述的方法,还包括:
发送委托请求,用于委托服务端处理待处理数据;
接收处理结果。
9.根据权利要求6所述的方法,其中,所述调用请求还包括校验信息,所述目标模型的数据被划分为第一部分和第二部分,所述方法还包括:
至多缓存所述第一部分的数据而不缓存所述第二部分的数据。
10.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至9中任一项的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至9中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910483980.8A CN112036558A (zh) | 2019-06-04 | 2019-06-04 | 模型管理方法、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910483980.8A CN112036558A (zh) | 2019-06-04 | 2019-06-04 | 模型管理方法、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112036558A true CN112036558A (zh) | 2020-12-04 |
Family
ID=73576429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910483980.8A Pending CN112036558A (zh) | 2019-06-04 | 2019-06-04 | 模型管理方法、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112036558A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568740A (zh) * | 2021-07-16 | 2021-10-29 | 开放智能机器(上海)有限公司 | 基于联邦学习的模型聚合方法、系统、设备及介质 |
CN114596612A (zh) * | 2022-02-22 | 2022-06-07 | 平安科技(深圳)有限公司 | 人脸识别模型的配置方法、识别系统、计算机设备及介质 |
CN114662591A (zh) * | 2022-03-23 | 2022-06-24 | 北京百度网讯科技有限公司 | 模型安装方法、装置、电子设备、存储介质及产品 |
CN114969636A (zh) * | 2021-03-23 | 2022-08-30 | 华为技术有限公司 | 一种模型推荐的方法、装置和计算机设备 |
WO2022262856A1 (zh) * | 2021-06-18 | 2022-12-22 | 青岛小鸟看看科技有限公司 | 头戴显示设备的模型加载方法、装置及头戴显示设备 |
US11599338B2 (en) | 2021-06-18 | 2023-03-07 | Qingdao Pico Technology Co., Ltd. | Model loading method and apparatus for head-mounted display device, and head-mounted display device |
CN117576545A (zh) * | 2024-01-16 | 2024-02-20 | 成都同步新创科技股份有限公司 | 一种多算法全匹配接入适配器接入方法 |
WO2024230574A1 (zh) * | 2023-05-06 | 2024-11-14 | 维沃移动通信有限公司 | 模型处理、执行及注册方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7801771B1 (en) * | 2004-01-27 | 2010-09-21 | Amazon Technologies, Inc. | Providing configurable usage models for available services |
CN108829518A (zh) * | 2018-05-31 | 2018-11-16 | 北京百度网讯科技有限公司 | 用于推送信息的方法和装置 |
CN109542641A (zh) * | 2018-11-14 | 2019-03-29 | 中国联合网络通信集团有限公司 | 服务调用方法、装置及系统 |
CN109615081A (zh) * | 2018-09-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种模型预测系统及方法 |
-
2019
- 2019-06-04 CN CN201910483980.8A patent/CN112036558A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7801771B1 (en) * | 2004-01-27 | 2010-09-21 | Amazon Technologies, Inc. | Providing configurable usage models for available services |
CN108829518A (zh) * | 2018-05-31 | 2018-11-16 | 北京百度网讯科技有限公司 | 用于推送信息的方法和装置 |
CN109615081A (zh) * | 2018-09-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种模型预测系统及方法 |
CN109542641A (zh) * | 2018-11-14 | 2019-03-29 | 中国联合网络通信集团有限公司 | 服务调用方法、装置及系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969636A (zh) * | 2021-03-23 | 2022-08-30 | 华为技术有限公司 | 一种模型推荐的方法、装置和计算机设备 |
CN114969636B (zh) * | 2021-03-23 | 2023-10-03 | 华为技术有限公司 | 一种模型推荐的方法、装置和计算机设备 |
WO2022262856A1 (zh) * | 2021-06-18 | 2022-12-22 | 青岛小鸟看看科技有限公司 | 头戴显示设备的模型加载方法、装置及头戴显示设备 |
US11599338B2 (en) | 2021-06-18 | 2023-03-07 | Qingdao Pico Technology Co., Ltd. | Model loading method and apparatus for head-mounted display device, and head-mounted display device |
CN113568740A (zh) * | 2021-07-16 | 2021-10-29 | 开放智能机器(上海)有限公司 | 基于联邦学习的模型聚合方法、系统、设备及介质 |
CN114596612A (zh) * | 2022-02-22 | 2022-06-07 | 平安科技(深圳)有限公司 | 人脸识别模型的配置方法、识别系统、计算机设备及介质 |
CN114596612B (zh) * | 2022-02-22 | 2024-10-18 | 平安科技(深圳)有限公司 | 人脸识别模型的配置方法、识别系统、计算机设备及介质 |
CN114662591A (zh) * | 2022-03-23 | 2022-06-24 | 北京百度网讯科技有限公司 | 模型安装方法、装置、电子设备、存储介质及产品 |
WO2024230574A1 (zh) * | 2023-05-06 | 2024-11-14 | 维沃移动通信有限公司 | 模型处理、执行及注册方法 |
CN117576545A (zh) * | 2024-01-16 | 2024-02-20 | 成都同步新创科技股份有限公司 | 一种多算法全匹配接入适配器接入方法 |
CN117576545B (zh) * | 2024-01-16 | 2024-04-05 | 成都同步新创科技股份有限公司 | 一种多算法全匹配接入适配器接入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112036558A (zh) | 模型管理方法、电子设备和介质 | |
US10860398B2 (en) | Adapting legacy endpoints to modern APIs | |
CN109298926B (zh) | 资源转移方入驻资源转移平台的方法、装置及电子设备 | |
US20190372900A1 (en) | Providing access to application program interfaces and internet of thing devices | |
US11281803B2 (en) | Obfuscating content based on requesting user roles | |
CN113805973B (zh) | 应用程序控制方法及装置、应用程序开发方法及装置 | |
US20220043898A1 (en) | Methods and apparatuses for acquiring information | |
CN112965916B (zh) | 页面测试方法、页面测试装置、电子设备及可读存储介质 | |
CN113434241A (zh) | 页面跳转方法及装置 | |
CN113010561B (zh) | 基于超级账本的数据获取方法、装置、计算机系统 | |
CA3059719A1 (en) | Payment processing method, device, medium and electronic device | |
CN113191889A (zh) | 风控配置方法、配置系统、电子设备及可读存储介质 | |
CN112988604A (zh) | 对象测试方法、测试系统、电子设备及可读存储介质 | |
CN113132400B (zh) | 业务处理方法、装置、计算机系统及存储介质 | |
CN111580882A (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
CN115170321A (zh) | 批量交易数据的处理方法和装置 | |
CN111580883B (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
CN112882895A (zh) | 健康检查方法、装置、计算机系统及可读存储介质 | |
CN114586007B (zh) | 用于维护应用内容的隐私的自动助理架构 | |
CN109840073B (zh) | 业务流程的实现方法和装置 | |
CN113542506B (zh) | 一种外呼方法、装置、设备和介质 | |
CN113296911B (zh) | 集群调用方法、集群调用装置、电子设备及可读存储介质 | |
CN113761877B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN113347250B (zh) | 数据访问方法、数据访问装置、电子设备及可读存储介质 | |
CN109829103A (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 |