CN110442455A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN110442455A CN110442455A CN201910717919.5A CN201910717919A CN110442455A CN 110442455 A CN110442455 A CN 110442455A CN 201910717919 A CN201910717919 A CN 201910717919A CN 110442455 A CN110442455 A CN 110442455A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- target
- server
- gray scale
- arithmetic server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
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 And Data Communications (AREA)
Abstract
本发明实施例公开了一种数据处理方法及装置,其中方法包括:算法服务器接收算法服务请求后,获取灰度配置策略,并根据灰度配置策略确定处理算法服务请求的目标算法,若确定算法服务器中不存在目标算法,则从预设数据库中获取目标算法,并通过目标算法处理算法服务请求。本发明实施例中,通过使用预设数据库预先存储算法,并使用灰度配置策略自动确定处理算法服务请求的算法,可以无需人工加载算法,从而可以提高算法更新的效率;且,根据至少一个算法对应的灰度值使用至少一个算法处理算法服务请求,可以无需使用某一算法处理所有的算法服务请求,保证算法更新过程的稳定性和准确性。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理方法及装置。
背景技术
算法服务器集群系统是一种常用的分布式算法系统,该系统可以为用户提供人工智能(Artificial Intelligence,AI)算法服务,比如机器学习算法服务、神经网络遗传算法服务、群集智能蚁群算法服务等等。图1为一种算法服务器集群系统的结构示意图,如图1所示,该系统可以包括负载均衡服务器110和分别与负载均衡服务器110连接的多个算法服务器,比如算法服务器121、算法服务器122和算法服务器123;其中,每个算法服务器可以连接客户端130,客户端130可以通过与多个算法服务器的通信交互将开发的算法保存在多个算法服务器的外部存储器中,相应地,负载均衡服务器110可以连接多个用户端设备,比如用户端设备141、用户端设备142和用户端设备143。具体实施中,当负载均衡服务器110接收到任一用户端设备的算法服务请求后,可以根据预设的负载分配原则将该算法服务请求分发给对应的算法服务器(比如算法服务器121),如此,算法服务器121可以使用外部存储器中存储的AI算法处理用户的请求信息,进而可以通过负载均衡服务器110将处理结果反馈给相应地用户端设备。
现阶段,随着AI算法的深入发展,用户的业务需求越来越多,相应地对AI算法的更新迭代要求也越来越高。在一种现有的实现方式中,可以采用人工方式来实现算法更新,具体地说,当研发人员开发出新的算法后,研发人员可以通过客户端130将新的算法分发给算法服务器集群中的每个算法服务器;以算法服务器121为例,算法服务器121可以将新的算法存储在算法服务器121的外部存储器中;进一步地,研发人员在确定新的算法分发完成后,可以重启算法服务器121,使得算法服务器121将外部存储器中的新的算法加载成模型,如此,算法服务器121可以使用新的算法模型处理算法服务请求。然而,在实际操作中,由于算法服务器集群系统中存在大量的算法服务器,因此人工方式实现算法更新通常需要耗费较长的时间,算法更新的效率较低;且,在人工分发新的算法时可能会漏掉某些算法服务器,导致算法更新过程出错。
综上,目前亟需一种数据处理方法,用以解决现有技术采用人工更新算法导致的算法更新的效率较低、更新过程容易出错的技术问题。
发明内容
本发明实施例提供一种数据处理方法,用以解决现有技术采用人工更新算法导致的算法更新的效率较低、更新过程容易出错的技术问题。
第一方面,本发明实施例提供的一种数据处理方法,包括:
算法服务器接收算法服务请求后,获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;进一步地,所述算法服务器若确定所述算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并使用所述目标算法处理所述算法服务请求。
在上述设计中,通过使用预设数据库预先存储算法,并使用灰度配置策略自动确定处理算法服务请求的算法,可以无需人工加载算法,从而可以提高算法更新的效率;且,由于灰度配置策略中存储有多个算法对应的灰度值,从而可以根据多个算法对应的灰度值使用多个算法处理算法服务请求,而无需使用某一个算法处理所有的算法服务请求,从而可以避免新算法存在问题时使用新算法处理所有的算法服务请求而导致的更新出错的问题,保证更新过程的稳定性和准确性。
在一种可能的设计中,所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;所述算法服务器根据所述灰度配置策略确定处理所述算法服务请求的目标算法,包括:所述算法服务器根据所述第一预设阈值、所述第一算法对应的灰度值和所述第二算法对应的灰度值,为所述算法服务请求分配算法服务请求对应的数值,若所述算法服务请求对应的数值大于所述第一预设阈值,则确定处理所述算法服务请求的目标算法为所述第一算法;若所述算法服务请求对应的数值小于或等于所述第一预设阈值,则确定处理所述算法服务请求的所述目标算法为所述第二算法。
在上述设计中,通过设置算法路由规则(包含第一预设阈值和算法服务请求对应的数值),可以使得算法服务器根据算法路由规则自动确定处理每个算法服务请求的算法,从而无需依赖人工设置算法和算法服务请求的对应关系,提高算法更新的效率。
在一种可能的设计中,所述算法服务器若确定所述算法服务器中未存在所述目标算法,则从预设数据库中获取所述目标算法,并将所述目标算法加载到所述算法服务器的内部存储器中,通过所述内部存储器中的所述目标算法处理所述算法服务请求,包括:若确定所述算法服务器的内部存储器中未运行有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中不存在所述目标算法,则所述算法服务器确定所述算法服务器中不存在所述目标算法;进一步地,所述算法服务器从所述预设数据库中获取所述目标算法,并将所述目标算法存储至所述算法服务器的外部存储器中,运行所述目标算法得到所述目标算法对应的算法模型,进而将所述算法模型存储至所述算法服务器的内部存储器中,使用所述算法模型处理所述算法服务请求。
在上述设计中,算法服务器在确定内部存储器和外部存储器中都不包含目标算法时,可以去预设数据库中获取目标算法,并将目标算法加载到内部存储器中,一方面无需重启算法服务器即可实现使用新算法处理算法服务请求,保证算法更新的稳定性;另一方面可以在后续使用同一目标算法时,直接调用内部存储器中的目标算法即可处理算法服务请求,而无需到预设数据库中重新获取目标算法,从而可以提高算法服务的质量和效率。
在一种可能的设计中,所述方法还包括:所述算法服务器若确定所述算法服务器的内部存储器中已加载有所述目标算法对应的算法模型,则使用所述内部存储器中加载的所述目标算法对应的算法模型处理所述算法服务请求;或者,所述算法服务器若确定所述算法服务器的内部存储器中未加载有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中存在所述目标算法,则加载所述外部存储器中的所述目标算法得到所述目标算法对应的算法模型,并将所述目标算法对应的算法模型存储在所述算法服务器的内部存储器中,通过所述内部存储器中存储的所述目标算法对应的算法模型处理所述算法服务请求。
在上述设计中,当算法服务器中存在目标算法时,通过直接调用算法服务器中的目标算法处理算法服务请求,可以提高算法服务的速度,提高用户的满意度。
第二方面,本发明实施例提供的一种数据处理方法,所述方法包括:配置服务器检测到预设数据库中更新第一算法后,配置灰度配置策略;所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;进一步地,所述配置服务器将所述灰度配置策略分别发送给至少一个算法服务器。
在上述设计中,在预设数据库中存储了新算法后,配置服务器可以自动配置灰度配置策略,并分发给各个算法服务器,从而使得各个算法服务器可以根据灰度配置策略确定处理各个算法服务请求的目标算法,提高算法更新的灵活性;且,通过灰度配置策略使用新算法处理部分算法服务请求,可以自动实现算法更新并无需重启算法服务器,保证算法更新的稳定性。
在一种可能的设计中,所述配置服务器将所述灰度配置策略分别发送给至少一个算法服务器之后,根据所述第一算法的使用效果确定所述第一算法是否有误,若确定所述第一算法无误,则逐渐增大所述第一算法对应的灰度值。
在上述设计中,配置服务器在获取新算法的使用结果后,若确定新算法使用正常,则可以增大新算法对应的灰度值,从而逐步使用新算法替换旧算法,实现算法的逐步更新过程。
在一种可能的设计中,所述配置服务器若确定所述第一算法有误,则将所述第一算法对应的灰度值设置为第一指示值并设置所述第二算法对应的灰度值为第二指示值;所述第一指示值用于指示不使用所述第一算法处理算法服务请求,所述第二指示值用于指示使用所述第二算法处理后续接收的任意算法服务请求。
在上述设计中,配置服务器在获取新算法的使用结果后,若确定新算法存在问题,则可以调整新算法对应的灰度值,使得算法服务器不使用新算法处理算法服务请求,转而使用旧算法处理所有的算法服务请求,从而可以在新算法存在问题时及时停止新算法更新过程,恢复算法服务能力,保证算法更新的安全性。
第三方面,本发明实施例提供的一种数据处理装置,所述装置包括:
收发模块,用于接收算法服务请求;
确定模块,用于获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;
处理模块,用于若确定算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并使用所述目标算法处理所述算法服务请求。
在一种可能的设计中,所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;所述处理模块具体用于:根据所述第一预设阈值、所述第一算法对应的灰度值和所述第二算法对应的灰度值,为所述算法服务请求分配对应的数值;进一步地,若所述算法服务请求对应的数值大于所述第一预设阈值,则确定处理所述算法服务请求的目标算法为所述第一算法;若所述算法服务请求对应的数值小于或等于所述第一预设阈值,则确定处理所述算法服务请求的所述目标算法为所述第二算法。
在一种可能的设计中,所述处理模块具体用于:若确定所述算法服务器的内部存储器中未运行有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中不存在所述目标算法,则所述算法服务器确定所述算法服务器中不存在所述目标算法;所述算法服务器从所述预设数据库中获取所述目标算法,并将所述目标算法存储至所述算法服务器的外部存储器中,运行所述目标算法得到所述目标算法对应的算法模型,进而将所述算法模型存储至所述算法服务器的内部存储器中,使用所述算法模型处理所述算法服务请求。
在一种可能的设计中,所述处理模块还用于:若确定所述算法服务器的内部存储器中已加载有所述目标算法对应的算法模型,则使用所述内部存储器中加载的所述目标算法对应的算法模型处理所述算法服务请求;或者,若确定所述算法服务器的内部存储器中未加载有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中存在所述目标算法,则加载所述外部存储器中的所述目标算法得到所述目标算法对应的算法模型,并将所述目标算法对应的算法模型存储在所述算法服务器的内部存储器中,通过所述内部存储器中存储的所述目标算法对应的算法模型处理所述算法服务请求。
第四方面,本发明实施例提供的一种数据处理装置,所述装置包括:
配置模块,用于检测到预设数据库中更新第一算法后,配置灰度配置策略;所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;
收发模块,用于将所述灰度配置策略分别发送给至少一个算法服务器。
在一种可能的设计中,在所述收发模块将所述灰度配置策略分别发送给一个或多个至少一个算法服务器之后,所述配置模块还用于:根据所述第一算法的使用效果确定所述第一算法是否有误,若确定所述第一算法无误,则逐渐增大所述第一算法对应的灰度值。
在一种可能的设计中,所述配置模块还用于:若确定所述第一算法有误,则将所述第一算法对应的灰度值设置为第一指示值,并将所述第二算法对应的灰度值设置为第二指示值;所述第一指示值用于指示不使用所述第一算法处理算法服务请求,所述第二指示值用于指示使用所述第二算法处理后续接收的任意算法服务请求。
第五方面,本发明实施例提供的一种计算设备,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述计算机程序被所述处理单元执行时,使得所述处理单元执行如上述第一方面或第二方面任意所述的数据处理方法。
第六方面,本发明实施例提供的一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述计算机程序在所述计算设备上运行时,使得所述计算设备执行如上述第一方面或第二方面任意所述的数据处理方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种算法服务器集群系统的架构示意图;
图2为本发明实施例提供的一种可能的系统架构示意图;
图3为本发明实施例提供的另一种可能的系统架构示意图;
图4为本发明实施例提供的一种数据处理方法对应的流程示意图;
图5为本发明实施例提供的一种数据处理方法对应的交互流程示意图;
图6为本发明实施例提供的一种数据处理装置的结构示意图;
图7为本发明实施例提供的另一种数据处理装置的结构示意图;
图8为本发明实施例提供的一种前端设备的结构示意图;
图9为本发明实施例提供的一种后端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图2为本发明实施例提供的一种可能的系统架构示意图,如图2所示,该系统架构可以包括依次连接的客户端设备210、算法服务器集群系统220和至少一个用户端设备,比如用户端设备231、用户端设备232和用户端设备233;该系统架构还可以包括配置服务器240,配置服务器240可以设置在算法服务器集群系统220的外部(如图2所示),或者也可以设置在算法服务器集群系统220的内部(如图3所示),具体不作限定。
本发明的下列实施例以图2为例具体描述该系统架构的结构。
如图2所示,算法服务器集群系统220中可以设置有预设数据库、至少一个算法服务器(比如算法服务器221、算法服务器222和算法服务器223)和负载均衡服务器224。其中,至少一个算法服务器可以分别与预设数据库、负载均衡服务器224和配置服务器240连接,且配置服务器240还可以与预设数据库连接。相应地,客户端设备210可以与算法服务器集群系统220中的预设数据库连接,而至少一个用户端设备可以分别与负载均衡服务器224连接。本发明实施例中,实现连接的方式可以有多种,比如可以通过有线方式连接,或者也可以通过无线方式连接,具体不作限定。
需要说明的是,预设数据库可以以存储介质的形式设置在算法服务器集群系统220中,比如可以为硬盘、存储器、优盘等,或者也可以以存储节点的形式设置在算法服务器集群系统220中,比如可以为数据库服务器,本发明实施例对此不作限定。
基于图2所示意的系统架构,图4为本发明实施例提供的一种数据处理方法对应的流程示意图,该方法包括:
步骤401,算法服务器接收算法服务请求。
具体实施中,多个用户可以分别通过用户端设备231~用户端设备233向负载均衡服务器224发送算法服务请求,相应地,负载均衡服务器224接收到算法服务请求后,可以根据算法服务器221~算法服务器223在当前时刻的执行状态确定算法服务器221~算法服务器223的空闲程度,从而在算法服务器221~算法服务器223中选择较为空闲的算法服务器处理算法服务请求。
步骤402,算法服务器获取灰度配置策略,并根据灰度配置策略确定处理算法服务请求的目标算法。
本发明实施例中,每个算法服务器在接收到负载均衡服务器224发送的算法服务请求后,可以获取灰度配置策略。其中,灰度配置策略可以包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用该算法处理算法服务请求的概率。举例来说,若灰度配置策略为{“第一算法”:60%,“第二算法”:40%},则说明使用第一算法处理算法服务请求的概率为0.6,使用第二算法处理算法服务请求的概率为0.4;换句话说,若接收到1000条算法服务请求,则可以使用第一算法处理1000条算法服务请求中的600条算法服务请求,使用第二算法处理剩余的400条算法服务请求,以保证第一算法的使用率达到60%,第二算法的使用率达到40%。
本发明实施例中,灰度配置策略存储在配置服务器240中,灰度配置策略可以由用户通过手动方式进行设置,或者也可以由配置服务器240自动设置。比如,若由用户通过手动方式设置灰度配置策略,则用户可以手动修改配置服务器240存储的灰度配置策略中至少一个算法对应的灰度值;若由配置服务器240自动设置灰度配置策略,则配置服务器240在检测到预设数据库中存储了新算法时,可以自动在灰度配置策略中添加新算法对应的灰度值,或者也可以在确定新算法使用过程没有问题时,逐步增大灰度配置策略中新算法对应的灰度值。其中,新算法可以为研发人员通过客户端设备210存储在预设数据库中的。
以配置服务器240自动设置灰度配置策略为例,在一个示例中,配置服务器240在调整灰度配置策略后,可以将调整后的灰度配置策略发送给每个算法服务器,以使每个算法服务器将调整后的灰度配置策略存储在各自的预设存储空间中。如此,当算法服务器接收到算法服务请求后,可以去预设存储空间获取调整后的灰度配置策略,进而根据调整后的灰度配置策略为算法服务请求分配对应的目标算法。举例来说,若算法服务器接收到1000条算法服务请求,且调整后的灰度配置策略为{“第一算法”:60%,“第二算法”:40%},则可以从1000条算法服务请求中选取600条算法服务请求,将第一算法作为这600条算法服务请求的目标算法,将第二算法作为另外400条算法服务请求的目标算法。
在一种可能的实现方式中,为了保证为接收到的单一算法服务请求分配的目标算法也满足灰度配置策略,配置服务器240设置的灰度配置策略可以包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,第一算法为第二算法的升级算法。如此,算法服务器可以根据灰度配置策略设置如下的算法路由规则:
算法服务器每接收到一个算法服务请求,即可根据第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值为该算法服务请求分配对应的数值。其中,分配策略可以有以下两种可能的情形:
第一种情形
在第一种情形中,当算法服务请求对应的数值小于第一预设阈值时,使用第一算法处理该算法服务请求,当算法服务请求对应的数值大于或等于第一预设阈值时,使用第二算法处理该算法服务请求。
举例来说,若灰度配置策略为{“第一预设阈值”:60,“第一算法”:60%,“第二算法”:40%},则可以按照规则“算法服务请求对应的数值小于60的可能性为60%,算法服务请求对应的数值大于或等于60的可能性为40%”为该算法服务请求分配对应的数值;如此,若分配的数值为60,则可以使用第二算法处理该算法服务请求,若分配的数值为50,则可以使用第一算法处理该算法服务请求。
第二种情形
在第二种情形中,当算法服务请求对应的数值大于第一预设阈值时,使用第一算法处理该算法服务请求,当算法服务请求对应的数值小于或等于第一预设阈值时,使用第二算法处理该算法服务请求。
举例来说,若灰度配置策略为{“第一预设阈值”:60,“第一算法”:60%,“第二算法”:40%},则可以按照规则“算法服务请求对应的数值大于60的可能性为60%,算法服务请求对应的数值小于或等于60的可能性为40%”为该算法服务请求分配对应的数值;如此,若分配的数值为60,则可以使用第一算法处理该算法服务请求,若分配的数值为50,则可以使用第二算法处理该算法服务请求。
需要说明的是,第一预设阈值以及分配策略可以由本领域技术人员根据经验进行设置,或者也可以根据实际场景进行设置,具体不作限定。
步骤403,算法服务器若确定算法服务器中不存在目标算法,则从预设数据库中获取目标算法,并通过目标算法处理算法服务请求。
本发明实施例中,算法服务器在确定处理算法服务请求的目标算法后,可以先确定算法服务器中是否存在该目标算法,若存在,则可以直接使用算法服务器中的目标算法处理算法服务请求,若不存在,则可以先从预设数据库中获取到目标算法,再通过获取的目标算法处理算法服务请求。
在一种可能的实现方式中,算法服务器在确定处理算法服务请求的目标算法后,可以先查询确定算法服务器的内部存储器中是否运行有目标算法对应的算法模型,若内部存储器中已运行有目标算法对应的算法模型,则可以直接使用该算法模型处理算法服务请求;若内部存储器中未运行有目标算法对应的算法模型,则算法服务器可以再查询确定算法服务器的外部存储器中是否存储有目标算法,若外部存储器中已存储有目标算法,则可以加载外部存储器中的目标算法得到算法模型,并将算法模型存储到内部存储器中,进而使用内部存储器中的算法模型处理算法服务请求,若外部存储器中未存储有目标算法,则算法服务器可以从预设数据库中获取目标算法,并将目标算法存储在外部存储器中,进而可以加载外部存储器中的目标算法得到算法模型,并将算法模型存储到内部存储器中,再使用内部存储器中的算法模型处理算法服务请求。
需要说明的是,外部存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(ProgrammableRead Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等,具体不作限定。
本发明的上述实施例中,算法服务器接收算法服务请求后,获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;进一步地,所述算法服务器若确定所述算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并使用所述目标算法处理所述算法服务请求。本发明实施例中,通过使用预设数据库预先存储算法,并使用灰度配置策略自动确定处理算法服务请求的算法,可以无需人工加载算法,从而可以提高算法更新的效率;且,由于灰度配置策略中存储有至少一个算法对应的灰度值,从而可以根据至少一个算法对应的灰度值使用多个算法处理算法服务请求,而无需使用某一个算法处理所有的算法服务请求,从而可以避免新算法存在问题时使用新算法处理所有的算法服务请求而导致的更新出错的问题,保证更新过程的稳定性和准确性。
基于图2所示意的系统架构和图4所示意的方法流程图,图5为本发明实施例提供的一种数据处理方法对应的交互流程示意图,该方法包括:
步骤501,客户端设备将新算法发送至预设数据库。
本发明实施例中,算法研究人员在开发出新算法后,可以通过客户端设备210将新算法推送至预设数据库。其中,新算法可以是指在旧算法的基础上升级得到的算法,或者也可以是指初次开发的算法,本发明实施例对此不作限定。
在一种可能的实现方式中,若新算法为在旧算法的基础上升级得到的算法,则客户端设备210可以同时将新算法的程序文件和旧算法的标识发送给算法服务器集群系统220;相应地,算法服务器集群系统220可以根据旧算法的标识为新算法分配一个对应的标识,并可以对新算法的标识和新算法的程序文件建立对应关系,进而可以将该对应关系存储在预设数据库中。其中,算法的程序文件和算法的标识的对应关系可以以文件的形式来实现,或者也可以以数据表的形式来实现,具体不作限定。
在该实现方式中,当新算法被推送到预设数据库后,预设数据库中可以同时存储有旧算法的标识和旧算法的程序文件的对应关系、新算法的标识和新算法的程序文件的对应关系。
在一个示例中,算法的标识可以是指算法的版本号,比如若旧算法的标识为V0011,则算法服务器集群系统220为新算法分配的标识可以为V0012,算法V0012为算法V0011的升级算法;可以理解地,算法的标识也可以以其它方式表示,比如可以为算法的生成时间,具体不作限定。
步骤502,配置服务器监控预设数据库的状态。
在一种可能的实现方式中,配置服务器240可以按照预设周期监控预设数据库的状态,若监控到预设数据库在某一时刻的状态发生变化,则可以确定预设数据库中存储了新算法。举例来说,在预设周期为5s时,配置服务器240可以每5s获取一次预设数据库的资源占用情况,若在某次获取过程中发现预设数据库中的可用资源减少,或者发现预设数据库的已用资源增多,则配置服务器240可以确定预设数据库中存储了新算法。其中,s为时间单位,s是指秒。
在另一种可能的实现方式中,配置服务器240可以实时监控预设数据库的状态,具体地说,算法服务器集群系统220在将新算法存储在预设数据库后,可以向配置服务器240发送指示信息,该指示消息中可以包括新算法所在的位置和新算法的标识;如此,配置服务器240可以根据指示信息确定预设数据库中存储了新算法。举例来说,若指示信息为D:\预设数据库\V0012,则配置服务器240可以确定新算法的标识为V0012,且新算法V0012存储在预设数据库的V0012文件夹下。
步骤503,配置服务器若确定预设数据库中存储了新算法,则按照预设规则调整灰度配置策略。
此处,灰度配置策略中可以包括至少一个算法对应的灰度值,每个算法对应的灰度值可以用于指示使用该算法处理算法服务请求的概率。举例来说,在接收到1000条算法服务请求时,若灰度配置策略中算法V0011对应的灰度值为100%,则可以使用算法V0011处理这1000条算法服务请求;若灰度配置策略中算法V0011对应的灰度值为20%,算法V0012对应的灰度值为80%,则可以使用算法V0011处理1000条算法服务请求中的200条算法服务请求,并使用算法V0012处理剩余的800条算法服务请求;若灰度配置策略中算法V0010对应的灰度值为50%,算法V0011对应的灰度值为30%,算法V0012对应的灰度值为20%,则可以使用算法V0010处理1000条算法服务请求中的500条算法服务请求,并使用算法V0011处理剩余500条算法服务请求中的300条算法服务请求,使用算法V0012处理剩余的200条算法服务请求。
本发明实施例中,灰度配置策略可以通过人工的方式进行调整,或者也可以通过配置服务器240自动进行调整,具体不作限定。
若使用人工方式进行调整,则算法研究人员通过客户端设备210将算法V0012发送至预设数据库后,可以通知运营人员,以使运营人员手动调整配置数据库240中的灰度配置策略;举例来说,若手动调整之前的灰度配置策略为{‘V0011’:100%},说明在手动调整之前使用算法V0011处理所有的算法服务请求,若手动调整之后的灰度配置策略变为{‘V0012’:10%,‘V0011’:90%},则说明在手动调整后使用算法V0011处理90%的算法服务请求,使用算法V0012处理10%的算法服务请求。
具体实施中,运营人员调整灰度配置策略的方式可以有多种,在一个示例中,运营人员可以根据预设规则调整灰度配置策略,比如在预设数据库中存储了新算法后,可以逐渐扩大新算法对应的灰度值、逐步减小旧算法对应的灰度值,以保证在新算法没有问题的情况下逐渐替换旧算法。在另一个示例中,运营人员也可以根据至少一个用户端设备的需求调整灰度配置策略;具体地说,用户端设备方可以预先与运营人员通信,告知运营人员该用户端设备方所需使用的算法的标识,如此,运营人员可以根据每个用户端设备方所需使用的算法的标识设置灰度配置策略。举例来说,若灰度配置策略为{用户端231:‘V0012’,用户端232:‘V0011’,用户端233:‘V0011’},说明需要使用算法V0012处理用户端设备231的所有算法服务请求,使用算法V0011处理用户端设备232和用户端设备233的所有算法服务请求。
若通过配置服务器240自动调整灰度配置策略,则配置服务器240中可以预先设置有预设规则,预设规则可以由本领域技术人员根据经验进行设置,或者也可以根据实际需要进行设置,具体不作限定。如此,配置服务器240可以按照预设规则调整灰度配置策略。
表1为本发明实施例提供的一种预设规则的示意表。
表1:一种预设规则的示意
如表1所示,预设规则可以包括多个配置条件与灰度配置策略的对应关系,当配置条件为“预设数据库中存储新算法”时,灰度配置策略可以被配置为{‘V0012’:10%,‘V0011’:90%},比如对于接收到的1000条算法服务请求,可以使用算法V0012处理其中的100条算法服务请求,使用算法V0011处理剩余的900条算法服务请求。
当配置条件为“上一灰度配置策略的预设时长内,新算法的执行成功率≥90%”时,灰度配置策略可以被配置为{‘V0012’:上一灰度配置策略算法V0012的灰度值+30%,‘V0011’:上一灰度配置策略算法V0011的灰度值-30%},举例来说,若上一灰度配置策略中V0012的灰度值为10,V0011的灰度值为90,则当该配置条件满足时,灰度配置策略可以被配置为{‘V0012’:40%,‘V0011’:60%}(为了便于描述,简称为第一灰度配置策略),也就是说,对于接收到的1000条算法服务请求,可以使用算法V0012处理其中的400条算法服务请求,使用算法V0011处理剩余的600条算法服务请求;进一步地,以第一灰度配置策略为基础,若该配置条件再次满足时,第一灰度配置策略可以被配置为{‘V0012’:70%,‘V0011’:30%}(为了便于描述,简称为第二灰度配置策略),也就是说,对于接收到的1000条算法服务请求,可以使用算法V0012处理其中的700条算法服务请求,使用算法V0011处理剩余的300条算法服务请求;以第二灰度配置策略为基础,若该配置条件再次满足时,第一灰度配置策略可以被配置为{‘V0012’:100%,‘V0011’:0%},也就是说,对于接收到的1000条算法服务请求,可以使用算法V0012处理这1000条算法服务请求。
相应地,当配置条件为“上一灰度配置策略的预设时长内,新算法的执行成功率<90%”时,灰度配置策略可以被配置为{‘V0012’:0%,‘V0011’:100%}。举例来说,预设数据库中存储了新算法V0012,从而将灰度配置策略设置为{‘V0012’:10%,‘V0011’:90%}后,若对于使用算法V0012处理的100条算服务请求,存在20条算法服务请求处理出错,说明新算法V0012本身存在问题,如此,通过将灰度配置策略设置为{‘V0012’:0%,‘V0011’:100%},可以避免新算法V0012存在问题时强制更新算法,保证算法服务的持续有效性、算法服务的准确性,提高用户的体验。
其中,预设时长可以由本领域技术人员根据经验进行设置,比如可以为10min,或者可以为1h。其中,min、h均为时间单位,min是指分钟,h是指小时。
根据上述内容可知,通过设置表1所示的预设规则,可以在算法更新时逐渐增加新算法对应的灰度值,并逐渐降低旧算法对应的灰度值,从而使用新算法依次替换旧算法,保证算法更新的持续有效性;且,通过在新算法存在问题时修正新算法对应的灰度值和旧算法对应的灰度值,可以及时发现新算法存在的问题,避免更新存在问题的新算法,保证算法服务的持续有效性和准确性,提高用户的体验。
本发明实施例中,由于在步骤502中,配置服务器240监测到预设数据库中存储了新算法V0012,因此,配置服务器240在查询表1所示的预设规则后,可以将灰度配置策略由{‘V0011’:100%}配置为{‘V0012’:10%,‘V0011’:90%}。
步骤504,配置服务器将新调整的灰度配置策略发送给每个算法服务器。
本发明实施例中,配置服务器240在将灰度配置策略由{‘V0011’:100%}配置为{‘V0012’:10%,‘V0011’:90%}后,可以根据新配置的灰度配置策略生成报文,并可以将报文发送给每个算法服务器(比如算法服务器221、算法服务器222和算法服务器223)。其中,配置服务器240可以通过有线方式将报文发送给每个算法服务器,或者也可以通过无线方式将报文发送给每个算法服务器,具体不作限定。
相应地,每个算法服务器接收到新配置的灰度配置策略后,可以调用内设代理模块解析新配置的灰度配置策略设置得到对应的算法路由规则。在一种可能的实现方式中,内设代理模块可以根据预设数值范围、调用时钟偏差信息和硬件芯片配置中的任意一项或任意多项来解析得到对应的算法路由规则,比如可以仅根据硬件芯片配置解析得到对应的算法路由规则,或者也可以根据预设数字范围和调用时钟偏差信息解析得到对应的算法路由规则,不作限定。
举例来说,在一个示例中,若新配置的灰度配置策略为{‘V0012’:10%,‘V0011’:90%},说明算法V0012和算法V0011后续处理的算法服务请求的数量需要满足1:9的比例关系,考虑到1min的时长可以划分为0~59这60个数值,因此内设代理模块可以设置如下的算法路由规则:算法服务器以接收到算法服务请求的秒数数值(范围为[0,59])为基础,设置第一预设阈值为54,因此,若该秒数数值大于或等于54,则确定处理该算法服务请求的算法为算法V0012,若该秒数数值小于54,则确定处理该算法服务请求的算法为算法V0011;或者若该秒数数值小于6,则确定处理该算法服务请求的算法为算法V0012,若该秒数数值大于或等于6,则确定处理该算法服务请求的算法为算法V0011。
在另一个示例中,可以预先设置阈值(比如20),并通过程序的方式为算法服务器接收到的每个算法服务请求设置对应的数值,算法服务请求对应的数值的设置规则为“算法服务请求对应的数值小于20的概率为10%,大于或等于20的概率为90%”;如此,当算法服务请求对应的数值小于20时,确定处理该算法服务请求的算法为算法V0012,当算法服务请求对应的数值大于或等于20时,确定处理该算法服务请求的算法为算法V0011。
需要说明的是,上述示例仅是两种示例性的简单说明,其仅是为了便于说明方案,并不构成对方案的限定。在具体实施中,也可以使用除预设数值范围、调用时钟偏差信息和硬件芯片配置以外的其他信息解析得到对应的算法路由规则,具体不作限定。
步骤505,用户端设备向负载均衡服务器发送算法服务请求。
本发明实施例中,针对于用户端设备231~用户端设备233中的任一用户端设备,若该用户端设备确定需要使用算法服务器集群系统220的算法服务,则可以向算法服务器集群系统220中设置的负载均衡服务器224发送算法服务请求。其中,算法服务请求中可以包括待处理的数据。
步骤506,负载均衡服务器根据各个算法服务器的负载分配情况,确定处理该算法服务请求的目标算法服务器。
本发明实施例中,负载均衡服务器224可以监控算法服务器221~算法服务器223的执行状态信息,并可以根据算法服务器221~算法服务器223的执行状态信息从算法服务器221~算法服务器223中选择处理算法服务请求的目标算法服务器;若负载均衡服务器224接收到一个算法服务请求,则可以选择最为空闲的算法服务器作为目标算法服务器,若负载均衡服务器224接收到多个算法服务请求,则可以根据算法服务器221~算法服务器223的空闲状态排序依次选择多个算法服务器分别处理多个算法服务请求。其中,算法服务器的执行状态信息可以包括算法服务器当前执行的任务数量、空闲进程的数量、可用空间率或资源占用率、硬件配置和/或软件配置情况。
具体实施中,负载均衡服务器224实现监控的方式可以有多种,在一种可能的实现方式中,负载均衡服务器224可以按照预设周期监控算法服务器221~算法服务器223的执行状态信息,比如若预设周期为2min,则负载均衡服务器224可以每2min向算法服务器221~算法服务器223发送一次查询消息;相应地,算法服务器221~算法服务器223接收到查询消息后,可以获取当前时刻的执行状态信息,并将执行状态信息响应给负载均衡服务器224,以使负载均衡服务器224获取算法服务器221~算法服务器223的执行状态信息。在另一种可能的实现方式中,负载均衡服务器224可以实时监控算法服务器221~算法服务器223的执行状态信息,比如算法服务器221~算法服务器223可以将各自的执行状态信息按照预设周期上报给算法服务器,或者负载均衡服务器224每次接收到算法服务请求后,向算法服务器221~算法服务器223发送一次查询消息,以根据获取到的算法服务器221~算法服务器223的执行状态信息选取目标算法服务器。
步骤507,负载均衡服务器将算法服务请求发送给目标算法服务器。
以负载均衡服务器224接收到一个算法服务请求为例,若确定当前最为空闲的算法服务器为算法服务器221,则负载均衡服务器224可以将算法服务请求发送给算法服务器221。
步骤508,目标算法服务器根据灰度配置策略,确定处理算法服务请求的目标算法。
在一种可能的实现方式中,若算法服务器221解析灰度配置策略得到的算法路由规则为:“针对于接收到的每个算法服务请求,将接收秒数作为该算法服务请求对应的数值,若该算法服务请求对应的数值大于或等于54,则确定处理该算法服务请求的目标算法为算法V0012,若该算法服务请求对应的数值小于54,则确定处理该算法服务请求的目标算法为算法V0011”,则若接收到负载均衡服务器224发送的算法服务请求的时钟信息为10点20分56秒,则算法服务器241可以设置该算法服务请求对应的数值为56,由于56大于54,因此可以确定处理该算法服务请求的目标算法为算法V0012;相应地,若接收到负载均衡服务器224发送的算法服务请求的时钟信息为10点20分30秒,则算法服务器241可以设置该算法服务请求对应的数值为30,由于30小于54,因此可以确定处理该算法服务请求的目标算法为算法V0011。
本发明实施例中,由于算法服务器集群系统220的业务并发量非常大,每分钟可以接收数千甚至上万的算法服务请求,因此,采用该种实现方式,可以保证在一定时长内(比如1min,10s)各个算法服务器所接收到的全部算法服务器请求中存在90%的算法服务器请求使用算法V0011进行处理,存在10%的算法服务器请求使用算法V0012进行处理;如此,可以满足{“V0012”:10%,“V0011”:90%}的灰度配置策略。
步骤509,目标算法服务器确定目标算法服务器中是否存在目标算法,若存在目标算法,则执行步骤510a,若不存在目标算法,则执行步骤510b。
一般来说,算法服务器使用算法处理算法服务请求的流程可以为:算法服务器获取算法对应的程序文件,并将算法对应的程序文件存储在算法服务器的外部存储器中;算法服务器加载算法对应的程序文件得到算法模型(比如深度学习模型、神经网络模型等),并将算法模型保存到算法服务器的内部存储器中;算法服务器接收到算法服务请求后,使用内部存储器中运行的算法模型处理算法服务请求,得到处理结果。
基于该流程,本发明实施例中,算法服务器221在确定处理算法服务请求的目标算法后,可以查询算法服务器221的内部存储器,若确定算法服务器221的内部存储器中存在目标算法对应的算法模型,则可以直接使用内部存储器中的目标算法对应的算法模型处理算法服务请求(即步骤510a);若确定算法服务器221的内部存储器中不存在目标算法对应的算法模型,则可以查询算法服务器221的外部存储器,若确定算法服务器221的外部存储器中存在目标算法,则可以加载外部存储器中的目标算法得到目标算法对应的算法模型,将算法模型存储在内部存储器中,并使用内部存储器中的算法模型处理算法服务请求(即步骤510a),若确定算法服务器221的外部存储器中不存在目标算法,则可以执行步骤510b。
步骤510a,目标算法服务器使用目标算法服务器中存储的目标算法处理算法服务请求。
举例来说,若处理算法服务请求的目标算法为算法V0011,则由于算法服务器221的内部存储器中存在算法V0011对应的算法模型,因此,算法服务器221可以直接使用内部存储器中的算法V0011对应的算法模型处理算法服务请求,得到处理结果。
步骤510b,目标算法服务器从预设数据库中获取目标算法。
举例来说,处理算法服务请求的目标算法为算法V0012,则由于算法服务器221的内部存储器中不存在算法V0012对应的算法模型,且算法服务器221的外部存储器中也不存在算法V0012,因此,算法服务器221可以从预设数据库中获取算法V0012对应的程序文件,并将算法V0012对应的程序文件存储到算法服务器221的外部存储器中。
在一个示例中,算法服务器221可以先在外部存储器中创建一个目标算法对应的载体文件,比如V0012.py文件,进而可以将从预设数据库中获取到的算法V0012对应的程序文件的内容写入到载体文件V0012.py中。
步骤511,目标算法服务器使用目标算法处理算法服务请求。
具体实施中,算法服务器221在将算法V0012对应的程序文件存储到载体文件V0012.py之后,可以调用python类库加载载体文件V0012.py(程序可以为importModule(V0012.py)),得到算法模型module.V0012,进而可以将算法模型module.V0012保存到算法服务器221的内部存储器中。如此,算法服务器221的内部存储器中可以同时存储有算法V0011对应的算法模型module.V0011和算法V0011对应的算法模型module.V0012。
进一步地,算法服务器221可以使用内部存储器中加载的算法模型module.V0012处理该算法服务请求,得到处理结果。
步骤512,目标算法服务器将处理结果发送给用户端设备。
具体实施中,算法服务器221可以将处理结果直接发送给用户端设备231,或者也可以先将处理结果发送给负载均衡服务器224,再通过负载均衡服务器224将处理结果发送给用户端设备231,具体不作限定。
步骤513,配置服务器监听新算法的使用情况。
本发明实施例中,在以灰度配置策略{‘V0012’:10%,‘V0011’:90%}处理算法服务请求的过程中,配置服务器240可以监听算法V0012的实际使用情况,并可以根据算法V0012的实际使用情况确定算法V0012是否存在问题。举例来说,配置服务器240可以按照预设周期获取算法服务器221~算法服务器223分别使用算法V0012处理算法服务请求的处理状态,或者算法服务器221~算法服务器223也可以在每次使用算法V0012处理算法服务请求后,将处理状态上报给配置服务器240。
进一步地,若算法服务器221~算法服务器223在预设时长内共使用算法V0012处理100条算法服务请求,正常处理的算法服务请求为50条,异常处理的算法服务请求为50条,则配置服务器240可以确定算法V0012的执行成功率为50%;相应地,若算法服务器221~算法服务器223在预设时长内共使用算法V0012处理100条算法服务请求,正常处理的算法服务请求为95条,异常处理的算法服务请求为5条,则配置服务器240可以确定算法V0012的执行成功率为95%。
步骤514,配置服务器根据新算法的使用情况,使用预设规则调整灰度配置策略,并执行步骤504。
具体实施中,参照表1所示的预设规则,若在使用灰度配置策略{‘V0012’:10%,‘V0011’:90%}处理算法服务请求的预设时长内,算法V0012的执行成功率为50%(<90%),则配置服务器可以将灰度配置策略调整为{‘V0012’:0%,‘V0011’:100%},并可以按照步骤504中的内容将调整后的灰度配置策略发送给每个算法服务器。如此,算法服务器221~算法服务器223接收到调整后的灰度配置策略后,解析得到的算法路由规则可以为“使用算法V0011处理算法服务请求”,因此,对于后续接收到的所有的算法服务请求,均可以使用算法V0011进行处理,从而可以保证在算法V0011的升级算法V0012存在问题时,通过更新灰度配置策略及时恢复原有的算法能力,保证算法的稳定性。
相应地,若在使用灰度配置策略{‘V0012’:10%,‘V0011’:90%}处理算法服务请求的预设时长内,算法V0012的执行成功率为95%(>90%),则配置服务器可以将灰度配置策略调整为{‘V0012’:40%,‘V0011’:60%},并可以按照步骤504中的内容将调整后的灰度配置策略发送给每个算法服务器。如此,算法服务器221~算法服务器223接收到调整后的灰度配置策略后,解析得到的算法路由规则可以为“针对于接收到的每个算法服务请求,将接收秒数作为该算法服务请求对应的数值,若该算法服务请求对应的数值大于或等于24,则确定处理该算法服务请求的目标算法为算法V0012,若该算法服务请求对应的数值小于24,则确定处理该算法服务请求的目标算法为算法V0011”,因此,可以使用算法V0011处理后续接收到的60%的算法服务请求,并使用算法V0012处理后续接收到的40%的算法服务请求,从而可以在确定算法V0012正常的情况下,扩大算法V0012的应用范围。
进一步地,若在使用灰度配置策略{‘V0012’:40%,‘V0011’:60%}处理算法服务请求的预设时长内,算法V0012的执行成功率为92%(>90%),则配置服务器可以将灰度配置策略调整为{‘V0012’:70%,‘V0011’:30%},并可以按照步骤504中的内容将调整后的灰度配置策略发送给每个算法服务器。如此,算法服务器221~算法服务器223接收到调整后的灰度配置策略后,解析得到的算法路由规则可以为“针对于接收到的每个算法服务请求,将接收秒数作为该算法服务请求对应的数值,若该算法服务请求对应的数值大于或等于42,则确定处理该算法服务请求的目标算法为算法V0012,若该算法服务请求对应的数值小于42,则确定处理该算法服务请求的目标算法为算法V0011”,因此,可以使用算法V0011处理后续接收到的30%的算法服务请求,并使用算法V0012处理后续接收到的70%的算法服务请求,从而可以在确定算法V0012正常的情况下进一步地扩大算法V0012的应用范围。
若在使用灰度配置策略{‘V0012’:70%,‘V0011’:30%}处理算法服务请求的预设时长内,算法V0012的执行成功率为95%(>90%),则配置服务器可以将灰度配置策略调整为{‘V0012’:100%,‘V0011’:0%},并可以按照步骤504中的内容将调整后的灰度配置策略发送给每个算法服务器。如此,算法服务器221~算法服务器223接收到调整后的灰度配置策略后,解析得到的算法路由规则可以为“使用算法V0012处理算法服务请求”,因此,对于后续接收到的所有的算法服务请求,均可以使用算法V0012进行处理,从而可以保证将原有的算法V0011完全替换为升级算法V0012,且该替换过程无需重启算法服务器,保证算法更新的稳定性。
需要说明的是,上述内容是以配置服务器240自动调整灰度配置策略为例描述算法服务请求的处理过程,可以理解地,在实际操作中,也可以通过人工方式获取算法V0012的使用状态,比如若确定算法V0012存在问题,则可以人为将配置服务器240中的灰度配置策略调整为{‘V0012’:0%,‘V0011’:100%},或者若确定算法V0012不存在问题,则可以人为将配置服务器240中的灰度配置策略调整为{‘V0012’:40%,‘V0011’:60%}。
需要说明的是,图5所示意的上述步骤编号仅为执行流程的一种示例,并不构成对各个步骤的执行先后顺序的限定。
本发明的上述实施例中,算法服务器接收算法服务请求后,获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;进一步地,所述算法服务器若确定所述算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并使用所述目标算法处理所述算法服务请求。本发明实施例中,通过使用预设数据库预先存储算法,并使用灰度配置策略自动确定处理算法服务请求的算法,可以无需人工加载算法,从而可以提高算法更新的效率;且,由于灰度配置策略中存储有多个算法对应的灰度值,从而可以根据多个算法对应的灰度值使用多个算法处理算法服务请求,而无需使用某一个算法处理所有的算法服务请求,从而可以避免新算法存在问题时使用新算法处理所有的算法服务请求而导致的更新出错的问题,保证更新过程的稳定性和准确性。
针对上述方法流程,本发明实施例还提供一种数据处理装置,该装置的具体内容可以参照上述方法实施。
图6为本发明实施例提供的一种数据处理装置的结构示意图,包括:
收发模块601,用于接收算法服务请求;
确定模块602,用于获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;
处理模块603,用于若确定算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并使用所述目标算法处理所述算法服务请求。
可选地,所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;
所述处理模块603具体用于:
根据所述第一预设阈值、所述第一算法对应的灰度值和所述第二算法对应的灰度值,为所述算法服务请求分配对应的数值;
若所述算法服务请求对应的数值大于所述第一预设阈值,则确定处理所述算法服务请求的目标算法为所述第一算法;若所述算法服务请求对应的数值小于或等于所述第一预设阈值,则确定处理所述算法服务请求的所述目标算法为所述第二算法。
可选地,所述处理模块603具体用于:
若确定所述算法服务器的内部存储器中未运行有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中不存在所述目标算法,则确定所述算法服务器中不存在所述目标算法;
从所述预设数据库中获取所述目标算法,并将所述目标算法存储至所述算法服务器的外部存储器中,运行所述目标算法得到所述目标算法对应的算法模型,进而将所述算法模型存储至所述算法服务器的内部存储器中,使用所述算法模型处理所述算法服务请求。
可选地,所述处理模块603还用于:
若确定所述算法服务器的内部存储器中已加载有所述目标算法对应的算法模型,则使用所述内部存储器中加载的所述目标算法对应的算法模型处理所述算法服务请求;或者,
若确定所述算法服务器的内部存储器中未加载有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中存在所述目标算法,则加载所述外部存储器中的所述目标算法得到所述目标算法对应的算法模型,并将所述目标算法对应的算法模型存储在所述算法服务器的内部存储器中,通过所述内部存储器中存储的所述目标算法对应的算法模型处理所述算法服务请求。
图7为本发明实施例提供的一种数据处理装置的结构示意图,包括:
配置模块701,用于检测到预设数据库中更新第一算法后,配置灰度配置策略;所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;
收发模块702,用于将所述灰度配置策略分别发送给至少一个算法服务器。
可选地,在所述收发模块702将所述灰度配置策略分别发送给至少一个算法服务器之后,所述配置模块701还用于:
根据所述第一算法的使用效果确定所述第一算法是否有误,若确定所述第一算法无误,则逐渐增大所述第一算法对应的灰度值。
可选地,所述配置模块701还用于:
若确定所述第一算法有误,则将所述第一算法对应的灰度值设置为第一指示值,并将所述第二算法对应的灰度值设置为第二指示值;所述第一指示值用于指示不使用所述第一算法处理算法服务请求,所述第二指示值用于指示使用所述第二算法处理后续接收的任意算法服务请求。
从上述内容可以看出:本发明的上述实施例中,算法服务器接收算法服务请求后,获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;进一步地,所述算法服务器若确定所述算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并使用所述目标算法处理所述算法服务请求。本发明实施例中,通过使用预设数据库预先存储算法,并使用灰度配置策略自动确定处理算法服务请求的算法,可以无需人工加载算法,从而可以提高算法更新的效率;且,由于灰度配置策略中存储有多个算法对应的灰度值,从而可以根据多个算法对应的灰度值使用多个算法处理算法服务请求,而无需使用某一个算法处理所有的算法服务请求,从而可以避免新算法存在问题时使用新算法处理所有的算法服务请求而导致的更新出错的问题,保证更新过程的稳定性和准确性。
基于同一发明构思,本发明实施例还提供一种计算设备,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述计算机程序被所述处理单元执行时,使得所述处理单元执行如图4任意一项所述的数据处理方法。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述计算机程序在所述计算设备上运行时,使得所述计算设备执行如图4任意一项所述的数据处理方法。
基于相同的技术构思,本发明实施例提供了一种终端设备,如图8所示,包括至少一个处理器1101,以及与至少一个处理器连接的存储器1102,本发明实施例中不限定处理器1101与存储器1102之间的具体连接介质,图8中处理器1101和存储器1102之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以执行前述的数据处理方法中所包括的步骤。
其中,处理器1101是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据,从而实现数据处理。可选的,处理器1101可包括至少一个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1101可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合数据处理实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1102可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例提供了一种后端设备,如图9所示,包括至少一个处理器1201,以及与至少一个处理器连接的存储器1202,本发明实施例中不限定处理器1201与存储器1202之间的具体连接介质,图9中处理器1201和存储器1202之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1202存储有可被至少一个处理器1201执行的指令,至少一个处理器1201通过执行存储器1202存储的指令,可以执行前述的数据处理方法中所包括的步骤。
其中,处理器1201是后端设备的控制中心,可以利用各种接口和线路连接后端设备的各个部分,通过运行或执行存储在存储器1202内的指令以及调用存储在存储器1202内的数据,从而实现数据处理。可选的,处理器1201可包括至少一个处理单元,处理器1201可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要对接收到的指令进行解析以及对接收到的结果进行解析。可以理解的是,上述调制解调处理器也可以不集成到处理器1201中。在一些实施例中,处理器1201和存储器1202可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1201可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合数据处理实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1202可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1202是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1202还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在至少一个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法包括:
算法服务器接收算法服务请求;
所述算法服务器获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;
若确定所述算法服务器中不存在所述目标算法,则所述算法服务器从预设数据库中获取所述目标算法,并通过所述目标算法处理所述算法服务请求。
2.根据权利要求1所述的方法,其特征在于,所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;
所述算法服务器获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法,包括:
所述算法服务器根据所述第一预设阈值、所述第一算法对应的灰度值和所述第二算法对应的灰度值,为所述算法服务请求分配对应的数值;
若所述算法服务请求对应的数值大于所述第一预设阈值,则所述算法服务器确定处理所述算法服务请求的目标算法为所述第一算法;若所述算法服务请求对应的数值小于或等于所述第一预设阈值,则所述算法服务器确定处理所述算法服务请求的所述目标算法为所述第二算法。
3.根据权利要求1所述的方法,其特征在于,所述若确定所述算法服务器中不存在所述目标算法,则所述算法服务器从预设数据库中获取所述目标算法,并通过所述目标算法处理所述算法服务请求,包括:
若确定所述算法服务器的内部存储器中未运行有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中不存在所述目标算法,则所述算法服务器确定所述算法服务器中不存在所述目标算法;
所述算法服务器从所述预设数据库中获取所述目标算法,并将所述目标算法存储至所述算法服务器的外部存储器中,运行所述目标算法得到所述目标算法对应的算法模型,进而将所述算法模型存储至所述算法服务器的内部存储器中,使用所述算法模型处理所述算法服务请求。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述算法服务器若确定所述算法服务器的内部存储器中已运行有所述目标算法对应的算法模型,则使用所述内部存储器中运行的所述目标算法对应的算法模型处理所述算法服务请求;或者,
所述算法服务器若确定所述算法服务器的内部存储器中未运行有所述目标算法对应的算法模型,且确定所述算法服务器的外部存储器中存在所述目标算法,则运行所述外部存储器中的所述目标算法得到所述目标算法对应的算法模型,并将所述目标算法对应的算法模型存储在所述算法服务器的内部存储器中,通过所述内部存储器中存储的所述目标算法对应的算法模型处理所述算法服务请求。
5.一种数据处理方法,其特征在于,所述方法包括:
配置服务器检测到预设数据库中更新第一算法后,配置灰度配置策略;所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;
所述配置服务器将所述灰度配置策略分别发送给至少一个算法服务器。
6.根据权利要求5所述的方法,其特征在于,所述配置服务器将所述灰度配置策略分别发送给至少一个算法服务器之后,还包括:
所述配置服务器根据所述第一算法的使用效果确定所述第一算法是否有误,若确定所述第一算法无误,则逐渐增大所述第一算法对应的灰度值。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述配置服务器若确定所述第一算法有误,则将所述第一算法对应的灰度值设置为第一指示值,并设置所述第二算法对应的灰度值为第二指示值;所述第一指示值用于指示不使用所述第一算法处理算法服务请求,所述第二指示值用于指示使用所述第二算法处理后续接收的任意算法服务请求。
8.一种数据处理装置,其特征在于,所述装置包括:
收发模块,用于接收算法服务请求;
确定模块,用于获取灰度配置策略,并根据所述灰度配置策略确定处理所述算法服务请求的目标算法;所述灰度配置策略包括至少一个算法对应的灰度值,每个算法对应的灰度值用于标识使用所述算法处理算法服务请求的概率;
处理模块,用于若确定所述算法服务器中不存在所述目标算法,则从预设数据库中获取所述目标算法,并通过所述目标算法处理所述算法服务请求。
9.一种数据处理装置,其特征在于,所述装置包括:
配置模块,用于检测到预设数据库中更新第一算法后,配置灰度配置策略;所述灰度配置策略包括第一预设阈值、第一算法对应的灰度值和第二算法对应的灰度值,所述第一算法为所述第二算法的升级算法;
收发模块,用于将所述灰度配置策略分别发送给至少一个算法服务器。
10.一种计算设备,其特征在于,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述计算机程序被所述处理单元执行时,使得所述处理单元执行权利要求1~7任一权利要求所述的方法。
11.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述计算机程序在所述计算设备上运行时,使得所述计算设备执行权利要求1~7任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910717919.5A CN110442455A (zh) | 2019-08-05 | 2019-08-05 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910717919.5A CN110442455A (zh) | 2019-08-05 | 2019-08-05 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110442455A true CN110442455A (zh) | 2019-11-12 |
Family
ID=68433212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910717919.5A Pending CN110442455A (zh) | 2019-08-05 | 2019-08-05 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442455A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240869A (zh) * | 2020-01-19 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 缓存处理方法以及装置 |
CN111988429A (zh) * | 2020-09-01 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 算法调度方法以及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096021A (zh) * | 2016-06-24 | 2016-11-09 | 合信息技术(北京)有限公司 | 一种静态页面灰度发布方法及系统 |
CN108156038A (zh) * | 2017-12-29 | 2018-06-12 | 广东欧珀移动通信有限公司 | 请求分发方法、装置、接入网关及存储介质 |
US20180240029A1 (en) * | 2015-10-21 | 2018-08-23 | RandomWalk Analytics Inc., d/b/a Pairity | Technologies for evaluating relationships between social networking profiles |
CN109445811A (zh) * | 2018-09-07 | 2019-03-08 | 平安科技(深圳)有限公司 | 灰度发布方法、装置、计算机设备及计算机存储介质 |
-
2019
- 2019-08-05 CN CN201910717919.5A patent/CN110442455A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180240029A1 (en) * | 2015-10-21 | 2018-08-23 | RandomWalk Analytics Inc., d/b/a Pairity | Technologies for evaluating relationships between social networking profiles |
CN106096021A (zh) * | 2016-06-24 | 2016-11-09 | 合信息技术(北京)有限公司 | 一种静态页面灰度发布方法及系统 |
CN108156038A (zh) * | 2017-12-29 | 2018-06-12 | 广东欧珀移动通信有限公司 | 请求分发方法、装置、接入网关及存储介质 |
CN109445811A (zh) * | 2018-09-07 | 2019-03-08 | 平安科技(深圳)有限公司 | 灰度发布方法、装置、计算机设备及计算机存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240869A (zh) * | 2020-01-19 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 缓存处理方法以及装置 |
CN111240869B (zh) * | 2020-01-19 | 2022-04-01 | 支付宝(杭州)信息技术有限公司 | 缓存处理方法以及装置 |
CN111988429A (zh) * | 2020-09-01 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 算法调度方法以及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200287961A1 (en) | Balancing resources in distributed computing environments | |
CN112162865B (zh) | 服务器的调度方法、装置和服务器 | |
CN106663030B (zh) | 在分布式集群中的可扩展故障恢复通信 | |
CN107104814B (zh) | 软件升级方法和系统 | |
CN109194584A (zh) | 一种流量监控方法、装置、计算机设备及存储介质 | |
US9703610B2 (en) | Extensible centralized dynamic resource distribution in a clustered data grid | |
CN109117265A (zh) | 在集群中调度作业的方法、装置、设备及存储介质 | |
CN103841134B (zh) | 基于api发送、接收信息的方法、装置及系统 | |
CN111181770B (zh) | 一种资源分配方法、系统、电子设备和存储介质 | |
CN110990138B (zh) | 资源调度方法、装置、服务器及存储介质 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN110365748A (zh) | 业务数据的处理方法和装置、存储介质及电子装置 | |
CN109284205A (zh) | 快照备份方法、装置、计算机设备及存储介质 | |
JPWO2004063928A1 (ja) | データベース負荷軽減システムおよび負荷軽減プログラム | |
WO2008056670A1 (fr) | Système, procédé, appareil et programme fournissant des informations de ressource | |
CN110442455A (zh) | 一种数据处理方法及装置 | |
CN111858034A (zh) | 一种资源的管理方法、系统、设备以及介质 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
US20150277892A1 (en) | Multi-phase software delivery | |
CN109962941B (zh) | 通信方法、装置以及服务器 | |
Zheng et al. | A qos-aware middleware for fault tolerant web services | |
WO2014138892A1 (en) | Method and apparatus for peer-to-peer file sharing | |
CN114385366A (zh) | 容器云平台的容器组弹性扩容方法、系统、介质和设备 | |
EP2711836A1 (en) | Data distribution system | |
CN114936089A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191112 |
|
RJ01 | Rejection of invention patent application after publication |