一种确定模型参数的方法及装置与流程

文档序号:17290933发布日期:2019-04-03 03:57阅读:204来源:国知局
一种确定模型参数的方法及装置与流程

本申请涉及数据处理技术领域,尤其涉及一种确定模型参数的方法及装置。



背景技术:

现阶段,随着人工智能技术的深入发展,采用机器学习方法对模型进行训练逐渐成为算法开发领域的热门研究方向。具体地说,开发人员通常可以在客户端设备上开发可以用于训练模型的算法,并使用该算法对存储在客户端设备上的用于训练模型的私有数据进行处理,得到模型参数。然而,该种方法依赖于客户端设备的处理性能,对于比较复杂的算法或者处理量比较大的数据,若客户端设备的处理性能不够,可能会使得算法的运行时间较长,从而导致算法的运行效率较低,模型训练效果较差。

为了提高算法的运行效率,得到比较好的模型训练效果,很多科研机构通常会构建专属的机器学习算法集群,并采用专属的机器学习算法集群中的多个客户端设备对私有数据进行训练。采用该种方法,虽然能够保证客户端设备的处理性能满足要求,但是构建专属的机器学习算法集群需要耗费大量的人力和物力,使得开发的成本较高;且,由于专属的机器学习算法集群可能并不能够被其他的科研机构所使用,因此可能会使得不同的科研机构构建不同的机器学习算法集群,从而造成资源的浪费。

综上,目前亟需一种确定模型参数的方法,用于解决采用现有技术构建专属的机器学习算法集群确定模型参数所导致的成本较高、资源浪费的技术问题。



技术实现要素:

本申请实施例提供一种确定模型参数的方法,用于解决采用现有技术构建专属的机器学习算法集群确定模型参数所导致的成本较高、资源浪费的技术问题。

本申请实施例提供的一种确定模型参数的方法,包括:

客户端设备获取用于训练模型的数据集合和用于训练模型的算法;

所述客户端设备根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从所述w个计算节点中选择n个计算节点;所述w个计算节点中每个计算节点的第一属性信息包括所述计算节点的在线稳定性、存储性能、存储成本、数据最长保存时间中的一项或多项;

所述客户端设备将所述数据集合分别发送给所述n个计算节点,并在接收到所述n个计算节点中的m个计算节点分别发送的已成功存储所述数据集合的指示信息后,根据所述m个计算节点中每个计算节点的第二属性信息,从所述m个计算节点中选择k个计算节点;所述m个计算节点中每个计算节点的第二属性信息包括所述计算节点的在线稳定性、计算性能、计算成本、所述计算节点的计算结果可信度中的一项或多项;

所述客户端设备将所述算法和所述数据集合的标识发送给所述k个计算节点,以使所述k个计算节点分别使用所述数据集合中的数据和所述算法对所述模型进行训练;

所述客户端设备获取所述k个计算节点中的p个计算节点对应的所述数据集合的训练结果,并根据所述数据集合的训练结果,得到模型参数;

其中,w≥n≥m≥k≥p,p≥2,w、n、m、k、p均为整数。

可选地,所述客户端设备获取所述k个计算节点中的p个计算节点对应的所述数据集合的训练结果之后,还包括:

所述客户端设备对所述p个计算节点对应的所述数据集合的训练结果进行分析,若确定所述p个计算节点中存在训练结果不可信的第一计算节点,则向区块链系统发送第一信息,所述第一信息用于指示所述区块链系统对所述第一计算节点的计算结果可信度进行更新。

可选地,所述客户端设备将所述数据集合分别发送给所述n个计算节点,包括:

所述客户端设备采用第二计算节点的公钥对所述数据集合进行加密,并将加密后的数据集合发送给所述第二计算节点,所述第二计算节点为所述n个计算节点中的任一计算节点。

可选地,所述方法还包括:

所述客户端设备将第一收入分配策略分别发送给所述n个计算节点,所述第一收入分配策略包括存储所述数据集合所需时长最短的m个计算节点所能得到的收入;和/或,

所述客户端设备将第二收入分配策略分别发送给所述k个计算节点,所述第二收入分配策略包括训练模型所需时长最短的p个计算节点所能得到的收入。

本申请实施例提供的一种确定模型参数的方法,包括:

区块链系统中的计算节点接收客户端设备发送的用于训练模型的数据集合,并在所述数据集合存储成功后,向所述客户端设备发送已成功存储所述数据集合的指示信息;

