模型训练的方法、装置、设备及计算机可读存储介质与流程

文档序号:23223277发布日期:2020-12-08 15:06阅读:66来源:国知局
模型训练的方法、装置、设备及计算机可读存储介质与流程

本发明实施例涉及计算机技术领域,尤其涉及一种模型训练的方法、装置、设备及计算机可读存储介质。



背景技术:

在多个应用领域中,如自然语言处理、计算机视觉、语音识别、预测分析、推荐引擎等等,均需要使用机器学习模型进行数据处理。

在机器学习中,在进行数据处理通常会根据输入来预测输出,预测值和真实值之间会有一定的误差,在模型训练的过程中会使用优化器(optimizer)来最小化这个误差,梯度下降法(gradientdescent)就是一种常用的优化器。批量梯度下降(batchgradientdescent,简称bgd)是进行模型训练时的一种常用的梯度下降法,每次都使用训练集中的所有样本来更新梯度参数,可以得到全局最优解。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:当样本量很大时,批量梯度下降的速度就会非常慢,这样会导致模型训练时间长,模型训练效率低,从而导致获取机器学习模型并进行数据处理的效率低。



技术实现要素:

本发明实施例提供一种模型训练的方法、装置、设备及计算机可读存储介质,用以解决当样本量很大时,批量梯度下降的速度就会非常慢,导致模型训练时间长,效率低的问题。

第一方面,本发明实施例提供一种模型训练的方法,应用于分布式批处理平台的第一节点,所述分布式批处理平台包括所述第一节点,以及多个第二节点,包括:

在进行每轮迭代过程中,将批量训练数据集拆分为多个子数据集;

将所述子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各所述第二节点;

根据各所述第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数;

其中,最后一轮的目标梯度参数作为机器学习模型的最终模型参数,所述机器学习模型用于进行数据处理。

第二方面,本发明实施例提供一种模型训练的方法,应用于分布式批处理平台的第二节点,所述分布式批处理平台包第一节点,以及多个第二节点,包括:

获取子数据集和本轮迭代的初始梯度参数,所述子数据集为批量训练数据集的子集;

根据所述子数据集和初始梯度参数,计算得到更新后的梯度参数;

将所述更新后的梯度参数发送给第一节点,以使第一节点根据各所述第二节点返回的更新后的梯度参数确定本轮的目标梯度参数;

其中,最后一轮的目标梯度参数作为机器学习模型的最终模型参数,所述机器学习模型用于进行数据处理。

第三方面,本发明实施例提供一种数据处理的方法,包括:

获取待处理数据;

通过训练好的机器学习模型对所述待处理数据进行数据处理;

其中,所述机器学习模型的模型训练的每轮迭代过程中,通过分布式批处理平台的第一节点将批量训练数据集拆分为多个子数据集;将所述子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各所述第二节点,以使各所述第二节点根据所述子数据集和初始梯度参数,计算得到更新后的梯度参数;根据各所述第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数;最后一轮的目标梯度参数作为机器学习模型的最终模型参数,得到所述训练好的机器学习模型。

第四方面,本发明实施例提供一种模型训练的装置,应用于分布式批处理平台的第一节点,所述分布式批处理平台包括所述第一节点,以及多个第二节点,包括:

任务分发模块,用于在进行每轮迭代过程中,将批量训练数据集拆分为多个子数据集;

所述任务分发模块还用于将所述子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各所述第二节点;

梯度参数确定模块,用于根据各所述第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数;

其中,最后一轮的目标梯度参数作为机器学习模型的最终模型参数,所述机器学习模型用于进行数据处理。

第五方面,本发明实施例提供一种模型训练的装置,应用于分布式批处理平台的第二节点,所述分布式批处理平台包括第一节点,以及多个第二节点,包括:

通信模块,用于获取子数据集和本轮迭代的初始梯度参数,所述子数据集为批量训练数据集的子集;

参数计算模块,用于根据所述子数据集和初始梯度参数,计算得到更新后的梯度参数;

所述通信模块还用于将所述更新后的梯度参数发送给第一节点,以使第一节点根据各所述第二节点返回的更新后的梯度参数确定本轮的目标梯度参数;

