首页> 中国专利> 联邦学习系统中共享数据的方法、装置、设备及介质

联邦学习系统中共享数据的方法、装置、设备及介质

摘要

本申请提供了一种联邦学习系统中共享数据的方法,其中,联邦学习系统包括第一设备和至少一个第二设备,该方法包括:第一设备获取至少一个第二设备的反馈信息,然后第一设备根据至少一个第二设备的反馈信息更新至少一个第二设备的训练数据。如此考虑了第二设备的差异,采用差异化方式下发共享数据,使得第二设备能够根据更新后的训练数据进行针对性训练,提高了模型预测精度和模型训练效率。

著录项

  • 公开/公告号CN113850390A

    专利类型发明专利

  • 公开/公告日2021-12-28

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN202010597134.1

  • 发明设计人 宁伟康;廖振生;

    申请日2020-06-28

  • 分类号G06N20/00(20190101);G06F9/50(20060101);

  • 代理机构44285 深圳市深佳知识产权代理事务所(普通合伙);

  • 代理人常忠良

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 13:26:15

说明书

技术领域

本申请涉及人工智能(artificial intelligence,AI)领域,尤其涉及一种联邦学习系统中共享数据的方法、装置、设备以及计算机可读存储介质。

背景技术

联邦学习(federated learning,FL)是为了解决机器学习中存在的数据孤岛以及隐私保护问题而提出的一种新算法。该算法提供了一种联邦学习系统。联邦学习系统通常包括中心设备以及边缘设备。每个边缘设备持有自己的数据集,边缘设备之间的数据集互相隔离。各个边缘设备使用自己的数据集进行模型训练,并将梯度上传至中心设备,中心设备聚合各个边缘设备的梯度进行模型更新并将更新后的模型重新下发至各个边缘设备。

现有机器学习任务一般默认数据遵循独立同分布的假设。在联邦学习中,不同边缘设备之间的数据极有可能不满足该假设。为了解决联邦学习中数据分布影响联邦学习效果的问题,业界提出了一些共享数据的方法。具体地,在训练初始阶段,对参与联邦学习的每个边缘设备,从共享数据集中随机采样部分数据,分发给各个边缘设备。边缘设备基于共享数据与私有数据,进行模型训练。

然而,基于上述方法训练所得模型的预测精度以及模型训练效率仍然难以满足业务需求。

发明内容

本申请提供了一种联邦学习系统中共享数据的方法,该方法根据至少一个第二设备的反馈信息针对性地更新至少一个第二设备的训练数据,基于更新后的训练数据进行模型训练可以提高模型训练效率以及模型预测精度,能够满足业务需求。本申请还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。

第一方面,本申请提供了一种联邦学习系统中共享数据的方法。所述联邦学习系统包括第一设备和至少一个第二设备。该联邦学习系统可以部署在云环境,具体为云环境上的多个计算设备(例如中心服务器)。联邦学习系统也可以部署在边缘环境,具体为边缘环境中的多个计算设备(例如边缘服务器)。联邦学习系统还可以部署在端设备(例如台式机等用户终端)。在一些实现方式中,联邦学习系统也可以分布式地部署于不同环境,例如第一设备部署在云环境,至少一个第二设备部署在边缘环境。

具体地,第一设备获取至少一个第二设备的反馈信息,然后根据至少一个第二设备的反馈信息更新至少一个第二设备的训练数据,如此可以实现根据第二设备的反馈信息针对性地更新第二设备的训练数据。

由于更新后的训练数据中至少有一部分数据是来自于第一设备的共享数据集中的共享数据,这些共享数据具有相同的数据分布,因此,减少了至少一个第二设备的训练数据的分布差异,提升了联邦学习效果。并且,该方法考虑了第二设备的差异,采用差异化方式下发共享数据,使得第二设备能够根据更新后的训练数据进行针对性训练,提高了模型预测精度和模型训练效率。

在一些可能的实现方式中,第一设备可以根据至少一个第二设备的目标数据更新至少一个第二设备的训练数据。其中,至少一个第二设备的目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配的数据。具体地,第一设备可以根据至少一个第二设备的反馈信息从共享数据集中确定目标数据,然后根据目标数据更新至少一个第二设备的训练数据。

其中,第二设备的训练数据在更新后至少包括上述目标数据。如此,第二设备可以根据包括上述目标数据在内的训练数据进行针对性训练,提高了模型预测精度和模型训练效率。

在一些可能的实现方式中,第一设备可以在至少一个第二设备的反馈信息满足预设条件时,根据至少一个第二设备的反馈信息更新所述至少一个第二设备的训练数据。其中,预设条件可以为如下所示的条件中的至少一个:设备处于空闲状态,传输时延不超过预设时长(表征通信状况良好),运算能力大于运算能力阈值,存储容量大于存储容量阈值。

由于第一设备可以根据至少一个第二设备的反馈信息决定是否更新至少一个第二设备的训练数据,如此,可以避免不必要的数据传输,降低通信压力。

在一些可能的实现方式中,所述反馈信息包括所述第二设备的配置信息或所述第二设备训练的模型的属性信息。其中,配置信息可以包括算力、通信状态、存储容量、空闲状态中的一种或多种。模型的属性信息可以包括模型构建参数、模型性能和模型精度中的一种或多种。模型构建参数具体是用于构建模型的参数,例如可以为模型梯度、模型权重等等。模型精度包括准确率、召回率、精确度中的任意一种或多种,模型性能包括模型训练时间等等。

