CN114723047A - 任务模型训练方法、装置以及系统 - Google Patents

任务模型训练方法、装置以及系统 Download PDF

Info

Publication number
CN114723047A
CN114723047A CN202210397221.1A CN202210397221A CN114723047A CN 114723047 A CN114723047 A CN 114723047A CN 202210397221 A CN202210397221 A CN 202210397221A CN 114723047 A CN114723047 A CN 114723047A
Authority
CN
China
Prior art keywords
training
model
subtask
server
task model
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
Application number
CN202210397221.1A
Other languages
English (en)
Other versions
CN114723047B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210397221.1A priority Critical patent/CN114723047B/zh
Priority claimed from CN202210397221.1A external-priority patent/CN114723047B/zh
Publication of CN114723047A publication Critical patent/CN114723047A/zh
Application granted granted Critical
Publication of CN114723047B publication Critical patent/CN114723047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例提供任务模型训练方法、装置以及系统,其中任务模型训练方法,应用于训练设备,包括:在接收到服务器发送的第一子任务模型的情况下,先将本地训练样本输入第一子任务模型,得到输出向量;然后根据稀疏矩阵对输出向量进行稀疏化处理,得到隐层特征向量并发送至服务器;接着接收预测结果,基于预测结果与标签信息确定损失值,并基于损失值获取梯度向量;然后根据梯度向量,更新稀疏矩阵,返回执行将本地训练样本输入第一子任务模型的步骤,直至达到训练停止条件。极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;在保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。

Description