其中,最后一轮的目标梯度参数作为机器学习模型的最终模型参数,所述机器学习模型用于进行数据处理。

第六方面,本发明实施例提供一种电子设备,应用于分布式批处理平台的第一节点,所述分布式批处理平台包括所述第一节点,以及多个第二节点,包括:

处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;

其中,所述处理器运行所述计算机程序时实现上述第一方面所述的方法。

第七方面,本发明实施例提供一种电子设备,应用于分布式批处理平台的第二节点,所述分布式批处理平台包括第一节点,以及多个第二节点,包括:

处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;

其中,所述处理器运行所述计算机程序时实现上述第二方面所述的方法。

第八方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或者第二方面所述的方法。

本发明实施例提供的模型训练的方法、装置、设备及计算机可读存储介质,在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将所述子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各所述第二节点;第二节点根据所述子数据集和初始梯度参数,计算得到更新后的梯度参数,并将所述更新后的梯度参数发送给第一节点;第一节点根据各所述第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

附图说明

图1为本发明实施例一提供的模型训练的方法流程图;

图2为本发明实施例二提供的模型训练的方法流程图;

图3为本发明实施例二提供的另一模型训练的方法流程图;

图4为本发明实施例三提供的模型训练的装置的结构示意图;

图5为本发明实施例四提供的模型训练的装置的结构示意图;

图6为本发明实施例五提供的模型训练的装置的结构示意图;

图7为本发明实施例七提供的数据处理的方法流程图;

图8为本发明实施例七提供的电子设备的结构示意图;

图9为本发明实施例八提供的电子设备的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

首先对本发明实施例所涉及的名词进行解释:

flink:也即apacheflink,是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,它以数据并行和流水线方式执行任意流数据程序,能够支持流处理和批处理两种应用类型。

图形处理器(graphicsprocessingunit,缩写gpu):又称显示核心、视觉处理器、显示芯片。与中央处理器(centralprocessingunit,缩写cpu)相比,含有更多的算术逻辑单元,具有更强大的通用计算能力。

cuda(computeunifieddevicearchitecture,统一计算设备架构):cuda是一种gpu的并行计算框架,它可以进行大量的并行计算,提高计算处理能力。

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

本发明实施例具体的应用于模型训练过程中的梯度下降法。根据梯度下降时使用数据量的不同,梯度下降可以分为3类:批量梯度下降、随机梯度下降(stochasticgradientdescent,简称sgd)和小批量梯度下降(mini-batchgradientdescent,简称mbgd)。

其中,批量梯度下降每次都使用训练集中的所有样本来更新参数,可以得到全局最优解,但是,当样本量很大时,批量梯度下降的速度就会非常慢,这样会导致训练时间长。

随机梯度下降每次只从样本中选择1组数据进行梯度下降,这样经过足够多的迭代次数,就会得到局部最优解,能够加快训练速度,但是准确度下降,得到的最优解可能是局部最优解。

小批量梯度下降是bgd和sgd之间的折中,通常包含一个数量范围(例如10-1000个)的随机选择的样本,降低了sgd训练过程的杂乱程度,同时也提高了训练速度,但是如何选择合适的样本量不好控制。

综上,随机梯度下降和小批量梯度下降的准确度都无法媲美批量梯度下降。如何在确保批量梯度下降的准确度,能够得到全局最优解的同时,提高批量梯度下降的训练速度,是一个很有价值的技术问题。

本发明实施例提供的模型训练的方法,旨在解决如上技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图1为本发明实施例一提供的模型训练的方法流程图。本实施例中的方法应用于分布式批处理平台,例如flink集群等。分布式批处理平台包括第一节点,以及多个第二节点。在每轮迭代中,第一节点用于将批量训练数据集分发给多个第二节点,第二节点根据分发到的训练数据计算得到更新后的梯度参数,第一节点综合各个第二节点的更新后的梯度参数,确定本轮的目标梯度参数。如图1所示,该方法具体步骤如下:

步骤s101、在进行每轮迭代过程中,第一节点将批量训练数据集拆分为多个子数据集。