在一些可能的实现方式中,所述模型的属性信息包括模型构建参数,第一设备可以根据模型构建参数如模型梯度构建至少一个第二设备训练的模型对应的模型副本,然后通过模型副本对共享数据集中的样本数据进行预测,获得预测错误的样本数据,接着第一设备根据预测错误的样本数据更新至少一个第二设备的训练数据。

由此,第二设备可以根据预测错误的样本数据进行针对性训练,提高模型训练精度。此外,通过上述预测错误的样本数据进行针对性训练,可以减少训练次数,提高模型训练效率。

在一些可能的实现方式中,配置信息包括算力、通信状态、存储容量、空闲状态中的一种或多种,模型的属性信息包括模型性能和模型精度中的一种或多种。第一设备可以根据算力、通信状态、存储容量、空闲状态、模型性能和模型精度中的一种或多种确定至少一个第二设备对应的训练数据的数量,然后第一设备可以根据至少一个第二设备对应的训练数据的数量,更新至少一个第二设备的训练数据。如此实现针对性地下发共享数据,通过该共享数据进行针对性训练,可以提高模型精度和模型训练效率。

在一些可能的实现方式中,第一设备可以向至少一个第二设备发送第一标识,其中,第一标识可以是目标数据的标识,第二设备可以根据该第一标识从本地或者第三方平台获取数据,从而更新训练数据。由于仅需发送目标数据的标识,无需发送目标数据,大幅减少了第一设备需要传输的数据量,减少了第一设备对网络资源的占用,降低了第一设备的通信压力,提高了传输效率。

在一些可能的实现方式中,第一设备记录有第二标识,该第二标识具体为至少一个第二设备持有的数据的标识,第一设备可以根据第二标识以及至少一个第二设备的反馈信息,通过增量更新方式更新至少一个第二设备的训练数据。由于采用增量更新方式,因此,第一设备无需发送第二设备已持有数据的标识,进一步减少了第一设备需要传输的数据量,提高了传输效率。

第二方面,本申请提供了一种联邦学习系统中共享数据的方法。该联邦学习系统包括第一设备和至少一个第二设备。至少一个第二设备可以生成至少一个第二设备的反馈信息,然后至少一个第二设备向第一设备发送反馈信息,该反馈信息用于第一设备更新至少一个第二设备的训练数据。该方法考虑了第二设备的差异,采用差异化方式下发共享数据,使得第二设备能够根据更新后的训练数据进行针对性训练,提高了模型预测精度和模型训练效率。

在一些可能的实现方式中,至少一个第二设备接收第一设备发送的目标数据,该目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配的数据。如此,第二设备可以根据上述目标数据进行针对性训练,提高了模型预测精度和模型训练效率。

在一些可能的实现方式中,至少一个第二设备接收第一设备发送的目标数据的标识,目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配的数据。至少一个第二设备可以根据目标数据的标识获取目标数据,例如从本地获取目标数据,或者从第三方平台获取目标数据。由于第一设备仅需发送目标数据的标识,减少了第一设备传输数据量,降低了第一设备的通信压力。

在一些可能的实现方式中,第一设备记录有至少一个第二设备持有的数据的标识。其中,目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配,且至少一个第二设备不持有的数据。如此,第一设备可以通过增量更新方式更新至少一个第二设备的训练数据,减少了第一设备传输数据量,进而降低了第一设备的通信压力。

第三方面,本申请提供了一种联邦学习系统中共享数据的装置。所述联邦学习系统包括第一设备和至少一个第二设备,所述装置包括:

通信模块,用于获取所述至少一个第二设备的反馈信息;

更新模块,用于根据所述至少一个第二设备的反馈信息更新所述至少一个第二设备的训练数据。

在一些可能的实现方式中,所述更新模块具体用于:

根据所述至少一个第二设备的目标数据更新所述至少一个第二设备的训练数据,所述至少一个第二设备的目标数据为所述第一设备的共享数据集中与所述至少一个第二设备的反馈信息匹配的数据。

在一些可能的实现方式中,所述更新模块具体用于:

所述至少一个第二设备的反馈信息满足预设条件时,根据所述至少一个第二设备的反馈信息更新所述至少一个第二设备的训练数据。

在一些可能的实现方式中,所述反馈信息包括所述第二设备的配置信息或所述第二设备训练的模型的属性信息。

在一些可能的实现方式中,所述模型的属性信息包括模型构建参数;

所述更新模块具体用于:

根据所述模型构建参数构建所述至少一个第二设备训练的模型对应的模型副本;

通过所述模型副本对共享数据集中的样本数据进行预测,获得预测错误的样本数据;

根据预测错误的样本数据更新所述至少一个第二设备的训练数据。

在一些可能的实现方式中,所述配置信息包括算力、通信状态、存储容量、空闲状态中的一种或多种,所述模型的属性信息包括模型性能和模型精度中的一种或多种;

所述更新模块具体用于:

根据所述算力、所述通信状态、所述存储容量、所述空闲状态、所述模型性能和所述模型精度中的一种或多种确定所述至少一个第二设备对应的训练数据的数量;

根据所述至少一个第二设备对应的训练数据的数量,更新所述至少一个第二设备的训练数据。

在一些可能的实现方式中,所述更新模块具体用于:

向所述至少一个第二设备发送第一标识,所述至少一个第二设备的训练数据在更新后包括所述至少一个第二设备根据所述第一标识获取的数据。

在一些可能的实现方式中,所述第一设备记录有第二标识,所述第二标识具体为所述至少一个第二设备持有的数据的标识;