任务模型训练方法、装置以及系统
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种任务模型训练方法。
背景技术
随着计算机技术和人工智能技术的快速发展,深度神经网络(DNN,Deep NeuralNetworks)已逐渐应用于风险评估、语音识别、人脸识别和自然语言处理等领域。不同应用场景下的深度神经网络的结构相对固定,为实现更好的模型性能,就需要更多的训练数据。对于不同的领域,不同的企业或机构拥有不同的训练样本,对这些训练样本进行联合训练,将极大提升深度神经网络模型的精度,给企业带来巨大的经济效益。然而这些原始的训练样本包含大量的用户隐私和机密,一旦信息泄露,将导致不可挽回的负面影响。此外,多方联合计算的样本量巨大,往往在千万级甚至上亿级别,导致训练使用的深度神经网络模型更为复杂。因此,亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本说明书施例提供了任务模型训练方法。本说明书一个或者多个实施例同时涉及任务模型训练装置,一种任务模型训练系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种任务模型训练方法,应用于训练设备,包括:
在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;
根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;
接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;
根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。
可选地,在所述将本地训练样本输入所述第一子任务模型之前,还包括:
在接收到服务器发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;
将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器,以使所述服务器基于各训练设备发送的初始任务模型和训练样本量确定预训练的任务模型。
可选地,所述根据本地训练样本对所述任务模型进行训练,得到初始任务模型,包括:
根据本地训练样本对所述任务模型进行迭代训练;
在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
可选地,所述根据稀疏矩阵对所述输出向量进行稀疏化处理之前,还包括:
随机选择所述稀疏矩阵中的N个元素,N为任意自然数;
将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
可选地,所述根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,包括:
将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
可选地,所述基于所述损失值获取梯度向量,包括:
将所述损失值发送至所述服务器,以使所述服务器基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
可选地,所述根据所述梯度向量,更新所述稀疏矩阵,包括:
将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;
根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
可选地,所述根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵,包括:
根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;
将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
根据本说明书实施例的第二方面,提供了一种任务模型训练方法,应用于服务器,包括:
根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;
将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;
将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
可选地,在所述根据预设拆分规则,将预训练的任务模型进行拆分之前,还包括:
从所述各训练设备选择K个训练设备,并将任务发送分别至所述K个训练设备,K为任一正整数;
接收所述K个训练设备分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备中的任一训练设备根据本地训练样本对所述任务模型进行训练得到;
基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
可选地,在所述将所述预测结果发送至所述指定训练设备之后,还包括:
接收所述指定训练设备发送的损失值,所述损失值为所述指定训练设备基于所述预测结果和本地训练样本的标签信息确定;
根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;
将所述梯度向量发送至所述指定训练设备,以使所述指定训练设备基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
根据本说明书实施例的第三方面,提供了一种任务模型训练装置,应用于训练设备,包括:
输入模块,被配置为在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;
处理模块,被配置为根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;
获取模块,被配置为接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;
更新模块,被配置为根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。
可选地,所述装置还包括第一预训练模块,被配置为:
在接收到服务器发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;
将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器,以使所述服务器基于各训练设备发送的初始任务模型和训练样本量确定预训练的任务模型。
可选地,所述第一预训练模块,还被配置为:
根据本地训练样本对所述任务模型进行迭代训练;
在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
可选地,所述处理装置,还被配置为:
随机选择所述稀疏矩阵中的N个元素,N为任意自然数;
将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
可选得,所述处理模块,还被配置为:
将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
可选地,所述获取模块,还被配置为:
将所述损失值发送至所述服务器,以使所述服务器基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
可选地,所述更新模块,还被配置为:
将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;
根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
可选地,所述更新模块,还被配置为:
根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;
将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
根据本说明书实施例的第四方面,提供了一种任务模型训练装置,应用于服务器,包括:
拆分模块,被配置为根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
接收模块,被配置为接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;
确定模块,被配置为将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;
发送模块,被配置为将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
可选地,所述装置还包括第二预训练模块,被配置为:
从所述各训练设备选择K个训练设备,并将任务发送分别至所述K个训练设备,K为任一正整数;
接收所述K个训练设备分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备中的任一训练设备根据本地训练样本对所述任务模型进行训练得到;
基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
可选地,所述发送模块,还被配置为:
接收所述指定训练设备发送的损失值,所述损失值为所述指定训练设备基于所述预测结果和本地训练样本的标签信息确定;
根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;
将所述梯度向量发送至所述指定训练设备,以使所述指定训练设备基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
根据本说明书实施例的第五方面,一种任务模型训练系统,包括:
服务器和多个训练设备;
所述服务器,用于根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
指定训练设备,用于在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;所述指定训练设备为任一训练设备;
所述服务器,还用于接收指定训练设备发送的隐层特征向量;将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;将所述预测结果发送至所述指定训练设备;
所述指定训练设备,还用于接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量;根据所述梯度向量,更新所述稀疏矩阵,继续执行所述将本地训练样本输入所述子任务模型的步骤,直至达到训练停止条件。
可选地,所述服务器,还用于从所述各训练设备选择K个训练设备,并将任务发送分别至所述K个训练设备,K为任一正整数;接收所述K个训练设备分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备中的任一训练设备根据本地训练样本对所述任务模型进行训练得到;基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
可选地,所述指定训练设备,还用于在接收到服务器发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器,以使所述服务器基于各训练设备发送的初始任务模型和训练样本量确定预训练的任务模型。
可选地,所述指定训练设备,还用于根据本地训练样本对所述任务模型进行迭代训练;在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
可选地,所述指定训练设备,还用于随机选择所述稀疏矩阵中的N个元素,N为任意自然数;将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
可选地,所述指定训练设备,还用于将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
可选地,所述指定训练设备,还用于将所述损失值发送至所述服务器,以使所述服务器基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
可选地,所述服务器,还用于接收所述指定训练设备发送的损失值,所述损失值为所述指定训练设备基于所述预测结果和本地训练样本的标签信息确定;根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;将所述梯度向量发送至所述指定训练设备,以使所述指定训练设备基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
可选地,所述指定训练设备,还用于将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
可选地,所述指定训练设备,还用于根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
根据本说明书实施例的第六方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务模型训练方法的步骤
根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述任务模型训练方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述任务模型训练方法的步骤。
本说明书一个实施例提供的任务模型训练方法,通过在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。
附图说明
图1是本说明书一个实施例提供的一种任务模型训练方法的流程图;
图2是本说明书一个实施例提供的另一种任务模型训练方法的流程图;
图3是本说明书一个实施例提供的一种任务模型训练方法的处理过程流程图;
图4是本说明书一个实施例提供的一种任务模型训练装置的结构示意图;
图5是本说明书一个实施例提供的另一种任务模型训练装置的结构示意图;
图6是本说明书一个实施例提供的一种任务模型训练系统的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
服务器是指计算机的一种,可以在网络中为训练成员提供计算或者应用服务,在拆分学习中,用于对整体的任务模型进行拆分、训练等。
训练成员可以是任意一种智能设备,如手机、电脑、智能手表等,在拆分学习中,用于对任务模型拆分后的第一子任务模型进行训练。
然后,对本说明书提供的方案进行说明。
拆分学习,是指将整体任务模型进行拆分,其中少部分任务模型由训练设备进行训练,大部分模型由运算能力较高的服务器进行计算,与此同时采用只传输隐层特征向量及其梯度向量的方式,数据通信量与样本量和输出维度成正比。拆分学习不仅适用于水平场景,也适用于垂直场景。以神经网络模型的U型拆分学习为例,训练设备拥有整个神经网络模型的前几层和最后几层,服务器拥有神经网络模型中间的大部分层。
在水平拆分学习模型中,训练设备依次利用本地训练样本对该训练设备上的模型进行训练,得到前几层网络模型的输出层。训练涉笔将输出层传输给服务器进行剩余层的前向传播,得到服务器模型的输出层,服务器将服务器输出层的传输给该训练设备,继续前向传播,计算得到损失函数。进而训练设备进行反向传播,更新服务器上的模型和训练设备上的模型。训练设备将本地的模型发送至下一个训练设备更新其本地模型,继续后续的计算。
在垂直拆分学习模型,训练设备同步进行本地模型的前向传播并发送至服务器,服务器接收到所有的隐层特征向量进行融合,继续前向传播和后向传播,更新服务器上的模型和所有训练设备上的模型。
然而上述拆分学习中,由于神经网络模型被物理拆分,导致只能通过隐层特征向量和梯度向量进行信息交互,导致收敛速度变慢,也即采用只传输单层隐层特征向量的方式,训练设备上的模型信息保留有限,收敛速度较慢,训练时间长;当训练设备之间数据分布差异较大时,可能会导致联合训练模型的发散;在每次训练的过程中,存在大量的隐层特征向量和梯度向量传输,传输数据量与样本量成正比。
因此,本说明书提供了一种任务模型训练方法、装置以及系统,其中拥有标签信息的训练设备首先在本地进行任务模型的预训练,基于预训练得到初始任务模型,然后服务器基于各初始任务模型得到整体的预训练的任务模型,极大降低了模型的迭代次数,同时保证了模型的收敛性;在每次反向传播时,根据梯度向量大小选择下次迭代隐层上传的位置,在保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。
在本说明书中,提供了任务模型训练方法,本说明书同时涉及任务模型训练装置,一种任务模型训练系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种任务模型训练方法的流程图,应用于训练设备,具体包括以下步骤。
步骤102:在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到。
具体的,本地训练样本是指训练设备上的用于训练第一子任务模型的样本,可以是图像、文字、数据等中的一种或多种;任务模型可以是任意一种模型,如基于神经网络的学习模型、翻译模型、图像模型等;预训练的任务模型是指预先训练过的任务模型;第一子任务模型是指服务器将预训练的任务模型进行拆分后得到并发送至训练设备的子任务模型。
实际应用中,服务器可以先确定训练设备的数量,然后先将预训练的任务模型进行拆分,分为多个第一子任务模型和一个第二任务模型,其中第一子任务模型的数量与训练设备的数量相同。接着服务器将第二任务模型保留在本地、将第一子任务模型分别发送至训练设备,其中第一子任务模型与训练设备一一对应。训练设备在接收到第一子任务模型后,基于本地训练样本对第一子任务模型进行训练:先将本地训练样本输入至第一子任务模型,第一子任务模型对本地训练样本进行处理后,得到本地训练样本对应的输出向量。
例如,有训练设备10个,服务器将预训练的任务模型拆分为10个第一子任务模型和1个第二子任务模型,然后服务器保留第二子任务模型,并将第一子任务模型发送给各训练设备,每个训练设备接收到一个第一子任务模型。假设各训练设备的本地训练样本为训练特征数据集Ai,其中i为正整数,代表各训练设备的标号,如第一个训练设备为A1,第二各训练设备为A2,……,以此类推。以第一个训练设备为例进行说明,该训练设备将A1输入至该训练设备上的第一子任务模型,得到A1对应的输出向量。
需要说明的是,每个训练设备的训练过程均相同,本实施例中以其中一个训练设备的训练过程为例进行说明。
为了提高训练的速度,训练设备将本地训练样本输入所述第一子任务模型,得到输出向量时,可以选择本地训练样本中的一些训练样本输入所述第一子任务模型,得到输出向量,也即:
从所述本地训练样本中选择指定数值个训练样本;
将所述指定数值个训练样本输入至所述第一子任务模型,得到输出向量。
具体的,指定数值为预先设置的每次输入选取的样本量,如10、20、30等,指定数值可以根据训练需求进行调整。每个训练设备对应的指定数值可以相同,也可以不同。
实际应用中,训练设备在将训练样本输入至第一子任务模型之前,会先从训练样本中读取指定数值个训练样本,然后将指定数值个训练样本输入至第一子任务模型,以使第一子任务模型对指定数值个训练样本进行处理,从而得到指定数值个训练样本对应的输出向量。
例如,指定数值为15,则训练设备从本地训练样本中选取15个训练样本,然后将这15个训练样本输入至第一子任务模型中,得到这15个训练样本对应的输出向量。
为了提高任务模型训练的效率,可以采用热启动的方式进行任务模型训练,也即对任务模型进行预训练,然后在预训练的任务模型的基础上,再进行任务模型训练。也即在所述将本地训练样本输入所述第一子任务模型之前,还包括:
在接收到服务器发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;
将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器,以使所述服务器基于各训练设备发送的初始任务模型和训练样本量确定预训练的任务模型。
具体的,任务模型是指还未训练的初始的模型,可以是任意一种模型;训练样本量是指训练设备在对任务模型进行训练时使用的本地训练样本的数量;预训练的任务模型为得到的需要进行拆分学习的任务模型。
实际应用中,在预训练阶段,服务器会从所有的训练设备中选择特定数量个训练设备,其中特定数量小于或等于训练设备的总数,然后,服务器将未训练过的任务模型分别发送给特定数量个训练设备。接收到任务模型的训练设备,利用本地训练样本对任务模型进行训练,得到初始任务模型,进一步地,将初始任务模型和训练样本量发送至服务器,服务器在接收特定数量个训练设备分别发送的初始任务模型对应的训练样本量,将各初始任务模型和训练样本量进行整合,得到预训练的任务模型。如此,在得到预训练的任务模型的基础上,进一步地对预训练的任务模型进行训练,实现任务模型训练的热启动,可以减少任务模型训练的启动时长,进而减少任务模型训练的训练时长、提高训练速度。
例如,在预训练阶段,服务器会从所有的训练设备中选择3个训练设备:g1、g2和g3,服务器将未训练过的任务模型分别发送给g1、g2和g3。g1在接收到任务模型后,利用本地训练样本对任务模型进行训练,得到初始任务模型W1,进一步地,g1将初始任务模型W1和训练样本量G1发送至服务器;同样地,g2将初始任务模型W2和训练样本量G2发送至服务器、g3将初始任务模型W3和训练样本量G3发送至服务器。服务器在接收到W1、G1、W2、G2、W3和G3后,根据确定训练样本总量G=G1+G2+G3,然后确定得到预训练的任务模型W=G1/G*W1+G2/G*W2+G3/G*W3。
在本说明书一个或多个可选的实施例中,在训练设备可以基于本地训练样本对任务模型进行迭代训练,也即所述根据本地训练样本对所述任务模型进行训练,得到初始任务模型,具体实现过程可以如下:
根据本地训练样本对所述任务模型进行迭代训练;
在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
具体的,迭代训练是指重复反馈训练的活动,每一次训练得到的结果会作为下一次训练的初始值;预设迭代值是指预先设置的迭代训练的最高迭代次数,预设迭代值可以根据需求进行调整,不同的训练设备对应的预设迭代值可以相同,也可以不同。
实际应用中,训练设备上设置有预设迭代值,训练设备将本地训练样本输入至任务模型进行训练,迭代次数自增1,然后根据任务模型的输出调整任务模型的参数,将迭代次数与预设迭代值进行比较:若迭代次数小于预设迭代值,则返回执行将本地训练样本输入至任务模型进行训练的步骤;若迭代次数等于预设迭代值,则停止迭代训练,将此次调整参数后的任务模型确定为初始任务模型。如此,缩减了预训练的时长,进而加快了整个任务模型训练的效率。
步骤104:根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器。
在接收到第一子任务模型,并将本地训练样本输入第一子任务模型得到输出向量的基础上,进一步地,对输出向量进行稀疏化处理,得到隐层特征向量,然后将隐层特征向量发送至服务器。
具体的,稀疏矩阵是指某个矩阵中,数值为目标数值的元素数目远远多于非目标数值元素的数目,并且非目标元素的分布没有规律,则该矩阵为稀疏矩阵,其中稀疏矩阵为第一子任务模型的稀疏矩阵。稀疏化是指就是通过稀疏矩阵减少输出向量中的冗余元素,以降低对计算量和存储空间的需求。
实际应用中,训练设备可以基于稀疏矩阵对输出向量进行稀疏化处理,可以将稀疏矩阵与输出向量点乘或叉乘,如稀疏矩阵点乘输出向量、稀疏矩阵叉乘输出向量、输出向量点乘稀疏矩阵、输出向量叉乘稀疏矩阵。稀疏化处理后的输出向量即为隐层特征向量,进一步地,训练设备将隐层特征向量发送至服务器进行处理。
在本说明书一个或多个可选的实施例中,为了提高稀疏化处理的效率,进一步提高任务模型训练的效率,可以根据输出向量,按照矩阵逐元素乘法对输出向量进行稀疏化处理,也即所述根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,具体实现过程可以如下:
将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
具体的,矩阵逐元素乘法也即element-wise(elementwise multiplication)乘法,又称Hadamard乘积,是指将两个矩阵的同位元素相乘。
实际应用中,需要将输出向量和稀疏矩阵进行矩阵逐元素乘法运算,如式1所述,也即将输出向量和系数矩阵对应位置的元素进行相乘,得到新的向量,即为隐层特征向量。
L=R⊙H (式1)
式1中,R表示输出向量,H表示稀疏矩阵,L表示隐层特征向量。
例如,输出向量R为(r1,r2,r3),稀疏矩阵H为(h1,h2,h3),则隐层特征向量L为(r1h1,r2h2,r3h3)。
为保证稀疏化处理的成功率,并且提高隐层特征向量的精准度,需要在进行稀疏化处理之前,对稀疏化矩阵进行设置,也即所述根据稀疏矩阵对所述输出向量进行稀疏化处理之前,还包括:
随机选择所述稀疏矩阵中的N个元素,N为任意自然数;
将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
具体的,第一预设数值和第二预设数值均为预先设置的数字,且第一预设数值与第二预设数值不同。
实际应用中,从稀疏矩阵中随机选择N个元素,将稀疏矩阵中这N个元素的数值设置为第一预设数值,并将稀疏矩阵中的其他元素的数值设置为第二预设数值,完成对稀疏矩阵的设置。
例如,稀疏矩阵为(10,3,8,9,20),N为2,第一预设数值为0,第二预设数值为2。此时从该稀疏矩阵中随机选取2个元素:3和20;然后将3和20设置为0,也即将稀疏矩阵中的3和20分别替换为0,将10、8和9设置为2,也即将稀疏矩阵中的3和20分别替换为2,则得到设置好的稀疏矩阵(2,0,2,2,0)。
优选地,第一预设数值为0,第二预设数值为1。如此是指稀疏矩阵,可以使得到稀疏化处理的得到隐层特征向量中包含多个数值为0的元素,可以有效地较少基于隐层特征向量进行数据处理的数据量,同时使隐层特征向量包含有输出向量的部分元素,以保证基于隐层特征向量进行数据处理的有效性。
步骤106:接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到。
在根据稀疏矩阵对输出向量进行稀疏化处理,得到隐层特征向量并发送至服务器的基础上,进一步地,接收预测结果,并根据预测结果和标签信息获取梯度向量。
具体的,预测结果是指将隐层特征向量输入第二子任务模型后,第二子任务模型的输出;标签信息是指本地训练样本中用于检测任务模型的输出,也即检测预测结果是否达标的标准;梯度向量表示损失值相关的隐层特征向量在某点处的方向导数沿着该方向取得最大值,即函隐层特征向量在该点处沿着该方向变化最快,变化率最大,其中该方向为梯度向量的方向,变化路为梯度向量的模。
实际应用中,服务器在接收到训练设备发送的隐层特征向量后,将隐层特征向量进行第二子任务模型的前向传播,也即将隐层特征向量输入至第二子任务模型,得到隐层特征向量对应的预测结果,然后服务器将该预测结果返回至该训练设备。训练设备将接收到的预测结果与本地训练样本的标签信息进行比较,得到此次训练的损失值。进一步地,获取该损失值关于隐层特征向量的梯度向量。
需要说明的是,基于所述损失值获取梯度向量,可以在预设梯度向量库中确定所述损失值对应的梯度向量;可以将所述损失值输入至预设函数中,得到对应的梯度向量;还可以将所述损失值发送至服务器,以使所述服务器基于损失值获取确定并反馈梯度向量。
优选地,为了保证梯度向量的精准度,提高任务模型训练的效率,可以将所述损失值发送至服务器,以使所述服务器基于损失值获取确定并反馈梯度向量,也即所述基于所述损失值获取梯度向量的具体实现过程可以如下:
将所述损失值发送至所述服务器,以使所述服务器基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
具体的,预设链锁规则也称预设链式法则,是指微积分中求导的规则,也即微积分中求梯度的规则。在本实施例中,预设链锁规则为预先设置的基于损失值对所述隐层特征向量进行求导,得到所述隐层特征向量的梯度向量的规则。
实际应用中,训练设备在确定了损失值后,将损失值进行反向传播,发送至服务器,服务器根据损失值和第一子任务模型与第二子任务模型的预设链锁规则,更新服务器中的第二子任务模型,进而得到损失值关于隐层特征向量的梯度向量,也即损失值对应的梯度向量,然后将该梯度向量发送至训练设备。
步骤108:根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。
在根据接收的预测结果和本地训练样本的标签信息确定损失值,进而根据损失值获取梯度向量的基础上,进一步地,根据梯度向量更新稀疏矩阵,继续训练第一子任务模型,直至达到训练停止条件。
实际应用中,训练设备在接收到梯度向量之后,将梯度向量向后传播,更新第一子任务模型,并基于梯度向量更新稀疏矩阵,然后判断是否达到训练停止条件,若达到训练停止条件,则停止训练,得到训练好的第一子任务模型,在各训练设备均训练完成后,多个训练好的第一子任务模型和第二子任务模型形成训练好的任务模型;若未达到训练停止条件,则继续训练第一子任务模型,即返回执行所述将本地训练样本输入所述第一子任务模型的步骤。
需要说明的是,所述训练停止条件为包括所述预训练的任务模型的收敛程度达到预设收敛阈值、所述训练次数达到预设训练次数中的至少一个。
为了在保证任务模型收敛速度的前提下,降低了数据的通信量,提高了训练速度,可以根据梯度向量中元素的绝对值,来更新稀疏矩阵。也即所述根据所述梯度向量,更新所述稀疏矩阵,具体实现过程可以如下:
将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;
根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
具体的,绝对值是指梯度向量中元素的数值在数轴上所对应的点到原点的距离,优选地,M为任意一个正整数。
实际应用中,可以先确定梯度向量绝对值最大的M个元素在梯度向量的位置,也即先确定梯度向量中各元素的绝对值,然后将各元素按照绝对值从大到小的顺序进行排列,然后确定队列前M各元素在梯度向量中的位置,然后根据前M各元素在梯度向量中的位置更新稀疏矩阵。
例如,梯度向量为(1,-5,-8,6,7),M为3,则梯度向量中各元素按绝对值从大到小排列为-8、7、6、-5、1,然后选择前三个元素:-8、7、6,其中-8在梯度向量的位置为第3,7在梯度向量的位置为第5,6在梯度向量的位置为第4。然后根据位置第3、第5和第4,更新稀疏矩阵。
在本说明书一个或多个可选地实施例中,所述根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵,可以如下:
根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;
将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
具体的,第一预设数值和第二预设数值均为预先设置的任意数字,且第一预设数值与第二预设数值不同。
实际应用中,在确定梯度向量绝对值最大的M个元素在梯度向量的位置之后,根据这M个元素在梯度向量的位置,在稀疏矩阵中确定这M个位置对应的目标元素,然后将目标元素的数值设置为第一预设数值,将稀疏矩阵中的非目标元素,也即其他元素的数值设置为第二预设数值。
沿用上例,稀疏矩阵为(1,2,3,4,5),第一预设数值为-1,第二预设数值为10。此时位置第3、第5和第4,确定稀疏矩阵中的目标元素为:3、4和5;然后将稀疏矩阵中的3、4和5设置为-1,也即将稀疏矩阵中的3、4和5分别替换为-1,将1和2设置为10,也即将稀疏矩阵中的1和2分别替换为10,则得到更新后的稀疏矩阵(10,10,-1,-1,-1)。
优选地,第一预设数值为0,第二预设数值为1。如此是指稀疏矩阵,可以使后续训练时,基于稀疏矩阵和输出向量得到隐层特征向量时,隐层特征向量中可以包含多个数值为0的元素,可以有效地较少基于隐层特征向量进行数据处理的数据量,同时使隐层特征向量包含有输出向量的部分元素,以保证基于隐层特征向量进行数据处理的有效性。
需要说明的是,在对任务模型进行训练的过程中,可以进行水平场景下的拆分学习,也即在有多个训练设备的情况下,每个训练设备可以同步进行训练第一子任务模型;还可以进行垂直场景下的拆分学习,也即在有多个训练设备的情况下,各训练设备可以需要按照排列的先后顺序逐一训练第一子任务模型。
本说明书一个实施例提供的任务模型训练方法,通过在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。
图2示出了根据本说明书一个实施例提供的另一种任务模型训练方法的流程图,应用于服务器,具体包括以下步骤。
步骤202:根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应。
具体的,预设拆分规则是指预先设定好的用于拆分任务模型的规则,可以根据需求对预设拆分规则进行调整;任务模型可以是任意一种模型,如基于神经网络的学习模型、翻译模型、图像模型等;预训练的任务模型是指预先训练过的任务模型;第一子任务模型是指服务器将预训练的任务模型进行拆分后得到并发送至训练设备的子任务模型;第二子任务模型是指服务器将预训练的任务模型进行拆分后得到并保留在本地的子任务模型。
实际应用中,服务器可以先确定所有训练设备的数量,然后根据预设拆分规则先将预训练的任务模型进行拆分,分为多个第一子任务模型和一个第二任务模型,其中第一子任务模型的数量与训练设备的数量相同。接着服务器将第二任务模型保留在本地、将第一子任务模型分别发送至训练设备,其中第一子任务模型与训练设备一一对应。
步骤204:接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到。
在根据预设拆分规则将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备的基础上,进一步地,接收各训练设备发送的隐层特征向量。
具体的,稀疏矩阵是指某个矩阵中,数值为目标数值的元素数目远远多于非目标数值元素的数目,并且非目标元素的分布没有规律,则该矩阵为稀疏矩阵。输出向量是指指定训练设备将指定训练设备上的本地训练样本输入至第一子任务模型后,对应的输出。稀疏化是指就是通过稀疏矩阵减少输出向量中的冗余元素,以降低对计算量和存储空间的需求。
实际应用中,指定训练设备在接收到第一子任务模型后,基于指定训练设备的本地训练样本对第一子任务模型进行训练:先将指定训练设备的本地训练样本输入至第一子任务模型,第一子任务模型对指定训练设备的本地训练样本进行处理后,得到指定训练设备的本地训练样本对应的输出向量。然后指定训练设备可以基于稀疏矩阵对输出向量进行稀疏化处理,可以将稀疏矩阵与输出向量点乘或叉乘,如稀疏矩阵点乘输出向量、稀疏矩阵叉乘输出向量、输出向量点乘稀疏矩阵、输出向量叉乘稀疏矩阵。稀疏化处理后的输出向量即为隐层特征向量,进一步地,指定训练设备将隐层特征向量发送至服务器,也即服务器接收到指定训练设备发送的隐层特征向量。
为了提高任务模型训练的效率,可以采用热启动的方式进行任务模型训练,也即对任务模型进行预训练,然后在预训练的任务模型的基础上,再进行任务模型训练。也即在所述根据预设拆分规则,将预训练的任务模型进行拆分之前,还包括:
从所述各训练设备选择K个训练设备,并将任务发送分别至所述K个训练设备,K为任一正整数;
接收所述K个训练设备分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备中的任一训练设备根据本地训练样本对所述任务模型进行训练得到;
基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
具体的,任务模型是指还未训练的初始的模型,可以是任意一种模型;训练样本量是指指定训练设备在对任务模型进行训练时使用的本地训练样本的数量;预训练的任务模型为得到的需要进行拆分学习的任务模型。
实际应用中,在预训练阶段,服务器会从所有的训练设备中选择K个训练设备,其中K为小于或等于训练设备的总数的整数,然后,服务器将未训练过的任务模型分别发送给确定的K个训练设备。对于接收到任务模型的任一训练设备,分别利用该训练设备的本地训练样本对任务模型进行训练,得到初始任务模型,进一步地,将初始任务模型和训练样本量发送至服务器,服务器在K个训练设备分别发送的初始任务模型对应的训练样本量,将各初始任务模型和训练样本量进行整合,得到预训练的任务模型。如此,在得到预训练的任务模型的基础上,进一步地对预训练的任务模型进行训练,实现任务模型训练的热启动,可以减少任务模型训练的启动时长,进而减少任务模型训练的训练时长、提高训练速度。
步骤206:将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果。
在接收到指定训练设备发送的隐层特征向量的基础上,进一步地,将该隐层特征向量在服务器上的第二子任务模型进行前向传播,确定预测结果。
具体的,预测结果是指将隐层特征向量输入第二子任务模型后,第二子任务模型的输出。
实际应用中,服务器在接收到指定训练设备发送的隐层特征向量后,将隐层特征向量进行第二子任务模型的前向传播,也即将隐层特征向量输入至第二子任务模型,得到隐层特征向量对应的预测结果。
步骤208:将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
在基于隐层特征向量得到预测结果的基础上,进一步地,将预测结果发送至指定训练设备。
实际应用中,服务器在确定了预测结果后,将该预测结果返回至指定训练设备后,指定训练设备根据接收到的预测结果更新稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至完成训练。
优选地,为了保证任务模型训练的可靠性,服务器可以接收指定训练设备发送的损失值,并基于损失值获取确定并反馈梯度向量,以使指定训练设备基于梯度向量进行更新、训练等,也即在所述将所述预测结果发送至所述指定训练设备之后,还包括:
接收所述指定训练设备发送的损失值,所述损失值为所述指定训练设备基于所述预测结果和本地训练样本的标签信息确定;
根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;
将所述梯度向量发送至所述指定训练设备,以使所述指定训练设备基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
具体的,预设链锁规则是指微积分中求梯度的规则,也即求取梯度向量的规则。标签信息为指定训练样本的本地训练样本中用于检测任务模型的输出,也即检测预测结果是否达标的标准。
实际应用中,服务器将预设结果发送至指定训练设备后,指定训练设备将预测结果与指定训练设备的本地训练样本的标签信息进行比较,得到此次训练的损失值;指定训练设备在确定了损失值后,将损失值进行反向传播,发送至服务器,也即服务器接收到指定训练设备发送的损失值。然后服务器根据损失值和第一子任务模型与第二子任务模型的预设链锁规则,更新服务器中的第二子任务模型,进而得到损失值关于隐层特征向量的梯度向量,也即损失值对应的梯度向量,然后将该梯度向量发送至指定训练设备。进一步地,指定训练设备在接收到梯度向量之后,将梯度向量向后传播,更新第一子任务模型,并基于梯度向量更新稀疏矩阵,然后判断是否达到训练停止条件,若达到训练停止条件,则停止训练,得到训练好的第一子任务模型,在各训练设备均训练完成后,多个训练好的第一子任务模型和第二子任务模型形成训练好的任务模型;若未达到训练停止条件,则继续训练第一子任务模型,即返回执行所述将本地训练样本输入所述第一子任务模型的步骤。
本说明书一个实施例提供的任务模型训练方法,通过根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。上述为本实施例的一种应用于训练设备的任务模型训练装置的示意性方案。
上述为本实施例的一种应用于服务器的任务模型训练方法的示意性方案。需要说明的是,该应用于服务器的任务模型训练方法的技术方案与上述的应用于训练设备的任务模型训练方法的技术方案属于同一构思,应用于服务器的任务模型训练方法的技术方案未详细描述的细节内容,均可以参见上述应用于训练设备的任务模型训练方法的技术方案的描述。
下述结合附图3,以本说明书提供的任务模型训练方法在实际场景中的应用为例,对所述任务模型训练方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种任务模型训练方法的处理过程流程图,具体包括以下步骤。
步骤302:服务器从5个训练设备中选择2个训练设备。
步骤304:服务器将任务模型发送分别至该2个训练设备。
步骤306:指定训练设备在接收到任务模型的情况下,根据本地训练样本对任务模型进行迭代训练。
指定训练设备为任意训练设备。
步骤308:指定训练设备在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
步骤310:指定训练设备发送初始任务模型和初始任务模型对应的训练样本量至服务器。
步骤312:服务器接收该2个训练设备分别发送的初始任务模型和初始任务模型对应的训练样本量。
步骤314:服务器基于2个初始任务模型和2个训练样本量,确定预训练的任务模型。
步骤316:服务器根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型。
步骤318:服务器将第二子任务模型保留在本地。
步骤320:服务器将各第一子任务模型分别发送至各训练设备。
步骤322:指定训练设备将本地训练样本输入第一子任务模型,得到输出向量。
步骤324:指定训练设备根据稀疏矩阵对输出向量进行稀疏化处理,得到隐层特征向量。
可选地,指定训练设备根据稀疏矩阵对输出向量进行稀疏化处理之前,还包括:
指定训练设备随机选择稀疏矩阵中的N个元素,N为任意自然数;将N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,其他元素为稀疏矩阵中N个元素以外的元素。
步骤326:指定训练设备将隐层特征向量发送至服务器。
步骤328:服务器将隐层特征向量在第二子任务模型进行前向传播,确定预测结果。
步骤330:服务器将预测结果发送至指定训练设备。
步骤332:指定训练设备基于预测结果与本地训练样本的标签信息确定损失值。
步骤334:指定训练设备将损失值发送至服务器。
步骤336:服务器根据损失值和第一子任务模型与第二子任务模型的预设链锁规则,得到损失值对应的梯度向量。
步骤338:服务器将梯度向量发送至指定训练设备。
步骤340:指定训练设备根据梯度向量,更新稀疏矩阵。
步骤342:返回执行将本地训练样本输入第一子任务模型的步骤,直至达到训练停止条件。
可选地,指定训练设备根据梯度向量,更新稀疏矩阵,包括:
指定训练设备将梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;根据前M个元素在梯度向量的位置,更新稀疏矩阵。
可选地,指定训练设备根据前M个元素在梯度向量的位置,更新稀疏矩阵,包括:
指定训练设备根据前M个元素在梯度向量的位置,确定稀疏矩阵中M个位置对应的目标元素;将目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,其他元素为稀疏矩阵中目标元素以外的元素。
本说明书一个实施例提供的任务模型训练方法,通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。上述为本实施例的一种应用于训练设备的任务模型训练装置的示意性方案。
与上述方法实施例相对应,本说明书还提供了任务模型训练装置实施例,图4示出了本说明书一个实施例提供的一种任务模型训练装置的结构示意图。如图4所示,应用于训练设备,该装置包括:
输入模块402,被配置为在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;
处理模块404,被配置为根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;
获取模块406,被配置为接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;
更新模块408,被配置为根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。
可选地,所述装置还包括第一预训练模块,被配置为:
在接收到服务器发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;
将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器,以使所述服务器基于各训练设备发送的初始任务模型和训练样本量确定预训练的任务模型。
可选地,所述第一预训练模块,还被配置为:
根据本地训练样本对所述任务模型进行迭代训练;
在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
可选地,所述处理装置,还被配置为:
随机选择所述稀疏矩阵中的N个元素,N为任意自然数;
将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
可选得,所述处理模块404,还被配置为:
将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
可选地,所述获取模块406,还被配置为:
将所述损失值发送至所述服务器,以使所述服务器基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
可选地,所述更新模块408,还被配置为:
将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;
根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
可选地,所述更新模块408,还被配置为:
根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;
将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
本说明书一个实施例提供的任务模型训练装置,通过在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。上述为本实施例的一种应用于训练设备的任务模型训练装置的示意性方案。
需要说明的是,该应用于训练设备的任务模型训练装置的技术方案与上述的应用于训练设备的任务模型训练方法的技术方案属于同一构思,应用于训练设备的任务模型训练装置的技术方案未详细描述的细节内容,均可以参见上述用于训练设备的任务模型训练方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了任务模型训练装置实施例,图5示出了本说明书一个实施例提供的另一种任务模型训练装置的结构示意图。如图5所示,应用于服务器,该装置包括:
拆分模块502,被配置为根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
接收模块504,被配置为接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;
确定模块506,被配置为将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;
发送模块508,被配置为将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
可选地,所述装置还包括第二预训练模块,被配置为:
从所述各训练设备选择K个训练设备,并将任务发送分别至所述K个训练设备,K为任一正整数;
接收所述K个训练设备分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备中的任一训练设备根据本地训练样本对所述任务模型进行训练得到;
基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
可选地,所述发送模块508,还被配置为:
接收所述指定训练设备发送的损失值,所述损失值为所述指定训练设备基于所述预测结果和本地训练样本的标签信息确定;
根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;
将所述梯度向量发送至所述指定训练设备,以使所述指定训练设备基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
本说明书一个实施例提供的任务模型训练装置,通过根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。上述为本实施例的一种应用于训练设备的任务模型训练装置的示意性方案。
上述为本实施例的一种应用于服务器的任务模型训练装置的示意性方案。需要说明的是,该应用于服务器的任务模型训练装置的技术方案与上述的应用于服务器的任务模型训练方法的技术方案属于同一构思,应用于服务器的任务模型训练装置的技术方案未详细描述的细节内容,均可以参见上述用于服务器的任务模型训练方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了任务模型训练系统实施例,图6示出了本说明书一个实施例提供的一种任务模型训练系统的结构示意图。如图6所示,该系统包括:
服务器602和多个训练设备604;
所述服务器602,用于根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备604、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备604一一对应;
指定训练设备604,用于在接收到服务器602发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器602;所述指定训练设备604为任一训练设备604;
所述服务器602,还用于接收指定训练设备604发送的隐层特征向量;将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;将所述预测结果发送至所述指定训练设备604;
所述指定训练设备604,还用于接收所述服务器602发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量;根据所述梯度向量,更新所述稀疏矩阵,继续执行所述将本地训练样本输入所述子任务模型的步骤,直至达到训练停止条件。
可选地,所述服务器602,还用于从所述各训练设备604选择K个训练设备604,并将任务发送分别至所述K个训练设备604,K为任一正整数;接收所述K个训练设备604分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备604中的任一训练设备604根据本地训练样本对所述任务模型进行训练得到;基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
可选地,所述指定训练设备604,还用于在接收到服务器602发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器602,以使所述服务器602基于各训练设备604发送的初始任务模型和训练样本量确定预训练的任务模型。
可选地,所述指定训练设备604,还用于根据本地训练样本对所述任务模型进行迭代训练;在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
可选地,所述指定训练设备604,还用于随机选择所述稀疏矩阵中的N个元素,N为任意自然数;将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
可选地,所述指定训练设备604,还用于将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
可选地,所述指定训练设备604,还用于将所述损失值发送至所述服务器602,以使所述服务器602基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
可选地,所述服务器602,还用于接收所述指定训练设备604发送的损失值,所述损失值为所述指定训练设备604基于所述预测结果和本地训练样本的标签信息确定;根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;将所述梯度向量发送至所述指定训练设备604,以使所述指定训练设备604基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备604对应的第一子任务模型,直至达到训练停止条件。
可选地,所述指定训练设备604,还用于将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
可选地,所述指定训练设备604,还用于根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
本说明书一个实施例提供的任务模型训练系统,通过所述服务器根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;指定训练设备在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;所述指定训练设备为任一训练设备;所述服务器接收指定训练设备发送的隐层特征向量;将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;将所述预测结果发送至所述指定训练设备;所述指定训练设备接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量;根据所述梯度向量,更新所述稀疏矩阵,继续执行所述将本地训练样本输入所述子任务模型的步骤,直至达到训练停止条件。通过根据稀疏矩阵对输出向量进行稀疏化处理极大降低了任务模型的迭代次数,同时保证了任务模型的收敛性;通过根据所述梯度向量,更新稀疏矩阵,保证收敛速度的前提下降低了任务模型的通信量,提高了训练速度。上述为本实施例的一种应用于训练设备的任务模型训练装置的示意性方案。
上述为本实施例的一种任务模型训练系统的示意性方案。需要说明的是,该任务模型训练系统的技术方案与上述的任务模型训练方法的技术方案属于同一构思,任务模型训练系统的技术方案未详细描述的细节内容,均可以参见上述任务模型训练方法的技术方案的描述。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,Wor ldwideInteroperability for Microwave Acess)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务模型训练方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的任务模型训练方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述任务模型训练方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务模型训练方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的任务模型训练方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述任务模型训练方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述任务模型训练方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的任务模型训练方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述任务模型训练方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (17)

1.一种任务模型训练方法,应用于训练设备,包括:
在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;
根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;
接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;
根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。
2.根据权利要求1所述的方法,在所述将本地训练样本输入所述第一子任务模型之前,还包括:
在接收到服务器发送的任务模型的情况下,根据本地训练样本对所述任务模型进行训练,得到初始任务模型;
将所述初始任务模型和所述初始任务模型对应的训练样本量发送至所述服务器,以使所述服务器基于各训练设备发送的初始任务模型和训练样本量确定预训练的任务模型。
3.根据权利要求2所述的方法,所述根据本地训练样本对所述任务模型进行训练,得到初始任务模型,包括:
根据本地训练样本对所述任务模型进行迭代训练;
在迭代次数达到预设迭代值时,停止迭代训练,得到初始任务模型。
4.根据权利要求1所述的方法,所述根据稀疏矩阵对所述输出向量进行稀疏化处理之前,还包括:
随机选择所述稀疏矩阵中的N个元素,N为任意自然数;
将所述N个元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述N个元素以外的元素。
5.根据权利要求1所述的方法,所述根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,包括:
将所述输出向量和所述稀疏矩阵进行矩阵逐元素乘法运算,得到隐层特征向量。
6.根据权利要求1所述的方法,所述基于所述损失值获取梯度向量,包括:
将所述损失值发送至所述服务器,以使所述服务器基于所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,更新所述第二子任务模型,得到并反馈所述损失值对应的梯度向量。
7.根据权利要求1所述的方法,所述根据所述梯度向量,更新所述稀疏矩阵,包括:
将所述梯度向量中各元素按照绝对值的大小从大到小排列,选取前M个元素,M为任意自然数;
根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵。
8.根据权利要求7所述的方法,所述根据所述前M个元素在所述梯度向量的位置,更新所述稀疏矩阵,包括:
根据所述前M个元素在所述梯度向量的位置,确定所述稀疏矩阵中M个所述位置对应的目标元素;
将所述目标元素对应的数值设置为第一预设数值,将其他元素对应的数值设置为第二预设数值,所述其他元素为所述稀疏矩阵中所述目标元素以外的元素。
9.一种任务模型训练方法,应用于服务器,包括:
根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;
将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;
将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
10.根据权利要求9所述的方法,在所述根据预设拆分规则,将预训练的任务模型进行拆分之前,还包括:
从所述各训练设备选择K个训练设备,并将任务发送分别至所述K个训练设备,K为任一正整数;
接收所述K个训练设备分别发送的初始任务模型和所述初始任务模型对应的训练样本量,所述初始任务模型为所述K个训练设备中的任一训练设备根据本地训练样本对所述任务模型进行训练得到;
基于K个所述初始任务模型和K个所述训练样本量,确定预训练的任务模型。
11.根据权利要求9所述的方法,在所述将所述预测结果发送至所述指定训练设备之后,还包括:
接收所述指定训练设备发送的损失值,所述损失值为所述指定训练设备基于所述预测结果和本地训练样本的标签信息确定;
根据所述损失值和所述第一子任务模型与所述第二子任务模型的预设链锁规则,得到所述损失值对应的梯度向量;
将所述梯度向量发送至所述指定训练设备,以使所述指定训练设备基于所述梯度向量更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
12.一种任务模型训练装置,应用于训练设备,包括:
输入模块,被配置为在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量,所述第一子任务模型为所述服务器对预训练的任务模型进行拆分得到;
处理模块,被配置为根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;
获取模块,被配置为接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量,所述预测结果为所述服务器将所述隐层特征向量输入第二子任务模型确定,所述第二子任务模型为所述服务器对预训练的任务模型进行拆分得到;
更新模块,被配置为根据所述梯度向量,更新所述稀疏矩阵,返回执行所述将本地训练样本输入所述第一子任务模型的步骤,直至达到训练停止条件。
13.一种任务模型训练装置,应用于服务器,包括:
拆分模块,被配置为根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
接收模块,被配置为接收指定训练设备发送的隐层特征向量,所述指定训练设备为任一训练设备,所述隐层特征向量为所述指定训练设备根据稀疏矩阵对所述第一子任务模型的输出向量进行稀疏化处理得到;
确定模块,被配置为将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;
发送模块,被配置为将所述预测结果发送至所述指定训练设备,以使所述指定训练设备基于所述预测结果更新所述稀疏矩阵并继续训练所述指定训练设备对应的第一子任务模型,直至达到训练停止条件。
14.一种任务模型训练系统,包括:
服务器和多个训练设备;
所述服务器,用于根据预设拆分规则,将预训练的任务模型进行拆分,得到多个第一子任务模型和一个第二子任务模型,并将各第一子任务模型分别发送至各训练设备、将所述第二子任务模型保留在本地,所述第一子任务模型与训练设备一一对应;
指定训练设备,用于在接收到服务器发送的第一子任务模型的情况下,将本地训练样本输入所述第一子任务模型,得到输出向量;根据稀疏矩阵对所述输出向量进行稀疏化处理,得到隐层特征向量,将所述隐层特征向量发送至所述服务器;所述指定训练设备为任一训练设备;
所述服务器,还用于接收指定训练设备发送的隐层特征向量;将所述隐层特征向量在所述第二子任务模型进行前向传播,确定预测结果;将所述预测结果发送至所述指定训练设备;
所述指定训练设备,还用于接收所述服务器发送的预测结果,基于所述预测结果与所述本地训练样本的标签信息确定损失值,并基于所述损失值获取梯度向量;根据所述梯度向量,更新所述稀疏矩阵,继续执行所述将本地训练样本输入所述子任务模型的步骤,直至达到训练停止条件。
15.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-8或9-11任意一项所述任务模型训练方法的步骤。
16.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-8或9-11任意一项所述任务模型训练方法的步骤。
17.一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8或9-11任意一项所述任务模型训练方法的步骤。
CN202210397221.1A 2022-04-15 任务模型训练方法、装置以及系统 Active CN114723047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210397221.1A CN114723047B (zh) 2022-04-15 任务模型训练方法、装置以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210397221.1A CN114723047B (zh) 2022-04-15 任务模型训练方法、装置以及系统

Publications (2)

Publication Number Publication Date
CN114723047A true CN114723047A (zh) 2022-07-08
CN114723047B CN114723047B (zh) 2024-07-02

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115329744A (zh) * 2022-10-11 2022-11-11 浪潮电子信息产业股份有限公司 一种自然语言处理方法、系统、设备及存储介质
CN115601485A (zh) * 2022-12-15 2023-01-13 阿里巴巴(中国)有限公司(Cn) 任务处理模型的数据处理方法及虚拟人物动画生成方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180018590A1 (en) * 2016-07-18 2018-01-18 NantOmics, Inc. Distributed Machine Learning Systems, Apparatus, and Methods
US20190073590A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Training Optimization
CN112149792A (zh) * 2019-06-28 2020-12-29 英特尔公司 用于优化机器学习模型的执行的方法和设备
CN112561078A (zh) * 2020-12-18 2021-03-26 北京百度网讯科技有限公司 分布式的模型训练方法、相关装置及计算机程序产品
CN113011587A (zh) * 2021-03-24 2021-06-22 支付宝(杭州)信息技术有限公司 一种隐私保护的模型训练方法和系统
CN113705769A (zh) * 2021-05-17 2021-11-26 华为技术有限公司 一种神经网络训练方法以及装置
US20220076076A1 (en) * 2020-09-08 2022-03-10 Wisconsin Alumni Research Foundation System for automatic error estimate correction for a machine learning model

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180018590A1 (en) * 2016-07-18 2018-01-18 NantOmics, Inc. Distributed Machine Learning Systems, Apparatus, and Methods
US20190073590A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Training Optimization
CN112149792A (zh) * 2019-06-28 2020-12-29 英特尔公司 用于优化机器学习模型的执行的方法和设备
US20220076076A1 (en) * 2020-09-08 2022-03-10 Wisconsin Alumni Research Foundation System for automatic error estimate correction for a machine learning model
CN112561078A (zh) * 2020-12-18 2021-03-26 北京百度网讯科技有限公司 分布式的模型训练方法、相关装置及计算机程序产品
CN113011587A (zh) * 2021-03-24 2021-06-22 支付宝(杭州)信息技术有限公司 一种隐私保护的模型训练方法和系统
CN113705769A (zh) * 2021-05-17 2021-11-26 华为技术有限公司 一种神经网络训练方法以及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LOANNIS PRAPAS等: "Continuous Training and Deployment of Deep Learning Models", DATENBANK-SPEKTRUM, vol. 21, 11 November 2021 (2021-11-11), XP037624174, DOI: 10.1007/s13222-021-00386-8 *
杨曌伊: "面向深度学习应用的执行优化系统研究与实现", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 03, 15 March 2022 (2022-03-15) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115329744A (zh) * 2022-10-11 2022-11-11 浪潮电子信息产业股份有限公司 一种自然语言处理方法、系统、设备及存储介质
CN115329744B (zh) * 2022-10-11 2023-04-07 浪潮电子信息产业股份有限公司 一种自然语言处理方法、系统、设备及存储介质
WO2024077981A1 (zh) * 2022-10-11 2024-04-18 浪潮电子信息产业股份有限公司 一种自然语言处理方法、系统、设备及存储介质
CN115601485A (zh) * 2022-12-15 2023-01-13 阿里巴巴(中国)有限公司(Cn) 任务处理模型的数据处理方法及虚拟人物动画生成方法
CN115601485B (zh) * 2022-12-15 2023-04-07 阿里巴巴(中国)有限公司 任务处理模型的数据处理方法及虚拟人物动画生成方法

Similar Documents

Publication Publication Date Title
KR102302609B1 (ko) 신경망 아키텍처 최적화
CN110503192B (zh) 资源有效的神经架构
Fletcher et al. Inference in deep networks in high dimensions
KR20190018276A (ko) 모델을 학습하는 방법 및 장치 및 상기 뉴럴 네트워크를 이용한 인식 방법 및 장치
US20220036127A1 (en) Semantic image manipulation using visual-semantic joint embeddings
CN111709493B (zh) 对象分类方法、训练方法、装置、设备及存储介质
EP3889846A1 (en) Deep learning model training method and system
CN114341891A (zh) 神经网络剪枝
CN111508000A (zh) 基于参数空间噪声网络的深度强化学习目标跟踪方法
US20230267307A1 (en) Systems and Methods for Generation of Machine-Learned Multitask Models
JP2017049907A (ja) ニューラルネットワーク、その学習方法、及びコンピュータプログラム
Huai et al. Zerobn: Learning compact neural networks for latency-critical edge systems
Loni et al. Densedisp: Resource-aware disparity map estimation by compressing siamese neural architecture
CN116309135A (zh) 扩散模型处理方法及装置、图片处理方法及装置
CN114676849A (zh) 基于联邦学习进行模型参数更新的方法及系统
CN113077237B (zh) 一种自适应混合算法的排课方法及系统
Luna et al. Accelerating gmres with deep learning in real-time
US20230196128A1 (en) Information processing method, apparatus, electronic device, storage medium and program product
US9552526B2 (en) Image processing using cellular simultaneous recurrent network
CN114723047A (zh) 任务模型训练方法、装置以及系统
KR20210035702A (ko) 인공 신경망의 양자화 방법 및 인공 신경망을 이용한 연산 방법
CN114723047B (zh) 任务模型训练方法、装置以及系统
CN114445692B (zh) 图像识别模型构建方法、装置、计算机设备及存储介质
CN110084356B (zh) 一种深度神经网络数据处理方法和装置
Cui et al. Sparse Bayesian learning using correlated hyperparameters for recovery of block sparse signals

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