其中,批量训练数据集是模型训练的完整训练集。第一节点可以是分布式批处理平台中的能够向其他工作节点分发数据或者任务的节点。例如,可以是分布式批处理平台中的管理节点。

本实施例中,在每轮迭代过程中,第一节点将批量训练数据集按样板拆分成多个字数据集。子数据集包含多个样本,是批量训练数据集的子集。

示例性地,拆分成的子数据集的数量可以根据实际应用场景中模型训练任务的数据量进行配置和调整,或者可以根据分布式批处理平台中可以参与模型训练的工作节点的数量进行将配置和调整,或者可以综合模型训练任务的数据量和分布式批处理平台中空闲的工作节点的数量,进行配置和调整,本实施例此处不做具体限定。

步骤s102、第一节点将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点。

其中,第二节点可以是分布式批处理平台中参与本次模型训练的节点。例如,可以是分布式批处理平台中的工作节点。

该步骤中,第一节点将每个子数据集分发给对应的第二节点,同时将本轮的初始梯度参数发送给各个第二节点。每个第二节点均执行步骤s103-s105,完成梯度参数的更新。

步骤s103、第二节点获取子数据集和本轮迭代的初始梯度参数,子数据集为批量训练数据集的子集。

第二节点可以接收到本轮迭代的初始梯度参数,以及分发给自己的子数据集。

步骤s104、第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数。

第二节点根据子数据集和初始梯度参数,完成梯度参数的计算,得到更新后的梯度参数。

本实施例中,每个第二节点根据子数据集和初始梯度参数,计算得到新的梯度参数的过程,与批量梯度下降中根据完整的批量训练数据集和初始梯度参数,计算新的梯度参数的过程一致,本实施例此处不再赘述。

步骤s105、第二节点将更新后的梯度参数发送给第一节点。

第二节点在得到更新后的梯度参数之后,将更新后的梯度参数返回给第一节点。

步骤s106、第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数;其中最后一轮的目标梯度参数作为机器学习模型的最终模型参数,机器学习模型用于进行数据处理。

第一节点在收到各个第二节点返回的更新后的梯度参数之后,可以根据所有更新后的梯度参数,确定本轮的目标梯度参数。

在迭代完成之后,可以将最近一轮迭代得到的目标梯度参数作为最终的梯度参数,得到训练好的机器学习模型。

示例性地,可以将更新后的梯度参数的平均值作为本来的目标梯度参数。

示例性地,还可以为第二节点返回的更新后的梯度参数配置对应的权重,将各第二节点返回的更新后的梯度参数的加权平均值作为本来的目标梯度参数。

另外,还可以采用其他方式,综合本轮迭代中得到的多个更新后的梯度参数,确定本轮的目标梯度参数,本实施例此处不做具体限定。

本发明实施例中,在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

图2为本发明实施例二提供的模型训练的方法流程图。在上述实施例一的基础上,本实施例中,第一节点通过计算各第二节点返回的更新后的梯度参数的平均值,得到目标梯度参数。第二节点通过并行计算的方式,根据子数据集和初始梯度参数,计算得到更新后的梯度参数。

如图2所示,该方法具体步骤如下:

步骤s201、初始化梯度参数和迭代次数。

在进行模型训练之前,首先初始化梯度参数和迭代次数。

其中,初始化的梯度参数和迭代次数可以根据实际应用场景需要进行设定和调整,本实施例此处不做具体限定。

初始化的梯度参数将作为模型训练的初始梯度参数,也即是在模型训练的第一轮迭代过程中,将初始化的梯度参数作为初始梯度参数进行训练。

示例性地,以线性回归模型为例,一个线性回归假设函数可以采用以下公式一表示:

h(x)=θ0+θ1x1+θ2x2+…+θkxk+…+θnxn公式一

其中,n表示一个样本的特征数,xk表示一个样本的第k个特征,k=1,2,3,...,n。θ是指θ0,θ1,θ2,...θn构成的向量;用x(i)表示批量训练数据集中第i个样本的训练数据(也即由第i个样本的x1,x2,...,xn构成的特征向量),用x表示批量训练数据集中所有样本的特征向量构成的集合,用y表示批量训练数据集中所有样本的标签数据构成的集合,θ表示x映射成y的权重,θ也即是梯度参数。