所述更新模块具体用于:

根据所述第二标识以及所述至少一个第二设备的反馈信息,通过增量更新方式更新所述至少一个第二设备的训练数据。

第四方面,本申请提供了一种联邦学习系统中共享数据的装置。所述联邦学习系统包括第一设备和至少一个第二设备,所述装置包括:

生成模块,用于生成所述至少一个第二设备的反馈信息;

通信模块,用于向所述第一设备发送所述反馈信息,所述反馈信息用于所述第一设备更新所述至少一个第二设备的训练数据。

在一些可能的实现方式中,所述通信模块还用于:

接收所述第一设备发送的目标数据,所述目标数据为所述第一设备的共享数据集中与所述至少一个第二设备的反馈信息匹配的数据。

在一些可能的实现方式中,所述通信模块还用于:

接收所述第一设备发送的目标数据的标识,所述目标数据为所述第一设备的共享数据集中与所述至少一个第二设备的反馈信息匹配的数据;

根据所述目标数据的标识获取所述目标数据。

在一些可能的实现方式中,所述第一设备记录有所述至少一个第二设备持有的数据的标识;

所述目标数据为所述第一设备的共享数据集中与所述至少一个第二设备的反馈信息匹配,且所述至少一个第二设备不持有的数据。

第五方面,本申请提供一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第一方面或第二方面的任一种实现方式中的联邦学习系统中共享数据的方法。

第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第二方面的任一种实现方式所述的联邦学习系统中共享数据的方法。

第七方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第二方面的任一种实现方式所述的联邦学习系统中共享数据的方法。

本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

附图说明

为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。

图1为本申请实施例提供的一种联邦学习系统的结构示意图;

图2为本申请实施例提供的一种联邦学习系统中共享数据的方法的应用场景图;

图3为本申请实施例提供的一种联邦学习系统中共享数据的方法的应用场景图;

图4为本申请实施例提供的一种联邦学习系统中共享数据的方法的交互流程图;

图5为本申请实施例提供的一种联邦学习系统中共享数据的方法的交互流程图;

图6为本申请实施例提供的一种联邦学习系统中共享数据的方法的交互流程图;

图7为本申请实施例提供的一种联邦学习系统中共享数据的结构示意图;

图8为本申请实施例提供的一种联邦学习系统中共享数据的结构示意图;

图9为本申请实施例提供的一种设备的结构示意图;

图10为本申请实施例提供的一种设备的结构示意图。

具体实施方式

本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。

首先对本申请实施例中所涉及到的一些技术术语进行介绍。

机器学习(machine learning)是一种通过计算机模拟或实现人类的学习行为,以获取新的知识或技能、重新组织已有的知识结构的技术。具体地,机器学习是指通过样本数据对模型进行优化,使得模型具备较高预测能力的过程。其中,通过样本数据对以人工神经网络为架构建立的神经网络模型进行优化的过程称之为深度学习(deep learning)。由于机器学习在语音识别、图形识别等任务中取得的巨大进展,深度学习逐渐成为机器学习领域的热门研究方向。

无论是传统的机器学习,还是深度学习,样本数据的数量和质量均是影响学习效果的重要因素。为了提高样本数据的多样性,从而提高样本数据的质量,以及增加样本数据的数量,一种可行的方案是不同的数据拥有方共享自己拥有的数据,形成一个较大的、高质量的数据集。然而,数据拥有方共享自己拥有的数据又会产生隐私安全问题。为了解决上述问题,业界提出了联邦学习(federated learning,FL)的方案。

联邦学习是在保障数据交换时的信息安全、隐私安全以及合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习。也即联邦学习实质是包括多个参与方的机器学习。具体地,多个数据拥有方拥有各自用户的相关数据,考虑到隐私安全,这些数据不能相互交换,属于数据拥有方的私有数据。当这多个数据拥有方希望联合训练一个机器学习模型时,可以通过联邦学习系统进行实现。

如图1所示,联邦学习系统包括第一设备102和至少一个第二设备104。图1以包括多个第二设备104进行示例说明。第二设备104中包括私有数据集,第二设备104可以利用该私有数据集训练模型,然后将模型梯度上报至第一设备102,第一设备102对至少一个第二设备104上报的模型梯度进行聚合,得到新的模型。

不同第二设备104包括的私有数据集的数据分布往往是有差异的。现有机器学习任务一般默认数据遵循独立同分布的假设。然而,在联邦学习中,不同第二设备104包括的私有数据集极有可能不满足该假设。为了解决联邦学习中数据分布差异影响联邦学习效果的问题,业界提出了一些通过共享数据减少数据分布差异的解决方案。

具体地,第一设备102中提供有共享数据集。该共享数据集可以是网络中公开的数据集,如ImageNet、VGG face、MS MARCO等等,也可以是购买的数据集,或者通过其他方式获得的、可以共享给第二设备104的数据集。

第一设备102可以按照预设比例如5%从共享数据集中随机采集数据,下发到至少一个第二设备104。在一个示例中,第一设备102可以向每一个参与联邦学习的第二设备104均下发5%的数据。对于每一个参与联邦学习的第二设备104而言,由于这5%的数据时从同一个共享数据集中采样的,这5%的数据可以视为具有相同的数据分布。每个第二设备104的训练数据(5%的共享数据+私有数据集)的数据分布的差异显然小于不同私有数据集的数据分布的差异。基于共享数据和私有数据集进行联邦学习,可以获得较好的学习效果,例如可以在一定程度上提高模型的精度。

