CN112884157A - 一种模型训练方法、模型训练节点及参数服务器 - Google Patents
一种模型训练方法、模型训练节点及参数服务器 Download PDFInfo
- Publication number
- CN112884157A CN112884157A CN201911205221.1A CN201911205221A CN112884157A CN 112884157 A CN112884157 A CN 112884157A CN 201911205221 A CN201911205221 A CN 201911205221A CN 112884157 A CN112884157 A CN 112884157A
- Authority
- CN
- China
- Prior art keywords
- training sample
- training
- sparse
- model
- node
- 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 815
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000004364 calculation method Methods 0.000 claims abstract description 16
- 238000005457 optimization Methods 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000003062 neural network model Methods 0.000 abstract description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000003860 storage Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Abstract
本公开关于一种模型训练方法、模型训练节点及参数服务器,涉及人工智能领域。包括:模型训练节点向参数服务器发送包括有训练样本标识的嵌入寻找请求,接收参数服务器返回的训练样本标识和训练样本标识对应的嵌入结果,训练样本标识对应的嵌入结果是根据训练样本标识对应的稀疏特征对应的嵌入参数得到的,对训练样本标识对应的嵌入结果进行优化计算,得到训练样本标识对应的梯度信息,向参数服务器发送训练样本标识和训练样本标识对应的梯度信息,从参数服务器获取训练样本的稀疏特征的更新后的模型参数,根据训练样本的稀疏特征的更新后的模型参数,确定目标模型,来提高训练深度神经网络模型的训练效率。
Description
技术领域
本公开涉及人工智能领域,尤其涉及一种模型训练方法、模型训练节点及参数服务器。
背景技术
目前,深度神经网络被广泛应用于模型的训练。例如,在搜索、广告和信息流等业务中,采用深度神经网络对训练样本进行训练,以得到点击率预估模型。
在相关技术中,模型训练的过程为:模型训练节点获取训练样本,从训练样本中获取多个稀疏特征,将多个稀疏特征发送给参数服务器。参数服务器在内存中查找每个稀疏特征对应的嵌入(embedding)参数,并向模型训练节点返回每个稀疏特征对应的嵌入参数。模型训练节点对稀疏特征对应的嵌入参数进行加和、平均等运算后,对运算结果进行优化计算,得到相应的梯度信息。模型训练节点将该梯度信息和多个稀疏特征一起发送给参数服务器,以便参数服务器更新每个稀疏特征的模型参数。模型训练节点从参数服务器处得到所有稀疏特征的更新后的模型参数,以得到目标模型。
但是,在上述模型训练过程中,由于嵌入参数通常为多维浮点数向量,当稀疏特征的数量较大时,从参数服务器传输至模型训练节点的嵌入参数的数量也较大,因此导致通信开销较大,从而导致整体的训练效率低下。
发明内容
本公开提供一种模型训练方法、模型训练节点及参数服务器,解决了在相关技术中进行模型训练时,训练效率较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种模型训练方法,应用于模型训练节点,包括:
向参数服务器发送嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
接收所述参数服务器返回的所述训练样本标识和所述训练样本标识对应的嵌入结果,所述参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系;所述训练样本标识对应的嵌入结果是根据所述训练样本标识对应的稀疏特征对应的嵌入参数得到的;
对所述训练样本标识对应的嵌入结果进行优化计算,得到所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的梯度信息;
从所述参数服务器获取训练样本的稀疏特征的更新后的模型参数;
根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型。
可选的,在所述向参数服务器发送嵌入寻找请求之前,所述方法还包括:
获取初始训练样本;
为所述初始训练样本分配所述训练样本标识;
获取所述初始训练样本的稀疏特征;
向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,所述方法还包括:
获取所述初始训练样本的稠密特征;
根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型,包括:
根据所述训练样本的稀疏特征的更新后的模型参数,以及所述初始训练样本的稠密特征,得到所述目标模型。
可选的,在所述向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征之前,所述方法还包括:
对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到所述训练样本标识对应的稀疏特征;
向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的稀疏特征。
可选的,所述为所述初始训练样本分配所述训练样本标识,包括:
对所述初始训练样本进行分批处理,得到至少一个批次集合,一个所述批次集合对应一个批次标识,一个所述批次集合包括目标数量的训练样本;
获取所述初始训练样本的稀疏特征,包括:
获取每个所述批次集合包括的训练样本的稀疏特征;
所述向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
向所述参数服务器发送所述批次标识和所述批次标识对应的批次集合的稀疏特征。
根据本公开实施例的第二方面,提供一种模型训练方法,应用于参数服务器,包括:
接收模型训练节点发送的嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
根据训练样本标识和稀疏特征的对应关系获取所述训练样本标识对应的稀疏特征,并根据稀疏特征和嵌入参数的对应关系,获取所述训练样本标识对应的稀疏特征对应的嵌入参数;
根据所述训练样本标识对应的稀疏特征对应的嵌入参数确定所述训练样本标识对应的嵌入结果;
向所述模型训练节点返回所述训练样本标识和所述训练样本标识对应的嵌入结果;
接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息是根据所述训练样本标识对应的嵌入结果得到的,所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
根据所述训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。
可选的,在所述参数服务器接收模型训练节点发送的嵌入寻找请求之前,所述方法还包括:
所述参数服务器接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征;
所述参数服务器保存所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,所述参数服务器接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
所述参数服务器接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的稀疏特征,所述训练样本标识对应的稀疏特征是对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理后得到的。
可选的,所述参数服务器接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
所述参数服务器接收所述模型训练节点发送的批次标识和所述批次标识对应的批次集合的稀疏特征,所述批次标识对应的批次集合包括目标数量的训练样本,所述批次标识对应的批次集合的稀疏特征是从所述批次标识对应的批次集合包括的训练样本中得到的。
根据本公开实施例的第三方面,提供一种模型训练方法,应用于模型训练系统,模型训练系统包括:模型训练节点和参数服务器,模型训练节点包括:第一节点,模型训练方法包括:
所述第一节点向所述参数服务器发送嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
所述第一节点接收所述参数服务器返回的所述训练样本标识和所述训练样本标识对应的嵌入结果,所述参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系;所述训练样本标识对应的嵌入结果是根据所述训练样本标识对应的稀疏特征对应的嵌入参数得到的;
所述第一节点对所述训练样本标识对应的嵌入结果进行优化计算,得到所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
所述第一节点向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的梯度信息;
所述第一节点从所述参数服务器获取训练样本的稀疏特征的更新后的模型参数;
所述第一节点根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型。
可选的,所述模型训练节点还包括:第二节点,在所述第一节点向所述参数服务器发送嵌入寻找请求之前,所述方法还包括:
所述第二节点获取初始训练样本;
所述第二节点为所述初始训练样本分配所述训练样本标识;
所述第二节点获取所述初始训练样本的稀疏特征。
可选的,所述方法还包括:
所述第二节点向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,所述方法还包括:
所述第二节点获取所述初始训练样本的稠密特征。
可选的,所述方法还包括:
所述第二节点接收所述第一节点发送的训练样本请求;
所述第二节点向所述第一节点发送所述训练样本标识和对应的所述初始训练样本的稠密特征;
所述第一节点根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型,包括:
所述第一节点根据所述训练样本的稀疏特征的更新后的模型参数,以及所述初始训练样本的稠密特征,得到所述目标模型。
可选的,所述模型训练系统还包括:存储节点,所述模型训练节点还包括:第三节点,所述方法还包括:
所述第二节点向所述存储节点发送所述训练样本标识和对应的所述初始训练样本的稀疏特征;
所述第三节点从所述存储节点获取所述训练样本标识和对应的所述初始训练样本的稀疏特征;
所述第三节点对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到所述训练样本标识对应的稀疏特征;
所述第三节点向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的稀疏特征。
可选的,所述方法还包括:
所述第二节点向所述存储节点发送所述初始训练样本的稠密特征;
所述第三节点从所述存储节点获取所述初始训练样本的稠密特征;
所述第三节点接收所述第一节点发送的训练样本请求;
所述第三节点向所述第一节点发送所述训练样本标识和对应的所述初始训练样本的稠密特征。
可选的,所述第二节点为所述初始训练样本分配所述训练样本标识,包括:
所述第二节点对所述初始训练样本进行分批处理,得到至少一个批次集合,一个所述批次集合对应一个批次标识,一个所述批次集合包括目标数量的训练样本;
所述第二节点获取所述初始训练样本的稀疏特征,包括:
所述第二节点获取每个所述批次集合包括的训练样本的稀疏特征。
可选的,所述第二节点向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
所述第二节点向所述参数服务器发送所述批次标识和所述批次标识对应的批次集合的稀疏特征。
根据本公开实施例的第四方面,提供一种模型训练节点,所述模型训练节点包括:
发送模块,被配置为执行向参数服务器发送嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
接收模块,被配置为执行接收所述参数服务器返回的所述训练样本标识和所述训练样本标识对应的嵌入结果,所述参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系;所述训练样本标识对应的嵌入结果是根据所述训练样本标识对应的稀疏特征对应的嵌入参数得到的;
计算模块,被配置为执行对所述训练样本标识对应的嵌入结果进行优化计算,得到所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
发送模块,还被配置为执行向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的梯度信息;
获取模块,被配置为执行从所述参数服务器获取训练样本的稀疏特征的更新后的模型参数;
确定模块,被配置为执行根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型。
可选的,还包括分配模块;
获取模块,还被配置为执行获取初始训练样本;
分配模块,被配置为执行为所述初始训练样本分配所述训练样本标识;
获取模块,还被配置为执行获取所述初始训练样本的稀疏特征;
发送模块,还被配置为执行向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,获取模块,还被配置为执行获取所述初始训练样本的稠密特征;
确定模块,具体被配置为执行根据所述训练样本的稀疏特征的更新后的模型参数,以及所述初始训练样本的稠密特征,得到所述目标模型。
可选的,还包括处理模块,被配置为执行对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到所述训练样本标识对应的稀疏特征;
发送模块,具体被配置为执行向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的稀疏特征。
可选的,分配模块,具体被配置为执行对所述初始训练样本进行分批处理,得到至少一个批次集合,一个所述批次集合对应一个批次标识,一个所述批次集合包括目标数量的训练样本;
获取模块,具体被配置为执行获取每个所述批次集合包括的训练样本的稀疏特征;
发送模块,具体被配置为执行向所述参数服务器发送所述批次标识和所述批次标识对应的批次集合的稀疏特征。
根据本公开实施例的第五方面,提供一种参数服务器,所述参数服务器包括:
接收模块,被配置为执行接收模型训练节点发送的嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
获取模块,被配置为执行根据训练样本标识和稀疏特征的对应关系获取所述训练样本标识对应的稀疏特征,并根据稀疏特征和嵌入参数的对应关系,获取所述训练样本标识对应的稀疏特征对应的嵌入参数;
确定模块,被配置为执行根据所述训练样本标识对应的稀疏特征对应的嵌入参数确定所述训练样本标识对应的嵌入结果;
发送模块,被配置为执行向所述模型训练节点返回所述训练样本标识和所述训练样本标识对应的嵌入结果;
接收模块,还被配置为执行接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息是根据所述训练样本标识对应的嵌入结果得到的,所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
更新模块,被配置为执行根据所述训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。
可选的,还包括存储模块;
接收模块,还被配置为执行接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征;
存储模块,被配置为执行保存所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,接收模块,具体被配置为执行接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的稀疏特征,所述训练样本标识对应的稀疏特征是对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理后得到的。
可选的,接收模块,具体被配置为执行接收所述模型训练节点发送的批次标识和所述批次标识对应的批次集合的稀疏特征,所述批次标识对应的批次集合包括目标数量的训练样本,所述批次标识对应的批次集合的稀疏特征是从所述批次标识对应的批次集合包括的训练样本中得到的。
根据本公开实施例的第六方面,提供一种模型训练节点,所述模型训练节点包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面中任一种可选地模型训练方法。
根据本公开实施例的第七方面,提供一种参数服务器,所述参数服务器包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第二方面中任一种可选地模型训练方法。
根据本公开实施例的第八方面,提供一种模型训练系统,所述模型训练系统包括:模型训练节点、参数服务器和存储节点,所述模型训练节点包括:第一节点、第二节点和第三节点;
所述第二节点,用于获取初始训练样本,为所述初始训练样本分配训练样本标识,获取所述初始训练样本的稀疏特征和稠密特征,向所述存储节点发送所述训练样本标识和对应的所述初始训练样本的稀疏特征和稠密特征;
所述第三节点,用于从所述存储节点获取所述训练样本标识和对应的所述初始训练样本的稀疏特征和稠密特征,对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到所述训练样本标识对应的稀疏特征,向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的稀疏特征;还用于接收所述第一节点发送的训练样本请求,向所述第一节点发送所述训练样本标识和对应的所述初始训练样本的稠密特征;
所述第一节点,用于向所述参数服务器发送嵌入寻找请求,所述嵌入寻找请求中包括所述训练样本标识;
所述参数服务器,用于获取所述训练样本标识对应的稀疏特征,并获取所述训练样本标识对应的稀疏特征对应的嵌入参数,根据所述训练样本标识对应的稀疏特征对应的嵌入参数确定所述训练样本标识对应的嵌入结果,向所述第一节点返回所述训练样本标识和所述训练样本标识对应的嵌入结果;
所述第一节点,还用于对所述训练样本标识对应的嵌入结果进行优化计算,得到所述训练样本标识对应的梯度信息,向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
所述参数服务器,还用于根据所述训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数;
所述第一节点,还用于从所述参数服务器获取所述训练样本的稀疏特征的更新后的模型参数;根据所述训练样本的稀疏特征的更新后的模型参数,以及所述初始训练样本的稠密特征,得到所述目标模型。
根据本公开实施例的第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由模型训练节点的处理器执行时,使得所述模型训练节点能够执行上述第一方面中任一种可选地模型训练方法。
根据本公开实施例的第十方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由参数服务器的处理器执行时,使得所述参数服务器能够执行上述第二方面中任一种可选地模型训练方法。
根据本公开实施例的第十一方面,提供一种计算机程序产品,包含指令,当其在计算机上运行时,使得计算机执行如第一方面中任一种可选地模型训练方法。
根据本公开实施例的第十二方面,提供一种计算机程序产品,包含指令,当其在计算机上运行时,使得计算机执行如第二方面中任一项可选地模型训练方法。
本公开的实施例提供的技术方案至少带来以下有益效果:模型训练节点在向参数服务器发送了嵌入寻找请求,并接收到其返回的训练样本标识和训练样本标识对应的嵌入结果后,对训练样本标识对应的嵌入结果进行优化计算,得到训练样本标识对应的梯度信息,向参数服务器发送训练样本标识和训练样本标识对应的梯度信息,且从参数服务器获取训练样本的稀疏特征的更新后的模型参数,并根据该训练样本的稀疏特征的更新后的模型参数,确定目标模型。这样,在训练目标模型的过程中,由于参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系,且训练样本标识对应的嵌入结果是参数服务器根据训练样本标识对应的稀疏特征对应的嵌入参数得到的,因此模型训练节点仅需接收参数服务器返回的训练样本标识和训练样本标识对应的嵌入结果,与现有技术中模型训练节点接收参数服务器返回的训练样本的稀疏特征对应的嵌入参数,由模型训练节点计算嵌入结果相比,本公开大大降低了传输数据所需的带宽,从而提高了整体的训练效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种模型训练系统的示意图。
图2是根据一示例性实施例示出的一种模型训练方法的流程图。
图3是根据一示例性实施例示出的另一种模型训练方法的流程图。
图4是根据一示例性实施例示出的另一种模型训练方法的流程图。
图5是根据一示例性实施例示出的另一种模型训练方法的流程图。
图6是根据一示例性实施例示出的另一种模型训练方法的流程图。
图7是根据一示例性实施例示出的另一种模型训练方法的流程图。
图8是根据一示例性实施例示出的另一种模型训练方法的流程图。
图9是根据一示例性实施例示出的一种模型训练节点的逻辑结构框图。
图10是根据一示例性实施例示出的一种参数服务器的逻辑结构框图。
图11是根据一示例性实施例示出的一种模型训练节点的结构框图。
图12是根据一示例性实施例示出的一种参数服务器的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在对本公开实施例的模型训练方法进行详细介绍之前,先对本公开实施例的应用场景和实施环境进行介绍。
首先,对本公开实施例的应用场景进行介绍。
本公开实施例的模型训练方法应用于对训练样本进行训练,得到目标模型的场景。该训练样本可以是用户访问互联网时产生的日志数据。例如,训练样本可以是用户点击视频或广告时产生的点击日志,也可以是用户浏览网页时产生的浏览日志。该目标模型可以为深度神经网络模型,且该目标模型可以用于预估广告或视频的点击率。这样,当用户打开网页时,可以根据预估的广告的点击率在该网页上显示点击率较高的广告;或者,当用户打开视频应用时,可以根据预估的视频的点击率优先推送点击率较高的视频。
但是,在相关技术的模型训练过程中,由于参数服务器会向模型训练节点发送训练样本的稀疏特征对应的嵌入参数,当稀疏特征的数量较大时,嵌入参数的数量也较大,且嵌入参数通常为多维浮点数向量,因此传输训练样本的稀疏特征对应的嵌入参数所需的带宽较大,从而导致模型的训练效率较低。为了提高模型的训练效率,本公开实施例提供了一种模型训练方法,该方法通过由参数服务器对训练样本的稀疏特征对应的嵌入参数进行计算,得到训练样本标识对应的嵌入结果,使得参数服务器仅需向模型训练节点返回训练样本标识和其对应的嵌入结果,这样大大降低了传输数据所需的带宽,从而提高了训练效率。
接下来,对本公开实施例的实施环境进行介绍。
图1是根据一示例性实施例示出的一种模型训练系统的示意图。如图1所示,该模型训练系统可以包括:模型训练节点11和参数服务器12。其中,模型训练节点11通过有线通讯方式或无线通讯方式与参数服务器12进行通信,且模型训练节点11结合参数服务器12,共同完成目标模型的训练,该目标模型可以是深度神经网络模型。在一些实施例中,模型训练节点11可以是一台服务器,也可以是由多台服务器组成的服务器集群。
进一步的,模型训练节点11为服务器集群时,模型训练节点11在训练目标模型时执行的各个操作可以由不同的服务器来完成。模型训练节点11可以包括:至少一个第一节点111和至少一个第二节点112。其中,第一节点111通过有线通讯方式或无线通讯方式,与参数服务器12进行通信;第二节点112通过有线通讯方式或无线通讯方式,分别与第一节点111、参数服务器12进行通信。
进一步的,模型训练系统还可以包括:存储节点13,模型训练节点11还可以包括:至少一个第三节点113。其中,第二节点112、第三节点113,分别通过有线通讯方式或无线通讯方式与存储节点13进行通信。第三节点113通过有线通讯方式或无线通讯方式,分别与第一节点111、参数服务器12进行通信。第一节点111通过有线通讯方式或无线通讯方式,与参数服务器12进行通信。
其中,第一节点111,可以包括多个图形处理单元(graphic processing units,GPU),主要用于对训练样本标识对应的嵌入结果进行优化计算,得到训练样本标识对应的梯度信息,从参数服务器获取训练样本的稀疏特征的更新后的模型参数等。其中,GPU作为高性能的并行计算组件,在语音、图像等训练场景中被广泛应用。图1中以模型训练节点11包括两个第一节点111为例示出。
第二节点112,主要用于获取初始训练样本,为初始训练样本分配训练样本标识,获取初始训练样本的稀疏特征和稠密特征等。图1中以模型训练节点11包括两个第二节点112为例示出。
第三节点113,主要用于对初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到训练样本标识对应的稀疏特征。图1中以模型训练节点11包括两个第三节点113为例示出。
参数服务器12,主要用于根据训练样本标识执行嵌入寻找、根据训练样本标识对应的梯度信息更新训练样本的稀疏特征的模型参数,该模型参数可以是稀疏特征的权重参数。在一些实施例中,参数服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,本公开实施例对此不做限定。图1以两台参数服务器12为例示出。
存储节点13,主要用于存储训练样本、第二节点112获取的初始训练样本的稀疏特征和稠密特征,以及目标模型等。在一些实施例中,存储节点13可以是分布式文件系统,也可以是一个开源流处理平台,例如,Kafka平台。图1中以存储节点13为分布式文件系统,其包括两台服务器为例示出。
在介绍了本公开实施例的应用场景和实施环境之后,对本公开实施例提供的模型训练方法进行详细介绍。
为了便于本领域技术人员的理解,在此先对本公开实施例中涉及到的术语进行说明。
(1)稀疏特征和稠密特征:指的是训练样本的特征的值。其中,训练样本的特征可以包括用户特征和用户的操作特征。训练样本的特征中,如果一个特征的值为整数,则该特征的值为稀疏特征;如果一个特征的值为非整数,则该特征的值为稠密特征。稠密特征可以是多维浮点数向量,用于描述一句话或一幅图像等。
例如,在用户点击视频产生点击日志的场景中,训练样本的用户特征可以是用户的用户名、年龄、性别等,训练样本的用户的操作特征可以是用户点击的视频的名称、内容等。如表1所示,假设训练样本包括四条点击日志,分别为:日志1、日志2、日志3和日志4,这四条点击日志的特征包括:用户名、年龄、性别、用户点击的视频内容。
表1
如表1所示,性别的值中,0指示女性,1指示男性。年龄和性别这两个特征的值均为整数,则年龄的值和性别的值中,每个值均为一个稀疏特征。用户名和视频内容这两个特征的值均为多维浮点数向量,则用户名的值和视频内容的值中,每个值均为一个稠密特征。
图2是根据一示例性实施例示出的一种模型训练方法的流程图,如图2所示,该方法可以包括:
201、模型训练节点向参数服务器发送嵌入寻找请求。
其中,嵌入寻找请求中包括训练样本标识。
202、模型训练节点接收参数服务器返回的训练样本标识和训练样本标识对应的嵌入结果。
其中,参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系;训练样本标识对应的嵌入结果是参数服务器根据训练样本标识对应的稀疏特征对应的嵌入参数得到的。
203、模型训练节点对训练样本标识对应的嵌入结果进行优化计算,得到训练样本标识对应的梯度信息。
其中,训练样本标识对应的梯度信息用于指示训练样本标识对应的稀疏特征的模型参数的更新方向。
204、模型训练节点向参数服务器发送训练样本标识和训练样本标识对应的梯度信息。
205、模型训练节点从参数服务器获取训练样本的稀疏特征的更新后的模型参数。
206、模型训练节点根据训练样本的稀疏特征的更新后的模型参数,确定目标模型。
上述实施例提供的技术方案至少带来以下有益效果:模型训练节点在向参数服务器发送了嵌入寻找请求,并接收到其返回的训练样本标识和训练样本标识对应的嵌入结果后,对训练样本标识对应的嵌入结果进行优化计算,得到训练样本标识对应的梯度信息,向参数服务器发送训练样本标识和训练样本标识对应的梯度信息,且从参数服务器获取训练样本的稀疏特征的更新后的模型参数,并根据该训练样本的稀疏特征的更新后的模型参数,确定目标模型。这样,在训练目标模型的过程中,由于参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系,且训练样本标识对应的嵌入结果是参数服务器根据训练样本标识对应的稀疏特征对应的嵌入参数得到的,因此模型训练节点仅需接收参数服务器返回的训练样本标识和训练样本标识对应的嵌入结果,与现有技术中模型训练节点接收参数服务器返回的训练样本的稀疏特征对应的嵌入参数,由模型训练节点计算嵌入结果相比,本公开大大降低了传输数据所需的带宽,从而提高了整体的训练效率。
图3是根据一示例性实施例示出的一种模型训练方法的流程图,如图3所示,该方法可以包括:
301、参数服务器接收模型训练节点发送的嵌入寻找请求。
其中,嵌入寻找请求中包括训练样本标识。
302、参数服务器根据训练样本标识和稀疏特征的对应关系获取训练样本标识对应的稀疏特征,并根据稀疏特征和嵌入参数的对应关系,获取训练样本标识对应的稀疏特征对应的嵌入参数。
303、参数服务器根据训练样本标识对应的稀疏特征对应的嵌入参数确定训练样本标识对应的嵌入结果。
304、参数服务器向模型训练节点返回训练样本标识和训练样本标识对应的嵌入结果。
305、参数服务器接收模型训练节点发送的训练样本标识和训练样本标识对应的梯度信息。
其中,训练样本标识对应的梯度信息是根据训练样本标识对应的嵌入结果得到的,训练样本标识对应的梯度信息用于指示训练样本标识对应的稀疏特征的模型参数的更新方向。
306、参数服务器根据训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。
上述实施例提供的技术方案至少带来以下有益效果:参数服务器在接收到包括有训练样本标识的嵌入寻找请求后,获取训练样本标识对应的稀疏特征,获取训练样本标识对应的稀疏特征对应的嵌入参数,根据训练样本标识对应的稀疏特征对应的嵌入参数确定训练样本标识对应的嵌入结果,向模型训练节点返回训练样本标识和训练样本标识对应的嵌入结果,接收模型训练节点发送的训练样本标识和训练样本标识对应的梯度信息,并根据该梯度信息,更新训练样本的稀疏特征的模型参数。这样,在训练目标模型的过程中,由于参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系,且训练样本标识对应的嵌入结果是参数服务器根据训练样本标识对应的稀疏特征对应的嵌入参数得到的,因此参数服务器仅需向模型训练节点返回训练样本标识和训练样本标识对应的嵌入结果,与现有技术中参数服务器向模型训练节点返回训练样本的稀疏特征对应的嵌入参数,由模型训练节点计算嵌入结果相比,本公开大大降低了传输数据所需的带宽,从而提高了整体的训练效率。
图4是根据一示例性实施例示出的一种模型训练方法的流程图,如图4所示,该方法可以包括:
401、模型训练节点向参数服务器发送嵌入寻找请求。
其中,该训练样本标识对应训练样本。
402、参数服务器接收模型训练节点发送的嵌入寻找请求。
403、参数服务器获取训练样本标识对应的稀疏特征,并获取训练样本标识对应的稀疏特征对应的嵌入参数,且根据训练样本标识对应的稀疏特征对应的嵌入参数确定训练样本标识对应的嵌入结果。
其中,参数服务器在接收到嵌入寻找请求之后,可以查找自身存储的训练样本标识和稀疏特征的对应关系,获取嵌入寻找请求中包括的训练样本标识对应的稀疏特征。该训练样本标识对应的稀疏特征是训练样本的特征的值,这些特征的值为整数。
然后参数服务器可以基于训练样本标识对应的稀疏特征执行嵌入寻找(embedding lookup)操作,具体的:参数服务器查找自身存储的稀疏特征和嵌入参数的对应关系,获取训练样本标识对应的稀疏特征中,每个稀疏特征对应的嵌入参数,即得到训练样本标识对应的稀疏特征对应的嵌入参数,该嵌入参数通常为多维浮点数向量。最后参数服务器对训练样本标识对应的稀疏特征对应的嵌入参数进行加和、平均等运算,得到训练样本标识对应的一个嵌入结果。
404、参数服务器向模型训练节点返回训练样本标识和训练样本标识对应的嵌入结果。
405、模型训练节点接收参数服务器返回的训练样本标识和训练样本标识对应的嵌入结果。
406、模型训练节点对训练样本标识对应的嵌入结果进行优化计算,得到训练样本标识对应的梯度信息。
其中,训练样本标识对应的梯度信息用于指示训练样本标识对应的稀疏特征的模型参数的更新方向,该模型参数可以是稀疏特征的权重参数,权重参数可以为多维浮点数向量。
模型训练节点在接收到训练样本标识和训练样本标识对应的嵌入结果后,可以获取训练样本标识对应的标签,训练样本标识对应的标签用于指示训练样本的属性。然后模型训练节点可以基于训练样本标识对应的标签,利用损失函数,将训练样本标识对应的嵌入结果作为损失函数的输入,进行优化计算,得到训练样本标识对应的梯度信息。
407、模型训练节点向参数服务器发送训练样本标识和训练样本标识对应的梯度信息。
408、参数服务器接收模型训练节点发送的训练样本标识和训练样本标识对应的梯度信息。
409、参数服务器根据训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。
其中,参数服务器在接收到训练样本标识和训练样本标识对应的梯度信息之后,可以查找自身存储的训练样本标识和稀疏特征的对应关系,获取接收到的训练样本标识对应的稀疏特征。然后再根据训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。当模型参数为稀疏特征的权重参数时,参数服务器中存储有稀疏特征和其对应的初始权重参数,参数服务器可以根据训练样本标识对应的梯度信息,更新训练样本标识对应的每个稀疏特征的初始权重,得到训练样本标识对应的稀疏特征的更新后的权重参数。
410、模型训练节点从参数服务器获取训练样本的稀疏特征的更新后的模型参数。
411、模型训练节点根据训练样本的稀疏特征的更新后的模型参数,确定目标模型。
上述实施例提供的技术方案至少带来以下有益效果:在训练目标模型的过程中,由于参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系,且训练样本标识对应的嵌入结果是参数服务器根据训练样本标识对应的稀疏特征对应的嵌入参数得到的,因此参数服务器仅需向模型训练节点返回训练样本标识和训练样本标识对应的嵌入结果,与现有技术中参数服务器向模型训练节点返回训练样本的稀疏特征对应的嵌入参数,由模型训练节点计算嵌入结果相比,本公开大大降低了传输数据所需的带宽,从而提高了整体的训练效率。
且,在上述步骤406中,模型训练节点的处理器(central processing units,CPU)在接收到训练样本标识和训练样本标识对应的嵌入结果后,可以将训练样本标识和训练样本标识对应的嵌入结果从CPU拷贝到GPU中,然后由模型训练节点的GPU对嵌入结果进行优化计算,得到训练样本标识对应的梯度信息。这样,由于本公开仅需进行训练样本标识和训练样本标识对应的嵌入结果的拷贝,与现有技术中模型训练节点将训练样本的稀疏特征对应的嵌入参数从CPU拷贝到GPU相比,拷贝的数据的数量减少,减少了拷贝所用的时间,进一步提高了训练模型的效率。
进一步的,如图5所示,在执行上述步骤401之前,本公开实施例的模型训练方法还可以包括以下步骤412-步骤417:
412、模型训练节点获取初始训练样本。
其中,模型训练节点可以从存储节点中获取日志数据。存储节点可以为分布式文件系统或开源流处理平台,模型训练节点便可以从分布式文件系统,或者开源流处理平台的消息队列中订阅日志数据,并对订阅的日志数据进行预处理、筛选过滤等操作,得到初始训练样本。其中,先进行预处理操作,包括去除无效日志,无效日志的特征的值中存在异常值或缺失值;然后进行筛选过滤操作,包括根据日志数据的特征进行过滤,例如:根据时间特征过滤出某时间段的日志。
413、模型训练节点为初始训练样本分配训练样本标识。
414、模型训练节点获取初始训练样本的稀疏特征。
其中,模型训练节点在步骤412获取到初始训练样本之后,可以从该初始训练样本中抽取至少一个特征,并将至少一个特征中每个特征的值中,整数的值作为稀疏特征,得到初始训练样本的稀疏特征。例如,假设初始训练样本包括表1的四条日志,那么初始训练样本的稀疏特征可以包括:年龄的值19、39、29、29,以及性别的值0、1、0、0。
进一步的,模型训练节点在获取初始训练样本的稀疏特征的同时,还可以获取初始训练样本的稠密特征,具体的,模型训练节点可以将至少一个特征中每个特征的值中,非整数的值作为稠密特征,得到初始训练样本的稠密特征。例如,假设初始训练样本包括表1的四条日志,那么初始训练样本的稠密特征可以包括:用户名的值,以及视频内容的值。
此时,上述步骤411具体的可以包括:模型训练节点根据训练样本的稀疏特征的更新后的模型参数,以及初始训练样本的稠密特征,确定目标模型。
需要说明的是,在本公开实施例中,某特征对应的稀疏特征,或者某特征对应的稠密特征,是以位域(field)的形式组织在一起的。例如,年龄对应的稀疏特征19、39、29、29以field的形式组织在一起,用户名对应的稠密特征以field的形式组织在一起。
415、模型训练节点向参数服务器发送训练样本标识和对应的初始训练样本的稀疏特征。
此时初始训练样本的稀疏特征即为训练样本标识对应的稀疏特征。
416、参数服务器接收模型训练节点发送的训练样本标识和对应的初始训练样本的稀疏特征。
417、参数服务器保存训练样本标识和对应的初始训练样本的稀疏特征。
上述实施例提供的技术方案至少带来以下有益效果:通过确定训练样本标识与初始训练样本的稀疏特征的对应关系,使得在目标模型的训练过程中,模型训练节点仅需向参数服务器发送一次初始训练样本的稀疏特征,与现有技术中的模型训练节点向参数服务器发送了两次训练样本的稀疏特征相比,降低了传输稀疏特征所需的带宽,进一步提高了整体的训练效率。
进一步的,如图6所示,在执行上述步骤414之后,步骤415之前,本公开实施例的模型训练方法还可以包括以下步骤418:
418、模型训练节点对初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到训练样本标识对应的稀疏特征。
其中,模型训练节点在获取到初始训练样本的稀疏特征之后,可以对每个特征对应的稀疏特征,即对每一个field中的稀疏特征进行排序和去重处理,以及变长整数编码处理,从而得到训练样本标识对应的稀疏特征。
排序和去重处理是按照由小到大或由大到小的顺序对每一个field中的稀疏特征进行排序,然后去除序列中重复的稀疏特征。例如,结合表1,对年龄对应的稀疏特征:19、39、29、29,按照由小到大的顺序排序,得到序列:19、29、29、39,然后去重,得到序列:19、29、39。对性别对应的稀疏特征:0、1、0、0,按照由小到大的顺序排序,得到序列:0、0、0、1,然后去重,得到序列:0、1。
变长整数编码处理是一种对数据进行压缩来减少存储空间的方式。示例性的,可以采用计算差值的方式,将大数字变为小数字,来达到减少存储空间的目的。例如,对于年龄的排序和去重后的稀疏特征序列:19、29、39,可以从第二个整数开始,分别计算与前一个整数的差值,得到变长整数编码处理后的序列:19、10、10。
在执行完步骤418之后,相应的,上述步骤415-步骤417可以相应的包括步骤415a-步骤417a:
415a、模型训练节点向参数服务器发送训练样本标识和训练样本标识对应的稀疏特征。
416a、参数服务器接收模型训练节点发送的训练样本标识和训练样本标识对应的稀疏特征。
417a、参数服务器保存训练样本标识和训练样本标识对应的稀疏特征。
上述实施例提供的技术方案至少带来以下有益效果:通过对初始训练样本的稀疏特征进行排序和去重处理,使得稀疏特征的数量减少,这样不仅降低了传输稀疏特征所需的带宽,而且使得参数服务器在获取稀疏特征对应的嵌入参数时,同样的稀疏特征仅需查找一次,降低了参数服务器的处理压力。且通过对排序和去重后的稀疏特征进行变长整数编码处理,使得大数字变为小数字,进一步的降低了传输稀疏特征所需的带宽,从而提高了训练效率。
进一步的,如图7所示,上述步骤413具体可以包括以下步骤413b:
413b、模型训练节点对初始训练样本进行分批处理,得到至少一个批次集合。
其中,模型训练节点在获取到初始训练样本之后,可以根据预先设置的一个批次集合包括的日志的目标数量,对初始训练样本进行分批处理,得到至少一个批次集合,一个批次集合对应一个批次标识。此时,训练样本标识指的是批次标识。其中,目标数量可以是1024,也可以是其他数量。
在执行完步骤413b之后,上述步骤414-步骤417可以相应包括414b-步骤417b:
414b、模型训练节点获取每个批次集合包括的训练样本的稀疏特征。
其中,模型训练节点在得到至少一个批次集合之后,可以从每个批次集合包括的训练样本中抽取至少一个特征,并将这些特征的值中,整数的值作为稀疏特征,得到该批次集合包括的训练样本的稀疏特征。同时将非整数的值作为稠密特征,得到该批次集合包括的训练样本的稠密特征。
415b、模型训练节点向参数服务器发送批次标识和批次标识对应的批次集合的稀疏特征。
416b、参数服务器接收模型训练节点发送的批次标识和批次标识对应的批次集合的稀疏特征。
417b、参数服务器保存批次标识和批次标识对应的批次集合的稀疏特征。
上述实施例提供的技术方案至少带来以下有益效果:通过对初始训练样本进行分批处理,使得一个批次集合对应一个批次标识,并分别对每个批次集合的稀疏特征进行训练,这样在训练大规模稀疏特征的情况下,能够实现参数服务器执行嵌入寻找、模型训练节点将嵌入结果从CPU拷贝到GPU、并执行优化计算、参数服务器更新稀疏特征的模型参数这些步骤的流水线化,从而提高训练效率。
进一步的,对初始训练样本进行分批处理的情况下,在执行步骤414b之后,步骤415b之前,模型训练节点可以对批次标识对应的批次集合包括的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到批次标识对应的批次集合包括的目标稀疏特征,以便降低传输稀疏特征所需的带宽,从而提高训练效率。
图8为根据一示例性实施例示出的另一种模型训练方法的流程图,应用于图1所示的模型训练系统,如图8所示,该方法可以包括以下步骤501-步骤522:
501、第二节点获取初始训练样本。
具体过程可以参考步骤412,在此不做赘述。
502、第二节点对初始训练样本进行分批处理,得到至少一个批次集合。
具体过程可以参考步骤413b,在此不做赘述。
503、第二节点获取每个批次集合包括的训练样本的稀疏特征和稠密特征。
具体过程可以参考步骤414b,在此不做赘述。
且,第二节点可以获取每个批次集合包括的训练样本的标签。
504、第二节点向存储节点发送批次标识和批次标识对应的批次集合包括的稀疏特征和稠密特征。
其中,存储节点为分布式文件系统时,分布式文件系统可以将每个批次标识对应的批次集合包括的稀疏特征和稠密特征以文件的形式进行保存。或者,存储节点为开源流处理平台时,第二节点可以将每个批次标识对应的批次集合包括的稀疏特征和稠密特征,以流的形式写入到开源流处理平台的分布式消息队列中,供第三节点使用。
且,第二节点还向存储节点发送了批次标识对应的标签。
505、第三节点从存储节点获取批次标识和批次标识对应的批次集合包括的稀疏特征和稠密特征。
其中,第三节点还从存储节点获取了批次标识对应的标签。
506、第三节点对批次标识对应的批次集合包括的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到批次标识对应的批次集合包括的目标稀疏特征。
具体过程可以参考步骤418,在此不做赘述。
507、第三节点向参数服务器发送批次标识和批次标识对应的批次集合包括的目标稀疏特征。
其中,第三节点在向参数服务器发送了批次标识和批次标识对应的批次集合包括的目标稀疏特征之后,可以将该批次标识、该批次标识对应的标签、该批次标识对应的批次集合包括的稠密特征保存在发送批队列(sendbatch queue)中,表明该批次标识对应的批次集合已经准备就绪。
508、参数服务器接收并保存批次标识和批次标识对应的批次集合包括的目标稀疏特征。
其中,参数服务器在接收到批次标识和批次标识对应的批次集合包括的目标稀疏特征后,可以在稀疏特征缓存映射(sparse feature cache map)中缓存批次标识和批次标识对应的批次集合包括的目标稀疏特征。
509、第一节点向第三节点发送训练样本请求。
510、第三节点接收第一节点发送的训练样本请求。
511、第三节点向第一节点发送批次标识和批次标识对应的批次集合包括的稠密特征。
其中,第三节点可以从发送批队列中取出一组批次标识、批次标识对应的标签、批次标识对应的批次集合包括的稠密特征,返回给第一节点。
512、第一节点接收第三节点发送的批次标识和批次标识对应的批次集合包括的稠密特征。
513、第一节点向参数服务器发送嵌入寻找请求。
其中,嵌入寻找请求中包括批次标识。
514、参数服务器接收第一节点发送的嵌入寻找请求,并根据嵌入寻找请求包括的批次标识,获取批次标识对应的批次集合包括的目标稀疏特征,且执行嵌入寻找操作,得到批次标识对应的嵌入结果。
其中,参数服务器在接收到嵌入寻找请求之后,可以基于嵌入寻找请求包括的批次标识,从稀疏特征缓存映射中获取批次标识对应的批次集合包括的目标稀疏特征,并对批次标识对应的批次集合包括的目标稀疏特征执行嵌入寻找操作,具体过程可以参考步骤403,在此不做赘述。
515、参数服务器向第一节点返回批次标识和批次标识对应的嵌入结果。
516、第一节点接收参数服务器返回的批次标识和批次标识对应的嵌入结果。
517、第一节点对批次标识对应的嵌入结果进行优化计算,得到批次标识对应的梯度信息。
其中,第一节点在接收到批次标识和批次标识对应的嵌入结果后,可以将其与步骤511中第三节点向第一节点发送的批次标识、批次标识对应的标签、批次标识对应的批次集合包括的稠密特征进行组装,得到批次标识、批次标识对应的嵌入结果、批次标识对应的批次集合包括的稠密特征、批次标识对应的标签,并保存在样本队列(sample queue)中。
然后第一节点可以从样本队列中取出批次标识对应的嵌入结果和批次标识对应的标签,利用损失函数进行训练,可以采用单机多卡(一个第一节点的多个GPU)或多机多卡(多个第一节点,每个第一节点包括多个GPU)的训练方式,得到批次标识对应的梯度信息。
518、第一节点向参数服务器发送批次标识和批次标识对应的梯度信息。
其中,第一节点可以将批次标识和批次标识对应的梯度信息缓存至发送队列中,发送至参数服务器。
519、参数服务器接收第一节点发送的批次标识和批次标识对应的梯度信息。
520、参数服务器根据批次标识对应的梯度信息,更新批次标识对应的批次集合包括的目标稀疏特征的模型参数。
具体过程可以参考步骤409,在此不做赘述。
需要说明的是,本公开实施例中的步骤401-步骤420是以处理一个批次集合为例进行说明的。可以重复执行步骤401-步骤420,来进行所有批次集合的训练,从而参数服务器可以得到训练样本的稀疏特征的更新后的模型参数。
521、第一节点从参数服务器获取训练样本的稀疏特征的更新后的模型参数。
522、第一节点根据训练样本的稀疏特征的更新后的模型参数,以及初始训练样本的稠密特征,确定目标模型。
其中,第一节点在确定出目标模型之后,可以将其导出至存储节点,以供具体的业务使用。
上述实施例提供的技术方案至少带来以下有益效果:
1、由于参数服务器仅需向第一节点返回批次标识和批次标识对应的嵌入结果,该批次标识对应的嵌入结果是根据批次标识对应的批次集合包括的目标稀疏特征对应的嵌入参数得到的一个结果,与现有技术中参数服务器向模型训练节点返回训练样本的稀疏特征对应的嵌入参数,由模型训练节点计算嵌入结果相比,本公开大大降低了传输数据所需的带宽,从而提高了整体的训练效率。且,本公开中仅需进行批次标识和批次标识对应的嵌入结果的拷贝,与现有技术中模型训练节点将训练样本的稀疏特征对应的嵌入参数从CPU拷贝到GPU相比,拷贝的数据的数量减少,减少了拷贝所用的时间,进一步提高了训练模型的效率。
2、通过第三节点对批次标识对应的批次集合包括的稀疏特征进行排序和去重处理,以及变长整数编码处理,这样不仅降低了传输稀疏特征所需的带宽,而且降低了参数服务器的处理压力,从而提高了训练效率。
3、通过第二节点对初始训练样本进行分批处理,使得一个批次集合对应一个批次标识,并分别对每个批次集合的稀疏特征进行训练,这样在训练大规模稀疏特征的情况下,能够实现参数服务器执行嵌入寻找、模型训练节点将嵌入结果从CPU拷贝到GPU、并执行优化计算、参数服务器更新稀疏特征的模型参数这些步骤的流水线化,从而提高训练效率。
4、由于参数服务器在稀疏特征缓存映射中缓存了批次标识和批次标识对应的批次集合包括的目标稀疏特征,使得参数服务器在执行嵌入寻找和模型参数的更新时,可以直接根据批次标识查找对应的目标稀疏特征,无需反复传输,提高了训练效率。
5、参数服务器可以通过cuckoohashmap等高效的数据结构,并发执行嵌入寻找操作和模型参数的更新操作,且在训练大规模的稀疏特征时,可以通过水平的方式进行扩展。
图9是根据一示例性实施例示出的一种模型训练节点的逻辑结构框图。参照图9,该模型训练节点包括:发送模块61,接收模块62、计算模块63、获取模块64和确定模块65。
发送模块61,被配置为执行向参数服务器发送嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
接收模块62,被配置为执行接收所述参数服务器返回的所述训练样本标识和所述训练样本标识对应的嵌入结果,所述参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系;所述训练样本标识对应的嵌入结果是根据所述训练样本标识对应的稀疏特征对应的嵌入参数得到的;
计算模块63,被配置为执行对所述训练样本标识对应的嵌入结果进行优化计算,得到所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
发送模块61,还被配置为执行向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的梯度信息;
获取模块64,被配置为执行从所述参数服务器获取训练样本的稀疏特征的更新后的模型参数;
确定模块65,被配置为执行根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型。
可选的,模型训练节点还包括分配模块66(图9中未示出);
获取模块64,还被配置为执行获取初始训练样本;
分配模块66,被配置为执行为所述初始训练样本分配所述训练样本标识;
获取模块64,还被配置为执行获取所述初始训练样本的稀疏特征;
发送模块61,还被配置为执行向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,获取模块64,还被配置为执行获取所述初始训练样本的稠密特征;
确定模块65,具体被配置为执行根据所述训练样本的稀疏特征的更新后的模型参数,以及所述初始训练样本的稠密特征,得到所述目标模型。
可选的,模型训练节点还包括处理模块67(图9中未示出),被配置为执行对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到所述训练样本标识对应的稀疏特征;
发送模块61,具体被配置为执行向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的稀疏特征。
可选的,分配模块66,具体被配置为执行对所述初始训练样本进行分批处理,得到至少一个批次集合,一个所述批次集合对应一个批次标识,一个所述批次集合包括目标数量的训练样本;
获取模块64,具体被配置为执行获取每个所述批次集合包括的训练样本的稀疏特征;
发送模块61,具体被配置为执行向所述参数服务器发送所述批次标识和所述批次标识对应的批次集合的稀疏特征。
需要说明的是,模型训练节点包括的各个模块可以位于不同的节点上。例如,处理模块67可以位于第三节点上,计算模块63位于第一节点上,发送模块61和接收模块61在第一节点、第二节点和第三节点上均有。
图10是根据一示例性实施例示出的一种参数服务器的逻辑结构框图。参照图10,该参数服务器包括:接收模块71,获取模块72、确定模块73、发送模块74和更新模块75。
接收模块71,被配置为执行接收模型训练节点发送的嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
获取模块72,被配置为执行根据训练样本标识和稀疏特征的对应关系获取所述训练样本标识对应的稀疏特征,并根据稀疏特征和嵌入参数的对应关系,获取所述训练样本标识对应的稀疏特征对应的嵌入参数;
确定模块73,被配置为执行根据所述训练样本标识对应的稀疏特征对应的嵌入参数确定所述训练样本标识对应的嵌入结果;
发送模块74,被配置为执行向所述模型训练节点返回所述训练样本标识和所述训练样本标识对应的嵌入结果;
接收模块71,还被配置为执行接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息是根据所述训练样本标识对应的嵌入结果得到的,所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
更新模块75,被配置为执行根据所述训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。
可选的,参数服务器还包括存储模块76(图10中未示出);
接收模块71,还被配置为执行接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征;
存储模块76,被配置为执行保存所述训练样本标识和对应的所述初始训练样本的稀疏特征。
可选的,接收模块71,具体被配置为执行接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的稀疏特征,所述训练样本标识对应的稀疏特征是对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理后得到的。
可选的,接收模块71,具体被配置为执行接收所述模型训练节点发送的批次标识和所述批次标识对应的批次集合的稀疏特征,所述批次标识对应的批次集合包括目标数量的训练样本,所述批次标识对应的批次集合的稀疏特征是从所述批次标识对应的批次集合包括的训练样本中得到的。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种模型训练节点的结构框图,该模型训练节点可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器81、一个以上GPU82和一个或一个以上的存储器83。其中,存储器83中存储有至少一条指令,至少一条指令由处理器81加载并执行以实现上述各个方法实施例提供的模型训练方法。当然,该模型训练节点还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该模型训练节点还可以包括其他用于实现设备功能的部件,在此不做赘述。
图12是根据一示例性实施例示出的一种参数服务器的结构框图,该参数服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器91和一个或一个以上的存储器92。其中,存储器92中存储有至少一条指令,至少一条指令由处理器91加载并执行以实现上述各个方法实施例提供的模型训练方法。当然,该参数服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该参数服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本公开还提供了一种包括指令的计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机能够执行上述所示实施例提供的模型训练方法。例如,计算机可读存储介质可以为包括指令的存储器83,上述指令可由模型训练节点的处理器81执行以完成上述方法。又例如,计算机可读存储介质可以为包括指令的存储器92,上述指令可由参数服务器的处理器91执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机设备执行上述所示实施例提供的模型训练方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种模型训练方法,应用于模型训练节点,其特征在于,所述方法包括:
向参数服务器发送嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
接收所述参数服务器返回的所述训练样本标识和所述训练样本标识对应的嵌入结果,所述参数服务器存储有训练样本标识和稀疏特征的对应关系,以及稀疏特征和嵌入参数的对应关系;所述训练样本标识对应的嵌入结果是根据所述训练样本标识对应的稀疏特征对应的嵌入参数得到的;
对所述训练样本标识对应的嵌入结果进行优化计算,得到所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的梯度信息;
从所述参数服务器获取训练样本的稀疏特征的更新后的模型参数;
根据所述训练样本的稀疏特征的更新后的模型参数,确定目标模型。
2.根据权利要求1所述的模型训练方法,其特征在于,在所述向参数服务器发送嵌入寻找请求之前,所述方法还包括:
获取初始训练样本;
为所述初始训练样本分配所述训练样本标识;
获取所述初始训练样本的稀疏特征;
向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征。
3.根据权利要求2所述的模型训练方法,其特征在于,在向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征之前,所述方法还包括:
对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理,得到所述训练样本标识对应的稀疏特征;
向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
向所述参数服务器发送所述训练样本标识和所述训练样本标识对应的稀疏特征。
4.根据权利要求2所述的模型训练方法,其特征在于,所述为所述初始训练样本分配所述训练样本标识,包括:
对所述初始训练样本进行分批处理,得到至少一个批次集合,一个所述批次集合对应一个批次标识,一个所述批次集合包括目标数量的训练样本;
获取所述初始训练样本的稀疏特征,包括:
获取每个所述批次集合包括的训练样本的稀疏特征;
向所述参数服务器发送所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
向所述参数服务器发送所述批次标识和所述批次标识对应的批次集合的稀疏特征。
5.一种模型训练方法,应用于参数服务器,其特征在于,所述方法包括:
接收模型训练节点发送的嵌入寻找请求,所述嵌入寻找请求中包括训练样本标识;
根据训练样本标识和稀疏特征的对应关系获取所述训练样本标识对应的稀疏特征,并根据稀疏特征和嵌入参数的对应关系,获取所述训练样本标识对应的稀疏特征对应的嵌入参数;
根据所述训练样本标识对应的稀疏特征对应的嵌入参数确定所述训练样本标识对应的嵌入结果;
向所述模型训练节点返回所述训练样本标识和所述训练样本标识对应的嵌入结果;
接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的梯度信息;所述训练样本标识对应的梯度信息是根据所述训练样本标识对应的嵌入结果得到的,所述训练样本标识对应的梯度信息用于指示所述训练样本标识对应的稀疏特征的模型参数的更新方向;
根据所述训练样本标识对应的梯度信息,更新训练样本的稀疏特征的模型参数。
6.根据权利要求5所述的模型训练方法,其特征在于,在所述接收模型训练节点发送的嵌入寻找请求之前,所述方法还包括:
接收所述模型训练节点发送的所述训练样本标识和对应的初始训练样本的稀疏特征;
保存所述训练样本标识和对应的所述初始训练样本的稀疏特征。
7.根据权利要求6所述的模型训练方法,其特征在于,所述接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
接收所述模型训练节点发送的所述训练样本标识和所述训练样本标识对应的稀疏特征,所述训练样本标识对应的稀疏特征是对所述初始训练样本的稀疏特征进行排序和去重处理,以及变长整数编码处理后得到的。
8.根据权利要求6所述的模型训练方法,其特征在于,所述接收所述模型训练节点发送的所述训练样本标识和对应的所述初始训练样本的稀疏特征,包括:
接收所述模型训练节点发送的批次标识和所述批次标识对应的批次集合的稀疏特征,所述批次标识对应的批次集合包括目标数量的训练样本,所述批次标识对应的批次集合的稀疏特征是从所述批次标识对应的批次集合包括的训练样本中得到的。
9.一种模型训练节点,其特征在于,所述模型训练节点包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-4中任一项所述的模型训练方法。
10.一种参数服务器,其特征在于,所述参数服务器包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求5-8中任一项所述的模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911205221.1A CN112884157B (zh) | 2019-11-29 | 2019-11-29 | 一种模型训练方法、模型训练节点及参数服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911205221.1A CN112884157B (zh) | 2019-11-29 | 2019-11-29 | 一种模型训练方法、模型训练节点及参数服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112884157A true CN112884157A (zh) | 2021-06-01 |
CN112884157B CN112884157B (zh) | 2024-03-26 |
Family
ID=76038989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911205221.1A Active CN112884157B (zh) | 2019-11-29 | 2019-11-29 | 一种模型训练方法、模型训练节点及参数服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112884157B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263175A1 (en) * | 2006-12-20 | 2008-10-23 | Naono Norihiko | System, server, information terminal operating system, middleware, information communication device, certification method, and system and application software |
CN107330516A (zh) * | 2016-04-29 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置及系统 |
US20180314971A1 (en) * | 2017-04-26 | 2018-11-01 | Midea Group Co., Ltd. | Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server |
CN109635948A (zh) * | 2018-12-19 | 2019-04-16 | 北京达佳互联信息技术有限公司 | 在线训练方法、装置、系统及计算机可读存储介质 |
CN109754060A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN109902820A (zh) * | 2019-02-20 | 2019-06-18 | 腾讯科技(深圳)有限公司 | Ai模型训练方法、装置、存储介质及设备 |
CN110134636A (zh) * | 2018-02-09 | 2019-08-16 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
-
2019
- 2019-11-29 CN CN201911205221.1A patent/CN112884157B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263175A1 (en) * | 2006-12-20 | 2008-10-23 | Naono Norihiko | System, server, information terminal operating system, middleware, information communication device, certification method, and system and application software |
CN107330516A (zh) * | 2016-04-29 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置及系统 |
US20180314971A1 (en) * | 2017-04-26 | 2018-11-01 | Midea Group Co., Ltd. | Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server |
CN109754060A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN110134636A (zh) * | 2018-02-09 | 2019-08-16 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
CN109635948A (zh) * | 2018-12-19 | 2019-04-16 | 北京达佳互联信息技术有限公司 | 在线训练方法、装置、系统及计算机可读存储介质 |
CN109902820A (zh) * | 2019-02-20 | 2019-06-18 | 腾讯科技(深圳)有限公司 | Ai模型训练方法、装置、存储介质及设备 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112884157B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210049507A1 (en) | Method and system for distributed machine learning | |
CN109559234B (zh) | 一种区块链状态数据的存储方法、设备和存储介质 | |
CN107145485B (zh) | 用于压缩主题模型的方法和装置 | |
CN111310074B (zh) | 兴趣点的标签优化方法、装置、电子设备和计算机可读介质 | |
CN109344314B (zh) | 一种数据处理方法、装置及服务器 | |
CN108229986B (zh) | 信息点击预测中的特征构建方法、信息投放方法和装置 | |
CN110633796B (zh) | 模型更新方法、装置、电子设备及存储介质 | |
CN111815738B (zh) | 一种构建地图的方法和装置 | |
CN110162637B (zh) | 信息图谱构建方法、装置及设备 | |
CN114503128A (zh) | 加速嵌入层计算 | |
CN114238329A (zh) | 向量相似度计算方法、装置、设备及存储介质 | |
US20110179013A1 (en) | Search Log Online Analytic Processing | |
CN110245135A (zh) | 一种基于numa架构的大规模流式图数据更新方法 | |
EP3242222B1 (en) | Searching method and apparatus | |
CN111581443B (zh) | 分布式图计算方法、终端、系统及存储介质 | |
CN113761017A (zh) | 相似性搜索方法和装置 | |
CN113590898A (zh) | 数据检索方法、装置、电子设备、存储介质及计算机产品 | |
CN113657411A (zh) | 神经网络模型的训练方法、图像特征提取方法及相关装置 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
CN110807097A (zh) | 分析数据的方法和装置 | |
CN112884157B (zh) | 一种模型训练方法、模型训练节点及参数服务器 | |
CN113240089B (zh) | 基于图检索引擎的图神经网络模型训练方法和装置 | |
CN113971428A (zh) | 数据处理方法、系统、设备、程序产品及存储介质 | |
CN110895582A (zh) | 一种数据处理的方法和设备 | |
CN112364251B (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 |