假设x0=1,上述公式一可以写成以下公式二:

其中,m表示批量训练数据集中样本的数量,用x(i)表示批量训练数据集中第i个样本的训练数据,y(i)表示第i个样本所对应的标签数据,可以使用x(i)和y(i)表示批量训练数据集中第i个样本。模型训练的目的是为了让计算的预测值h(x)无限接近真实值(也即标签数据)y,即对应的目标函数(代价函数)可以采用lms(leastmeansquare,最小均分算法)表示成如下公式三:

其中,m为批量训练数据集中样本的数量。

批量梯度下降法是指在每一次迭代时使用所有样本来进行梯度的更新,

从数学上可以理解为如下公式四:

在一轮迭代中,使用每个样本对梯度参数进行一次更新,使用第j个样本更新梯度参数时,可以通过以下公式五对梯度参数进行一次更新:

其中,θj表示根据第j个样本更新前的梯度参数,若j是1,也即是本轮中根据第一个样本更新梯度参数时,θj是本轮迭代的初始梯度参数,表示根据第j个样本更新后的梯度参数,代表本轮迭代中第j次更新的样本,α为学习率。在一轮迭代中,在根据批量训练数据集中的第j个样本更新梯度参数,也即是进行梯度参数的第j次更新过程中,指代一个固定的样本,指代本次更新梯度参数的样本,也即批量训练数据集中的第j个样本。在本轮迭代的第j次更新过程中,i依次取值为1,2,3,…m,随着i取值的变化,x(i)遍历批量训练数据集中的每个样本。

本实施例中,还可以应用于其他非线性回归模型的训练,不同的模型计算梯度参数的公式可能不同,但是均可以使用本实施例提供的模型训练方法。

另外,在初始化梯度参数和迭代次数之前,还需要对分布式批处理平台的环境变量等信息进行初始化,以使得分布式批处理平台可以运行。

步骤s202、在进行每轮迭代过程中,将批量训练数据集拆分为多个子数据集;将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点。

该步骤中,若本轮是第一轮迭代,则本轮的初始梯度参数为梯度参数的初始化值。若本轮不是第一轮迭代,则本轮的初始梯度参数为上一轮的目标梯度参数。

本实施例中,在每轮迭代过程中,第一节点将批量训练数据集按样板拆分成多个字数据集。子数据集包含多个样本,是批量训练数据集的子集。

示例性地,以分布式批处理平台为flink集群为例,在flink初始化完成后,可以读取批量训练数据集对应的data矩阵。flink集群通过第一map操作将训练数据集对应的data矩阵按行分发给多个第二节点,同时将本轮的初始梯度参数广播给各个第二节点。

可选地,在初始化梯度参数和迭代次数之后,可以利用flink批量处理技术根据初始化的梯度参数和迭代次数创建批量迭代参数数据集,批量迭代参数数据集用于存放最新的梯度参数。在第一轮迭代完成之前,批量迭代参数数据集中存放的是初始化的梯度参数,在第一轮迭代完成之后,批量迭代参数数据集中存放的是最近一轮迭代后的目标梯度参数。

进一步地,在每轮迭代过程中,第一节点可以将批量迭代参数数据集发送给各个第二节点,第二节点将批量迭代参数数据集中的梯度参数作为本轮的初始梯度参数。

可选地,拆分成的子数据集的数量可以根据实际应用场景中模型训练任务的数据量进行配置和调整,或者可以根据分布式批处理平台中可以参与模型训练的工作节点的数量进行将配置和调整,或者可以综合模型训练任务的数据量和分布式批处理平台中空闲的工作节点的数量,进行配置和调整,本实施例此处不做具体限定。

该步骤中,第一节点将每个子数据集分发给对应的第二节点,同时将本轮的初始梯度参数发送给各个第二节点。每个第二节点均执行步骤s204-s206,完成梯度参数的更新,得到本轮的目标梯度参数。

步骤s203、第二节点获取子数据集和本轮迭代的初始梯度参数,子数据集为批量训练数据集的子集。

第二节点可以接收到本轮迭代的初始梯度参数,以及分发给自己的子数据集。

步骤s204、第二节点通过并行计算的方式,根据子数据集和初始梯度参数,计算得到更新后的梯度参数。

该步骤中,第二节点根据子数据集和初始梯度参数,完成梯度参数的计算,得到更新后的梯度参数。

本实施例中,第二节点可以利用gpu的并行计算框架,以并行计算的方式,根据子数据集和初始梯度参数,计算得到更新后的梯度参数,能够显著提高批量梯度下降法的计算速度。

示例性地,可以基于cuda实现梯度参数的并行计算。第二节点通过调用cuda的核函数(kernel函数),根据子数据集中的每个样本和初始梯度参数,计算每个样本的样本梯度,样本梯度是指样本对应的更新后的梯度参数,并记录梯度参数的更新次数。其中,根据每个样本计算得到对应的样本梯度,作为梯度参数的一次更新,梯度参数的更新次数与样本数量一致。

在后续步骤s205中将子数据集对应的所有样本梯度和梯度参数更新次数发送给第一节点。

例如,以步骤s201中的线性回归模型为例,该步骤中可以调用cuda的kernel函数,根据上述公式五计算得到更新后的梯度参数输出每次更新后的梯度参数和计算次数。

步骤s205、第二节点将更新后的梯度参数发送给第一节点。

第二节点在得到更新后的梯度参数之后,将更新后的梯度参数返回给第一节点。

本实施例中,每个第二节点计算得到更新后的梯度参数包括第二节点对应子数据集中每个样本的样本梯度。

可选地,第二节点将更新后的梯度参数发送给第一节点的同时,还可以将梯度参数的更新次数发送给第一节点,以便于第一节点计算更新后的梯度参数的平均值。

步骤s206、第一节点计算各第二节点返回的更新后的梯度参数的平均值,得到目标梯度参数。

本实施例中,第一节点接收到各个第二节点返回的更新后的梯度参数之后,可以计算各第二节点返回的更新后的梯度参数的平均值,将平均值作为目标梯度参数。

在一种可选的实现方式中,第二节点将根据对应子数据集计算得到的所有样本梯度和梯度参数更新次数发送给第一节点。第一节点接收各第二节点返回的样本梯度和梯度参数更新次数;计算各第二节点返回的所有样本梯度之和,以及梯度参数的更新总次数;根据所有样本梯度之和以及梯度参数的更新总次数,计算所有样本梯度的平均值,得到目标梯度参数。

示例性地,以分布式批处理平台为flink集群为例,flink集群的第一节点通过执行reduce操作合并各个第二节点返回的样本梯度,对各个第二节点返回的所有样本梯度求和,并对各第二节点的梯度参数更新次数求和得到梯度参数的更新总次数;然后通过执行map操作根据所有样本梯度之和以及梯度参数的更新总次数,计算得到所有样本梯度的平均值,从而得到目标梯度参数。

可选地,在得到本轮的目标梯度参数之后,第一节点还可以将批量迭代参数数据集中的梯度参数更新为本轮的目标梯度参数,从而将本轮迭代得到的最新梯度参数传递到下一轮迭代,作为下一轮迭代的初始梯度参数。

通过循环执行步骤s202-s206,不断进行迭代,不断地计算更新得到最新的梯度参数,直到迭代的总次数达到初始化的迭代次数之后,将最新的梯度参数作为最终的梯度参数输出。

在一种可选的实施方式中,以分布式批处理平台为flink集群为例,对线性回归模型的训练的详细流程可以如图3所示,具体包括如下步骤:

步骤s301、初始化flink,读取批量训练数据集data矩阵。

其中,flink集群中将批量训练数据集存储为data矩阵。

步骤s302、初始化梯度参数和迭代次数,利用flink批量处理技术根据初始化的梯度参数和迭代次数创建批量迭代参数数据集。

步骤s303、第一节点通过第一map操作将批量训练数据集data矩阵进行分发,同时将批量迭代参数数据集广播给各个第二节点。

其在,第一map操作是将训练数据集平均分发给各个第二节点(工作节点),每个第二节点根据分发的子数据集中的训练数据和本轮的初始梯度参数计算得到更新后的梯度参数。

