CN112965735B - 模型更新方法、装置、设备及计算机可读介质 - Google Patents
模型更新方法、装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN112965735B CN112965735B CN202110214652.5A CN202110214652A CN112965735B CN 112965735 B CN112965735 B CN 112965735B CN 202110214652 A CN202110214652 A CN 202110214652A CN 112965735 B CN112965735 B CN 112965735B
- Authority
- CN
- China
- Prior art keywords
- model
- service
- client
- sub
- target
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种模型更新方法、装置、设备及计算机可读介质。该方法包括:获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务;在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上;将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。本申请解决了算法模型更新效率低的技术问题。
Description
技术领域
本申请涉及热更新技术领域,尤其涉及一种模型更新方法、装置、设备及计算机可读介质。
背景技术
随着深度学习算法的蓬勃发展,如今深度学习已经深入到了各行各业中。在庞大的应用领域内,为了满足不同的业务需求,适应频繁快速的迭代周期,需要对算法模型的更新效率提出更为严格的要求。
目前,相关技术中,采用人工部署算法更新的方式,但面对大量的算法更新部署需求,有限的开发人员难以快速完成算法更新,并且更新大量重复性工作和时间消耗也使得人工难以支撑。
针对算法模型的更新效率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种模型更新方法、装置、设备及计算机可读介质,以解决算法模型的更新效率低的技术问题。
根据本申请实施例的一个方面,本申请提供了一种模型更新方法,应用于服务端,包括:
获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务;
在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上;
将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。
可选地,获取更新请求之后,该方法还包括按照如下方式利用更新请求确定第一模型与第二模型是否匹配:
确定更新请求被送达的目标容器,目标容器用于保存提供目标服务的算法模型,更新请求为客户端通过目标互联网协议地址和目标端口发送至目标容器的;
提取更新请求中携带的第一模型的模型标识,并在目标容器中的多个第二模型中查找第二模型是否具有模型标识;
在查找到第二模型具有模型标识的的情况下,确定第一模型与第二模型匹配,并向客户端发送匹配成功标识。
可选地,通过第一进程加载第一模型之前,该方法还包括按照如下方式接收第一模型:
接收客户端响应匹配成功标识发送的第一模型;
在接收到结束标识的情况下,向客户端发送传输完成标识,以在客户端中生成传输完成提示信息;
在未接收到结束标识且在预设时间阈范围内未接收到第一模型的传输数据的情况下,向客户端发送传输失败标识,并监听socket连接,以在客户端响应传输失败标识重新发送第一模型时接收第一模型。
可选地,通过第一进程加载第一模型之前,该方法还包括按照如下方式对第一模型进行校验:
确定第一模型的校验码;
在校验码与更新请求中携带的验证码一致的情况下,向客户端发送校验通过标识,以在客户端中生成校验通过提示信息;
在校验码与验证码不一致的情况下,向客户端发送校验失败标识,并监听socket连接,以在客户端响应校验失败标识重新发送第一模型时接收第一模型。
可选地,将目标队列中的第二进程替换为第一进程包括:
在第一进程成功加载第一模型且第二进程中未提供第一子服务的情况下,回收第二进程,并将第二进程在目标队列中的调用关系确定为第一进程在目标队列中的调用关系。
可选地,将目标队列中的第二进程替换为第一进程之后,该方法还包括:
利用第一进程提供第一子服务,以利用第一模型进行任务处理;
在任务处理成功的情况下,向客户端发送更新完成标识,以在客户端生成更新完成提示信息。
可选地,在任务处理未成功的情况下,该方法还包括:
向客户端发送更新失败标识,以在客户端生成更新失败提示信息,并将通过目标队列进行通信的第一进程替换为第二进程,以重新使用第二模型进行任务处理。
根据本申请实施例的另一方面,本申请提供了一种模型更新装置,应用于服务端,包括:
更新请求获取模块,用于获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务;
模型加载模块,用于在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上;
进程替换模块,用于将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案为获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务;在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上;将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。本申请通过不同的进程加载不同的算法模型,可以隔绝算法模型之间的相互干扰,并且可以通过队列复用的方式快速更新,不仅提升了算法更新效率,还减少了大量人工重复性工作,解决了算法模型更新效率低的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的模型更新方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的模型更新方法流程图;
图3为根据本申请实施例提供的一种可选的模型更新前示意图;
图4为根据本申请实施例提供的一种可选的模型更新示意图;
图5为根据本申请实施例提供的一种可选的AI算法模型更新示意图;
图6为根据本申请实施例提供的一种应用于服务端的可选的模型更新装置框图;
图7为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
相关技术中,对于线上运行的算法模型进行更新通常采用人工部署算法更新的方式,但面对大量的算法更新部署需求,有限的开发人员难以快速完成算法更新,并且更新大量重复性工作和时间消耗也使得人工难以支撑。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种模型更新方法的实施例。
可选地,在本申请实施例中,上述模型更新方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务,可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101包括但不限于PC、手机、平板电脑等。
本申请实施例中的一种模型更新方法可以由服务器103来执行,即应用于服务端,如图2所示,该方法可以包括以下步骤:
步骤S202,获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务。
本申请实施例中,更新请求为客户端发送至服务端的,客户端中保存有替换旧算法模型的新算法模型,旧算法模型在服务端的生产环境中线上运行,多个算法模型整体提供目标服务,单个算法模型提供目标服务的子服务。算法模型可以是SDK(SoftwareDevelopment Kit,软件开发工具包)的形式。更新请求用于请求对第一子服务进行更新,即表示请求对提供上述第一子服务的算法模型进行更新。
步骤S204,在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上。
本申请实施例中,一个算法模型运行在一个进程中,从而隔绝各个算法模型之间的相互干扰。服务端中的多个算法模型通过各自的进程在目标队列中进行通信,即在该目标队列中确定了各个算法模型(进程)之间的调用关系和被调用关系。如图3所示,图中一个方框表示一个进程,方框之间的箭头表示调用关系和被调用关系,服务端中的整个调用链即表示上述目标队列。通过第一进程加载第一模型可以对第一模型初始化,从而可以判断第一模型能够正确运行。
步骤S206,将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。
本申请实施例中,可以采用队列复用的方式(即替换进程前后使用同一个队列进行通信)快速进行算法模型的更新,并且队列复用之前通过第一进程加载第一模型可以对第一模型初始化,从而可以判断第一模型能够正确运行。
以图3和图4为例进行说明,所示Element1、Element2及Element3为服务端中待更新的第二模型,所示new Element2为用于更新第二模型Element2的第一模型,第一模型newElement2和第二模型Element2匹配,具有相同的模型标识,提供的均是第一子服务,则图3所示为更新前的队列状态。第二模型Element2在第二进程中运行,同Element1、Element3等在生产环境中共同提供目标服务。为了不影响目标服务的执行,通过第一进程加载第一模型new Element2,若加载成功,且第二模型Element2处于空闲状态时,将目标队列中的第二进程替换为第一进程,从而让第一进程复用第二进程在目标队列中的调用关系和被调用关系,如图4所示,以完成第一模型对第二模型的在线更新。
本申请实施例提供的一种模型更新方法可以应用于图5所示的AI服务中,该AI服务main中包括ctpn模型、east模型和ocr模型,其中,main作为整体的台词生产服务,ctpn模型和east模型提供场景文本检测服务,ocr模型提供文本识别服务。ctpn模型、east模型和ocr模型各自运行在一个进程中。当需要更新ctpn模型时,可以新建第一进程来运行新的ctpn算法模型,如果该进程正确加载新的ctpn模型,则当原ctpn模型完成本次处理后,使用第一进程复用原ctpn模型搭载的第二进程的队列,完成更新。
采用本申请技术方案,通过不同的进程加载不同的算法模型,可以隔绝算法模型之间的相互干扰,并且可以通过队列复用的方式快速更新,不仅提升了算法更新效率,还减少了大量人工重复性工作,解决了算法模型更新效率低的问题。
可选地,获取更新请求之后,该方法还包括按照如下方式利用更新请求确定第一模型与第二模型是否匹配:
步骤11,确定更新请求被送达的目标容器,目标容器用于保存提供目标服务的算法模型,更新请求为客户端通过目标互联网协议地址和目标端口发送至目标容器的;
步骤12,提取更新请求中携带的第一模型的模型标识,并在目标容器中的多个第二模型中查找第二模型是否具有模型标识;
步骤13,在查找到第二模型具有模型标识的的情况下,确定第一模型与第二模型匹配,并向客户端发送匹配成功标识。
本申请实施例中,在未查找到第二模型具有模型标识的的情况下,确定第一模型与第二模型不匹配,并向客户端发送匹配错误标识和目标容器中所有待更新的模型的名称,以在客户端生成匹配错误提示信息。
本申请实施例中,服务端中的算法模型通过容器技术封装在容器中,从而有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求。容器之间互不干扰,对外通过虚拟地址和虚拟端口进行通信。客户端发送更新请求时,通过预先设置的IP地址(Internet Protocol Address)和端口号与服务端的目标容器建立socket连接,连接建立后发送更新请求。更新请求中携带有第一模型的模型标识,若目标容器中存在具有相同模型标识的第二模型时,确认第一模型与第二模型匹配,并向客户端发送匹配成功标识如A00001,以告知客户端匹配成功。若目标容器中不存在具有相同模型标识的第二模型时,则确认第一模型与第二模型不匹配,并向客户端发送匹配错误标识如E00001和该目标容器中所有待更新的模型的名称,以在客户端中生成匹配错误提示信息,交给工作人员进一步排除错误。
可选地,通过第一进程加载第一模型之前,该方法还包括按照如下方式接收第一模型:
步骤21,接收客户端响应匹配成功标识发送的第一模型;
步骤22,在接收到结束标识的情况下,向客户端发送传输完成标识,以在客户端中生成传输完成提示信息。
本申请实施例中,在未接收到结束标识且在预设时间阈范围内未接收到第一模型的传输数据的情况下,向客户端发送传输失败标识,并监听socket连接,以在客户端响应传输失败标识重新发送第一模型时接收第一模型。
本申请实施例中,在服务端发出匹配成功标识之后,客户端响应匹配成功标识而发送第一模型。若传输完成,则在最后会接收到结束标识如EOF。服务端接收到结束标识后,向客户端发送传输完成标识如A00002,以告知客户端接收完毕。若服务端未接收到结束标识且在预设时间阈范围内未接收到第一模型的传输数据的情况下,向客户端发送传输失败标识E00002,并监听socket连接,以在客户端响应传输失败标识重新发送第一模型时接收第一模型。传输失败标识用于告知客户端数据包传输错误,需要重新发送。
可选地,通过第一进程加载第一模型之前,该方法还包括按照如下方式对第一模型进行校验:
步骤31,确定第一模型的校验码;
步骤32,在校验码与更新请求中携带的验证码一致的情况下,向客户端发送校验通过标识,以在客户端中生成校验通过提示信息。
本申请实施例中,在校验码与验证码不一致的情况下,向客户端发送校验失败标识,并监听socket连接,以在客户端响应校验失败标识重新发送第一模型时接收第一模型。
本申请实施例中,接收完成第一模型后,可以对第一模型进行完整性校验,如可以采用MD5算法计算接收到的第一模型的校验码,将该校验码与更新请求中携带的该第一模型传输前原始的验证码核对,二者一致,则通过完整性校验,服务端向客户端发送校验通过标识A00003,以告知客户端数据传输完整。若二者不一致,则未通过完整性校验,服务端向客户端发送校验失败标识E00003,并监听socket连接,以在客户端响应校验失败标识重新发送第一模型时接收第一模型,校验失败标识用于告知客户端数据包不完整,需要重新发送或重新检查数据包完整性。
可选地,将目标队列中的第二进程替换为第一进程包括:
在第一进程成功加载第一模型且第二进程中未提供第一子服务的情况下,回收第二进程,并将第二进程在目标队列中的调用关系确定为第一进程在目标队列中的调用关系。
本申请实施例中,在第一进程未成功加载第一模型的情况下,向客户端发送加载错误标识,以在客户端生成加载错误提示信息。
本申请实施例中,第一进程加载第一模型可以对第一模型进行初始化,若初始化成功,则表明该第一模型可以正常运行,否则不能正常运行,服务端向客户端发送加载错误标识E00004,以告知客户端第一模型不能正常运行,需要由开发人员进一步排查错误。
可选地,将目标队列中的第二进程替换为第一进程之后,该方法还包括:
步骤41,利用第一进程提供第一子服务,以利用第一模型进行任务处理;
步骤42,在任务处理成功的情况下,向客户端发送更新完成标识,以在客户端生成更新完成提示信息。
可选地,在任务处理未成功的情况下,向客户端发送更新失败标识,以在客户端生成更新失败提示信息,并将通过目标队列进行通信的第一进程替换为第二进程,以重新使用第二模型进行任务处理。
本申请实施例中,完成队列复用之后,需要使用第一模型进行生产环境下的实际任务处理。尽管在初始化时可以排除掉大部分错误,但仍有部分错误需要在实际生产环境中才能找出来,因此队列复用之后,利用第一进程提供第一子服务,以利用第一模型进行任务处理。若任务处理成功,则表明第一模型没有问题,可以投入生产环境,从而服务端向客户端发送更新完成标识A00004,已告知客户端更新完成。若任务处理失败,则第一模型存在错误,服务端向客户端发送更新失败标识E00005,以告知客户端更新失败,需要由开发人员进一步排除错误。此时为了不影响目标服务的执行,服务端需要重新将第一进程替换回第二进程,以重新使用第二模型进行任务处理。
本申请实施例中,第一进程可以是第二进程的子进程。
根据本申请实施例的另一方面,本申请还提供了一种模型更新方法,可以由终端101来执行,即应用于客户端。
客户端向服务端发送更新请求,更新请求用于请求对服务端中的第一子服务进行更新,第一子服务属于目标服务;
客户端响应服务端发送的匹配成功标识,向服务端发送第一模型,匹配成功标识为服务端在确定更新请求指示的第一模型与第二模型匹配的情况下发出的,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上。
本申请实施例中,客户端可以通过目标互联网协议地址将更新请求发送至服务端中目标容器的目标端口。更新请求中携带有本次更新的算法模型所具有的模型标识,服务端在解析该更新请求之后,若在服务端中找到与该模型标识相同的算法模型,即确定所要更新的对象,则会发出匹配成功标识A00001,客户端响应该匹配成功标志,向服务端发送第一模型。更新请求中还可以包括第一模型的名称、文件大小、待更新的第二模型的名称、在服务端中的存放路径等。
本申请实施例中,还可以对进行异常处理。
可选地,在接收到匹配错误标识和目标容器中所有待更新的模型的名称的情况下,生成匹配错误提示信息。
若服务端发送的是匹配错误标识E00001,则在客户端中生成匹配错误提示信息,以提示开发人员排除错误,将目标容器中所有待更新的模型的名称一并提供可以方便开发人员进行查找。
可选地,在接收到传输完成标识的情况下,生成传输完成提示信息。
客户端接收到传输完成标识A00002的情况下,生成传输完成提示信息。
可选地,在接收到传输失败标识的情况下,重新向服务端的目标容器发送第一模型,直至接收到传输完成标识或重新发送的次数达到预设阈值。
客户端接收到传输失败标识E00002的情况下,说明第一模型传输未完成,则重新发送第一模型,若连续接收到传输失败标识,且重新发送的次数达到预设阈值时,停止发送,并生成传输错误提示信息,以提示开发人员排除错误。
可选地,在接收到校验通过标识的情况下,生成校验通过提示信息。
客户端接收到校验通过标识A00003的情况下,生成校验通过提示信息。
可选地,在接收到校验失败标识的情况下,重新向服务端的目标容器发送第一模型,直至接收到传输完成标识或重新发送的次数达到预设阈值。
客户端接收到校验失败标识E00003的情况下,说明服务端接收到的第一模型未通过完整性校验,则重新发送第一模型,若连续接收到校验失败标识,且重新发送的次数达到预设阈值时,停止发送,并生成完整性错误提示信息,以提示开发人员排除错误。
可选地,在接收到加载错误标识的情况下,生成加载错误提示信息。
客户端接收到加载错误标识E00004的情况下,生成加载错误提示信息,以提示开发人员在服务端中该第一模型初始化不成功。
可选地,在接收到更新完成标识的情况下,生成更新完成提示信息。
客户端接收到更新完成标识A00004的情况下,生成更新完成提示信息。
可选地,在接收到更新失败标识的情况下,生成更新失败提示信息。
客户端接收到更新失败标识E00005的情况下,生成更新失败提示信息,以提示开发人员在服务端中该第一模型不能用于处理任务,更新失败。
根据本申请实施例的又一方面,如图6所示,提供了一种模型更新装置,应用于服务端,包括:
更新请求获取模块601,用于获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务;
模型加载模块603,用于在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上;
进程替换模块605,用于将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。
需要说明的是,该实施例中的更新请求获取模块601可以用于执行本申请实施例中的步骤S202,该实施例中的模型加载模块603可以用于执行本申请实施例中的步骤S204,该实施例中的进程替换模块605可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该模型更新装置,还包括模型匹配模块,用于:
确定更新请求被送达的目标容器,目标容器用于保存提供目标服务的算法模型,更新请求为客户端通过目标互联网协议地址和目标端口发送至目标容器的;
提取更新请求中携带的第一模型的模型标识,并在目标容器中的多个第二模型中查找第二模型是否具有模型标识;
在查找到第二模型具有模型标识的的情况下,确定第一模型与第二模型匹配,并向客户端发送匹配成功标识。
可选地,该模型更新装置,还包括模型接收模块,用于:
接收客户端响应匹配成功标识发送的第一模型;
在接收到结束标识的情况下,向客户端发送传输完成标识,以在客户端中生成传输完成提示信息;
在未接收到结束标识且在预设时间阈范围内未接收到第一模型的传输数据的情况下,向客户端发送传输失败标识,并监听socket连接,以在客户端响应传输失败标识重新发送第一模型时接收第一模型。
可选地,该模型更新装置,还包括模型校验模块,用于:
确定第一模型的校验码;
在校验码与更新请求中携带的验证码一致的情况下,向客户端发送校验通过标识,以在客户端中生成校验通过提示信息;
在校验码与验证码不一致的情况下,向客户端发送校验失败标识,并监听socket连接,以在客户端响应校验失败标识重新发送第一模型时接收第一模型。
可选地,该进程替换模块,具体用于:
在第一进程成功加载第一模型且第二进程中未提供第一子服务的情况下,回收第二进程,并将第二进程在目标队列中的调用关系确定为第一进程在目标队列中的调用关系。
可选地,该模型更新装置,还包括任务处理模块,用于:
利用第一进程提供第一子服务,以利用第一模型进行任务处理;
在任务处理成功的情况下,向客户端发送更新完成标识,以在客户端生成更新完成提示信息。
可选地,该任务处理模块,还用于:
在任务处理未成功的情况下,向客户端发送更新失败标识,以在客户端生成更新失败提示信息,并将通过目标队列进行通信的第一进程替换为第二进程,以重新使用第二模型进行任务处理。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图7所示,包括存储器701、处理器703、通信接口705及通信总线707,存储器701中存储有可在处理器703上运行的计算机程序,存储器701、处理器703通过通信接口705和通信总线707进行通信,处理器703执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
获取更新请求,更新请求用于请求对第一子服务进行更新,第一子服务属于目标服务;
在利用更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载第一模型,第一模型为提供更新后的第一子服务的服务模型,第二模型为当前提供第一子服务的服务模型,目标服务的每个子服务的服务模型分别加载在不同的进程上;
将通过目标队列进行通信的第二进程替换为第一进程,目标队列用于多个进程之间进行通信,多个进程包括加载目标服务的各个子服务的服务模型的进程,第二进程用于加载第二模型。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种模型更新方法,应用于服务端,其特征在于,包括:
获取更新请求,其中,所述更新请求用于请求对第一子服务进行更新,所述第一子服务属于目标服务;
在利用所述更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载所述第一模型,其中,所述第一模型为提供更新后的所述第一子服务的服务模型,所述第二模型为当前提供所述第一子服务的服务模型,所述目标服务的每个子服务的服务模型分别加载在不同的进程上;
将通过目标队列进行通信的第二进程替换为所述第一进程,其中,所述目标队列用于多个进程之间进行通信,所述多个进程包括加载所述目标服务的各个子服务的服务模型的进程,所述第二进程用于加载所述第二模型。
2.根据权利要求1所述的方法,其特征在于,获取更新请求之后,所述方法还包括按照如下方式利用所述更新请求确定所述第一模型与所述第二模型是否匹配:
确定所述更新请求被送达的目标容器,其中,所述目标容器用于保存提供所述目标服务的算法模型,所述更新请求为客户端通过目标互联网协议地址和目标端口发送至所述目标容器的;
提取所述更新请求中携带的所述第一模型的模型标识,并在所述目标容器中的多个第二模型中查找所述第二模型是否具有所述模型标识;
在查找到所述第二模型具有所述模型标识的的情况下,确定所述第一模型与所述第二模型匹配,并向所述客户端发送匹配成功标识。
3.根据权利要求2所述的方法,其特征在于,通过第一进程加载所述第一模型之前,所述方法还包括按照如下方式接收所述第一模型:
接收所述客户端响应所述匹配成功标识发送的所述第一模型;
在接收到结束标识的情况下,向所述客户端发送传输完成标识,以在所述客户端中生成传输完成提示信息;
在未接收到所述结束标识且在预设时间阈范围内未接收到所述第一模型的传输数据的情况下,向所述客户端发送传输失败标识,并监听socket连接,以在所述客户端响应所述传输失败标识重新发送所述第一模型时接收所述第一模型。
4.根据权利要求2所述的方法,其特征在于,通过第一进程加载所述第一模型之前,所述方法还包括按照如下方式对所述第一模型进行校验:
确定所述第一模型的校验码;
在所述校验码与所述更新请求中携带的验证码一致的情况下,向所述客户端发送校验通过标识,以在所述客户端中生成校验通过提示信息;
在所述校验码与所述验证码不一致的情况下,向所述客户端发送校验失败标识,并监听socket连接,以在所述客户端响应所述校验失败标识重新发送所述第一模型时接收所述第一模型。
5.根据权利要求2所述的方法,其特征在于,将目标队列中的第二进程替换为所述第一进程包括:
在所述第一进程成功加载所述第一模型且所述第二进程中未提供所述第一子服务的情况下,回收所述第二进程,并将所述第二进程在所述目标队列中的调用关系确定为所述第一进程在所述目标队列中的调用关系。
6.根据权利要求5所述的方法,其特征在于,将目标队列中的第二进程替换为所述第一进程之后,所述方法还包括:
利用所述第一进程提供所述第一子服务,以利用所述第一模型进行任务处理;
在任务处理成功的情况下,向所述客户端发送更新完成标识,以在所述客户端生成更新完成提示信息。
7.根据权利要求6所述的方法,其特征在于,在任务处理未成功的情况下,所述方法还包括:
向所述客户端发送更新失败标识,以在所述客户端生成更新失败提示信息,并将通过所述目标队列进行通信的所述第一进程替换为所述第二进程,以重新使用所述第二模型进行任务处理。
8.一种模型更新装置,应用于服务端,其特征在于,包括:
更新请求获取模块,用于获取更新请求,其中,所述更新请求用于请求对第一子服务进行更新,所述第一子服务属于目标服务;
模型加载模块,用于在利用所述更新请求确定第一模型与第二模型匹配的情况下,通过第一进程加载所述第一模型,其中,所述第一模型为提供更新后的所述第一子服务的服务模型,所述第二模型为当前提供所述第一子服务的服务模型,所述目标服务的每个子服务的服务模型分别加载在不同的进程上;
进程替换模块,用于将通过目标队列进行通信的第二进程替换为所述第一进程,其中,所述目标队列用于多个进程之间进行通信,所述多个进程包括加载所述目标服务的各个子服务的服务模型的进程,所述第二进程用于加载所述第二模型。
9.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110214652.5A CN112965735B (zh) | 2021-02-25 | 2021-02-25 | 模型更新方法、装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110214652.5A CN112965735B (zh) | 2021-02-25 | 2021-02-25 | 模型更新方法、装置、设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965735A CN112965735A (zh) | 2021-06-15 |
CN112965735B true CN112965735B (zh) | 2023-07-14 |
Family
ID=76275682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110214652.5A Active CN112965735B (zh) | 2021-02-25 | 2021-02-25 | 模型更新方法、装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965735B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319052B (zh) * | 2023-04-10 | 2024-04-09 | 国网湖南省电力有限公司 | 一种量测数据的完整性校验方法及系统、电子设备、介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013185570A1 (zh) * | 2012-06-13 | 2013-12-19 | 腾讯科技(深圳)有限公司 | 软件更新方法、软件更新系统及计算机存储介质 |
CN109299124A (zh) * | 2018-09-30 | 2019-02-01 | 北京字节跳动网络技术有限公司 | 用于更新模型的方法和装置 |
WO2019029457A1 (zh) * | 2017-08-07 | 2019-02-14 | 阿里巴巴集团控股有限公司 | 客户端上应用程序的更新方法、装置及电子设备 |
CN110023901A (zh) * | 2017-09-21 | 2019-07-16 | 甲骨文国际公司 | 用于更新基于云的多层应用栈的系统和方法 |
CN111277432A (zh) * | 2020-01-10 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 配置信息更新方法、装置、电子设备及存储介质 |
CN111970304A (zh) * | 2020-08-28 | 2020-11-20 | 光大科技有限公司 | 消息处理方法和装置 |
CN112073398A (zh) * | 2020-08-27 | 2020-12-11 | 北京金山云网络技术有限公司 | 消息队列的处理方法、装置和系统、存储介质和电子装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9705752B2 (en) * | 2015-01-29 | 2017-07-11 | Blackrock Financial Management, Inc. | Reliably updating a messaging system |
JP6904064B2 (ja) * | 2017-05-29 | 2021-07-14 | 富士通株式会社 | タスク配備プログラム、タスク配備方法、およびタスク配備装置 |
-
2021
- 2021-02-25 CN CN202110214652.5A patent/CN112965735B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013185570A1 (zh) * | 2012-06-13 | 2013-12-19 | 腾讯科技(深圳)有限公司 | 软件更新方法、软件更新系统及计算机存储介质 |
WO2019029457A1 (zh) * | 2017-08-07 | 2019-02-14 | 阿里巴巴集团控股有限公司 | 客户端上应用程序的更新方法、装置及电子设备 |
CN110023901A (zh) * | 2017-09-21 | 2019-07-16 | 甲骨文国际公司 | 用于更新基于云的多层应用栈的系统和方法 |
CN109299124A (zh) * | 2018-09-30 | 2019-02-01 | 北京字节跳动网络技术有限公司 | 用于更新模型的方法和装置 |
CN111277432A (zh) * | 2020-01-10 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 配置信息更新方法、装置、电子设备及存储介质 |
CN112073398A (zh) * | 2020-08-27 | 2020-12-11 | 北京金山云网络技术有限公司 | 消息队列的处理方法、装置和系统、存储介质和电子装置 |
CN111970304A (zh) * | 2020-08-28 | 2020-11-20 | 光大科技有限公司 | 消息处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
一种基于异构系统的动态负载平衡算法;刘晓尼;祝永志;傅莹;;计算机与信息技术(10);全文 * |
嵌入式操作系统负载均衡时间片轮转算法仿真;米热古丽・克比尔;顾英杰;;计算机仿真(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112965735A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1825656A2 (en) | System and method for monitoring mobile units in a wireless network | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN112965735B (zh) | 模型更新方法、装置、设备及计算机可读介质 | |
CN110225078A (zh) | 一种应用服务更新方法、系统及终端设备 | |
CN111008206A (zh) | 跨链交易的状态数据的存储方法、装置及存储介质 | |
CN108306787B (zh) | 一种应用监测方法及相关设备 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN109408104B (zh) | 一种获取游戏整合信息的方法及装置 | |
CN115495195A (zh) | 一种数据处理方法、装置及相关设备 | |
CN112764818B (zh) | 设备管理方法、装置、电子设备及可读存储介质 | |
CN105512544B (zh) | 一种获取移动终端超级用户权限的方法及装置 | |
CN111209197B (zh) | 应用程序持续集成测试方法、系统、设备和存储介质 | |
CN110580172B (zh) | 配置规则的验证方法及装置、存储介质、电子装置 | |
CN114091030A (zh) | 自动化验证系统漏洞方法、装置、电子装置和存储介质 | |
CN112596750A (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN113010377A (zh) | 一种作业的运行日志的采集方法及装置 | |
CN116107603B (zh) | 一种固件升级方法、装置、存储介质和电子设备 | |
CN115102856B (zh) | 一种物联网设备升级方法及系统 | |
CN112015436A (zh) | 短信平台部署方法及装置、计算设备、计算机存储介质 | |
CN114090112B (zh) | 配置文件的加载方法和装置、存储介质及电子装置 | |
CN110928713A (zh) | 一种数据库服务的故障修复方法、相关装置及存储介质 | |
CN114598588B (zh) | 服务器故障确定方法、装置及终端设备 | |
CN116720818B (zh) | 基于区块链的仓储处理方法、装置、计算机设备 | |
CN111399903B (zh) | 一种服务器连接方法、装置及其相关设备 | |
CN117714535A (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 |