一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型更新方法及装置、计算机存储介质、电子设备与流程

2021-12-14 20:56:00 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,特别涉及一种模型更新方法、模型更新装置、计算机存储介质及电子设备。


背景技术:

2.人工智能(ai,artificial intelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。机器学习(ml,machine learning)是一门多领域交叉学科,是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及各个领域。
3.目前,为了支撑超大模型的在线预估,一般是将项目对象模型根据计算和数据两个维度拆分为若干个子模型。在模型更新时,是当各个子模型加载完成后,异步对各个子模型进行版本切换。因而,导致项目对象模型内部的各个子模型的版本不一致,模型处理结果不准确。
4.鉴于此,本领域亟需开发一种新的模型更新方法及装置。
5.需要说明的是,上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。


技术实现要素:

6.本公开的目的在于提供一种模型更新方法、模型更新装置、计算机存储介质及电子设备,进而至少在一定程度上避免了相关技术中对服务器集群中部署的模型版本进行异步切换导致模型内部版本不一致的缺陷。
7.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
8.根据本公开的第一方面,提供一种模型更新方法,包括:获取项目对象模型对应的多个拆分模型,以使服务器集群对所述多个拆分模型进行部署;所述服务器集群包括多个服务器;当检测到所述项目对象模型存在更新模型时,获取所述更新模型对应的更新版本号;将所述更新版本号发送至所述服务器集群,以使所述服务器集群加载所述更新版本号对应的多个目标模型;所述多个目标模型为对所述更新模型进行拆分得到的、且与所述多个拆分模型存在预设映射关系;当检测到预设数量服务器中的所述目标模型加载完成时,将所述项目对象模型的版本号切换为所述更新版本号。
9.在本公开的示例性实施例中,所述方法还包括:定时获取所述项目对象模型的当前版本号,并将所述当前版本号发送至所述服务器集群;当目标服务器中的模型版本号与所述当前版本号不一致时,对所述目标服务器进行下线处理;以使所述目标服务器加载所述当前版本号对应的变更模型,并将所述模型版本号切换为所述当前版本号;所述变更模型为所述目标服务器中部署的拆分模型的更新版本。
10.在本公开的示例性实施例中,所述获取项目对象模型对应的多个拆分模型,以使
服务器集群对所述多个拆分模型进行部署,包括:获取所述多个拆分模型的存储路径,以及,获取所述服务器集群中各个服务器的标识信息;根据所述存储路径与所述标识信息,生成各所述拆分模型对应的部署配置信息;以使所述服务器集群根据所述部署配置信息,对所述多个拆分模型进行部署。
11.在本公开的示例性实施例中,所述多个拆分模型包括主模型和多个子模型;所述服务器集群包括主服务器集群和子服务器集群;所述主服务器集群包括多个主服务器,所述子服务器集群包括多个子服务器;所述以使服务器集群对所述多个拆分模型进行部署,包括:以使所述主服务器集群中的各所述主服务器根据所述部署配置信息,对所述主模型进行部署;所述主模型为提供计算功能的拆分模型;以使所述子服务器集群中的各所述子服务器根据所述部署配置信息,对所述子模型进行部署;所述子模型为提供数据查询功能和/或所述计算功能的拆分模型。
12.在本公开的示例性实施例中,所述当检测到预设数量服务器中的所述目标模型加载完成时,将所述项目对象模型的版本号切换为所述更新版本号,包括:当检测到第一预设数量的主服务器中的目标模型,以及,第二预设数量的子服务器中的目标模型加载完成时,将所述项目对象模型的版本号切换为所述更新版本号。
13.在本公开的示例性实施例中,所述以使所述服务器集群加载所述更新版本号对应的多个目标模型,包括:以使所述服务器集群基于双缓冲机制,将所述更新版本号对应的多个目标模型缓存至本地存储器。
14.在本公开的示例性实施例中,所述当检测到预设数量服务器中的所述目标模型加载完成时,将所述项目对象模型的版本号切换为所述更新版本号,包括:当检测到预设数量服务器中的所述目标模型加载完成时,向所述服务器集群发送版本切换指令;在接收到所述预设数量服务器反馈的切换成功消息时,将所述项目对象模型的版本号切换为所述更新版本号。
15.根据本公开的第二方面,提供一种模型更新装置,包括:拆分模块,用于获取项目对象模型对应的多个拆分模型,以使服务器集群对所述多个拆分模型进行部署;所述服务器集群包括多个服务器;检测模块,用于当检测到所述项目对象模型存在更新模型时,获取所述更新模型对应的更新版本号;模型加载模块,用于将所述更新版本号发送至所述服务器集群,以使所述服务器集群加载所述更新版本号对应的多个目标模型;所述多个目标模型为对所述更新模型进行拆分得到的、且与所述多个拆分模型存在预设映射关系;版本切换模块,用于当检测到预设数量服务器中的所述目标模型加载完成时,将所述项目对象模型的版本号切换为所述更新版本号。
16.根据本公开的第三方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的模型更新方法。
17.根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面所述的模型更新方法。
18.由上述技术方案可知,本公开示例性实施例中的模型更新方法、模型更新装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
19.在本公开的一些实施例所提供的技术方案中,一方面,获取项目对象模型对应的
多个拆分模型,以使服务器集群对多个拆分模型进行部署,当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号,能够及时获知项目对象模型的更新情况,避免因检测不及时导致模型更新延迟的问题,保证模型更新的实时性。进一步的,将更新版本号发送至服务器集群,以使服务器集群加载更新版本号对应的多个目标模型,能够使得服务器集群中的多个服务器同步加载目标模型,解决因各个服务器的模型加载时间不一致导致模型内部版本不一致的技术问题,保证模型版本的一致性。另一方面,当检测到预设数量服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号,能够解决相关技术中当单个更新模型加载完成时,对单个模型的版本进行切换所导致的各子模型的版本不统一各子模型的版本不一致,模型处理结果误差较大的技术问题,保证模型处理结果的准确性。
20.本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1示出本公开一示例性实施例中模型更新方法的流程示意图;
23.图2示出本公开一示例性实施例中模型更新方法的子流程示意图;
24.图3示出本公开一示例性实施例中模型更新方法的子流程示意图;
25.图4示出本公开一示例性实施例中模型更新方法的子流程示意图;
26.图5示出本公开一示例性实施例中模型更新方法的整体交互流程示意图;
27.图6示出本公开一示例性实施例中模型更新方法的整体架构图;
28.图7示出本公开示例性实施例中模型更新装置的结构示意图;
29.图8示出本公开示例性实施例中计算机存储介质的结构示意图;
30.图9示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
31.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
32.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出
的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
33.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
34.点击率预测是机器学习的重要的应用分支,对于内容数据的提供方来说,通常会对各种内容数据进行点击率预测,从而使推送的内容数据符合用户的喜好,如对偏好军事的用户推荐军事新闻,对偏好美妆的用户推荐美妆广告等。
35.目前的点击率预估方案主要包括以下三个步骤:第一,构建用于预测点击率(click-through-rate,点击率,简称:ctr)的算法模型,其中包含经典的fm模型(factorization machine,分解模型,简称:fm模型)以及基于深度学习的模型,例如:dcn模型(deep cross network,深度交叉网络,简称:dcn)等;第二,构建大规模机器学习训练平台,并基于用户属性、用户行为信息及商品数据进行机器学习模型的训练,并将最终训练好的算法模型推送到网盘;第三,在线模型预估服务从网盘获取算法模型,并通过分布式加载、集群部署的方式,利用模型图引擎对外提供实时的模型预估能力,为最终的广告投放提供指导。
36.为了支撑超大模型的在线预估,一般从计算和数据两个维度将算法模型拆分为一个主模型和若干个拆分模型,示例性的,算法模型m可以被拆分为主模型a、拆分模型b和c。主模型a通过注册中心获取各个拆分模型(b、c)的网络地址和端口并发起远程访问,内部利用模型图引擎的自驱动,完成整个模型执行过程中的自动推导、并发、执行,对外提供完整的模型预估能力。
37.当模型需要更新时,在线模型预估服务使用当前模型提供服务,并将更新的模型加载到缓冲池中,在每个更新模型加载完成之后动态切换各个模型,并使用更新后的模型提供服务。举例而言,当算法模型m的更新模型为m (包括主模型a的更新模型a 、拆分模型b、c分别对应的更新模型b 、c )时,即在更新模型a 加载完成时,则将主模型a动态切换为a ,而此时,拆分模型b、c还处于原始版本并未切换,因而,算法模型的各个拆分模型的版本不同步。从而导致模型内部版本不统一,造成模型完整性被破坏,输出的预估结果差异较大,结果不准确。
38.为了解决上述问题,在本公开的实施例中,首先提供了一种模型更新方法,至少在一定程度上克服相关技术中对服务器集群中部署的模型版本进行异步切换导致模型内部版本不一致的缺陷。
39.图1示出本公开一示例性实施例中模型更新方法的流程示意图,该模型更新方法的执行主体可以是对模型进行更新处理的服务器。
40.参考图1,根据本公开的一个实施例的模型更新方法包括以下步骤:
41.步骤s110,获取项目对象模型对应的多个拆分模型,以使服务器集群对多个拆分模型进行部署;
42.步骤s120,当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号;
43.步骤s130,将更新版本号发送至服务器集群,以使服务器集群加载更新版本号对
应的多个目标模型;多个目标模型为对更新模型进行拆分得到的、且与多个拆分模型存在预设映射关系;
44.步骤s140,当检测到预设数量服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号。
45.在图1所示实施例所提供的技术方案中,一方面,获取项目对象模型对应的多个拆分模型,以使服务器集群对多个拆分模型进行部署,当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号,能够及时获知项目对象模型的更新情况,避免因检测不及时导致模型更新延迟的问题,保证模型更新的实时性。进一步的,将更新版本号发送至服务器集群,以使服务器集群加载更新版本号对应的多个目标模型,能够使得服务器集群中的多个服务器同步加载目标模型,解决因各个服务器的模型加载时间不一致导致模型内部版本不一致的技术问题,保证模型版本的一致性。另一方面,当检测到预设数量服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号,能够解决相关技术中当单个更新模型加载完成时,对单个模型的版本进行切换所导致的各子模型的版本不一致,模型处理结果误差较大的技术问题,保证模型处理结果的准确性。
46.以下对图1中的各个步骤的具体实现过程进行详细阐述:
47.服务器集群是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
48.通过服务器集群,一方面,可解决所有的服务器硬件故障,当某一台服务器出现任何故障,如:硬盘、内存、cpu(central processing unit,中央处理器,简称:cpu)、主板、i/o板(input/output,即输入/输出)以及电源故障,运行在这台服务器上的应用就会切换到其它的服务器上。进一步的,可解决软件系统问题,在计算机系统中,用户所使用的是应用程序和数据,而应用系统运行在操作系统之上,操作系统又运行在服务器上。这样,只要应用系统、操作系统、服务器三者中的任何一个出现故障,系统实际上就停止了向客户端提供服务,比如我们常见的软件死机,就是这种情况之一,尽管服务器硬件完好,但服务器仍旧不能向客户端提供服务。而集群的最大优势在于对故障服务器的监控是基于应用的,也就是说,只要服务器的应用停止运行,其它的相关服务器就会接管这个应用,而不必理会应用停止运行的原因是什么。另一方面,可以解决人为失误造成的应用系统停止工作的情况,例如,当管理员对某台服务器操作不当导致该服务器停机,因此运行在这台服务器上的应用系统也就停止了运行。由于集群是对应用进行监控,因此其它的相关服务器就会接管这个应用。
49.在步骤s110中,获取项目对象模型对应的多个拆分模型,以使服务器集群对多个拆分模型进行部署。
50.在本公开的示例性实施例中,可以训练一项目对象模型,举例而言,上述项目对象模型可以是点击率预估模型(用于预测物品或网页的点击率预估值的机器学习模型)、浏览次数预估模型等数据预测模型,可以根据实际情况自行设定,属于本公开的保护范围。
51.在训练好上述项目对象模型之后,可以编写上述项目对象模型的拆分脚本,以对上述项目对象模型进行拆分,得到多个拆分模型。示例性的,拆分模型可以包括主模型和子模型,具体的,可以根据上述拆分脚本,将项目对象模型中的计算部分拆分出去,得到提供
计算功能(或预测功能)的主模型a,将项目对象模型中的数据部分拆分出去,得到多个提供数据查询功能和/或计算功能的子模型(例如:子模型b、c、d)。进而,可以对得到的多个拆分模型(主模型a、子模型b、子模型c和子模型d)进行存储,并记录其存储路径。
52.示例性的,可以构建用于部署上述拆分模型的服务器集群,示例性的,可以包括一主服务器集群和一子服务器集群,其中,主服务器集群用于部署上述主模型(a),子服务器集群用于部署上述子模型(b、c、d)。示例性的,主服务器集群中可以包含10个主服务器,子服务器集群中可以包含30个子服务器。
53.还可以构建一管理服务器,具体的,可以构建一管理服务器集群,其中包含多个管理服务器,当某个管理服务器抢占到分布式锁(zookeeper)时,确定该管理服务器为工作机,当管理服务器未抢占到分布式锁时,确定该管理服务器为备用机。从而,能够实现主备动态切换,提高服务器的容灾能力。其中,zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
54.在构建好上述主服务器集群和子服务器集群之后,可以建立主服务器集群、子服务器集群与上述管理服务器之间的通讯连接,进而,各个主服务器和子服务器可以向管理服务器发送自身的标识信息,以实现在管理服务器中的身份注册,从而管理服务器可以为各个主服务器和子服务器分配任务。其中,标识信息可以是id号(identification,身份标识),ip地址(internet protocol address,网际协议地址,简称:ip地址)或端口号等,可以根据实际情况自行设定,举例而言,当标识信息为id号时,主服务器的标识信息可以是“m1、m2、m3
……
m10”。子服务器的标识信息可以是“s1、s2、s3
……
s30”。
55.进而,管理服务器可以获取多个拆分模型的存储路径,以及,获取到上述服务器集群中各个服务器的标识信息,进而,可以根据存储路径和标识信息,生成各拆分模型对应的部署配置信息。进而,服务器集群可以根据上述部署配置信息,对多个拆分模型进行部署。举例而言,拆分模型a可以对应部署配置信息a,则部署配置信息a中可以包含拆分模型a的存储路径,以及,部署拆分模型a的服务器的标识信息,例如:“m1”。进而,标识信息为m1的主服务器可以根据自身的标识信息匹配到配置文件a,进而,可以通过配置文件a确定拆分模型a的存储路径,以实现将拆分模型a加载至主服务器m1中。
56.从而,示例性的,标识信息为m1-m10的主服务器中可以部署上述主模型a,标识信息为s1-s10的子服务器中可以部署上述子模型b,标识信息为s11-s20的子服务器中可以部署上述子模型c,标识信息为s21-s30的子服务器中可以部署上述子模型d。
57.在将多个拆分模型部署至服务器集群之后,可以参考图2,图2示出本公开一示例性实施例中模型更新方法的子流程示意图,具体示出当某一服务器中部署的拆分模型的模型版本号与项目对象模型的当前版本号不一致时的处理过程流程图,包括步骤s201-步骤s203,以下结合图2对具体的实施方式进行解释。
58.在步骤s201中,定时获取项目对象模型的当前版本号,并将当前版本号发送至服务器集群。
59.管理服务器可以通过心跳机制定时获取项目对象模型的当前版本号,并将当前版
本号发送至上述服务器集群。其中,心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。
60.在步骤s202中,当目标服务器中的模型版本号与当前版本号不一致时,对目标服务器进行下线处理。
61.当目标服务器中的模型版本号与上述当前版本号不一致时,目标服务器可以向管理服务器发送通知消息,进而,管理服务器可以对目标服务器进行下线处理(例如:删除管理服务器中存储的上述目标服务器的标识信息,以注销目标服务器在管理服务器中的注册信息),从而,可以终止目标服务器的服务进程,避免因目标服务器与其他服务器中部署的模型内部版本不一致,导致整体模型的计算结果出现偏差,模型计算结果不准确的技术问题,保证模型处理结果的准确性。
62.在步骤s203中,以使目标服务器加载当前版本号对应的变更模型,并将模型版本号切换为当前版本号。
63.进而,目标服务器可以从网盘中获取上述变更模型,并基于双缓冲机制将上述变更模型缓存至目标服务器中的本地存储区中。,在加载完成(即模型缓存完成)之后,目标服务器可以向管理服务器发送通知消息,进而,在接收到管理服务器发送的版本切换指令之后,可以将上述模型版本号切换为上述当前版本号。其中,网盘,又称网络硬盘、网络u盘,是一种基于网络的在线存储服务。网盘向用户提供文件的存储、共享、访问、备份等文档管理功能。用户可以通过因特网管理、编辑网盘里的文件。从而将智能设备对手写输入的响应操作和显示操作错开,响应等耗时的操作在异步线程中完成,避免了主线程刷新不过来的问题;进一步地,通过改变系统消息的回调方式,保证界面更新频率是均匀的,有效地解决了现有的手写过程不顺畅的问题;极大地提升了用户体验感。
64.在将将上述模型版本号切换为上述当前版本号之后,目标服务器可以重新向上述管理服务器发送其标识信息,以实现在上述管理服务器中的信息注册,重新对外提供服务。
65.需要说明的是,上述步骤s201-s203是定时进行的,从而,能够定时监测项目对象模型的版本号和部署拆分模型的服务器的版本号,以实现只要存在与项目对象模型的版本号不一致的目标服务器,便可以立即中止该目标服务器的工作,避免导致模型内部版本不一致,计算结果出现偏差的问题,保证模型版本一致性和模型处理结果的准确性。
66.继续参考图1,在步骤s120中,当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号。
67.管理服务器可以通过心跳机制定时获取项目对象模型的版本号,并检测网盘中是否存在项目对象模型对应的更新模型,当检测到网盘中存在更新模型时,可以获取该更新模型的更新版本号,从而,能够及时获知项目对象模型的更新情况,避免因检测不及时导致模型更新延迟的问题,保证模型更新的实时性。
68.在步骤s130中,将更新版本号发送至服务器集群,以使服务器集群加载更新版本号对应的多个目标模型。
69.在获取到更新版本号之后,管理服务器可以将更新版本号发送至部署项目对象模型对应的多个拆分模型的服务器集群,以使得服务器集群加载与更新版本号对应的多个目标模型。其中,多个目标模型为对更新模型进行拆分得到的、且与多个拆分模型存在预设映射关系。
70.示例性的,可以采用与上述项目对象模型相同的拆分方式,将更新模型拆分为多个目标模型(包括与主模型a对应的目标模型a’、与子模型b对应的目标模型b’、与子模型c对应的目标模型c’和与子模型d对应的目标模型d’)。
71.进而,服务器集群可以根据上述更新版本号,从网盘中获取对应的多个目标模型。举例而言,主服务器m1-m10中部署的是主模型a,则其对应的目标模型为a’,则主服务器m1-m10可以从网盘中获取上述目标模型a’,并基于双缓冲机制将上述目标模型a’加载至主服务器m1-m10的本地存储区中。
72.类似的,子服务器s1-s10中部署的是子模型b,则其对应的目标模型为目标模型b’,则子服务器s1-s10可以从网盘中获取上述目标模型b’,并基于双缓冲机制将上述目标模型b’缓存至子服务器s1-s10的本地存储区中。同理,可以将目标模型c’加载至子服务器s11-s20的本地存储区中,将目标模型d’缓存至子服务器s21-s30的本地存储区中。
73.从而,能够使得服务器集群中的多个服务器节点同步加载目标模型,解决因各个服务器节点的模型加载时间不统一导致模型内部版本不一致的技术问题。
74.在步骤s140中,当检测到预设数量服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号。
75.当管理服务器检测到预设数量的服务器中的目标模型加载完后时,可以向服务器集群发送版本切换指令,以使服务器集群根据上述目标模型更新部署于其中的拆分模型,进而,在接收到预设数量服务器反馈的切换成功消息时,可以将项目对象模型的版本号切换为上述更新版本号。
76.具体的,当检测到第一预设数量(例如:9个,主服务器m1-主服务器m9,可以根据实际情况自行设定)的主服务器中的目标模型,以及,第二预设数量(例如:27个,子服务器s1-子服务器s9、子服务器s11-子服务器s19、子服务器s21-子服务器s29,可以根据实际情况自行设定)的子服务器中的目标模型加载完成时,管理服务器可以向上述服务器集群发送版本切换指令,以使得服务器集群中的各个服务器根据上述目标模型更新部署于其中的拆分模型,例如:当主服务器m1-m9接收到上述版本切换指令之后,主服务器m1-m9可以将部署于其中的主模型a切换为目标模型a’,类似的,子服务器s1-s9可以将部署于其中的子模型b切换为目标模型b’,子服务器s11-s19可以将部署于其中的子模型c切换为目标模型c’,子服务器s21-s29可以将部署于其中的子模型d切换为目标模型d’。进而,在接收到预设数量服务器反馈的切换成功消息时,管理服务器可以将项目对象模型的版本号切换为上述更新版本号。从而,能够解决相关技术中当单个更新模型加载完成时,对单个模型的版本进行切换所导致的各子模型的版本不一致,模型处理结果误差较大的技术问题,保证模型处理结果的准确性。
77.需要说明的是,在主服务器集群中的主服务器m10、子服务器集群中的子服务器s10、子服务器s20和子服务器s30接收到上述版本切换指令时,因其目标模型未加载完成,因此,暂不进行模型切换,可以继续加载目标模型。
78.进而,在对预设数量的服务器中部署的拆分模型进行版本切换之后,可以参照上述步骤s201-s203的相关解释,管理服务器可以定时获取项目对象模型的当前版本号,并将当前版本号发送至服务器集群。当目标服务器中的模型版本号与当前版本号不一致时,对目标服务器进行下线处理,以使目标服务器加载当前版本号对应的变更模型,并将模型版
本号切换为当前版本号。
79.参照上述步骤s130-s140的相关解释,举例而言,管理服务器可以将项目对象模型的当前版本号(上述更新版本号)发送至服务器集群,进而,可以获知目标服务器(主服务器集群中的主服务器m10、子服务器集群中的子服务器s10、子服务器s20和子服务器s30)中的模型版本号与上述当前版本号不一致,则管理服务器可以对上述目标服务器进行下线处理,以中止其服务进程。进而,目标服务器可以从网盘中获取上述变更模型(主模型a对应的目标模型a’、子模型b对应的目标模型b’、子模型c对应的目标模型c’和子模型d对应的目标模型d’),并基于双缓冲机制将上述变更模型缓存至目标服务器中的本地存储区中。在加载完成之后,目标服务器可以向管理服务器发送通知消息,进而,在接收到管理服务器发送的版本切换指令之后,主服务器m10、子服务器s10、子服务器s20和子服务器s30可以将上述模型版本号切换为当前版本号(上述更新版本号)。进而,主服务器m10、子服务器s10、子服务器s20和子服务器s30可以重新向上述管理服务器发送其标识信息,以实现在上述管理服务器中的信息注册,重新对外提供服务。
80.基于上述技术方案,一方面,本公开不仅能够及时获知项目对象模型的更新情况,避免因检测不及时导致模型更新延迟的问题,保证模型更新的实时性。进一步的,能够解决因各个服务器节点的模型加载时间不一致导致模型内部版本不一致的技术问题,保证模型版本的一致性。另一方面,能够解决相关技术中对服务器集群中部署的模型版本进行异步切换导致模型内部版本不一致,处理结果不准确的技术问题,保证模型处理结果的准确性。
81.示例性的,可以参考图3,图3示出本公开一示例性实施例中模型更新方法的子流程示意图,具体示出当目标服务器中的模型版本号与项目对象模型的当前版本号不一致时,对目标服务器中的模型进行版本切换的子流程示意图,包含步骤s301-步骤s307,以下结合图3对具体的实施方式进行解释。
82.在步骤s301中,开始;
83.在步骤s302中,管理服务器定时获取项目对象模型的当前版本号;
84.在步骤s303中,判断各个服务器中的模型版本号是否与上述当前版本号一致;若一致,则直接跳转至步骤s307中,结束;
85.在步骤s304中,若不一致,则判断当前版本号对应的模型是否加载;
86.若未加载完成,则跳转至步骤s305中,注销标识信息停止服务,继续加载模型;并在加载完成之后跳转至步骤s306中;
87.若加载完成,则直接跳转至步骤s306中,进行版本切换;
88.在步骤s307中,结束。
89.示例性的,可以参考图4,图4示出本公开一示例性实施例中模型更新方法的子流程示意图,具体示出对项目对象模型进行整体版本切换的子流程示意图,包含步骤s401-步骤s407,以下结合图4对具体的实施方式进行解释。
90.在步骤s401中,开始;
91.在步骤s402中,当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号;
92.在步骤s403中,将更新版本号发送至部署项目对象模型对应的多个拆分模型的服务器集群,以使服务器集群加载更新版本号对应的多个目标模型;多个目标模型为对更新
模型进行拆分得到的;
93.在步骤s404中,判断服务器集群中是否存在预设数量的服务器中的目标模型加载完成;
94.若否,则在步骤s405中,等待服务器加载目标模型;待加载完成之后跳转至步骤s406;
95.若是,则在步骤s406中,通知各服务器进行版本切换,并将项目对象模型的版本号切换为更新版本号;
96.在步骤s407中,结束。
97.示例性的,可以参考图5,图5示出本公开一示例性实施例中模型更新方法的整体交互流程示意图,包括步骤s501-步骤s506,以下结合图5对具体的实施方式进行解释。
98.在步骤s501中,服务器集群(包括主服务器集群和子服务器集群)发送标识信息至管理服务器,进行注册;
99.在步骤s502中,管理服务器检测并获取项目更新模型的更新模型,并向服务器集群发送携带更新版本号的模型更新通知;
100.在步骤s503中,服务器集群加载更新版本号对应的目标模型;
101.在步骤s504中,管理服务器检测到服务器集群中预设数量的服务器中的目标模型加载完成时,向服务器集群发送版本切换指令;
102.在步骤s505中,服务器集群进行版本切换,并向管理服务器发送切换成功通知;
103.在步骤s506中,管理服务器切换项目对象模型的版本号,模型更新成功。
104.示例性的,可以参考图6,图6示出本公开一示例性实施例中模型更新方法的整体架构图,以下结合图6对具体的实施方式进行解释。
105.在步骤s601中,基于离线训练平台训练一项目对象模型,并对项目对象模型进行拆分,得到多个拆分模型(主模型 子模型);
106.在步骤s602中,将拆分模型及其部署配置信息上传至网盘中;
107.在步骤s603中,服务器集群从网盘中获取部署配置信息,根据部署配置信息对所述多个拆分模型进行部署;
108.在步骤s604中,管理服务器实时获取服务器集群中部署的拆分模型的模型版本号,并检测网盘中是否存在更新模型;
109.在步骤s605中,将更新版本号发送至服务器集群,以使得服务器集群加载更新版本号对应的目标模型。
110.本公开还提供了一种模型更新装置,图7示出本公开示例性实施例中模型更新装置的结构示意图;如图7所示,模型更新装置700可以包括拆分模块701、检测模块702、模型加载模块703和版本切换模块704。其中:
111.拆分模块701,用于获取项目对象模型对应的多个拆分模型,以使服务器集群对多个拆分模型进行部署;服务器集群包括多个服务器。
112.在本公开的示例性实施例中,拆分模块用于获取多个拆分模型的存储路径,以及,获取服务器集群中各个服务器的标识信息;根据存储路径与标识信息,生成各拆分模型对应的部署配置信息;以使服务器集群根据部署配置信息,对多个拆分模型进行部署。
113.在本公开的示例性实施例中,多个拆分模型包括主模型和多个子模型;服务器集
群包括主服务器集群和子服务器集群;主服务器集群包括多个主服务器,子服务器集群包括多个子服务器;拆分模块还用于以使主服务器集群中的各主服务器根据部署配置信息,对主模型进行部署;主模型为提供计算功能的拆分模型;以使子服务器集群中的各子服务器根据部署配置信息,对子模型进行部署;子模型为提供数据查询功能和/或计算功能的拆分模型。
114.检测模块702,用于当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号。
115.在本公开的示例性实施例中,检测模块用于当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号。
116.模型加载模块703,用于将更新版本号发送至服务器集群,以使服务器集群加载更新版本号对应的多个目标模型;多个目标模型为对更新模型进行拆分得到的、且与多个拆分模型存在预设映射关系。
117.在本公开的示例性实施例中,模型加载模块用于以使服务器集群基于双缓冲机制,将更新版本号对应的多个目标模型缓存至本地存储器。
118.版本切换模块704,用于当检测到预设数量服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号。
119.在本公开的示例性实施例中,版本切换模块用于当检测到第一预设数量的主服务器中的目标模型,以及,第二预设数量的子服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号。
120.在本公开的示例性实施例中,版本切换模块还用于当检测到预设数量服务器中的目标模型加载完成时,向服务器集群发送版本切换指令;在接收到预设数量服务器反馈的切换成功消息时,将项目对象模型的版本号切换为更新版本号。
121.在本公开的示例性实施例中,版本切换模块还用于定时获取项目对象模型的当前版本号,并将当前版本号发送至服务器集群;当目标服务器中的模型版本号与当前版本号不一致时,对目标服务器进行下线处理;以使目标服务器加载当前版本号对应的变更模型,并将模型版本号切换为当前版本号;变更模型为目标服务器中部署的拆分模型的更新版本。
122.上述模型更新装置中各模块的具体细节已经在对应的模型更新方法中进行了详细的描述,因此此处不再赘述。
123.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
124.此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
125.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开
实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
126.在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
127.参考图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
128.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
129.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
130.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
131.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
132.此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
133.所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统
称为“电路”、“模块”或“系统”。
134.下面参照图9来描述根据本公开的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
135.如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930以及显示单元940。
136.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图1中所示的:步骤s110,获取项目对象模型对应的多个拆分模型,以使服务器集群对多个拆分模型进行部署;步骤s120,当检测到项目对象模型存在更新模型时,获取更新模型对应的更新版本号;步骤s130,将更新版本号发送至服务器集群,以使服务器集群加载更新版本号对应的多个目标模型;步骤s140,当检测到预设数量服务器中的目标模型加载完成时,将项目对象模型的版本号切换为更新版本号。
137.存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(rom)9203。
138.存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
139.总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
140.电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
141.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
142.此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺
序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
143.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献