上述步骤s302-s303可以由flink集群的第一节点执行完成。

步骤s304、各个第二节点调用cuda的kernel函数,计算得到更新后的梯度参数,将每次更新后的梯度参数和计算次数输出给第一节点。

该步骤由flink集群的多个第二节点并行地执行完成。

步骤s305、通过flink的reduce操作合并得到第一map操作后的梯度参数之和,以及迭代计算总次数。

其中,reduce操作是分别将所有第二节点计算得到更新后的梯度参数和计算次数求和。

通过该步骤可以对一次迭代计算得到的所有的样本梯度求和。

步骤s306、通过第二map操作得到这一次迭代后的梯度参数的平均值,得到这一次迭代的目标梯度参数,将目标梯度参数更新到批量迭代参数数据集,将目标梯度参数传给下一次迭代。

其中,第二map操作是根据更新后的梯度参数之和,以及计算次数总和,求梯度参数的均值。

步骤s307、判断是否满足迭代次数。

每一轮迭代结束后,判断是否满足迭代次数,如果循环迭代的次数达到初始化的迭代次数,则执行步骤s308,输出最终的梯度参数,训练结束。如果循环迭代的次数还没有达到初始化的迭代次数,循环执行步骤s303-s307。

步骤s308、输出最终的梯度参数。

可以将最近一轮迭代得到的目标梯度参数作为最终的梯度参数。

上述步骤s305-s308可以由flink集群的第一节点执行完成。

图3中各步骤的详细实现方式参见上述图2对应的具体流程,本实施例此处不再赘述。

本实施例通过在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。进一步地,第二节点通过并行计算技术,在每轮迭代中实现对梯度参数的并行计算,大大提高了计算速度,提高了批量梯度下降法的计算速度,从而能够进一步加快训练速度,缩短训练时间,提高训练效率。

图4为本发明实施例三提供的模型训练的装置的结构示意图。本发明实施例提供的模型训练的装置可以执行模型训练的方法实施例提供的处理流程。如图4所示,该模型训练的装置40包括:任务分发模块401和梯度参数确定模块402。

具体地,任务分发模块401用于在进行每轮迭代过程中,将批量训练数据集拆分为多个子数据集。

任务分发模块401还用于将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点。

梯度参数确定模块402用于根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数;其中,最后一轮的目标梯度参数作为机器学习模型的最终模型参数,机器学习模型用于进行数据处理。

本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例中第一节点所执的方法流程,具体功能此处不再赘述。

本发明实施例中,在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

图5为本发明实施例四提供的模型训练的装置的结构示意图。在上述实施例三的基础上,本实施例中,一种可选的实施方式中,若本轮是第一轮迭代,则本轮的初始梯度参数为梯度参数的初始化值;若本轮不是第一轮迭代,则本轮的初始梯度参数为上一轮的目标梯度参数。

一种可选的实施方式中,如图5所示,模型训练的装置40还包括:初始化模块403,用于:初始化梯度参数和迭代次数。

一种可选的实施方式中,梯度参数确定模块还用于:

计算各第二节点返回的更新后的梯度参数的平均值,得到目标梯度参数。

一种可选的实施方式中,梯度参数确定模块还用于:

接收各第二节点返回的样本梯度和梯度参数更新次数,样本梯度是指样本对应的更新后的梯度参数;计算所有样本梯度之和,以及梯度参数的更新总次数;根据所有样本梯度之和以及梯度参数的更新总次数,计算所有样本梯度的平均值,得到目标梯度参数。

本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例中第一节点所执行的方法流程,具体功能此处不再赘述。

本实施例通过在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。进一步地,第二节点通过并行计算技术,在每轮迭代中实现对梯度参数的并行计算,大大提高了计算速度,提高了批量梯度下降法的计算速度,从而能够进一步加快训练速度,缩短训练时间,提高训练效率。

图6为本发明实施例五提供的模型训练的装置的结构示意图。本发明实施例提供的模型训练的装置可以执行模型训练的方法实施例提供的处理流程。如图6所示,该模型训练的装置60包括:通信模块601和参数计算模块602。

