CN114385268A - 算法模型的调用方法、装置、计算机设备和存储介质 - Google Patents
算法模型的调用方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114385268A CN114385268A CN202210040636.3A CN202210040636A CN114385268A CN 114385268 A CN114385268 A CN 114385268A CN 202210040636 A CN202210040636 A CN 202210040636A CN 114385268 A CN114385268 A CN 114385268A
- Authority
- CN
- China
- Prior art keywords
- calling
- algorithm model
- application
- application party
- resources
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 211
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 230000001360 synchronised effect Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及人工智能技术,提出了一种算法模型的调用方法、装置、计算机设备和存储介质,该方法包括:接收应用方的调用请求,调用请求携带待调用的目标算法模型的第一唯一标识、应用方的第二唯一标识和入参数据;根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源,其中,待分配资源包括系统用于调用算法模型的并发资源;若应用方当前可获取到待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果;将调用结果返回至给应用方。本申请通过对系统资源进行管理和限流策略,能有效实现客户端对系统集成的算法模型的调用,实现了算法模型的应用落地。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种算法模型的调用方法、装置、计算机设备和存储介质。
背景技术
人工智能应用的落地涉及到如何将算法模型运用在实际业务应用中,一直以来都是被重点关注的行业问题。业界也有一些模型部署方案,譬如:TF-Serving、TensorRT等。这些现有技术的算法部署方案的调用流程可以粗略理解为:接收请求、算法调用和返回结果。
大部分算法模型在同一时刻可能会被多个调用方调用,现有技术的简单模型部署在多调用方时可能出现调用混乱的问题,导致算法模型并不能被有效调用,也不能充分利用算法模型来赋能调用方。因此,实际AI(Artificial Intelligence,人工智能)应用落地需要考虑非常多的问题,需要大量的配套功能。
发明内容
为了解决现有技术中算法模型的部署方案粗糙导致算法模型不能被有效调用的技术问题。本申请提供了一种算法模型的调用方法、装置、计算机设备和存储介质,其主要目的在于实现算法模型的部署、应用和落地。
为实现上述目的,本申请提供了一种算法模型的调用方法,该方法包括:
接收应用方的调用请求,调用请求携带待调用的目标算法模型的第一唯一标识、应用方的第二唯一标识和入参数据;
根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源,其中,待分配资源包括系统用于调用算法模型的并发资源;
若应用方当前可获取到待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果;
将调用结果返回至给应用方。
此外,为实现上述目的,本申请还提供了一种算法模型的调用装置,该装置包括:
调用请求接收模块,用于接收应用方的调用请求,调用请求携带待调用的目标算法模型的第一唯一标识、应用方的第二唯一标识和入参数据;
第一判断模块,用于根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源,其中,待分配资源包括系统用于调用算法模型的并发资源;
模型调用模块,用于若应用方当前可获取到待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果;
结果返回模块,用于将调用结果返回至给应用方。
为实现上述目的,本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时执行如前面任一项的算法模型的调用方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如前面任一项的算法模型的调用方法的步骤。
本申请提出的算法模型的调用方法、装置、计算机设备和存储介质,通过对系统资源进行管理和限流策略,实现了对系统集成的算法模型的部署和落地,实现了根据实际需求将系统拥有的算法能力资源分配给不同的应用方,保证了算法模型被有效调用,使得算法模型能够用来赋能调用方。另外,使得系统能够集成单个算法模型的服务能力,也能够集成多个不同算法模型形成整体的服务能力,应用范围广泛。同时,本申请统一的处理逻辑和系统资源管理,能够大大加快算法模型对外赋能的开发效率,降本增效,提高系统的稳定性。
附图说明
图1为本申请一实施例中算法模型的调用方法的应用场景图;
图2为本申请一实施例中算法模型的调用方法的流程示意图;
图3为本申请一实施例中算法模型的调用装置的结构框图;
图4为本申请一实施例中计算机设备的内部结构框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的算法模型的调用方法,可应用在如图1的应用环境中,其中,终端设备110通过网络与服务器端120进行通信。其中,终端设备110可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器端120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2为本申请一实施例中算法模型的调用方法的流程示意图。参考图2,以该方法应用在图1中的服务器端为例进行说明。该算法模型的调用方法包括以下步骤S100-S400。
S100:接收应用方的调用请求,调用请求携带待调用的目标算法模型的第一唯一标识、应用方的第二唯一标识和入参数据。
具体地,本申请应用于系统的服务器端,应用方为客户端的一个应用服务,应用方也属于调用方,同一个客户端可以包括多个应用方,客户端安装于终端设备中。在调用算法模型之前,授权每个应用方对系统的部分或全部算法模型的调用,并配置相应的应用配置信息,应用配置信息可以包括但不局限于为该应用方分配的第二唯一标识、该应用方可调用的算法模型、该应用方可占用的最大系统资源、可使用的调用方式、部分算法模型的指定调用方式、限流策略、回调地址等。其中,第二唯一标识用于唯一识别一个应用方,不同应用方的第二唯一标识不同。第二唯一标识可以为应用方的应用编号。
调用请求为客户端的某个应用服务(应用方)向系统的服务器端发送的算法模型调用请求,调用请求是对系统接口的调用。系统集成有至少一种算法模型,且为每种算法模型分配有可以唯一识别算法模型的第一唯一标识,入参数据为应用方对目标算法模型的参数变量的赋值。第一唯一标识可以为算法模型的模型编号。本申请系统的算法模型可以被不同的应用方调用。不同的应用方可以为同一个客户端的不同应用方,还可以是不同客户端的不同应用方。
算法模型是由开发人员来开发的可执行代码,对算法模型进行模型部署,使得系统集成算法模型,每个算法模型形成一个独立的服务,调用算法模型才能对外提供对应的服务能力。模型部署是算法实现的一部分。本申请的系统可集成的算法模型可以包括但不限于例如人脸识别模型、指纹识别模型、语音处理模型、自然语言处理模型、计算机视觉模型等各种不同的人工智能模型。
本申请的系统是使用算法模型执行框架来实现算法模型对外赋能,算法模型属于系统的一部分,一个系统可以通过使用算法模型执行框架集成多个算法能力,应用方成功接入此系统即可调用该系统集成的算法能力,从而为客户端程序中对应的某个应用服务。
S200:根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源,其中,待分配资源包括系统用于调用算法模型的并发资源。
具体地,在授权应用方可以使用哪些算法模型的同时,还会配置每个应用方能够获取的最大系统资源。由于同一个应用方可以在短时间内多次调用同一个算法模型,因此如果某个应用服务突然流量增大,系统的并发资源可能都会被其占用,如果不加以限制,会导致其他应用方没有资源可用。为了避免系统资源被一个应用方占用,通过限流策略,可以实现系统资源的隔离,避免出现由于某个应用方的原因导致其他应用方无资源可用的情况发生。
由于每个应用方能够占用的系统资源是有限的,而系统调用任何一个算法模型都需要占用系统资源,因此,在接收到一个新的调用请求时,服务器端会判断该应用方是否还可以被分配资源,只有应用方还可以被分配资源才能够调用对应的目标算法模型,否则即使系统接收到了调用请求也不一定会调用目标算法模型,以保证系统资源不会被同一个应用方全部占有。本实施例的服务器端为系统对应,系统的并发资源也是服务器端的并发资源。
S300:若应用方当前可获取到待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果。
具体地,调用方式包括同步调用和异步调用,如果在应用配置信息中对目标算法模型的调用方式进行了指定,则调用方式为指定的调用方式,如果没有指定,则调用方式根据应用方指定的调用方式来调用目标算法模型。对没有指定调用方式的算法模型配置有不同的调用接口,每种调用接口对应一种调用方式,因此应用方通过调用接口来指定调用方式。对于耗时低且并发能力强的算法一般采取同步调用方式,耗时高或者并发能力弱的算法一般采用异步调用方式。具体的调用方式根据实际的配置情况或指定方式决定。
本实施例具体是通过算法执行器来调用算法模型的,算法执行器是一种基类,算法执行器也即算法适配器。算法适配器是根据各自算法或者模型的特点来进行定制化开发,用于对算法模型的数据进行预处理、后处理等操作。算法执行器包括用于算法模型的同步调用的同步调用执行器和用于算法模型的异步调用的异步调用执行器,特殊业务可以基于基类来扩展各自的算法执行器。系统集成一个算法模型的时候,同时也集成了这个算法对应的算法适配器。系统在接收到客户端的调用请求后,根据客户端指定的调用某个目标算法模型的算法能力,系统通过这个目标算法模型对应的算法适配器去完成对这个算法模型的调用。
S400:将调用结果返回至给应用方。
具体地,服务器端具体是根据调用方式以及配置信息来确定通过哪种方式将调用结果返回至应用方。例如,可以通过应用方主动查询的方式将调用结果返回给应用方,或者,通过服务器端主动回调调用结果并以推送的方式将调用结果返回给应用方。
本实施例通过对系统资源进行管理和限流策略,能有效实现客户端对系统集成的算法模型的调用,实现了根据实际需求将系统拥有的算法能力资源分配给不同的应用方或调用方。
本申请实施例调用算法模型具体是基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在一个实施例中,步骤S200具体包括:
根据获取到的系统的当前可用资源数据、为应用方配置的最大可用资源数据以及应用方的已用资源数据,确定应用方当前是否可获取待分配资源以及系统是否具有分配给应用方的待分配资源。
步骤S300具体包括:
若应用方当前可获取待分配资源且系统具有分配给应用方的待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果。
具体地,系统的最大可用资源是预先配置好的,随着可用资源被不同应用方占用,系统当前的可用资源会随之变化。另外,每个应用方或每个客户端可分配的资源(最大使用资源)也是预先配置好的,随着应用方对系统资源的占用,应用方是否可继续被分配资源也是有限制的,每个应用方并不能无限占用系统资源。
资源分配是通过限流机制来实现的。例如,算法A,目前系统的资源只能支持100个并发,现在有4个不同的应用方接入进系统,可以为每个应用方分配25个并发的资源,这样做是因为算法能力有限(100个并发)。如果其中一个应用方突然流量会增大,如果不加以限制,系统的100个并发资源都可能被其占用,如此会导致其他3个应用没有资源可用。通过限流策略,可以实现应用资源的隔离和管理。
例如,应用方的最大可用资源为25个并发资源,则如果应用方当前已经占用了25个并发资源,那么即使系统还存在未被占用的并发资源也不会再分配给该应用方。如果应用方当前已经占用了22个并发资源,则如果系统还存在未被占用的并发资源,则还可以继续分配给该应用方待分配的资源;如果系统已经没有待分配的并发资源,则应用方依然不能再获取到待分配资源。
如果应用方不允许获取配待分配资源,则该应用方暂时被隔离对资源的占用。此时,服务器端向应用方返回例如系统繁忙或调用错误的提示。
当允许应用方当前可获取待分配资源,则服务器端会为该应用方的此次调用请求分配并发资源,并通过并发资源调用目标算法模型得到调用结果。
在一个实施例中,步骤S300具体包括:
根据应用方所调用的目标接口或为目标算法模型所配置的指定调用方式,确定调用请求对应的调用方式,其中,调用方式包括同步调用和异步调用;
若调用方式为同步调用,则将入参数据传入目标算法模型,执行入参后的目标算法模型,得到调用结果;
若调用方式为异步调用,则向应用方返回一结果查询标识,将入参数据传入目标算法模型,执行入参后的目标算法模型,得到调用结果。
具体地,系统所集成的多个算法模型中,有的算法模型被系统的管理者指定了唯一的调用方式,因此,应用方无需再选择该算法模型的调用方式。有的算法模型没有被指定唯一的调用方式,而是配置了多种不同的调用接口,每种调用接口对应不同的调用方式,因此,通过应用方所调用服务器端的目标接口可以确定该调用请求对应的调用方式。
同步调用时,服务器端会执行目标算法模型并在执行完成后将得到的调用结果(即执行结果)返回至应用方。
异步调用时,服务器端在未执行完成目标算法模型前会分配一个结果查询标识给到应用方,而不是直接返回调用结果,返回结果查询标识相当于是服务器端返回给应用方的接收响应。应用方可以根据结果查询标识向服务器端请求查询对应的调用结果,或者,服务器端执行完成后主动将调用结果推送给应用方。
在一个实施例中,步骤S400具体包括:
若调用方式为同步调用,则将调用结果同步返回至应用方;
若调用方式为异步调用,则若接收应用方的结果查询请求,则将调用结果返回给应用方,其中,结果查询请求携带结果查询标识;
或,
若调用方式为异步调用,则根据应用方提供的回调接口信息,调用回调接口信息所指示的回调接口,将调用结果推送至应用方。
具体地,算法执行完成后,根据应用方选择合适的回调策略,一般同步调用结果就是同步返回,但是异步处理结果可以根据应用配置信息进行选择。如果应用配置信息中还配置了应用方提供的回调接口,则服务器端(服务方)可以根据客户端提供的回调接口信息进行主动回调,将得到的调用结果(执行结果)主动推送给客户端的应用方。还可以是客户端的应用方通过服务器端的查询接口来主动查询结果,应用方调用服务器端的查询接口的结果查询请求中携带了结果查询标识,因此,服务器端在接收到结果查询请求时根据结果查询标识查询到对应的调用结果,并将该调用结果返回给应用方。
在一个实施例中,该方法还包括:
若调用方式为同步调用,则在接收到应用方的调用请求时,对应用方当前所占用的资源进行累计并同步更新;
若调用方式为异步调用,则监听目标算法模型的执行进度,若目标算法模型执行完成,则对应用方当前所占用的资源进行累计并同步更新。
具体地,不同的调用方式对资源的占用的统计时机不同。同步请求限流计算方式是以接收到调用请求(HTTP请求)为统计时机,单个HTTP调用结束即算请求完成。而异步调用限流则有所不同,在异步请求中,HTTP调用返回的是服务器端的接收响应而不是处理结果,所以异步限流是以算法处理完成为统计时机来进行计数。
系统一般都是多实例部署,客户端的应用方对系统调用次数需要能够多实例之间共享,因此本实施例可以使用redis(远程字典服务)共享缓存来实现对每个应用方所占用资源进行同步更新。这样即使系统由多个服务器端集成,即使不同的应用方通过不同服务器端访问系统中的算法模型,也能够实现应用方或客户端对系统的总调用次数的同步更新。
其中,redis中存储了应用方的第二唯一标识与应用方当前所占用系统资源的映射关系。应用方所占用系统资源的数据会根据实际运行情况实时更新。
当然,本申请也可以配置客户端对应的最大可用系统资源,在redis中存储客户端的唯一标识与该客户端当前所占用系统资源的映射关系。同一个客户端的不同应用方所占用的系统资源都累计为该客户端的已用系统资源。
本实施例限流策略和redis结合实现了系统资源的合理分配和统一管理。
在一个实施例中,调用请求还携带应用方的应用密码;
步骤S200具体包括:
根据应用方的第二唯一标识和应用密码对应用方的调用权限进行验证;
若应用方具有对目标算法模型的调用权限,则根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源。
具体地,本实施例是通过应用方的第二唯一标识和应用密码来验证应用方的身份是否合法,以及是否具有对目标算法模型的调用权限。应用方的第二唯一标识可以为应用编号,应用编号、应用密码以及此客户端允许调用系统的哪些算法模型是由系统管理人员预先为每个待接入系统的客户端的每个应用服务事先分配和配置授权的。本实施例通过对应用方的调用权限进行验证也在一定程度阻止了非法调用,保障了系统安全。
在一个实施例中,步骤S300具体包括:
根据目标算法模型的模型配置信息对入参数据进行参数验证;
若应用方当前可获取到待分配资源且入参数据合法,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果。
具体地,本实施例的参数验证即业务参数验证,不同的算法能力不同,算法模型的代码也不同,因此入参也会不同。算法模型开发完成后其入参的参数一般是固定的,在调用算法模型之前事先对入参数据进行验证,可以判断入参的正确性,算法模型的执行会占用系统资源即并发资源,因此,提前进行参数验证可以避免资源错配带来的浪费,进而避免无效的入参导致算法模型的无效执行,减少了无效的运算开销。
在一个实施例中,调用请求还携带应用方的应用密码;
步骤S200具体包括:
根据应用方的第二唯一标识和应用密码对应用方的调用权限进行验证;
若应用方具有对目标算法模型的调用权限,则根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源;
步骤S300具体包括:
根据目标算法模型的模型配置信息对入参数据进行参数验证;
若应用方当前可获取到待分配资源且入参数据合法,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果。
在一个实施例中,该方法还包括:
在将调用结果返回至应用方后,确定释放应用方所占用的对应资源,并对应用方当前所占用资源进行同步更新。
具体地,任意一个应用方在调用算法模型时会占用系统服务器资源,但是在调用完成后会释放对应的资源。因此,在释放资源后同步更新,可以对系统的可用资源进行管理,方便在接收到新的调用请求后对系统资源进行有效合理的分配。
在一个实施例中,该方法还包括:
监控目标算法模型的执行时长;
若在执行时长超过目标算法模型的预设超时时长时目标算法模型还未执行完成,则根据异常处理策略向应用方返回超时失败响应,或,在重试次数未超过预设次数时触发重试机制,重新执行目标算法模型。
具体地,客户端的不同应用方对服务器的响应时效有不同的要求,例如,有的应用方需要服务器及时响应,有的应用方可以等待一定的时长。因此,本实施例会预先对不同的应用方配置对应的预设超时时长。预设超时时长是结合应用方所期望的响应速度和算法模型执行的速度来综合确定的。不同的应用方对不同算法模型的调用所对应的预设超时时长不同。
另外,应用配置信息中配置有每个应用方配置有对应的异常处理策略,异常处理策略的配置是根据应用方的需求和实际业务来配置的。异常处理策略可以为超时失败机制,也可以为超时重试机制。超时失败机制具体为如果超过了预设超时时长还未执行完算法模型或未得到调用结果则直接中断算法模型的执行,服务器端直接向应用方返回超时失败响应。超时重试机制具体为如果超过了预设超时时长还未执行完算法模型或未得到调用结果且此次调用的累计重试次数还未超过预设次数,则中断算法模型的执行,重新执行算法模型。如果超过了预设超时时长还未执行完算法模型或未得到调用结果且此次调用的累计重试次数已超过预设次数,则中断算法模型的执行,服务器端向应用方返回超时重试失败响应。当然本申请还支持扩展个性化的异常处理策略。
本申请是一套完整的AI应用生产落地的解决方案,实现了系统的接口接入或调用、接口调用鉴权、同步与异步的接口限流策略、结果回调、系统并发资源的分配、数据预处理、数据后处理、多模型组合、异常处理策略、调用方式选择等大量的配套功能。抽象了算法调用流程,是业务与单个算法模型之间的沟通桥梁,是完整AI应用必不可缺的一部分。
本申请通过对系统资源进行管理和限流策略,能有效实现客户端对系统集成的算法模型的调用,且使得系统能够集成不同的多个算法模型,使系统具备不同的算法能力。对接入算法能力的应用信息进行统一的维护,可以对系统进行统一规划以及资源分配。实现了算法能力的快速对外赋能。
本申请统一的处理逻辑,能够大大加快算法对外赋能的开发效率,降本增效,提高系统的稳定性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图3为本申请一实施例中算法模型的调用装置的结构框图。参考图3,该装置包括:
调用请求接收模块100,用于接收应用方的调用请求,调用请求携带待调用的目标算法模型的第一唯一标识、应用方的第二唯一标识和入参数据;
第一判断模块200,用于根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源,其中,待分配资源包括系统用于调用算法模型的并发资源;
模型调用模块300,用于若应用方当前可获取到待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果;
结果返回模块400,用于将调用结果返回至给应用方。
在一个实施例中,第一判断模块200具体用于:根据获取到的系统的当前可用资源数据、为应用方配置的最大可用资源数据以及应用方的已用资源数据,确定应用方当前是否可获取待分配资源以及系统是否具有分配给应用方的待分配资源。
模型调用模块300具体用于:若应用方当前可获取待分配资源且系统具有分配给应用方的待分配资源,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果。
在一个实施例中,模型调用模块300具体包括:
调用方式确定模块,根据应用方所调用的目标接口或为目标算法模型所配置的指定调用方式,确定调用请求对应的调用方式,其中,调用方式包括同步调用和异步调用;
同步调用模块,用于若调用方式为同步调用,则将入参数据传入目标算法模型,执行入参后的目标算法模型,得到调用结果;
异步调用模块,用于若调用方式为异步调用,则向应用方返回一结果查询标识,将入参数据传入目标算法模型,执行入参后的目标算法模型,得到调用结果。
在一个实施例中,结果返回模块400具体包括:
第一返回模块,用于若调用方式为同步调用,则将调用结果同步返回至应用方;
第二返回模块,用于若调用方式为异步调用,则若接收应用方的结果查询请求,则将调用结果返回给应用方,其中,结果查询请求携带结果查询标识;或,
第二返回模块,用于若调用方式为异步调用,则根据应用方提供的回调接口信息,调用回调接口信息所指示的回调接口,将调用结果推送至应用方。
在一个实施例中,该装置还包括:
第一同步模块,用于若调用方式为同步调用,则在接收到应用方的调用请求时,对应用方当前所占用的资源进行累计并同步更新;
第二同步模块,用于若调用方式为异步调用,则监听目标算法模型的执行进度,若目标算法模型执行完成,则对应用方当前所占用的资源进行累计并同步更新。
在一个实施例中,调用请求还携带应用方的应用密码;
第一判断模块200具体包括:
调用权限验证模块,用于根据应用方的第二唯一标识和应用密码对应用方的调用权限进行验证;
资源分配判断模块,用于若应用方具有对目标算法模型的调用权限,则根据限流策略和第二唯一标识确定应用方当前是否可获取到待分配资源。
在一个实施例中,模型调用模块300具体包括:
入参验证模块,用于根据目标算法模型的模型配置信息对入参数据进行参数验证;
调用模块,用于若应用方当前可获取到待分配资源且入参数据合法,则根据入参数据和获取到的调用方式调用第一唯一标识所指示的目标算法模型,得到调用结果。
在一个实施例中,该装置还包括:
第三同步模块,用于在将调用结果返回至应用方后,确定释放应用方所占用的对应资源,并对应用方当前所占用资源进行同步更新。
在一个实施例中,该装置还包括:
时长监控模块,用于监控目标算法模型的执行时长;
异常处理模块,用于若在执行时长超过目标算法模型的预设超时时长时目标算法模型还未执行完成,则根据异常处理策略向应用方返回超时失败响应,或,在重试次数未超过预设次数时触发重试机制,重新执行目标算法模型。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于算法模型的调用装置的具体限定可以参见上文中对于算法模型的调用方法的限定,在此不再赘述。上述算法模型的调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图4为本申请一实施例中计算机设备的内部结构框图。该计算机设备具体可以是图1中的服务器端。如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,该计算机设备的处理器用于提供计算和控制能力。存储器包括存储介质和内存储器。存储介质可以是非易失性存储介质,也可以是易失性存储介质。存储介质存储有操作系统,还可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现算法模型的调用方法。该内存储器为存储介质中的操作系统和计算机可读指令的运行提供环境。该内存储器中也可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行算法模型的调用方法。该计算机设备的网络接口用于与外部服务器通过网络连接通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令(例如计算机程序),处理器执行计算机可读指令时实现上述实施例中算法模型的调用方法的步骤,例如图2所示的步骤S100至步骤S400及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机可读指令时实现上述实施例中算法模型的调用装置的各模块/单元的功能,例如图3所示模块100至模块400的功能。为避免重复,这里不再赘述。
处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机可读指令和/或模块,处理器通过运行或执行存储在存储器内的计算机可读指令和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
存储器可以集成在处理器中,也可以与处理器分开设置。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中算法模型的调用方法的步骤,例如图2所示的步骤S100至步骤S400及该方法的其它扩展和相关步骤的延伸。或者,计算机可读指令被处理器执行时实现上述实施例中算法模型的调用装置的各模块/单元的功能,例如图3所示模块100至模块400的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指示相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (12)
1.一种算法模型的调用方法,其特征在于,所述方法包括:
接收应用方的调用请求,所述调用请求携带待调用的目标算法模型的第一唯一标识、所述应用方的第二唯一标识和入参数据;
根据限流策略和所述第二唯一标识确定所述应用方当前是否可获取到待分配资源,其中,所述待分配资源包括系统用于调用算法模型的并发资源;
若所述应用方当前可获取到待分配资源,则根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果;
将所述调用结果返回至给所述应用方。
2.根据权利要求1所述的方法,其特征在于,所述根据限流策略和所述第二唯一标识确定所述应用方当前是否可获取到待分配资源,包括:
根据获取到的所述系统的当前可用资源数据、为所述应用方配置的最大可用资源数据以及所述应用方的已用资源数据,确定所述应用方当前是否可获取待分配资源以及所述系统是否具有分配给所述应用方的待分配资源;
所述若所述应用方当前可获取到待分配资源,则根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果,包括:
若所述应用方当前可获取待分配资源且所述系统具有分配给所述应用方的待分配资源,则根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果,包括:
根据所述应用方所调用的目标接口或为所述目标算法模型所配置的指定调用方式,确定所述调用请求对应的调用方式,其中,所述调用方式包括同步调用和异步调用;
若所述调用方式为同步调用,则将所述入参数据传入所述目标算法模型,执行入参后的目标算法模型,得到调用结果;
若所述调用方式为异步调用,则向所述应用方返回一结果查询标识,将所述入参数据传入所述目标算法模型,执行入参后的目标算法模型,得到调用结果。
4.根据权利要求3所述的方法,其特征在于,所述将所述调用结果返回至给所述应用方,包括:
若所述调用方式为同步调用,则将所述调用结果同步返回至所述应用方;
若所述调用方式为异步调用,则若接收所述应用方的结果查询请求,则将所述调用结果返回给所述应用方,其中,所述结果查询请求携带所述结果查询标识;
或,
若所述调用方式为异步调用,则根据所述应用方提供的回调接口信息,调用所述回调接口信息所指示的回调接口,将所述调用结果推送至所述应用方。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述调用方式为同步调用,则在接收到所述应用方的调用请求时,对所述应用方当前所占用的资源进行累计并同步更新;
若所述调用方式为异步调用,则监听所述目标算法模型的执行进度,若所述目标算法模型执行完成,则对所述应用方当前所占用的资源进行累计并同步更新。
6.根据权利要求1所述的方法,其特征在于,所述调用请求还携带所述应用方的应用密码;
所述根据限流策略和所述第二唯一标识确定所述应用方当前是否可获取到待分配资源,包括:
根据所述应用方的第二唯一标识和应用密码对所述应用方的调用权限进行验证;
若所述应用方具有对所述目标算法模型的调用权限,则根据限流策略和所述第二唯一标识确定所述应用方当前是否可获取到待分配资源。
7.根据权利要求1或6所述的方法,其特征在于,所述若所述应用方当前可获取到待分配资源,则根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果,包括:
根据所述目标算法模型的模型配置信息对所述入参数据进行参数验证;
若所述应用方当前可获取到待分配资源且所述入参数据合法,则根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果。
8.根据权利要求1或5所述的方法,其特征在于,所述方法还包括:
在将所述调用结果返回至所述应用方后,确定释放所述应用方所占用的对应资源,并对所述应用方当前所占用资源进行同步更新。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监控所述目标算法模型的执行时长;
若在所述执行时长超过所述目标算法模型的预设超时时长时所述目标算法模型还未执行完成,则根据异常处理策略向所述应用方返回超时失败响应,或,在重试次数未超过预设次数时触发重试机制,重新执行所述目标算法模型。
10.一种算法模型的调用装置,其特征在于,所述装置包括:
调用请求接收模块,用于接收应用方的调用请求,所述调用请求携带待调用的目标算法模型的第一唯一标识、所述应用方的第二唯一标识和入参数据;
第一判断模块,用于根据限流策略和所述第二唯一标识确定所述应用方当前是否可获取到待分配资源,其中,所述待分配资源包括系统用于调用算法模型的并发资源;
模型调用模块,用于若所述应用方当前可获取到待分配资源,则根据所述入参数据和获取到的调用方式调用所述第一唯一标识所指示的所述目标算法模型,得到调用结果;
结果返回模块,用于将所述调用结果返回至给所述应用方。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时执行如权利要求1-9任一项所述的算法模型的调用方法的步骤。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时,使得所述处理器执行如权利要求1-9任一项所述的算法模型的调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210040636.3A CN114385268A (zh) | 2022-01-14 | 2022-01-14 | 算法模型的调用方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210040636.3A CN114385268A (zh) | 2022-01-14 | 2022-01-14 | 算法模型的调用方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385268A true CN114385268A (zh) | 2022-04-22 |
Family
ID=81201882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210040636.3A Pending CN114385268A (zh) | 2022-01-14 | 2022-01-14 | 算法模型的调用方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114385268A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235708A (zh) * | 2023-11-13 | 2023-12-15 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596919A (zh) * | 2020-12-15 | 2021-04-02 | 平安普惠企业管理有限公司 | 模型调用方法、装置、设备及存储介质 |
CN113595922A (zh) * | 2021-07-29 | 2021-11-02 | 上海浦东发展银行股份有限公司 | 一种流量限制方法、装置、服务器及存储介质 |
-
2022
- 2022-01-14 CN CN202210040636.3A patent/CN114385268A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596919A (zh) * | 2020-12-15 | 2021-04-02 | 平安普惠企业管理有限公司 | 模型调用方法、装置、设备及存储介质 |
CN113595922A (zh) * | 2021-07-29 | 2021-11-02 | 上海浦东发展银行股份有限公司 | 一种流量限制方法、装置、服务器及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235708A (zh) * | 2023-11-13 | 2023-12-15 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
CN117235708B (zh) * | 2023-11-13 | 2024-03-26 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021142609A1 (zh) | 信息上报方法、装置、设备和存储介质 | |
CN110612705B (zh) | 一种无服务器架构下业务部署的方法和函数管理平台 | |
CN110532025B (zh) | 基于微服务架构的数据处理方法、装置、设备及存储介质 | |
CN110673933A (zh) | 基于ZooKeeper的分布式异步队列实现方法、装置、设备及介质 | |
CN101164046B (zh) | 利用应用优先权系统分配装置顶部可见资源的设备及方法 | |
CN109800083B (zh) | 一种微服务协同调用的方法、装置、系统及存储介质 | |
CN113259359B (zh) | 一种边缘节点能力补充方法、系统、介质及电子终端 | |
CN110955448A (zh) | 智能合约分离方法、合约处理方法、装置、设备及介质 | |
US20150341362A1 (en) | Method and system for selectively permitting non-secure application to communicate with secure application | |
CN110704177A (zh) | 计算任务处理方法、装置、计算机设备和存储介质 | |
CN110677453A (zh) | 基于ZooKeeper的分布式锁服务实现方法、装置、设备及存储介质 | |
CN110839071B (zh) | 一种基于区块链的信息存储方法、设备及存储介质 | |
CN112039886A (zh) | 一种基于边缘计算的终端设备管控方法、电子设备及介质 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
CN111338779A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
CN114385268A (zh) | 算法模型的调用方法、装置、计算机设备和存储介质 | |
CN115357403A (zh) | 一种用于任务调度的微服务系统及任务调度方法 | |
CN110213250B (zh) | 数据处理方法及终端设备 | |
CN109657485B (zh) | 权限处理方法、装置、终端设备和存储介质 | |
CN111970162B (zh) | 一种超融合架构下的异构gis平台服务中控系统 | |
US10579511B2 (en) | Flexible testing environment using a cloud infrastructure—cloud technology | |
CN113760386A (zh) | 一种访问控制系统、访问控制方法及存储介质 | |
CN113296750B (zh) | 函数创建方法及系统、函数调用方法及系统 | |
CN112637085B (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 |