CN115001692A - 模型更新方法及装置、计算机可读存储介质和电子设备 - Google Patents
模型更新方法及装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN115001692A CN115001692A CN202210581679.2A CN202210581679A CN115001692A CN 115001692 A CN115001692 A CN 115001692A CN 202210581679 A CN202210581679 A CN 202210581679A CN 115001692 A CN115001692 A CN 115001692A
- Authority
- CN
- China
- Prior art keywords
- mobile terminal
- terminal set
- model
- mobile
- mobile terminals
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- 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]
-
- 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/141—Setup of application sessions
-
- 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/169—Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供了一种模型更新方法、模型更新装置、计算机可读存储介质和电子设备,涉及人工智能技术领域。本公开应用于服务端的模型更新方法包括:向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;向第二移动端集合中每个移动端发送公钥下载指令,记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合;向第三移动端集合中每个移动端发送模型参数上传指令,在接收到第三移动端集合中每个移动端上传的模型参数的情况下,对模型参数进行聚合,以得到目标模型参数;将目标模型参数发送给第三移动端集合中每个移动端。本公开有助于保证联邦学习的模型训练过程正常执行。
Description
技术领域
本公开涉及人工智能技术领域,具体而言,涉及一种模型更新方法、模型更新装置、计算机可读存储介质和电子设备。
背景技术
随着人工智能技术的发展,其在各行各业的巨大价值也逐渐体现。人工智能技术的发展离不开海量数据的支持。近年来数据的隐私保护与数据合规性也越来越受重视,出于保护数据的目的,数据通常无法互通,从而出现数据孤岛现象。数据孤岛现象阻碍了数据潜能的发挥。为了解决这一问题,联邦学习应运而生。联邦学习可以使多个参与设备的数据在不出本地的前提下实现共同建模,保证数据隐私性的同时激发了各参与设备的数据潜能。
针对联邦学习,在模型训练开始前,往往会规定参与设备的数量,训练时依据这个数量判断是否可以进入下一阶段,然而,由于设备和网络状态的不稳定,可能出现参数设备数量变化的情况,如果仍以规定的数量进行训练判断,则可能影响到模型训练过程的正常进行。
发明内容
本公开提供一种模型更新方法、模型更新装置、计算机可读存储介质和电子设备,进而至少在一定程度上克服联邦学习过程中模型训练效果不佳的问题。
根据本公开的第一方面,提供了一种模型更新方法,应用于服务端,该模型更新方法包括:向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;其中,第一移动端集合中每个移动端是已上传设备信息的移动端;向第二移动端集合中每个移动端发送公钥下载指令,记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合;向第三移动端集合中每个移动端发送模型参数上传指令,在接收到第三移动端集合中每个移动端上传的模型参数的情况下,对模型参数进行聚合,以得到目标模型参数;将目标模型参数发送给第三移动端集合中每个移动端,以便第三移动端集合中每个移动端分别利用目标模型参数更新本地模型。
根据本公开的第二方面,提供了一种模型更新方法,应用于移动端,该模型更新方法包括:响应公钥上传指令,向服务端发送公钥;响应公钥下载指令,从服务端下载除移动端外其他移动端的公钥;响应模型参数上传指令,将模型参数上传至服务端,以便服务端将模型参数以及从其他移动端获取到的模型参数进行聚合以计算出目标模型参数;接收所述目标模型参数,利用所述目标模型参数更新本地模型。
根据本公开的第三方面,提供了一种模型更新装置,应用于服务端,该模型更新装置包括:第一记录模块,用于向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;其中,第一移动端集合中每个移动端是已上传设备信息的移动端;第二记录模块,用于向第二移动端集合中每个移动端发送公钥下载指令,记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合;参数计算模块,用于向第三移动端集合中每个移动端发送模型参数上传指令,在接收到第三移动端集合中每个移动端上传的模型参数的情况下,对模型参数进行聚合,以得到目标模型参数;参数发送模块,用于将目标模型参数发送给第三移动端集合中每个移动端,以便第三移动端集合中每个移动端分别利用目标模型参数更新本地模型。
根据本公开的第四方面,提供了一种模型更新装置,应用于移动端,该模型更新装置包括:公钥发送模块,用于响应公钥上传指令,向服务端发送公钥;公钥下载模块,用于响应公钥下载指令,从服务端下载除移动端外其他移动端的公钥;参数上传模块,用于响应模型参数上传指令,将计算后得到的模型参数上传至服务端,以便服务端将模型参数以及从其他移动端获取到的模型参数进行聚合以计算出目标模型参数;参数应用模块,用于接收目标模型参数,利用所述目标模型参数更新本地模型。
根据本公开的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的模型更新方法。
根据本公开的第六方面,提供了一种电子设备,包括处理器;存储器,用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器实现上述的模型更新方法。
在本公开的一些实施例所提供的技术方案中,服务端向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合,服务端向第二移动端集合中每个移动端发送公钥下载指令,记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合,服务端向第三移动端集合中每个移动端发送模型参数上传指令,在接收到第三移动端集合中每个移动端上传的模型参数的情况下,对模型参数进行聚合,以得到目标模型参数,并将目标模型参数发送给第三移动端集合中每个移动端,以便移动端利用目标模型参数更新本地模型,进而可以利用更新后的本地模型执行联邦学习预测任务。由此,基于本公开方案,可以动态确定参与模型训练的移动端,使得联邦学习模型训练任务能够较好匹配到移动端,有助于模型训练过程的顺利进行,提高了联邦学习中模型训练过程的系统处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本公开示例性实现模型更新过程的系统示意图;
图2示出了本公开实施例的模型更新系统的架构图;
图3示意性示出了根据本公开示例性实施方式的应用于服务端的模型更新方法的流程图;
图4示意性示出了本公开实施例的确定第一移动端集合的过程的示意图;
图5示意性示出了本公开实施例的确定第二移动端集合的过程的示意图;
图6示意性示出了本公开实施例的确定第三移动端集合的过程的示意图;
图7示意性示出了根据本公开示例性实施方式的应用于移动端的模型更新方法的流程图;
图8示意性示出了本公开实施例的模型训练方案的处理过程的交互流程图;
图9示意性示出了根据本公开示例性实施方式的应用于服务端的模型更新装置的方框图;
图10示意性示出了根据本公开示例性实施方式的应用于服务端的另一模型更新装置的方框图;
图11示意性示出了根据本公开示例性实施方式的应用于服务端的又一模型更新装置的方框图;
图12示意性示出了根据本公开示例性实施方式的应用于移动端的模型更新装置的方框图;
图13示意性示出了根据本公开的示例性实施方式的电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,下面所有的术语“第一”、“第二”、“第三”、“第四”等仅是为了区分的目的,不应作为本公开内容的限制。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
联邦学习又称为联合学习,能够在保护用户隐私和数据安全的前提下实现数据的“可用而不可见”,也即通过多方协作完成机器学习模型的训练任务,此外,还能够提供机器学习模型的推理服务。
在人工智能时代,机器学习尤其深度学习模型的获得需要大量的训练数据作为前提。但是在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队、部门、甚至是不同的公司内。由于确保用户隐私和数据安全,不同数据源之间不能够直接交换数据,形成了所谓的“数据孤岛”,阻碍了数据合作和获取模型所需要的大数据。近两年,联邦学习技术(Federated Learning)迅速发展,联邦学习在保护用户隐私和数据安全的同时,充分利用多方数据源的数据来训练机器学习模型,通过使用多方、互补的数据源来提升机器学习模型的性能,例如,提升图像识别模型、事件预测模型、广告推荐模型等模型的准确率。
与传统的集中式机器学习不同,联邦学习过程中,由两个或两个以上的参与方一起协作训练一个或多个机器学习模型。从分类上来说,基于数据的分布特征,联邦学习可以划分为横向联邦学习(Horizontal Federated Learning)、纵向联邦学习(VerticalFederated Learning)和联邦迁移学习(Federated Transfer Learning)。其中,横向联邦学习又称为基于样本的联邦学习,适用于样本集共享相同特征空间但样本空间不同的情况;纵向联邦学习又称为基于特征的联邦学习,适用于样本集共享相同样本空间但特征空间不同的情况;联邦迁移学习则适用于样本集不仅在样本空间上不同而且在特征空间上也不同的情况。
FATE(Federated AI Technology Enabler)是微众银行AI部门发起的全球首个联邦学习工业级开源框架,可以让企业和机构在保护数据安全和数据隐私的前提下进行数据协作。FATE项目使用多方安全计算(MPC)以及同态加密(HE)技术构建底层安全计算协议,以此支持不同种类的机器学习的安全计算,包括逻辑回归、基于树的算法、深度学习和迁移学习等。
FATE是当前联邦学习主流的解决方案,但FATE主要面对的是企业间联邦学习的场景,并不涉及移动端与云端的交互。同时,FATE框架是在fate-serving端进行梯度模型的加载以及预测,并没有将训练好的模型下发至端侧。
在涉及移动端与服务端通信方面,现有方案多采用移动端轮询访问服务端接口的方式,这造成了移动端性能和服务端网络带宽的消耗。
一些技术方案会在训练开始前规定参与设备的数量,训练中的每个节点都依据这个数量判断是否可以进入下一阶段,但是现实情况中,参与训练的设备并不能人为确定,而且对于训练中间环节想要加入的设备,也要做出处理。
另外,目前,鲜有方案涉及集群与分布式环境的问题,当服务端采用集群与分布式架构时,分布式服务的一致性、服务间通信以及负载均衡等问题都需要解决。
鉴于此,本公开实施方式提供了一种新的应用于联邦学习的模型更新方案,以提升计算机硬件系统执行模型处理过程的准确度和效率。
本公开对训练出的模型的应用场景不做限制,例如该模型可以应用于音视频或图像的分析场景、该模型可以应用于事件的预测场景、该模型可以应用于产品的推荐场景,等等。
此外,本公开实施方式中的移动端又可称为终端、移动终端、移动设备等,包括但不限于智能手机、平板电脑、个人计算机等。服务端又可称为云端、云端系统、服务器、云服务器、服务器系统等。本公开对移动端和服务端包括的硬件类型不做限制。
图1示出了本公开示例性实现模型更新系统的示意图。本公开实施例的模型更新系统可以包括由多个移动端组成的移动端集合1001以及服务端1002。
在本公开的示例性实施方式中,服务端1002可以通过Websocket协议建立与移动端集合1001中各移动端的通信连接。使用websocket协议,移动端与服务端只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,大大减少了轮询带来的设备性能以及网络带宽上的消耗。
在执行本公开实施例的模型更新过程中,首先,移动端集合1001中的各移动端可以通过Websocket接口接入服务端1002,并发送Ready信息给服务端1002。另外,移动端可以将各自的设备信息通过接口上传给服务端1002。服务端1002可以根据设备信息从移动端集合1001中选择出设备状态满足要求的移动端,选择出的移动端可以形成一个移动端集合,记为第一移动端集合u1。
接下来,服务端1002可以向第一移动端集合u1中每个移动端发送公钥上传指令,移动端在接收到公钥上传指令之后,可以将各自公钥上传至服务端1002。由于记录时间、网络等原因,服务端1002接收到公钥的数量可能小于第一移动端集合u1中移动端的数量。服务端1002可以记录已上传公钥的移动端,这些移动端可以形成一个移动端集合,记为第二移动端集合u2。
然后,服务端1002可以向第二移动端集合u2中每个移动端发送公钥下载指令,移动端在接收到公钥下载指令之后,可以从服务端1002下载第二移动端集合u2中除自身外所有移动端的公钥。由于服务端1002的记录时间、网络等原因,服务端1002确定出下载公钥的移动端的数量可能小于第二移动端集合u2中移动端的数量。服务端1002可以记录已下载公钥的移动端,这些移动端可以形成一个移动端集合,记为第三移动端集合u3。
随后,服务端1002可以向第三移动端集合u3中每个移动端发送模型参数上传指令,接收到模型参数上传指令的移动端,在计算完本地模型后,将模型参数上传给服务端1002。其中,模型参数根据初始模型以及本地的数据计算出。
如果服务端1002接收到第三移动端集合u3中所有移动端上传的模型参数,则服务端1002对这些模型参数进行聚合,计算出目标模型参数,并将目标模型参数发送给第三移动端集合u3中每个移动端,以便第三移动端集合u3中每个移动端可以基于目标模型参数更新移动端的本地模型,进而执行联邦学习预测任务,并将预测结果反馈给服务端1002进行保存。
在移动端均反馈预测结果之后,服务端1002可以向所有设备发送本轮模型训练结束消息,并清除缓存数据,以便进行下一轮模型训练过程。其中,这些的所有设备可以是原始的移动端集合1001中的所有移动端。
图2示出了本公开实施例模型更新系统具体实现方式的示意图。
参考图2,主服务集群、Nginx服务、Websocket服务和RocketMQ服务可以构成本公开实施方式的服务端。图中的移动端可以指代移动端上安装的执行联邦学习模型训练过程的应用程序客户端。
可以使用多台实例主机(如图2中实例1、实例2、实例3、…、实例n)运行主服务,并使用Nginx进行负载均衡与路由转发。这多台的服务器组成集群,由于每台机器上运行的程序均相同,当其中一台宕机时,系统仍能正常运行。主服务使用集群架构,也提高了并发量和可靠性。
本公开实施例中,采用分布式架构将主服务与Websocket服务分离,提高了Websocket服务性能的同时也使主服务更专注于高并发场景和业务逻辑的处理。
由于主服务与Websocket服务采用分布式架构,因此,当涉及服务间通信时,需要使用RockketMQ消息中间件。可以在主服务与Websocket服务商添加消息生产者模块和消息消费者模块,生产者和消费者同时订阅同一个TOPIC(传输中介),当主服务需要发送通知时,可以通过消息生产者模块的发送消息方法,将消息推送到TOPIC即可。订阅了TOPIC的Websocket服务会监听到消息队列,当有消息产生时,可以通过消费者模型来处理消息。
就数据方面而言,可以使用Redis存储临时数据(如设备信息、临时模型参数等),使用MySQL存储持久化数据(如聚合计算出的目标模型参数)。Redis可以采用“三主三从”的集群架构,每个节点都可以与其他节点交换信息,当主节点宕机时,从节点自动切换为主节点,提高了Redis服务的可用性和稳定性。MySQL采用主从复制的架构设计,可以提高可靠性。
另外,Redis与MySQL的配置使用提高了数据存取速度,二者采用的集群模式也保证了数据访问的可靠性。
本公开示例性方案中服务端的主程序可以部署在虚拟机组成的集群中,每台虚拟机可以部署一个主程序。
然而,为了进一步进行优化,使虚拟机利用率最大化以及解决扩容时配置虚拟机环境、打包程序、部署等过程不易于管理和维护的问题,可以将调整为容器化方案,在虚拟机中安装docker和kubernetes,有助于创建和管理容器,此时服务端主程序运行在容器中,而每个虚拟机可以运行多个容器,由此,大大提升了资源的利用率。当需要扩容时,更改kubernetes用于编排容器的资源清单,即可增加服务。
具体的,在服务端搭建docker私有镜像仓库与Kubernetes集群管理项目。当项目开发完成后,将其打包为镜像并上传到私有仓库中,使用kubernetes资源清单拉取镜像并对服务进行编排,可以减少服务部署与迁移的成本。同时容器化可以显著减少启动和管理的虚拟机数量,消除每个应用程序都需要运行一个虚拟机的需求,减少项目整体的开销。
下面将对本公开实施例的模型更新方法进行说明。
图3示意性示出了本公开的示例性实施方式的应用于服务端的模型更新方法的流程图。参考图3,应用于服务端的模型更新方法可以包括以下步骤:
S32.向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;其中,第一移动端集合中每个移动端是已上传设备信息的移动端。
本公开实施方式的每个移动端可以通过Websocket协议建立与服务端的通信连接。移动端的设备信息可以包括设备标识信息和设备状态信息,设备状态信息可以包括但不限于移动端当前的电量、剩余内存、方案所涉APP版本号等。
各移动端通过Websocket接口接入服务端后,可以将各自的设备信息发送给服务端。服务端可以从上传设备信息的移动端中,记录设备状态信息满足状态要求的多个移动端,以得到第一移动端集合。也就是说,服务器可以通过Websocket协议建立与第一移动端集合中各移动端的通信连接。
其中,在关注电量的实例中,状态要求可以包括移动端的当前电量大于一电量阈值,本公开对电量阈值的具体取值不做限制;在关注剩余内存的实例中,状态要求可以包括移动端的剩余内存大于一内存阈值,本公开对内存阈值的具体取值不做限制;在关注所涉APP版本号的实例中,状态要求可以包括移动端安装APP的版本号满足版本号要求,本公开对版本号要求对应版本号不做限制,可以是最新的版本号,也可以是其他指定的版本号。
应当理解的是,状态要求还可以包括上述针对电量的状态要求、针对剩余内存的状态要求、针对APP版本号的状态要求中两种以上的组合,本公开对状态要求的具体内容不做限制。
针对服务端确定第一移动端集合的过程,服务端可以在首次接收到设备信息后的第一时间阈值内,记录满足状态要求的所有移动端,以得到第一移动端集合。本公开对第一时间阈值的具体取值不做限制,例如,10秒。
具体的,服务端在首次接收到一个移动端发送的设备信息时,开始计时,如开启一个计时器。在经历第一时间阈值后,计时器计时结束,期间记录的满足状态要求的所有移动端,记为第一移动端集合。
本公开实施例采用计时器取代规定参与设备数量的方案,在计数器计时结束前,任何满足要求的设备均可以参与训练。
例如,当前共存在1000个移动端,但可能由于网络、权限等因素,只有990个移动端发送设备信息成功,剩余10个移动端无法与服务端建立连接或无法向服务端发送设备信息,那么,服务端不用一直等待,通过计时控制,来确定出应用于下一步的第一移动端集合。
另外,第一时间阈值的具体取值还可以与当前移动端的总数量相关,例如,如果当前存在2000个移动端,可以将第一时间阈值设置为15秒。应当理解的是,时间阈值设置得越长,整个模型训练的过程越慢。除当前移动端的总数量之外,还可以根据联邦学习的参与成员各自的情况以及模型训练要求综合确定出时间阈值。
图4示例性示出了服务端确定第一移动端集合的过程。参考图4,移动端1、移动端2、移动端3、移动端4、…、移动端n可以分别向服务端发送各自的设备信息。服务端可以判断设备信息中的设备状态信息是否满足状态要求,并结合上述第一时间阈值的约束,确定出第一移动集合。例如,发送设备信息的移动端只有一部分满足状态要求,如不满足状态要求的移动端中包括移动端2,在这种情况下,可以将满足状态要求的移动端1、移动端3、移动端4、…、移动端n记录为第一移动端集合中的移动端。
此外,在本公开另一些实施例中,服务器在首次接收到设备信息后的第一时间阈值内,记录上传设备信息的所有移动端,并将这些移动端确定为第一移动端集合。在这些实施例中,默认各移动端的状态信息均满足要求或者不关注各移动端的状态信息,故仅考虑时间因素,
在服务端确定出第一移动端集合之后,如果仍有移动端上传设备信息,则服务端可以向该移动端发送等待信息,以告知该移动端等待下一轮再加入到训练中。
针对第一移动端集合,服务端可以向第一移动端集合中每个移动端发送公钥上传指令,移动端可以响应该公钥上传指令,向服务端上传各自的公钥。
服务端可以记录已上传公钥的移动端,以得到第二移动端集合。
具体的,服务端可以记录已上传公钥的移动端,在首次接收到公钥后的第二时间阈值内,如果出现已上传公钥的移动端的数量等于第一移动端集合中移动端的数量的情况,则在已上传公钥的移动端的数量等于第一移动端集合中移动端的数量时,利用记录的已上传公钥的所有移动端构建第二移动端集合。
与上述对第一时间阈值的说明类似,本公开对第二时间阈值的具体取值也不做限制。
具体的,服务端在首次接收到公钥时,开始计时,如开启一个计时器,在经历第二时间阈值的过程中,服务端不断接收不同移动端发送的公钥,如果已上传公钥的移动端的数量等于第一移动端集合中移动端的数量,则根据记录的情况,确定出第二移动端集合。
以第一移动端集合中移动端的数量为1000且第二时间阈值为10秒为例,在服务端首次接收到公钥时,开始计时,如果在第7秒时,服务端接收到公钥的数量等于1000,则计时停止,并将第二移动端集合确定为第一移动端集合,也就是说,第二移动端集合包含的移动端与第一移动端集合包含的移动端相同。
另外,在首次接收到公钥后达到第二时间阈值时,说明上传公钥的移动端的数量在第二时间阈值内未能达到第一移动端集合所包含移动端的数量,在这种情况下,计时结束,服务端利用第二时间阈值内记录的已上传公钥的所有移动端构建第二移动端集合。
例如,在服务端首次接收到公钥时,开始计时,如果经历了第二时间阈值(10秒),服务端确定出上传公钥的移动端的数量为980(小于第一移动端集合中移动端的数量1000),则服务端可以将这980个移动端确定为第二移动端集合所包含的移动端。
应当理解的是,第二移动端集合可以是第一移动端集合,也可以是第一移动端集合的一个子集合。
可见,通过第二时间阈值的设置,无需等待第一移动端集合中所有移动端均上传公钥,也可以确定出第二移动端集合,缩短了模型训练的整体耗时并使训练时间相对可控。
图5示例性示出了服务端确定第二移动端集合的过程。参考图5,首先,服务端向第一移动端集合中各移动端发送公钥上传指令。对应于图4确定出的第一移动端集合,服务端可以向移动端1、移动端3、移动端4、…、移动端n发送公钥上传指令。
接下来,由于网络等原因,反馈公钥的移动端可能比第一移动端集合中移动端的数量少,如图所示,服务端可以接收由移动端1、移动端3、…、移动端n发送的公钥。由此,可以将发送公钥的移动端记录为第二移动端集合中的移动端。
S34.向第二移动端集合中每个移动端发送公钥下载指令,记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合。
在步骤S32确定出第二移动端集合的情况下,服务端可以向第二移动端集合中每个移动端发送公钥下载指令,并根据移动端的公钥下载情况,确定出第三移动端集合。
服务端可以记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合。
具体的,在首次确定出已下载第二移动端集合中除自身外所有移动端的公钥的移动端后的第三时间阈值内,如果出现已下载第二移动端集合中除自身外所有移动端的公钥的移动端的数量等于第二移动端集合中移动端的数量的情况,则在已下载第二移动端集合中除自身外所有移动端的公钥的移动端的数量等于第二移动端集合中移动端的数量时,利用记录的已下载第二移动端集合中除自身外所有移动端的公钥的移动端构建第三移动端集合。
与上述对第一时间阈值的说明类似,本公开对第三时间阈值的具体取值不做限制。
具体的,服务端在首次确定出已下载第二移动端集合中除自身外所有移动端的公钥的移动端时,开始计时,如开启一个计时器,在经历第三时间阈值的过程中,服务端不断确定出下载公钥的移动端,如果已下载第二移动端集合中除自身外所有移动端的公钥的移动端的数量等于第二移动端集合中移动端的数量。则根据记录的情况,确定出第三移动端集合。
以第二移动端集合中移动端的数量为900且第三时间阈值为10秒为例,服务端在首次确定出已下载第二移动端集合中除自身外所有移动端的公钥的移动端时,开始计时,如果在第6秒时,服务端确定出下载公钥的移动端的数量等于900,则计时停止,并将第三移动端集合确定为第二移动端集合,也就是说,第三移动端集合包含的移动端与第二移动端集合包含的移动端相同。
另外,在首次确定出已下载第二移动端集合中除自身外所有移动端的公钥的移动端后达到第三时间阈值时,说明下载公钥的移动端的数量在第三时间阈值内未能达到第二移动端集合所包含移动端的数量,在这种情况下,计时结束,服务端利用第三时间阈值内记录的下载公钥的所有移动端构建第三移动端集合。
例如,在服务端首次确定出下载公钥的移动端时,开始计时,如果经历了第三时间阈值(10秒),服务端确定出下载公钥的移动端的数量为860(小于第二移动端集合中移动端的数量900),则服务端可以将这860个移动端确定为第三移动端集合所包含的移动端。
类似地,应当理解的是,第三移动端集合可以是第二移动端集合,也可以是第二移动端集合的一个子集合。
可见,通过第三时间阈值的设置,无需等待第二移动端集合中所有移动端均下载了其他移动端的公钥,也可以确定出第三移动端集合,缩短了模型训练的整体耗时并使训练时间相对可控。
图6示例性示出了服务端确定第三移动端集合的过程,参考图6,首先,服务端向第二移动端集合中各移动端发送公钥下载指令。对应于图5确定出的第二移动端集合,服务端可以向移动端1、移动端3、…、移动端n发送公钥下载指令。
接下来,服务端可以确定出下载了公钥的移动端,作为第三移动端集合中的移动端。
S36.向第三移动端集合中每个移动端发送模型参数上传指令,在接收到第三移动端集合中每个移动端上传的模型参数的情况下,对模型参数进行聚合,以得到目标模型参数。
在步骤S34确定出第三移动端集合的情况下,服务端可以向第三移动端集合中每个移动端发送模型参数上传指令,接收到该模型参数上传指令的移动端,在计算完本地模型后,可以将模型参数上传至服务端。其中,模型参数又可被称为梯度数据,为根据初始模型以及本地的数据计算出的参数数据。
在接收到第三移动端集合中每个移动端上传的模型参数的情况下,服务端可以对模型参数进行聚合,以得到目标模型参数。
具体的,模型参数通常包括多项子参数,针对模型参数中的每一项子参数,服务端计算均值,并基于每一项的计算结果进行重构,即得到目标模型参数。应当理解的是,本公开对聚合计算的具体过程不做限制,除取均值外,还可以利用其他统计学手段计算目标模型参数。
在首次接收到移动端上传的模型参数后达到第四时间阈值时,如果服务端未接收到第三移动端集合中所有移动端上传的模型参数,则进行掉线处理或重新进行本轮模型训练。可以理解的是,重新进行本轮模型训练即是从移动端上传设备信息开始重新执行上述过程。
S38.将目标模型参数发送给第三移动端集合中每个移动端,以便第三移动端集合中每个移动端分别利用目标模型参数更新本地模型。
在计算出目标模型参数之后,服务端可以将目标模型参数发送给第三移动端集合中每个移动端,这些移动端中的每一个移动端均利用目标模型参数更新本地模型,可以理解的是,这些移动端中每一个移动端均对应有本地模型,在移动端获取到目标模型参数之后,可以利用目标模型参数对本地模型的模型参数进行更新。
另外,更新后的本地模型可以结合下载到的其他移动端的公钥执行联邦学习预测任务。例如,移动端之间可以借助于下载到的彼此的公钥实现联邦学习模型相关信息的传输和交换,保证任一方均不能推测出其他方的原始本地数据。
应当理解的是,各移动端执行的联邦学习预测任务通常彼此不同。
在第三移动端集合中每个移动端执行预测任务之后,服务端可以接收这些移动端反馈的预测结果并保存。
在接收到第三移动端集合中所有移动端反馈的预测结果之后,服务端可以向第三移动端集合中每个移动端发送本轮模型训练结束信息(Finish信息),并清除缓存数据,如清除记录的第一移动端集合、第二移动端集合、第三移动端集合等,释放资源,以便进行下一轮模型训练过程。另外,除第三移动端集合中的每个移动端外,服务端还可以向其他移动端发送本轮模型训练结束信息,以便其他满足条件的移动端也能接入到下一轮模型训练过程中。
进一步的,本公开还提供了一种应用于移动端的模型更新方法。参考图7,应用于移动端的模型更新方法可以包括以下步骤:
S70.响应公钥上传指令,向服务端发送公钥;
S72.响应公钥下载指令,从服务端下载除移动端外其他移动端的公钥;
S74.响应模型参数上传指令,将计算后得到的模型参数上传至服务端,以便服务端将模型参数以及从其他移动端获取到的模型参数进行聚合以计算出目标模型参数;
S76.接收目标模型参数,利用目标模型参数更新本地模型。
步骤S70至步骤S76的处理过程在上述针对服务端的步骤S32至步骤S38中均已说明,不再赘述。
下面参考图8,对本公开实施例的模型训练方案的交互过程进行说明。
在步骤S802中,移动端向服务端上传设备信息。
在步骤S804中,服务端基于设备信息中的状态信息选择移动端,确定出第一移动端集合。
在步骤S806中,服务端可以将第一移动端集合的信息记录到数据库中。其中,数据库保存的信息包括但不限于第一移动端集合中每个移动端的标识信息。
在步骤S808中,服务端向移动端发送公钥上传指令。
在步骤S810中,移动端响应公钥上传指令上传公钥。
在步骤S812中,服务端根据移动端上传公钥的情况,并结合计时的手段,确定出第二移动端集合,并将第二移动端集合的信息记录到数据库。
在步骤S814中,服务端向移动端发送公钥下载指令。
在步骤S816中,移动端响应公钥下载指令下载第二移动端集合中除自身外其余移动端的公钥。
在步骤S818中,服务端根据移动端下载公钥的情况,并结合计时的手段,确定出第三移动端集合,并将第三移动端集合的信息记录到数据库。其中,服务端判断移动端下载公钥的方式可以对下载公钥的移动端进行计数,例如,每出现下载公钥的移动端,计数加1。
在步骤S820中,服务端向移动端发送模型参数上传指令。
在步骤S822中,移动端响应模型参数上传指令,在基于本地数据以及初始模型计算出模型参数的情况下,上传模型参数。
在步骤S824中,服务端对接收到的模型参数,进行聚合计算,得到目标模型参数。其中,聚合计算的方式包括但不限于模型参数取均值。
在步骤S826中,服务端将目标模型参数存储至数据库。
在步骤S828中,服务端通知移动端下载目标模型参数。
在步骤S830中,移动端从服务端下载目标模型参数。
在步骤S832中,移动端利用目标模型参数并结合其他移动端的公钥执行联邦学习的预测任务。
在步骤S834中,移动端上传预测结果。
在步骤S836中,服务端将预测结果存储至数据库。
在步骤S838中,服务端通知移动端本轮训练结束,并释放资源,以便进行下一轮模型训练过程。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中还提供了一种应用于服务端的模型更新装置。
图9示意性示出了本公开的示例性实施方式的应用于服务端的模型更新装置的方框图。参考图9,根据本公开的示例性实施方式的应用于服务端的模型更新装置9可以包括第一记录模块91、第二记录模块93、参数计算模块95和参数发送模块97。
具体的,第一记录模块91可以用于向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;其中,第一移动端集合中每个移动端是已上传设备信息的移动端;第二记录模块93可以用于向第二移动端集合中每个移动端发送公钥下载指令,记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合;参数计算模块95可以用于向第三移动端集合中每个移动端发送模型参数上传指令,在接收到第三移动端集合中每个移动端上传的模型参数的情况下,对模型参数进行聚合,以得到目标模型参数;参数发送模块97可以用于将目标模型参数发送给第三移动端集合中每个移动端,以便第三移动端集合中每个移动端分别利用目标模型参数更新本地模型。
根据本公开的示例性实施例,设备信息包括移动端的设备状态信息。在这种情况下,第一记录模块91还可以被配置为执行:记录设备状态信息满足状态要求的多个移动端,以得到第一移动端集合。
根据本公开的示例性实施例,第一记录模块91还可以被配置为执行:在首次接收到设备信息后的第一时间阈值内,记录满足状态要求的所有移动端,以得到第一移动端集合。
根据本公开的示例性实施例,第一记录模块91还可以被配置为执行:在首次接收到设备信息后的第一时间阈值内,记录上传设备信息的所有移动端,以得到第一移动端集合。
根据本公开的示例性实施例,第一记录模块91还可以被配置为执行:通过Websocket协议建立与第一移动端集合中各移动端的通信连接。
根据本公开的示例性实施例,第一记录模块91得到第二移动端集合的过程可以被配置为执行:记录已上传公钥的移动端;在首次接收到公钥后的第二时间阈值内,在已上传公钥的移动端的数量等于第一移动端集合中移动端的数量时,利用记录的已上传公钥的所有移动端构建第二移动端集合;在首次接收到公钥后达到第二时间阈值时,利用记录的已上传公钥的所有移动端构建第二移动端集合。
根据本公开的示例性实施例,第二记录模块93得到第三移动端集合的过程可以被配置为执行:记录已下载第二移动端集合中除自身外所有移动端的公钥的移动端;在首次确定出已下载第二移动端集合中除自身外所有移动端的公钥的移动端后的第三时间阈值内,在已下载第二移动端集合中除自身外所有移动端的公钥的移动端的数量等于第二移动端集合中移动端的数量时,利用记录的已下载第二移动端集合中除自身外所有移动端的公钥的移动端构建第三移动端集合;在首次确定出已下载第二移动端集合中除自身外所有移动端的公钥的移动端后达到第三时间阈值时,利用记录的已下载第二移动端集合中除自身外所有移动端的公钥的移动端构建第三移动端集合。
根据本公开的示例性实施例,参考图10,相比于模型更新装置9,模型更新装置10还可以包括异常处理模块101。
具体的,异常处理模块101可以被配置为执行:在首次接收到移动端上传的模型参数后达到第四时间阈值时,如果未接收到第三移动端集合中所有移动端上传的模型参数,则进行掉线处理或重新进行本轮模型训练。
根据本公开的示例性实施例,参数计算模块95得到目标模型参数的过程可以被配置为执行:针对模型参数中的每一项子参数,计算均值,以得到目标模型参数。
根据本公开的示例性实施例,参考图11,相比于模型更新装置9,模型更新装置11还可以包括预测处理模块111。
具体的,预测处理模块111可以被配置为执行:在第三移动端集合中每个移动端利用更新后的本地模型执行联邦学习预测任务之后,接收第三移动端集合中每个移动端反馈的预测结果并保存。
根据本公开的示例性实施例,预测处理模块111还可以被配置为执行:在接收到第三移动端集合中所有移动端反馈的预测结果之后,向第三移动端集合中每个移动端发送本轮模型训练结束消息,并清除缓存数据,以便进行下一轮模型训练过程。
进一步的,本示例实施方式中还提供了一种应用于移动端的模型更新装置。
图12示意性示出了本公开的示例性实施方式的应用于移动端的模型更新装置的方框图。参考图12,根据本公开的示例性实施方式的应用于移动端的模型更新装置12可以包括公钥发送模块121、公钥下载模块123、参数上传模块125和参数应用模块127。
具体的,公钥发送模块121可以用于响应公钥上传指令,向服务端发送公钥;公钥下载模块123可以用于响应公钥下载指令,从服务端下载除移动端外其他移动端的公钥;参数上传模块125可以用于响应模型参数上传指令,将计算后得到的模型参数上传至服务端,以便服务端将模型参数以及从其他移动端获取到的模型参数进行聚合以计算出目标模型参数;参数应用模块127可以用于接收目标模型参数,利用目标模型参数更新本地模型。
根据本公开的示例性实施例,公钥发送模块121还可以被配置为执行:通过Websocket协议建立与服务端的通信连接。
根据本公开的示例性实施例,参数应用模块127还可以被配置为执行:将执行预测任务后得到的预测结果上传至服务端;以及接收服务端发送的本轮模型训练结束消息。
由于本公开实施方式的模型更新装置的各个功能模块与上述方法实施方式中相同,因此在此不再赘述。
图13示出了适于用来实现本公开示例性实施方式的电子设备的计算机系统的结构示意图。本公开实施方式的服务端和/或移动端可以被配置为包括如图13的形式。需要说明的是,图13示出的电子设备的计算机系统1300仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本公开的电子设备至少包括处理器和存储器,存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器可以实现本公开示例性实施方式的模型更新方法。
如图13所示,计算机系统1300包括中央处理单元(CPU)1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。在RAM 1303中,还存储有系统操作所需的各种程序和数据。CPU 1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
以下部件连接至I/O接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (18)
1.一种模型更新方法,应用于服务端,其特征在于,所述模型更新方法包括:
向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;其中,所述第一移动端集合中每个移动端是已上传设备信息的移动端;
向所述第二移动端集合中每个移动端发送公钥下载指令,记录已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合;
向所述第三移动端集合中每个移动端发送模型参数上传指令,在接收到所述第三移动端集合中每个移动端上传的模型参数的情况下,对所述模型参数进行聚合,以得到目标模型参数;
将所述目标模型参数发送给所述第三移动端集合中每个移动端,以便所述第三移动端集合中每个移动端分别利用所述目标模型参数更新本地模型。
2.根据权利要求1所述的模型更新方法,其特征在于,所述设备信息包括移动端的设备状态信息;其中,所述模型更新方法还包括:
记录设备状态信息满足状态要求的多个移动端,以得到所述第一移动端集合。
3.根据权利要求2所述的模型更新方法,其特征在于,记录设备状态信息满足状态要求的多个移动端,以得到所述第一移动端集合,包括:
在首次接收到设备信息后的第一时间阈值内,记录满足状态要求的所有移动端,以得到所述第一移动端集合。
4.根据权利要求1所述的模型更新方法,其特征在于,所述模型更新方法还包括:
在首次接收到设备信息后的第一时间阈值内,记录上传设备信息的所有移动端,以得到所述第一移动端集合。
5.根据权利要求1所述的模型更新方法,其特征在于,所述模型更新方法还包括:
通过Websocket协议建立与所述第一移动端集合中各移动端的通信连接。
6.根据权利要求1所述的模型更新方法,其特征在于,记录已上传公钥的移动端,以得到第二移动端集合,包括:
记录已上传公钥的移动端;
在首次接收到公钥后的第二时间阈值内,在已上传公钥的移动端的数量等于所述第一移动端集合中移动端的数量时,利用记录的已上传公钥的所有移动端构建所述第二移动端集合;
在首次接收到公钥后达到所述第二时间阈值时,利用记录的已上传公钥的所有移动端构建所述第二移动端集合。
7.根据权利要求1所述的模型更新方法,其特征在于,记录已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合,包括:
记录已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端;
在首次确定出已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端后的第三时间阈值内,在已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端的数量等于所述第二移动端集合中移动端的数量时,利用记录的已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端构建所述第三移动端集合;
在首次确定出已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端后达到所述第三时间阈值时,利用记录的已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端构建所述第三移动端集合。
8.根据权利要求1所述的模型更新方法,其特征在于,所述模型更新方法还包括:
在首次接收到移动端上传的模型参数后达到第四时间阈值时,如果未接收到所述第三移动端集合中所有移动端上传的模型参数,则进行掉线处理或重新进行本轮模型训练。
9.根据权利要求1所述的模型更新方法,其特征在于,对所述模型参数进行聚合,以得到目标模型参数,包括:
针对所述模型参数中的每一项子参数,计算均值,以得到所述目标模型参数。
10.根据权利要求1至9中任一项所述的模型更新方法,其特征在于,所述模型训练方法还包括:
在所述第三移动端集合中每个移动端利用更新后的本地模型执行联邦学习预测任务之后,接收所述第三移动端集合中每个移动端反馈的预测结果并保存。
11.根据权利要求10所述的模型更新方法,其特征在于,所述模型更新方法还包括:
在接收到所述第三移动端集合中所有移动端反馈的预测结果之后,向所述第三移动端集合中每个移动端发送本轮模型训练结束消息,并清除缓存数据,以便进行下一轮模型训练过程。
12.一种模型更新方法,应用于移动端,其特征在于,所述模型更新方法包括:
响应公钥上传指令,向服务端发送公钥;
响应公钥下载指令,从所述服务端下载除所述移动端外其他移动端的公钥;
响应模型参数上传指令,将计算后得到的模型参数上传至所述服务端,以便所述服务端将所述模型参数以及从其他移动端获取到的模型参数进行聚合以计算出目标模型参数;
接收所述目标模型参数,利用所述目标模型参数更新本地模型。
13.根据权利要求12所述的模型更新方法,其特征在于,所述模型更新方法还包括:
通过Websocket协议建立与所述服务端的通信连接。
14.根据权利要求12所述的模型更新方法,其特征在于,所述模型更新方法还包括:
将执行所述联邦学习预测任务后得到的预测结果上传至所述服务端;以及
接收所述服务端发送的本轮模型训练结束消息。
15.一种模型更新装置,应用于服务端,其特征在于,所述模型更新装置包括:
第一记录模块,用于向第一移动端集合中每个移动端发送公钥上传指令,记录已上传公钥的移动端,以得到第二移动端集合;其中,所述第一移动端集合中每个移动端是已上传设备信息的移动端;
第二记录模块,用于向所述第二移动端集合中每个移动端发送公钥下载指令,记录已下载所述第二移动端集合中除自身外所有移动端的公钥的移动端,以得到第三移动端集合;
参数计算模块,用于向所述第三移动端集合中每个移动端发送模型参数上传指令,在接收到所述第三移动端集合中每个移动端上传的模型参数的情况下,对所述模型参数进行聚合,以得到目标模型参数;
参数发送模块,用于将所述目标模型参数发送给所述第三移动端集合中每个移动端,以便所述第三移动端集合中每个移动端分别利用所述目标模型参数更新本地模型。
16.一种模型更新装置,应用于移动端,其特征在于,所述模型更新装置包括:
公钥发送模块,用于响应公钥上传指令,向服务端发送公钥;
公钥下载模块,用于响应公钥下载指令,从所述服务端下载除所述移动端外其他移动端的公钥;
参数上传模块,用于响应模型参数上传指令,将计算后得到的模型参数上传至所述服务端,以便所述服务端将所述模型参数以及从其他移动端获取到的模型参数进行聚合以计算出目标模型参数;
参数应用模块,用于接收所述目标模型参数,并利用所述目标模型参数更新本地模型。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至14中任一项所述的模型更新方法。
18.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至14中任一项所述的模型更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210581679.2A CN115001692A (zh) | 2022-05-26 | 2022-05-26 | 模型更新方法及装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210581679.2A CN115001692A (zh) | 2022-05-26 | 2022-05-26 | 模型更新方法及装置、计算机可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115001692A true CN115001692A (zh) | 2022-09-02 |
Family
ID=83029888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210581679.2A Pending CN115001692A (zh) | 2022-05-26 | 2022-05-26 | 模型更新方法及装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115001692A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116880928A (zh) * | 2023-09-06 | 2023-10-13 | 菲特(天津)检测技术有限公司 | 模型部署方法、装置、设备及存储介质 |
-
2022
- 2022-05-26 CN CN202210581679.2A patent/CN115001692A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116880928A (zh) * | 2023-09-06 | 2023-10-13 | 菲特(天津)检测技术有限公司 | 模型部署方法、装置、设备及存储介质 |
CN116880928B (zh) * | 2023-09-06 | 2023-11-21 | 菲特(天津)检测技术有限公司 | 模型部署方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290854B (zh) | 任务管理方法、装置、系统、计算机存储介质及电子设备 | |
WO2021115480A1 (zh) | 联邦学习方法、装置、设备和存储介质 | |
CN113177645B (zh) | 联邦学习方法、装置、计算设备及存储介质 | |
CN107944566B (zh) | 一种机器学习方法、主节点、工作节点及系统 | |
CN112069265B (zh) | 配置数据的同步方法、业务数据系统、计算机系统和介质 | |
CN107590001A (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
Guerrero-Contreras et al. | A context-aware architecture supporting service availability in mobile cloud computing | |
US20230281513A1 (en) | Data model training method and apparatus | |
CN115297008B (zh) | 基于智算网络的协同训练方法、装置、终端及存储介质 | |
CN111464352A (zh) | 调用链路数据处理方法及装置 | |
CN111435315A (zh) | 分配资源的方法、装置、设备和计算机可读介质 | |
Wu et al. | Design and analysis of an effective graphics collaborative editing system | |
CN114760304B (zh) | 算力信息的处理方法、处理系统及算力网关 | |
CN115001692A (zh) | 模型更新方法及装置、计算机可读存储介质和电子设备 | |
Chakraborty et al. | Virtual IoT Device in C# WPF Using Sinric Pro | |
CN114240506A (zh) | 多任务模型的建模方法、推广内容处理方法及相关装置 | |
Chaves et al. | Towards flexible data stream collaboration: Federated Learning in Kafka-ML | |
CN111935026A (zh) | 一种数据传输方法、装置、处理设备及介质 | |
CN115361382B (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN117118982A (zh) | 基于云原生多集群的消息传输方法、装置、介质及设备 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112099957B (zh) | 资源配置方法、系统、装置以及电子设备 | |
Deb et al. | Loop-the-loops: Fragmented learning over networks for constrained IoT devices | |
CN115269130A (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 |