CN112199885B - 一种分布式模型训练***及应用方法 - Google Patents
一种分布式模型训练***及应用方法 Download PDFInfo
- Publication number
- CN112199885B CN112199885B CN202010942954.XA CN202010942954A CN112199885B CN 112199885 B CN112199885 B CN 112199885B CN 202010942954 A CN202010942954 A CN 202010942954A CN 112199885 B CN112199885 B CN 112199885B
- Authority
- CN
- China
- Prior art keywords
- data
- sample
- gpu
- sample data
- cpu
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本公开涉及计算机领域,公开了一种分布式模型训练***及应用方法,用以提高模型训练效率。所述分布式模型训练***中包含有若干GPU和若干CPU,其中,任意一CPU,用于将分配得到的部分样本数据的各个特征数据按照预设的映射规则映射为相应的表征向量;任意一GPU,用于在分配得到部分样本数据的样本ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练;这样,可以将各个样本数据的各个特征数据分布至各个GPU和各个CPU中进行处理,从而充分发挥了GPU和CPU的计算性能,达到了多机扩展的目的,有效提高了模型训练效率。
Description
技术领域
本公开涉及计算机科学领域,特别涉及一种分布式模型训练***及应用方法。
背景技术
在现有技术中,AIBox是一种解决点击通过率(Click-Through-Rate,CTR)预测问题中遇到大量数据的***,该***采用了一种中央处理器(central processing unit,CPU)、图形处理器(Graphics Processing Unit,GPU)搭配内存和固态硬盘(Solid StateDisk,SSD)进行计算的一种方法。其方式为:当遇到大量且稀疏的训练数据时,首先把所述训练数据交给CPU进行稠密化训练,将所述训练数据稠密化之后,CPU将得到的稠密化数据传给GPU进行预测模型的训练,训练完成之后的数据GPU再返传给CPU进行所述稠密化训练。所述训练数据在整个过程中,由于数据量十分庞大,不能全部储存在内存中做到随用随取,所以将数据分为两个部分。第一部分,频繁调动的训练数据被储存在内存中;第二部分,不频繁调动的训练数据,则被储存在SSD中。除此之外,内存还有缓存的功能:即将要调度的训练数据,也会从SSD中读取出来,存入内存中,等待调度。
参阅图1所示,首先CPU开始处理分布式文件***传来的训练数据,同时,CPU与稀疏表进行推入和推出的交互来获取用来让GPU计算的稠密训练数据。获取所述稠密训练数据后,CPU将所述稠密训练数据传入以GPU为神经网络的联合学习部分,在GPU完成对所述训练数据的学习后,进而再将学习后得到的结果重新发送给CPU进行对所述训练数据的学习。
在现有技术中,由于训练数据十分庞大,不能将所有数据全部储存在内存中,因此,需要将不频繁调用的训练数据以及不是将要被CPU调用的数据保存在SSD中,再随时调取。虽然SSD相较于传统的机械硬盘,读取速度已经有了极大速度的提升,但仍然是需要微秒来查看数据,而内存的访问延迟则是纳秒级,在速度上,SSD大约比内存慢1000倍。这使得GPU的性能不能完全发挥,受限于SSD的读写速度。
有鉴于此,需要一种新的模型训练***以克服上述缺陷。
发明内容
本公开实施例提供一种分布式模型训练***及应用方法,用以充分发挥GPU的计算性能,提高模型训练效率。
本公开实施例提供的具体技术方案如下:
第一方面,一种分布式模型训练***,包括:
若干中央处理器CPU和若干图形处理器GPU,其中,
任意一CPU,用于在分配得到部分样本数据的各个特征数据时,将获得的各个特征数据按照预设的映射规则映射为相应的表征向量;
任意一GPU,用于在分配得到部分样本数据的样本标识信息ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,直至训练完毕,其中,所述预测模型用于对待推荐文件的点击概率进行预测,以及在训练过程中,每次对所述预测模型进行参数调整后,在各个GPU之间同步参数调整结果。
可选的,进一步包括:
第一CPU,用于获取原始数据,并将所述原始数据进行格式转换后,生成相应的样本数据集合,以及将所述样本数据集合分割为设定数据量大小的各个数据包,将所述各个数据包中的各个样本数据的各个特征数据分别发往各个CPU,以及将所述各个数据包中的各个样本数据的样本ID分别发往各个GPU。
可选的,将所述样本数据集合分割为设定数据量大小的数据包时,所述第一CPU进一步用于:
将所述样本数据集合中的样本数据进行混合打散,并将经混合打散的样本数据集合分割为若干个设定数据量大小的数据包,令各个数据包各自包含有不同用户的样本数据。
可选的,采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练时,所述任意一GPU用于:
每获得一个样本ID对应的各个表征向量,执行以下操作:
将一个样本ID对应的各个表征向量输入预测模型,得到相应的预测评估结果;
获取对应所述一个样本ID保存的真实评估结果;
将所述预测评估结果和所述真实评估结果进行比较,计算相应的误差;
基于所述误差,采用深度神经网络计算梯度,并采用所述模型梯度对所述预测模型进行参数调整。
可选的,采用所述梯度对所述预测模型进行参数调整时,所述任意一个GPU用于:
基于所述梯度,确定相应的参数调整规则;
采用所述参数调整规则,调整所述预测模型中使用的各个模型参数;
采用所述参数调整规则,调整各个CPU所使用的映射规则包含的各个映射参数。
第二方面,一种分布式模型训练方法,包括:
采用若干中央处理器CPU分别接收各个样本数据的各个特征数据,以及分别采用各个CPU执行以下操作:通过一个CPU获得分配到的部分样本数据的各个特征数据时,将获得的各个特征数据按照预设的映射规则映射为相应的表征向量;
采用若干图形处理器GPU分别接收各个样本数据的样本标识信息ID,以及分别采用各个GPU执行以下操作:通过一个GPU获得分配到的部分样本数据的样本ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,直至训练完毕,其中,所述预测模型用于对待推荐文件的点击概率进行预测,以及在训练过程中,每次对所述预测模型进行参数调整后,在各个GPU之间同步参数调整结果。
可选的,采用若干CPU分别接收各个样本数据的各个特征数据,以及采用若干GPU分别接收各个样本数据的样本ID之前,进一步包括:
获取原始数据,并将所述原始数据进行格式转换后,生成相应的样本数据集合,以及将所述样本数据集合分割为设定数据量大小的各个数据包,并将所述各个数据包中的各个样本数据的各个特征数据分别发往各个CPU,以及将所述各个数据包中的各个样本数据的样本ID分别发往各个GPU。
可选的,将所述样本数据集合分割为设定数据量大小的数据包时,进一步包括:
将所述样本数据集合中的样本数据进行混合打散,并将经混合打散的样本数据集合分割为若干个设定数据量大小的数据包,令各个数据包各自包含有不同用户的样本数据。
可选的,通过一个GPU获得分配到的部分样本数据的样本ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,包括:
通过所述一个GPU将一个样本ID对应的各个表征向量输入预测模型,得到相应的预测评估结果;
通过所述一个GPU获取对应所述一个样本ID保存的真实评估结果;
通过所述一个GPU将所述预测评估结果和所述真实评估结果进行比较,计算相应的误差;
通过所述一个GPU基于所述误差,采用深度神经网络计算梯度,并采用所述梯度对所述预测模型进行参数调整。
可选的,采用所述梯度对所述预测模型进行参数调整,包括:
通过所述一个GPU,基于所述梯度,确定相应的参数调整规则;
通过所述一个GPU,采用所述参数调整规则,调整所述预测模型中使用的各个模型参数;
通过所述一个CPU,采用所述参数调整规则,调整一个CPU所使用的映射规则包含的各个映射参数。
第三方面,一种计算机可读存储介质,当所述计算机可读存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第二方面中任一项所述的方法。
第四方面,一种计算机程序产品,包含可执行指令,当所述计算机程序产品的可执行指令由处理器执行时,能够执行如上述第二方面中任一项所述的方法。
本公开实施例中,在分布式模型训练***中设置了若干GPU和若干CPU,其中,任意一CPU,用于将分配得到的部分样本数据的各个特征数据按照预设的映射规则映射为相应的表征向量;任意一GPU,用于在分配得到部分样本数据的样本标识信息ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练;这样,只需要将海量的训练数据,读取至多个GPU和多个CPU的内存中进行处理,即可完成模型训练,不需要使用SSD,从而加快了处理效率,充分的发挥了各个GPU和各个CPU的计算性能,实现了多机扩展,进而有效提高了模型训练效率。
附图说明
图1为已有技术下分布式模型训练过程示意图;
图2为本公开实施例中分布式模型训练***工作原理示意图;
图3为本公开实施例中分布式模型训练***进行模型训练流程示意图;
图4为本公开实施例中采用预测模型进行视频推荐场景示意图;
图5为本公开实施例中分布式模型训练***实体架构示意图。
具体实施方式
为了充分发挥GPU计算性能,提高模型训练效率,本公开实施例中,采用分布式***进行模型训练,具体的,将所述模型拆分成两个部分,一部分在若干个CPU上搭建的嵌入(Embedding)服务模型,另一部分在若干个GPU上搭建的深度神经网络部分。
参阅图2所示,在若干个CPU上搭建的Embedding服务模型,接收用于训练的样本数据集合中的特征数据集合,并将特征数据映射为表征向量后发送给GPU;而若干GPU通过接收用于训练的样本数据集合中的样本ID及真实评估结果,结合从若干CPU获得的表征向量,基于深度神经网络,对预测模型进行训练,直至训练完毕,其中,在训练过程中,每次对所述预测模型进行参数调整后,在各个GPU之间同步参数调整结果,进而输出最终训练的模型。
实际应用中,采用上述方式训练的预测模型可以应用于任何场景,本公开实施例中,以文件推荐场景为例进行说明,即,样本训练数据为用户点击文件的数据记录,而最终训练获得的预测模型为文件推荐模型,即所述预测模型用于对待推荐文件的点击概率进行预测。
进一步的,实际应用中,待推荐文件可以指各类***中的待推荐信息,本公开实施例中,以视频文件为例。
下面结合附图对本公开优选的实施方式作出进一步详细说明。
参阅图3所示,本公开实施例中,模型训练流程如下:
步骤300:获取样本数据集合。
具体的,用于训练的样本数据集合可以来自分布式文件***(HadoopDistributed File System,HDFS)以及流处理平台(kafka)。
其中,来自于HDFS的样本数据是历史数据,如,用户在当前时间之前三个月内的视频浏览记录;而来自于kafka的样本数据是实时数据,如,用户当前的浏览行为正在产生的浏览记录。
实际应用中,通过HDFS以及kafka提取到原始数据之后,在输出用于训练的样本数据集合之前,需要先通过转换器(converter),将获得的原始数据转换成可训练的格式。
步骤310:对获取的样本数据集合进行混合打散,令样本数据集合中包含多个不同用户的样本数据。
具体的,为了防止样本数据集合中单一用户的大量样本数据被过于集中的用于训练,对训练结果造成影响,要将所述样本数据集合通过数据重新整理装置(shuffler引擎)进行重新排列,使得所述样本数据集合中包含的样本数据具有随机性,可以代表不同用户。
实际应用中,由于同一用户可能产生大量所述用户的样本数据,如果将不经过混合打散处理的样本数据集合发送给模型进行训练,则有可能会导致模型最终按照同一用户的特征数据进行结果预测,丧失普遍性,影响模型预测的准确性,因此,要将所述样本数据集合进行混合打散。
步骤320:将经过打散处理的样本数据集合分割成设定数据量大小的数据包。
具体的,由于所述样本数据集合包含的数据量十分庞大,所有数据发送给任一CPU或GPU都难以处理,因此,将所述样本数据集合通过归并网络(Batcher)进行打包分割处理,进而将分割后的数据包中的各个样本数据的各个特征数据分别发送给各个CPU进行处理,以及将分割后的数据包中的各个样本数据的样本ID和对应的真实评估结果分别发送给各个GPU进行处理。
实际应用中,通常一个数据包中包含有1000条样本数据,其中,每一条样本数据,对应一个样本ID和一个真实评估结果,但包含有多个特征数据,因此,会映射为多个表征向量(仅为举例)。
步骤330:分别针对各个数据包执行以下操作:提取出一个数据包中,各个样本数据的各个特征数据,将所述各个特征数据分别发送至各个CPU。
具体的,一个样本数据可以包含若干特征数据,可以包含但不限于以下特征:用户身份标识号(Identity document,ID),视频ID,视频标签,用户所处物理位置等等。
另一方面,可以将各个所述样本数据包含的特征数据,分别发往指定的各个CPU,也可以分别随机发往各个CPU,具体实现方式不限定。
具体的,任意一个所述样本数据包中包含有不同的特征数据,而不同的特征数据可以被分别发往不同CPU进行处理。
步骤340:各个CPU采用设定的映射规则,将获得的各个样本数据的各个特征数据,映射成相应的表征向量。
具体的,以一个CPU(以下称为CPU X),当CPU X接收到一条特征数据时,会采用以下映射规则进行映射,获得相应的表征向量:
所述映射规则为:样本身份标识号(Identity document,ID)和表征向量之间的一一对应关系,所述样本ID与表征向量在计算机中以哈希表的形式存储,以用户ID作为样本ID为例,假设用户ID与征向量之间的对应关系如表1所示:
表1
用户ID | 用户ID的表征向量 |
0 | [0.1,0.15,0.203,0.12] |
1 | [0.21,0.2,0.01,-0.2] |
2 | [0.102,0.09,-0.1,-0.02] |
… | … |
例如,当接收到一条特征数据时,假设所述一条特征数据关联的用户ID为0,则CPUX会在本地内存的哈希表中找到所述用户ID对应的表征向量[0.1,0.15,0.203,0.12]。
另一方面,CPU X在处理各个特征数据的过程中,会将所述各个特征数据以及处理过程产生的表征向量及其他数据,保存在与CPU X搭配使用的内存中。
步骤350:分别针对各个数据包执行以下操作:提取出一个数据包中各个样本数据的样本ID和真实评估结果,并将获得的各个样本ID和相应的真实评估结果分别发送至各个GPU。
采用上述方式,每提取出一个数据包中各个样本数据的样本ID和真实评估结果,便随机发往各个GPU。
步骤360:各个GPU根据获得的各个样本ID,从各个CPU中获取对应的各个表征向量。
具体的,由于同一个样本数据包含的不同特征数据,可能被发往不同的CPU进行映射处理,因此,同一个样本数据包含的特征数据及相应的表征向量,也均会对应同一个样本ID,因此,任意一个GPU,在获得一个样本数据的样本ID,可以根据所述样本ID,从多个不同的CPU获取经过映射处理后的对应的表征向量,从而将一个样本数据对应的所有表征向量获取到本地进行集中处理。
另一方面,各个CPU也可以获得各个表征向量对应的样本ID,因此,实际应用中,也可以由各个CPU将映射后获得的表征向量,按照样本ID,主动发送至相应的GPU,上述流程步骤仅为举例。
步骤370:各个GPU根据获得的各个样本ID对应的各个表征向量以及真实评估结果,采用深度神经网络对预测模型进行训练。
具体的,以一个GPU(以下称为GPU X),当GPU X接收到各个样本ID各自对应的各个表征向量以及相应的真实评估结果后,GPU X将接收到的所述各个表征向量输入到初始的预测模型中,并采用深度神经网络对所述预测模型进行训练。
实际应用中,各个样本数据包含的各个表征向量均是批量输入预测模型进行训练,为了表述得更为清晰,下面仅以一个样本ID对应的一组表征向量(以下称为表征向量组X)为例进行说明。
GPU X将表征向量组X输入初始的预测模型之后,预测模型会输出相应的预测评估结果,所谓预测评估结果,即是指基于表征向量组X包含的各类特征(如,用户所处地理位置、视频标签等等),所计算得到的用户ID和视频ID之间,用户ID点击视频ID的预测概率值。
相应的,GPU X接收到的表征向量组X的样本ID对应的真实评估结果,即是指实际场景下,基于表征向量组X包含的各类特征(如,用户所处地理位置、视频标签等等),所得到的用户ID和视频ID之间,用户ID点击视频ID的真实概率值。
那么,GPU X将表征向量组X的预测评估结果和真实评估结果进行比较后,即可以得到两者之间的误差,采用所述误差,即可以计算得到相应的梯度,所谓梯度可以用于表征参数调整过程中的参数增量,即一种参数调整规则,可以用于指示各类参数的调整方式。基于所述参数调整规则,可以对所述预测模型的模型参数的取值进行调整,也可以对各个CPU上使用的映射规则包含的映射参数的取值进行调整。
上述各类参数的调整过程,也可以称为预测模型的参数调整过程。
另一方面,GPU X在进行预测模型训练的过程中,产生的各类相关数据,也会保存在与GPU X搭配使用的内存中。
实际应用中,GPU X上的预测模型的输入为:CPU X在先采用样本数据关联的样本ID查询到的各种表征向量的集合。
假设一条样本数据关联有用户ID和视频ID两种样本ID,在CPU X上查到的表征向量分别为[0.1,0.2,0.3,0.4],[-0.1,-0.2,-0.3,-0.4],在GPU X上会将两个表征向量拼接成[0.1,0.2,0.3,0.4,-0.1,-0.2,-0.3,-0.4],然后采用拼接后的表征向量代表原始的样本数据,送入GPU X中的预测模型进行预测,得到预测评估结果。
进一步地,本公开实施例中以点击率为例,即假设预测模型的输出为针对所述样本数据的预测点击率,所述预测点击率与所述样本数据的真实点击率进行比较后,可以求出一个损失函数,通过损失函数计算出GPU X上的梯度,进一步通过所述梯度,确定相应的参数调整规则。基于所述参数调整规则分别更新GPU X使用的预测模型中的各个模型参数,以及更新CPU X使用的哈希表中的映射参数。
这个更新过程,就是参数调整所述预测模型和哈希表的过程,而更新后的预测模型和更新后的哈希表即为参数调整结果。
进一步地,在任一GPU进行模型训练的过程中,所述任一GPU会将预测模型的参数调整结果同步更新到各个GPU和各个CPU中,以保证所有GPU和所述CPU的数据同步,如,对所述预测模型的模型参数进行更新后,将更新结果同步至各个GPU,以及对所述映射规则包含的映射参数进行更新后,将更新结果同步至各个CPU。
步骤380:各个GPU输出最终训练完成的预测模型。
当预测模型最终训练完毕后,可以使用此预测模型对实际场景中的用户行为进行预测,为用户推荐其感兴趣的内容。
具体的,以含4个视频的视频集合以及一个居住在A市喜爱篮球运动的用户X为例。本公开实施例中,假设视频集合中包含四个视频,包括视频A,视频B,视频C,视频D;视频类型分别为:视频A:非同城科教类视频,视频B:同城科教类视频,视频C:同城足球类视频,视频D:同城篮球类视频。
实际应用中,终端或服务器可以在用户X观看视频的过程中,针对上述待推荐的视频A,视频B,视频C,视频D,分别提取出用户X的特征数据,并映射为相应的表征向量组,分别记为表征向量组A,表征向量组B,表征向量组C和表征向量组D;
接着,终端或服务器会采用已训练好的预测模型,基于表征向量组A,表征向量组B,表征向量组C和表征向量组D,各自包含的各类特征(如,用户所处地理位置、视频标签、用户曾经点赞的视频,用户收藏的视频,用户停留时间较长的视频等等),分别评估用户X点击视频A,视频B,视频C,视频D的预测概率值,
参阅图4所示,在本公开实施例中,假设表征向量组A所包含的各类特征为:在B市发布的历史类视频;表征向量组B所包含的各类特征为:在A市发布的历史类视频;表征向量组C所包含的各类特征为:在A市发布的足球类视频;表征向量级D所包含的特征为:在A市发布的篮球类视频。
终端或服务器会采用已训练好的预测模型基于表征向量组A,表征向量组B,表征向量组C,表征向量组D包含的各类特征,分别获得用户X与视频A,视频B,视频C,视频D之间的预测评估结果,具体包括:视频A:点击概率值20%,视频B:点击概率值40%,视频C:点击概率值60%,视频D:点击概率值80%。
通常情况下,终端会按照点击概率值从大到小的顺序,对待推荐的视频进行排序,因此,终端最终向用户X推荐的视频顺序为:视频D,视频C,视频B,视频A。
经实际场景测试,采用本公开实施例中提供的分布式模型训练***,由于避免了在SSD中反复读写数据,因此,设置10个GPU+10个CPU,即可达到200万次/秒以上的训练速度,大大提升了模型训练效率。
基于上述实施例,参阅图5所示,本公开实施例提供一种分布式模型训练***,包括若干CPU 50和若干GPU51,其中,
任意一CPU50,用于在分配得到部分样本数据的各个特征数据时,将获得的各个特征数据按照预设的映射规则映射为相应的表征向量;
任意一GPU51,用于在分配得到部分样本数据的样本标识信息ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,直至训练完毕,其中,所述预测模型用于对待推荐文件的点击概率进行预测,以及在训练过程中,每次对所述预测模型进行参数调整后,在各个GPU之间同步参数调整结果。
可选的,采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练时,所述任意一GPU51用于:
每获得一个样本ID对应的各个表征向量,执行以下操作:
将一个样本ID对应的各个表征向量输入预测模型,得到相应的预测评估结果;
获取对应所述一个样本ID保存的真实评估结果;
将所述预测评估结果和所述真实评估结果进行比较,计算相应的误差;
基于所述误差,采用深度神经网络计算梯度,并采用所述模型梯度对所述预测模型进行参数调整。
可选的,采用所述梯度对所述预测模型进行参数调整时,所述任意一个GPU51用于:
基于所述梯度,确定相应的参数调整规则;
采用所述参数调整规则,调整所述预测模型中使用的各个模型参数;
采用所述参数调整规则,调整各个CPU所使用的映射规则包含的各个映射参数。
可选的,所述分布式模型训练***进一步包括:
第一CPU52,用于获取原始数据,并将所述原始数据进行格式转换后,生成相应的样本数据集合,以及将所述样本数据集合分割为设定数据量大小的各个数据包,将所述各个数据包中的各个样本数据的各个特征数据分别发往各个CPU,以及将所述各个数据包中的各个样本数据的样本ID分别发往各个GPU。
实际应用中,第一CPU52,可以设置在分布式模型训练***中,也可以设置的分布式模型训练***之外,本公开实施例不作限定。
可选的,将所述样本数据集合分割为设定数据量大小的数据包时,所述第一CPU52进一步用于:
将所述样本数据集合中的样本数据进行混合打散,并将经混合打散的样本数据集合分割为若干个设定数据量大小的数据包,令各个数据包各自包含有不同用户的样本数据。
基于同一发明构思,本公开实施例提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由处理器执行时,使得所述处理器能够执行上述各个实施例中介绍的CPU或GPU所执行的任意一种所述的方法。
基于同一发明构思,本公开实施例提供一种计算机程序产品,包含可执行指令,当所述计算机程序产品的可执行指令由处理器执行时,能够执行上述各个实施例中介绍的CPU或GPU所执行的任意一种所述的方法。
综上所述,本公开实施例中,在分布式模型训练***中设置了若干GPU和若干CPU,其中,任意一CPU,用于将分配得到的部分样本数据的各个特征数据按照预设的映射规则映射为相应的表征向量;任意一GPU,用于在分配得到部分样本数据的样本标识信息ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练;这样,只需要将海量的训练数据,读取至多个GPU和多个CPU的内存中进行处理,即可完成模型训练,不需要使用SSD,从而加快了处理效率,充分的发挥了各个GPU和各个CPU的计算性能,实现了多机扩展,进而有效提高了模型训练效率。
本领域内的技术人员应明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开实施例进行各种改动和变型而不脱离本公开实施例的精神和范围。这样,倘若本公开实施例的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (12)
1.一种分布式模型训练***,其特征在于,包括若干中央处理器CPU和若干图形处理器GPU,其中,
任意一CPU,用于在分配得到部分样本数据的各个特征数据时,将获得的各个特征数据按照预设的映射规则映射为相应的表征向量;
任意一GPU,用于在分配得到部分样本数据的样本标识信息ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,直至训练完毕,其中,所述预测模型用于对待推荐文件的点击概率进行预测,以及在训练过程中,每次对所述预测模型进行参数调整后,在各个GPU之间同步参数调整结果。
2.如权利要求1所述的***,其特征在于,进一步包括:
第一CPU,用于获取原始数据,并将所述原始数据进行格式转换后,生成相应的样本数据集合,以及将所述样本数据集合分割为设定数据量大小的各个数据包,将所述各个数据包中的各个样本数据的各个特征数据分别发往各个CPU,以及将所述各个数据包中的各个样本数据的样本ID分别发往各个GPU。
3.如权利要求2所述的***,其特征在于,将所述样本数据集合分割为设定数据量大小的数据包时,所述第一CPU进一步用于:
将所述样本数据集合中的样本数据进行混合打散,并将经混合打散的样本数据集合分割为若干个设定数据量大小的数据包,令各个数据包各自包含有不同用户的样本数据。
4.如权利要求1、2或3所述的***,其特征在于,采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练时,所述任意一GPU用于:
每获得一个样本ID对应的各个表征向量,执行以下操作:
将一个样本ID对应的各个表征向量输入预测模型,得到相应的预测评估结果;
获取对应所述一个样本ID保存的真实评估结果;
将所述预测评估结果和所述真实评估结果进行比较,计算相应的误差;
基于所述误差,采用深度神经网络计算梯度,并采用所述梯度对所述预测模型进行参数调整。
5.如权利要求4所述的***,其特征在于,采用所述梯度对所述预测模型进行参数调整时,所述任意一个GPU用于:
基于所述梯度,确定相应的参数调整规则;
采用所述参数调整规则,调整所述预测模型使用的各个模型参数;
采用所述参数调整规则,调整各个CPU使用的映射规则包含的各个映射参数。
6.一种分布式模型训练方法,其特征在于,包括:
采用若干中央处理器CPU分别接收各个样本数据的各个特征数据,以及分别采用各个CPU执行以下操作:通过一个CPU获得分配到的部分样本数据的各个特征数据时,将获得的各个特征数据按照预设的映射规则映射为相应的表征向量;
采用若干图形处理器GPU分别接收各个样本数据的样本标识信息ID,以及分别采用各个GPU执行以下操作:通过一个GPU获得分配到的部分样本数据的样本ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,直至训练完毕,其中,所述预测模型用于对待推荐文件的点击概率进行预测,以及在训练过程中,每次对所述预测模型进行参数调整后,在各个GPU之间同步参数调整结果。
7.如权利要求6所述的方法,其特征在于,采用若干CPU分别接收各个样本数据的各个特征数据,以及采用若干GPU分别接收各个样本数据的样本ID之前,进一步包括:
获取原始数据,并将所述原始数据进行格式转换后,生成相应的样本数据集合,以及将所述样本数据集合分割为设定数据量大小的各个数据包,并将所述各个数据包中的各个样本数据的各个特征数据分别发往各个CPU,以及将所述各个数据包中的各个样本数据的样本ID分别发往各个GPU。
8.如权利要求7所述的方法,其特征在于,将所述样本数据集合分割为设定数据量大小的数据包时,进一步包括:
将所述样本数据集合中的样本数据进行混合打散,并将经混合打散的样本数据集合分割为若干个设定数据量大小的数据包,令各个数据包各自包含有不同用户的样本数据。
9.如权利要求6、7或8所述的方法,其特征在于,通过一个GPU获得分配到的部分样本数据的样本ID时,基于获得的各个样本ID从各个CPU获得相应的表征向量,以及采用获得的各个表征向量,基于深度神经网络,对预测模型进行训练,包括:
通过所述一个GPU将一个样本ID对应的各个表征向量输入预测模型,得到相应的预测评估结果;
通过所述一个GPU获取对应所述一个样本ID保存的真实评估结果;
通过所述一个GPU将所述预测评估结果和所述真实评估结果进行比较,计算相应的误差;
通过所述一个GPU基于所述误差,采用深度神经网络计算梯度,并采用所述梯度对所述预测模型进行参数调整。
10.如权利要求9所述的方法,其特征在于,采用所述梯度对所述预测模型进行参数调整,包括:
通过所述一个GPU,基于所述梯度,确定相应的参数调整规则;
通过所述一个GPU,采用所述参数调整规则,调整所述预测模型中使用的各个模型参数;
通过所述一个CPU,采用所述参数调整规则,调整一个CPU所使用的映射规则包含的各个映射参数。
11.一种计算机可读存储介质,当其特征在于,所述计算机可读存储介质中的指令由处理器执行时,使得所述处理器能够执行如权利要求6-10任一项所述的方法。
12.一种计算机程序产品,其特征在于,包含可执行指令,当所述计算机程序产品的可执行指令由处理器执行时,能够执行如权利要求6-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010942954.XA CN112199885B (zh) | 2020-09-09 | 2020-09-09 | 一种分布式模型训练***及应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010942954.XA CN112199885B (zh) | 2020-09-09 | 2020-09-09 | 一种分布式模型训练***及应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199885A CN112199885A (zh) | 2021-01-08 |
CN112199885B true CN112199885B (zh) | 2021-07-06 |
Family
ID=74014525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010942954.XA Active CN112199885B (zh) | 2020-09-09 | 2020-09-09 | 一种分布式模型训练***及应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199885B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114266944B (zh) * | 2021-12-23 | 2022-08-12 | 安徽中科锟铻量子工业互联网有限公司 | 快速模型训练结果检验*** |
CN114723012B (zh) * | 2022-04-14 | 2024-07-02 | 支付宝(杭州)信息技术有限公司 | 基于分布式训练***的计算方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106846236A (zh) * | 2016-12-26 | 2017-06-13 | 中国科学院计算技术研究所 | 一种可扩展的分布式gpu加速方法及装置 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及*** |
CN110428231A (zh) * | 2019-08-06 | 2019-11-08 | 重庆仙桃前沿消费行为大数据有限公司 | 行政信息推荐方法、装置、设备及可读存储介质 |
CN111444019A (zh) * | 2020-03-31 | 2020-07-24 | 中国科学院自动化研究所 | 云端协同的深度学习模型分布式训练方法及*** |
CN111523044A (zh) * | 2020-07-06 | 2020-08-11 | 南京梦饷网络科技有限公司 | 用于推荐目标对象的方法、计算设备和计算机存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229687B (zh) * | 2016-12-14 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 数据处理方法、数据处理装置及电子设备 |
-
2020
- 2020-09-09 CN CN202010942954.XA patent/CN112199885B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106846236A (zh) * | 2016-12-26 | 2017-06-13 | 中国科学院计算技术研究所 | 一种可扩展的分布式gpu加速方法及装置 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及*** |
CN110428231A (zh) * | 2019-08-06 | 2019-11-08 | 重庆仙桃前沿消费行为大数据有限公司 | 行政信息推荐方法、装置、设备及可读存储介质 |
CN111444019A (zh) * | 2020-03-31 | 2020-07-24 | 中国科学院自动化研究所 | 云端协同的深度学习模型分布式训练方法及*** |
CN111523044A (zh) * | 2020-07-06 | 2020-08-11 | 南京梦饷网络科技有限公司 | 用于推荐目标对象的方法、计算设备和计算机存储介质 |
Non-Patent Citations (2)
Title |
---|
Heterogeneous blocked CPU-GPU accelerate scheme for large scale extreme learning machine;Shijie Li,Xin Niu,Yong Dou,Qi Lv,Yueqing Wang;《Neurocomputing》;20170208;第261卷;第153-163页 * |
基于近似牛顿法的分布式卷积神经网络训练;王雅慧,刘博,袁晓彤;《计算机科学》;20190731;第46卷(第7期);第180-185页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112199885A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912500A (zh) | 机器学习模型生成方法和装置 | |
JP2021502651A (ja) | 融合データ処理方法及び情報推薦システム | |
CN112199885B (zh) | 一种分布式模型训练***及应用方法 | |
CN111275491A (zh) | 一种数据处理方法及装置 | |
WO2021129055A1 (zh) | 信息预测模型训练方法及装置、信息预测方法及装置、存储介质、设备 | |
CN110889450B (zh) | 超参数调优、模型构建方法和装置 | |
CN113870395A (zh) | 动画视频生成方法、装置、设备及存储介质 | |
US10146659B2 (en) | Large event log replay method and system | |
WO2019169594A1 (en) | Methods and apparatus to generate three-dimensional (3d) model for 3d scene reconstruction | |
CN103441902B (zh) | 基于流媒体用户行为分析的流量产生方法 | |
CN106599291B (zh) | 数据分组方法及装置 | |
CN105138527B (zh) | 一种数据分类回归方法及装置 | |
CN115222443A (zh) | 客户群体划分方法、装置、设备及存储介质 | |
CN114372060A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN109948632A (zh) | 数据训练方法、装置及***、计算机设备 | |
CN108921138B (zh) | 用于生成信息的方法和装置 | |
US10313457B2 (en) | Collaborative filtering in directed graph | |
CN113536770A (zh) | 基于人工智能的文本解析方法、装置、设备及存储介质 | |
CN104965840B (zh) | 一种数据节点的随机分配方法及*** | |
CN107688582B (zh) | 资源推荐模型的获取方法及装置 | |
CN110874609A (zh) | 基于用户行为的用户聚类方法、存储介质、设备及*** | |
CN114676272A (zh) | 多媒体资源的信息处理方法、装置、设备及存储介质 | |
Baig et al. | Bit rate reduction in cloud gaming using object detection technique | |
CN114996509A (zh) | 训练视频特征提取模型和视频推荐的方法和装置 | |
CN113971428A (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 |