然而,不同第二设备104中的共享数据是对全局的共享数据集随机采样得到,第一设备102并未根据第二设备104的差异如运算能力(即算力)、存储能力的差异,采用差异化的方式下发共享数据。一方面导致不同第二设备104训练时间差异增大,降低了模型训练效率,另一方面,不同第二设备104上的模型未采用适配的数据进行针对性训练,导致模型精度仍然难以满足业务需求。

有鉴于此,本申请实施例提供了一种联邦学习系统中共享数据的方法。具体地,第一设备102获取参与联邦学习的至少一个第二设备104的反馈信息,然后第一设备102根据至少一个第二设备104的反馈信息更新至少一个第二设备104的训练数据。

其中,更新后的训练数据中至少有一部分数据是来自于第一设备的共享数据集中的共享数据,这些共享数据具有相同的数据分布,因此,减少了至少一个第二设备的训练数据的分布差异,提升了联邦学习效果。并且,该方法考虑了第二设备的差异,采用差异化方式下发共享数据,使得第二设备能够根据更新后的训练数据进行针对性训练,提高了模型预测精度和模型训练效率。

上述方法可以应用于如图1所示的联邦学习系统中。如图2所示,联邦学习系统可以部署在云环境,具体为云环境上的多个计算设备(例如:中心服务器)。该联邦学习系统也可以部署在边缘环境中,具体为边缘环境中的多个计算设备(边缘计算设备)上,边缘计算设备可以为服务器、计算盒子等。云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群;边缘环境指示在地理位置上距离端设备(即端侧设备)较近的,用于提供计算、存储、通信资源的边缘计算设备集群。

在一些实现方式中,联邦学习系统还可以部署在端设备上。具体地,联邦学习系统中的第一设备102、第二设备104可以分别部署在不同的端设备上。端设备包括但不限于台式机、笔记本电脑、智能手机等用户终端。

如图2所示,联邦学习系统包括多个部分(例如第一设备102和至少一个第二设备104),因此,联邦学习系统的各个部分也可以分布式地部署在不同环境中。例如,可以在云环境、边缘环境、端设备中的三个环境,或其中任意两个环境上分别部署联邦学习系统的一部分。在一些实现方式中,第一设备102可以是云环境中的一个中心服务器,至少一个第二设备104可以是边缘环境中的至少一个边缘设备。

为了使得本申请的技术方案更加清楚,下面将结合一交互实施例对本申请实施例提供的联邦学习系统中共享数据的方法进行详细说明。

参见图4所示的联邦学习系统中共享数据的方法的流程图,该方法包括:

S402:至少一个第二设备104向第一设备102发送反馈信息。

反馈信息是指第二设备104反馈的、能够表征该第二设备104的状况的信息。

在一些实现方式中,第二设备104的状况可以是指第二设备104的硬件配置状况,如处理器、存储器、网卡等硬件配置状况。基于此,反馈信息可以是第二设备104的配置信息。配置信息可以包括算力(运算能力)、存储容量、通信状态等信息中的一种或多种。进一步地,配置信息还可以包括空闲状态,该空闲状态用于表征上述硬件资源时空闲或者被占用。

在另一些实现方式中,第二设备104的状况也可以是第二设备104训练的模型的状况。基于此,反馈信息也可以是第二设备104训练的模型的属性信息。模型的属性信息包括模型构建参数、模型精度和/或模型性能。模型构建参数可以是用于构建模型的参数,例如可以是模型梯度、模型权重等等。模型精度可以包括准确率、召回率、精确度中的任意一种或多种。模型性能可以包括模型训练时间等等。

联邦学习系统中的至少一个第二设备104参与联邦学习时,该第二设备104向第一设备102上报反馈信息。需要说明的是,第二设备104向第一设备102上报反馈信息仅仅是第一设备102获取第二设备104的反馈信息的一种具体实现方式。在本申请实施例其他可能的实现方式中,第一设备102可以通过其他方式获得反馈信息。例如,第二设备104也可以在区块链网络中共享反馈信息,第一设备102从区块链网络中获取上述反馈信息。

S404:第一设备102根据至少一个第二设备104的反馈信息获得至少一个第二设备104的目标数据。

其中,至少一个第二设备104的目标数据是共享数据集中与该至少一个第二设备的反馈信息匹配的数据。不同第二设备104的反馈信息可以是不同的,因此,基于该反馈信息匹配所得的数据也可以是不同的,即不同第二设备104的目标数据可以是不同的。

针对参与联邦学习的第二设备104,第一设备102可以根据其反馈信息从共享数据集中筛选数据,获得该第二设备104的目标数据。考虑到第二设备104可能存在通信状态不佳、存储容量不足、算力不足或者处于非空闲状态的情况,或者第二设备104训练的模型已具有较高精度、较好性能的情况,第一设备102也可以不筛选数据。也即,第一设备102可以根据反馈信息决定是否筛选目标数据,从而决定是否根据目标数据更新第二设备104的训练数据。当第一设备102决定更新第二设备104的训练数据时,执行上述筛选操作获得目标数据。

在一些实现方式中,第一设备102可以配置预设条件。当至少一个第二设备104的反馈信息满足上述预设条件时,第一设备102决定根据目标数据更新第二设备104的训练数据。

