CN110162414A - 基于微服务架构实现人工智能服务的方法及装置 - Google Patents
基于微服务架构实现人工智能服务的方法及装置 Download PDFInfo
- Publication number
- CN110162414A CN110162414A CN201910102655.2A CN201910102655A CN110162414A CN 110162414 A CN110162414 A CN 110162414A CN 201910102655 A CN201910102655 A CN 201910102655A CN 110162414 A CN110162414 A CN 110162414A
- Authority
- CN
- China
- Prior art keywords
- micro services
- model
- feature
- service
- model micro
- 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
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 180
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000013507 mapping Methods 0.000 claims description 28
- 238000012360 testing method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 22
- 238000010801 machine learning Methods 0.000 claims description 21
- 238000012549 training Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 238000012512 characterization method Methods 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 24
- 230000002159 abnormal effect Effects 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000003066 decision tree Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 210000004218 nerve net Anatomy 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 230000006641 stabilisation Effects 0.000 description 2
- 238000011105 stabilization Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 206010006895 Cachexia Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 208000016318 wasting Diseases 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于微服务架构实现人工智能服务的方法及装置,所述微服务架构中部署有提供人工智能服务的模型微服务和特征微服务,所述方法包括:接收客户端发起的请求;响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务;为所确定的模型微服务定位需要的特征微服务;调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务;根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果;由所述模型微服务的执行结果生成所述人工智能服务的结果。采用本发明解决了现有技术中人工智能服务的实现成本较高的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于微服务架构实现人工智能服务的方法及装置。
背景技术
随着人工智能(AI)技术的迅速发展和企业级服务市场的壮大,AItoB服务(也称为人工智能服务)也越来越受到市场的关注。AItoB服务通常包括接入层解析、特征提取、模型计算、结果输出等步骤,且基于集中式单体架构(简称为巨石架构)实现上述步骤。
对于巨石架构而言,在面向客户频繁的多版本、多特征、多模型等定制需求时,往往意味着频繁地代码修改、代码堆叠、以及大量的回归测试、联调测试等,这严重影响了AItoB服务的开发部署效率和可维护性,无法保障AItoB服务的延续性和稳定性,容易造成运营事故。
由此可知,现有技术仍存在人工智能服务的实现成本较高的缺陷。
发明内容
为了解决相关技术中存在的人工智能服务的实现成本较高的问题,本发明各实施例提供一种基于微服务架构实现人工智能服务的方法及装置。
其中,本发明所采用的技术方案为:
在本发明实施例的一方面,一种基于微服务架构实现人工智能服务的方法,所述微服务架构中部署有提供人工智能服务的模型微服务和特征微服务,所述方法包括:接收客户端发起的请求,所述请求用于指示所述客户端请求的人工智能服务;响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务;为所确定的模型微服务定位需要的特征微服务,所述特征微服务用于提供所述模型微服务依赖的特征集;调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务;根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果;由所述模型微服务的执行结果生成所述人工智能服务的结果。
在本发明实施例的另一方面,一种基于微服务架构实现人工智能服务的装置,所述微服务架构中部署有提供人工智能服务的模型微服务和特征微服务,包括:请求接收模块,用于接收客户端发起的请求,所述请求用于指示所述客户端请求的人工智能服务;模型微服务确定模块,用于响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务;特征微服务确定模块,用于为所确定的模型微服务定位需要的特征微服务,所述特征微服务用于提供所述模型微服务依赖的特征集;特征微服务调用模块,用于调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务;模型微服务调用模块,用于根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果;结果生成模块,用于由所述模型微服务的执行结果生成所述人工智能服务的结果。
在本发明实施例的另一方面,一种基于微服务架构实现人工智能服务的装置,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的基于微服务架构实现人工智能服务的方法。
在本发明实施例的另一方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于微服务架构实现人工智能服务的方法。
在上述技术方案中,在微服务架构中部署有提供人工智能服务的模型微服务和特征微服务,以基于微服务架构实现人工智能服务。
具体地,响应客户端发起的请求,确定客户端所请求人工智能服务需要的模型微服务,并为该模型微服务定位需要的特征微服务,通过特征微服务的调用得到模型微服务依赖的特征集,并路由至模型微服务,以根据模型微服务依赖的特征集调用模型微服务,得到模型微服务的执行结果,进而由模型微服务的执行结果生成人工智能服务的结果。
相较于巨石架构,微服务架构部署有实现不同功能的微服务,使得实现不同功能的微服务可独立开发和演进,可独立部署,使得整体微服务架构对于局部的改动并不敏感,而且对于客户频繁的多版本、多特征、多模型等定制需求而言,无需频繁地代码修改、代码堆叠、以及大量的回归测试、联调测试等,能够充分地保障人工智能服务的延续性和稳定性,有效地降低了人工智能服务的实现成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本发明所涉及的实施环境的示意图。
图2是根据一示例性实施例示出的一种服务器的硬件结构框图。
图3是根据一示例性实施例示出的一种基于微服务架构实现人工智能服务的方法的流程图。
图4是图3对应实施例中步骤330在一个实施例的流程图。
图5是图4对应实施例所涉及的信息配置树的结构示意图。
图6是图4对应实施例中步骤333在一个实施例的流程图。
图7是图6对应实施例中步骤3331在一个实施例的流程图。
图8是图7对应实施例所涉及的信息配置树的结构示意图。
图9是图4对应实施例中步骤335在一个实施例的流程图。
图10是图3对应实施例中步骤350在一个实施例的流程图。
图11是图10对应实施例中步骤355在一个实施例的流程图。
图12是图3对应实施例中步骤370在一个实施例的流程图。
图13是图3对应实施例中步骤370在另一个实施例的流程图。
图14是图13对应实施例中步骤372在一个实施例的流程图。
图15是图3对应实施例中步骤390在一个实施例的流程图。
图16是图15对应实施例中步骤393在一个实施例的流程图。
图17是图15对应实施例中步骤393在另一个实施例的流程图。
图18是根据一示例性实施例示出的另一种基于微服务架构实现人工智能服务的方法的流程图。
图19是根据一示例性实施例示出的另一种基于微服务架构实现人工智能服务的方法的流程图。
图20是根据一示例性实施例示出的另一种基于微服务架构实现人工智能服务的方法的流程图。
图21是根据一示例性实施例示出的另一种基于微服务架构实现人工智能服务的方法的流程图。
图22是根据一示例性实施例示出的另一种基于微服务架构实现人工智能服务的方法的流程图。
图23是一应用场景中实现人工智能服务的方法所基于的微服务架构的结构示意图。
图24是一应用场景中一种基于微服务架构实现人工智能服务的方法的时序图。
图25是根据一示例性实施例示出的一种基于微服务架构实现人工智能服务的装置的框图。
图26是根据一示例性实施例示出的一种计算机设备的框图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如前所述,人工智能服务主要基于巨石架构实现。
具体地,人工智能服务包括接入层解析、特征提取、模型计算、结果输出等步骤,对于巨石架构而言,该些步骤都将被集中在同一个进程中完成。
那么,对于客户频繁的多版本、多特征、多模型等定制需求来说,往往仅能通过代码堆叠的方式来满足,进而会形成非常庞大臃肿的代码工程。
这就意味着,无论是哪个步骤变动,包括但不限于模型更新、客户配置更新、客户个性化需求定制等,都需要对整个代码工程进行代码修改、以及针对所修改的代码进行大量的回归测试、联调测试等,不仅严重影响了人工智能服务的开发部署效率和可维护性,无法保障人工智能服务的延续性和稳定性,容易造成运营事故。
此外,可以理解,面向海量客户提供人工智能服务,单一台服务器势必影响服务效率,这就需要多台服务器共同为海量客户提供人工智能服务,也就是说,用于实现人工智能服务的步骤都需要部署在各个服务器中,以形成服务集群。
然而,就单一台通过代码部署了实现人工智能服务的步骤的服务器来说,在单个模型更新、单个客户配置更新,都需要更新该台服务器所部署的所有代码,并且随着模型增多,服务器中的模型启动耗时将随之增加,并且容易造成单台服务器的存储能力和处理能力达到极限,进而无法充分保障单台服务器的稳定性,无法保障人工智能服务的服务效率。
并且,对于不同语言开发的模型而言,无法同时部署在同一台服务器中,这往往会带来额外地代码开发量,进而增加人工智能服务的实现成本,并且会减缓模型更新的速度,而无法很好地满足客户多样化的定制需求。
对于服务集群而言,在客户数量较少的情况下,存在资源浪费,而随着客户数量的逐步增加,又将引发服务集群的存储能力和处理能力达到极限的现象,需要通过数据迁移来缓解原有服务器的存储压力和负载压力,仍然会影响服务效率。
由上可知,人工智能服务的实现成本较高,为此,本发明特提出了一种基于微服务架构实现人工智能服务的方法,能够有效地降低人工智能服务的实现成本,相应地,该方法适用于基于微服务架构实现人工智能服务的装置,该装置可部署于架设冯诺依曼体系结构的电子设备中,例如,电子设备为服务器,以此实现基于微服务架构实现人工使能服务的方法。
图1为一种基于微服务架构实现人工智能服务的方法所涉及的实施环境的示意图。该实施环境包括终端110和服务器端130。
其中,终端110可供客户端运行,以便于客户发起用于指示所请求人工智能服务的请求。该终端110可以是台式电脑、笔记本电脑、平板电脑、智能手机、个人数字助理或者掌上电脑等等,在此不进行限定。
服务器端130可以是一台服务器,也可以是由多台服务器构成的服务器集群,甚至是由多台服务器构成的云计算中心。该服务器是为用户提供后台服务的电子设备,例如,后台服务包括但不限于人工智能服务等等。
该服务器端130部署有微服务架构,该微服务架构包括特征微服务、模型微服务等实现不同功能的微服务。根据实际运营的需要,实现不同功能的微服务可部署在同一服务器的不同进程上,也可以分别部署在不同服务器的不同进程上,在此并未加以限定。例如,服务器131的不同进程上部署了特征微服务和模型微服务,而服务器132仅部署了特征微服务,服务器133仅部署了模型微服务。
此外,随着客户所发起请求的增加或者减少,进行微服务架构部署的服务器端130,可以进行服务器的扩容、缩容或者裁撤。
进一步地,微服务架构中,还可部署负责在不同微服务之间路由的微服务网关,该微服务网关与不同微服务可部署于同一服务器中,也可以独立部署于服务器中,在此仍未加以限定。例如,在服务器133中部署微服务网关,以负责特征微服务和模型微服务的路由。
终端110与服务器端130之间通过无线或者有线等方式建立了网络连接,以通过所建立的网络连接实现终端110与服务器端130之间的数据传输。例如,传输的数据包括但不限于请求、人工智能服务的结果等等。
当客户端在终端110中运行,客户便可借助运行的客户端向服务器端130发起请求,以此通知服务器端130所请求的人工智能服务。
对于服务器端130而言,便基于微服务架构中部署的特征微服务和模型微服务,执行客户端所请求的人工智能服务,得到人工智能服务的结果,并返回至终端110。
图2是根据一示例性实施例示出的一种服务器的硬件结构框图。该种服务器适用于图1所示出实施环境的服务器端130。
需要说明的是,该种服务器只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。该种服务器也不能解释为需要依赖于或者必须具有图2中示出的示例性的服务器200中的一个或者多个组件。
服务器200的硬件结构可因配置或者性能的不同而产生较大的差异,如图2所示,服务器200包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。
具体地,电源210用于为服务器200上的各硬件设备提供工作电压。
接口230包括至少一有线或无线网络接口,用于与外部设备交互。例如,进行图1所示出实施环境中终端110与服务器端130之间的交互。
当然,在其余本发明适配的示例中,接口230还可以进一步包括至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,如图2所示,在此并非对此构成具体限定。
存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。
其中,操作系统251用于管理与控制服务器200上的各硬件设备以及应用程序253,以实现中央处理器270对存储器250中海量数据255的运算与处理,其可以是WindowsServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。
应用程序253是基于操作系统251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图2中未示出),每个模块都可以分别包含有对服务器200的一系列计算机可读指令。例如,实现人工智能服务的装置可视为部署于服务器的应用程序253。
数据255可以是存储于磁盘中的照片、图片等,还可以是信息配置树、键值数据等,存储于存储器250中。
中央处理器270可以包括一个或多个以上的处理器,并设置为通过至少一通信总线与存储器250通信,以读取存储器250中存储的计算机可读指令,进而实现对存储器250中海量数据255的运算与处理。例如,通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来完成基于微服务架构实现人工智能服务的方法。
此外,通过硬件电路或者硬件电路结合软件也能同样实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。
请参阅图3,在一示例性实施例中,一种基于微服务架构实现人工智能服务的方法适用于图1所示实施环境的服务器端,该服务器端的结构可以如图2所示。
该种基于微服务架构实现人工智能服务的方法可以由服务器端执行,包括以下步骤:
步骤310,接收客户端发起的请求。
其中,所述请求用于指示所述客户端请求的人工智能服务。
人工智能服务,可以是人脸识别、病毒检测、目标客户挖掘、内容推荐、借贷客户欺诈预测等等,本实施例并未对人工智能服务的类型作具体限定。相应地,由于人工智能服务的不同类型对应于不同的应用场景,例如,人脸识别可对应订单支付场景、门禁场景等,目标客户挖掘和内容推荐可对应广告推送场景,借贷客户欺诈预测可对应借贷反欺诈场景,因此,本实施例所涉及的实现人工智能服务的方法可应用于多种应用场景,在此并不加以限定。
对于客户端而言,将为客户提供一个请求发起入口,当客户希望服务器端为客户端执行人工智能服务,便可在该请求发起入口触发相关的操作,使得客户端检测到该操作,进而向服务器端发起请求。
例如,请求发起入口为客户端所提供的虚拟按键,当客户点击该虚拟按键,客户端便向服务器端发起请求,其中,该点击操作即视为客户在请求发起入口触发的相关操作。
相对地,服务器端便可接收到客户端发起的请求,以此获知客户借助客户端所请求的人工智能服务,进而在后续为客户端执行该人工智能服务。
进一步地,可以理解,对于服务器端而言,基于所配置的有线或无线网络接口,对外提供HTTP/HTTPS服务,那么,接收到的客户端所发起的请求实质是符合HTTP/HTTPS网络协议的。
为此,在接收到客户端发起的请求之后,服务器端会针对其自身所支持的传输协议,例如,UCP/TCP传输协议等,对接收到的请求进行协议转换,以方便于后续请求在服务器端内部的传输,从而保证请求响应效率。
步骤330,响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务。
模型微服务,部署于微服务架构,用于提供人工智能服务,也即是,用于执行人工智能服务中的模型计算步骤。
应当理解,每一个模型微服务适用于一种模型,为此,确定人工智能服务需要的模型微服务,本质上是确定需要执行模型计算的模型。
例如,通过请求,假设确定需要执行模型计算的模型有模型A1、模型A2和模型A3,那么,便能够确定人工智能服务需要的模型微服务包括:适用于模型A1的模型微服务、适用于模型A2的模型微服务、以及适用于模型A3的模型微服务。
进一步地,对于每一种模型而言,适用于该种模型的模型微服务可能存在多个,此时,关于模型微服务的确定,可以从部署于微服务架构的适用于该种模型的多个模型微服务中随机选取一个,也可以根据设定条件选取一个,例如,设定条件为模型微服务的负载数,本实施例并未加以限定。
步骤350,为所确定的模型微服务定位需要的特征微服务。
可以理解,模型微服务在执行模型计算时,依赖于特征集,也即是,模型微服务的输入是特征集。
基于此,所述特征微服务,部署于微服务架构,用于提供所述模型微服务依赖的特征集,也即是,用于执行人工智能服务中的特征提取步骤。
为此,为客户端执行人工智能服务,还需要为模型微服务定位其所需要的特征微服务,以得到模型微服务所依赖的特征集,使得模型微服务方能够依赖于特征集执行人工智能服务中的模型计算步骤。
应当理解,每一个特征微服务用于提取一个特征集,那么,定位模型微服务需要的特征微服务,首先需要确定模型微服务所依赖的特征集,然后方可基于特征集进一步确定用于提取该特征集的特征微服务,进而完成该特征微服务的路由。
例如,假设模型微服务所依赖的特征集有特征集B1和特征集B2,那么,便能够定位到模型微服务需要的特征微服务包括:用于提取特征集B1的特征微服务、用于提取特征集B2的特征微服务。
进一步地,对于每一种特征集而言,用于提取该特征集的特征微服务可能存在多个,此时,关于特征微服务的定位,可以从部署于微服务架构的用于该特征集的多个特征微服务中随机选取一个,也可以根据设定条件选取一个,例如,设定条件为特征微服务的内存占用率,本实施例并未加以限定。
关于路由,是基于微服务架构中部署的微服务网关实现的。
具体地,基于微服务架构,其所部署的微服务网关,用于负责特征微服务的路由,也就是说,在特征微服务被部署在微服务架构时,连接至该特征微服务的路由就进行了配置,并添加至了微服务网关,进而使得微服务网关得以负责特征微服务的路由。
由此,在确定模型微服务依赖的特征集之后,便可进一步确定用于提取该特征集的特征微服务,进而通过微服务网关实现该特征微服务的路由。
步骤370,调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务。
在定位得到模型微服务需要的特征微服务之后,便能够调用特征微服务,即执行人工智能服务中的特征提取步骤,得到模型微服务依赖的特征集。
其中,客户的不同需求使得特征微服务的类型可以有所区别。特征微服务,可以是用于特征编码的特征微服务,还可以是用于提取客户画像特征的特征微服务,本实施例对此并未加以限定。
在得到模型微服务依赖的特征集之后,则需要将该特征集路由至模型微服务,以使模型微服务依赖该特征集执行人工智能服务中的模型计算步骤。
具体地,微服务架构中部署的微服务网关,同样用于负责模型微服务的路由,也就是说,在模型微服务被部署在微服务架构时,连接至该模型微服务的路由就进行了配置,并添加至了微服务网关,进而使得微服务网关得以负责模型微服务的路由。
由此,在确定了人工智能服务需要的模型微服务之后,便可通过微服务网关将模型微服务依赖的特征集路由至模型微服务。
步骤380,根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果。
在得到模型微服务依赖的特征集之后,便能够调用模型微服务,即根据该特征集执行人工智能服务中的模型计算步骤,得到模型微服务的执行结果。
其中,实现人工智能服务的方法所对应的应用场景不同,使得模型微服务的执行结果可以有所区别。例如,在订单支付场景中,模型微服务的执行结果是人脸识别结果,或者,在广告推送场景中,模型微服务的执行结果是进行广告推送的目标客户,又或者,在借贷反欺诈场景中,模型微服务的执行结果是借贷客户的欺诈分数。
步骤390,由所述模型微服务的执行结果生成所述人工智能服务的结果。
由于客户多样化的定制需求,可能存在多模型的定制需求,那么,所调用的模型微服务可能有多个,相应地,得到的模型微服务的执行结果也可能存在多个。
由此,对于一个模型微服务的执行结果来说,该模型微服务的执行结果即为人工智能服务的结果。
而对于多个模型微服务的执行结果来说,为了生成人工智能服务的结果,还需要对多个模型微服务的执行结果进行合成。
其中,合成,可以是将多个模型微服务的执行结果拼接,也可以是将多个模型微服务的执行结果累加,例如,将每一个模型微服务输出的借贷客户的欺诈分数累加,得到借贷客户的欺诈总分数作为人工智能服务的结果,本实施例在此并未加以限定。
通过如上所述的过程,基于微服务架构实现人工智能服务,相较于巨石架构,不仅使得整体微服架构对于局部的改动不敏感,而且能够充分地保障人工智能服务的延续性和稳定性,进而有效地降低人工智能服务的实现成本。
请参阅图4,在一示例性实施例中,步骤330可以包括以下步骤:
步骤331,从所述请求中提取所述人工智能服务对应的服务查询信息。
服务查询信息,用于指示服务器端如何获得对应的模型微服务。
例如,服务查询信息可以是客户标识,那么,服务器端便能够根据客户标识获得客户标识唯一表示的客户所需要的模型微服务。
又或者,服务查询信息可以是场景标识,那么,服务器端便能够根据场景标识获得在场景标识唯一表示的场景下所需要的模型微服务。
其中,客户的不同,将使得场景也有所区别。例如,客户为金融机构,则场景包括车贷、房贷、信用贷、消费贷等等。
由此,可以理解,基于不同客户不同场景所需要执行的人工智能服务的不同,不同客户,服务查询信息有所不同,不同场景,服务查询信息也有所差别。也就是说,服务查询信息,是对不同客户不同场景所需要执行的人工智能服务的描述,以便于服务器端能够基于服务查询信息获得人工智能服务需要的模型微服务。
对于客户端而言,可在请求发起入口中设置一个信息入口,例如,信息入口可以是输入对话框,客户可以在该输入对话框中输入服务查询信息,以此触发客户端向服务器端发起请求。
那么,服务器端便会接收到携带了服务查询信息的请求,并由该请求中提取人工智能服务对应的服务查询信息,进而方能够基于提取的服务查询信息触发进行后续模型微服务的获取。
步骤333,查询信息配置树,获得与所述服务查询信息对应的模型微服务。
本实施例中,信息配置树是基于不同客户不同场景所需要执行的人工智能服务预先构建的。换而言之,信息配置树,与服务查询信息、以及服务查询信息对应的模型微服务有关。
信息配置树包括若干分支,每一分支由若干个节点以及若干条连接在节点之间的路径构成。
其中,节点划分为:根节点、分支节点和叶节点。根节点是指信息配置树的起始节点,叶节点则是指信息配置树的终止节点,而分支节点则是区别于根节点和叶节点的其余节点。
进一步地,叶节点上存储了配置值,该配置值用于唯一地表示模型微服务。
连接在节点之间的路径,用于指示查询条件。
那么,由根节点指向叶节点的路径,当该路径所指示的查询条件与服务查询信息匹配时,该叶节点即表征了该服务查询信息对应的模型微服务。
举例来说,如图5所示,在信息配置树400中,包括5个分支,每个分支由若干节点以及若干条连接在节点之间的路径构成。
节点401为信息配置树400的起始节点,即根节点;节点404和节点405为信息配置树400的两个终止节点,即叶节点;而节点402和节点403,介于该根节点与上述两个叶节点之间,为信息配置树400的两个分支节点。
由根节点401指向分支节点402的路径,其所指示的查询条件为0;由分支节点402指向分支节点403的路径,其所指示的查询条件为0;由分支节点403指向叶节点404的路径,其所指示的查询条件为0。
由此,由根节点401指向叶节点404的路径,其所指示的查询条件为000,同理,由根节点401指向叶节点405的路径,其所指示的查询条件为001。
相应地,如果服务查询信息为000,则叶节点404表征了该服务查询信息000对应的模型微服务,即模型微服务A1通过叶节点404上的配置值A1唯一地表示。
如果服务查询信息为001,则叶节点405表征了该服务查询信息001对应的模型微服务,即模型微服务A2通过叶节点405上的配置值A2唯一地表示。
在此补充说明的是,根节点、分支节点也可以存储相关数值,例如,以路由至该分支节点所需要满足的查询条件进行存储。如图5所示,假设分支节点402上存储数值为0,即表示当查询条件为0,则可由根节点401路由至该分支节点402;又或者,假设分支节点403上存储数值为00,即表示当查询条件为00,则可由根节点401先路由至分支节点402,再由分支节点402路由至该分支节点403。
由上可知,基于信息配置树的查询,便可获得服务查询信息对应的模型微服务。
步骤335,由所述服务查询信息对应的模型微服务得到所述客户端所请求人工智能服务需要的模型微服务。
在上述实施例的作用下,实现了基于信息配置树的模型微服务的快速查找,从而有利于提高人工智能服务的服务效率。
请参阅图6,在一示例性实施例中,步骤333可以包括以下步骤:
步骤3331,在所述信息配置树所包含的若干分支中,将该若干分支中路径指示的查询条件与所述服务查询信息进行匹配,得到所指示查询条件与所述服务查询信息匹配的路径。
步骤3333,基于匹配得到的路径所在分支,将该分支包含叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
结合图5,对基于信息配置树查询服务查询信息对应的模型微服务的过程加以说明。
假设服务查询信息为001,那么,在信息配置树400所包含的5个分支中,进行该5个分支中路径所指示的查询条件与服务查询信息001之间的匹配。
具体地,分支1中的路径,由根节点401指向叶节点404,其所指示的查询条件为000,与服务查询信息001不匹配。
分支2中的路径,由根节点401指向叶节点405,其所指示的查询条件为001,与服务查询信息001匹配。
由此,便可得到所指示查询条件与服务查询信息001匹配的路径为:由根节点401指向叶节点405的路径。
相应地,基于该路径所在分支,便可将分支包含的叶节点405所表征的模型微服务作为服务查询信息001对应的模型微服务,即模型微服务A2通过叶节点405上的配置值A2唯一地表示。
上述过程中,通过匹配查找,使得基于信息配置树的模型微服务的快速查找得以实现,从而充分保障了人工智能服务的服务效率。
在一示例性实施例中,所述服务查询信息包括客户标识和场景标识,所述信息配置树包括多标识配置树和单标识配置树。
其中,客户标识,用于唯一地表示需要执行人工智能服务的客户。
场景标识,用于唯一地表示需要执行人工智能服务的场景。
可以理解,基于客户的多样化定制需求,有的人工智能服务仅与场景有关,而有的人工智能服务不仅与场景有关,还与客户有关。
由此,多标识配置树,实质是指与客户标识和场景标识有关的信息配置树,而单标识配置树,则是指仅与场景标识有关的信息配置树。
相应地,如图7所示,步骤3331可以包括以下步骤:
步骤410,针对所述多标识配置树所包含的若干分支,在该若干分支由第一根节点指向第一分支节点或者第一叶节点的若干条第一路径中,搜索所指示第一查询条件与所述客户标识匹配的第一路径。
如图5所示,信息配置树400为多标识配置树,其中,0和1可作为客户标识,即000、001、以及10、11分别唯一地表示不同的客户;而2~5则作为场景标识,分别唯一地表示不同的场景。
那么,在多标识配置树400中,不仅存在所指示查询条件与客户标识匹配的路径,例如,由根节点401指向叶节点404的路径、由根节点401指向分支节点411的路径等;还存在所指示查询条件与场景标识匹配的路径,例如,由分支节点411指向叶节点409的路径等。
基于此,在基于多标识场景配置树进行服务查询信息对应的模型微服务查询时,首先要搜索所指示查询条件与客户标识匹配的路径。
如果未搜索到匹配的第一路径,表示在多标识配置树中并不存在与客户标识对应的模型微服务,则跳转执行步骤430,即在单标识配置树中搜索所指示查询条件与场景标识匹配的路径。
反之,如果搜索到匹配的第一路径,例如,由根节点401指向叶节点404的路径、由根节点401指向分支节点411的路径,可以看出,对于叶节点404而言,作为多标识配置树的终止节点,无法继续搜索所指示查询条件与场景标识匹配的路径,而对于分支节点411来说,由于并非多标识配置树的终止节点,仍可以继续搜索所指示查询条件与场景标识匹配的路径。
为此,如果搜索到匹配的第一路径,则进一步判断搜索到匹配的第一路径是由第一根节点指向第一分支节点,还是由第一根节点指向第一叶节点。
如果搜索到匹配的第一路径是由第一根节点指向第一分支节点,例如,搜索到匹配的路径为:由根节点401指向分支节点411的路径,则跳转执行步骤450,即在多标识配置树中继续搜索所指示查询条件与场景标识匹配的路径。
否则,如果搜索到匹配的第一路径是由第一根节点指向第一叶节点,例如,搜索到匹配的路径为:由根节点401指向叶节点404的路径,则跳转执行步骤3333,即停止在多标识配置树中继续搜索所指示查询条件与场景标识匹配的路径。
步骤430,如果未搜索到匹配的第一路径,则针对所述单标识配置树所包含的若干分支,在该若干分支由第二根节点指向第二叶节点的若干条第二路径中,搜索得到所指示第二查询条件与所述场景标识匹配的第二路径。
如图8所示,单标识配置树500包括4个分支,每个分支由若干节点以及若干条连接在节点之间的路径构成。
区别于多标识配置树,单标识配置树不存在分支节点,具体地,节点501为单标识配置树500的起始节点,即根节点;节点502~505为单标识配置树500的终止节点,即叶节点。
由根节点501指向叶节点502的路径,其所指示的查询条件为2;由根节点501指向叶节点503的路径,其所指示的查询条件为3;由根节点501指向叶节点504的路径,其所指示的查询条件为4;由根节点501指向叶节点505的路径,其所指示的查询条件为5。
基于此,进行路径所指示查询条件与场景标识之间的匹配,便可搜索得到所指示查询条件与场景标识匹配的路径。
例如,假设场景标识为4,则所指示查询条件与场景标识4匹配的路径为:由根节点501指向叶节点504的路径。
步骤450,如果搜索到匹配的第一路径由所述第一根节点指向所述第一分支节点,则由所述多标识配置树得到以该第一分支节点作为根节点的多标识配置子树。
步骤470,针对所述多标识配置子树所包含若干分支,在该若干分支由该第一分支节点指向所述第一叶节点的若干条第三路径中,搜索得到所指示第二查询条件与所述场景标识匹配的第三路径。
如图5所示,假设客户标识为11,则搜索到匹配的路径为:由根节点401指向分支节点411的路径,那么,便可由多标识配置树400得到以分支节点411作为根节点的多标识配置子树400’。
基于多标识配置子树400’,继续搜索所指示查询条件与场景标识匹配的路径,假设场景标识为5,则搜索到匹配的路径为:由分支节点411指向叶节点409的路径。
在上述过程中,通过客户标识和场景标识的结合,实现了不同信息配置树的设置,使得人工智能服务可以支持多场景,有效地保障了人工智能服务的灵活性,满足了客户多样化的定制需求。
在一示例性实施例中,基于步骤410搜索得到的由第一根节点指向第一叶节点的第一路径,步骤3333可以包括以下步骤:
如果搜索到匹配的第一路径由所述第一根节点指向所述第一叶节点,则将该第一叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
如图5所示,如果搜索到匹配的路径为:由根节点401指向叶节点404的路径,则针对该路径所在分支,分支所包含叶节点404表征了服务查询信息对应的模型微服务。
其中,服务查询信息为客户标识000,模型微服务A1则通过叶节点404上的配置值A1唯一地表示。
在一示例性实施例中,基于步骤430搜索得到的由第二根节点指向第二叶节点的第二路径,步骤3333可以包括以下步骤:
基于匹配得到的第二路径所在分支,将该分支包含第二叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
如图8所示,如果搜索到匹配的路径为:由根节点501指向叶节点504的路径,则针对该路径所在分支,分支所包含叶节点504表征了服务查询信息对应的模型微服务。
其中,服务查询信息为场景标识4,模型微服务A3则通过叶节点504上的配置值A3唯一地表示。
在一示例性实施例中,基于步骤470搜索得到的由第一分支节点指向第一叶节点的第三路径,步骤3333可以包括以下步骤:
基于匹配得到的第三路径所在分支,将该分支包含第一叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
如图5所示,如果搜索到匹配的路径为:由分支节点411指向叶节点409的路径,则针对该路径所在分支,分支所包含叶节点409表征了服务查询信息对应的模型微服务。
其中,服务查询信息为客户标识11和场景标识5,模型微服务A4则通过叶节点409上的配置值A4唯一地表示。
通过上述实施例的配合,实现了模型微服务的查询,为执行人工智能服务中模型计算步骤提供了依据,进而保证人工智能服务得以实现。
请参阅图9,在一示例性实施例中,步骤335可以包括以下步骤:
步骤3351,针对每一种模型,根据所述服务查询信息对应的模型微服务确定适用于该种模型的多个候选模型微服务。
步骤3353,获取每一个候选模型微服务对应的运行数据。
步骤3355,根据获取到的运行数据,对多个候选模型微服务进行筛选,得到所述人工智能服务需要的模型微服务。
应当理解,每一个模型微服务适用于一种模型,而对于每一种模型而言,部署于微服务架构的模型微服务至少存在一个,以此提高人工智能服务的可靠性。
基于此,关于模型微服务的获取,可以从部署于微服务架构的适用于该种模型的至少一个模型微服务中随机选取,也可以根据适用于该种模型的各个模型微服务对应的运行数据进行选取。
其中,模型微服务的运行数据包括负载数、内存占用率、CPU占用率、网络速率、丢包率等等,可通过对微服务架构中各模型微服务的运行状况进行监控获得。
具体而言,基于微服务网关,各模型微服务与该微服务网关之间预先建立了无线或者有线网络连接,以通过所建立的网络连接实现微服务网关与各模型微服务之间的数据传输。例如,传输的数据包括各模型微服务上报至微服务网关的运行数据。
本实施例中,针对每一种模型,人工智能服务需要的模型微服务从适用于该种模型的多个候选模型微服务中筛选得到。
例如,对于模型A而言,部署于微服务架构的适用于该模型A的候选模型微服务有A1、A2,假设候选模型微服务A1的负载数小于候选模型微服务A2的负载数,则确定候选模型微服务A1为人工智能服务需要的适用于该模型A的模型微服务。
在上述过程中,通过为每一种模型部署多个模型微服务于微服务架构,即使其中一个模型微服务运行异常,仍可以由运行正常的模型微服务执行人工智能服务中的模型计算步骤,由此充分保证了人工智能服务的可靠性。
请参阅图10,在一示例性实施例中,步骤350可以包括以下步骤:
步骤351,获取第一键值数据,所述第一键值数据用于表征模型微服务及其依赖的特征集之间的映射关系。
可以理解,模型微服务用于执行人工智能服务中的模型计算步骤,而特征微服务则用于执行人工智能服务中的特征提取步骤,也即是,用于提取模型微服务所依赖的特征集。
为了实现基于模型微服务的特征微服务定位,服务器端将在模型微服务及其依赖的特征集之间构建键与键值之间的映射关系,所构建的映射关系通过第一键值数据表示。
由此,在该第一键值数据中,键用于表示模型微服务,键值则用于表示模型微服务所依赖的特征集。
下面对服务器端生成第一键值数据加以说明。
基于客户多样化的定制需求,收集了不同客户在不同场景下需要执行的人工智能服务,相应地,服务器端便可获知人工智能服务需要的模型微服务、以及该模型微服务依赖的特征集,方可在模型微服务及其依赖的特征集之间构建键与键值之间的映射关系。
举例来说,针对客户M,其在场景N下需要执行的人工智能服务为A,该人工智能服务A需要的模型微服务包括A1、A2、A3,其中,模型微服务A1依赖的特征集包括B1、B2,模型微服务A2依赖的特征集包括B1、B2、B3,模型微服务A3依赖的特征集包括B2、B3。
那么,对于模型微服务A1来说,第一键值数据L1为{A1,(B1,B2)},表征模型微服务A1及其依赖的特征集B1、B2之间的映射关系。
对于模型微服务A2来说,第一键值数据L2为{A2,(B1,B2,B3)},表征模型微服务A2及其依赖的特征集B1、B2、B3之间的映射关系。
对于模型微服务A3来说,第一键值数据L3为{A3,(B2,B3)},表征模型微服务A3及其依赖的特征集B2、B3之间的映射关系。
由此,基于客户M在场景N下需要执行的人工智能服务A,服务器端便生成了相应的第一键值数据L1、L2、L3,进而在后续客户M借助客户端向服务器端发起请求时,方能够根据该第一键值数据L1、L2、L3实现模型微服务A1、A2、A3所需要特征微服务的定位,以为客户端执行人工智能服务A。
步骤353,以所述模型微服务作为键,根据该键在所述第一键值数据中进行键值映射,得到与该键具有映射关系的键值。
例如,假设需要进行特征微服务定位的模型微服务为A2,那么,便可以该模型微服务A2作为键,在第一键值数据L2:{A2,(B1,B2,B3)}中进行键值映射,得到与该键A2具有映射关系的键值(B1,B2,B3)。
由此,便确定了模型微服务A2依赖的特征集包括B1、B2、B3。
步骤355,由该键值确定所述模型微服务需要的特征微服务,并进行特征微服务的路由。
在确定模型微服务依赖的特征集之后,便可基于该特征集进一步确定用于提取该特征集的特征微服务,并通过特征微服务的路由完成模型微服务需要的特征微服务的定位。
通过上述实施例的配合,基于第一键值数据实现了特征微服务的快速定位,有利于提高人工智能服务的服务效率。
请参阅图11,在一示例性实施例中,步骤355中由该键值确定所述模型微服务需要的特征微服务的步骤,可以包括以下步骤:
步骤3551,针对所述模型微服务所依赖的每一个特征集,根据得到的键值确定用于提取该特征集的多个候选特征微服务。
步骤3553,获取每一个候选特征微服务对应的运行数据。
步骤3555,根据获取到的运行数据,对多个候选特征微服务进行筛选,得到所述模型微服务需要的特征微服务。
同理于模型微服务,每一个特征微服务用于提取一个特征集,而对于每一个特征集而言,部署于微服务架构的特征微服务至少存在一个,以此提高人工智能服务的可靠性。
基于此,关于特征微服务的定位,可以从部署于微服务架构的用于提取该特征集的至少一个特征微服务中随机选取,也可以根据用于提取该特征集的各个特征微服务对应的运行数据进行选取。
其中,特征微服务的运行数据也包括负载数、内存占用率、CPU占用率、网络速率、丢包率等等,可通过对微服务架构中各特征微服务的运行状况进行监控获得。
具体而言,基于微服务网关,各特征微服务与该微服务网关之间预先建立了无线或者有线网络连接,以通过所建立的网络连接实现微服务网关与各特征微服务之间的数据传输。例如,传输的数据包括各特征微服务上报至微服务网关的运行数据。
本实施例中,针对每一个特征集,模型微服务需要的特征微服务从用于提取该特征集的多个候选特征微服务中筛选得到。
例如,对于模型微服务A1所依赖的特征集B而言,部署于微服务架构的用于提取该特征集B的候选特征微服务有B1、B2,假设候选特征微服务B1的CPU占用率大于候选特征微服务B2的CPU占用率,则确定候选特征微服务B2为模型微服务A1需要的用于提取该特征集B的特征微服务。
在上述实施例的作用下,通过为每一个特征集部署多个特征微服务于微服务架构,即使其中一个特征微服务运行异常,仍可以由运行正常的特征微服务执行人工智能服务中的特征提取步骤,由此充分保证了人工智能服务的可靠性。
请参阅图12,在一示例性实施例中,步骤370中所述调用所述特征微服务得到所述模型微服务依赖的特征集的步骤,可以包括以下步骤:
步骤371,获取第二键值数据,所述第二键值数据用于表征所述模型微服务依赖的多个特征集之间的依赖关系。
应当理解,第一键值数据,表征了模型微服务及其依赖的特征集之间的映射关系,并不能够反映模型微服务依赖的多个特征集之间的依赖关系。
例如,对于模型微服务A2来说,第一键值数据L2:{A2,(B1,B2,B3)}仅描述了该模型微服务A2依赖的特征集包括B1、B2、B3。
故而,为了更加明确地反映模型微服务依赖的多个特征集之间的依赖关系,服务器端将在模型微服务依赖的多个特征集之间构建键与键值之间的映射关系,所构建的映射关系通过第二键值数据表示。
由此,在该第二键值数据中,键用于表示模型微服务依赖的一个特征集,键值则用于表示依赖该特征集的其余特征集。
例如,对于模型微服务A2而言,第二键值数据L4包括{B1,B2}、{B2,B3},分别表征了特征集B2及其依赖的特征集B1之间的映射关系、特征集B3及其依赖的特征集B2之间的映射关系。
在此补充说明的是,特征集B2依赖于特征集B1,也可以理解为,特征微服务在进行特征集B2的提取时,需要输入特征集B1,方能够提取到模型微服务A1依赖的特征集B2。
步骤373,按照获取到的依赖关系,确定所述模型微服务需要的多个特征微服务的调用顺序。
仍以上述例子进行说明,假设模型微服务A2需要的多个特征微服务包括C1、C2、C3,其中,特征微服务C1用于提取模型微服务A2依赖的特征集B1,特征微服务C2用于提取模型微服务A2依赖的特征集B2,特征微服务C3用于提取模型微服务A2依赖的特征集B3。
那么,基于特征集B1、B2、B3之间的依赖关系,便可确定特征微服务C1、C2、C3的调用顺序:先调用特征微服务C1,再调用特征微服务C2,最后调用特征微服务C3。
步骤375,按照所述调用顺序依次调用多个特征微服务,得到所述模型微服务依赖的多个特征集,每一个特征微服务对应一个特征集。
由上述例子可知,先调用特征微服务C1,得到模型微服务A2依赖的特征集B1,再基于该特征集B1调用特征微服务C2,得到模型微服务A2依赖的特征集B2,最后基于该特征集B2调用特征微服务C3,得到模型微服务A2依赖的特征集B3。
在上述实施例的作用下,实现了基于多个特征集之间依赖关系的特征微服务调用,确保了特征微服务的正常运行,有效地避免服务失效,进而充分地保障了人工智能服务的可靠性和服务效率。
请参阅图13,在一示例性实施例中,步骤370中所述将所述模型微服务依赖的特征集路由至所述模型微服务的步骤,可以包括以下步骤:
步骤372,根据所述第二键值数据,检测所述模型微服务依赖的多个特征集是否缺失。
如前所述,在该第二键值数据中,键用于表示模型微服务依赖的一个特征集,键值则用于表示依赖该特征集的其余特征集。
由此,便可基于第二键值数据,对模型微服务依赖的多个特征集进行检测,如果所依赖的特征集无效,便可视为该特征集缺失。
例如,对于模型微服务A2而言,特征集B2依赖于特征集B1,且特征集B3依赖于特征集B2,那么,如果特征集B1无效,则特征集B2视为缺失,同理,如果特征集B2无效,则特征集B3视为缺失。
步骤374,获取缺失的特征集所对应的权重值,累加计算得到缺失权重值。
权重值,用于表示特征集对模型微服务的重要性,可以理解,如果缺失的特征集所对应的权重值越大,将使得缺失权重值越大。
步骤376,如果所述缺失权重值未超过缺失阈值,则将所述模型微服务依赖的多个特征集路由至所述模型微服务。
当缺失权重值过大,可能导致模型微服务因所依赖的特征集缺失严重,而不能够正常运行,此时,则没有必要对缺失严重的特征集进行路由,进而使得模型微服务不调用,以此避免资源浪费。
换而言之,仅有当缺失权重值未超过缺失阈值,模型微服务依赖的多个特征集才会路由至模型微服务,以便于进行模型微服务的调用。
当然,根据应用场景的实际需要,缺失阈值可以灵活地调整,在此并未加以限定。
在上述实施例的作用下,基于第二键值数据有效地保证了模型微服务的正常运行,进而充分地保障了人工智能服务的可靠性和服务效率。
请参阅图14,在一示例性实施例中,步骤372可以包括以下步骤:
步骤3721,对所述模型微服务依赖的多个特征集进行遍历,以遍历到的特征集作为键值,根据该键值在所述第二键值数据中进行键映射,得到与该键值具有映射关系的键。
例如,假设遍历到模型微服务A2依赖的特征集为B3,那么,便可以该特征集B3作为键值,在第二键值数据L4:{B1,B2}、{B2,B3}中进行键映射,得到与该键值B3具有映射关系的键B2。
由此,便确定了特征集B3依赖的特征集为B2。
步骤3723,如果得到的键有效,则判定遍历到的特征集未缺失,并继续检测所述模型微服务依赖的后一个特征集,直至完成所述遍历。
仍以上述例子进行说明,如果特征集B2有效,则可判定特征集B3未缺失,反之,如果特征集B2无效,则可判定特征集B3缺失。
待完成特征集B3的缺失检测,方可继续检测模型微服务A2依赖的其余特征集,直至模型微服务A2依赖的所有特征集完成遍历。
在一实施例的具体实现中,键与键值之间的映射关系通过map函数实现,即map(key,value)。其中,key表示键,value表示与key具有映射关系的键值。
在此补充说明的是,基于map函数自身所支持的协议,在进行键映射或者键值映射时,不仅能够得到相应的键或者键值,而且还能够得到用于表示该键或者键值的有效性的标识。
在上述实施例的作用下,通过特征集的缺失检测,保证了模型微服务的正常运行,能够有效地避免服务失效,进而充分地保障了人工智能服务的可靠性和服务效率。
请参阅图15,在一示例性实施例中,所述微服务架构中还部署有集成微服务,用于执行人工智能服务中结果输出步骤。
相应地,步骤390可以包括以下步骤:
步骤391,将多个所述模型微服务的执行结果路由至所述集成微服务。
本实施例中,执行结果的路由基于微服务网关实现。
具体地,微服务架构中部署的微服务网关,同样用于负责集成微服务的路由,也就是说,在集成微服务被部署在微服务架构时,连接至该集成微服务的路由就进行了配置,并添加至了微服务网关,进而使得微服务网关得以负责集成微服务的路由。
由此,在获得多个模型微服务的执行结果之后,便可通过微服务网关将多个模型微服务的执行结果路由至集成微服务。
步骤393,调用所述集成微服务,将多个所述模型微服务的执行结果合成为所述人工智能服务的结果。
其中,所述模型微服务的执行结果可以包括所述模型微服务输出的模型分数,还可以包括所示模型微服务输出的标签。
相应地,当模型微服务的执行结果包括模型微服务输出的模型分数,如图16所示,在一实施例中,步骤393可以包括以下步骤:
步骤3931,将多个所述模型微服务输出的模型分数输入机器学习模型,进行模型总分数预测。
其中,机器学习模型,实质上构建了多个模型微服务输出的模型分数与模型总分数之间的映射关系。那么,基于构建的映射关系,将多个模型微服务输出的模型分数输入机器学习模型,便可预测得到对应的模型总分数。
在一实施例的具体实现中,预测是通过机器学习模型中的分类器实现的,即,通过机器学习模型中的分类器计算输入数据属于对应模型总分数的概率。
举例来说,假设两个模型微服务A和B输出的模型分数分别为a1、b1,可对应的模型总分数包括c1、c2、c3、c4、c5,
基于完成训练的机器学习模型,输入a1、b1,分别计算输入数据属于模型总分数c1、c2、c3、c4、c5的概率,假设分别为P1、P2、P3、P4、P5。
那么,如果P1最大,则表示预测得到的模型总分数为c1。同理,如果P2最大,则表示预测得到的模型总分数为c2,以此类推,在此不重复描述。
当然,为了进一步提高预测的准确性,还可以设置概率阈值,那么,只有当计算得到的概率大于概率阈值,才可将该概率对应的模型总分数视为预测得到的模型总分数。其中,概率阈值可以根据客户多样化的定制需求灵活地调整,在此不加以限定。
步骤3933,将预测得到的模型总分数作为所述人工智能服务的结果。
通过上述过程,实现了基于机器学习模型的模型总分数的准确预测。
进一步地,当模型微服务的执行结果还包括模型微服务输出的标签,如图17所示,在另一实施例中,步骤393还可以包括以下步骤:
步骤3932,基于为模型微服务设置的标签规则,查找与所述模型微服务输出的模型分数对应的标签。
标签规则,实质上是构建了模型分数与标签之间的对应关系,那么,基于该标签规则所构建的对应关系,便可查找到不同模型分数对应的标签。
举例来说,假设标签可以为e1、e2、e3、e4、e5,模型分数为1~100,则标签规则中,模型分数1~20对应的标签为e1,模型分数21~40对应的标签为e2,模型分数41~60对应的标签为e3,模型分数61~80对应的标签为e4,模型分81~100对应的标签为e5。
那么,当模型微服务A和B输出的模型分数分别为a1=70、b1=90,便可通过标签规则,查找到模型微服务A输出的模型分数70对应的标签为e4,而模型微服务B输出的模型分数90对应的标签为e5。
步骤3934,将查找到的标签添加至所述人工智能服务的结果。
在上述实施例的作用下,基于集成微服务实现了人工智能服务的结果生成,不仅支持多模型,而且支持多结果,能够有效地满足客户多样化的定制需求。
请参阅图18,在一示例性实施例中,如上所述的方法还可以包括以下步骤:
步骤510,通过所述特征微服务获得训练特征集,根据所述训练特征集对所述新模型进行训练。
训练,实质上是通过训练特征集对机器学习模型的参数进行迭代优化,使得基于此参数的指定算法函数收敛。
可选地,机器学习模型,可以是随机森林模型、逻辑回归模型、决策树模型、神经网络模型、XGBOOST模型等等。进一步地,决策树模型可以包括自适应提升决策树模型、梯度提升决策树模型等,神经网络模型还包括卷积神经网络模型、残差神经网络模型、循环神经网络模型、深度神经网络模型等。
可选地,指定算法函数包括最大期望函数、损失函数等。
下面以损失函数为例对机器学习模型的训练过程加以说明。
具体而言,随机初始化机器学习模型的参数,通过机器学习模型的前向传播计算当前一个训练特征集的概率,通过计算的概率预测模型总分数,基于预测得到的模型总分数与正确标注之间的Dice距离构建损失函数,并进一步地计算该损失函数的损失值。
如果损失函数的损失值未达到最小,则通过机器学习模型的反向传播更新机器学习模型的参数,并通过机器学习模型的前向传播重新计算后一个训练特征集的概率,通过计算的概率重新预测模型总分数,基于重新预测得到的模型总分数与正确标注之间的Dice距离重新构建损失函数,并再次计算重新构建的损失函数的损失值。
如此迭代循环,直至所构建损失函数的损失值达到最小,即视为损失函数收敛,此时,机器学习模型也收敛,并符合预设精度要求,则停止迭代。
否则,迭代更新机器学习模型的参数,并根据其余训练特征集以及更新的参数,计算由此构建的损失函数的损失值,直至损失函数收敛。
值得一提的是,如果在损失函数收敛之前,迭代次数已经达到迭代阈值,也将停止迭代,以此保证机器学习模型训练的效率。
当机器学习模型收敛并符合预设精度要求时,表示机器学习模型完成训练,便可基于完成训练的机器学习模型进行各种预测。
例如,当训练特征集对应于进行了正确标注(实际的模型总分数)的多个模型微服务输出的模型分数,相应地,完成训练的机器学习模型则用于进行模型总分数的预测。其中,实际的模型总分数可以根据客户多样化的定制需求设置,此处不加以限定。
步骤530,由完成训练的新模型生成新模型微服务。
如前所述,模型微服务实质是部署在服务器的进程上,为此,新模型微服务的生成,是指为完成训练的新模型创建一空进程,并将该进程的使用状态由空闲状态修改为占用状态。
那么,随着进程的创建与占用,便形成了适用于新模型的新模型微服务,以便于后续通过触发该进程,控制该新模型微服务执行人工智能服务中的模型计算步骤。
步骤550,在所述微服务架构中添加连接至所述新模型微服务的路由,使得所述新模型微服务部署至所述微服务架构。
上述过程中,实现了基于微服务架构的新模型微服务的部署,不会影响整个微服务架构,相较于巨石架构中大量的回归测试、联调测试等,高效快捷,大大降低了微服务架构的运维成本,有效地降低了人工智能服务的实现成本。
应当说明的是,对于微服务架构中部署的特征微服务、集成微服务等实现其余功能的微服务而言,部署方式与模型微服务原理一致,在此不重复描述。
请参阅图19,在一示例性实施例中,所述微服务架构还部署有所述模型微服务对应的备模型微服务。
也就是说,对于备模型微服务而言,其所对应的模型微服务可视为主模型微服务。
相应地,所述方法还可以包括以下步骤:
步骤610,将所述模型微服务依赖的特征集路由至所述备模型微服务。
步骤630,根据所述模型微服务依赖的特征集调用所述备模型微服务,得到所述备模型微服务的备份执行结果,以在所述模型微服务的执行结果失效时,控制所述备份执行结果生成所述人工智能服务的结果。
其中,失效,可以是主模型微服务所依赖的多个特征集存在缺失,还可以是主模型微服务输出的模型分数低于设定分数阈值等等,本实施例并未对此加以限定。
值得一提的是,即使主模型微服务所依赖的多个特征集存在缺失,也不会影响备模型微服务输出备份执行结果。也可以理解为,备模型微服务,始终提供请求响应输出,以此充分地保障人工智能服务的可靠性。
在上述过程中,主模型微服务和备模型微服务同时运行,当主模型微服务失效时,由备模型微服务提供请求响应输出,从而保证人工智能服务的可靠性。
在一示例性实施例中,如上所述的方法还可以包括以下步骤
通过监控微服务架构中微服务的运行状况,对微服务架构进行更新处理。
其中,微服务,用于提供人工智能服务,包括但不限于:特征微服务、模型微服务(主模型微服务)、集成微服务、备模型微服务等。
应当理解,在实现人工智能服务的过程中,各个微服务可能随时发生异常,例如,微服务所在进程挂死,或者,微服务所在服务器死机、故障等等,如果不及时排除异常的微服务,则可能导致人工智能服务的异常中断,进而影响人工智能服务的服务效率。
因此,基于微服务架构,无论是针对每一种模型部署多个模型微服务,还是针对每一个特征集部署多个特征微服务,都需要保证各微服务是可用的、够用的。
如前所述,微服务的运行数据包括负载数、内存占用率、CPU占用率、网络速率、丢包率等等,可通过对微服务架构中各微服务的运行状况进行监控获得,进而实时地获知微服务是否发生异常。例如,如果监控到微服务的丢包率居高不下,则表明该微服务可能存在异常,或者,如果监控到微服务的网络速率过低,也可能是该微服务存在异常。
应当理解,微服务的运行数据,实质是指微服务所在服务器的运行数据。
当微服务发生异常,便需要进行微服务架构的更新处理,该更新处理包括对微服务架构进行扩容、缩容、微服务裁撤、路由删除、路由添加等等。
例如,当监控到微服务异常,则将异常的微服务从微服务架构中删除,具体地,将微服务网关中连接至该异常的微服务的路由删除。或者,当监控到异常的微服务由异常恢复正常,则将恢复正常的微服务重新部署至微服务架构中,具体地,将连接至该恢复正常的微服务的路由添加至微服务网关。
又或者,当监控到微服务的负载数过大,表示该微服务的负载能力达到极限,则对微服务架构进行扩容,具体地,部署一个新的微服务至微服务架构;以及,当监控到微服务的负载数过小,则对微服务进行缩容,具体地,将该连接数过小的微服务裁撤,以避免资源浪费。
通过上述过程,不仅避免了人工智能服务的异常中断,有效地提高了人工智能服务的可靠性和稳定性,而且无论是何种更新处理方式,都不会影响整个微服务架构,有效降低了微服务架构的运维风险。
在一示例性实施例中,如上所述的方法还可以包括以下步骤:
通过监控微服务架构中微服务的运行状况,对微服务架构进行主备切换处理。
如前所述,微服务用于提供人工智能服务,包括但不限于:特征微服务、模型微服务(主模型微服务)、集成微服务、备模型微服务。微服务的运行数据包括负载数、内存占用率、CPU占用率、网络速率、丢包率等等。微服务的异常包括但不限于:负载数过大、内存占用率过高、CPU占用率过高、网络速率过低、丢包率过高、甚至于微服务所在服务器死机、故障等等。
本实施例中,针对每一个微服务,微服务架构中都分别部署了主份微服务和备份微服务。
由此,在提供人工智能服务过程中,控制主份微服务执行人工智能服务中的各步骤,当根据主份微服务的运行数据监控到主份微服务出现异常时,则运行备份微服务,以控制备份微服务替代主份微服务执行人工智能服务中的各步骤。
通过上述过程,实现了基于微服务架构的容灾方案,即备份微服务在主份微服务正常时不运行,仅当主份微服务异常时,运行备微服务提供请求响应输出,进一步地保证了人工智能服务的可靠性和稳定性,从而充分保障了人工智能服务的服务效率。
可以理解,虽然微服务可独立开发和演进,可独立部署,使得整体微服务架构对于局部的改动并不敏感,然而,当存在模型更新、客户配置更新、客户个性化需求定制等变动时,仍需要进行少量测试,以满足客户多样化的定制需求。
为此,所述微服务架构还部署有旁路模型微服务、虚模型微服务、旁路环境微服务等微服务,以方便于微服务的测试。
下面基于微服务架构中部署的上述微服务的测试过程加以说明。
在一示例性实施例中,如图20所示,如上所述的方法还可以包括以下步骤:
步骤710,从所述请求中提取第一旁路标识。
第一旁路标识,用于指示旁路模型微服务是否开启。例如,0表示旁路模型微服务未开启,1表示旁路模型微服务开启。
当然,其他实施例中,第一旁路标识,还可以通过其他字符表示,本实施例并非对此构成具体限定。
步骤730,如果所述第一旁路标识指示所述旁路模型微服务开启,则将所述模型微服务依赖的特征集路由至所述旁路模型微服务。
步骤750,根据所述模型微服务依赖的特征集调用所述旁路模型微服务,得到所述旁路模型微服务的执行结果。
由此,便可根据旁路模型微服务的执行结果生成所述人工智能服务的第一测试结果。
在一示例性实施例中,如图21所示,如上所述的方法还可以包括以下步骤:
步骤810,从所述请求中提取透传标识。
透传标识,用于指示虚模型微服务是否开启。例如,0表示虚模型微服务未开启,1表示虚模型微服务开启。
当然,其他实施例中,透传标识,还可以通过其他字符表示,本实施例并非对此构成具体限定。
步骤830,如果所述透传标识指示所述虚模型微服务开启,则将所述模型微服务依赖的特征集路由至所述虚模型微服务。
步骤850,调用所述虚模型微服务透传输出所述模型微服务依赖的特征集,作为所述虚模型微服务的执行结果。
透传输出,是指不对输入进行任何处理,直接输出。也即是,虚模型微服务,输入是模型微服务所依赖的特征集,输出也是模型微服务所依赖的特征集。
由此,便可根据虚模型微服务的执行结果生成所述人工智能服务的第二测试结果。
需要说明的是,人工智能服务的第一测试结果和第二测试结果仅用于后台测试,并不会发送至发起请求的客户端。
也就是说,旁路模型微服务,实质是输入模型微服务所依赖的特征集,不向客户端反馈执行结果的模型微服务。
虚模型微服务,实质是输入和输出均为模型微服务所依赖的特征集,也不向客户端反馈执行结果的模型微服务。
在一示例性实施例中,如图22所示,如上所述的方法还可以包括以下步骤:
步骤910,从所述请求中提取第二旁路标识。
第二旁路标识,用于指示旁路环境微服务是否开启。例如,0表示旁路环境微服务未开启,1表示旁路环境微服务开启。
当然,其他实施例中,第二旁路标识,还可以通过其他字符表示,本实施例并非对此构成具体限定。
步骤930,如果所述第二旁路标识指示所述旁路环境微服务开启,则对所述请求进行镜像处理,得到旁路请求。
镜像处理,是指拷贝请求,考虑测试效率,镜像处理可以是针对海量客户端发起的全部请求,也可以仅针对部分请求,例如,对全部请求进行抽样得到部分请求,在此不进行限定。
步骤950,基于所述微服务架构中部署的旁路环境,对所述旁路请求进行响应,执行所述客户端请求的人工智能服务。
可以理解,线上业务环境为客户端执行人工智能服务,该线上业务环境基于微服务架构,部署有提供人工智能服务的模型微服务、特征微服务、集成微服务等,进而将人工智能服务的结果返回至客户端,完成请求响应。
旁路环境,则是指不影响线上业务环境为客户端执行人工智能服务的前提下,为微服务的持续集成、测试提供的开发环境,该开发环境与线上业务环境的结构类似,区别仅在于旁路环境不会将人工智能服务的结果发送至客户端,仅用于后台测试。
也就是说,旁路环境,也是基于微服务架构,部署有提供人工智能服务的模型微服务、特征微服务、集成微服务、虚模型微服务等。
通过上述实施例的配合,在不影响请求响应的前提下,利用请求所提供的AI数据实现了对微服务的持续集成、测试,进而有利于充分地保障人工智能服务的延续性和稳定性,从而保障人工智能服务的服务效率。
图23至图24是一应用场景中一种基于微服务架构实现人工智能服务的方法的具体实现示意图。
该应用场景中,微服务架构中部署有提供人工智能服务的微服务以及负责各微服务路由的微服务网关,该微服务于包括但不限于特征微服务、模型微服务、集成微服务、备模型微服务、旁路模型微服务、备份模型微服务、旁路环境微服务等。该微服务架构部署在服务器集群中,上述微服务、微服务网关分别部署于不同的服务器。
具体地,如图23所示,微服务网关包括请求处理模块9021、配置树查找模块9022、以及路由模块9023。
用于执行人工智能服务中特征提取步骤的微服务部署在服务器904,包括特征微服务和备份特征微服务,该特征微服务适用于不同类型的特征集提取,包括特征编码服务、客户画像特征服务等,如图23中9041所示。
此外,如图23中9042所示,还提供流水特征生成服务,流水特征生成是指借助输出的人工智能服务的结果获取实现人工智能服务过程中的有效特征,以反馈至特征微服务添加至模型微服务依赖的特征集,进而通过特征二次衍生丰富模型微服务依赖的特征集,充分地保障了模型微服务所执行的模型计算步骤的准确性。
用于执行人工智能服务中模型计算步骤的微服务部署在服务器905,包括模型微服务、备模型微服务、备份模型微服务和旁路模型微服务,该模型微服务适用于不同种类的模型,包括通用模型(例如随机森林模型、神经网络模型等等)、定制模型(以此满足客户的多样化定制需求)等等。
用于执行人工智能服务中结果输出步骤的集成微服务部署在服务器906,可以根据各模型微服务输出的模型分数得到模型总分数、还可以输出各模型微服务输出的模型分数所对应的标签。
此外,服务器集群中还部署了旁路环境903以及监控服务器909,其中,通过旁路环境903的部署,方便于微服务的测试,以实现对微服务的持续集成、测试;通过监控服务器909的部署,对微服务架构中的微服务的运行状况进行监控,以此形成相关的日志文件、配置文件等等,如图23中9091所示,进而实现服务器集群的可视化和集中式管理,充分地保障服务器集群的稳定性,有利于保障人工智能服务的服务效率。
基于图23所示出的服务器集群,结合图24,进一步说明人工智能服务的实现过程。
通过步骤801,客户端为客户向服务器集群发起请求,以此请求服务器集群提供人工智能服务,例如,某金融机构请求的借贷反欺诈服务,即对借贷客户进行欺诈预测。
服务器集群中,在微服务网关接收到请求之后,通过步骤802,首先基于请求处理模块9021对请求进行协议转换,以方便于转换的请求在微服务网关内部的传输以及响应。
基于请求中的第二旁路标识,如果该第二旁路标识指示旁路环境微服务开启,则对请求进行镜像处理得到旁路请求,并通过旁路环境903响应该旁路请求,以执行客户端请求的人工智能服务,即执行步骤803。
反之,如果第二旁路标识指示的旁路环境微服务未开启,则通过微服务网关中的配置树查找模块9022响应于请求进行路由查找,以确定人工智能服务需要的模型微服务、特征微服务、集成微服务以及旁路模型微服务等。
在完成路由查找之后,通过路由模块9023便可分别进行特征微服务、模型微服务、旁路模型微服务、以及集成微服务的路由,即执行步骤804。
通过步骤805,调用特征微服务提取模型微服务依赖的特征集。
通过步骤806,调用模型微服务得到模型微服务的执行结果。
通过步骤807,调用旁路模型微服务得到旁路模型微服务的执行结果,该旁路模型微服务仅在请求中的第一旁路标识指示旁路模型微服务开启时调用,以生成人工智能服务的第一测试结果,用于后台测试。
通过步骤808,调用集成微服务,将多个模型微服务的执行结果合成为人工智能服务的结果,例如,借贷客户的欺诈分数以及对应的标签,该标签用于指示借贷客户的欺诈类型。
在得到人工智能服务的结果之后,便反馈至发起请求的客户端,即执行步骤809。
那么,对于请求人工智能服务的客户而言,例如某金融机构,就可根据人工智能服务的结果,例如借贷客户的欺诈分数以及对应的标签,判断是否向该借贷客户提供借贷服务。
通过上述过程,即实现了客户端所请求的人工智能服务。
在本应用场景中,实现不同功能的微服务可独立开发和演进,可独立部署,不仅有利于微服务的持续集成、测试,而且方便于新模型的离线训练,以此提高在线请求的响应速率,提升客户体验。
此外,基于微服务架构,已部署的微服务可以永不下线,即使面向客户频繁的多版本、多特征、多模型等定制需求,可无需频繁地调整,使得整体微服务架构对于局部的改动并不敏感,保证整体微服务架构的最小化变动,进而充分地保证人工智能服务的延续性和稳定性,降低运营风险,同时有效地降低了人工智能服务的实现成本。
下述为本发明装置实施例,可以用于执行本发明所涉及的基于微服务架构实现人工智能服务的方法。对于本发明装置实施例中未披露的细节,请参照本发明所涉及的基于微服务架构实现人工智能服务的方法的实施例。
请参阅图25,在一示例性实施例中,一种基于微服务架构实现人工智能服务的装置1100包括但不限于:请求接收模块1110、模型微服务确定模块1130、特征微服务确定模块1150、特征微服务调用模块1170、模型微服务调用模块1180及结果生成模块1190。其中,所述微服务架构中部署有提供人工智能服务的模型微服务和特征微服务。
具体地,请求接收模块1110,用于接收客户端发起的请求,所述请求用于指示所述客户端请求的人工智能服务。
模型微服务确定模块1130,用于响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务。
特征微服务确定模块1150,用于为所确定的模型微服务定位需要的特征微服务,所述特征微服务用于提供所述模型微服务依赖的特征集。
特征微服务调用模块1170,用于调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务。
模型微服务调用模块1180,用于根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果。
结果生成模块1190,用于由所述模型微服务的执行结果生成所述人工智能服务的结果。
需要说明的是,上述实施例所提供的基于微服务架构实现人工智能服务的装置在进行基于微服务架构实现人工智能服务的处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即基于微服务架构实现人工智能服务的装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的基于微服务架构实现人工智能服务的装置与基于微服务架构实现人工智能服务的方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
请参阅图26,在一示例性实施例中,一种计算机设备1000,包括至少一处理器1001、至少一存储器1002、以及至少一通信总线1003。
其中,存储器1002上存储有计算机可读指令,处理器1001通过通信总线1003读取存储器1002中存储的计算机可读指令。
该计算机可读指令被处理器1001执行时实现上述各实施例中的基于微服务架构实现人工智能服务的方法。
在一示例性实施例中,一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的基于微服务架构实现人工智能服务的方法。
上述内容,仅为本发明的较佳示例性实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。
Claims (23)
1.一种基于微服务架构实现人工智能服务的方法,其特征在于,所述微服务架构中部署有提供人工智能服务的模型微服务和特征微服务,所述方法包括:
接收客户端发起的请求,所述请求用于指示所述客户端请求的人工智能服务;
响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务;
为所确定的模型微服务定位需要的特征微服务,所述特征微服务用于提供所述模型微服务依赖的特征集;
调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务;
根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果;
由所述模型微服务的执行结果生成所述人工智能服务的结果。
2.如权利要求1所述的方法,其特征在于,所述响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务,包括:
从所述请求中提取所述人工智能服务对应的服务查询信息;
查询信息配置树,获得与所述服务查询信息对应的模型微服务;
由所述服务查询信息对应的模型微服务得到所述客户端所请求人工智能服务需要的模型微服务。
3.如权利要求2所述的方法,其特征在于,所述查询信息配置树,获得与所述服务查询信息对应的模型微服务,包括:
在所述信息配置树所包含的若干分支中,将该若干分支中路径指示的查询条件与所述服务查询信息进行匹配,得到所指示查询条件与所述服务查询信息匹配的路径;
基于匹配得到的路径所在分支,将该分支包含叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
4.如权利要求3所述的方法,其特征在于,所述服务查询信息包括客户标识和场景标识,所述信息配置树包括多标识配置树和单标识配置树;
所述在所述信息配置树所包含的若干分支中,将若干分支中路径指示的查询条件与所述服务查询信息进行匹配,得到所指示查询条件与所述服务查询信息匹配的路径,包括:
针对所述多标识配置树所包含的若干分支,在该若干分支由第一根节点指向第一分支节点或者第一叶节点的若干条第一路径中,搜索所指示第一查询条件与所述客户标识匹配的第一路径;
如果未搜索到匹配的第一路径,则针对所述单标识配置树所包含的若干分支,在该若干分支由第二根节点指向第二叶节点的若干条第二路径中,搜索得到所指示第二查询条件与所述场景标识匹配的第二路径。
5.如权利要求4所述的方法,其特征在于,所述基于匹配得到的路径所在分支,将该分支包含叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务,包括:
基于匹配得到的第二路径所在分支,将该分支包含第二叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
6.如权利要求4所述的方法,其特征在于,所述在所述信息配置树所包含的若干分支中,将若干分支中路径指示的查询条件与所述服务查询信息进行匹配,得到所指示查询条件与所述服务查询信息匹配的路径,还包括:
如果搜索到匹配的第一路径由所述第一根节点指向所述第一分支节点,则由所述多标识配置树得到以该第一分支节点作为根节点的多标识配置子树;
针对所述多标识配置子树所包含若干分支,在该若干分支由该第一分支节点指向所述第一叶节点的若干条第三路径中,搜索得到所指示第二查询条件与所述场景标识匹配的第三路径。
7.如权利要求6所述的方法,其特征在于,所述基于匹配得到的路径所在分支,将该分支包含叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务,包括:
基于匹配得到的第三路径所在分支,将该分支包含第一叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
8.如权利要求4所述的方法,其特征在于,所述基于匹配得到的路径所在分支,将该分支包含叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务,包括:
如果搜索到匹配的第一路径由所述第一根节点指向所述第一叶节点,则将该第一叶节点所表征的模型微服务作为所述服务查询信息对应的模型微服务。
9.如权利要求2至8任一项所述的方法,其特征在于,所述由所述服务查询信息对应的模型微服务得到所述客户端所请求人工智能服务需要的模型微服务,包括:
针对每一种模型,根据所述服务查询信息对应的模型微服务确定适用于该种模型的多个候选模型微服务;
获取每一个候选模型微服务对应的运行数据;
根据获取到的运行数据,对多个候选模型微服务进行筛选,得到所述人工智能服务需要的模型微服务。
10.如权利要求1所述的方法,其特征在于,所述为所确定的模型微服务定位需要的特征微服务,包括:
获取第一键值数据,所述第一键值数据用于表征模型微服务及其依赖的特征集之间的映射关系;
以所述模型微服务作为键,根据该键在所述第一键值数据中进行键值映射,得到与该键具有映射关系的键值;
由该键值确定所述模型微服务需要的特征微服务,并进行特征微服务的路由。
11.如权利要求10所述的方法,其特征在于,所述由该键值确定所述模型微服务需要的特征微服务,包括:
针对所述模型微服务所依赖的每一个特征集,根据得到的键值确定用于提取该特征集的多个候选特征微服务;
获取每一个候选特征微服务对应的运行数据;
根据获取到的运行数据,对多个候选特征微服务进行筛选,得到所述模型微服务需要的特征微服务。
12.如权利要求1所述的方法,其特征在于,所述调用所述特征微服务得到所述模型微服务依赖的特征集,包括:
获取第二键值数据,所述第二键值数据用于表征所述模型微服务依赖的多个特征集之间的依赖关系;
按照获取到的依赖关系,确定所述模型微服务需要的多个特征微服务的调用顺序;
按照所述调用顺序依次调用多个特征微服务,得到所述模型微服务依赖的多个特征集,每一个特征微服务对应一个特征集。
13.如权利要求12所述的方法,其特征在于,所述将所述模型微服务依赖的特征集路由至所述模型微服务,包括:
根据所述第二键值数据,检测所述模型微服务依赖的多个特征集是否缺失;
获取缺失的特征集所对应的权重值,累加计算得到缺失权重值;
如果所述缺失权重值未超过缺失阈值,则将所述模型微服务依赖的多个特征集路由至所述模型微服务。
14.如权利要求13所述的方法,其特征在于,所述根据所述第二键值数据,检测所述模型微服务依赖的多个特征集是否存在缺失,包括:
对所述模型微服务依赖的多个特征集进行遍历,以遍历到的特征集作为键值,根据该键值在所述第二键值数据中进行键映射,得到与该键值具有映射关系的键;
如果得到的键有效,则判定遍历到的特征集未缺失,并继续检测所述模型微服务依赖的后一个特征集,直至完成所述遍历。
15.如权利要求1所述的方法,其特征在于,所述微服务架构中还部署有集成微服务;
所述由所述模型微服务的执行结果生成所述人工智能服务的结果,包括:
将多个所述模型微服务的执行结果路由至所述集成微服务;
调用所述集成微服务,将多个所述模型微服务的执行结果合成为所述人工智能服务的结果。
16.如权利要求15所述的方法,其特征在于,所述模型微服务的执行结果包括所述模型微服务输出的模型分数;
所述调用所述集成微服务,将多个所述模型微服务的执行结果合成为所述人工智能服务的结果,包括:
将多个所述模型微服务输出的模型分数输入机器学习模型,进行模型总分数预测;
将预测得到的模型总分数作为所述人工智能服务的结果。
17.如权利要求16所述的方法,其特征在于,所述模型微服务的执行结果还包括所述模型微服务输出的标签;
所述调用所述集成微服务,将多个所述模型微服务的执行结果合成为所述人工智能服务的结果,还包括:
基于为模型微服务设置的标签规则,查找与所述模型微服务输出的模型分数对应的标签;
将查找到的标签添加至所述人工智能服务的结果。
18.如权利要求1所述的方法,其特征在于,所述微服务架构还部署有所述模型微服务对应的备模型微服务;
所述调用所述特征微服务得到所述模型微服务依赖的特征集之后,所述方法还包括:
将所述模型微服务依赖的特征集路由至所述备模型微服务;
根据所述模型微服务依赖的特征集调用所述备模型微服务,得到所述备模型微服务的备份执行结果,以在所述模型微服务的执行结果失效时,控制所述备份执行结果生成所述人工智能服务的结果。
19.如权利要求1所述的方法,其特征在于,所述微服务架构还部署有旁路模型微服务;
所述调用所述特征微服务得到所述模型微服务依赖的特征集之后,所述方法还包括:
从所述请求中提取第一旁路标识;
如果所述第一旁路标识指示所述旁路模型微服务开启,则将所述模型微服务依赖的特征集路由至所述旁路模型微服务;
根据所述模型微服务依赖的特征集调用所述旁路模型微服务,得到所述旁路模型微服务的执行结果,以生成所述人工智能服务的第一测试结果。
20.如权利要求1所述的方法,其特征在于,所述微服务架构还部署有虚模型微服务;
所述调用所述特征微服务得到所述模型微服务依赖的特征集之后,所述方法还包括:
从所述请求中提取透传标识;
如果所述透传标识指示所述虚模型微服务开启,则将所述模型微服务依赖的特征集路由至所述虚模型微服务;
调用所述虚模型微服务透传输出所述模型微服务依赖的特征集,作为所述虚模型微服务的执行结果,以生成所述人工智能服务的第二测试结果。
21.如权利要求1所述的方法,其特征在于,所述微服务架构还部署有旁路环境微服务;
所述接收客户端发起的请求之后,所述方法还包括:
从所述请求中提取第二旁路标识;
如果所述第二旁路标识指示所述旁路环境微服务开启,则对所述请求进行镜像处理,得到旁路请求;
基于所述微服务架构中部署的旁路环境,对所述旁路请求进行响应,执行所述客户端请求的人工智能服务。
22.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述特征微服务获得训练特征集,根据所述训练特征集对所述新模型进行训练;
由完成训练的新模型生成新模型微服务;
在所述微服务架构中添加连接至所述新模型微服务的路由,使得所述新模型微服务部署至所述微服务架构。
23.一种基于微服务架构实现人工智能服务的装置,其特征在于,所述微服务架构中部署有提供人工智能服务的模型微服务和特征微服务,包括:
请求接收模块,用于接收客户端发起的请求,所述请求用于指示所述客户端请求的人工智能服务;
模型微服务确定模块,用于响应于所述请求,确定所述客户端所请求人工智能服务需要的模型微服务;
特征微服务确定模块,用于为所确定的模型微服务定位需要的特征微服务,所述特征微服务用于提供所述模型微服务依赖的特征集;
特征微服务调用模块,用于调用所述特征微服务得到所述模型微服务依赖的特征集,并将所述模型微服务依赖的特征集路由至所述模型微服务;
模型微服务调用模块,用于根据所述模型微服务依赖的特征集调用所述模型微服务,得到所述模型微服务的执行结果;
结果生成模块,用于由所述模型微服务的执行结果生成所述人工智能服务的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910102655.2A CN110162414B (zh) | 2019-02-01 | 2019-02-01 | 基于微服务架构实现人工智能服务的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910102655.2A CN110162414B (zh) | 2019-02-01 | 2019-02-01 | 基于微服务架构实现人工智能服务的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162414A true CN110162414A (zh) | 2019-08-23 |
CN110162414B CN110162414B (zh) | 2024-01-30 |
Family
ID=67645343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910102655.2A Active CN110162414B (zh) | 2019-02-01 | 2019-02-01 | 基于微服务架构实现人工智能服务的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162414B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489093A (zh) * | 2019-10-16 | 2019-11-22 | 鹏城实验室 | 一种面向ai应用的持续构造方法、装置、终端及存储介质 |
CN111083200A (zh) * | 2019-11-25 | 2020-04-28 | 武汉联影医疗科技有限公司 | 智能服务网络系统 |
CN111144578A (zh) * | 2019-12-27 | 2020-05-12 | 创新奇智(重庆)科技有限公司 | 一种分布式环境下的人工智能模型管理系统及管理方法 |
CN111191180A (zh) * | 2020-01-15 | 2020-05-22 | 百望股份有限公司 | 发票领域的微服务系统的构建方法、装置及存储介质 |
CN111338646A (zh) * | 2020-05-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种微服务架构的管理方法以及相关装置 |
CN111797156A (zh) * | 2020-07-09 | 2020-10-20 | 海南科技职业大学 | 一种人工智能微服务系统 |
CN111881174A (zh) * | 2020-06-24 | 2020-11-03 | 科讯嘉联信息技术有限公司 | 一种提供分布式nlp能力服务的装置及方法 |
CN112579436A (zh) * | 2020-12-01 | 2021-03-30 | 中国科学院电子学研究所苏州研究院 | 一种微服务软件架构识别与度量方法 |
CN113472550A (zh) * | 2020-03-30 | 2021-10-01 | 阿里巴巴集团控股有限公司 | 分布式管理方法及系统、以及管理系统 |
CN115130674A (zh) * | 2022-06-27 | 2022-09-30 | 京东科技控股股份有限公司 | 一种模型推理加速的方法和装置 |
WO2023115579A1 (zh) * | 2021-12-24 | 2023-06-29 | 北京小米移动软件有限公司 | 一种人工智能ai服务提供方法和装置 |
CN116645045A (zh) * | 2023-05-06 | 2023-08-25 | 中国三峡新能源(集团)股份有限公司 | 一种基于智能设备的电力生产作业管理方法及系统 |
CN117873733A (zh) * | 2024-03-11 | 2024-04-12 | 成都中科合迅科技有限公司 | 面向多场景的微服务切换运行控制方法和系统 |
WO2024108600A1 (zh) * | 2022-11-25 | 2024-05-30 | 北京小米移动软件有限公司 | 应用服务的处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227611A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务调用方法及装置 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN107391142A (zh) * | 2017-07-26 | 2017-11-24 | 北京中电普华信息技术有限公司 | 一种应用拆分的方法及装置 |
CN107846295A (zh) * | 2016-09-19 | 2018-03-27 | 华为技术有限公司 | 微服务配置装置及方法 |
CN108153547A (zh) * | 2017-12-26 | 2018-06-12 | 泰康保险集团股份有限公司 | 微服务的版本管理方法、装置、介质及电子设备 |
CN108279892A (zh) * | 2018-02-27 | 2018-07-13 | 郑州云海信息技术有限公司 | 一种拆分大型应用服务为微服务的方法、装置及设备 |
CN109144724A (zh) * | 2018-07-27 | 2019-01-04 | 众安信息技术服务有限公司 | 一种微服务资源调度系统及方法 |
-
2019
- 2019-02-01 CN CN201910102655.2A patent/CN110162414B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227611A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务调用方法及装置 |
CN107846295A (zh) * | 2016-09-19 | 2018-03-27 | 华为技术有限公司 | 微服务配置装置及方法 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN107391142A (zh) * | 2017-07-26 | 2017-11-24 | 北京中电普华信息技术有限公司 | 一种应用拆分的方法及装置 |
CN108153547A (zh) * | 2017-12-26 | 2018-06-12 | 泰康保险集团股份有限公司 | 微服务的版本管理方法、装置、介质及电子设备 |
CN108279892A (zh) * | 2018-02-27 | 2018-07-13 | 郑州云海信息技术有限公司 | 一种拆分大型应用服务为微服务的方法、装置及设备 |
CN109144724A (zh) * | 2018-07-27 | 2019-01-04 | 众安信息技术服务有限公司 | 一种微服务资源调度系统及方法 |
Non-Patent Citations (1)
Title |
---|
杜圣东: "交通大数据:一种基于微服务的敏捷处理架构设计", 《大数据》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489093A (zh) * | 2019-10-16 | 2019-11-22 | 鹏城实验室 | 一种面向ai应用的持续构造方法、装置、终端及存储介质 |
CN111083200A (zh) * | 2019-11-25 | 2020-04-28 | 武汉联影医疗科技有限公司 | 智能服务网络系统 |
CN111144578A (zh) * | 2019-12-27 | 2020-05-12 | 创新奇智(重庆)科技有限公司 | 一种分布式环境下的人工智能模型管理系统及管理方法 |
CN111144578B (zh) * | 2019-12-27 | 2023-07-28 | 创新奇智(重庆)科技有限公司 | 一种分布式环境下的人工智能模型管理系统及管理方法 |
CN111191180A (zh) * | 2020-01-15 | 2020-05-22 | 百望股份有限公司 | 发票领域的微服务系统的构建方法、装置及存储介质 |
CN113472550A (zh) * | 2020-03-30 | 2021-10-01 | 阿里巴巴集团控股有限公司 | 分布式管理方法及系统、以及管理系统 |
CN111338646A (zh) * | 2020-05-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种微服务架构的管理方法以及相关装置 |
CN111881174A (zh) * | 2020-06-24 | 2020-11-03 | 科讯嘉联信息技术有限公司 | 一种提供分布式nlp能力服务的装置及方法 |
CN111797156A (zh) * | 2020-07-09 | 2020-10-20 | 海南科技职业大学 | 一种人工智能微服务系统 |
CN112579436A (zh) * | 2020-12-01 | 2021-03-30 | 中国科学院电子学研究所苏州研究院 | 一种微服务软件架构识别与度量方法 |
CN112579436B (zh) * | 2020-12-01 | 2022-11-29 | 中国科学院电子学研究所苏州研究院 | 一种微服务软件架构识别与度量方法 |
WO2023115579A1 (zh) * | 2021-12-24 | 2023-06-29 | 北京小米移动软件有限公司 | 一种人工智能ai服务提供方法和装置 |
CN115130674A (zh) * | 2022-06-27 | 2022-09-30 | 京东科技控股股份有限公司 | 一种模型推理加速的方法和装置 |
WO2024108600A1 (zh) * | 2022-11-25 | 2024-05-30 | 北京小米移动软件有限公司 | 应用服务的处理方法及装置 |
CN116645045A (zh) * | 2023-05-06 | 2023-08-25 | 中国三峡新能源(集团)股份有限公司 | 一种基于智能设备的电力生产作业管理方法及系统 |
CN117873733A (zh) * | 2024-03-11 | 2024-04-12 | 成都中科合迅科技有限公司 | 面向多场景的微服务切换运行控制方法和系统 |
CN117873733B (zh) * | 2024-03-11 | 2024-05-17 | 成都中科合迅科技有限公司 | 面向多场景的微服务切换运行控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110162414B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162414A (zh) | 基于微服务架构实现人工智能服务的方法及装置 | |
CN112036577B (zh) | 基于数据形式的应用机器学习的方法、装置和电子设备 | |
US20190303018A1 (en) | Optimizing serverless computing using a distributed computing framework | |
US20190244287A1 (en) | Utilizing a machine learning model and blockchain technology to manage collateral | |
CN108595157A (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN111553488B (zh) | 一种针对用户行为的风险识别模型训练方法及系统 | |
CN110458572B (zh) | 用户风险的确定方法和目标风险识别模型的建立方法 | |
US20200125977A1 (en) | System and method for next object prediction for ics flow using artificial intelligence/machine learning | |
CN112100193A (zh) | 基于大数据和云计算的业务处理方法及电子商务协同平台 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN114610272A (zh) | Ai模型生成方法、电子设备及存储介质 | |
US20190362241A1 (en) | Systems and methods for configuring an online decision engine | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
US11829234B2 (en) | Automatically classifying cloud infrastructure components for prioritized multi-tenant cloud environment resolution using artificial intelligence techniques | |
CN114611081B (zh) | 账号类型识别方法、装置、设备、存储介质及产品 | |
CN109582560A (zh) | 测试文件编辑方法、装置、设备及计算机可读存储介质 | |
CN112069406A (zh) | 基于区块链离线支付的信息推送方法及云服务推送平台 | |
CN115358401A (zh) | 一种推理服务的处理方法、装置、计算机设备及存储介质 | |
CN115113528A (zh) | 神经网络模型的运行控制方法、装置、设备及介质 | |
CN117009626A (zh) | 游戏场景的业务处理方法、装置、设备及存储介质 | |
CN114374595B (zh) | 事件节点归因分析方法、装置、电子设备及存储介质 | |
US10768901B2 (en) | Converting code of a first code type on a mainframe device in phases to code of a second code type | |
CN114564523B (zh) | 针对智慧虚拟场景的大数据漏洞分析方法及云端ai系统 | |
CN112036576B (zh) | 一种基于数据形式的数据处理方法、装置和电子设备 | |
CN112433755A (zh) | 一种基于多类特征和多个度量指标的微服务架构识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |