CN112906309B - 机器学习模型的分布式训练方法、装置和系统 - Google Patents

机器学习模型的分布式训练方法、装置和系统 Download PDF

Info

Publication number
CN112906309B
CN112906309B CN202110342282.3A CN202110342282A CN112906309B CN 112906309 B CN112906309 B CN 112906309B CN 202110342282 A CN202110342282 A CN 202110342282A CN 112906309 B CN112906309 B CN 112906309B
Authority
CN
China
Prior art keywords
training
features
high frequency
distributed
machine learning
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
Application number
CN202110342282.3A
Other languages
English (en)
Other versions
CN112906309A (zh
Inventor
陈宬
王艺霖
刘一鸣
杨俊�
卢冕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
4Paradigm Beijing Technology Co Ltd
Original Assignee
4Paradigm Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 4Paradigm Beijing Technology Co Ltd filed Critical 4Paradigm Beijing Technology Co Ltd
Priority to CN202110342282.3A priority Critical patent/CN112906309B/zh
Publication of CN112906309A publication Critical patent/CN112906309A/zh
Application granted granted Critical
Publication of CN112906309B publication Critical patent/CN112906309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

提供一种机器学习模型的分布式训练方法、装置和系统。所述机器学习模型的分布式训练方法包括:确定训练样本集包含的高频特征,其中,所述训练样本集包含的特征为超高维稀疏特征;针对确定的高频特征,确定训练分发方案,其中,所述训练分发方案包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是用于机器学习模型的分布式训练的多个计算节点中的一部分计算节点;针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。

Description

机器学习模型的分布式训练方法、装置和系统
技术领域
本公开涉及计算机技术领域,更具体地说,涉及一种机器学习模型的分布式训练方法、装置和系统。
背景技术
随着数据规模的迅速增长,机器学习被广泛应用于各种领域以挖掘数据的价值。然而,为了执行机器学习,一般物理机的内存已经远远不足,为此,实践中往往需要利用分布式机器学习系统来完成机器学习模型的训练。在现有的分布式机器学习系统中,通常由多个计算节点并行地执行关于同一机器学习模型的训练,由参数服务器来存储该机器学习模型的参数,并支持各个计算节点对该机器学习模型的参数的读写。例如,对于超高维稀疏模型进行分布式训练时,每一次训练都会预读一个批次的数据,按照预读的顺序平均分发给多个计算节点以进行训练,被分发到数据的计算节点从参数服务器查询特征编码(embedding)值,并基于相应的embedding值进行训练以得到参数梯度,再将新的参数梯度传回参数服务器。这样的预读分发方式会多个计算节点分别产生多次的与参数服务器的交互,不够智能,导致训练负载高,训练时间长,训练性能不佳。
发明内容
本公开的示例性实施例可至少部分地解决上述问题。
根据本公开的一方面,提供一种机器学习模型的分布式训练方法,包括:确定训练样本集包含的高频特征,其中,所述训练样本集包含的特征为超高维稀疏特征;针对确定的高频特征,确定训练分发方案,其中,所述训练分发方案包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是用于机器学习模型的分布式训练的多个计算节点中的一部分计算节点;针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
可选地,所述训练样本分发方法还可包括:在确定训练分发方案后,根据所述训练分发方案,将与每个高频特征对应的编码表存储在与相应的至少一个计算节点关联的存储器中;其中,所述编码表用于将训练样本包含的特征映射为适于训练机器学习模型的特征。
可选地,所述确定训练样本集包含的高频特征,可包括:通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征。
可选地,所述通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征,可包括:遍历所述训练样本集中包含的所有训练样本,将出现频率大于第一预定阈值的特征确定为高频特征。
可选地,所述通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征,可包括:遍历所述训练样本集中包含的所有特征被划分到的域,将维度小于第二预定阈值的域中包含的特征确定为高频特征。
可选地,所述确定训练样本集包含的高频特征的步骤以及所述根据确定的高频特征,确定训练分发方案的步骤可在所述分布式训练前被离线执行或者在所述分布式训练的第一个训练周期执行过程中被执行。
可选地,所述针对确定的高频特征,确定训练分发方案,还可包括:按照所述确定的高频特征的访问相关性,对所述确定的高频特征进行分组;其中,所述训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。
可选地,所述按照所述确定的高频特征的访问相关性,对所述确定的高频特征进行分组,可包括:将所述确定的高频特征之中的一起被访问的频率超过第三预定阈值的高频特征划分到一组。
根据本公开的另一方面,提供一种机器学习模型的分布式训练装置,包括:高频特征确定单元,被配置为:确定训练样本集包含的高频特征,其中,所述训练样本集包含的特征为超高维稀疏特征;分发方案确定单元,被配置为:针对确定的高频特征,确定训练分发方案,其中,所述训练分发方案包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是用于机器学习模型的分布式训练的多个计算节点中的一部分计算节点;训练样本分发单元,被配置为:针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
可选地,所述分布式训练装置还可包括:编码表存储单元,被配置为:在确定训练分发方案后,根据所述训练分发方案,将与每个高频特征对应的编码表存储在与相应的至少一个计算节点关联的存储器中;其中,所述编码表用于将训练样本包含的特征映射为适于训练机器学习模型的特征。
可选地,高频特征确定单元可被配置为:通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征。
可选地,高频特征确定单元可被配置为:遍历所述训练样本集中包含的所有训练样本,将出现频率大于第一预定阈值的特征确定为高频特征。
可选地,高频特征确定单元可被配置为:遍历所述训练样本集中包含的所有特征被划分到的域,将维度小于第二预定阈值的域中包含的特征确定为高频特征。
可选地,高频特征确定单元确定训练样本集包含的高频特征的操作以及分发方案确定单元根据确定的高频特征,确定训练分发方案的操作可在所述分布式训练前被离线执行或者在所述分布式训练的第一个训练周期执行过程中被执行。
可选地,分发方案确定单元还可被配置为:按照所述确定的高频特征的访问相关性,对所述确定的高频特征进行分组;其中,所述训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。
可选地,分发方案确定单元可被配置为:将所述确定的高频特征之中的一起被访问的频率超过第三预定阈值的高频特征划分到一组。
根据本公开的另一方面,提供一种机器学习模型的分布式训练系统,包括:多个计算节点,被配置为对所述机器学习模型执行分布式训练;第一存储器,被配置为存储训练样本集,其中,所述训练样本集包含的特征为超高维稀疏特征;第二存储器,被配置为存储训练分发方案,其中,所述训练分发方案包括针对所述训练样本集中的每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是所述多个计算节点中的一部分计算节点;分发器,被配置为针对分布式训练的每一次迭代训练,从第一存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
可选地,所述分布式训练系统还可包括:与所述多个计算节点关联的多个第三存储器,被配置为存储编码表,其中,所述编码表用于将训练样本包含的特征映射为适于训练机器学习模型的特征;其中,与每个高频特征对应的编码表根据所述训练分发方案被存储在与相应的至少一个计算节点关联的第三存储器中。
可选地,所述训练样本集中的高频特征还可按照访问相关性被分组;其中,所述训练分发方案还可包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。
可选地,所述训练样本集中的高频特征之中的一起被访问的频率超过预定阈值的高频特征可被划分到一组。
根据本公开的另一方面,提供一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的机器学习模型的分布式训练方法。
根据本公开的另一方面,提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的机器学习模型的分布式训练方法。
根据本公开的机器学习模型的分布式训练方法、装置和系统,可智能地将超高维稀疏特征之中的高频特征分发到指定计算节点,从而降低计算节点与参数服务器之间Pull操作和Push操作次数,从而降低通信开销,提高训练效率,节省训练时间。此外,还可将与高频特征相应的编码表(embedding表)锁定在与相应的计算节点关联的存储器中,进一步降低计算节点与参数服务器之间的Pull操作次数,从而进一步降低通信开销,提高训练效率,节省训练时间。
附图说明
通过结合附图,从实施例的下面描述中,本公开这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:
图1是示出超高维稀疏特征的示意图。
图2是示出分布式训练流程的示意图。
图3是示出超高维稀疏特征的高频特征和低频特征的示意图。
图4是示出传统预读分发方式的示意图。
图5是示出根据本公开的示例性实施例的预读分发方式的示意图。
图6是示出根据本公开的示例性实施例的机器学习模型的分布式训练方法的流程图。
图7是示出根据本公开的示例性实施例的特征分布分析模块的工作示意图。
图8是示出根据本公开的示例性实施例的预读分发模块的工作示意图。
图9是示出根据本公开的示例性实施例的机器学习模型的分布式训练装置的框图。
图10是示出根据本公开的示例性实施例的机器学习模型的分布式训练系统的框图。
具体实施方式
提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本公开的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本公开的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
超高维稀疏模型是机器学习模型的一种,不同于传统的机器学习模型(例如,深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN、循环神经网络(Recurrent Neural Network,RNN),超高维稀疏模型的输入是超高维稀疏特征。图1是示出超高维稀疏特征的示意图。参照图1,超高维稀疏特征有两个特点。第一,输入特征的取值空间范围巨大,超高维稀疏特征分为多个域(field),每个域都包含多个可能的取值,而这些不同种类取值的总数被称为field的维度(dimensions),例如,Field 1为日期(Day),其取值范围为星期一(Moday)、星期二(Tuesday)、…、星期日(Sunday),则Field1的维度为7;Field 1为性别(Gender),其取值范围为男(Male)、女(Female),则Field 2的维度为2;Field 3为物品(items),假设有200万种商品(例如,嘉士伯啤酒(Carlsbergbeer)、虎牌啤酒(Tiger beer)等),则Field 3的维度为200万。超高维稀疏特征的维度总和往往可能上亿甚至上十亿种。第二,对于每一条训练的样本只包含的有限的特征数。训练数据每个Field只包含某一个取值,例如,一条训练样本可只包含三个特征取值:Tuesday,Male,Tiger beer。
由于超高维稀疏特征的维度巨大,超高维稀疏模型的训练过程会把所有特征的取值(比如Monday~Sunday,Male,Female,Tiger beer等)做为键(key),特征对应的编码(embedding)值作为值(Value)存放在参数服务器集群中。超高维稀疏模型往往需要用到多个计算节点(例如,CPU节点、GPU节点等)进行训练。图2是示出分布式训练流程的示意图。如图2所示,超高维稀疏模型训练一般分为四个步骤。步骤(1),预读并分发(Prefetch)训练数据。训练数据数量庞大,一般会放在慢速的磁盘存储,每次训练前都会预读一个批次(batch)的数据,并分发到多个计算节点进行训练。例如,一个batch为6条训练数据(S1至S6),有两个计算节点(GPU A和GPU B)用于训练。因为每条训练数据包括多个域(field)的特征(feature),通常的做法是把一个batch的6条训练数据按照预读的顺序平均分配给两个计算节点(GPU A和GPU B)进行训练,例如,将训练数据S1至S3分发到计算节点GPU A进行训练,将训练数据S4至S6分发到计算节点GPU B进行训练。步骤(2),两个计算节点从参数服务器中存储的PS Embedding表(编码表)查询训练数据特征的embedding值,这里,编码表用于将训练数据包含的特征映射为适于训练机器学习模型的特征(即,embedding值)。步骤(3),两个计算节点基于特征embedding值对超高维稀疏模型进行训练,得到超高维稀疏模型的参数梯度。步骤(4),两个计算节点将训练后得到的超高维稀疏模型的参数的新梯度推送回参数服务器。
然而,传统预读分发方式仅仅将预读的训练数据按预读顺序平均分发到各个计算节点以执行后续训练,而并未考虑到超高维稀疏特征具有高频特征和低频特征之分的特点。具体地说,不同域(Field)的特征取值范围不同,特征在训练样本中出现的频率也会不同。图3是示出超高维稀疏特征的高频特征和低频特征的示意图。参照图3,由于Field 1和Field 2的取值范围比较小,因此,Field 1和Field 2中的每个特征在每条训练样本中出现的几率比较高,可将Field 1和Field 2中的特征确定为高频特征。而Field 3的物品种类有上百万种,而每条训练样本只会包含Field 3中某一种取值(比如Tiger beer),因此,Field3中的每个特征在每条训练样本中出现的几率比较低,可将Field 2中的特征确定为低频特征。
图4是示出传统预读分发方式的示意图。参照图4,假设一个训练批次有6条训练样本,而这些训练样本中S2和S5分别出现了高频特征:male,其他特征都是非高频特征。在数据预读数据阶段不会对进行特殊处理,包含male特征的S2和S5训练数据被分别分发到GPUA和GPU B的机器上进行训练。以GPU A为例,对于包含male的训练数据S2,(1)GPU A首先需要从参数服务器中的PS embedding获得male的embedding值:Vmale,(2)然后在GPU A上进行前向/后向的训练,(3)训练得到新的梯度dmale1后,梯度dmale1会被从GPU A传回到参数服务器中的PS embedding中,例如,传回到参数服务器的动态随机存取存储器(DRAM)中。由于GPU A和PS Embedding可能为不同的服务器,所以步骤(1)中的获取embedding值(可称为Pull操作)和步骤(3)中的回传梯度(可称为Push操作)都会涉及到远程的跨节点网络通信。以上三步操作会在S5分发到GPU B节点后同样执行一次。(4)参数服务器从GPU A和GPU B接收梯度dmale1和dmale2,(5)参数服务器会把这两个梯度dmale1和dmale2合并并更新dmale(可称为Update操作)。因此,对于训练集群有两个GPU的情况下,传统的预读分发方式会产生(从参数服务器的存储器到GPU的存储器(远程))的2次Pull操作,(从GPU的存储器到参数服务器的存储器(远程))的2次Push操作,(参数服务器节点CPU执行的)1次Update操作。当GPU节点数增加到M个,当包含male的训练数据被传统分发模块发到M个GPU上,一共会产生(从参数服务器的存储器到GPU的存储器(远程))的M次Pull操作,(从GPU的存储器到参数服务器的存储器(远程))的M次Push操作,(参数服务器节点CPU执行的)1次Update操作。可见,对于多个计算节点的分布式训练节点,传统预读分发方式可能产生较多的Pull操作和Push操作,由于Pull操作和Push操作都会涉及到远程的跨节点网络通信,通信开销较大,因此训练效率会较低,训练时间会较高。
为了解决上述问题,本公开提出了一种机器学习模型的分布式训练方法、装置和系统,考虑超高维稀疏特征具有高频特征和低频特征之分的特点,智能地将高频特征分发到指定计算节点,从而降低计算节点与参数服务器之间Pull操作和Push操作次数,从而降低通信开销,提高训练效率,节省训练时间。此外,本公开还提出将与高频特征相应的编码表(embedding表)锁定在与相应的计算节点关联的存储器中,进一步降低计算节点与参数服务器之间的Pull操作次数,从而进一步降低通信开销,提高训练效率,节省训练时间。下面,将参照图5至图10来详细描述根据本公开的机器学习模型的分布式训练方法、装置和系统。
图5是示出根据本公开的示例性实施例的预读分发方式的示意图。
参照图5,假设一个训练批次有6条训练样本,而这些训练样本中S2和S5分别出现了高频特征:male,其他特征都是非高频特征。与传统预读分发方式不同,根据本公开的示例性实施例的预读分发方式可感知到该训练批次中出现了两次高频特征male,将S2和S4换位置,即,将S1、S3和S4分发到例如计算节点GPU A上,并将包括高频特征male的S2和S5以及S6分发到例如计算节点GPU B上。GPU B可执行以下操作:(1)GPU B首先需要从参数服务器中的PS embedding获得male的embedding值(也可称为Pull操作):Vmale,(2)然后在GPU B上进行前向/后向的训练,(3)训练得到新的梯度dmale1和dmale2后,先将这两个梯度dmale1和dmale2合并,再被传回到参数服务器中的PS embedding中(可也称为Push操作),(4)参数服务器从GPU B接收到合并的dmale,(5)参数服务器利用合并的dmale来更新dmale(可称为Update操作)。可见,对于训练集群有两个GPU的情况下,根据本公开的示例性实施例的预读分发方式只产生(从参数服务器的存储器到GPU的存储器(远程))的1次Pull操作,(从GPU的存储器到参数服务器的存储器(远程))的1次Push操作和(参数服务器执行的)一次Update操作。当GPU数量增加到M,根据本公开的示例性实施例的预读分发方式也只会产生1次Pull操作,1次Push操作和1次Update操作。例如,现在工业界训练超高维稀疏模型的GPU数量往往可以高达256个,根据本公开的智能预读分发方式可以比传统预读分发方式大大节省IO数量。
图6是示出根据本公开的示例性实施例的机器学习模型的分布式训练方法的流程图。
参照图6,在步骤601,可确定训练样本集包含的高频特征,其中,训练样本集包含的特征为超高维稀疏特征。
根据本公开的示例性实施例,可通过对训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征。例如,可通过特征分布分析结果来直观地观察特征在训练样本中出现的频率,从而判断特征是否为高频特征。也就是说,可遍历训练样本集中包含的所有训练样本,将出现频率大于第一预定阈值的特征确定为高频特征。又例如,如图3所示,当超高维稀疏特征的某个域(Field)的维度较小,该域中的特征在训练样本中出现的频率就会比较高。那么可通过特征分布分析结果来观察训练样本中的超高维稀疏特征的每个域的维度,根据每个域的维度的大小来判断每个域中的特征是否为高频特征。也就是说,可遍历训练样本集中包含的所有特征被划分到的域,将维度小于第二预定阈值的域中包含的特征确定为高频特征。当然,还可通过其它可能的方式来确定高频特征,本公开对此不作限制。
在步骤602,可针对确定的高频特征,确定训练分发方案。这里,训练分发方案可包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点。也就是说,用于机器学习模型的分布式训练的计算节点很多,例如,高达256个,训练分发方案可针对每个高频特征,指定相应的训练样本将被分发到这些计算节点中的特定的一部分计算节点。例如,如图5所示,假设用于机器学习模型的分布式训练的计算节点包括GPU A和GPU B,根据本公开的训练分发方案可指定将包括高频特征male的训练样本分发到计算节点GPU B上以进行后续的训练,从而可减少计算节点与远端参数服务器之间的IO开销,提高训练效率。
此外,根据本公开的示例性实施例,在确定训练分发方案时,还可按照确定的高频特征的访问相关性,对确定的高频特征进行分组。因此,训练分发方案还可包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。例如,可将确定的高频特征之中的一起被访问的频率超过第三预定阈值的高频特征划分到一组。这样。同一组的高频特征可在训练过程中被分发到指定的某个或某几个计算节点。
在步骤603,可针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。通常,对机器学习模型的训练可基于同一训练样本集的所有训练样本进行多次训练,每一次训练可称为一个训练周期(epoch)。在一个训练周期中,通常可执行多次迭代训练,每一次迭代训练可利用批量训练样本进行训练。也就是说,每一次迭代训练可从训练样本集中获取一个批次(batch)的训练样本来对机器学习模型进行训练,对于分布式训练而言,每一次迭代训练可将一个批次的训练样本分发到各个计算节点进行训练。此外,训练分发方案中已指定每个高频特征相应的训练样本应该被分发到特定的至少一个计算节点,因此,在每一次迭代训练中,可根据训练分发方案来将一个批次的训练样本中包含高频特征的训练样本分发到指定的至少一个计算节点。
此外,通常,编码表存储于参数服务器的存储器中,各计算节点在接收在训练样本后,需从参数服务器的存储器中存储的编码表获取训练样本中的特征的embedding值以用于训练。传统方法高频embedding表并不感知数据访问频率,所以即使将包含高频特征的训练样本分发到某一个指定计算节点,这些训练样本所包含的高频特征对应的embedding表有可能依然存储在远端参数服务器(其他机器)的内存中。通常计算节点和参数服务器之间的通信涉及远程的跨节点网络通信,因此,获取embedding值会导致计算节点和参数服务器之间的IO开销。
根据本公开的示例性实施例,在确定训练分发方案后,还可根据训练分发方案,将与每个高频特征对应的编码表(即,高频特征的embedding所有取值)存储在与相应的至少一个计算节点关联的存储器中。此外,当训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点,还可根据训练分发方案,将与同一组的高频特征对应的编码表存储在与相应的至少一个计算节点关联的存储器中。也就是说,包括同一高频特征的训练样本和/或包括同一组高频特征的训练样本可被分发到指定的至少一个计算节点进行训练,且与该高频特征或该组高频特征的embedding表可被固定存储在与该指定的至少一个计算节点关联的存储器中。与相应的至少一个计算节点关联的存储器可包括相应的至少一个计算节点的内存、GPU高速缓存、DRAM或持久存储器(如PMEM、SSD等),或与相应的至少一个计算节点可短距离通信的存储器等。例如,可将高频特征的embedding表保存在指定计算节点的某个或某几个GPU的内存中,也可保存在指定计算节点本机的DRAM中,这样可以保证GPU内存不够时,依然可以通过访问本地缓存高频特征对应的embedding值,从而减少通过网络去远端参数服务器取特征embedding的延时。
因此,根据本公开的上述示例性实施例,可将每个高频特征对应的编码表存储在利用包括该高频特征的训练样本执行训练的计算节点的关联存储器中,从而获取embedding值仅需与本地存储器或短距离通信的存储器进行通信,而无需与参数服务器进行远程通信,从而节省了计算节点和参数服务器之间的IO开销,进一步提高训练效率。
根据本公开的示例性实施例,步骤601和602可在分布式训练前被离线执行。根据本公开的另一示例性实施例,步骤601和602可在分布式训练的第一个训练周期(epoch)执行过程中被执行。例如,在整个训练过程中,可针对训练数据集执行5次训练,如果采用离线分析来确定高频特征并定制训练分发方案,则可在执行5次训练时都利用确定的训练分发方案执行训练样本的分发;如果在第一个训练周期执行过程中分析来确定高频特征并定制训练分发方案,则可在第1次训练时利用传统分发方案执行训练样本的分发,而在后续的4次训练时利用确定的训练分发方案执行训练样本的分发。
此外,根据本公开的示例性实施例,实现根据本公开的机器学习模型的分布式训练方法的模块主要有两个,即,特征分布分析模块和预读分发模块。图7是示出根据本公开的示例性实施例的特征分布分析模块的工作示意图。图8是示出根据本公开的示例性实施例的预读分发模块的工作示意图。
参照图7,根据本公开的示例性实施例的特征分布分析模块可通过遍历训练样本集中的所有训练样本,执行特征分布分析,来将所有特征划分为高频特征和低频特征。此外,特征分布分析模块还可根据高频特征的访问相关特征对高频特征进行分组,将经常被一起访问(例如,一起被访问的频率超过第三预定阈值)的高频特征划分为一组(如图7中所示,一个圈形中的高频特征为一组),例如,特征A和特征E可被分到一组。因此,包括同一高频特征的训练样本和/或包括同一组高频特征的训练样本可被分配到某个或某几个计算节点,且这些特征的embedding的所有取值会被固定存放在计算节点的关联存储器(例如,内存)中,从而减少不必要的Pull操作和Push操作所产生的IO开销。
参照图8,根据本公开的示例性实施例的预读分发模块可执行根据本公开的预读分发方案,即,针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。假设用于分布式训练的计算节点包括GPU A和GPUB。根据本公开的示例性实施例的预读分发模块可预读出每次迭代训练所需的训练样本,并根据特征分布分析模块的分析结果,将预读出的训练样本之中的包括高频特征的训练样本分发到指定的计算节点(例如,图8中的GPU B),而将包括其它低频特征的训练样本平均分发到两个计算节点GPU A和GPU B。此外,与高频特征相关的embedding表可被存储到指定的计算节点(例如,图8中的GPU B),而与低频特征相关的Embedding表可仍被存储到参数服务器中。因此,在实际训练过程中,计算节点GPU B利用包括高频特征的训练样本执行训练时,可直接在本地获取到特征的embedding值,减少IO开销;计算节点GPU A和GPU B利用包括低频特征的训练样本执行训练时,可仍然通过与参数服务器的通信来获取特征的embedding值。
图9是示出根据本公开的示例性实施例的机器学习模型的分布式训练装置的框图。
参照图9,据本公开的示例性实施例的机器学习模型的分布式训练装置900可包括高频特征确定单元901、分发方案确定单元902和训练样本分发单元903。
高频特征确定单元901可确定训练样本集包含的高频特征,其中,训练样本集包含的特征为超高维稀疏特征。
根据本公开的示例性实施例,高频特征确定单元901可通过对训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征。例如,高频特征确定单元901可通过特征分布分析结果来直观地观察特征在训练样本中出现的频率,从而判断特征是否为高频特征。也就是说,高频特征确定单元901可遍历训练样本集中包含的所有训练样本,将出现频率大于第一预定阈值的特征确定为高频特征。又例如,如图3所示,当超高维稀疏特征的某个域(Field)的维度较小,该域中的特征在训练样本中出现的频率就会比较高。那么可通过特征分布分析结果来观察训练样本中的超高维稀疏特征的每个域的维度,根据每个域的维度的大小来判断每个域中的特征是否为高频特征。也就是说,高频特征确定单元901可遍历训练样本集中包含的所有特征被划分到的域,将维度小于第二预定阈值的域中包含的特征确定为高频特征。当然,高频特征确定单元901还可通过其它可能的方式来确定高频特征,本公开对此不作限制。
分发方案确定单元902可针对确定的高频特征,确定训练分发方案。这里,训练分发方案可包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点。
此外,根据本公开的示例性实施例,分发方案确定单元902在确定训练分发方案时,还可按照确定的高频特征的访问相关性,对确定的高频特征进行分组。因此,训练分发方案还可包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。例如,可将确定的高频特征之中的一起被访问的频率超过第三预定阈值的高频特征划分到一组。这样。同一组的高频特征可在训练过程中被分发到指定的某个或某几个计算节点。
训练样本分发单元903可针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。通常,对机器学习模型的训练可基于同一训练样本集的所有训练样本进行多次训练,每一次训练可称为一个训练周期(epoch)。在一个训练周期中,通常可执行多次迭代训练,每一次迭代训练可利用批量训练样本进行训练。也就是说,每一次迭代训练可从训练样本集中获取一个批次(batch)的训练样本来对机器学习模型进行训练,对于分布式训练而言,每一次迭代训练可将一个批次的训练样本分发到各个计算节点进行训练。此外,训练分发方案中已指定每个高频特征相应的训练样本应该被分发到特定的至少一个计算节点,因此,在每一次迭代训练中,可根据训练分发方案来将一个批次的训练样本中包含高频特征的训练样本分发到指定的至少一个计算节点。
此外,通常,编码表存储于参数服务器的存储器中,各计算节点在接收在训练样本后,需从参数服务器的存储器中存储的编码表获取训练样本中的特征的embedding值以用于训练。传统方法高频embedding表并不感知数据访问频率,所以即使将包含高频特征的训练样本分发到某一个指定计算节点,这些训练样本所包含的高频特征对应的embedding表有可能依然存储在远端参数服务器(其他机器)的内存中。通常计算节点和参数服务器之间的通信涉及远程的跨节点网络通信,因此,获取embedding值会导致计算节点和参数服务器之间的IO开销。
根据本公开的示例性实施例,机器学习模型的分布式训练装置900还可包括编码表存储单元(未示出)。编码表存储单元在确定训练分发方案后,还可根据训练分发方案,将与每个高频特征对应的编码表(即,高频特征的embedding所有取值)存储在与相应的至少一个计算节点关联的存储器中。此外,当训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点,编码表存储单元还可根据训练分发方案,将与同一组的高频特征对应的编码表存储在与相应的至少一个计算节点关联的存储器中。也就是说,包括同一高频特征的训练样本和/或包括同一组高频特征的训练样本可被分发到指定的至少一个计算节点进行训练,且与该高频特征或该组高频特征的embedding表可被固定存储在与该指定的至少一个计算节点关联的存储器中。与相应的至少一个计算节点关联的存储器可包括相应的至少一个计算节点的内存、GPU高速缓存、DRAM或持久存储器(如PMEM、SSD等),或与相应的至少一个计算节点可短距离通信的存储器等。例如,可将高频特征的embedding表保存在指定计算节点的某个或某几个GPU的内存中,也可保存在指定计算节点本机的DRAM中,这样可以保证GPU内存不够时,依然可以通过访问本地缓存高频特征对应的embedding值,从而减少通过网络去远端参数服务器取特征embedding的延时。因此,根据本公开的上述示例性实施例,编码表存储单元可将每个高频特征对应的编码表存储在利用包括该高频特征的训练样本执行训练的计算节点的关联存储器中,从而获取embedding值仅需与本地存储器或短距离通信的存储器进行通信,而无需与参数服务器进行远程通信,从而节省了计算节点和参数服务器之间的IO开销,进一步提高训练效率。
根据本公开的示例性实施例,高频特征确定单元901和分发方案确定单元902的操作可在分布式训练前被离线执行。根据本公开的另一示例性实施例,高频特征确定单元901和分发方案确定单元902的操作可在分布式训练的第一个训练周期(epoch)执行过程中被执行。
图10是示出根据本公开的示例性实施例的机器学习模型的分布式训练系统的框图。
参照图10,根据本公开的示例性实施例的机器学习模型的分布式训练系统可包括多个计算节点1001-1…1001-n、第一存储器1002、第二存储器1003、分发器1004。此外,根据本公开的示例性实施例的机器学习模型的分布式训练系统还可包括与多个计算节点1001-1…1001-n关联的多个第三存储器1005-1…1005-n。此外,根据本公开的示例性实施例的机器学习模型的分布式训练系统还可包括参数服务器1006。
多个计算节点1001-1…1001-n可用于对机器学习模型执行分布式训练。
第一存储器1002可存储训练样本集,其中,训练样本集包含的特征为超高维稀疏特征。
第二存储器1003存储训练分发方案,其中,训练分发方案可包括针对所述训练样本集中的每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,特定的至少一个计算节点是多个计算节点1001-1…1001-n中的一部分计算节点。此外,训练样本集中的高频特征还按照访问相关性被分组(例如,训练样本集中的高频特征之中的一起被访问的频率超过预定阈值的高频特征被划分到一组)。因此,训练分发方案还可包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。这里,训练分发方案可通过上述方法确定。第一存储器1002和第二存储器1003也可实现为同一存储器。
分发器1004可针对分布式训练的每一次迭代训练,从第一存储器预读一个批次的训练样本,并根据第二存储器1003存储的训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
此外,多个第三存储器1005-1…1005-n可用于存储编码表。与每个高频特征对应的编码表根据训练分发方案被存储在与相应的至少一个计算节点关联的第三存储器中。也就是说,与每个高频特征对应的编码表可被存储在与利用包括该高频特征执行训练的至少一个计算节点相关联的第三存储器中。第三存储器1005-1…1005-n可包括计算节点的内存、GPU高速缓存、DRAM或持久存储器(如PMEM、SSD等),或与计算节点可短距离通信的存储器等。
此外,参数服务器1006可用于存储机器学习模型的参数(例如,梯度值)以及与非高频特征对应的编码表。
此外,根据本公开的机器学习模型的分布式训练方法、装置和系统不仅可应用于超高维稀疏模型,还可应用于任何可利用包括超高维稀疏特征的训练样本执行训练的机器学习模型,例如,传统的逻辑回归(LR)模型、自然语言处理(NLP)模型等。
根据本公开的机器学习模型的分布式训练方法、装置和系统,可智能地将超高维稀疏特征之中的高频特征分发到指定计算节点,从而降低计算节点与参数服务器之间Pull操作和Push操作次数,从而降低通信开销,提高训练效率,节省训练时间。此外,还可将与高频特征相应的编码表(embedding表)锁定在与相应的计算节点关联的存储器中,进一步降低计算节点与参数服务器之间的Pull操作次数,从而进一步降低通信开销,提高训练效率,节省训练时间。
以上已参照图5至图10描述了根据本公开示例性实施例的机器学习模型的分布式训练方法、装置和系统。
图9所示出的机器学习模型的分布式训练装置和图10所示出的机器学习模型的分布式训练系统中的各个单元或装置可被配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,各个单元或装置可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,各个单元或装置所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
此外,参照图6所描述的机器学习模型的分布式训练方法可通过记录在计算机可读存储介质上的程序(或指令)来实现。例如,根据本公开的示例性实施例,可提供存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的机器学习模型的分布式训练方法。
上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图6进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
应注意,图9所示出的机器学习模型的分布式训练装置和图10所示出的机器学习模型的分布式训练系统中的各个单元或装置可完全依赖计算机程序的运行来实现相应的功能,即,各个单元或装置中的计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,图9和图10中的各个单元或装置也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
例如,本公开的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当计算机可执行指令集合被处理器执行时,执行根据本公开的示例性实施例的机器学习模型的分布式训练方法。
具体说来,计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
这里,计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
在计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
根据本公开示例性实施例的机器学习模型的分布式训练方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
处理器可运行存储在存储部件之一中的指令或代码,其中,存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
此外,计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
根据本公开示例性实施例的机器学习模型的分布式训练方法可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。
因此,根据本公开示例性实施例的机器学习模型的分布式训练方法可通过包括至少一个计算装置和至少一个存储指令的存储装置的系统来实现。
根据本公开的示例性实施例,至少一个计算装置是根据本公开示例性实施例的用于执行机器学习模型的分布式训练方法的计算装置,存储装置中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个计算装置执行时,执行根据本公开的机器学习模型的分布式训练方法。
以上描述了本公开的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本公开不限于所披露的各示例性实施例。在不偏离本公开的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本公开的保护范围应该以权利要求的范围为准。

Claims (22)

1.一种机器学习模型的分布式训练方法,其特征在于,包括:
确定训练样本集包含的高频特征,其中,所述训练样本集包含的特征为超高维稀疏特征,所述超高维稀疏特征具有多个域且每个域包括多个维度,并且每条训练样本包含有限特征数;
针对确定的高频特征,确定训练分发方案,其中,所述训练分发方案包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是用于机器学习模型的分布式训练的多个计算节点中的一部分计算节点;
针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
2.如权利要求1所述的机器学习模型的分布式训练方法,其特征在于,还包括:
在确定训练分发方案后,根据所述训练分发方案,将与每个高频特征对应的编码表存储在与相应的至少一个计算节点关联的存储器中;
其中,所述编码表用于将训练样本包含的特征映射为适于训练机器学习模型的特征。
3.如权利要求1所述的机器学习模型的分布式训练方法,其特征在于,所述确定训练样本集包含的高频特征,包括:
通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征。
4.如权利要求3所述的机器学习模型的分布式训练方法,其特征在于,所述通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征,包括:
遍历所述训练样本集中包含的所有训练样本,将出现频率大于第一预定阈值的特征确定为高频特征。
5.如权利要求3所述的机器学习模型的分布式训练方法,其特征在于,所述通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征,包括:
遍历所述训练样本集中包含的所有特征被划分到的域,将维度小于第二预定阈值的域中包含的特征确定为高频特征。
6.如权利要求1所述的机器学习模型的分布式训练方法,其特征在于,确定训练样本集包含的高频特征的步骤以及针对确定的高频特征,确定训练分发方案的步骤是在所述分布式训练前被离线执行或者在所述分布式训练的第一个训练周期执行过程中被执行。
7.如权利要求1所述的机器学习模型的分布式训练方法,其特征在于,所述针对确定的高频特征,确定训练分发方案,还包括:
按照所述确定的高频特征的访问相关性,对所述确定的高频特征进行分组;
其中,所述训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。
8.如权利要求7所述的机器学习模型的分布式训练方法,其特征在于,所述按照所述确定的高频特征的访问相关性,对所述确定的高频特征进行分组,包括:
将所述确定的高频特征之中的一起被访问的频率超过第三预定阈值的高频特征划分到一组。
9.一种机器学习模型的分布式训练装置,其特征在于,包括:
高频特征确定单元,被配置为:确定训练样本集包含的高频特征,其中,所述训练样本集包含的特征为超高维稀疏特征,所述超高维稀疏特征具有多个域且每个域包括多个维度,并且每条训练样本包含有限特征数;
分发方案确定单元,被配置为:针对确定的高频特征,确定训练分发方案,其中,所述训练分发方案包括针对每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是用于机器学习模型的分布式训练的多个计算节点中的一部分计算节点;
训练样本分发单元,被配置为:针对分布式训练的每一次迭代训练,从存储训练样本集的存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
10.如权利要求9所述的分布式训练装置,其特征在于,还包括:
编码表存储单元,被配置为:在确定训练分发方案后,根据所述训练分发方案,将与每个高频特征对应的编码表存储在与相应的至少一个计算节点关联的存储器中;
其中,所述编码表用于将训练样本包含的特征映射为适于训练机器学习模型的特征。
11.如权利要求9所述的分布式训练装置,其特征在于,高频特征确定单元被配置为:
通过对所述训练样本集中包含的所有训练样本执行特征分布分析来确定高频特征。
12.如权利要求11所述的分布式训练装置,其特征在于,高频特征确定单元被配置为:
遍历所述训练样本集中包含的所有训练样本,将出现频率大于第一预定阈值的特征确定为高频特征。
13.如权利要求11所述的分布式训练装置,其特征在于,高频特征确定单元被配置为:
遍历所述训练样本集中包含的所有特征被划分到的域,将维度小于第二预定阈值的域中包含的特征确定为高频特征。
14.如权利要求9所述的分布式训练装置,其特征在于,高频特征确定单元确定训练样本集包含的高频特征的操作以及分发方案确定单元根据确定的高频特征,确定训练分发方案的操作是在所述分布式训练前被离线执行或者在所述分布式训练的第一个训练周期执行过程中被执行。
15.如权利要求9所述的分布式训练装置,其特征在于,分发方案确定单元还被配置为:
按照所述确定的高频特征的访问相关性,对所述确定的高频特征进行分组;
其中,所述训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。
16.如权利要求15所述的分布式训练装置,其特征在于,分发方案确定单元被配置为:
将所述确定的高频特征之中的一起被访问的频率超过第三预定阈值的高频特征划分到一组。
17.一种机器学习模型的分布式训练系统,其特征在于,包括:
多个计算节点,被配置为对所述机器学习模型执行分布式训练;
第一存储器,被配置为存储训练样本集,其中,所述训练样本集包含的特征为超高维稀疏特征,所述超高维稀疏特征具有多个域且每个域包括多个维度,并且每条训练样本包含有限特征数;
第二存储器,被配置为存储训练分发方案,其中,所述训练分发方案包括针对所述训练样本集中的每个高频特征,指定包括该高频特征的训练样本将被分发到的特定的至少一个计算节点,其中,所述特定的至少一个计算节点是所述多个计算节点中的一部分计算节点;
分发器,被配置为针对分布式训练的每一次迭代训练,从第一存储器预读一个批次的训练样本,并根据所述训练分发方案,将所述一个批次的训练样本中包括高频特征的训练样本分发到指定的至少一个计算节点。
18.如权利要求17所述的分布式训练系统,其特征在于,还包括:
与所述多个计算节点关联的多个第三存储器,被配置为存储编码表,其中,所述编码表用于将训练样本包含的特征映射为适于训练机器学习模型的特征;
其中,与每个高频特征对应的编码表根据所述训练分发方案被存储在与相应的至少一个计算节点关联的第三存储器中。
19.如权利要求17所述的分布式训练系统,其特征在于,所述训练样本集中的高频特征还按照访问相关性被分组;
其中,所述训练分发方案还包括针对每一组的高频特征,指定包括该组的高频特征的训练样本将被一起分发到的特定的至少一个计算节点。
20.如权利要求19所述的分布式训练系统,其特征在于,所述训练样本集中的高频特征之中的一起被访问的频率超过预定阈值的高频特征被划分到一组。
21.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至8中的任一权利要求所述的机器学习模型的分布式训练方法。
22.一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至8中的任一权利要求所述的机器学习模型的分布式训练方法。
CN202110342282.3A 2021-03-30 2021-03-30 机器学习模型的分布式训练方法、装置和系统 Active CN112906309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110342282.3A CN112906309B (zh) 2021-03-30 2021-03-30 机器学习模型的分布式训练方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110342282.3A CN112906309B (zh) 2021-03-30 2021-03-30 机器学习模型的分布式训练方法、装置和系统

Publications (2)

Publication Number Publication Date
CN112906309A CN112906309A (zh) 2021-06-04
CN112906309B true CN112906309B (zh) 2024-04-30

Family

ID=76109506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110342282.3A Active CN112906309B (zh) 2021-03-30 2021-03-30 机器学习模型的分布式训练方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112906309B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW440767B (en) * 1998-06-02 2001-06-16 Fujitsu Ltd Method of and apparatus for correctly transmitting signals at high speed without waveform distortion
CN107045511A (zh) * 2016-02-05 2017-08-15 阿里巴巴集团控股有限公司 一种目标特征数据的挖掘方法和装置
CN110795992A (zh) * 2019-09-11 2020-02-14 北京云迹科技有限公司 训练数据的获取方法、商品识别方法及对应装置
CN110929627A (zh) * 2019-11-18 2020-03-27 北京大学 基于宽模型稀疏数据集的高效gpu训练模型的图像识别方法
CN111352915A (zh) * 2018-12-20 2020-06-30 北京奇虎科技有限公司 一种机器学习系统、一种机器学习参数服务器及实现方法
CN112507617A (zh) * 2020-12-03 2021-03-16 青岛海纳云科技控股有限公司 一种SRFlow超分辨率模型的训练方法及人脸识别方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW440767B (en) * 1998-06-02 2001-06-16 Fujitsu Ltd Method of and apparatus for correctly transmitting signals at high speed without waveform distortion
CN107045511A (zh) * 2016-02-05 2017-08-15 阿里巴巴集团控股有限公司 一种目标特征数据的挖掘方法和装置
CN111352915A (zh) * 2018-12-20 2020-06-30 北京奇虎科技有限公司 一种机器学习系统、一种机器学习参数服务器及实现方法
CN110795992A (zh) * 2019-09-11 2020-02-14 北京云迹科技有限公司 训练数据的获取方法、商品识别方法及对应装置
CN110929627A (zh) * 2019-11-18 2020-03-27 北京大学 基于宽模型稀疏数据集的高效gpu训练模型的图像识别方法
CN112507617A (zh) * 2020-12-03 2021-03-16 青岛海纳云科技控股有限公司 一种SRFlow超分辨率模型的训练方法及人脸识别方法

Also Published As

Publication number Publication date
CN112906309A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN111652380B (zh) 针对机器学习算法进行算法参数调优的方法及系统
US9213732B2 (en) Hash table and radix sort based aggregation
US11514028B2 (en) Hybrid data storage and load system with ROWID lookup
US8935293B2 (en) Framework for dynamically generating tuple and page classes
CN109240946A (zh) 数据的多级缓存方法及终端设备
US8364751B2 (en) Automated client/server operation partitioning
EP3401807B1 (en) Synopsis based advanced partition elimination
CN108304408B (zh) 一种缓存数据刷新方法及装置
US11734258B2 (en) Constraint data statistics
US20230185806A1 (en) Data system configured to transparently cache data of data sources and access the cached data
US11500873B2 (en) Methods and systems for searching directory access groups
CN112906825A (zh) 实现机器学习模型的分布式训练的方法和计算节点
WO2023051228A1 (zh) 样例数据的处理方法、装置、设备和存储介质
CN108762915B (zh) 一种在gpu内存中缓存rdf数据的方法
CN110168513A (zh) 在不同存储系统中对大文件的部分存储
CN112906309B (zh) 机器学习模型的分布式训练方法、装置和系统
CN108062279A (zh) 用于处理数据的方法和设备
CN113448739B (zh) 一种数据处理方法及装置
US10067678B1 (en) Probabilistic eviction of partial aggregation results from constrained results storage
CN113127717A (zh) 一种密钥检索方法和系统
US10977249B2 (en) Method, system, and apparatus for performing flow-based processing using stored procedure
US12019631B1 (en) Systems and methods for reducing computational resource usage in a query-based data access system via a repeated query results repository
US11966393B2 (en) Adaptive data prefetch
CN112632053A (zh) 实现数据拼接的方法和实现数据拼接的系统
CN115906603A (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