为了便于理解,下面结合一具体示例进行说明。在一些示例中,预设条件可以为如下所示的条件中的至少一个:设备处于空闲状态,传输时延不超过预设时长(表征通信状况良好),运算能力大于运算能力阈值,存储容量大于存储容量阈值。基于此,至少有一个第二设备104的反馈信息满足上述预设条件时,第一设备102可以决定更新该第二设备104的训练数据。

考虑到不同第二设备的空闲状态、通信状况、运算能力和/或存储容量的差异,第二设备104可以在决定更新第二设备104的训练数据后,根据反馈信息确定出需要更新的数据的数量。基于此,第一设备102可以根据需要更新的数据的数量,获得第二设备104的目标数据。

S406:第一设备102向至少一个第二设备104发送对应的目标数据。

具体地,第一设备102向至少一个第二设备104发送对应的目标数据,从而实现更新第二设备104的训练数据。其中,第二设备104的训练数据在更新后包括上述目标数据和私有数据集。

上述S404至S406仅仅是第一设备102根据至少一个第二设备104的反馈信息更新至少一个第二设备104的训练数据的一种实现方式,第一设备102也可以通过其他方式共享数据,以更新至少一个第二设备104的训练数据。

在一些实现方式中,第一设备102也可以向至少一个第二设备发送目标数据的标识,至少一个第二设备104根据该标识获取目标数据,例如从第二设备104本地或者从第三方平台获取目标数据,以更新至少一个第二设备104的训练数据。由于仅需发送目标数据的标识,无需发送目标数据,大幅减少了第一设备102需要传输的数据量,减少了第一设备102对网络资源的占用,降低了第一设备102的通信压力,提高了传输效率。

进一步地,为了减少第二设备104的通信压力,第二设备104可以预先存储共享数据集中的部分样本数据或全部样本数据。然后,第一设备102可以通过向至少一个第二设备104发送目标数据的标识,至少一个第二设备104根据该标识从本地获取目标数据,从而更新至少一个第二设备104的训练数据。

需要说明的是,在进行联邦学习时,第二设备104往往需要进行多轮迭代训练。为此,第一设备102可以根据反馈信息动态更新至少一个第二设备104的训练数据。对应地,第二设备104根据每一轮更新的数据进行迭代训练。

考虑到第一设备102在当前轮次更新的至少一个第二设备104的训练数据可能在该轮次之前已更新,第一设备102还可以记录至少一个第二设备104持有的数据的标识,例如至少一个第二设备104持有的、来自于共享数据集的样本数据的标识。如此,第一设备102可以根据至少一个第二设备104持有的数据的标识,通过增量更新方式更新至少一个第二设备104的训练数据,从而避免重复下发目标数据或者目标数据的标识,进一步提高传输效率。

基于上述内容描述,本申请实施例提供了一种联邦学习系统中共享数据的方法。具体地,第一设备102获取参与联邦学习的至少一个第二设备104的反馈信息,然后第一设备102根据至少一个第二设备104的反馈信息更新至少一个第二设备104的训练数据。第一设备102考虑了第二设备104的差异,采用差异化方式下发共享数据,使得第二设备104能够根据目标数据进行针对性训练,提高了模型精度和训练效率。

在一些实现方式中,为了提高模型精度,降低模型预测错误的几率,第二设备104还可以针对当前训练过程中预测错误的样本数据,在后续训练过程中给予更高的关注。即第二设备104还可以根据预测错误的样本数据进行再训练,如此可以使得训练过程更具有针对性,提高模型精度和训练效率。

其中,预测错误的样本数据为共享数据集中的数据。第一设备102可以为参与联邦学习的第二设备104创建模型副本,第一设备102通过模型副本对共享数据集中的样本数据进行预测,获得预测错误的样本数据,然后下发至对应的第二设备104。

为了便于理解,下面结合一具体实施例进行详细说明。

参见图5所示的联邦学习系统中共享数据的方法的流程图,该方法包括:

S502:第一设备102和至少一个第二设备104搭建环境。

在进行联邦学习时,通常需要预先搭建训练环境。训练环境是指训练模型、测试算法的平台。在具体实现时,第一设备102和至少一个第二设备104可以通过开源的工具包搭建环境。例如,第一设备102和至少一个第二设备104可以通过开源人工智能(open AI)的工具包horovod、基于tensor flow的分布式环境搭建工具等搭建联邦学习环境。

S504:第一设备102根据共享数据集对模型进行预训练,得到初始模型。

具体地,第一设备102可以构建模型架构,然后对模型架构进行参数初始化,接着第一设备102可以将共享数据集中的样本数据输入模型,根据模型的输出对模型参数进行优化,从而实现对模型进行预训练。经过预训练的模型可以作为初始模型,提供给至少一个第二设备104,以便第二设备104利用自身持有的数据对该初始模型进行再训练。

S506:第一设备102接收至少一个第二设备104发送的配置信息。

其中,第二设备104的配置信息包括空闲状态、通信状态、运算能力、存储容量中的一种或多种。

S508:第一设备102向至少一个第二设备104发送初始模型和初始数据。

具体地,第一设备102可以从共享数据集中随机采样若干数据作为初始数据,将该初始模型和初始数据下发至第二设备104进行模型训练。考虑到不同设备104的配置信息如空闲状态、通信状态、运算能力、存储容量可以是不同的,第一设备102可以采样与上述配置信息相匹配的数量的数据作为初始数据。

需要说明的是,上述S502至S508为联邦学习的预处理过程,执行联邦学习系统中共享数据的方法也可以不执行上述步骤。例如,第一设备102、第二设备104可以直接获取同一个预训练的模型作为初始模型。

