CN112541513A - 一种模型训练方法、装置、设备及存储介质 - Google Patents
一种模型训练方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112541513A CN112541513A CN201910893080.0A CN201910893080A CN112541513A CN 112541513 A CN112541513 A CN 112541513A CN 201910893080 A CN201910893080 A CN 201910893080A CN 112541513 A CN112541513 A CN 112541513A
- Authority
- CN
- China
- Prior art keywords
- feature data
- weight
- data
- weight parameter
- gpu
- 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.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 361
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000015654 memory Effects 0.000 claims abstract description 441
- 238000012545 processing Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 8
- 239000007787 solid Substances 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000007246 mechanism Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 18
- 238000004458 analytical method Methods 0.000 description 16
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 230000006872 improvement Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 208000000044 Amnesia Diseases 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 231100000863 loss of memory Toxicity 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种模型训练方法、装置、设备及存储介质,涉及人工智能技术领域。具体实现方案为:获取样本数据对应的各特征数据;从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,权值参数表征对应特征数据的重要程度;通过GPU从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数;获取显存中更新后的权值参数,并利用更新后的权值参数更新外存中对应的权值参数。本申请实施例的技术方案减少了存储模型训练样本所需投入的内存资源,减少了资源开销,同时提升了所训练任务的稳定性。
Description
技术领域
本申请涉及计算机技术,尤其涉及人工智能技术领域。
背景技术
在互联网海量信息数据中,隐藏着丰富的信息。深度学习模型可以从这些海量数据中进行特征提取,并根据所提取的特征向受众进行信息推荐。
在基于大数据进行模型训练过程中,一般采用基于参数服务器的分布式架构,然而分布式架构需要依赖大量的服务器节点,综合成本较高,训练结果稳定性存在挑战。另外,由于在模型训练过程中训练样本占用的内存资源较大,进一步增加了执行训练任务过程的成本投入。
发明内容
本申请提供了一种模型训练方法、装置、设备及存储介质,以减少模型训练的资源成本,同时提升训练任务的稳定性。
第一方面,本申请提供了一种模型训练方法,应用于计算机设备,包括:
获取样本数据对应的各特征数据;
从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,并将各所述特征数据与所述权值参数对应存储至显存中;
通过图像处理单元GPU从显存中读取各所述特征数据和各所述特征数据的所述权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各所述权值参数;
获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
本申请实施例通过获取样本数据对应的各特征数据;从外存中查询与各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,权值参数表征对应特征数据的重要程序;通过GPU从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数;获取显存中更新后的权值参数,并利用更新后的权值参数更新外存中对应的权值参数。上述技术方案通过在外存存储特征数据和权值参数的对应关系,并基于该对应关系进行权值参数的查找,根据查找结果进行后续的模型训练,大容量的外存(比如SSD)可以使训练机器的数量大幅减少,从而减小训练成本;并且通过GPU进行模型训练,提升了训练效率和所训练任务的稳定性。
可选的,获取样本数据对应的各特征数据,包括:
将所述样本数据存储至显存中;通过GPU读取并解析显存中的样本数据,得到所述样本数据对应的各所述特征数据,并将各所述特征数据存储在显存中;获取显存中所述样本数据对应的各所述特征数据;或者,
对所述样本数据进行解析,得到所述样本数据对应的各所述特征数据。
上述申请中的一个可选实施方式,通过GPU读取并解析显存中的样本数据得到各特征数据,或通过CPU直接进行样本数据的解析,得到样本数据对应的各特征数据,完善了特征数据的获取机制。
可选的,在单机训练时,所述从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,包括:
在本地计算机设备的外存中查询各特征数据分别对应的权值参数;
对于任一所述特征数据,若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数。
上述申请中的一个可选实施方式,通过在本地计算机设备的外存中进行权值参数的查询,并在查询成功时将查询到的权值参数作为特征数据对应的权值参数,在查询失败后采用其他方式进行权值参数的确定,完善了权值参数的确定机制,为后续的模型训练奠定数据基础。
可选的,所述样本数据有多条时,所述计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作。
上述申请中的一个可选实施方式,通过在单个计算机设备中设置的多个GPU并行进行模型训练和权值参数的更新,减少了模型训练和权值参数的更新所投入的时间成本,提高了模型训练和参数更新效率。
可选的,将各特征数据与权值参数对应存储至显存中,包括:
对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中;
所述多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作,包括:
各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的各目标GPU的显存中获取各所述特征数据和各所述特征数据的权值参数进行模型训练,将训练结果中包含的各所述特征数据对应的权值更新因子,分别同步至对应的目标GPU的显存中;
各所述目标GPU根据自身显存中存储的当前特征数据的各权值更新因子,对所述当前特征数据的权值参数进行更新。
上述申请中的一个可选实施方式,在单机训练时,通过目标GPU的确定,并通过将本地计算机设备外存中的数据存储至目标GPU,为进行模型训练的GPU所需的训练数据提供存储空间;由各GPU从目标GPU中获取特征数据和权值参数进行模型训练,并将模型训练结果中各特征数据对应的权值更新因子同步至目标GPU的显存中,为目标GPU中特征数据所对应的权值更新因子提供存储空间,以便目标GPU根据自身显存中当前特征数据的各权值更新因子进行当前特征数据的权值参数的更新,保证了多个权值更新因子对当前特征数据的权值参数的同步更新,完善了本地计算机设备自身进行模型训练和权值参数更新的机制。
可选的,在多机联合训练时,所述从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,包括:
针对各所述特征数据,按照第三预设规则确定保存有所述特征数据对应的权值参数的计算机设备;
若确定的计算机设备为本地计算机设备,则从所述本地计算机设备的外存中查询所述特征数据对应的权值参数;
若确定的计算机设备为其他计算机设备,则向所述其他计算机设备发送查询请求,以从所述其他计算机设备的外存中查询所述特征数据对应的权值参数;
若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数。
上述申请中的一个可选实施方式,通过多机联合训练时,可进行存储特征数据对应的权值参数的计算机设备的确定,以便从确定的计算机设备中进行权值参数的获取;在确定的计算机设备为其他计算机设备时,通过向其他计算机设备发送查询请求进行相应的权值参数的查询,完善了从其他计算机设备进行权值参数查询时的数据查询机制;在查询成功时将查询到的权值参数作为特征数据对应的权值参数,在查询失败时采用其他方式进行权值参数的确定,具体完善了权值参数的确定机制,进而为后续多机联合进行模型训练提供数据基础。
可选的,所述样本数据有多条时,所述计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作。
上述申请中的一个可选实施方式,在多机联合训练时,通过在某一计算机设备中设置的多个GPU并行进行模型训练和权值参数的更新,减少了模型训练和权值参数的更新所投入的时间成本,提高了模型训练和参数更新效率。
可选的,所述将各所述特征数据与所述权值参数对应存储至显存中,包括:
对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中;
所述多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作,包括:
各GPU按照第二预设规则确定自身针对的样本数据的各所述特征数据分别对应的目标GPU,并从确定的所述目标GPU的显存中获取各所述特征数据和各所述特征数据的所述权值参数进行模型训练;
对于训练结果中包含的各所述特征数据对应的权值更新因子,若根据第三预设规则确定的计算机设备为本地计算机设备,则将所述特征数据的所述权值更新因子同步至按照第二预设规则确定的目标GPU的显存中,以使本地计算机设备中的目标GPU根据自身显存中存储的所述特征数据的各所述权值更新因子,对所述特征数据的权值参数进行更新;
若根据第三预设规则确定的计算机设备为其他计算机设备,则将所述特征数据的所述权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,以使所述其他计算机设备中的目标GPU根据所述特征数据的各所述权值更新因子,对所述特征数据的所述权值参数进行更新。
上述申请中的一个可选实施方式,在多机联合训练时,通过在进行模型训练的计算机设备中进行目标GPU的确定,并在所确定的目标GPU对应的显存中进行特征数据和权值参数的存储,为进行模型训练的GPU所需的训练数据提供存储空间;当确定存储权值参数的计算机为本地计算机设备时,经模型训练之后,将训练结果中所包含的特征数据对应的权值更新因子同步至本地计算机设备的目标GPU对应的显存中,为目标GPU中的特征数据所对应的权值更新因子提供存储空间,以便目标GPU根据自身显存中当前特征数据的各权值更新因子,进行自身存储的特征数据的权值参数的更新,保证了多个权值更新因子对自身存储的特征数据的权值参数的同步更新,完善了多机联合训练时的参数更新机制。
上述申请中的另一可选是实施方式,在多机联合训练时,当确定存储权值参数的计算机为其他计算机设备时,精模型训练之后,将训练结果中所包含的特征参数对应的权值更新因子同步至其他计算机设备的目标GPU对应的显存中,为目标GPU中的特征数据所对应的权值更新因子提供存储空间,以便其他计算机设备的目标GPU对自身存储的特征数据对应的所有权值更新因子进行收集,并通过所收集的所有权值更新参数,对自身存储的特征数据的权值参数进行更新,保证了多个权值更新因子对自身存储的权值参数的同步更新,完善了多机联合训练时的参数更新机制。
可选的,将所述特征数据的所述权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,包括:
按照第二设定规则确定所述特征数据在所述其他计算机设备中对应的目标GPU,采用图像处理单元远程直接内存访问GPUDirect RDMA通信方式,将所述特征数据的所述权值更新因子,发送给确定的所述其他计算机设备中的目标GPU的显存中。
上述申请中的一个可选实施方式,在多机联合训练时,若确定的存储权值参数的计算机设备为其他计算机设备,则可以通过GPUDirect RDMA通信方式,直接向其他计算机设备的目标GPU中进行权值更新因子的发送,提高了数据传输效率。
可选的,所述方法还包括:
若接收到其他计算机设备发送的查询请求,则从本地计算机设备的外存中查询所述查询请求中包含的所述特征数据的所述权值参数;
将查询结果作为所述特征数据对应的权值参数返回给所述其他计算机设备,并按照第二预设规则确定所述特征数据对应的目标GPU,将所述特征数据和所述特征数据的所述权值参数存储至确定的目标GPU的显存中。
上述申请中的一个可选实施方式,通过在接收到其他计算机设备发送的查询请求时,进行查询请求中所包含的特征数据的权值参数的查询反馈,完善了本地计算机设备的外存中存储有其他计算机设备进行模型训练时所需的权值参数时,所对应的权值参数查询机制,并通过在本地计算机设备中进行目标GPU的确定,以及特征数据和权值参数的存储,为后续进行模型训练后的权值更新因子的收集提供空间,同时为权值参数的更新提供场所,为多个权值更新因子对权值参数的同步更新提供了保障。
可选的,在将所述特征数据和所述特征数据的所述权值参数存储至确定的目标GPU中之后,所述方法还包括:
通过所述特征数据对应的目标GPU接收所述其他计算机设备中的GPU发送的所述特征数据对应的所述权值更新因子,并将所述特征数据和所述权值更新因子对应存储至自身显存中;
通过所述特征数据对应的目标GPU,根据自身显存中存储的所述特征数据的各所述权值更新因子,对所述特征数据的所述权值参数进行更新。
上述申请中的一个可选实施方式,通过在特征数据和权值参数在本地计算机设备的目标GPU中的存储之后,接收并存储模型训练计算机设备的GPU发送的目标GPU所存储的特征数据对应的权值更新因子,并通过本地计算机设备的目标GPU中所存储的各权值更新因子对特征数据进行同步更新,完善了本地计算机设备的外存中存储有其他计算机设备进行模型训练时所需的权值参数时,对应的权值参数的更新机制。
可选的,从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,包括:
分别将各所述特征数据作为键key查询存储在外存中的哈希表,根据查询结果确定各所述特征数据的权值参数。
上述申请中的一个可选实施方式,在外存中通过哈希表的方式进行特征数据和权值参数的对应存储,进而通过特征数据作为键key在哈希表中进行相应的权值参数的查询,进一步完善了特征数据对应的权值参数的存储和查询方式。
可选的,所述获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数,包括:
获取显存中更新后的各权值参数,将各权值参数对应的特征数据分别作为键key,计算各权值参数在本计算机设备的外存中哈希表的存储地址,并更新所述存储地址处的权值参数。
上述申请中的一个可选实施方式,通过将特征数据作为键key进行外存中哈希表的存储地址的计算及相应存储地址处的权值参数的更新,进一步完善了对外存中权值参数的更新机制。
可选的,所述模型为点击率预测模型或推荐模型。
上述申请中的一个可选实施方式,通过将模型细化为点击率模型或推荐模型,将本申请所涉及的模型训练方法应用至向受众进行信息推荐这一具体应用场景,提高了向受众进行信息推荐时的推荐精准度。
可选的,所述外存为固态硬盘SSD;所述显存为高带宽存储器HBM。
上述申请中的一个可选实施方式,将外存细化为固态硬盘,将显存细化为HBM,进一步完善了进行数据存储、模型训练和参数更新时的硬件需求。
第二方面,本申请实施例还提供了一种模型训练装置,配置于计算机设备,包括:
特征数据获取模块,用于获取样本数据对应的各特征数据;
外存查询模块,用于从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,并将各所述特征数据与所述权值参数对应存储至显存中;
模型训练模块,用于从显存中读取各所述特征数据和各所述特征数据的所述权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各所述权值参数;
外存更新模块,用于获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
第三方面,本申请实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面实施例所提供的一种模型训练方法。
第四方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如第一方面实施例所提供的一种模型训练方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例一中的一种模型训练方法的流程图;
图2是本申请实施例二中的一种模型训练方法的流程图;
图3是本申请实施例三中的一种模型训练方法的流程图;
图4是本申请实施例四中的一种模型训练方法的流程图;
图5是本申请实施例五中的一种模型训练方法的流程图;
图6是本申请实施例六中的一种模型训练方法的流程图;
图7是本申请实施例七中的一种模型训练装置的结构图;
图8是用来实现本申请实施例的模型训练方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
实施例一
图1是本申请实施例一中的一种模型训练方法的流程图,本申请实施例适用于通过计算机设备中的GPU(Graphics Processing Unit,图像处理单元)进行模型训练的情况,该方法由模型训练装置执行,该装置通过软件和/或硬件实现,并具体配置于具备一定数据运算能力的计算机设备中。
如图1所述的一种模型训练方法,包括:
S101、获取样本数据对应的各特征数据。
其中,样本数据可以是用户在信息展示平台中对不同信息所产生的交互信息。例如,样本数据可以是用户在广告平台中的历史浏览日志;相应的特征数据可以是广告标题对应的上下文特征以及用户信息对应的用户特征等中的至少一个。例如样本数据还可以是用户在共享租借平台中对共享元素的历史查询日志、历史下单日志、或者历史评论数据等;相应的特征数据可以是搜索词对应的查询特征、下单日志或评论数据等对应的时间特征(例如下单时间)、地理特征(例如用户登录地址、共享元素目标地址等)以及上下文特征等中的至少一个。
其中,样本数据可以预先存储在当前计算机设备本地,或与当前计算机设备所关联的其他存储设备或云端中,并在需要时从当前计算机设备本地、与当前计算机设备所关联的其他存储设备或云端中进行样本数据的查找获取。然后,对获取的样本数据加以解析,得样本数据对应的至少一个特征数据。
或者,预先在当前计算机设备本地,或与当前计算机设备所关联的其他存储设备或云端中进行不同样本数据对应的至少一个特征数据的存储,并在需要时,从当前计算机设备本地、与当前计算机设备所关联的其他存储设备或云端中,根据样本数据与各特征数据之间的对应关系,进行特征数据的查找获取。
其中,样本数据的数量可以是一个,也可以是多个。
可选的,获取样本数据对应的各特征数据,可以是:针对任一样本数据,通过计算机设备的CPU(Central Processing Unit,中央处理器)进行样本数据的获取,并将获取的样本数据存储至显存中;通过GPU读取并解析显存中的样本数据,得到样本数据对应的各特征数据,并将各特征数据存储在显存中;通过CPU获取显存中样本数据对应的各特征数据。
或者可选的,获取样本数据对应的各特征数据,还可以是:针对每一样本数据,通过计算机设备的CPU对样本数据的获取,并直接对样本数据进行解析,得到样本数据对应的各特征数据。
S102、从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中。
其中,所述权值参数表征对应特征数据的重要程度;典型的,权值参数为数值型参数。
在该步骤中,预先在计算机设备的外存中存储不同特征数据对应的权值参数,并在需要时,由计算机设备的CPU从外存数据根据各特征数据与权值参数之间的对应关系进行权值参数的查找。需要说明的是,在外存中预先存储不同特征数据对应的权值参数时,可以将首次存储的特征数据对应的权值参数设置为默认数值、空值、或随机数。
相应的,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中可以是:针对每一特征数据,在查询成功时,也即查询到数据为数值型的参数时,通过计算机设备的CPU将查询到的数值型的参数作为该特征数据对应的权值参数;在查询失败,也即查询不到数据,或查询到的数据为非数值型数据时(例如空值),可以计算机设备的CPU设定随机数作为该特征数据对应的权值参数。通过CPU将各特征数据以及确定的各特征数据对应的权值参数,对应存储至计算机设备的显存中。
可选的,将各特征数据与权值参数对应存储至显存中,可以是将多个特征数据与各特征数据对应的权值参数有序存储至同一GPU对应的显存。当然,为了便于对不同特征数据进行有效区分,同时避免相同特征数据在显存中的重复存储,还可以对不同特征数据在整个计算机设备或计算机群组中建立唯一的特征数据标识,例如可以是特征编号。
或者可选的,为了便于对不同特征数据加以管理,以及便于多个其他GPU对相同特征数据的同时处理,还可以将不同特征数据分别在计算机设备中进行存储GPU的分配,并将特征数据和对应的权值参数存储至所分配的存储GPU对应的显存中。
需要说明的是,特征数据与权值参数的存储形式可以采用现有技术的任何方式加以实现,本申请对此不做任何限定。
可以理解的是,为了便于数据的查找,可以采用哈希表的方式进行存储,也即对特征数据进行哈希计算后,得到存储地址,并将特征数据对应的权值参数存储至得到的存储地址内。相应的,从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,可以是:分别将各特征数据作为键key查询存储在外存中的哈希表,根据查询结果确定各特征数据的权值参数。
S103、通过GPU从显存中读取各特征数据和各特征数据的权值参数进行模型训练,并根据训练结果更新显存中的各权值参数。
在该步骤中,用于进行模型训练的训练GPU,根据需求从显存中读取各特征数据以及各特征数据对应的权值参数,并将读取的特征数据和特征数据对应的权值参数输入至预先构建的模型中,以对模型的参数进行训练优化;根据优化后的模型输出训练结果,并根据训练结果更新存储GPU中所存储的权值参数。
其中,模型可以是点击率预测模型或推荐模型,用于对受众对信息展示平台中的元素的交互行为进行预测。示例性地,可以预测用户在广告平台中感兴趣的广告信息,进而根据预测结果向用户进行广告信息的推送或展示;还可以在共享租借平台中预测用户对共享元素的浏览或下单等情况,进而根据预测结果向用户进行相应共享元素的推送。示例性地,模型可以采用某一种机器学习模型,或多种机器学习模型组合得到的新的模型。典型的,机器学习模型可以是神经网络模型。
其中,模型的输入为样本数据对应的至少一个特征数据,以及各特征数据对应的权值参数。模型的输出结果可以包括各特征数据对应的新的权值参数。
需要说明的是,可以采用计算机设备中的多个训练GPU同时针对不同的样本数据分别进行模型训练。其中,训练GPU与存储有特征数据和权值参数的存储GPU可以完全一致,也可以完全隔离,还可以存在部分交叉。
当然,可以理解的是,为了减少训练模型所需投入的时间成本,还可以在各训练GPU一个训练阶段完成后,将调整后的模型参数反馈至计算机设备的CPU中,通过CPU根据各模型参数统一调整模型后,将调整后的模型分别下发至各训练GPU中,进行下一阶段的模型训练。示例性地,CPU根据各模型参数统一调整模型,可以是根据不同训练GPU所训练的样本数量分别确定各训练GPU的训练权重,并根据各训练GPU的训练权重以及反馈的模型参数加权,进行模型参数的统一调整。其中,模型的训练阶段可以通过时间窗口加以划分,不同训练阶段采用相应时间窗口对应的样本数据进行模型训练。
可以理解的是,由于多个时间窗口对应的样本数据可以同时进行模型训练,达到了多级流水线训练的效果,可以让计算机设备中的多种硬件同时处于运转状态,显著提升了训练效率。
然而,流水线的使用带来了内存的消耗,因为会提前读取下一时间窗口对应样本数据及权值参数,并存储在内存中,等待当前窗口处理完毕,为了控制内存资源的使用,还可以在流水线控制过程中引入反压机制,也即严格控制同时存在的时间窗口的数量,准确控制内存占用量。其中,时间窗口的数量可以由技术人员根据需要或经验值设定,或通过大量试验加以确定。其中,时间窗口的窗口长度可以根据计算机设备所包含的GPU的总数量进行确定。
可以理解的是,为了实现对模型的持续更新,便于下次模型训练时能够顺利获取到前次模型的相关数据,在每次进行模型训练之后,可以将模型文件以二进制文件的形式存储在云端,例如可以存储在HDFS(Hadoop Distributed File System,分布式文件系统)中。相应的,在每次进行模型训练之前,启动一组线程,每个线程启动一个HADOOP CLIENT从HDFS进行模型文件的下载,直至将所有模型文件都下载到本地。其中,模型文件包括已训练模型的模型参数以及已存储的各特征数据和最新的权值参数之间的对应关系。
为了防止模型训练过程中发生意外,而导致模型损坏,还可以周期性的将完整的模型备份进行冗余存储。其中,备份周期和备份位置可以由技术人员根据需要自行设定。例如,备份周期可以是一天,备份位置可以是前述HDFS中。
为了加快模型的导出速度,可以利用计算机设备的外存(例如固态硬盘SSD)作为大容量缓存区,先在计算机设备中生成二进制的模型文件,然后再启动一个进程,将模型文件从外存上传至HDFS。采用上述操作,可以同时启动更多的后台进程进行文件的上传操作,大幅度提升了网络带宽的利用率。
示例性地,根据训练结果更新显存中的各权值参数,可以是由训练GPU直接将训练结果所对应的新的权值参数,发送至存储该特征数据的权值参数的存储GPU中,以替换该存储GPU中的权值参数,从而达到更新显存中的各权值参数的目的。
当然,为了避免在不同样本数据包含同一特征数据时,对权值参数的更新存在遗漏的情况,还可以由训练GPU将训练结果中包含的各特征数据对应的权值更新因子,发送至存储该特征数据的存储GPU中;存储GPU接收到所存储的特征数据对应的各权值更新因子后,根据接收到的各权值更新因子更新所存储特征数据的权值参数。其中,权值更新因子用于对权值参数进行更新,以得到新的权值参数。需要说明的是,具体的参数更新方式由技术人员根据需要或经验加以确定,例如可以是加、减、乘、除、幂指、及微积分等中的至少一种。
示例性地,权值更新因子可以是更新梯度值,针对每一个权值参数w,可以采用以下公式对w进行更新:
w'=w-l_r×Δw;
其中,w'为更新后的权值参数,l_r为所训练模型的学习率,△w为更新梯度值。其中,学习率为模型训练过程中的超参,学习率可以是一个固定值,也可以在模型训练中根据需要进行动态调整。需要说明的是,学习率的具体设定可由技术人员根据需要或经验值进行设置或调整。
S104、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
计算机设备的CPU从GPU中进行各特征数据对应的更新后的权值参数的获取,并利用更新后的权值参数对计算机设备外存中相应的各特征数据对应的权值参数加以更新。
可选的,当在外存中采用哈希表进行各特征数据和相应的权值参数的存储时,获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数,可以是:获取显存中更新后的各权值参数,将各权值参数对应的特征数据分别作为键key,计算各权值参数在本计算机设备的外存中哈希表的存储地址,并更新所述存储地址处的权值参数。
示例性地,外存可以是固态硬盘或者机械硬盘;显存可以是HBM(High BandwidthMemory,高带宽存储器)。
可以理解的是,由于硬盘的空间容量较大,但是IO性能落后内存2~3个数量级,致使模型训练的速度会大幅度降低。因此,可以从外存中的文件存储格式、索引结果、IO中断处理、线程调度以及IO模型等至少一个方面进行性能优化,控制读放大、写放大和空间放大等情况中的至少一种。
可以理解的是,HBM带宽高达900GB/s,采用独立的HBM进行模型训练。由于HBM容量有限,还可以通过采用多个HBM采用分布式方式进行各特征数据和相应权值参数的存储,形成存储空间相对较大的高速参数服务器。
本申请实施例通过获取样本数据对应的各特征数据;从外存中查询与各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,权值参数表征对应特征数据的重要程序;通过GPU从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数;获取显存中更新后的权值参数,并利用更新后的权值参数更新外存中对应的权值参数。上述技术方案通过在外存存储特征数据和权值参数的对应关系,并基于该对应关系进行权值参数的查找,根据查找结果进行后续的模型训练,大容量的外存(比如SSD)可以使训练机器的数量大幅减少,从而减小训练成本;并且通过GPU进行模型训练,提升了训练效率和所训练任务的稳定性。
实施例二
图2是本申请实施例二中的一种模型训练方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进,本申请实施例适用于采用单个计算机设备进行模型训练的情况。
进一步地,将操作“获取样本数据对应的各特征数据”细化为“将所述样本数据存储至显存中;通过GPU读取并解析显存中的样本数据,得到所述样本数据对应的各特征数据,并将各特征数据存储在显存中;获取显存中所述样本数据对应的各特征数据”,以通过计算机设备的CPU直接进行特征数据的获取,完善了特征数据的获取机制。
进一步地,将操作“从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数”细化为“在本地计算机设备的外存中查询各特征数据分别对应的权值参数;对于任一特征数据,若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数”,以完善单机训练时的权值参数获取机制。
进一步地,在样本数据有多条时,将操作“将各特征数据与权值参数对应存储至显存中”,细化为“对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中”;
相应的,通过计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作,并将模型训练和权值参数的更新操作,具体细化为“各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的各目标GPU的显存中获取特征数据和各特征数据的权值参数进行模型训练,将训练结果中包含的各特征数据对应的权值更新因子,分别同步至对应的目标GPU的显存中;各目标GPU根据自身显存中存储的当前特征数据的各权值更新因子,对所述当前特征数据的权值参数进行更新”,以完善单机训练时的权值参数的更新机制。
如图2所述的一种模型训练方法,包括:
S201、将所述样本数据存储至显存中。
S202、通过GPU读取并解析显存中的样本数据,得到所述样本数据对应的各特征数据,并将各特征数据存储在显存中。
S203、获取显存中所述样本数据对应的各特征数据。
通过计算机设备的CPU将样本数据存储至解析GPU的显存中;解析GPU接收样本数据后,读取并解析样本数据,得到样本数据对应的至少一个特征数据,并将各特征数据存储至解析GPU的显存中,或者存储至其他GPU的显存中;CPU从存储有各特征数据的GPU中进行特征数据的获取。
在本申请实施例的一种可选实施方式中,解析GPU可以将各特征数据存储至自身对应的显存中,以便CPU可以进行样本数据对应的特征数据的获取。
在本申请实施例的另一可选实施方式中,解析GPU将各特征数据存储至其他GPU的显存中,可以是:通过CPU基于设定计算规则,向各特征数据分配目标GPU,并将分配结果发送给解析GPU,以使解析GPU基于分配结果将各特征数据分别存储至相应的目标GPU中;或者还可以基于设定计算规则,由解析GPU向各特征数据分配目标GPU,并将各特征数据分别存储至相应的目标GPU中。相应的,CPU从各目标GPU中进行各特征数据的获取。
示例性地,基于设定计算规则,向各特征数据分配目标GPU,可以是:将特征数据与计算机设备中所包含的GPU的数量进行取模运算,根据运算结果向各特征数据进行目标GPU的分配。可以理解的是,目标GPU可以包括或不包括解析GPU。
举例说明,若计算机设备中设置有5个GPU,分别为GPU1~GPU5。当CPU将当前样本数据A发送至GPU5对应的显存中,并通过GPU5进行解析,得到当前样本数据对应的特征数据1~特征数据2。若通过运算,确定特征数据1对应的目标GPU为GPU1,特征数据2对应的目标GPU为GPU2,则GPU5分别将特征数据1存储至GPU1对应的显存中,将特征数据2存储至GPU2对应的显存中。
可以理解的是,为了便于后续进行样本数据对应的特征数据的获取,还可以预先在解析GPU或CPU中存储不同样本数据对应的特征数据集合。当然,为了简化特征数据集合中包含的数据内容,可以在特征数据集合中仅存储各特征数据的标识信息,例如通过哈希计算得到的各特征数据对应的哈希值。
S204、在本地计算机设备的外存中查询各特征数据分别对应的权值参数。
其中,所述权值参数表征对应特征数据的重要程度;典型的,权值参数为数值型参数。
其中,在本地计算机设备的外存中存储有不同特征数据对应的权值参数;相应的,CPU基于外存中各特征数据与权值参数之间的对应关系,查找各特征数据所对应的权值参数。
S205、对于任一特征数据,判定查询是否成功;如果是,则执行S206A;否则,执行S206B。
示例性地,当能够从本地计算机设备的外存中查找到某一特征数据对应的数值型的权值参数时,则表明查询成功;当无法从本地计算机设备的外存中查找到某一特征数据对应的数值型的权值参数,例如查找到非数值型(如空值)或不存在相应的特征数据时,则表明查询失败。
S206A、将查询到的权值参数作为所述特征数据对应的权值参数;继续执行S207。
当查询成功时,可以直接将查询到的权值参数确定为特征数据对应的权值参数。
S206B、按照第一预设规则为所述特征数据确定权值参数;继续执行S207。
当查询失败时,可以按照第一预设规则为特征数据进行权值参数的确定。其中,第一预设规则可以由技术人员根据需要或经验进行设定,例如可以采用随机生成规则为特征数据生成对应的随机数作为权值参数。
S207、对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中。
在该步骤中,对于每一特征数据,CPU按照第二预设规则确定特征数据对应的目标GPU,并将特征数据和确定的特征数据对应的权值参数,存储至对应的目标GPU的显存中。
其中,CPU按照第二预设规则确定特征数据对应的目标GPU,可以是:将特征数据与计算机设备中所包含的GPU的数量进行取模运算,根据运算结果向各特征数据进行目标GPU的分配。可以理解的是,目标GPU可以包括或不包括解析GPU。
举例说明,若计算机设备中设置有5个GPU,分别为GPU1~GPU5。当CPU将当前样本数据A发送至GPU5对应的显存中,并通过GPU5进行解析,得到当前样本数据A对应的特征数据1~特征数据2。CPU将特征数据1与GPU的计算机设备中所包含的GPU的数量5进行取模运算,确定与特征数据1对应的目标GPU1,并将特征数据1和权值参数1存储至目标GPU1对应的显存中;CPU将特征数据2与GPU的计算机设备中所包含的GPU的数量5进行取模运算,确定与特征数据2对应的目标GPU2,并将特征数据2和权值参数2存储至目标GPU2对应的显存中。可以理解的是,若在S202中将各特征数据存储在显存中时,已经将各特征数据存储至对应的目标GPU,则在S207中可以仅通过确定目标GPU,并将获取的特征数据对应的权值参数存储至相应的目标GPU即可,无需再进行特征数据的重复存储,以减少数据传输量和存储空间。
S208、各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的各目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练,将训练结果中包含的各特征数据对应的权值更新因子,分别同步至对应的目标GPU的显存中。
示例性地,针对每一样本数据,采用其中一个训练GPU进行模型训练时,训练GPU根据预先存储的样本数据对应的特征数据集合,确定自身训练时所需的样本数据对应的各特征数据;训练GPU按照第二预设规则确定各特征数据对应的目标GPU,并从确定的各目标GPU的显存中获取各特征数据和各特征数据对应的权值参数进行模型训练;将训练结果中包含的各特征数据对应的权值更新因子,分别同步至对应存储特征数据的目标GPU的显存中。
举例说明,若样本数据A对应的特征数据集合为{特征数据1,特征数据2},则分别确定特征数据1对应的目标GPU和特征数据2对应的目标GPU,并从所确定的各目标GPU中分别进行特征数据1以及特征数据1对应的权值参数1、和特征数据2以及特征数据2对应的权值参数的获取;通过获取的特征数据1与权值参数1、和特征数据2与权值参数2对训练GPU中的模型进行训练。
可以理解的是,当不同训练GPU在进行模型训练时,训练数据中可能包含同样的特征数据,那么不同训练GPU会针对该特征数据分别输出一权值更新因子,各训练GPU需要将各权值更新因子均同步至相应的目标GPU的显存中,避免权值更新因子的遗漏情况的发生。
S209、各目标GPU根据自身显存中存储的当前特征数据的各权值更新因子,对所述当前特征数据的权值参数进行更新。
各目标GPU接收各训练GPU训练结果中的权值更新因子。由于不同训练GPU可能会采用相同的特征数据进行模型训练,因此,目标GPU可能接收到来自至少一个训练GPU发送的权值更新因子。相应的,目标GPU将会根据接收到的所有权值更新因子对自身显存中存储的特征数据的权值参数进行更新。
举例说明,样本数据A对应的特征数据集合为{特征数据1,特征数据2},样本数据B对应的特征数据集合为{特征数据1,特征数据3},训练GPU1针对样本数据A进行模型训练,训练GPU2针对样本数据B进行模型训练,那么相应的存储特征数据1的目标GPU1会接收到训练GPU1反馈的权值更新因子α1和训练GPU2反馈的权值更新因子α2;存储特征数据2的目标GPU2会接收到训练GPU1反馈的权值更新因子β1;存储特征数据3的目标GPU3会接收到训练GPU2反馈的权值更新因子γ1。相应的,目标GPU1采用权值更新因子α1和权值更新因子α2对目标GPU1显存中的权值参数进行更新;目标GPU2采用权值更新因子β1对目标GPU2显存中的权值参数进行更新;目标GPU3采用权值更新因子γ1对目标GPU3显存中的权值参数进行更新。
S210、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
CPU从各目标GPU中获取更新后的权值参数,并采用更新后的权值参数对计算机设备外存中的权值参数加以更新,以便下一次从外存中获取的权值参数为最新的权值参数。
本申请实施例通过GPU进行样本数据的解析,进而得到样本数据对应的各特征数据,为多样本数据的同时解析奠定基础,从而减少了对内存资源的损耗,加快了样本数据的解析速度。
本申请实施例通过将根据查询结果确定各特征数据的权值参数细化为在查询成功时采用查询到的权值参数作为特征数据对应的权值参数,而将查询失败时采用第一预设规则进行权值参数的确定,从而避免了特征数据首次出现导致初始权值参数不存在,而无法进行后续模型训练的情况,保证了模型训练步骤的顺利进行。
本申请实施例通过在单机训练时,针对各特征数据确定目标GPU,将各特征数据对应存储至目标GPU的显存中,并通过各GPU从目标GPU显存中进行特征数据和相应权值参数的获取,达到了多个GPU并行进行模型训练效果,提高了模型训练效率,完善了模型的训练机制。同时,通过将训练结果中的权值更新因子分别同步至各特征数据对应的目标GPU中,使得目标GPU能够为特征数据、特征数据对应的权值参数以及权值更新因子提供相应的暂存空间,以使目标GPU根据所接收的各权值更新因子进行权值参数的更新,充分利用了每个训练阶段所使用的样本数据中各特征数据对应的权值更新因子,实现了对权值参数的充分更新,从而完善了单机训练时的权值参数的更新机制。
实施例三
图3是本申请实施例三中的一种模型训练方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进,本申请实施例适用于采用单个计算机设备进行模型训练的情况。
进一步地,将操作“获取样本数据对应的各特征数据”细化为“对所述样本数据进行解析,得到所述样本数据对应的各特征数据”,以通过CPU解析样本数据进行特征数据的获取,丰富了特征数据的获取方式。
如图3所示的一种模型训练方法,包括:
S301、对样本数据进行解析,得到所述样本数据对应的各特征数据。
在该步骤中,由计算机设备的CPU直接对至少一个样本数据进行解析,分别得到各样本数据对应的各特征数据。
为了便于后续对不同样本数据对应的各特征数据的查找,CPU在得到样本数据对应的各特征数据之后,还可以将各样本数据对应的特征数据集合在CPU或GPU中进行存储。
例如,当解析得到样本数据A对应的特征数据1和特征数据2后,将样本数据A和与样本数据A对应的特征数据集合{特征数据1,特征数据2}对应存储在CPU或GPU中。当然,为了简化特征数据集合中包含的数据内容,可以在特征数据集合中仅存储各特征数据的标识信息,例如通过哈希计算得到的各特征数据对应的哈希值。
S302、在本地计算机设备的外存中查询各特征数据分别对应的权值参数。
其中,所述权值参数表征对应特征数据的重要程度。
S303、对于任一特征数据,判定查询是否成功;如果是,则执行304A;否则,执行S304B。
S304A、将查询到的权值参数作为所述特征数据对应的权值参数;继续执行S305。
S304B、按照第一预设规则为所述特征数据确定权值参数。继续执行S305。
S305、对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中。
S306、各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的各目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练,将训练结果中包含的各特征数据对应的权值更新因子,分别同步至对应的目标GPU的显存中;
S307、各目标GPU根据自身显存中存储的当前特征数据的各权值更新因子,对所述当前特征数据的权值参数进行更新。
S308、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
本申请实施例中的S302~S308与前述实施例中的S204~S210一一对应,相关内容可参见前述实施例,在此不再赘述。
本申请实施例在单机训练的过程中,通过将样本数据对应的各特征数据的获取步骤细化为对样本数据进行解析,得到样本数据对应的各特征数据,以通过CPU直接解析样本数据的方式进行特征数据的获取,丰富了特征数据的获取方式。
实施例四
图4是本申请实施例四中的一种模型训练方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进,本申请实施例适用于多个计算机设备联合进行模型训练的情况。
进一步地,在多机联合训练时,将操作“从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数”细化为“针对各特征数据,按照第三预设规则确定保存有包含所述特征数据对应的权值参数的计算机设备;若确定的计算机设备为本地计算机设备,则从所述本地计算机设备的外存中查询所述特征数据对应的权值参数;若确定的计算机设备为其他计算机设备,则向所述其他计算机设备发送查询请求,以从所述其他计算机设备的外存中查询所述特征数据对应的权值参数;若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数”,以完善多机训练时的权值参数的确定机制。
进一步地,在样本数据有多条时,将操作“将各特征数据与权值参数对应存储至显存中”细化为“对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中”;
相应的,通过计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作,并将模型训练和权值参数的更新操作,具体细化为“各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练;对于训练结果中包含的各特征数据对应的权值更新因子,若根据第三预设规则确定的计算机设备为本地计算机设备,则将所述特征数据的权值更新因子同步至按照第二预设规则确定的目标GPU的显存中,以使本地计算机设备中的目标GPU根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新;对于训练结果中包含的各特征数据对应的权值更新因子,若根据第三预设规则确定的计算机设备为其他计算机设备,则将所述特征数据的权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,以使所述其他计算机设备中的目标GPU根据所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新”,以完善多机训练时的权值参数的更新机制。
如图4所示的一种模型训练方法,包括:
S401、将所述样本数据存储至显存中。
S402、通过GPU读取并解析显存中的样本数据,得到所述样本数据对应的各特征数据,并将各特征数据存储在显存中。
S403、获取显存中所述样本数据对应的各特征数据。
通过当前计算机设备的CPU将样本数据存储至解析GPU的显存中;解析GPU接收样本数据后,读取并解析样本数据,得到样本数据对应的至少一个特征数据,并将各特征数据存储至解析GPU的显存中,或者存储至当前计算机设备的其他GPU的显存中;CPU从存储有各特征数据的GPU中进行特征数据的获取。
在本申请实施例的一种可选实施方式中,解析GPU可以将各特征数据存储至自身对应的显存中,以便CPU可以进行样本数据对应的特征数据的获取。
在本申请实施例的另一可选实施方式中,解析GPU将各特征数据存储至其他GPU的显存中,可以是:通过CPU基于设定计算规则,在当前计算机设备中向各特征数据分配目标GPU,并将分配结果发送给解析GPU,以使解析GPU基于分配结果将各特征数据分别存储至相应的目标GPU中;或者还可以基于设定计算规则,由解析GPU向各特征数据分配当前计算机设备中的目标GPU,并将各特征数据分别存储至相应的目标GPU中。相应的,当前计算机设备的CPU从各目标GPU中进行各特征数据的获取。
示例性地,基于设定计算规则,向各特征数据分配当前计算机设备的目标GPU,可以是将特征数据与当前计算机设备中所包含的GPU的数量进行取模运算,根据运算结果向各特征数据进行当前计算机设备中的目标GPU的分配。可以理解的是,目标GPU可以包括或不包括解析GPU。
可以理解的是,为了便于后续进行样本数据对应的特征数据的获取,还可以预先在解析GPU或CPU中存储不同样本数据对应的特征数据集合。当然,为了简化特征数据集合中包含的数据内容,可以在特征数据集合中仅存储各特征数据的标识信息,例如通过哈希计算得到的各特征数据对应的哈希值。
举例说明,计算机设备1中设置有5个GPU,分别为GPU11~GPU15;计算机设备2中设置有3个GPU,分别为GPU21~GPU23。选取计算机设备1中的GPU15作为训练GPU针对样本数据A进行模型训练;选取计算机设备2中的GPU21作为训练GPU针对样本数据B进行模型训练。
其中,样本数据A对应的特征数据集合为{特征数据1,特征数据2}。其中,样本数据B对应的特征数据集合为{特征数据1,特征数据3}。其中,特征数据1对应的权值参数存储在计算机设备1的外存中;特征数据2和特征数据3对应的权值参数存储在计算机设备2的外存中。
计算机设备1的CPU将样本数据A存储至GPU11对应的显存中,并通过GPU11对样本数据A进行解析,得到特征数据1和特征数据2,并将各特征数据存储在GPU11的显存中。计算机设备1中的CPU获取GPU11中的特征数据1和特征数据2。
计算机设备2的CPU将样本数据B存储至GPU21对应的显存中,并通过GPU21对样本数据B进行解析,得到特征数据1和特征数据3,并将各特征数据存储在GPU21的显存中。计算机设备2中的CPU获取GPU21中的特征数据1和特征数据3。
S404、针对各特征数据,按照第三预设规则确定保存有所述特征数据对应的权值参数的计算机设备。
其中,所述权值参数表征对应特征数据的重要程度;典型的,权值参数为数值型参数。
由于本申请实施例中涉及多个计算机设备联合进行模型训练,因此,在当前计算机设备进行模型训练前,需要进行特征数据对应的权值参数的获取。而各特征数据对应的权值参数可能存储在本地计算机设备和/或其他计算机设备的外存中,因此在针对每一特征数据进行权值参数的获取时,预先确定存储该特征数据对应的权值参数的计算机设备是本地计算机设备还是其他计算机设备。
具体的,根据样本数据与特征数据集合之间的对应关系,确定样本数据对应的各特征数据;针对任一特征数据,按照第三预设规则确定保存有该特征数据对应权值参数的计算机设备。其中,第三预设规则可以由技术人员根据需要或经验加以设定。
示例性地,可以将特征数据与计算机设备数量进行取模运算,根据运算结果确定存储有该特征数据的权值参数的计算机设备。
示例性地,还可以针对计算机设备集群设置一全局通用的特征数据与计算机设备存储关系对照表,以通过该对照表并基于特征数据的标识信息,确定存储有该特征数据对应的权值参数的计算机设备的标识信息,进而在查找到的计算机设备中进行权值参数的查询。当然,当有新的特征数据存储时,需要对该对照表中的数据进行相应更新。示例性地,计算机设备的标识信息可以是计算机设备编号。
S405、针对各特征数据,判定确定的计算机设备是否为本地计算机设备;若是,则执行S406A;若否,则执行S406B。
将确定的计算机设备的标识信息与本地计算机设备的标识信息进行比对,根据比对结果确定计算机设备是否为本地计算机设备。
S406A、从所述本地计算机设备的外存中查询所述特征数据对应的权值参数;继续执行S407。
当确定的计算机设备为本地计算机设备时,可以由计算机设备的CPU直接从本地计算机设备的外存中进行特征数据对应的权值参数的查询。具体查询方式可参见前述实施例的相关内容,在此不再赘述。
S406B、向所述其他计算机设备发送查询请求,以从所述其他计算机设备的外存中查询所述特征数据对应的权值参数;继续执行S407。
当确定的计算机设备为其他计算机设备时,表明本地计算机设备的CPU需要从其他计算机设备的外存中进行特征数据对应的权值参数的查询。具体的,可以通过本地计算机设备的CPU向其他计算机设备进行查询请求的发送,其中查询请求中包括所查询的特征数据或特征数据的标识信息;其他计算机设备接收该查询请求后基于该查询请求中的特征数据进行特征数据的标识信息的确定,并根据标识信息在本地外存中查找对应的权值参数,并反馈查询结果;或者其他计算机设备接收到查询请求后,基于该查询请求中的特征数据的标识信息在本地外存中查找对应的权值参数,并反馈查询结果。
S407、判定是否查询成功;若是,则执行S408A;否则执行S408B。
示例性地,当能够从本地计算机设备或其他计算机设备的外存中查找到某一特征数据对应的数值型的权值参数时,则表明查询成功;当无法从本地计算机设备和其他计算机设备的外存中查找到某一特征数据对应的数值型的权值参数,例如查找到非数值型(如空值)或不存在相应的特征数据时,则表明查询失败。
S408A、将查询到的权值参数作为所述特征数据对应的权值参数;继续执行S409。
当查询成功时,可以直接将查询到的权值参数确定为特征数据对应的权值参数。
S408B、按照第一预设规则为所述特征数据确定权值参数;继续执行S409。
当查询失败时,可以按照第一预设规则为特征数据进行权值参数的确定。其中,第一预设规则可以由技术人员根据需要或经验进行设定,例如可以采用随机生成规则为特征数据生成对应的随机数作为权值参数。
S409、对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中。
在该步骤中,对于每一特征数据,本地计算机设备的CPU按照第二预设规则确定特征数据对应的本地计算机设备的目标GPU,并将特征数据和确定的与特征数据对应的权值参数,存储至对应的目标GPU的显存中。
可以理解的是,若在S402中将各特征数据存储在显存中时,已经将特征数据存储至对应的目标GPU时,在S409中可以仅通过确定目标GPU,并将获取的特征数据对应的权值参数存储至相应的目标GPU即可,无需再进行特征数据的重复存储,以减少数据传输量和存储空间。
延续前例,计算机设备1的CPU将各特征数据与计算机设备数量2取模,确定特征数据1对应的计算机设备为计算机设备1;确定特征数据2对应的计算机设备为计算机设备2。
计算机设备2的CPU将各特征数据与计算机设备数量2取模,确定特征数据1对应的计算机设备为计算机设备1;确定特征数据3对应的计算机设备为计算机设备2。
计算机设备1通过将特征数据1与自身GPU的数量5取模,确定目标GPU为GPU12;通过将特征数据2与自身GPU的数量5取模,确定目标GPU为GPU13;通过将特征数据3与自身GPU的数量5取模,确定目标GPU为GPU14。
计算机设备2通过将特征数据1与自身GPU的数量3取模,确定目标GPU为GPU22;通过将特征数据3与自身GPU的数量3取模,确定目标GPU为GPU23。
针对样本数据A中的特征数据1,由于特征数据1存储在本地计算机设备中,因此计算机设备1的CPU从本地计算机设备的外存中查询特征数据1对应的权值参数,若查询成功,则将查询到的权值参数作为特征数据1对应的权值参数1;若查询失败,则确定一随机数作为特征数据1对应的权值参数1。计算机设备1的CPU将特征数据1和权值参数1存储至GPU12的显存中。
针对样本数据A中的特征数据2,由于特征数据2对应的权值参数存储在计算机设备2,而模型训练过程在计算机设备1中,因此计算机设备1的CPU向计算机设备2发送包含特征数据2的查询请求;计算机设备2接收该查询请求后解析得到特征数据2,并根据特征数据2在自身外存中查询相应的权值参数,并反馈查询结果,同时在计算机设备2中根据特征数据2与自身GPU的数量3取模,确定目标GPU为GPU21;计算机设备2中的CPU从自身外存中查询特征数据2对应的权值参数,若查询成功,则将查询到的权值参数作为特征数据2对应的权值参数2;若查询失败,则确定一随机数作为特征数据2对应的权值参数2。计算机设备2的CPU将权值参数2反馈至计算机设备1的CPU中,并同时存储至计算机设备2的GPU21对应的显存中;计算机设备1的CPU将特征数据2和权值参数2存储至GPU13对应的显存中。
针对样本数据B中的特征数据1,由于特征数据1对应的权值参数存储在计算机设备1,而模型训练过程在计算机设备2中,因此计算机设备2中的CPU向计算机1发送包含特征数据1的查询请求;计算机设备1接收该查询请求后解析得到特征数据1,并根据特征数据1在自身外存中查询相应的权值参数,并反馈查询结果,同时在计算机设备1中根据特征数据1与自身GPU的数量5取模,确定目标GPU为GPU12;计算机设备1中的CPU从自身外存中查询特征数据1对应的权值参数,若查询成功,则将查询到的权值参数作为特征数据1对应的权值参数1;若查询失败,则确定一随机数作为特征数据2对应的权值参数2。计算机设备1的CPU将权值参数1反馈至计算机设备2的CPU中,并同时存储至计算机设备1的GPU12对应的显存中;计算机设备2的CPU将特征数据1和权值参数1存储至GPU22对应的显存中。
针对样本数据B中的特征数据3,由于特征数据3对应的权值参数存储在计算机设备2中,因此计算机设备2的CPU从本地计算机设备的外存中查询特征数据3对应的权值参数,若查询成功,则将查询到的权值参数作为特征数据3对应的权值参数3;若查询失败,则确定一随机数作为特征数据3对应的权值参数3。计算机设备2的CPU将特征数据3和权值参数3存储至GPU23的显存中。
S410、各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练。
示例性地,针对每一样本数据,采用其中一个训练GPU进行模型训练时,训练GPU根据预先存储的样本数据对应的特征数据集合,确定自身训练时所需的样本数据对应的各特征数据;训练GPU按照第二预设规则确定各特征数据对应的目标GPU,并从确定的各目标GPU的显存中获取各特征数据和各特征数据对应的权值参数进行模型训练,得到训练结果。也即,若样本数据A对应的特征数据集合为{特征数据1,特征数据2},则分别确定特征数据1对应的目标GPU和特征数据2对应的目标GPU,并从所确定的各目标GPU中分别进行特征数据1以及特征数据1对应的权值参数、和特征数据2以及特征数据2对应的权值参数的获取;通过获取的特征数据1和特征数据2,对训练GPU中的模型进行训练,得到训练结果。
S411、各GPU针对自身训练的各特征数据判定根据第三预设规则确定的计算机设备是否为本地计算机设备;若是,则执行S412A;否则执行S412B。
由于进行模型训练的训练GPU可能分布在不同的计算机设备中,且训练GPU进行模型训练时,所需的特征数据对应的权值参数可能存储在不同的计算机设备的外存中,为了便于各计算机设备通过借助自身GPU进行权值参数更新,进而更新外存中存储的权值参数,还需要训练GPU根据第三预设规则,对外存存储有权值参数的计算机设备加以确定。
示例性地,各GPU针对自身训练的各特征数据判定根据第三预设规则确定的计算机设备是否为本地计算机设备,可以是:各训练GPU针对自身训练的每个特征数据,将特征数据与计算机设备数量进行取模运算,根据运算结果确定存储有该特征数据的权值参数的计算机设备,并确定该计算机设备是否为本地计算机设备。
或者示例性地,各GPU针对自身训练的各特征数据判定根据第三预设规则确定的计算机设备是否为本地计算机设备,还可以是:针对自身训练的各特征数据,通过查询针对计算机设备集群所设置的全局通用的特征数据与计算机设备存储关系对照表,根据特征数据的标识信息进行计算机设备的标识信息的确定,并通过查找到的计算机设备的标识信息与本地计算机设备的标识信息进行比对,判定存储有该特征数据的权值参数的计算机设备是否为本地计算机设备。
S412A、将所述特征数据的权值更新因子同步至按照第二预设规则确定的目标GPU的显存中,以使本地计算机设备中的目标GPU根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新;继续执行S413。
如果确定的计算机设备为本地计算机设备,则各训练GPU将训练结果中所包含的所训练特征数据对应的权值更新因子,同步至本地计算机设备中按照第二预设规则所确定的目标GPU的显存中;相应的,本地计算机设备的各目标GPU接收各权值更新因子;针对任一目标GPU,该目标GPU根据所接收的各权值更新因子对自身显存中所存储的特征数据对应的权值参数加以更新。
S412B、将所述特征数据的权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,以使所述其他计算机设备中的目标GPU根据所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新;继续执行S413。
如果确定的计算机设备为其他计算机设备,则各训练GPU将训练结果中所包含的所训练特征数据对应的权值更新因子,同步至其他计算机设备中的目标GPU的显存中。
需要说明的是,当其他计算机设备可以在接收到查询请求并反馈查询结果后,按照第二预设规则确定特征数据对应的本地的目标GPU,将特征数据和特征数据的权值参数存储至确定的目标GPU的显存中。相应的,当训练GPU向其他计算机设备同步权值更新因子时,直接将特征数据对应的权值更新因子同步至其他计算机设备中与该特征数据对应的目标GPU中。
或者可选的,在各训练GPU将训练结果中所包含的所训练特征数据对应的权值更新因子同步至其他计算机设备时,基于所训练特征数据对应的权值更新因子生成更新请求;若其他计算机设备首次接收到针对该特征数据的更新请求,则解析获取相应的特征数据,并按照第二预设规则确定特征数据对应的本地的目标GPU;其他计算机设备从本地外存中获取该特征数据对应的权值参数添加至目标GPU中,并将解析更新请求后得到的权值更新因子添加至目标GPU中。若其他计算机设备非首次接收到针对该特征数据的更新请求,则解析更新请求并获取相应的权值更新因子,并将权值更新因子存储至该特征数据对应的目标GPU中。
相应的,目标GPU接收各训练GPU发送的权值更新因子,并根据所接收的各权值更新因子,对自身存储的特征数据对应的权值参数进行更新。
需要说明的是,目标GPU可以在接收到权值更新因子时,采用接收到的权值更新因子对自身存储的权值参数进行实时更新;还可以在本次模型训练结束后,根据接收到的各权值更新因子,一并对自身存储的权值参数进行更新。
S413、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
外存中存储有所训练的特征数据的各计算机设备,通过CPU从本地计算机设备的目标GPU中获取更新后的权值参数,并采用更新后的权值参数,对外存中特征数据对应的权值参数加以更新,以便下一次从外存中获取的权值参数为最新的权值参数。
需要说明的是,对外存中的权值参数的更新,可以是目标GPU中的权值参数产生更新时进行同步更新,还可以是目标GPU中的权值参数在本地训练阶段全部更新完毕后进行同步更新。可以理解的是,为了减少数据运算量以及CPU与GPU之间的交互次数,典型是采用后者方案加以实现。
继续延续前例进行说明,计算机设备1的GPU15分别从GPU12中获取特征数据1及权值参数1,从GPU13中获取特征数据2及权值参数2,并根据获取的数据进行模型训练,得到训练结果中包含特征数据1对应的权值更新因子α1,以及特征数据2对应的权值更新因子β1;GPU15将权值更新因子α1发送至计算机设备1的GPU12中;GPU15将权值更新因子β1发送至计算机设备2的GPU21中。
计算机设备2的GPU21从GPU22中获取特征数据1及权值参数1,从GPU23中获取特征数据3及权值参数3,并根据获取的数据进行模型训练,得到训练结果中包含特征数据1对应的权值更新因子α2,以及特征数据3对应的权值更新因子γ2;GPU21将权值更新因子α2发送至计算机设备1的GPU12中;GPU21将权值更新因子γ2发送至计算机设备2的GPU23中。
计算机设备1中的GPU12根据接收的权值更新因子α1和α2,对显存中的原权值参数1进行更新,并利用更新后的权值参数1更新计算机设备1的外存中特征数据1对应的原权值参数1。
计算机设备2中的GPU21根据接收的权值更新因子β1,对显存中的原权值参数2进行更新,并利用更新后的权值参数2更新计算机设备2的外存中特征数据2对应的原权值参数2。
计算机设备2中的GPU23根据接收的权值更新因子γ2,对显存中的原权值参数3进行更新,并利用更新后的权值参数3更新计算机设备2的外存中特征数据3对应的原权值参数3。
需要说明的是,通过多台计算机设备采用分布式的方式联合进行模型训练,能够显著提升了模型的训练效率。例如,当采用具备1P Flops的单机超级计算能力的计算机设备,采用带宽100Gb/s,4KB数据传输延迟地址20~40μs的网卡,仅通过少量几个上述计算机设备,即可实现千亿维参数、日均百亿样本的超大规模运算。
本申请实施例通过GPU进行样本数据的解析,进而得到样本数据对应的各特征数据,为多样本数据的同时解析奠定基础,从而减少了对内存资源的损耗,加快了样本数据的解析速度。
本申请实施例通过在多机联合训练的过程中,将从外存中查询并确定权值参数的操作细化为针对各特征数据,按照第三预设规则进行保存有特征数据的权值参数的计算机设备的确定,并在确定的计算机设备为本地计算机设备时直接进行权值参数的查询确定,在确定的计算机设备为其他计算机设备时,通过向其他计算机设备发送查询请求的方式,进行权值参数的查询确定,完善了从不同计算机设备进行权值参数查询的查询方式,从而适配多机联合训练的应用场景。
本申请实施例通过将根据查询结果确定各特征数据的权值参数细化为在查询成功时采用查询到的权值参数作为特征数据对应的权值参数,而将查询失败时采用第一预设规则进行权值参数的确定,从而避免了特征数据首次出现导致初始权值参数不存在,而无法进行后续模型训练的尴尬,保证了模型训练步骤的顺利进行。
本申请实施例通过在多机联合训练的过程中,针对各特征数据确定目标GPU,并将各特征数据对应存储至目标GPU的显存中,并通过各GPU从目标GPU显存中进行特征数据和相应权值参数的获取,达到了多个GPU并行进行模型训练效果,提高了模型训练效率,完善了模型的训练机制。
本申请实施例通过在多机联合训练的过程中,通过将训练结果中的权值更新因子,在根据第三预设规则确定的计算机设备为本地计算机设备时,将权值更新因子同步至本地计算机设备的目标GPU中;在根据第三预设规则确定的计算机设备为其他计算机设备时,将权值更新因子同步至其他计算机设备的目标GPU中,使得目标GPU能够为特征数据、特征数据对应的权值参数以及权值更新因子提供相应的暂存空间,以使目标GPU根据所接收的各权值更新因子进行权值参数的更新,充分利用了每个训练阶段所使用的样本数据中各特征数据对应的权值更新因子,实现了对权值参数的充分更新,从而完善了多机联合训练时的权值参数的更新机制。
实施例五
图5是本申请实施例五中的一种模型训练方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,将操作“获取样本数据对应的各特征数据”细化为“对所述样本数据进行解析,得到所述样本数据对应的各特征数据”,以通过CPU解析样本数据进行特征数据的获取,丰富了特征数据的获取方式。
如图5所示的一种模型训练方法,包括:
S501、对所述样本数据进行解析,得到所述样本数据对应的各特征数据。
在该步骤中,由计算机设备的CPU直接对至少一个样本数据进行解析,分别得到各样本数据对应的各特征数据。
为了便于后续对不同样本数据对应的各特征数据的查找,CPU在得到样本数据对应的各特征数据之后,还可以将各样本数据对应的特征数据集合在CPU或GPU中进行存储。
例如,当解析得到样本数据A对应的特征数据1和特征数据2后,将样本数据A和与样本数据A对应的特征数据集合{特征数据1,特征数据2}对应存储在CPU或GPU中。当然,为了简化特征数据集合中包含的数据内容,可以在特征数据集合中仅存储各特征数据的标识信息,例如通过哈希计算得到的各特征数据对应的哈希值。
举例说明,计算机设备1中设置有5个GPU,分别为GPU11~GPU15,计算机设备2中设置有3个GPU,分别为GPU21~GPU23。选取计算机设备1中的GPU15作为训练GPU针对样本数据A进行模型训练;选取计算机设备2中的GPU21作为训练GPU针对样本数据B进行模型训练。
其中,样本数据A对应的特征数据集合为{特征数据1,特征数据2}。其中,样本数据B对应的特征数据集合为{特征数据1,特征数据3}。其中,特征数据1对应的权值参数存储在计算机设备1的外存中;特征数据2和特征数据3对应的权值参数存储在计算机设备2的外存中。
计算机设备1的CPU直接对样本数据A进行解析,得到特征数据1和特征数据2;计算机设备2的CPU直接对样本数据B进行解析,得到特征数据1和特征数据3。
本申请实施例中后续S502~S511部分与前述实施例中的S404~S413一一对应,详细内容可参见前述相关表述,在此不再赘述。
S502、针对各特征数据,按照第三预设规则确定保存有所述特征数据对应的权值参数的计算机设备;
其中,所述权值参数表征对应特征数据的重要程度;典型的,权值参数为数值型参数。
S503、针对各特征数据,判定确定的计算机设备是否为本地计算机设备;若是,则执行S504A;若否,则执行S504B。
S504A、从所述本地计算机设备的外存中查询所述特征数据对应的权值参数;继续执行S505。
S504B、向所述其他计算机设备发送查询请求,以从所述其他计算机设备的外存中查询所述特征数据对应的权值参数;继续执行S505。
S505、判定是否查询成功;若是,则执行S506A;否则执行S506B。
S506A、将查询到的权值参数作为所述特征数据对应的权值参数;继续执行S507。
S506B、按照第一预设规则为所述特征数据确定权值参数;继续执行S507。
S507、对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中。
S508、各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练;
S509、各GPU针对自身训练的各特征数据判定根据第三预设规则确定的计算机设备是否为本地计算机设备;若是,则执行S510A;否则执行S510B。
S510A、将所述特征数据的权值更新因子同步至按照第二预设规则确定的目标GPU的显存中,以使本地计算机设备中的目标GPU根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新;继续执行S511。
S510B、将所述特征数据的权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,以使所述其他计算机设备中的目标GPU根据所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新;继续执行S511。
S511、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
本申请实施例在多机联合训练的过程中,通过将样本数据对应的各特征数据的获取步骤细化为对样本数据进行解析,得到样本数据对应的各特征数据,以通过CPU直接解析样本数据的方式进行特征数据的获取,丰富了特征数据的获取方式。
实施例六
图6是本申请实施例六中的一种模型训练方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进,本申请实施例适用于多个计算机设备联合进行模型训练的情况。
进一步地,在多机联合训练时,模型训练方法还包括:“若接收到其他计算机设备发送的查询请求,则从本地计算机设备的外存中查询所述查询请求中包含的特征数据的权值参数;将查询结果作为所述特征数据对应的权值参数返回给所述其他计算机设备,并按照第二预设规则确定所述特征数据对应的目标GPU,将所述特征数据和所述特征数据的权值参数存储至确定的目标GPU的显存中”,以完善权值参数的获取机制。
进一步地,在操作“将所述特征数据和所述特征数据的权值参数存储至确定的目标GPU中”之后,追加“通过所述特征数据对应的目标GPU接收所述其他计算机设备中的GPU发送的所述特征数据对应的权值更新因子,并将所述特征数据和所述权值更新因子对应存储至自身显存中;通过所述特征数据对应的目标GPU,根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新”,以完善权值参数的更新机制。
如图6所示的一种模型训练方法,包括:
S601、获取样本数据对应的各特征数据。
S602、从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,所述权值参数表征对应特征数据的重要程度。
S603、通过图像处理单元GPU从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数。
S604、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
S605、若接收到其他计算机设备发送的查询请求,则从本地计算机设备的外存中查询所述查询请求中包含的特征数据的权值参数。
S606、将查询结果作为所述特征数据对应的权值参数返回给所述其他计算机设备,并按照第二预设规则确定所述特征数据对应的目标GPU,将所述特征数据和所述特征数据的权值参数存储至确定的目标GPU的显存中。
需要说明的是,在多机联合训练过程中,若当前计算机设备的外存中,存储有其他计算机设备进行模型训练时所需的权值参数,则可以通过响应查询请求的方式进行权值参数的查询以及查询结果的反馈。
需要说明的是,由于在多机联合训练过程中,可能存在多个计算机设备从当前计算机设备的外存中获取特征数据对应的权值参数,并行进行模型训练的情况。
为了保证并行训练的模型的输出结果中所包含的各权值更新因子,均能够对权值参数进行更新,需要在当前计算机设备向其他计算机设备反馈特征数据对应的权值参数时,在当前计算机设备中为相应的特征数据分配目标GPU,并在所分配的目标GPU对应的显存中进行特征数据及权值参数的存储。
举例说明,计算机设备1中设置有5个GPU,分别为GPU11~GPU15;计算机设备2中设置有3个GPU,分别为GPU21~GPU23。选取计算机设备2中的GPU21作为训练GPU针对样本数据A进行模型训练;选取计算机设备2中的GPU22作为训练GPU针对样本数据B进行模型训练。
其中,样本数据A对应的特征数据集合为{特征数据1,特征数据2},样本数据B对应的特征数据集合为{特征数据1,特征数据3}。其中,特征数据1、特征数据2和特征数据3各特征数据对应的权值参数均存储在计算机设备1的外存中。
针对特征数据1,计算机设备2的CPU向计算机设备1发送包括特征数据1的查询请求;计算机设备1接收该查询请求并解析获取特征数据1,基于特征数据1查找本地外存得到特征数据1对应的权值参数1,将权值参数1反馈至计算机设备2,并存储至计算机设备2所分配的目标GPU中。同时,在计算机设备1中根据特征数据1与计算机设备1中的GPU数量5取模,确定特征数据1对应的目标GPU11,在目标GPU11中存储特征数据1和权值参数1。
针对特征数据2,计算机设备2的CPU向计算机设备1发送包括特征数据2的查询请求;计算机设备1接收该查询请求并解析获取特征数据2,基于特征数据2查找本地外存得到特征数据2对应的权值参数2,将权值参数2反馈至计算机设备2,并存储至计算机设备2所分配的目标GPU中。同时,在计算设备1中根据特征数据2与计算机设备1中的GPU数量5取模,确定特征数据2对应的目标GPU12,在目标GPU12中存储特征数据2和权值参数2。
针对特征数据3,计算机设备2的CPU向计算机设备1发送包括特征数据3的查询请求;计算机设备1接收该查询请求并解析获取特征数据3,基于特征数据3查找本地外存得到特征数据3对应的权值参数3,将权值参数3反馈至计算机设备2,并存储至计算机设备2所分配的目标GPU中。同时,在计算设备1中根据特征数据3与计算机设备1中的GPU数量5取模,确定特征数据2对应的目标GPU13,在目标GPU13中存储特征数据3和权值参数3。
S607、通过所述特征数据对应的目标GPU接收所述其他计算机设备中的GPU发送的所述特征数据对应的权值更新因子,并将所述特征数据和所述权值更新因子对应存储至自身显存中。
可以理解的是,当其他计算机设备中存在多个训练GPU并行进行模型训练时,同时从当前计算机设备中获取了相同的特征数据进行模型训练,那么,各训练GPU将针对该特征数据分别输出一权值更新因子,并将所输出的权值更新因子同步至当前计算机设备为该特征数据所分配的目标GPU中。
延续前例继续说明,计算机设备2中的训练GPU21针对特征数据1及权值参数1、和特征数据2及权值参数2进行模型训练,并得到包含与特征数据1对应的权值更新因子α1、和与特征数据2对应的权值更新因子β1的训练结果;计算机设备2中的训练GPU22针对特征数据1及权值参数1、和特征数据3及权值参数3进行模型训练,并得到包含与特征数据1对应的权值更新因子α2、和与特征数据3对应的权值更新因子γ2的训练结果。相应的,计算机设备1的目标GPU11会接收到训练GPU21反馈的权值更新因子α1和训练GPU22反馈的权值更新因子α2;计算机设备1的目标GPU12会接收到训练GPU21反馈的权值更新因子β1;计算机设备1的目标GPU13会接收到训练GPU22反馈的权值更新因子γ2。
S608、通过所述特征数据对应的目标GPU,根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新。
S609、获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
延续前例继续说明,计算机设备1中的目标GPU11采用权值更新因子α1和权值更新因子α2对自身存储的特征数据1对应的权值参数1进行更新,并利用更新后的权值参数1更新计算机设备1的外存中特征数据1对应的原权值参数1。
计算机设备1中的目标GPU12采用权值更新因子β1对自身存储的特征数据2对应的权值参数2进行更新,并利用更新后的权值参数2更新计算机设备1的外存中特征数据2对应的原权值参数1。
计算机设备1中的目标GPU13采用权值更新因子γ2对自身存储的特征数据3对应的权值参数3进行更新,并利用更新后的权值参数3更新计算机设备1的外存中特征数据3对应的原权值参数1。
本申请实施例通过在多机联合训练时,追加接收到其他计算机设备发送的查询请求时,进行查询结果的反馈,完善了本地计算机设备的外存中存储有其他计算机设备进行模型训练时所需的权值参数时,所对应的权值参数查询机制;通过在计算机设备中为所查询的特征数据以及特征数据对应的权值参数分配目标GPU,并在目标GPU中进行特征数据及对应的权值参数的存储,为后续进行模型训练后的权值更新因子的收集提供空间,同时为权值参数的更新提供场所,为多个权值更新因子对权值参数的同步更新提供了保障。
本申请实施例通过在多机联合训练时,在目标GPU中进行特征数据和对应的权值参数的存储之后,追加接收其他计算机设备的各GPU基于特征数据训练后得到的针对该特征数据的权值更新因子,实现对权值更新因子的收集,进而根据收集的各权值更新因子对目标GPU中的权值参数进行更新,完善了本地计算机设备的外存中存储有其他计算机设备进行模型训练时所需的权值参数时,对应的权值参数的更新机制。
实施例七
图7是本申请实施例七中的一种模型训练装置的结构图,本申请实施例适用于通过计算机设备中的GPU进行模型训练的情况,该装置通过软件和/或硬件实现,并具体配置于具备一定数据运算能力的计算机设备中。
如图7所示的一种模型训练装置700,包括:特征数据获取模块701、外存查询模块702、模型训练模块703和外存更新模块704。其中,
特征数据获取模块701,用于获取样本数据对应的各特征数据;
外存查询模块702,用于从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,所述权值参数表征对应特征数据的重要程度;
模型训练模块703,用于从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数;
外存更新模块704,用于获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
本申请实施例通过特征数据获取模块获取样本数据对应的各特征数据;通过外存查询模块从外存中查询与各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,权值参数表征对应特征数据的重要程序;通过模型训练模块从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数;通过外存更新模块获取显存中更新后的权值参数,并利用更新后的权值参数更新外存中对应的权值参数。上述技术方案通过在外存存储特征数据和权值参数的对应关系,并基于该对应关系进行权值参数的查找,根据查找结果进行后续的模型训练,大容量的外存(比如SSD)可以使训练机器的数量大幅减少,从而减小训练成本;并且通过GPU进行模型训练,提升了训练效率和所训练任务的稳定性。
进一步地,特征数据获取模块701,具体用于:
将所述样本数据存储至显存中;读取并解析显存中的样本数据,得到所述样本数据对应的各特征数据,并将各特征数据存储在显存中;获取显存中所述样本数据对应的各特征数据;或
对所述样本数据进行解析,得到所述样本数据对应的各特征数据。
进一步地,外存查询模块702,在单机训练时,在执行从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数时,具体用于:
在本地计算机设备的外存中查询各特征数据分别对应的权值参数;
对于任一特征数据,若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数。
进一步地,模型训练模块703,具体用于:
在所述样本数据有多条时,所述计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作。
进一步地,外存查询模块702,在执行将各特征数据与权值参数对应存储至显存中时,具体用于:
对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中;
相应的,模型训练模块703,在执行多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作时,具体用于:
各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的各目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练,将训练结果中包含的各特征数据对应的权值更新因子,分别同步至对应的目标GPU的显存中;
各目标GPU根据自身显存中存储的当前特征数据的各权值更新因子,对所述当前特征数据的权值参数进行更新。
进一步地,外存查询模块702,在多机联合训练时,在执行从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数时,具体用于:
针对各特征数据,按照第三预设规则确定保存有所述特征数据对应的权值参数的计算机设备;
若确定的计算机设备为本地计算机设备,则从所述本地计算机设备的外存中查询所述特征数据对应的权值参数;
若确定的计算机设备为其他计算机设备,则向所述其他计算机设备发送查询请求,以从所述其他计算机设备的外存中查询所述特征数据对应的权值参数;
若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数。
进一步地,模型训练模块703,具体用于:
在所述样本数据有多条时,所述计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作。
进一步地,外存查询模块702,在执行将各特征数据与权值参数对应存储至显存中时,具体用于:
对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中;
进一步地,模型训练模块703,在执行多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作时,具体用于:
各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的目标GPU的显存中获取各特征数据和各特征数据的权值参数进行模型训练;
对于训练结果中包含的各特征数据对应的权值更新因子,若根据第三预设规则确定的计算机设备为本地计算机设备,则将所述特征数据的权值更新因子同步至按照第二预设规则确定的目标GPU的显存中,以使本地计算机设备中的目标GPU根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新;
若根据第三预设规则确定的计算机设备为其他计算机设备,则将所述特征数据的权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,以使所述其他计算机设备中的目标GPU根据所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新。
进一步地,模型训练模块703,在执行将所述特征数据的权值更新因子同步至所述其他计算机设备中的目标GPU的显存中时,具体用于:
按照第二设定规则确定所述特征数据在所述其他计算机设备中对应的目标GPU,采用图像处理单元远程直接内存访问GPUDirect RDMA通信方式,将所述特征数据的权值更新因子,发送给确定的所述其他计算机设备中的目标GPU的显存中。
进一步地,该装置还包括:
权值参数查询模块,用于在接收到其他计算机设备发送的查询请求时,从本地计算机设备的外存中查询所述查询请求中包含的特征数据的权值参数;
查询结果反馈模块,用于将查询结果作为所述特征数据对应的权值参数返回给所述其他计算机设备,并按照第二预设规则确定所述特征数据对应的目标GPU,将所述特征数据和所述特征数据的权值参数存储至确定的目标GPU的显存中。
进一步地,该装置还包括,权值参数更新模块,具体用于:
在将所述特征数据和所述特征数据的权值参数存储至确定的目标GPU中之后,通过所述特征数据对应的目标GPU接收所述其他计算机设备中的GPU发送的所述特征数据对应的权值更新因子,并将所述特征数据和所述权值更新因子对应存储至自身显存中;
通过所述特征数据对应的目标GPU,根据自身显存中存储的所述特征数据的各权值更新因子,对所述特征数据的权值参数进行更新。
进一步地,外存查询模块702,在执行从外存中查询各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数时,具体用于:
分别将各特征数据作为键key查询存储在外存中的哈希表,根据查询结果确定各特征数据的权值参数。
进一步地,外存更新模块704,具体用于:
获取显存中更新后的各权值参数,将各权值参数对应的特征数据分别作为键key,计算各权值参数在本计算机设备的外存中哈希表的存储地址,并更新所述存储地址处的权值参数。
进一步地,所述模型为点击率预测模型或推荐模型。
进一步地,所述外存为固态硬盘SSD;所述显存为高带宽存储器HBM。
上述模型训练装置可执行本申请任意实施例所提供的模型训练方法,具备执行模型训练方法相应的功能模块和有益效果。
实施例八
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的模型训练的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的模型训练方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的模型训练方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的模型训练的方法对应的程序指令/模块(例如,附图7所示的包括特征数据获取模块701、外存查询模块702、模型训练模块703和外存更新模块704的模型训练装置700)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的模型训练方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据模型训练的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至执行模型训练方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
执行模型训练方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与执行模型训练方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例通过获取样本数据对应的各特征数据;从外存中查询与各特征数据分别对应的权值参数,根据查询结果确定各特征数据的权值参数,并将各特征数据与权值参数对应存储至显存中;其中,权值参数表征对应特征数据的重要程序;通过GPU从显存中读取各特征数据和各特征数据的权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各权值参数;获取显存中更新后的权值参数,并利用更新后的权值参数更新外存中对应的权值参数。上述技术方案通过在外存存储特征数据和权值参数的对应关系的存储和查找,并基于查找结果进行后续的模型训练,大容量的外存(比如SSD)可以使训练机器的数量大幅减少,从而减小训练成本;并且通过GPU进行模型训练,提升了训练效率和所训练任务的稳定性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (18)
1.一种模型训练方法,应用于计算机设备,其特征在于,包括:
获取样本数据对应的各特征数据;
从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,并将各所述特征数据与所述权值参数对应存储至显存中;
通过图像处理单元GPU从显存中读取各所述特征数据和各所述特征数据的所述权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各所述权值参数;
获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
2.根据权利要求1所述的方法,其特征在于,所述获取样本数据对应的各特征数据,包括:
将所述样本数据存储至显存中;通过GPU读取并解析显存中的样本数据,得到所述样本数据对应的各所述特征数据,并将各所述特征数据存储在显存中;获取显存中所述样本数据对应的各所述特征数据;或者,
对所述样本数据进行解析,得到所述样本数据对应的各所述特征数据。
3.根据权利要求1所述的方法,其特征在于,在单机训练时,所述从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,包括:
在本地计算机设备的外存中查询各特征数据分别对应的权值参数;
对于任一所述特征数据,若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数。
4.根据权利要求3所述的方法,其特征在于,所述样本数据有多条时,所述计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作。
5.根据权利要求4所述的方法,其特征在于,将各特征数据与权值参数对应存储至显存中,包括:
对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中;
所述多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作,包括:
各GPU按照第二预设规则确定自身针对的样本数据的各特征数据分别对应的目标GPU,并从确定的各目标GPU的显存中获取各所述特征数据和各所述特征数据的权值参数进行模型训练,将训练结果中包含的各所述特征数据对应的权值更新因子,分别同步至对应的目标GPU的显存中;
各所述目标GPU根据自身显存中存储的当前特征数据的各权值更新因子,对所述当前特征数据的权值参数进行更新。
6.根据权利要求1所述的方法,其特征在于,在多机联合训练时,所述从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,包括:
针对各所述特征数据,按照第三预设规则确定保存有所述特征数据对应的权值参数的计算机设备;
若确定的计算机设备为本地计算机设备,则从所述本地计算机设备的外存中查询所述特征数据对应的权值参数;
若确定的计算机设备为其他计算机设备,则向所述其他计算机设备发送查询请求,以从所述其他计算机设备的外存中查询所述特征数据对应的权值参数;
若查询成功,则将查询到的权值参数作为所述特征数据对应的权值参数;若查询失败,则按照第一预设规则为所述特征数据确定权值参数。
7.根据权利要求6所述的方法,其特征在于,所述样本数据有多条时,所述计算机设备中的多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作。
8.根据权利要求7所述的方法,其特征在于,所述将各所述特征数据与所述权值参数对应存储至显存中,包括:
对于每一特征数据,按照第二预设规则确定所述特征数据对应的目标GPU,并将所述特征数据和所述特征数据的权值参数存储至对应的目标GPU的显存中;
所述多个GPU分别针对不同的样本数据,并行进行模型训练和权值参数的更新操作,包括:
各GPU按照第二预设规则确定自身针对的样本数据的各所述特征数据分别对应的目标GPU,并从确定的所述目标GPU的显存中获取各所述特征数据和各所述特征数据的所述权值参数进行模型训练;
对于训练结果中包含的各所述特征数据对应的权值更新因子,若根据第三预设规则确定的计算机设备为本地计算机设备,则将所述特征数据的所述权值更新因子同步至按照第二预设规则确定的目标GPU的显存中,以使本地计算机设备中的目标GPU根据自身显存中存储的所述特征数据的各所述权值更新因子,对所述特征数据的所述权值参数进行更新;若根据第三预设规则确定的计算机设备为其他计算机设备,则将所述特征数据的所述权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,以使所述其他计算机设备中的目标GPU根据所述特征数据的各所述权值更新因子,对所述特征数据的所述权值参数进行更新。
9.根据权利要求8所述的方法,其特征在于,将所述特征数据的所述权值更新因子同步至所述其他计算机设备中的目标GPU的显存中,包括:
按照第二设定规则确定所述特征数据在所述其他计算机设备中对应的目标GPU,采用图像处理单元远程直接内存访问GPUDirect RDMA通信方式,将所述特征数据的所述权值更新因子,发送给确定的所述其他计算机设备中的目标GPU的显存中。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若接收到其他计算机设备发送的查询请求,则从本地计算机设备的外存中查询所述查询请求中包含的所述特征数据的所述权值参数;
将查询结果作为所述特征数据对应的权值参数返回给所述其他计算机设备,并按照第二预设规则确定所述特征数据对应的目标GPU,将所述特征数据和所述特征数据的所述权值参数存储至确定的目标GPU的显存中。
11.根据权利要求10所述的方法,其特征在于,在将所述特征数据和所述特征数据的所述权值参数存储至确定的目标GPU中之后,所述方法还包括:
通过所述特征数据对应的目标GPU接收所述其他计算机设备中的GPU发送的所述特征数据对应的所述权值更新因子,并将所述特征数据和所述权值更新因子对应存储至自身显存中;
通过所述特征数据对应的目标GPU,根据自身显存中存储的所述特征数据的各所述权值更新因子,对所述特征数据的所述权值参数进行更新。
12.根据权利要求1-11中任一项所述的方法,其特征在于,从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,包括:
分别将各所述特征数据作为键key查询存储在外存中的哈希表,根据查询结果确定各所述特征数据的权值参数。
13.根据权利要求12所述的方法,其特征在于,所述获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数,包括:
获取显存中更新后的各权值参数,将各权值参数对应的特征数据分别作为键key,计算各权值参数在本计算机设备的外存中哈希表的存储地址,并更新所述存储地址处的权值参数。
14.根据权利要求1-11中任一项所述的方法,其特征在于,所述模型为点击率预测模型或推荐模型。
15.根据权利要求1-11中任一项所述的方法,其特征在于,所述外存为固态硬盘SSD;所述显存为高带宽存储器HBM。
16.一种模型训练装置,配置于计算机设备,其特征在于,包括:
特征数据获取模块,用于获取样本数据对应的各特征数据;
外存查询模块,用于从外存中查询各所述特征数据分别对应的权值参数,根据查询结果确定各所述特征数据的权值参数,并将各所述特征数据与所述权值参数对应存储至显存中;
模型训练模块,用于从显存中读取各所述特征数据和各所述特征数据的所述权值参数,利用读取的数据进行模型训练,并根据训练结果更新显存中的各所述权值参数;
外存更新模块,用于获取显存中更新后的所述权值参数,并利用更新后的所述权值参数更新外存中对应的权值参数。
17.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-15中任一项所述的一种模型训练方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-15中任一项所述的一种模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910893080.0A CN112541513B (zh) | 2019-09-20 | 2019-09-20 | 一种模型训练方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910893080.0A CN112541513B (zh) | 2019-09-20 | 2019-09-20 | 一种模型训练方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112541513A true CN112541513A (zh) | 2021-03-23 |
CN112541513B CN112541513B (zh) | 2023-06-27 |
Family
ID=75012394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910893080.0A Active CN112541513B (zh) | 2019-09-20 | 2019-09-20 | 一种模型训练方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112541513B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113159284A (zh) * | 2021-03-31 | 2021-07-23 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN114356540A (zh) * | 2021-10-30 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种参数更新方法、装置、电子设备和存储介质 |
CN117369996A (zh) * | 2023-09-25 | 2024-01-09 | 深圳国匠云职业教育科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203485A (zh) * | 2016-07-01 | 2016-12-07 | 北京邮电大学 | 一种支持向量机的并行训练方法及装置 |
CN106951926A (zh) * | 2017-03-29 | 2017-07-14 | 山东英特力数据技术有限公司 | 一种混合架构的深度学习系统方法及装置 |
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
CN109345302A (zh) * | 2018-09-27 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 机器学习模型训练方法、装置、存储介质和计算机设备 |
CN109635945A (zh) * | 2018-11-21 | 2019-04-16 | 华中科技大学 | 一种用于图像分类的深度神经网络的训练方法 |
US20190130213A1 (en) * | 2017-10-27 | 2019-05-02 | Google Llc | Attention-based image generation neural networks |
CN110084380A (zh) * | 2019-05-10 | 2019-08-02 | 深圳市网心科技有限公司 | 一种迭代训练方法、设备、系统及介质 |
-
2019
- 2019-09-20 CN CN201910893080.0A patent/CN112541513B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203485A (zh) * | 2016-07-01 | 2016-12-07 | 北京邮电大学 | 一种支持向量机的并行训练方法及装置 |
CN106951926A (zh) * | 2017-03-29 | 2017-07-14 | 山东英特力数据技术有限公司 | 一种混合架构的深度学习系统方法及装置 |
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
US20190130213A1 (en) * | 2017-10-27 | 2019-05-02 | Google Llc | Attention-based image generation neural networks |
CN109345302A (zh) * | 2018-09-27 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 机器学习模型训练方法、装置、存储介质和计算机设备 |
CN109635945A (zh) * | 2018-11-21 | 2019-04-16 | 华中科技大学 | 一种用于图像分类的深度神经网络的训练方法 |
CN110084380A (zh) * | 2019-05-10 | 2019-08-02 | 深圳市网心科技有限公司 | 一种迭代训练方法、设备、系统及介质 |
Non-Patent Citations (1)
Title |
---|
MENG CHEN 等: "Training deeper models by GPU memory optimization on TensorFlow", 31ST CONFERENCE ON NEURAL INFORMATION PROCESSING SYSTEMS (NIPS 2017), pages 1 - 8 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113159284A (zh) * | 2021-03-31 | 2021-07-23 | 华为技术有限公司 | 一种模型训练方法及装置 |
WO2022206717A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN114356540A (zh) * | 2021-10-30 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种参数更新方法、装置、电子设备和存储介质 |
CN117369996A (zh) * | 2023-09-25 | 2024-01-09 | 深圳国匠云职业教育科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112541513B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6887544B2 (ja) | イベント処理のための動的に型付けされたビッグデータによるイベントの充実化 | |
US11030171B2 (en) | Elastic sharding of data in a multi-tenant cloud | |
JP6893284B2 (ja) | リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体 | |
KR20200027413A (ko) | 데이터 저장 방법, 장치 및 시스템 | |
CN111247518B (zh) | 用于数据库分片的方法和系统 | |
US8775372B2 (en) | Retrieving historical object-related configuration data | |
CN112541513B (zh) | 一种模型训练方法、装置、设备及存储介质 | |
US9817726B2 (en) | Delta replication of index fragments to enhance disaster recovery | |
CN102831139A (zh) | 用于查询计划优化以及数据并行编程模型的共同范围分区 | |
JP7200277B2 (ja) | ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
EP2600259B1 (en) | Device, method and program for arranging query in a plurality of devices | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN111586126A (zh) | 小程序预下载方法、装置、设备及存储介质 | |
CN110598059B (zh) | 数据库操作方法及装置 | |
CN111858796B (zh) | 地理信息系统引擎系统及实现方法、装置及存储介质 | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
JP2024521730A (ja) | Sqlクエリを加速するための決定的分散キャッシュのための技術 | |
CN112148693A (zh) | 一种数据处理方法、装置及存储介质 | |
CN106254417A (zh) | 数据缓存方法、装置及系统 | |
CN104346426A (zh) | 共享数据去重复的方法和系统 | |
KR20210023636A (ko) | 장기간 연관성 높은 문서 클러스터링을 위한 방법 및 시스템 | |
CN113360689B (zh) | 图像检索系统、方法、相关装置及计算机程序产品 | |
US20140292781A1 (en) | System and method for propagating scene information to renderers in a multi-user, multi-scene environment | |
US20220374810A1 (en) | Accelerating outlier prediction of performance metrics in performance managers deployed in new computing environments | |
CN113297226B (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 |