所述计算节点接收所述客户端设备发送的用于训练模型的算法和所述数据集合的标识;

所述计算节点根据所述数据集合的标识,获取所述计算节点中存储的所述数据集合,使用所述数据集合中的数据和所述算法对所述模型进行训练,并向所述客户端设备发送已得到训练结果的指示信息。

可选地,所述计算节点接收到的数据集合为加密后的数据集合;

所述计算节点使用所述数据集合中的数据和所述算法对所述模型进行训练之前,还包括:

所述计算节点使用所述计算节点的私钥对所述加密后的数据集合进行解密。

可选地,所述计算节点根据所述数据集合的标识,获取存储的所述数据集合之前,还包括:

所述计算节点根据所述集合的标识,确定所述数据集合的保存期限未过期。

可选地,所述方法还包括:

所述计算节点根据所述集合的标识,若确定所述数据集合的保存期限已过期,则向所述客户端设备返回获取所述数据集合失败的指示信息。

本申请实施例提供一种客户端设备,该客户端设备包括:

获取模块,用于获取用于训练模型的数据集合和用于训练模型的算法;

处理模块,用于根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从所述w个计算节点中选择n个计算节点;所述w个计算节点中每个计算节点的第一属性信息包括所述计算节点的在线稳定性、存储性能、存储成本、数据最长保存时间中的一项或多项;

将所述数据集合分别发送给所述n个计算节点,并在接收到所述n个计算节点中的m个计算节点分别发送的已成功存储所述数据集合的指示信息后,根据所述m个计算节点中每个计算节点的第二属性信息,从所述m个计算节点中选择k个计算节点;所述m个计算节点中每个计算节点的第二属性信息包括所述计算节点的在线稳定性、计算性能、计算成本、所述计算节点的计算结果可信度中的一项或多项;

将所述算法和所述数据集合的标识发送给所述k个计算节点,以使所述k个计算节点分别使用所述数据集合中的数据和所述算法对所述模型进行训练;

所述获取模块,还用于获取所述k个计算节点中的p个计算节点对应的所述数据集合的训练结果,并根据所述数据集合的训练结果,得到模型参数;

其中,w≥n≥m≥k≥p,p≥2,w、n、m、k、p为整数。

本申请实施例提供一种计算节点,该计算节点包括:

收发模块,用于接收客户端设备发送的用于训练模型的数据集合,并在所述数据集合存储成功后,向所述客户端设备发送已成功存储所述数据集合的指示信息;

接收所述客户端设备发送的用于训练模型的算法和所述数据集合的标识;

处理模块,用于根据所述数据集合的标识,获取所述计算节点中存储的所述数据集合,使用所述数据集合中的数据和所述算法对所述模型进行训练;

所述收发模块,还用于:向所述客户端设备发送已得到训练结果的指示信息。

本申请的上述实施例中,客户端设备可以根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从w个计算节点中选择n个计算节点,并将数据集合分别发送给n个计算节点;n个计算节点中的任一个计算节点在成功存储数据集合后,可以向客户端设备发送已成功存储数据集合的指示信息,使得客户端设备在接收到n个计算节点中的m个计算节点分别发送的指示信息后,根据m个计算节点中每个计算节点的第二属性信息,从m个计算节点中选择k个计算节点,并将算法和数据集合的标识分别发送给k个计算节点;k个计算节点中的任一个计算节点根据数据集合的标识,获取计算节点中存储的数据集合,使用数据集合中的数据和算法对模型进行训练,并向客户端设备发送已得到训练结果的指示信息;客户端设备获取k个计算节点中的p个计算节点对应的数据集合的训练结果,并根据数据集合的训练结果,得到模型参数。本申请实施例中,通过采用区块链系统中的计算节点训练模型,可以无需构建专属的机器学习算法群,从而可以节省成本,减少资源的浪费;且,通过选择区块链系统中具有较强存储能力和处理能力的计算节点运行算法,可以保证算法的处理速度,提高模型的训练效率,进而得到较好的模型训练效果;由于区块链系统可以存储并更新每个计算节点的在线稳定性,平均历史处理时间和节点的计算结果可信度等信息,从而可以避免客户端设备和/或计算节点在模型训练的过程中进行造假,使得模型训练的过程变得公开、透明,进而能够有效地保证用户的权利。此外,用于训练模型的数据集合可以为私有数据,通过采用计算节点的公钥对数据集合进行加密,可以保证在发送数据集合的过程中,数据集合不会被其他计算节点和/或其他客户端设备所窃取,从而可以保证数据集合的安全。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例适用的一种系统架构示意图;

图2为本申请实施例中一种确定模型参数的方法对应的流程示意图;

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

图4为本申请实施例提供的一种计算节点的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

图1为本申请实施例适用的一种系统架构示意图,如图1所示,该系统架构中可以包括区块链网络中的一个或多个计算节点(比如图1所示意出的计算节点101、计算节点102、计算节点103和计算节点104)和客户端设备200。其中,区块链网络中的一个或多个计算节点可以共同维护区块链网络。客户端设备200可以通过接入网络而与区块链网络中的一个或多个计算节点进行通信。

本申请实施例中,区块链网络可以是由多个计算节点组成的点对点(peertopeer,p2p)网络。p2p是一种运行在传输控制协议(transmissioncontrolprotocol,tcp)协议之上的应用层协议,在区块链网络中的计算节点可以彼此对等,网络中不存在中心计算节点,因此每个计算节点都可以随机地连接其它计算节点。

具体实施中,区块链网络中的计算节点可以具有多种功能,比如,路由功能、交易功能、区块链功能和共识功能等。具体地说,区块链网络中的计算节点可以把其他计算节点传送过来的交易数据等信息传送给更多的计算节点以实现计算节点之间的通信;或者,区块链网络中的计算节点可以用于支持用户进行交易;或者,区块链网络中的计算节点可以用于记录历史上的所有交易;或者,区块链网络中的计算节点可以通过验证和记录交易生成区块链中的新区块。实际应用中,路由功能是区块链网络中的每个计算节点必须具有的功能,而其它功能可由本领域技术人员根据实际需要进行设置。

本申请实施例中,区块链网络中的一个计算节点可以在一台物理机(服务器)上,且一个计算节点具体可以是指服务器中运行的一个进程或者一系列进程。比如,区块链1网络中的计算节点101可以为一个服务器上运行的一个进程。

需要说明的是,本申请中所描述的计算节点可以是指计算节点所在的服务器。

基于图1所示意的系统架构,图2为本申请实施例提供的一种确定模型参数的方法对应的流程示意图,该方法包括:

步骤201,客户端设备获取用于训练模型的数据集合和用于训练模型的算法。

此处,用于训练模型的数据集合中可以包括私有数据,私有数据是指未在网络上公开的数据,即无法通过搜索网络的方式来获取。通常情况下,私有数据可以为用户标注的数据,或者也可以为用户处理的数据。进一步地,用于训练模型的算法可以包括用户编写的代码程序,或者也可以为用户通过其他方式获取到的算法(比如用户通过网络下载),本申请实施例对此不做限定。

本申请实施例中,客户端设备获取数据集合和算法的方式可以有多种。在一个示例中,数据集合和算法可以预先存储在客户端设备的硬盘中(或者也可以存储于内部存储器中),如此,客户端设备可以从硬盘直接获取到数据集合和算法;在又一个示例中,客户端设备可以向设备a发送用于请求数据集合和算法的请求消息,并接收设备a返回的响应消息,该响应消息中包括数据集合和算法,如此,客户端设备可根据响应消息获取到数据集合和算法;在又一个示例中,客户端设备可以从硬盘直接获取到数据集合,以及从其他设备(比如设备a)获取算法。本申请实施例对此不做限定。

步骤202,所述客户端设备根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从所述w个计算节点中选择n个计算节点。

此处,w个计算节点中每个计算节点的第一属性信息可以包括计算节点的在线稳定性、存储性能、存储成本、数据最长保存时间中的一项或多项。可选地,每个计算节点的第一属性信息还可以包括处理吞吐量和数据的历史平均存储处理时间。

本申请实施例中,客户端设备从w个计算节点中选择n个计算节点的方式可能有多种,比如,在示例1中,每个计算节点的第一属性信息可以包括计算节点的存储成本,如此,客户端设备可以根据w个计算节点中每个计算节点的存储成本,从w个计算节点中选择n个计算节点。在示例2中,每个计算节点的第一属性信息可以包括计算节点的存储成本和计算节点的数据最长保存时间,客户端设备可以根据w个计算节点中每个计算节点的存储成本和计算节点的数据最长保存时间,从w个计算节点中选择n个计算节点。在示例3中,每个计算节点的第一属性信息可以包括计算节点的在线稳定性、存储性能、存储成本、处理吞吐量、数据的历史平均存储处理时间和数据最长保存时间,如此,客户端设备可以根据w个计算节点中每个计算节点的在线稳定性、存储性能、存储成本、处理吞吐量、数据的历史平均存储处理时间和数据最长保存时间,从w个计算节点中选择n个计算节点。需要说明的是,本申请实施例中,每个计算节点的第一属性信息可以包括计算节点的在线稳定性、存储性能、存储成本、处理吞吐量、数据的历史平均存储处理时间和数据最长保存时间中的一项或多项,本申请实施例对此不做限定。

以上述示例3为例,在一种可能的实现方式中,客户端设备可以预先设置一个最高的存储成本(比如最高存储激励值为60),该存储成本可以用于指示客户端设备能够奖励给存储数据子集的计算节点的最高激励值。客户端设备可以获取区块链系统的w个计算节点中每个计算节点的存储成本,并将每个计算节点的存储成本与60进行对比,选择计算节点中存储成本不大于60的计算节点组成第一备选存储计算节点集合。举个例子,区块链系统中存在200个计算节点,其中,有180个计算节点的存储成本不大于60,则第一备选存储计算节点集合中可以有180个计算节点。需要说明的是,若w个计算节点的存储成本均大于客户端设备设置的最高的存储成本,则客户端设备可以等待某一个计算节点的存储成本下降至客户端设备设置的最高存储成本,或者客户端设备可以直接反馈给用户数据存储失败的信息。

需要说明的是,激励值可以为集群激励的一种表现形式,具体地说,即可以为客户端设备支出的、并可以用于奖励计算节点在存储客户端设备发送的数据子集(或者也可以为数据集合)和/或采用数据子集进行模型训练时所付出的成本。本申请实施例中,激励值可以为集群所有成员(此处,即区块链系统中的多个计算节点和一个或多个客户端设备)所公认的互联网或现实生活中的有价值的物体,或者也可以为集群所有成员所公认的互联网或现实生活中的一般等价物,本申请实施例对此不作具体限定。

进一步地,客户端设备可以预先设置一个最短的数据保存时间(比如3h),该数据保存时间可以用于指示客户端设备需要存储数据子集的计算节点存储数据子集的最短时间。客户端设备可以获取第一备选存储计算节点集合中每个计算节点的数据最长保存时间(比如,可以通过查询每个计算节点的历史数据保存时间获取,或者也可以通过访问区块链系统中存储的每个计算节点的信息进行获取),并将每个计算节点的数据最长保存时间与3h进行对比,选择180个计算节点中数据最长保存时间不小于3h的计算节点组成第二备选存储计算节点集合。比如,在第一备选存储计算节点集合的180个计算节点中,有150个计算节点的数据最长保存时间不小于3h,则第二备选存储计算节点集合中可以有150个计算节点。需要说明的是,若第一备选存储计算节点集合中的所有计算节点的数据最长保存时间均小于客户端设备设置的最短的数据保存时间,则客户端设备可以等待某一个计算节点的数据最长保存时间上升至客户端设备设置的最短的数据保存时间,或者客户端设备可以直接反馈给用户数据存储失败的信息。

本申请实施例中,客户端设备还可以通过与区块链系统进行交互,获取第二轮备选存储计算节点集合中每个计算节点的在线稳定性、存储性能、存储成本、处理吞吐量、数据的历史平均存储处理时间和数据最长保存时间等信息,并通过预设算法和预设指标从第二轮备选存储计算节点集合中为数据集合选择n个计算节点,其中,n大于等于2。

本申请实施例中,客户端设备通过获取每个计算节点的存储成本和数据最长保存时间,将满足客户端设备设置的最高存储成本和最短的数据保存时间的计算节点作为第二备选存储计算节点集合,使得客户端设备能够从第二备选存储计算节点中选择n个计算节点进行数据子集的存储,从而可以降低工作量,提高存储效率。

步骤203,客户端设备将数据集合分别发送给n个计算节点。

第四计算节点可以为n个计算节点中的任一计算节点,下面以第四计算节点为例来描述客户端设备将数据集合发送给第四计算节点的实现过程,客户端设备将数据集合发送给其它计算节点的实现过程可以参照第四计算节点来处理。

