CN112527344B - 一种分布式ai模型和程序的协同更新方法及装置 - Google Patents
一种分布式ai模型和程序的协同更新方法及装置 Download PDFInfo
- Publication number
- CN112527344B CN112527344B CN202011251957.5A CN202011251957A CN112527344B CN 112527344 B CN112527344 B CN 112527344B CN 202011251957 A CN202011251957 A CN 202011251957A CN 112527344 B CN112527344 B CN 112527344B
- Authority
- CN
- China
- Prior art keywords
- program
- client
- model
- message
- information
- 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
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种分布式人工智能(AI)模型和程序的协同更新方法及装置。该方法包括,由客户端主动向云端服务器进行注册,并定期发送设备信息或执行环境信息;在每次需要进行AI模型和程序更新时,云端服务器首先向客户端发送下载和安装AI模型和程序的下载地址;客户端收到该下载地址后,下载并安装最新的AI模型和程序,成功后向云端服务器发送确认消息;云端服务器收到客户端的确认消息后,向客户端下发授权信息及配置信息;客户端收到授权信息及配置信息后,进行相应的配置,成功后向云端服务器发送确认消息;云端服务器收到客户端确认消息后,再下发操作执行命令;客户端收到该操作执行命令后,执行相应的操作以完成整个更新流程。
Description
技术领域
本发明涉及数据通信领域,尤其涉及一种分布式人工智能(ArtificialIntelligence,AI)模型和程序的协同更新方法及装置。
背景技术
随着人工智能相关技术的快速发展,人工智能应用与服务不断落地,逐渐深入到人们的实际生产和生活中。在人工智能应用与服务的落地过程中,常采用分布式部署方式部署各种AI模型和程序:AI模型和程序运行在云端;有些AI模型和程序运行在边缘端;有些AI模型和程序运行在终端设备端。
由于日常缺陷修复和功能升级,这些AI模型或程序也需要不断更新或升级。目前,AI模型或程序的更新或升级,通常是在收到更新或升级通知后,由边缘端服务器或终端设备端执行更新或升级任务,将需要更新的模型或程序从云端下载到本地进行运行或升级的。而云端服务器,也只负责发送更新消息,而并不知道边缘段服务器或终端设备端是否升级了,也不知道升级是否成功了。
现有的AI模型或程序的更新或升级过程中,云端服务器与边缘端服务器或终端设备端之间都是单向交互,而非双向交互。升级过程也是在边缘端服务器或终端设备端上独立进行的。
对于只需要升级应用程序并直接替换本地程序即可的普通应用来说,上述方式就可以满足日常更新或升级的基本需求了,但对于AI模型或程序的更新来说,则存在众多问题。例如,1)AI模型或程序的更新需要获取客户端设备及运行环境信息,进行具有针对性更新或升级;2)更新时不仅需要更新运行程序,还需要修改模型描述文件、参数配置文件等数据内容,并进行模型有效性和精度的验证等等,才能顺利完成整个更新或升级过程。可见,在AI模型或程序的更新过程中是需要服务器端和客户端之间进行双向交互,并协同进行的。因此,使用现有的更新或升级方式,则需要将上述过程划分为多个子任务,还需要额外的协调操作是这些子任务有序执行,否则将难以顺利完成整个更新流程,并可能引发很多问题。
由此可见,如何在服务器端和客户端之间进行双向交互,实现自动协同工作,高效完成AI模型或程序更新的一整套流程还是一个尚待解决的技术问题。
发明内容
针对以上问题,本发明实施例提供了一种分布式AI模型和程序的更新方法及装置。
根据本发明实施例的第一方面,提供一种分布式AI模型和程序的更新方法,应用于服务器端,该方法包括:向客户端发送第一消息,以通知客户端从指定地址下载并安装第一模型和第一程序;在接收到客户端返回的用于确认已安装第一模型和第一程序的第二消息之后,向客户端发送第三消息,以下发授权信息及配置信息;在接收到客户端返回的用于确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作的第四消息之后,向客户端下发第五消息,以执行指定操作。
根据本发明实施例的一实施方式,在向客户端发送第一消息之前,该方法还包括:接收客户端发送的第六消息,以获取客户端的设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,在向客户端发送消息之后和在接收到客户端所发送的消息之后,该方法还包括:存储消息中的关键信息。
根据本发明实施例的一实施方式,该方法还包括:在接收到客户端返回的用于反馈操作失败的第八消息之后,重新发送与失败的操作所对应的消息。
根据本发明实施例的一实施方式,发送消息和接收消息的相应操作均使用消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)实现。
根据本发明实施例的第二方面,提供一种分布式AI模型和程序的更新方法,应用于客户端,该方法包括:在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之后,从指定地址下载并安装第一模型和第一程序;在成功安装第一模型和第一程序之后,向服务器发送第二消息,以确认已安装第一模型和第一程序;在接收到服务器端发送的用于下发授权信息及配置信息的第三消息之后,根据授权信息及配置信息执行与配置信息对应的配置操作;在成功完成配置操作之后,向服务器发送第四消息以确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作;在接收到服务器端发送的用于执行指定操作的第五消息之后,执行指定操作。
根据本发明实施例的一实施方式,在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之前,该方法还包括:获取本地设备信息和/或执行环境信息;向服务器发送第六消息,以使服务器获取本地设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,该方法还包括:在操作失败之后,向服务器发送第八消息,以反馈操作失败。
根据本发明实施例的第三方面,提供一种分布式AI模型和程序的更新装置,应用于服务器端,该装置包括:更新通知发送模块,用于向客户端发送第一消息,以通知客户端从指定地址下载并安装第一模型和第一程序;配置信息发送模块,用于在接收到客户端返回的用于确认已安装第一模型和第一程序的第二消息之后,向客户端发送第三消息,以下发授权信息及配置信息;指定操作发送模块,用于在接收到客户端返回的用于确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作的第四消息之后,向客户端下发第五消息,以执行指定操作。
根据本发明实施例的一实施方式,该装置还包括客户端信息接收模块,用于接收客户端发送的第六消息,以获取客户端的设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,该装置还包括消息存储模块,用于存储消息中的关键信息。
根据本发明实施例的一实施方式,该装置还包括消息重发模块,用于在接收到客户端返回的用于反馈操作失败的第八消息之后,重新发送与失败的操作所对应的消息。
根据本发明实施例的一实施方式,上述各发送模块和各接收模块具体用于使用消息队列遥测传输协议发送和接收消息。
根据本发明实施例的第四方面,提供一种分布式AI模型和程序的更新装置,应用于客户端,该装置包括:下载和安装模块,用于在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之后,从指定地址下载并安装第一模型和第一程序;安装成功确认模块,用于在成功安装第一模型和第一程序之后,向服务器发送第二消息,以确认已安装第一模型和第一程序;配置操作执行模块,用于在接收到服务器端发送的用于下发授权信息及配置信息的第三消息之后,根据授权信息及配置信息执行与配置信息对应的配置操作;配置成功确认模块,用于在成功完成配置操作之后,向服务器发送第四消息以确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作;指定操作执行模块,用于在接收到服务器端发送的用于执行指定操作的第五消息之后,执行指定操作。
根据本发明实施例的一实施方式,该装置还包括:本地信息获取模块,用于获取本地设备信息和/或执行环境信息;本地信息发送模块,用于向服务器发送第六消息,以使服务器获取本地设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,该装置还包括:失败反馈模块,用于在操作失败之后,向服务器发送第八消息,以反馈操作失败。
本发明实施例提供一种分布式AI模型和程序的更新方法及装置。该方法包括,由客户端主动向云端服务器进行注册,并定期发送设备信息或执行环境信息;在每次需要进行AI模型和程序更新时,云端服务器首先向客户端发送下载和安装AI模型和程序的下载地址;客户端收到该下载地址后,下载并安装最新的人工模型和程序,并向云端服务器发送消息以确认已成功安装最新的AI模型和程序;云端服务器收到客户端确认安装成功的消息后,向客户端下发授权信息及配置信息;客户端收到授权信息及配置信息后进行相应的配置,成功之后,向云端服务器发送消息以确认已成功完成了相应的配置序;云端服务器收到客户端确认配置成功的消息后,再向客户端下发操作执行命令;客户端收到该操作执行命令后,执行相应的操作,这样就完成了一次完整的AI模型和程序的更新。
可以看出,上述AI模型和程序的更新过程是通过服务器与客户端的多次交互和相互协同完成的,并可以确保AI模型和程序在执行指定操作之前,已经成功完成了下载、安装和配置,从而大幅提高了AI模型和程序更新的成功率和自动化程度。
需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1为本发明实施例分布式AI模型和程序的协同更新方法在服务器端的实现流程示意图;
图2为本发明实施例分布式AI模型和程序的协同更新方法在客户端的实现流程示意图;
图3为本发明实施例分布式AI模型和程序的协同更新方法一具体应用的系统架构示意图;
图4为本发明实施例分布式AI模型和程序的协同更新方法一具体应用的具体实现流程示意图
图5为本发明实施例分布式AI模型和程序的协同更新装置在服务器端的组成结构示意图;
图6为本发明实施例分布式AI模型和程序的协同更新装置在客户端的组成结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明实施例中,AI模型主要指人工智能应用场景下所使用的机器学习模型,例如,线性回归模型、逻辑回归模型、决策树模型、贝叶斯模型、支持向量机和神经网络模型等。这些AI模型通常接收一定格式的输入数据,使用某一算法对输入数据进行运算,然后输出运算结果。该运算结构就是在某一应用场景下对应于输入数据所属的分类、预测分析结果等。
这些AI模型的算法通常由各种参数和公式来描述和定义的,而AI模型的更新主要指算法的改进,其中就包括各种参数的调优。在进行AI模型更新的时候,往往不仅需要进行文件的替换,还需要对模型进行有效性验证和精度验证等。
AI程序主要指建立在AI模型之上实现AI功能的应用程序,例如,智能音箱的对话应用程序、生产质量和产量的预测应用程序等等。AI程序的更新主要指程序执行代码、配置文件或数据文件的更新。
分布式AI模型和程序主要指AI模型和程序部署在分布式的网络中,例如,管理和下发AI模型和运行的服务器部署在云端,而有些AI模型和程序运行在云端;有些AI模型和程序运行在边缘端;有些AI模型和程序运行在终端设备端。
此处的服务器主要指管理和下发AI模型和程序的服务器,而客户端则指运行有AI模型和程序的设备端,可能是云端设备、边缘端设备或是终端设备等。
在本发明实施例中提到的消息可以采用任何适用的形式和格式,以任何适用的网络协议来发送和接收,关键要能完成类似握手功能的一来以往的交互,即服务器发送消息后能收到客户端的确认和反馈结果。
图1示出了一种分布式AI模型和程序的更新方法的实现流程,应用于服务器端,该方法包括:操作110,向客户端发送第一消息,以通知客户端从指定地址下载并安装第一模型和第一程序;操作120,在接收到客户端返回的用于确认已安装第一模型和第一程序的第二消息之后,向客户端发送第三消息,以下发授权信息及配置信息;操作130,在接收到客户端返回的用于确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作的第四消息之后,向客户端下发第五消息,以执行指定操作。
在操作110中,第一模型和第一程序指要更新的AI模型和程序。服务器向客户端发送第一消息时,可以通过广播方式,也可以通过从注册列表中读取每一客户端,并逐一发送的方式。第一消息主要携带有AI模型和程序的下载地址,还可以包含AI模型和程序的版本号。
在操作120中,第二消息指可以确认客户端已成功安装第一模型和第一程序的消息,如果在下载或安装中出现了任何错误而导致安装失败,则通常需要进行其他处理,而不会继续向客户端发送第三消息。
通常,第二消息会是一个携带有执行状态的消息,还可以携带有操作名称等附件信息,当执行状态为一个代表成功的数值时,就代表相应操作执行成功。
第三消息中会携带有授权信息和配置信息,其中,授权信息主要指使客户端程序获得可以访问AI模型和程序的权限但又不会使AI模型和程序进行非法扩散的权限规则和定义等相关信息,例如只能在某些结点(node)上访问和运行AI模型和程序;配置信息通常是一组键值对,用于设置更新的AI模型和程序时所需的各种属性。
在操作130中,第四消息指可以确认客户端已成功获得与授权信息对应的授权并完成与配置信息对应的配置操作的消息,如果在授权或配置中出现了任何错误而导致操作失败,则通常需要进行其他处理,而不会继续向客户端发送第五消息。
与第二消息类似,第四消息也是一个携带有执行状态的消息,还可以携带有操作名称等附件信息,当执行状态为一个代表成功的数值时,就代表相应操作执行成功。
第五消息中,主要携带有客户端更新或升级AI模型或程序所要执行的一些命令或操作。例如,针对更新后的模型,建立一个沙箱(sandbox)环境,然后进行有效性和可用性验证,其中,有效性验证是指能够启动程序并得出结果,可用性验证是跑现场的测试数据对比原来模型/程序的效果。
根据本发明实施例的一实施方式,在向客户端发送第一消息之前,该方法还包括:接收客户端发送的第六消息,以获取客户端的设备信息和/或执行环境信息。
在本实施方式中,客户端在进行AI模型和应用程序的更新之前都会向服务器发送消息进行注册,并在该消息内携带本地设备、特别是连接设备的状态信息。而服务器也通过该消息,获知有哪些客户端在运行AI模型和应用程序,在更新或升级AI模型和应用程序时,应该向哪些客户端发送消息,以及如何与这些客户端建立网络连接所需的设备信息等。此外,有些AI模型和程序只能在特定的设备和网络上运行,获取客户端的设备信息和执行环境,可以确定某个AI模型和程序可以在哪些客户端上更新或升级;相应地,不同设备和网络对应的具体AI模型和程序或AI模型的具体参数可能会不同,获取客户端的设备信息和执行环境,可确定为客户端下发哪一个AI模型和程序、或下发的具体参数值。
根据本发明实施例的一实施方式,在向客户端发送消息之后和在接收到客户端所发送的消息之后,该方法还包括:存储消息中的关键信息。
在本实施方式中,服务器不仅会主导和推动整个更新或升级AI模型和程序的流程,还会将用于与客户端进行交互的各种消息,包括服务端向客户端发送的消息和服务器端接收到的消息,存储到数据存储系统中,以方便搜索对系统有用的信息和确定AI模型的信息来源。例如,通过查找与某一客户端通信的历史消息来确定该客户端更新或升级AI模型和程序的具体状态;通过消息中携带的AI模型标识来确定AI模型的信息来源等等。
根据本发明实施例的一实施方式,该方法还包括:在接收到客户端返回的用于反馈操作失败的第八消息之后,重新发送与失败的操作所对应的消息。
如上所述,客户端在下载和安装AI模型和程序的过程中,在进行授权和配置的过程中,都可能出现错误或发生异常导致操作失败。在本实施方式中,对于其中的某些操作失败,可以采取相应的补救措施,例如在间隔某段时长后重新发送消息,以在客户端修复某些系统错误或设备故障后,重新执行相关操作,以推进更新或升级过程。
与第二消息和第四消息类似,第八消息会是一个携带有执行状态的消息,还可以携带有操作名称和/或出错原因等附件信息。与之不同的是,第八消息的状态通常为代表失败的数值。
根据本发明实施例的一实施方式,发送消息和接收消息的相应操作均使用消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)实现。
MQTT传输协议是基于发布/订阅范式的消息协议,该协议工作在TCP/IP协议族上,原本用于在硬件性能较低的远程设备上,或是在网络通信传输速率较慢的情况下,发布/订阅型的消息协议。该协议可以用于网络设备之间的数据分发和消息传递。
MQTT传输协议是一个轻量级的网络协议,有三种消息发布质量,可以使用LastWill和Testament特性通知有关各方客户端异常中断的机制,特别适合提供一对多的消息发布。
在本实施方式中,采用MQTT传输协议来实现各种消息的发送、接收和传输,可大大节省网络传输带宽,且更方便实现本发明实施例中服务器端和客户端之间一对多的消息发布和数据下发等操作。
相应地,本发明实施例还提供一种分布式AI模型和程序的更新方法,应用于客户端,如图2所示,该方法包括:操作210,在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之后,从指定地址下载并安装第一模型和第一程序;操作220,在成功安装第一模型和第一程序之后,向服务器发送第二消息,以确认已安装第一模型和第一程序;操作230,在接收到服务器端发送的用于下发授权信息及配置信息的第三消息之后,根据授权信息及配置信息执行与配置信息对应的配置操作;操作240,在成功完成配置操作之后,向服务器发送第四消息以确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作;操作250,在接收到服务器端发送的用于执行指定操作的第五消息之后,执行指定操作。
根据本发明实施例的一实施方式,在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之前,该方法还包括:获取本地设备信息和/或执行环境信息;向服务器发送第六消息,以使服务器获取本地设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,该方法还包括:在操作失败之后,向服务器发送第八消息,以反馈操作失败。
其中,有关各个消息的具体描述请参照前文中对服务器端分布式AI模型和程序的更新方法中相应消息的有关描述。
下面根据本发明实施例分布式AI模型和程序的更新方法一具体应用进行示例性说明。
该具体应用采用MQTT协议进行消息的传递和数据下发,采用如图3所示的系统架构。该系统主要由云端服务器(包括控制器301、存储服务302和消息服务303)和位于边缘端和终端设备上的客户端代理服务304组成。其中,控制器301主要充当MQTT协议中发布者(publisher)的角色,用于实现业务命令的翻译和处理工作;消息服务303主要充当MQTT协议中协商者(broker)的角色,用于连接边缘/终端设备的客户端代理304,解析处理消息并交由计算服务处理或者直接保存到存储服务中;存储服务302主要用于存储各消息中的关键信息或控制器的状态信息;而客户端代理304位于边缘端或终端设备上,通常是一个低功耗、轻量级且可跨平台的代理服务(Agent),用于边缘设备及运行AI程序的状态监控
该具体应用在更新或升级某一AI模型和程序时,采用如图4所示的流程,主要包括:
步骤4010,客户端代理服务启动定时上报设备及运行环境信息;
步骤4020,云端服务器接收边缘设备信息并进行注册;
步骤4030,云端服务器通知客户端代理服务从指定地址下载并安装AI模型和程序;
步骤4040,客户端代理服务接收消息并告知云端服务器开始处理;
步骤4050,客户端代理服务告诉云端AI模型和程序已成功安装;
步骤4060,云端服务器向客户端代理服务下发授权及配置;
步骤4070,客户端代理服务进行配置并告知结果;
步骤4080,云端服务器向客户端代理服务发送执行命令;
步骤4090,客户端代理服务解析并执行命令,告诉云端服务器执行结果。
其中,步骤4010至4020实现了信息上报的过程;步骤4030至4050实现了AI模型和程序下发的过程;步骤4060至4070实现了设置配置的过程;步骤4080至4090实现了命令执行的过程。
在上述过程中,该具体应用定义了如下格式的消息,以形成针对AI模型/程序云边协同场景下的一套标准规范:
1)边缘/终端设备运行信息上报方法中的消息定义
消息传递方向:由边缘/终端设备向云端服务器发送
消息URI定义:../{projectKey}/{nodeId}/info
URI参数定义如表1所示:
表1
消息体定义如表2所示:
表2
2)云端AI模型/程序下发与升级方法中的消息定义
消息传递方向:由云端服务器向边缘/终端设备发送
消息URI定义:../{projectKey}/{nodeId}/+/update/result
URI参数定义如表3所示:
表3
消息体定义如表4所示:
表4
3)边缘/终端设备配置设置中的消息定义
消息传递方向:由云端服务器向边缘/终端设备发送
消息URI定义:../{projectKey}/{nodeId}/configuration/set
URI参数定义如表5所示:
表5
消息体定义如表6所示:
表6
消息体示例:
消息传递方向:由边缘/终端设备向云端服务器发送
消息URI定义:
../{projectKey}/{nodeId}/configuration/set/result
URI参数定义如表7所示:
表7
消息体定义如表8所示:
表8
消息体示例:
4)边缘/终端设备AI模型/程序命令执行方法中的消息定义
消息传递方向:由云端服务器向边缘/终端设备发送
消息URI定义:../{projectKey}/{nodeId}/command/execute
URI参数定义如表9所示:
表9
消息体定义如表10所示:
表10
消息传递方向:由边缘/终端设备向云端服务器发送
消息URI定义:../{projectKey}/{nodeId}/command/execute/result
URI参数定义如表11所示:
表11
消息体定义如表12所示:
表12
需要说明的是上述具体应用仅为本发明实施例实施方式的一示例性说明,并非对实施方式和应用场景的限定,实施者可根据实施条件采用任何适用的实施方式和实现方法,应用于任何适用的应用场景中。
根据本发明实施例的第三方面,提供一种分布式AI模型和程序的更新装置,应用于服务器端,如图5所示,该装置50包括:更新通知发送模块501,用于向客户端发送第一消息,以通知客户端从指定地址下载并安装第一模型和第一程序;配置信息发送模块502,用于在接收到客户端返回的用于确认已安装第一模型和第一程序的第二消息之后,向客户端发送第三消息,以下发授权信息及配置信息;指定操作发送模块503,用于在接收到客户端返回的用于确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作的第四消息之后,向客户端下发第五消息,以执行指定操作。
根据本发明实施例的一实施方式,该装置50还包括客户端信息接收模块,用于接收客户端发送的第六消息,以获取客户端的设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,该装置50还包括消息存储模块,用于存储消息中的关键信息。
根据本发明实施例的一实施方式,该装置50还包括消息重发模块,用于在接收到客户端返回的用于反馈操作失败的第八消息之后,重新发送与失败的操作所对应的消息。
根据本发明实施例的一实施方式,上述各发送模块和各接收模块具体用于使用消息队列遥测传输协议发送和接收消息。
根据本发明实施例的第四方面,提供一种分布式AI模型和程序的更新方法,应用于客户端,如图6所示,该装置60包括:下载和安装模块601,用于在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之后,从指定地址下载并安装第一模型和第一程序;安装成功确认模块602,用于在成功安装第一模型和第一程序之后,向服务器发送第二消息,以确认已安装第一模型和第一程序;配置操作执行模块603,用于在接收到服务器端发送的用于下发授权信息及配置信息的第三消息之后,根据授权信息及配置信息执行与配置信息对应的配置操作;配置成功确认模块604,用于在成功完成配置操作之后,向服务器发送第四消息以确认已获得与授权信息对应的授权并完成与配置信息对应的配置操作;指定操作执行模块605,用于在接收到服务器端发送的用于执行指定操作的第五消息之后,执行指定操作。
根据本发明实施例的一实施方式,该装置60还包括:本地信息获取模块,用于获取本地设备信息和/或执行环境信息;本地信息发送模块,用于向服务器发送第六消息,以使服务器获取本地设备信息和/或执行环境信息。
根据本发明实施例的一实施方式,该装置60还包括:失败反馈模块,用于在操作失败之后,向服务器发送第八消息,以反馈操作失败。
这里需要指出的是:以上针对分布式人工模型和程序的协同更新的装置实施例的描述,与前述方法实施例的描述是类似的,具有同前述方法实施例相似的有益效果,因此不做赘述。对于本发明对分布式人工模型和程序的协同更新的装置实施例的描述尚未披露的技术细节,请参照本发明前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储介质、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储介质、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种分布式人工智能模型和程序的更新方法,应用于服务器端,所述方法包括:
向客户端发送第一消息,以通知客户端从指定地址下载并安装第一模型和第一程序;
在接收到所述客户端返回的用于确认已安装所述第一模型和第一程序的第二消息之后,向所述客户端发送第三消息,以下发授权信息及配置信息,所述第一模型和第一程序为待更新的AI模型和程序,所述授权信息包括使客户端程序获得访问所述待更新的AI模型和程序的权限的权限规则和定义,所述配置信息包括一组键值对,用于设置所述待更新的AI模型和程序时所需的属性;
在接收到所述客户端返回的用于确认已获得与所述授权信息对应的授权并完成与所述配置信息对应的配置操作的第四消息之后,向所述客户端下发第五消息,以执行指定操作,所述第五消息携带有客户端更新或升级AI模型或程序待执行的命令或操作。
2.根据权利要求1所述的方法,在所述向客户端发送第一消息之前,所述方法还包括:
接收所述客户端发送的第六消息,以获取所述客户端的设备信息和/或执行环境信息。
3.根据权利要求1所述的方法,在所述向客户端发送消息之后和在接收到所述客户端所发送的消息之后,所述方法还包括:
存储所述消息中的关键信息。
4.根据权利要求3所述的方法,所述方法还包括:
在接收到所述客户端返回的用于反馈操作失败的第八消息之后,重新发送与所述失败的操作所对应的消息。
5.根据权利要求1至4任一项所述的方法,发送消息和接收消息的相应操作均使用消息队列遥测传输协议MQTT实现。
6.一种分布式人工智能模型和程序的更新方法,应用于客户端,所述方法包括:
在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之后,从所述指定地址下载并安装所述第一模型和所述第一程序,所述第一模型和第一程序为待更新的AI模型和程序;
在成功安装所述第一模型和所述第一程序之后,向所述服务器发送第二消息,以确认已安装所述第一模型和第一程序;
在接收到服务器端发送的用于下发授权信息及配置信息的第三消息之后,根据所述授权信息及配置信息执行与所述配置信息对应的配置操作,所述授权信息包括使客户端程序获得访问所述待更新的AI模型和程序的权限的权限规则和定义,所述配置信息包括一组键值对,用于设置所述待更新的AI模型和程序时所需的属性;
在成功完成所述配置操作之后,向所述服务器发送第四消息以确认已获得与所述授权信息对应的授权并完成与所述配置信息对应的配置操作;
在接收到所述服务器端发送的用于执行指定操作的第五消息之后,执行所述指定操作,所述第五消息携带有客户端更新或升级AI模型或程序待执行的命令或操作。
7.根据权利要求6所述的方法,在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之前,所述方法还包括:
获取本地设备信息和/或执行环境信息;
向所述服务器发送第六消息,以使服务器获取所述本地设备信息和/ 或执行环境信息。
8.根据权利要求6所述的方法,所述方法还包括:
在操作失败之后,向所述服务器发送第八消息,以反馈操作失败。
9.一种分布式人工智能模型和程序的更新装置,应用于服务器端,所述装置包括:
更新通知发送模块,用于向客户端发送第一消息,以通知客户端从指定地址下载并安装第一模型和第一程序;
配置信息发送模块,用于在接收到所述客户端返回的用于确认已安装所述第一模型和第一程序的第二消息之后,向所述客户端发送第三消息,以下发授权信息及配置信息,所述第一模型和第一程序为待更新的AI模型和程序,所述授权信息包括使客户端程序获得访问所述待更新的AI模型和程序的权限的权限规则和定义,所述配置信息包括一组键值对,用于设置所述待更新的AI模型和程序时所需的属性;
指定操作发送模块,用于在接收到所述客户端返回的用于确认已获得与所述授权信息对应的授权并完成与所述配置信息对应的配置操作的第四消息之后,向所述客户端下发第五消息,以执行指定操作,所述第五消息携带有客户端更新或升级AI模型或程序待执行的命令或操作。
10.一种分布式人工智能模型和程序的更新装置,应用于客户端,所述装置包括:
下载和安装模块,用于在接收到服务器端发送的用于通知客户端从指定地址下载并安装第一模型和第一程序的第一消息之后,从所述指定地址下载并安装所述第一模型和所述第一程序,所述第一模型和第一程序为待更新的AI模型和程序;
安装成功确认模块,用于在成功安装所述第一模型和所述第一程序之后,向所述服务器发送第二消息,以确认已安装所述第一模型和第一程序;
配置操作执行模块,用于在接收到服务器端发送的用于下发授权信息及配置信息的第三消息之后,根据所述授权信息及配置信息执行与所述配置信息对应的配置操作,所述授权信息包括使客户端程序获得访问所述待更新的AI模型和程序的权限的权限规则和定义,所述配置信息包括一组键值对,用于设置所述待更新的AI模型和程序时所需的属性;
配置成功确认模块,用于在成功完成所述配置操作之后,向所述服务器发送第四消息以确认已获得与所述授权信息对应的授权并完成与所述配置信息对应的配置操作;
指定操作执行模块,用于在接收到所述服务器端发送的用于执行指定操作的第五消息之后,执行所述指定操作,所述第五消息携带有客户端更新或升级AI模型或程序待执行的命令或操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251957.5A CN112527344B (zh) | 2020-11-11 | 2020-11-11 | 一种分布式ai模型和程序的协同更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251957.5A CN112527344B (zh) | 2020-11-11 | 2020-11-11 | 一种分布式ai模型和程序的协同更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527344A CN112527344A (zh) | 2021-03-19 |
CN112527344B true CN112527344B (zh) | 2022-09-23 |
Family
ID=74980121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011251957.5A Active CN112527344B (zh) | 2020-11-11 | 2020-11-11 | 一种分布式ai模型和程序的协同更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527344B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024065772A1 (en) * | 2022-09-30 | 2024-04-04 | Shenzhen Tcl New Technology Co., Ltd. | Wireless communication method and user equipment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109543365A (zh) * | 2018-11-26 | 2019-03-29 | 新华三技术有限公司 | 一种授权方法及装置 |
CN110175677A (zh) * | 2019-04-16 | 2019-08-27 | 平安普惠企业管理有限公司 | 自动更新方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218573B1 (en) * | 2012-05-22 | 2015-12-22 | Google Inc. | Training a model using parameter server shards |
CN110738304A (zh) * | 2018-07-18 | 2020-01-31 | 科沃斯机器人股份有限公司 | 机器模型更新方法、设备及存储介质 |
CN108924910B (zh) * | 2018-07-25 | 2021-03-09 | Oppo广东移动通信有限公司 | Ai模型的更新方法及相关产品 |
CN110659473A (zh) * | 2019-09-24 | 2020-01-07 | 深圳创维-Rgb电子有限公司 | Ai摄像头授权方法、用户终端及计算机可读存储介质 |
CN111866063B (zh) * | 2020-06-03 | 2023-03-31 | 上海工程技术大学 | 一种工业物联网ai算法的在线更新系统、方法及装置 |
-
2020
- 2020-11-11 CN CN202011251957.5A patent/CN112527344B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109543365A (zh) * | 2018-11-26 | 2019-03-29 | 新华三技术有限公司 | 一种授权方法及装置 |
CN110175677A (zh) * | 2019-04-16 | 2019-08-27 | 平安普惠企业管理有限公司 | 自动更新方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112527344A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102782650B (zh) | 用于管理分布式环境中系统管理代理的配置的方法与系统 | |
EP3011446B1 (en) | Synchronized update of multiple devices in a local network | |
JP6050812B2 (ja) | デバイス管理方法、装置、およびシステム | |
EP1265417A2 (en) | Device management system and method | |
CN108399083A (zh) | 一种系统部署方法、装置、电子设备和存储介质 | |
CN109905256A (zh) | 一种固件更新方法和装置 | |
CN103019757A (zh) | 一种在多台客户端间同步软件的方法、装置及系统 | |
CN110912728B (zh) | 一种操作系统补丁批量自动化更新管理方法及系统 | |
US11106187B2 (en) | Flexible assembly system for variable reconfiguration, and method of reconfiguring production line | |
CN112733062B (zh) | 一种物联应用管理系统及方法 | |
CN112104501A (zh) | 一种农机深松物联网终端设备的软件远程升级的方法 | |
CN110716734B (zh) | 一种软件升级的方法、装置、电子设备及介质 | |
CN112527344B (zh) | 一种分布式ai模型和程序的协同更新方法及装置 | |
CN111857772B (zh) | 终端边缘应用程序远程传输及动态加载方法及设备 | |
WO2017124736A1 (zh) | 一种升级异常信息的传输方法、设备和系统 | |
CN112527346A (zh) | 软件升级方法、装置、存储介质及电子装置 | |
US20180060058A1 (en) | Method and Apparatus For Updating Industrial Assets | |
CN108616391A (zh) | 服务器端进行设备固件升级的方法及系统 | |
CN115529301A (zh) | 基于云边协同的固件升级方法及服务端、边缘网关端 | |
CN114978902B (zh) | 信息处理方法、装置、设备、存储介质及程序产品 | |
CN111541565A (zh) | 一种基于通信拓扑结构的应用服务可视化快速部署方法 | |
CN116319729A (zh) | 机器人控制方法、装置、服务器、系统及存储介质 | |
CN103533071A (zh) | 终端软件的更新方法、装置及系统 | |
CN111984297B (zh) | 基于4g网络的中心服务器分布式自动升级方法及系统 | |
CN113986289A (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 |