S510:第一设备102选定全部或部分第二设备104,启动模型训练。

具体地,第一设备102可以根据第二设备104的配置信息选定全部或部分第二设备104,启动模型训练。例如,第一设备102可以选定处于空闲状态、通信状况良好、运算能力强、存储容量大的第二设备104,启动模型训练。

S512:第一设备102和第二设备104分别进行模型训练。

第一设备102和第二设备104分别基于各自持有的数据对初始模型进行训练。具体地,第一设备102基于共享数据集对该第一设备102上的初始模型进行训练,第二设备104基于私有数据集和第一设备102下发的目标数据进行模型训练。

S514:至少一个第二设备104向第一设备102上传至少一个第二设备104训练的模型的属性信息。

其中,模型的属性信息可以包括模型构建参数、模型精度、模型性能中的任意一种或多种。模型构建参数可以是用于构建模型的参数,例如可以是模型梯度、模型权重等等。模型精度可以包括准确率、召回率、精确度中的任意一种或多种。模型性能可以包括模型训练时间等等。

S516:第一设备102根据配置信息或模型性能、模型精度判断是否更新第二设备104的训练数据。若是,则执行S518,若否,则执行S524。

具体地,第一设备102根据参与联邦学习的第二设备104的配置信息、第二设备104训练模型的性能和/或精度确定是否更新第二设备104的训练数据。例如,配置信息表征第二设备104处于空闲状态、通信状态良好、运算能力高、存储容量大,或者第二设备104训练模型的训练时间长、精度低时,第一设备102可以确定更新第二设备104的训练数据。

S518:第一设备102根据第二设备104上传的模型构建参数确定第二设备104训练的模型对应的模型副本。

具体地,第一设备102可以根据初始模型为各第二设备104训练的模型创建对应的模型副本,当接收到第二设备104上传的模型梯度或者模型权重等模型构建参数时,第一设备102根据该模型构建参数更新模型副本,从而得到与第二设备104训练的模型对应的模型副本。

S520:第一设备102通过模型副本对共享数据集中的样本数据进行预测,获得预测错误的样本数据。

具体地,第一设备102可以通过至少一个第二设备104的模型副本,随机地对共享数据集中的样本数据进行预测,获得至少一个第二设备104的模型副本预测错误的样本数据。在一些实现方式中,第一设备102也可以从共享数据集中随机采用部分数据作为验证集,通过至少一个第二设备104的模型副本对验证集中的样本数据进行预测,筛选出预测错误的样本数据。

需要说明,上述S516至S520仅仅是第一设备102根据反馈信息获得第二设备104的目标数据的一种实现方式,在本申请实施例其他可能的实现方式中,也可以通过其他方式获得第二设备104的目标数据。例如,第一设备102可以根据算力、通信状态、存储容量、空闲状态、模型性能和模型精度等反馈信息中的一种或多种确定目标数据的数量,然后根据该数量从共享数据集中随机选择数据,获得第二设备104的目标数据。

S522:第一设备102向第二设备104发送与第二设备104对应的、预测错误的样本数据。

第一设备102向至少一个第二设备104发送与该第二设备104对应的、预测错误的样本数据,以更新第二设备104的训练数据。第二设备104的训练数据在更新后包括预测错误的样本数据和私有数据集。也即目标数据包括上述预测错误的样本数据,第一设备102根据该目标数据实现对第二设备104的训练数据的更新。

S524:第一设备102根据至少一个第二设备104上传的模型构建参数进行聚合,以更新模型。

第一设备102可以对至少一个第二设备104上传的模型构建参数(例如模型梯度)进行平均(如加权平均),从而实现模型构建参数聚合。第一设备102可以根据训练后的模型以及聚合后的模型构建参数更新模型。

需要说明,上述S524和S516至S522的执行顺序可以根据实际需求而设定,例如可以同时执行,也可以先执行S524,再执行上述S516至S522,或者可以按照先后顺序执行S516至S524。

S526:第一设备102向至少一个第二设备104发送更新后的模型,然后基于更新后的模型和数据重新执行S510。

第一设备102还向至少一个第二设备104发送更新后的模型,如此,第一设备102和至少一个第二设备104上的模型均为更新后的模型。第一设备102可以基于更新后的模型重新执行S510,从而进行下一轮迭代训练。

基于上述内容描述,本申请实施例提供了一种联邦学习系统中共享数据的方法。在该方法中,第一设备102可以根据不同第二设备104的训练效果,针对性地筛选该设备104上的模型容易预测错误的样本进行模型训练,从而提高该第二设备104训练模型的精度。并且,通过针对性地筛选预测错误的样本数据传输给第二设备104,可以减少不必要的数据传输,提高传输效率,降低通信需求。

图5所示实施例主要是通过向第二设备104发送目标数据以更新第二设备104的训练数据。在一些实现方式中,第一设备102也可以向第二设备104发送目标数据的标识,以更新第二设备104的训练数据。下面结合具体实施例进行详细说明。

参见图6所示的联邦学习系统中共享数据的方法的流程图,该方法包括:

S602:第一设备102根据共享数据集对模型进行预训练,得到初始模型。

S604:第一设备102接收至少一个第二设备104发送的配置信息。

其中,S602和S604的具体实现可以参见图5所示实施例中S504、S506相关内容描述,在此不再赘述。

S606:第一设备102向至少一个第二设备104发送初始模型和共享数据集中的部分样本数据或全部样本数据。