本申请实施例中,客户端将数据集合发送给第四计算节点的方式可以有多种,在一种可能的实现方式中,客户端设备可以采用第四计算节点的公钥对数据集合进行加密,并将加密后的数据集合发送给第四计算节点。举个例子,若客户端设备选择了计算节点j1~计算节点j12这12个计算节点保存数据集合(即n为12,假设第四计算节点为计算节点j2),则客户端设备可以将数据集合用计算节点j2的公钥进行加密,并将加密后的数据集合发送给计算节点j2。需要说明的是,本申请实施例中,数据集合可以并行发送给不同的计算节点,也就是说,数据集合可以同时发送给不同的计算节点j1、计算节点j2、……,计算节点j12,如此,可以提升数据发送的效率、节省时间。

本申请实施例中,客户端设备通过采用第四计算节点(可以为区块链系统中的任一计算节点)的公钥对数据集合进行加密,可以保证在发送数据集合的过程中,该数据集合不会被其他计算节点和/或其他客户端设备所窃取,从而可以保证数据集合的安全。也就是说,若数据集合为用户上传的私有数据,则加密后的数据集合可以被第四计算节点获取并解密,从而使得第四计算节点能够查看到用户的私有数据,同时可以避免其他计算节点和/或其他客户端设备查看到用户的私有数据。

本申请实施例中,客户端设备在向第四计算节点发送数据集合的同时,还可以发送数据保存时间(即客户端设备设定的计算节点可以保存数据集合的最长时间)和n个计算节点中m个计算节点的第一收入分配策略,其中,第一收入分配策略中可以包括存储数据集合所需时长最短的m个计算节点所能得到的奖励。举个例子,若客户端设备预先设置第一收入分配策略对应的总激励值为250,且设定接收数据集合的12个计算节点中前8个最先保存数据集合的计算节点能够得到的激励值分别为55、45、40、35、30、25、20、15(即为第一收入分配策略),则客户端设备可以将数据集合和第一收入分配策略共同发送给计算节点j2。

相应地,区块链系统中的计算节点可以接收客户端设备发送的用于训练模型的数据集合,并在数据集合存储成功后,向客户端设备发送已成功存储数据集合的指示信息。在一个示例中,在接收到客户端设备发送的数据集合后,第四计算节点可以将数据集合存储在第四计算节点对应的服务器中,并可以将第四计算节点成功保存数据集合的结果记录在区块链系统中;同时,第四计算节点还可以向客户端设备发送已成功存储数据集合的指示信息。

需要说明的是,在第四计算节点成功保存数据集合后,区块链系统可以记录第四计算节点保存数据集合的时间,并更新第四计算节点的存储性能、处理吞吐量和数据的历史平均存储处理时间等指标。进一步地,区块链系统还可以记录第四计算节点中保存的数据集合的标识和第二计算节点的标识的对应关系,比如,区块链系统中有一份记录为“[j2]-[t1]:[image]:[test]”,说明在计算节点j2中存储有客户端设备t1发送的类型为image、标识为test的数据集合。

步骤204,客户端设备在接收到n个计算节点中的m个计算节点分别发送的已成功存储数据集合的指示信息后,根据m个计算节点中每个计算节点的第二属性信息,从m个计算节点中选择k个计算节点,并将用于训练模型的算法和数据集合的标识分别发送给k个计算节点。

此处,m个计算节点中每个计算节点的第二属性信息可以包括计算节点的在线稳定性、计算性能、计算成本、计算节点的计算结果可信度中的一项或多项。可选地,每个计算节点的第二属性信息还可以包括处理吞吐量和数据的历史平均计算处理时间。

本申请实施例中,客户端设备在接收到n个计算节点中的m个计算节点分别发送的已成功存储数据集合的指示信息,并且在区块链系统网络上获取到前m个计算节点对应的数据集合的存储结果后,还可以向m个计算节点提供奖励。举个例子,根据第一收入分配策略,客户端设备可以在接收到12个计算节点中前8个计算节点分别发送的已成功存储数据集合的指示信息后(比如,接收到指示信息的顺序依次为:计算节点j8、计算节点j5、计算节点j2、计算节点j4、计算节点j12、计算节点j10、计算节点j3和计算节点j6),为计算节点j8奖励的激励值为55、为计算节点j5奖励的激励值为45、为计算节点j2奖励的激励值为40,为计算节点j4奖励的激励值为35,为计算节点j12的激励值为奖励30、为计算节点j10奖励的激励值为25,为计算节点j3奖励的激励值为20,为计算节点j6奖励的激励值为15。

