CN117492876A - 算法调用方法、装置、服务器及计算机存储介质 - Google Patents
算法调用方法、装置、服务器及计算机存储介质 Download PDFInfo
- Publication number
- CN117492876A CN117492876A CN202311581352.6A CN202311581352A CN117492876A CN 117492876 A CN117492876 A CN 117492876A CN 202311581352 A CN202311581352 A CN 202311581352A CN 117492876 A CN117492876 A CN 117492876A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- sub
- module
- service
- call
- 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 460
- 238000000034 method Methods 0.000 title claims abstract description 143
- 238000004806 packaging method and process Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 77
- 230000006870 function Effects 0.000 claims description 31
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 238000000889 atomisation Methods 0.000 claims description 11
- 238000000354 decomposition reaction Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 7
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 4
- 238000007635 classification algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种算法调用方法、装置、服务器及计算机存储介质,涉及算法应用领域,其中,该方法包括:响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取所述目标算法服务对应的各个子算法模块;其中,模块库中包括所有目标算法服务分解得到的子算法模块;分别确定所述子算法模块的调用配置信息,所述调用配置信息包括调用方式和/或调用顺序;分别将所述子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供用户端调用。通过上述方法,本申请可以有效解决算法服务需求响应上线较慢,以及服务并发能力差、响应耗时长、模块重复开发的问题。
Description
技术领域
本申请涉及算法应用技术领域,尤其涉及一种算法调用方法、装置、服务器及计算机存储介质。
背景技术
目前的算法部署和调用方式,主要通过将算法服务所需的各个算法进行整体封装的方式统一部署和调用。
以影像算法服务为例,不同业务场景的图像需求复杂,通常涉及多种算法的组合,在进行算法部署时需要针对具体需求做定制化开发,当前整体部署和调用方式将导致需求响应上线较慢;并且业务场景对算法服务响应时效有一定的要求,特别是销售端业务,超出时效容易影响客户体验。而图像算法通常依赖于图形处理器(Graphics Processing Unit,GPU)服务器,且GPU服务器数量有限,使用当前算法服务部署模式导致各服务并发能力差,响应耗时长。
发明内容
本申请提供一种算法调用方法、装置、服务器及计算机存储介质,以至少解决上述技术问题。
根据本申请的一方面,提供一种算法调用方法,包括:
响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取所述目标算法服务对应的各个子算法模块;其中,所述模块库中包括所有目标算法服务分解得到的子算法模块;
分别确定所述子算法模块的调用配置信息,所述调用配置信息包括调用方式和/或调用顺序;
分别将所述子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供所述用户端调用。
在一种实施方式中,在从预建立的模块库中提取所述目标算法服务对应的子算法模块之前,还包括:
将所有目标算法服务进行原子化分解,得到经过原子化分解的所有子算法对应的子算法模块,并将所有子算法模块存储至预建立的模块库中。
在一种实施方式中,所述将所有子算法模块存储至预先建立的模块库中,包括:
将所有子算法模块进行预处理后,存储至预建立的模块库;其中,对所有子算法模块进行预处理,包括:
分析所有子算法模块的功能,并根据分析结果将功能相同的子算法模块整合为同一子算法模块。
在一种实施方式中,所述模块库还包括用于转换文件格式的格式转换模块;所述方法还包括:
从所述模块库中提取所述格式转换模块,并在将所述子算法模块封装成第一算法服务接口之前,将所述格式转换模块封装成第二算法服务接口,并将各个所述第一算法服务接口和所述第二算法服务接口整合为所述目标算法服务对应的统一调用接口。
在一种实施方式中,所述目标算法服务为影像算法服务,所述格式转换模块为二进制文件转换模块。
在一种实施方式中,还包括:
在所述调用请求的数量包括多个时,确定用于部署各个子算法模块的进程数量;
所述基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,包括:
基于所述进程数量和所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口。
在一种实施方式中,所述确定用于部署各个子算法模块的进程数量,包括:
确定用于部署各个子算法模块的初始进程数量;
基于所述初始进程数量,确定各个子算法模块对应的初始服务调用总耗时,并获取所述初始服务调用总耗时对应的耗时瓶颈子算法模块;
基于所述耗时瓶颈子算法模块,对所述初始进程数量进行多次调整,以获取多种用于部署各个子算法模块的优化部署组合;
获取各个优化部署组合的服务调用总耗时,并选择出服务调用总耗时最短的部署组合,并基于所述优化部署组合确定用于部署各个子算法模块的进程数量。
根据本申请的另一方面,提供一种算法调用装置,包括:
模块提取模块,其设置为响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取所述目标算法服务对应的各个子算法模块;其中,所述模块库中包括所有目标算法服务分解得到的子算法模块;
确定模块,其设置为分别确定所述子算法模块的调用配置信息,所述调用配置信息包括调用方式和/或调用顺序;
封装调用模块,其设置为分别将所述子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供所述用户端调用。
根据本申请的再一方面,提供一种服务器,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述服务器执行所述的算法调用方法。
根据本申请的又一方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现所述的算法调用方法。
可以理解的,本申请实施例提供的算法调用方法、装置、服务器及计算机存储介质。通过响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取目标算法服务对应的各个子算法模块,该模块库中包括所有目标算法服务分解得到的子算法模块,并分别确定子算法模块的调用配置信息,调用配置信息包括调用方式和/或调用顺序,分别将子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供用户端调用。此过程中,利用预建立的模块库中的子算法模块的单独提取及独立部署的方式,对于不同的算法服务需求无需临时、重复开发,有效解决了算法服务需求响应上线较慢的问题,同时可以实现服务器显存资源的灵活分配,减少显存碎片,提高服务器利用率,以降低服务整体耗时,从而解决服务并发能力差、响应耗时长、子算法模块重复开发的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为相关技术中算法服务调用的流程示意图;
图2为相关技术中多请求并发时子算法模块的排队示意图;
图3为相关技术中多请求并发时多服务并行的示意图;
图4为相关技术中GPU服务器显存分配的示意图;
图5为本申请实施例提供的一种算法调用方法的流程示意图之一;
图6为本申请实施例提供的一种算法调用方法的流程示意图之二;
图7a为本申请实施例中模块库的示意图;
图7b为本申请实施例中子算法模块的调用配置的示意图;
图7c为本申请实施例中子算法模块的进程数量的示意图;
图8为本申请一示例性算法服务调用的流程示意图之一;
图9a为本申请实施例中GPU服务器显存分配的示意图;
图9b为本申请实施例中多请求并发时子算法模块的排队示意图;
图10为本申请实施例提供的另一种算法调用方法的流程示意图;
图11为本申请一示例性算法服务调用的流程示意图之二;
图12为本申请实施例提供的又一种算法调用方法的流程示意图;
图13a为本申请实施例中各子算法模块关于进程数的部署方式的示意图之一;
图13b为本申请实施例中各子算法模块关于进程数的部署方式的示意图之二;
图13c为本申请实施例中各子算法模块关于进程数的部署方式的示意图之三;
图14为本申请实施例提供的一种算法调用装置的结构示意图;
图15为本申请实施例提供的一种服务器的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
随着科技的不断发展和金融保险企业的改革,金融科技已经成为行业又一次的变革。金融保险机构可以通过部署相应的算法,提升业务流程和决策制定效率,算法被广泛应用于金融行业,可以帮助金融机构更快地获取和处理大量数据,从而在市场上获得更好的机遇,同时有效降低风险。
相关技术中,算法部署和调用方式,主要通过将算法服务所需的各个算法功能模块进行整体封装的方式统一调用和部署。以金融保险机构中开户场景作为示例,开户场景下需要使用影像算法服务进行证件识别等影像识别,影像算法服务通常是通过应用编程接口(Application Programming Interface,API)形式向业务方(例如金融保险机构的服务器或者用户终端)提供服务。通常一个算法服务会包括多个算法功能模块(以下简称子算法模块),当前在对算法服务进行工程化部署时,是将所有相关子算法模块打包进一套代码工程,合并作为一个服务以单进程形式对外输出能力。假设一个影像算法服务S包含4个子算法模块A、B、C、D,其服务调用流程可参见图1,业务方(即业务系统)与服务器(服务端-应用、服务端-计算机视觉CV)统一完成对这四个子算法模块的部署和调用。本领域技术人员可以理解,算法的部署和调用为一体化概念。
在上述影像算法服务的部署和调用的过程中,至少存在以下问题:
一方面,服务响应时间长,并发能力差。当存在多个业务请求同时需要调用该算法服务S时,服务S需按照各请求进入的先后顺序一个个排队处理,即只有当4个子算法模块全部完成当前请求处理后才能开始下一个请求的处理,示意图见图2;为了能够缓解多请求排队情况,以提高影像算法服务响应时效,算法服务提供方通常会在服务器上部署多个相同服务,如图3所示。但由于影像算法服务多是使用GPU服务器进行部署且GPU服务器数量有限,当将所有子算法模块打包成一个服务进行部署时,服务总显存占用较高,导致同一台服务器上可部署的服务数量较少,以及显存资源无法充分利用(服务器上剩余显存不够再部署一个完整服务)的问题,如图4所示。
另一方面,新需求上线慢。对于来自业务方的影像算法服务新需求,即使只是现有功能的排列组合,都需要做定制化开发,写一套专门的算法工程代码进行服务部署,这期间需要一定的人力成本投入,延缓服务上线时间。
此外,目前的算法部署和调用方式,容易导致模块功能重复,维护成本高。不同影像算法服务之间存在一些功能交叉,例如各类证件影像的光学字符识别(OpticalCharacter Recognition,OCR)算法服务均需要用到图像方向检测功能,如果按照当前算法服务部署调用流程,同一功能模块需要做多次开发和部署,既浪费了资源,又增加了后续模块升级更新时的维护难度。
有鉴于此,本申请实施例针对上述技术问题,提供了一种算法调用方法、装置、服务器及计算机存储介质,通过响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取目标算法服务对应的各个子算法模块,该模块库中包括所有目标算法服务分解得到的子算法模块,并分别确定子算法模块的调用配置信息,调用配置信息包括调用方式和/或调用顺序,分别将所述子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口。此过程中,利用预建立的模块库中的子算法模块的单独提取及独立部署的方式,可以有效降低服务整体耗时,同时实现GPU服务器显存资源的灵活分配,减少显存碎片,提高服务器利用率;通过建立模块库,实现基本算法功能整合,对于新的复合算法服务需求可通过“搭积木”方式从标准库中选择相应模块进行快速组合配置,避免重复开发,降低后续维护成本,并解决了新需求上线慢的问题。在业务层面,提高了对外算法服务的响应时效,提高了服务器资源利用率,减少开发及维护人力成本。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请的实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的部件或具有相同或类似功能的部件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
下面结合应用场景对本申请实施例进行介绍。以金融保险机构的影像算法部署场景为例,该场景下包括终端设备和服务器,终端设备和服务器之间通过有线或者无线网络相互连接。可选地,终端设备为金融保险机构的算法服务请求终端(即用户端),服务器为金融保险机构的算法服务提供服务器,终端设备用于向服务器发起指定算法服务的调用请求,服务器根据调用请求提取算法服务对应的子算法模块并确定调用配置信息,封装成对应的结构供终端设备调用。可选地,在算法调用的过程中,服务器承担主要计算工作,终端设备承担次要计算工作;或者,服务器承担次要计算工作,终端设备承担主要计算工作;或者,服务器或终端设备分别能够单独承担计算工作。
其中,终端设备可以包括但不限于,电脑、智能手机、平板电脑、电子书阅读器、动态影像专家压缩标准音频层面3(Moving Picture experts group audio layer III,简称MP3)播放器、动态影像专家压缩标准音频层面4(Moving Picture experts group audiolayer IV,简称MP4)播放器、便携计算机、车载电脑、可穿戴设备、台式计算机、机顶盒、智能电视等等。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选地,上述终端设备或服务器的数量可以更多或更少,本申请实施例对此不加以限定。在一些实施例中,上述终端设备和服务器还可以作为区块链系统中的节点,将算法调用数据同步给区块链其它节点,以便于算法调用过程的追溯和维护。
需要说明的是,本申请的算法调用方法可用于金融科技领域。也可用于除金融科技领域以外的任意领域,本申请的算法调用方法应用领域不作限定。
上面对本申请的应用场景进行了简单说明,下面以应用于服务器为例,来详细说明本申请实施例提供的算法调用方法。
请参照图5,图5为本申请实施例提供的一种算法调用方法的流程示意图,该方法包括步骤S51-S53。步骤S51、响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取目标算法服务对应的各个子算法模块;其中,模块库中包括所有目标算法服务分解得到的子算法模块。
本实施例中,目标算法服务即待部署的算法服务类型,例如影像算法服务,一个算法服务通常需要部署多个算法,例如在影像算法服务中需要部署目标检测算法、模板匹配算法等。在其它实施例中,也可以为其它算法服务,例如人脸识别算法服务等。其中,指定的目标算法服务,同属于影像算法服务类别下(具有不同算法模块需求)的指定算法服务,例如在不同类型证件的影像算法服务所需部署的算法模块可能各不相同。
可选地,在从模块库中提取子算法模块时,服务器可以根据对应的业务需求,提取相关数量的子算法模块,例如提取2个A子算法模块、1个B子算法模块、1个C模块。在一些实施例中,也可以针对需要提取的子算法模块,随机提取一个或者多个,在后续调用配置过程中,减少或者增加对应数量的子算法模块,本实施例对此不作具体限定。
相较于相关技术中,针对业务方,也即用户端的算法服务的调用请求,对其所请求算法服务的所有子算法模块进行打包,并封装成统一接口供业务方调用和部署。本实施例在请求初期即预先建立了模块库,该模块库中包括所有算法服务分解得到的子算法模块,在接收到业务需求后,在模块库中对相应的子算法模块进行提取并在后续步骤中进行调用配置即可,而无需针对该算法服务进行打包定制,减少了开发量,优化了部署流程。在业务层面,提高了对外算法服务的响应时效,提高了服务器资源利用率,减少开发及维护人力成本。
可以理解的,响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
可选地,本实施例在服务器端对所有目标算法进行功能的原子化分解操作,并存储到模块库中以供提取和配置调用,在其它实施例中也可以在其它装置或终端中进行原子化分解和存储操作。具体地,如图6所示,在从预建立的模块库中提取目标算法服务对应的子算法模块之前,还包括以下步骤S50:
步骤S50、将所有目标算法服务进行原子化分解,得到经过原子化分解的所有子算法对应的子算法模块,并将所有子算法模块存储至预建立的模块库中。
本实施例中,原子化分解,即将目标算法服务根据算法功能原子化分解为多个功能模块(即子算法模块),分解出的子算法模块对应一个功能。
在一示例中,模块库的示意如图7a所示,针对某算法服务,将所有算法服务原子化分解得到模块A、模块B、……、模块F;模块库中的子算法模块的调用配置示意如图7b所示,当业务方请求该算法服务中的指定算法服务时,该指定算法服务需要部署模块A、模块C和模块D,并依次调用模块D、模块A和模块C;进一步地,除了对子算法模块的调用配置,在出现多请求并发时,还可以对各个子算法模块的进程数量进行配置,图7c则示例了一种可能的子算法模块的进程数量组合。
在一些实施例中,本领域技术人员可以结合实际应用对模块库中的子算法模块进行更新,例如添加或者删除对应的子算法模块,以便于业务方提取和调用子算法模块,提升用户体验。
在实际应用中,不同影像算法服务之间存在一些功能交叉,原子化分解后可能存在功能相同的不同子算法模块(例如功能相同但实现不同),这将导致功能重复。例如各类证件影像的OCR识别算法服务都需要用到图像方向检测功能,如果按照当前算法服务部署调用流程,同一功能模块需要做多次开发和部署,既浪费了资源,又增加了后续模块升级更新时的维护难度。
本实施例考虑到功能重复这一问题,进一步提出了通过对子算法功能进行整合,形成算法模块库并对各算法模块进行独立部署,避免重复开发,以及降低后续维护成本。可选地,上述步骤中将所有子算法模块存储至预先建立的模块库中,可以包括以下步骤:
将所有子算法模块进行预处理后,存储至预建立的模块库;其中,对所有子算法模块进行预处理,包括:
分析所有子算法模块的功能,并根据分析结果将功能相同的子算法模块整合为同一子算法模块。
在上述过程中,在对所有算法服务进行原子化分解得到子算法模块后,通过对子算法模块进行预处理,并存储在模块库中,有效避免了同一功能模块需要做多次开发和部署。
在一些实施例中,为了进一步对模块库进行管理,以提高算法调用效率。子算法模块的预处理还可以对各个子算法模块的名称进行校验,对于相同名称的子算法模块,如果其功能不同,可以采用对应的标识以区分二者为不同功能的子算法模块。
继续如图5所示,步骤S52、分别确定子算法模块的调用配置信息,调用配置信息包括调用方式和/或调用顺序。
本实施例中,调用方式可以包括串行调用和/或并行调用,调用顺序及各个子算法模块的调用先后顺序。
可选地,可以根据指定的目标算法服务的类型选择串行调用方式还是并行调用方式,例如目标算法服务需要调用的子算法模块较多且不存在依赖关系,可以采用部分子模块并行调用的方式;或者根据系统资源等情形确定各个子算法模块的调用配置信息,在系统资源充足或者请求并发数较少的情况下可以选择串行调用。
进一步地,调用配置信息还可以包括调用数量,例如文档类图像需要完整调用所有子算法模块(多目标检测算法模块、文档图像方向检测子算法模块、表头图像全文识别子算法模块)以准确判断类别,而卡证类图像(如身份证)则只需调用其中多目标检测算法模块即可。可以理解,调用数量仅为调用配置信息的一种可选配置信息,而并非对其限定,在一些实施例中,步骤S51提取子算法模块时,即考虑了子算法模块的调用数量,调用配置信息中可以不包含调用数量,示例性的,子算法模块提取过程中,已经根据需求提取了确定数量的子算法模块,在调用配置时,通过确定调用方式和/或调用顺序即可。
步骤S53、分别将子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供用户端调用。
本实施例中,当面对一个新的影像算法服务需求时,首先从模块库中选择需要的子算法模块并配置模块调用方式(如串行、并行)和调用顺序,并封装为原子化接口实现调用流程。如图8所示,图8示出了一个服务S的原子化接口调用流程,通过串行调用模块A、B、C、D,每个模块以进程形式独立部署。
区别于如图1和图2所示的相关技术,需要等待当前请求的所有算法模块处理完成后才能开始下一个请求处理的方式,本实施例技术方案得益于模块的独立部署和调用,如图9a所示,将原本无法利用的显存碎片使用显存占用更小的模块进行填充,如此各模块部署数量会有一定程度的增加,GPU显存利用率和算法服务并发能力均得到提升。并且,如图9b所示,每个模块均可在当前任务处理完成后立即接新任务继续处理,这将缩短各模块的空闲时间,有效降低多请求情况下的算法服务响应耗时。这相较于相关技术,本实施例技术方案能够较大程度地将缩短各模块的空闲时间,有效降低多请求情况下的算法服务响应耗时。
此外需要说明的是,本实施例提供的算法调用方法不局限于上述步骤的顺序,上述步骤的顺序仅为对本申请的一种可能示例,在一些实施例中,步骤之间也可以是其它顺序,例如,步骤S53中将子算法模块封装成第一算法服务接口,可以在从模块库中提取子算法模块之后进行。
请参照图10,图10为本申请实施例提供的另一种算法调用方法的流程示意图,在上述实施例的基础上,本实施例考虑到对各个子算法模块的单独调用,虽然较大程度缩短了各模块的空闲时间,并降低了多请求时的算法服务响应时间,但同时也增加了子算法模块的调用次数,这将可能导致算法服务整体耗时增加。以影像算法为例,每个子算法服务在被调用时要进行读图操作且该操作非常耗时,可通过对图片进行二进制转换来降低此读图耗时。为此,本实施例通过在模块库中增加格式转换模块,以有效解决多次调用子算法模块带来的耗时增加问题,以进一步提高算法调用效率。,具体地,本实施例模块库还包括用于转换文件格式的格式转换模块。
可选地,对于影像算法服务,格式转换模块可以为二进制文件转换模块,即2bin模块,将图像数据转换为二进制数据。在一些实施例中,对于其它目标算法服务,格式转换模块可以采用其它格式转换模块,本实施例对此不作具体限定。
本实施例中,针对影像算法服务中各个子算法模块的调用,在每次调用时需要进行读图操作。可以理解的,各模块独立部署,接口调用次数和图像读取次数也将增加。继续以图8中的算法服务S为例,使用相关技术的打包部署仅存在1次接口调用,相当于仅需要进行1次读图,而本实施例技术方案的独立部署需要进行4次接口调用,这将可能导致需要进行4次读图。经实验测试,接口调用耗时很短可忽略不计,而图像读取时间则产生了耗时瓶颈。
为了降低读图耗时,本实施例技术方案采用了二进制bin文件作为模块间图像数据共享的格式,对于常规尺寸图像(最长边约2500像素),可将读图耗时由常规方法(如图像处理Python Image Library,PIL库)的80毫秒降低至5毫秒左右,这可在一定程度上削弱读图次数增加带来的负面影响。具体地,通过新增一个img2bin模块用于将图像格式文件(如.jpg)转换成bin格式文件(.bin),其它子算法模块可以直接采用bin文件的读图方式,有效解决了每次读图时产生的读图耗时。
如图10所示,本实施例除了上述实施例中步骤S51-S53之外,还包括以下步骤S101和步骤S102,并将步骤S53进一步划分为步骤S53b。
步骤S101、从模块库中提取格式转换模块;并在步骤S53中将子算法模块封装成第一算法服务接口之前执行步骤S102、将格式转换模块封装成第二算法服务接口;
步骤S53b、分别将所述子算法模块封装成第一算法服务接口,并基于调用配置信息,将各个所述第一算法服务接口和所述第二算法服务接口整合为所述目标算法服务对应的统一调用接口。
需要说明的是,本实施例中的第一算法服务接口和第二算法服务接口仅用于区分类似类似对象,而无其它特殊含义,其可以为相同接口也可以为不同接口。
本实施例中,步骤S101和步骤S102设置在步骤S51之后和步骤S52之前,在一些实施例中,还可以为其它顺序,本实施例对此不作具体限定。
本实施例中,将调用顺序包括首先调用格式转换模块,再依次调用其它各子算法模块。示例性的,假设指定影像算法服务为影像算法服务的中的影像分类算法服务,该算法服务是为了识别出输入图像的所属类别,如身份证、发票等。为支持文档类图像的分类,该算法服务需要用到目标检测、方向检测、表头识别3个算法模块,同时为了降低读图耗时,也需要使用img2bin模块,共计4个模块。各模块功能及耗时详情见下表1所示:
表1
进一步地,各子算法模块选择及调用方式配置结合图11所示,4个模块采用串行方式依次调用,图像转bin模块结束后会暂存bin文件以便后续三个模块读取,并在最后一个模块处理完成后可以删除bin文件释放磁盘空间。可选地,针对文档类图像(如病历)可以采用完整调用4个模块以准确判断类别,而卡证类图像(如身份证)可以仅需调用前2个模块即可,本实施例中以文档类图像进行解释说明。
本实施例中,在模块库中新增格式转换模块,该格式转换模块可以部署在各个子算法模块之前,业务方在调用算法服务时,格式转换模块后面的子算法模块进行算法服务时,为经过格式转换模块的易于解析的文件,进而有效解决了多次调用所引起的耗时长的问题。
请参照图12,在上述实施例的基础上,本实施例考虑到算法服务中的每个子算法模块采用单进程进行部署时,在多并发请求情况下仍会出现请求排队现象,这将影像算法服务的响应时效。为了进一步提高服务并发能力,本实施例通过对服务中的每个模块进行多进程部署,通过确定每个子算法模块部署的进程数量,以提高算法服务的响应时效。具体地,本实施例除了上述步骤S51-S53之外,还包括步骤S121,并将步骤S53进一步划分为步骤S53a。
步骤S121、在调用请求的数量包括多个时,确定用于部署各个子算法模块的进程数量。
可以理解,在同时调用请求的数量包括多个时,确定用于部署各个子算法模块的进程数量。
步骤S53a、基于进程数量和调用配置信息,基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供用户端调用。
本实施例中,可以结合服务总耗时,确定用于部署各个子算法模块的部署数量,通过选择服务总耗时最低的进程数量组合,确定为各个子算法模块的进程数量。
进一步地,通过确定耗时瓶颈,并根据耗时瓶颈进行进程数量的调节,多请求并发时各个子算法模块的合理调用,进一步缩短服务耗时。具体地,上述步骤S121中确定用于部署各个子算法模块的进程数量,可以包括以下步骤:
确定用于部署各个子算法模块的初始进程数量;
基于初始进程数量,确定各个子算法模块对应的初始服务调用总耗时,并获取初始服务调用总耗时对应的耗时瓶颈子算法模块;
基于耗时瓶颈子算法模块,对初始进程数量进行多次调整,以获取多种用于部署各个子算法模块的优化部署组合;
获取各个优化部署组合的服务调用总耗时,并选择出服务调用总耗时最短的部署组合,并基于优化部署组合确定用于部署各个子算法模块的进程数量。
本实施例中,可以随机确定初始进程数量,也可以基于系统总资源确定初始进程数量,或者均从数量1开始,找到耗时瓶颈来增加进程数量确定初始进程数量,本实施例对初始进程数量的确定方式不作具体限定。在一可实现中,为了尽可能选择出耗时最低的部署组合,可以随机确定多种初始进程数量的形式,已选择出耗时最低的一种方式。
本实施例中,假设请求并发数为N,3个子算法模块平均耗时为T1,T2,T3,且T1<T2<T3:
(1)当算法服务中的每个子算法模块采用多进程部署时,服务请求总耗时与其中单个子算法模块耗时,模块调用先后顺序等因素有关。
(2)当每个子算法模块以串行方式调用,且指定各子算法模块部署的进程数量后,调用总耗时可通过以下公式计算得到。假设各模块部署的进程数量分别为M1,M2,M3:
Mmin=min(M1,M2,M3)
Tmin=max(T)of Mmin
Tother=sum(T1,T2,T3)-Tmin
式中,Mmin表示子算法模块中的最小进程数,Tmin表示子算法模块中的最短耗时,Tother表示除了最短耗时外的其它耗时,Ttotal表示总耗时。若M1=M2=M3=1(即各模块以单进程部署),调用总耗时为Ttotal=N×T3+T1+T2,服务总耗时瓶颈为其中耗时最长的模块。
由公式(1)可知,关键点是确定服务总耗时瓶颈(Mmin,Tmin),然后可优先增加其部署的进程数量。通过枚举多种模块进程部署数量组合,根据计算得到的调用总耗时可对比分析出最优的组合搭配。
在一更为具体的示例中,继续以影像分类算法服务为例,结合表1可知,影像分类算法服务的耗时瓶颈为img2bin模块(单模块耗时最长),以下列举3种模块进程数量组合以对比择优,假设请求并发数为5。
如图13a所示,随机选择一种进程部署方式,例如各子算法模块均进行单进程部署,进程数量比为A:B:C:D=1:1:1:1。该组合搭配中各子算法模块均进行单进程部署,Mmin=1,Tmin=max(A,B,C,D)=A,Tother=B+C+D,因此Ttotal=ceil(5/1)×A+B+C+D=5×A+B+C+D=2625ms。可以判断出耗时最大的子算法模块,也即耗时瓶颈(耗时瓶颈子算法模块)
如图13b所示,增加模块A部署的进程数的部署方式,进程数量比为A:B:C:D=5:1:1:1。该组合搭配增加了模块A部署的进程数,Mmin=1,Tmin=max(B,C,D)=B,Tother=A+C+D,因此Ttotal=ceil(5/1)×B+A+C+D=5×B+A+C+D=2025ms。
如图13c所示,增加所有模块部署的进程数的部署方式,进程数量比为A:B:C:D=4:4:4:2。该组合搭配中增加了所有模块部署的进程数,Mmin=2,Tmin=max(D)=D,Tother=A+B+C,因此Ttotal=ceil(5/2)×D+A+B+C=3×D+A+B+C=1475ms。
可以看出,通过对比上述三种模块部署数量组合的调用总耗时,组合3总体耗时最短,仅从耗时维度上来讲效果最优。但由于该组合中各模块部署的进程数量也最多,在实际应用中可进一步结合业务需求和服务器资源等因素综合得出每种图像算法服务最优的模块部署数量组合搭配方案。
综上,本申请实施例提供的技术方案在应用于影像算法服务(其它算法服务依次类推)部署和调用时,至少包括以下技术效果:(1)提高算法服务例如影像算法服务的并发能力及服务器资源利用率。通过实现算法服务模块化拆解和独立部署,对GPU服务器显存资源实现灵活分配,提高资源利用率;同时降低对外算法服务响应耗时,提高服务整体并发能力;(2)降低图像读取耗时。通过使用二进制bin文件作为模块间图像数据交互格式,可提升多模块算法服务的读图效率;(3)实现子算法模块复用,降低维护成本。通过算法功能模块整合形成标准的模块库,避免重复“造轮子”带来的服务器、开发人力资源浪费,同时降低后续算法模块及服务更新迭代时的维护成本;(4)结合算法模块部署数量规律,降低总耗时。通过摸索影像算法服务耗时的相关因素,计算和比对各种模块部署数量组合的总耗时,从中选择最优的搭配。(5)实现新需求快速上线。通过配置算法模块的调用方式和评估模块数量最优组合搭配,可实现复合算法服务新需求的快速上线。
本申请实施例相应还提供一种算法调用装置的结构示意图,如图14所示,该装置包括模块提取模块141、确定模块142和封装调用模块143,其中,
模块提取模块141,其设置为响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取目标算法服务对应的各个子算法模块;其中,模块库中包括所有目标算法服务分解得到的子算法模块;
确定模块142,其设置为分别确定子算法模块的调用配置信息,调用配置信息包括调用方式和/或调用顺序;
封装调用模块143,其设置为分别将子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供用户端调用。
在一种实施方式中,装置还包括:
分解及存储模块,其设置为将所有目标算法服务进行原子化分解,得到经过原子化分解的所有子算法对应的子算法模块,并将所有子算法模块存储至预建立的模块库中。
在一种实施方式中,分解及存储模块,具体设置为将所有子算法模块进行预处理后,存储至预建立的模块库;其中,对所有子算法模块进行预处理,包括:分析所有子算法模块的功能,并根据分析结果将功能相同的子算法模块整合为同一子算法模块。
在一种实施方式中,模块库还包括用于转换文件格式的格式转换模块;
模块提取模块141还设置为,从模块库中提取格式转换模块;
封装及调用模块143还设置为,并在将子算法模块封装成第一算法服务接口之前,将格式转换模块封装成第二算法服务接口,并将各个所述第一算法服务接口和所述第二算法服务接口整合为所述目标算法服务对应的统一调用接口。
在一种实施方式中,目标算法服务为影像算法服务,格式转换模块为二进制文件转换模块。
在一种实施方式中,装置还包括:
进程数量确定模块,其设置为在调用请求的数量包括多个时,确定用于部署各个子算法模块的进程数量;
封装及调用模块具体设置为,基于进程数量和调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口。
在一种实施方式中,进程数量确定模块,包括:
初始确定单元,其设置为确定用于部署各个子算法模块的初始进程数量;
瓶颈获取单元,其设置为基于初始进程数量,确定各个子算法模块对应的初始服务调用总耗时,并获取初始服务调用总耗时对应的耗时瓶颈子算法模块;
调整单元,其设置为基于耗时瓶颈子算法模块,对初始进程数量进行多次调整,以获取多种用于部署各个子算法模块的优化部署组合;
选择确定单元,其设置为获取各个优化部署组合的服务调用总耗时,并选择出服务调用总耗时最短的部署组合,并基于优化部署组合确定用于部署各个子算法模块的进程数量。
在此需要说明的是,本申请提供的上述装置,能够相应地实现上述方法实施例中服务器所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例相应还提供一种服务器,如图15所示,包括:收发器151、处理器152和存储器153;
处理器152执行存储器153存储的计算机执行指令,使得服务器执行上述实施例中的方案。处理器152可以是通用处理器,包括中央处理器CPU、网络处理器(networkprocessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器153通过系统总线与处理器152连接并完成相互间的通信,存储器153用于存储计算机程序指令。
收发器151可以用于实现通信数据的接收和发送,例如接收算法服务的调用请求。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
在此需要说明的是,本申请提供的上述服务器,能够相应地实现上述方法实施例中服务器所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例相应还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现的算法调用方法。
在此需要说明的是,本申请提供的上述计算机可读存储介质,能够相应地实现上述方法实施例中服务器所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例相应还提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行的算法调用方法。
在此需要说明的是,本申请提供的上述计算机程序产品,能够相应地实现上述方法实施例中服务器所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例相应还提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,执行的算法调用方法。
在此需要说明的是,本申请提供的上述芯片,能够相应地实现上述方法实施例中服务器所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电控单元或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种算法调用方法,其特征在于,包括:
响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取所述目标算法服务对应的各个子算法模块;其中,所述模块库中包括所有目标算法服务分解得到的子算法模块;
分别确定所述子算法模块的调用配置信息,所述调用配置信息包括调用方式和/或调用顺序;
分别将所述子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供所述用户端调用。
2.根据权利要求1所述的方法,其特征在于,在从预建立的模块库中提取所述目标算法服务对应的子算法模块之前,还包括:
将所有目标算法服务进行原子化分解,得到经过原子化分解的所有子算法对应的子算法模块,并将所有子算法模块存储至预建立的模块库中。
3.根据权利要求2所述的方法,其特征在于,所述将所有子算法模块存储至预先建立的模块库中,包括:
将所有子算法模块进行预处理后,存储至预建立的模块库;其中,对所有子算法模块进行预处理,包括:
分析所有子算法模块的功能,并根据分析结果将功能相同的子算法模块整合为同一子算法模块。
4.根据权利要求1所述的方法,其特征在于,所述模块库还包括用于转换文件格式的格式转换模块;所述方法还包括:
从所述模块库中提取所述格式转换模块,并在将所述子算法模块封装成第一算法服务接口之前,将所述格式转换模块封装成第二算法服务接口,并将各个所述第一算法服务接口和所述第二算法服务接口整合为所述目标算法服务对应的统一调用接口。
5.根据权利要求4所述的方法,其特征在于,所述目标算法服务为影像算法服务,所述格式转换模块为二进制文件转换模块。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
在所述调用请求的数量包括多个时,确定用于部署各个子算法模块的进程数量;
所述基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,包括:
基于所述进程数量和所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口。
7.根据权利要求6所述的方法,其特征在于,所述确定用于部署各个子算法模块的进程数量,包括:
确定用于部署各个子算法模块的初始进程数量;
基于所述初始进程数量,确定各个子算法模块对应的初始服务调用总耗时,并获取所述初始服务调用总耗时对应的耗时瓶颈子算法模块;
基于所述耗时瓶颈子算法模块,对所述初始进程数量进行多次调整,以获取多种用于部署各个子算法模块的优化部署组合;
获取各个优化部署组合的服务调用总耗时,并选择出服务调用总耗时最短的部署组合,并基于所述优化部署组合确定用于部署各个子算法模块的进程数量。
8.一种算法调用装置,其特征在于,包括:
模块提取模块,其设置为响应于用户端指定的目标算法服务的调用请求,从预建立的模块库中提取所述目标算法服务对应的各个子算法模块;其中,所述模块库中包括所有目标算法服务分解得到的子算法模块;
确定模块,其设置为分别确定所述子算法模块的调用配置信息,所述调用配置信息包括调用方式和/或调用顺序;
封装调用模块,其设置为分别将所述子算法模块封装成第一算法服务接口,并基于所述调用配置信息,将各个所述第一算法服务接口整合为所述目标算法服务对应的统一调用接口,以供所述用户端调用。
9.一种服务器,其特征在于,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述服务器执行权利要求1至7中任一项所述的算法调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的算法调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311581352.6A CN117492876A (zh) | 2023-11-23 | 2023-11-23 | 算法调用方法、装置、服务器及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311581352.6A CN117492876A (zh) | 2023-11-23 | 2023-11-23 | 算法调用方法、装置、服务器及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492876A true CN117492876A (zh) | 2024-02-02 |
Family
ID=89676204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311581352.6A Pending CN117492876A (zh) | 2023-11-23 | 2023-11-23 | 算法调用方法、装置、服务器及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492876A (zh) |
-
2023
- 2023-11-23 CN CN202311581352.6A patent/CN117492876A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220100576A1 (en) | Video processing method and device, electronic equipment and storage medium | |
CN113094434A (zh) | 数据库同步方法、系统、装置、电子设备及介质 | |
CN112069406B (zh) | 基于区块链离线支付的信息推送方法及云服务推送平台 | |
CN111506434A (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN112214321B (zh) | 一种新增微服务的节点选择方法、装置及微服务管理平台 | |
CN117667305A (zh) | 基于业务场景的安全策略的部署方法、装置及电子设备 | |
CN117492876A (zh) | 算法调用方法、装置、服务器及计算机存储介质 | |
CN111209283A (zh) | 一种数据处理方法及装置 | |
CN117333186A (zh) | 额度信息的获取方法、额度管控规则的建立方法及装置 | |
CN110688223A (zh) | 数据处理方法及相关产品 | |
CN114897426A (zh) | 分案信息处理方法、装置、计算机设备及存储介质 | |
CN106648874B (zh) | 一种批量任务的处理方法及装置 | |
CN108241671B (zh) | 业务处理方法和系统及存储介质 | |
CN115033590A (zh) | 一种多域数据融合的方法、装置和存储介质 | |
CN114371884A (zh) | Flink计算任务的处理方法、装置、设备和存储介质 | |
CN109634963B (zh) | 保单数据的处理方法、装置及可读存储介质 | |
CN113760524A (zh) | 任务执行方法和装置 | |
CN111552740A (zh) | 数据处理方法及装置 | |
CN111324732A (zh) | 模型训练方法、文本处理方法、装置及电子设备 | |
CN111008048B (zh) | 一种文件加载方法、装置及可读存储介质 | |
CN116204201B (zh) | 业务处理方法和装置 | |
CN117093468A (zh) | 测试用例生成方法、装置、设备、介质及计算机程序产品 | |
CN114880095A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN117271122A (zh) | 基于cpu和gpu分离的任务处理方法、装置、设备及存储介质 | |
CN114968586A (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 |