具体地,第一设备102根据至少一个第二设备104的配置信息,预先向至少一个第二设备104发送共享数据集中的部分样本数据或全部样本数据。当第二设备104的配置信息表征存储容量足够大时,第一设备102可以向该第二设备104发送共享数据集中的全部样本数据。当第二设备104的配置信息表征存储容量较小时,第一设备102可以尽可能地向第二设备104发送较多的样本数据。

S607:第一设备102记录下发到至少一个第二设备104的样本数据的标识,至少一个第二设备104记录有该第二设备104所持有的共享数据的标识。

S608:第一设备102根据至少一个第二设备104持有的样本数据的标识,指定至少一个第二设备104参与训练的共享样本数据的标识,并向对应的第二设备104发送参与训练的共享样本数据的标识,第二设备104记录参与训练的共享样本数据的标识。

S610:第一设备102选定全部或部分第二设备104,启动模型训练。

S612:第一设备102和第二设备104分别进行模型训练。

其中,第二设备104具体是根据参与训练的共享样本数据的标识,获得共享样本数据,然后根据共享样本数据和私有数据集进行模型训练。

S614:至少一个第二设备104向第一设备102上传模型的属性信息。

S616:第一设备102根据配置信息或模型性能、模型精度判断是否更新第二设备104的训练数据。若是,则执行618,若否,则执行S624。

其中,S614、S616的具体实现可以参见图5所示实施例中S514、S516相关内容描述,在此不再赘述。

S618:第一设备102确定第二设备104的目标数据,该目标数据为共享数据集中的数据。

具体地,第一设备102可以从共享数据集中确定第二设备104上的模型容易预测错误的样本数据作为目标数据。在一些实现方式中,第一设备102也可以根据第二设备104的空闲状态、通信状态、运算能力、存储容量、模型精度、模型性能中的一种或多种,随机地从共享数据集中选择相应数量的数据作为目标数据。

S620:第一设备102根据记录的预先下发至第二设备104的共享样本数据的标识和目标数据,通过增量更新方式更新下发至第二设备104的共享样本数据,第二设备104记录更新后的共享样本数据的标识。

具体地,当第一设备102确定的第二设备104的目标数据在第二设备104中不存在时,第一设备102将不存在的目标数据下发至对应的第二设备104,从而实现对下发至第二设备104的共享样本数据的增量更新。对应地,第二设备104记录更新后的共享样本数据的标识。

S622:第一设备102根据目标数据的标识,采用增量更新方式更新第二设备104参与训练的共享样本数据的标识,第二设备104记录更新后的、参与训练的共享样本数据的标识。

具体地,第一设备102指定有至少一个第二设备104参与训练的共享样本数据的标识,第一设备102比较目标数据的标识和指定的第二设备104参与训练的共享样本数据的标识,将目标数据的标识中包括的标识,而参与训练的共享样本数据的标识中不包括的标识发送至对应的第二设备104,从而实现对参与训练的共享样本数据的标识的增量更新。对应地,第二设备104记录更新后的、参与训练的共享样本数据的标识。

在一些实现方式中,执行联邦学习系统中共享数据的方法也可以不执行S606中下发共享数据集中部分或全部样本数据的步骤。例如,至少一个第二设备104接收到目标数据的标识时,也可以根据目标数据的标识从第三方平台获取目标数据。

S624:第一设备102根据至少一个第二设备104上传的模型梯度进行梯度聚合,以更新模型。

S626:第一设备102向至少一个第二设备104发送更新后的模型,然后基于更新后的模型和数据重新执行S610。

其中,S624、S626的具体实现可以参见图5所示实施例中S524、S526相关内容描述,在此不再赘述。

基于上述内容描述,本申请实施例提供了一种联邦学习系统中共享数据的方法。该方法支持根据第二设备104的存储能力,尽可能多地在第二设备104预先存储共享数据集中的部分样本数据或全部样本数据,第一设备102记录至少一个第二设备104持有的共享样本数据的标识,在需要更新训练数据时,通过增量更新方式更新第二设备104的训练数据以减少第一设备102和第二设备104的通信压力。

上文结合图1至图6对本申请实施例提供的联邦学习系统中共享数据的方法进行了详细介绍,下面将结合附图对本申请实施例提供的装置、设备进行介绍。

参见图7所示的联邦学习系统中共享数据的装置的结构示意图,该装置700包括:

通信模块702,用于获取至少一个第二设备的反馈信息;

更新模块704,用于根据至少一个第二设备的反馈信息更新至少一个第二设备的训练数据。

在一些可能的实现方式中,更新模块704具体用于:

根据至少一个第二设备的目标数据更新至少一个第二设备的训练数据,至少一个第二设备的目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配的数据。

在一些可能的实现方式中,更新模块704具体用于:

至少一个第二设备的反馈信息满足预设条件时,根据至少一个第二设备的反馈信息更新至少一个第二设备的训练数据。

在一些可能的实现方式中,反馈信息包括第二设备的配置信息或第二设备训练的模型的属性信息。

在一些可能的实现方式中,模型的属性信息包括模型构建参数;

更新模块704具体用于:

根据模型构建参数构建至少一个第二设备训练的模型对应的模型副本;

通过模型副本对共享数据集中的样本数据进行预测,获得预测错误的样本数据;

根据预测错误的样本数据更新至少一个第二设备的训练数据。

在一些可能的实现方式中,配置信息包括算力、通信状态、存储容量、空闲状态中的一种或多种,模型的属性信息包括模型性能和模型精度中的一种或多种;