具体地,通信模块601,用于获取子数据集和本轮迭代的初始梯度参数,子数据集为批量训练数据集的子集。

参数计算模块602,用于根据子数据集和初始梯度参数,计算得到更新后的梯度参数。

通信模块601还用于将更新后的梯度参数发送给第一节点,以使第一节点根据各第二节点返回的更新后的梯度参数确定本轮的目标梯度参数。

其中,最后一轮的目标梯度参数作为机器学习模型的最终模型参数,机器学习模型用于进行数据处理。

本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例中第二节点所执的方法流程,具体功能此处不再赘述。

本发明实施例中,在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

在上述实施例五的基础上,本实施例中,参数计算模块还用于:

通过并行计算的方式,根据子数据集和初始梯度参数,计算得到更新后的梯度参数。

在一种可选的实施方式中,参数计算模块还用于:

调用cuda的核函数,根据子数据集中的每个样本和初始梯度参数,计算每个样本的样本梯度,样本梯度是指样本对应的更新后的梯度参数。

在一种可选的实施方式中,参数计算模块还用于:

记录梯度参数的更新次数。

在一种可选的实施方式中,通信模块还用于:

将子数据集对应的所有样本梯度和梯度参数更新次数发送给第一节点。

本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例中第二节点所执行的方法流程,具体功能此处不再赘述。

本实施例通过在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。进一步地,第二节点通过并行计算技术,在每轮迭代中实现对梯度参数的并行计算,大大提高了计算速度,提高了批量梯度下降法的计算速度,从而能够进一步加快训练速度,缩短训练时间,提高训练效率。

图7为本发明实施例七提供的数据处理的方法流程图。本实施例的执行主体可以是用于执行机器学习模型的电子设备,如图7所示,该数据处理的方法包括如下步骤:

步骤s701、获取待处理数据。

步骤s702、通过训练好的机器学习模型对待处理数据进行数据处理。

其中,机器学习模型的模型训练的每轮迭代过程中,通过分布式批处理平台的第一节点将批量训练数据集拆分为多个子数据集;将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点,以使各第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数;根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数;最后一轮的目标梯度参数作为机器学习模型的最终模型参数,得到训练好的机器学习模型。

本实施例中的机器学习模型可以通过上述任一方法实施例中的模型训练方法训练得到,本实施例此处对于机器学习模型具体训练过程不再赘述。

本实施例提供的数据处理的方法的执行主体还可以由上述任一方法实施例中分布式批量处理平台中的任意节点,分布式批量处理平台在完成上述方法实施例的模型训练之后,还可以用于执行本实施例的数据处理的方法。

本发明实施例中,在采用批量梯度下降进行机器学习模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

图8为本发明实施例七提供的电子设备的结构示意图。如图8所示,该电子设备100包括:处理器1001,存储器1002,以及存储在存储器1002上并可在处理器1001上运行的计算机程序。

其中,处理器1001运行计算机程序时实现上述任一方法实施例中第一节点所执行的方法流程。

本发明实施例中,在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

实施例八

图9为本发明实施例八提供的电子设备的结构示意图。如图9所示,该电子设备110包括:处理器1101,存储器1102,以及存储在存储器1102上并可在处理器1101上运行的计算机程序。

其中,处理器1101运行计算机程序时实现上述任一方法实施例中第二节点所执行的方法流程。

本发明实施例中,在采用批量梯度下降进行模型训练的每轮迭代过程中,通过分布式批处理平台中的第一节点将批量训练数据集拆分为多个子数据集,将子数据集分发给各第二节点,并将本轮的初始梯度参数发送给各第二节点;第二节点根据子数据集和初始梯度参数,计算得到更新后的梯度参数,并将更新后的梯度参数发送给第一节点;第一节点根据各第二节点返回的更新后的梯度参数,确定本轮的目标梯度参数,能够基于分布式批处理平台,利用分布式实时批处理技术,提高批量梯度下降法的批处理能力,从而能够加快训练速度,缩短训练时间,提高训练效率,从而可以缩短训练得到机器学习模型并进行数据处理的时间,提高数据处理的效率。

另外,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中第一节点或者第二节点执行的方法流程。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。

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