本申请实施例中,客户端设备从m个计算节点中选择k个计算节点的方式可能有多种,比如,在示例4中,每个计算节点的第二属性信息可以包括计算节点的计算成本,如此,客户端设备可以根据m个计算节点中每个计算节点的计算成本,从m个计算节点中选择k个计算节点。在示例5中,每个计算节点的第一属性信息可以包括计算节点的在线稳定性、计算性能、计算成本、处理吞吐量、数据的历史平均计算处理时间和计算节点的计算结果可信度,如此,客户端设备可以根据m个计算节点中每个计算节点的在线稳定性、计算性能、计算成本、处理吞吐量、数据的历史平均计算处理时间和计算节点的计算结果可信度,从m个计算节点中选择k个计算节点。需要说明的是,本申请实施例中,每个计算节点的第一属性信息可以包括计算节点的在线稳定性、计算性能、计算成本、处理吞吐量、数据的历史平均计算处理时间和计算节点的计算结果可信度中的一项或多项,本申请实施例对此不做限定。

以上述示例5为例,在一种可能的实现方式中,客户端设备可以预先设置一个最高的计算成本(比如最高计算激励值为100,该计算成本可以用于指示客户端设备能够奖励给使用数据集合训练模型的计算节点的最高激励值。具体地,客户端设备可以获取m个计算节点中每个计算节点的计算成本,并将每个计算节点的计算成本与100进行对比,选择m个计算节点中存储成本不大于100的计算节点组成第一备选计算节点集合。比如,8个计算节点中存在5个计算节点(比如,计算节点j8、计算节点j12、计算节点j2、计算节点j3和计算节点j6)的计算成本不大于100,则第一备选计算节点集合中可以有计算节点j8、计算节点j12、计算节点j2、计算节点j3和计算节点j6这5个计算节点。需要说明的是,若8个计算节点的计算成本均大于客户端设备设置的最高的计算成本,则客户端设备可以等待某一个计算节点的计算成本下降至客户端设备设置的最高的计算成本,或者客户端设备可以直接反馈给用户模型训练失败的信息。

进一步地,客户端设备还可以通过与区块链系统进行交互,获取第一备选计算节点集合中每个计算节点的在线稳定性、计算性能、计算成本、处理吞吐量、数据的历史平均计算处理时间和算法的计算结果可信度等信息,并通过预设算法和预设指标为数据集合选择k个计算节点进行模型训练,其中,k大于等于2。

此处,算法和数据集合的标识可以并行发送给不同的计算节点,也就是说,用于训练模型的算法和数据集合的标识可以同时发送给数据集合对应的k个计算节点,如此,可以提升数据发送的效率、节省时间。

本申请实施例中,客户端设备在向k个计算节点发送算法和数据集合的标识的同时,还可以发送k个计算节点中p个计算节点的第二收入分配策略,其中,第二收入分配策略包括训练模型所需时长最短的p个计算节点所能得到的奖励。举个例子,若客户端设备为数据集合选择了3个计算节点进行模型训练(比如,计算节点j8、计算节点j12和计算节点j6),且预先设置第二收入分配策略对应的激励值为500,并设定使用数据集合进行模型训练的3个计算节点中前2个得到训练结果的计算节点能够得到的激励值分别为300、200,则客户端设备可以将用于训练模型的算法、数据集合的标识和第二收入分配策略共同发送给这3个计算节点。

相应地,k个计算节点中的任一个计算节点(比如,计算节点j8),在接收到客户端设备发送的算法和数据集合的标识后,计算节点j8可以通过与区块链系统进行通信,查询区块链系统中数据集合的标识和存储数据集合的计算节点的对应关系的记录,并获取到计算节点j8中保存的与数据集合test的标识对应的数据集合。在一个示例中,j8中保存的数据集合可以为使用计算节点j8的公钥进行加密后的数据集合,此时,计算节点j8在接收到客户端设备发送的算法和数据集合的标识后,可以首先确定第一数据集合在计算节点j8中存储的时间是否已经超过计算节点j8设置的存储时间(比如,可能因为客户端设备损坏导致采用区块链系统训练模型时,数据集合在计算节点j8上的存储时间超出客户端设备预设的最短存储时间),即判断数据集合在计算节点j8中的存储是否过期,若存储未过期,则计算节点j8可以使用计算节点j8的私钥对加密后的数据集合进行解密,得到数据集合;若存储已过期,则计算节点j8可以向客户端设备反馈模型训练失败的信息。

进一步地,在得到计算节点j8中保存的数据集合后,计算节点j8可以使用数据集合中的数据和算法对模型进行训练,得到训练结果,进而将训练结果记录在区块链系统中;同时,计算节点j8可以将成功得到训练结果的指示信息发送给客户端设备。

步骤205,客户端设备在接收到k个计算节点中的p个计算节点成功存储数据集合的指示信息后,获取k个计算节点中的p个计算节点对应的数据集合的训练结果,并根据数据集合的训练结果,得到模型参数。

在一个示例中,客户端设备可以在获取k个计算节点中的p个计算节点对应的数据集合的训练结果之前,还可以为p个计算节点中的每一个计算节点进行奖励。在一个示例中,根据第二收入分配策略,若客户端设备依次接收到计算节点j8和计算节点j6发送的成功存储数据集合的指示信息,并且在区块链系统网络上获取到计算节点j8和计算节点j6分别对应的数据集合的训练结果后,则客户端设备可以为计算节点j8奖励的激励值为300,并为计算节点j6奖励的激励值为200。

需要说明的是,在p个计算节点中任一个计算节点使用数据集合中的数据和算法对模型进行训练得到训练结果后,区块链系统还可以记录p个计算节点中每个计算节点进行训练得到训练结果的时间,并更新每个计算节点的计算性能、处理吞吐量和数据的历史平均计算处理时间等指标。

本申请实施例中,客户端设备可以对p个计算节点的训练结果进行分析,若确定p个计算节点存在训练结果不可信的第一计算节点,则可以向区块链系统发送第一信息。其中,第一信息可以用于指示区块链系统对第一计算节点的计算结果可信度进行更新。在一个示例中,若确定p个计算节点对应的p个训练结果的误差范围在预设范围内,则客户端设备可以确定p个训练结果均是可信的;若确定p个训练结果中存在一个或多个计算节点的训练结果与其他训练结果的误差较大,则客户端设备可以将包括一个或多个计算节点的训练结果有误的第一信息发送给区块链系统。相应地,区块链系统在接收到客户端发送的第一信息后,可以查询一个或多个计算节点的历史训练结果,若存在多次历史训练结果有误,即认为一个或多个计算节点在训练的过程中存在造假行为,则客户端设备可以降低一个或多个计算节点的计算结果可信度。若某一个计算节点的计算结果可信度降低到预设阈值,则该计算节点将不会再被主动提供给客户端设备进行计算或存储等服务。

进一步地,确定模型参数的方式可以有多种,在一种可能的实现方式中,客户端设备可以从数据集合的p个训练结果中选取一个最合适的训练结果,得到模型的参数。在另一种可能的实现方式中,客户端设备也可以对数据集合的p个训练结果进行整合处理,得到模型的参数。在其他可能的实施例中,模型的参数也可以是对0~p个训练结果中任意多个训练结果进行整合处理得到的,本申请实施例对此不作具体限定。

本申请的上述实施例中,客户端设备可以根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从w个计算节点中选择n个计算节点,并将数据集合分别发送给n个计算节点;n个计算节点中的任一个计算节点在成功存储数据集合后,可以向客户端设备发送已成功存储数据集合的指示信息,使得客户端设备在接收到n个计算节点中的m个计算节点分别发送的指示信息后,根据m个计算节点中每个计算节点的第二属性信息,从m个计算节点中选择k个计算节点,并将算法和数据集合的标识分别发送给k个计算节点;k个计算节点中的任一个计算节点根据数据集合的标识,获取计算节点中存储的数据集合,使用数据集合中的数据和算法对模型进行训练,并向客户端设备发送已得到训练结果的指示信息;客户端设备获取k个计算节点中的p个计算节点对应的数据集合的训练结果,并根据数据集合的训练结果,得到模型参数。本申请实施例中,通过采用区块链系统中的计算节点训练模型,可以无需构建专属的机器学习算法群,从而可以节省成本,减少资源的浪费;且,通过选择区块链系统中具有较强存储能力和处理能力的计算节点运行算法,可以保证算法的处理速度,提高模型的训练效率,进而得到较好的模型训练效果;由于区块链系统可以存储并更新每个计算节点的在线稳定性,平均历史处理时间和节点的计算结果可信度等信息,从而可以避免客户端设备和/或计算节点在模型训练的过程中进行造假,使得模型训练的过程变得公开、透明,进而能够有效地保证用户的权利。此外,用于训练模型的数据集合可以为私有数据,通过采用计算节点的公钥对数据集合进行加密,可以保证在发送数据集合的过程中,数据集合不会被其他计算节点和/或其他客户端设备所窃取,从而可以保证数据集合的安全。

针对上述方法流程,本申请实施例还提供一种客户端设备,该客户端设备的具体内容可以参照上述方法实施。

图3为本申请实施例提供的一种客户端设备的结构示意图,包括:

获取模块301,用于获取用于训练模型的数据集合和用于训练模型的算法;

处理模块302,用于根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从所述w个计算节点中选择n个计算节点;所述w个计算节点中每个计算节点的第一属性信息包括所述计算节点的在线稳定性、存储性能、存储成本、数据最长保存时间中的一项或多项;

将所述数据集合分别发送给所述n个计算节点,并在接收到所述n个计算节点中的m个计算节点分别发送的已成功存储所述数据集合的指示信息后,根据所述m个计算节点中每个计算节点的第二属性信息,从所述m个计算节点中选择k个计算节点;所述m个计算节点中每个计算节点的第二属性信息包括所述计算节点的在线稳定性、计算性能、计算成本、所述计算节点的计算结果可信度中的一项或多项;

将所述算法和所述数据集合的标识发送给所述k个计算节点,以使所述k个计算节点分别使用所述数据集合中的数据和所述算法对所述模型进行训练;

所述获取模块301,还用于获取所述k个计算节点中的p个计算节点对应的所述数据集合的训练结果,并根据所述数据集合的训练结果,得到模型参数;

其中,w≥n≥m≥k≥p,p≥2,w、n、m、k、p为整数。

图4为本申请实施例提供的一种计算节点的结构示意图,包括:

收发模块401,用于接收客户端设备发送的用于训练模型的数据集合,并在所述数据集合存储成功后,向所述客户端设备发送已成功存储所述数据集合的指示信息;

接收所述客户端设备发送的用于训练模型的算法和所述数据集合的标识;

处理模块402,用于根据所述数据集合的标识,获取所述计算节点中存储的所述数据集合,使用所述数据集合中的数据和所述算法对所述模型进行训练;

所述收发模块401,还用于向所述客户端设备发送已得到训练结果的指示信息。

从上述内容可以看出:本申请的上述实施例中,客户端设备可以根据区块链系统的w个计算节点中每个计算节点的第一属性信息,从w个计算节点中选择n个计算节点,并将数据集合分别发送给n个计算节点;n个计算节点中的任一个计算节点在成功存储数据集合后,可以向客户端设备发送已成功存储数据集合的指示信息,使得客户端设备在接收到n个计算节点中的m个计算节点分别发送的指示信息后,根据m个计算节点中每个计算节点的第二属性信息,从m个计算节点中选择k个计算节点,并将算法和数据集合的标识分别发送给k个计算节点;k个计算节点中的任一个计算节点根据数据集合的标识,获取计算节点中存储的数据集合,使用数据集合中的数据和算法对模型进行训练,并向客户端设备发送已得到训练结果的指示信息;客户端设备获取k个计算节点中的p个计算节点对应的数据集合的训练结果,并根据数据集合的训练结果,得到模型参数。本申请实施例中,通过采用区块链系统中的计算节点训练模型,可以无需构建专属的机器学习算法群,从而可以节省成本,减少资源的浪费;且,通过选择区块链系统中具有较强存储能力和处理能力的计算节点运行算法,可以保证算法的处理速度,提高模型的训练效率,进而得到较好的模型训练效果;由于区块链系统可以存储并更新每个计算节点的在线稳定性,平均历史处理时间和节点的计算结果可信度等信息,从而可以避免客户端设备和/或计算节点在模型训练的过程中进行造假,使得模型训练的过程变得公开、透明,进而能够有效地保证用户的权利。此外,用于训练模型的数据集合可以为私有数据,通过采用计算节点的公钥对数据集合进行加密,可以保证在发送数据集合的过程中,数据集合不会被其他计算节点和/或其他客户端设备所窃取,从而可以保证数据集合的安全。

本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1