更新模块704具体用于:

根据算力、通信状态、存储容量、空闲状态、模型性能和模型精度中的一种或多种确定至少一个第二设备对应的训练数据的数量;

根据至少一个第二设备对应的训练数据的数量,更新至少一个第二设备的训练数据。

在一些可能的实现方式中,更新模块704具体用于:

向至少一个第二设备发送第一标识,至少一个第二设备的训练数据在更新后包括至少一个第二设备根据第一标识获取的数据。

在一些可能的实现方式中,第一设备记录有第二标识,该第二标识具体为至少一个第二设备持有的数据的标识;

更新模块704具体用于:

根据第二标识标识以及至少一个第二设备的反馈信息,通过增量更新方式更新至少一个第二设备的训练数据。

根据本申请实施例的联邦学习系统中共享数据的装置700可对应于执行本申请实施例中描述的方法,并且联邦学习系统中共享数据的装置700的各个模块/单元的上述和其它操作和/或功能分别为了实现图4至图6所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。

本申请实施例还提供了另一种联邦学习系统中共享数据的装置。参见图8所示的联邦学习系统中共享数据的装置的结构示意图,装置800包括:

生成模块802,用于生成至少一个第二设备的反馈信息;

通信模块804,用于向第一设备发送反馈信息,反馈信息用于第一设备更新至少一个第二设备的训练数据。

在一些可能的实现方式中,通信模块804还用于:

接收第一设备发送的目标数据,目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配的数据。

在一些可能的实现方式中,通信模块804还用于:

接收第一设备发送的目标数据的标识,目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配的数据;

根据目标数据的标识获取目标数据。

在一些可能的实现方式中,第一设备记录有至少一个第二设备持有的数据的标识;

目标数据为第一设备的共享数据集中与至少一个第二设备的反馈信息匹配,且至少一个第二设备不持有的数据。

根据本申请实施例的联邦学习系统中共享数据的装置800可对应于执行本申请实施例中描述的方法,并且联邦学习系统中共享数据的装置800的各个模块/单元的上述和其它操作和/或功能分别为了实现图4至图6所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。

本申请实施例还提供了一种设备。该设备可以是笔记本电脑、台式机等端侧设备,也可以是云环境或边缘环境中的计算机集群。该设备具体用于实现如图7所示实施例中联邦学习系统中共享数据的装置700的功能。

图9提供了一种设备900的结构示意图,如图9所示,设备900包括总线901、处理器902、通信接口903和存储器904。处理器902、存储器904和通信接口903之间通过总线901通信。

总线901可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器902可以为中央处理器(central processing unit,CPU)。存储器904可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器904还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,HDD或SSD。

通信接口903用于与外部通信。例如,获取指示一个第二设备104的反馈信息、向至少一个第二设备104发送目标数据,或者向至少一个第二设备104发送目标数据的标识等等。

存储器904中存储有可执行代码,处理器902执行该可执行代码以执行前联邦学习系统中共享数据的方法。

具体地,在实现图7所示实施例的情况下,且图7实施例中所描述的联邦学习系统中共享数据的装置700的各模块为通过软件实现的情况下,执行图7中的更新模块704功能所需的软件或程序代码存储在存储器904中。通信模块功能通过通信接口903实现。通信接口903接收至少一个第二设备104的反馈信息,将其通过总线901传输至处理器902,处理器902执行存储器904中存储的各模块对应的程序代码,如更新模块704对应的程序代码,以执行根据至少一个第二设备的反馈信息更新至少一个第二设备的训练数据的步骤。

在一些实现方式中,处理器902可以执行更新模块704对应的程序代码,以执行下述方法步骤:

根据至少一个第二设备的目标数据更新至少一个第二设备的训练数据。

在一些实现方式中,处理器902可以执行更新模块704对应的程序代码,以执行下述方法步骤:

根据模型构建参数构建至少一个第二设备训练的模型对应的模型副本;

第一设备通过模型副本对共享数据集中的样本数据进行预测,获得预测错误的样本数据;

第一设备根据预测错误的样本数据更新至少一个第二设备的训练数据。

在一些实现方式中,处理器902可以执行更新模块704对应的程序代码,以执行下述方法步骤:

根据算力、通信状态、存储容量、空闲状态、模型性能和模型精度中的一种或多种确定至少一个第二设备对应的训练数据的数量;

根据至少一个第二设备对应的训练数据的数量,更新至少一个第二设备的训练数据。

本申请实施例还提供了一种设备。该设备可以是笔记本电脑、台式机等端侧设备,也可以是云环境或边缘环境中的计算机集群。该设备具体用于实现如图8所示实施例中联邦学习系统中共享数据的装置800的功能。

图10提供了一种设备1000的结构示意图,如图9所示,设备1000包括总线1001、处理器1002、通信接口1003和存储器1004。处理器1002、存储器1004和通信接口1003之间通过总线1001通信。

具体地,在实现图8所示实施例的情况下,且图8实施例中所描述的联邦学习系统中共享数据的装置800的各模块为通过软件实现的情况下,执行图8中的生成模块802功能所需的软件或程序代码存储在存储器1004中。通信模块功能通过通信接口1003实现。

处理器1002执行存储器1004中存储的各模块对应的程序代码,如生成模块804对应的程序代码,以执行生成至少一个第二设备104的反馈信息的步骤,然后通信接口1003将该反馈信息发送至第一设备102,以便第一设备102根据该第二设备104的反馈信息更新该第二设备104训练数据。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号