CN114827308A - 一种模型训练数据传输方法、装置、设备和可读介质 - Google Patents
一种模型训练数据传输方法、装置、设备和可读介质 Download PDFInfo
- Publication number
- CN114827308A CN114827308A CN202210399111.9A CN202210399111A CN114827308A CN 114827308 A CN114827308 A CN 114827308A CN 202210399111 A CN202210399111 A CN 202210399111A CN 114827308 A CN114827308 A CN 114827308A
- Authority
- CN
- China
- Prior art keywords
- hidden layer
- training member
- training
- hidden
- data
- 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 622
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000005540 biological transmission Effects 0.000 title claims description 43
- 239000012634 fragment Substances 0.000 claims abstract description 262
- 238000004364 calculation method Methods 0.000 claims abstract description 58
- 230000009466 transformation Effects 0.000 claims description 43
- 239000011159 matrix material Substances 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 19
- 230000006798 recombination Effects 0.000 claims description 12
- 238000005215 recombination Methods 0.000 claims description 12
- 238000012935 Averaging Methods 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008521 reorganization Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本说明书实施例公开了一种模型训练数据传输方法、装置、设备和可读介质。方案可以包括:第一训练成员端将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片,其中包括第一隐层分片,所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;向服务器上传所述第一隐层分片;服务器基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度,所述第二隐层分片与所述第二隐层数据的对应于第一目标范围的第二目标范围内的数据相对应;服务器将所述第一隐层分片梯度发送给所述第一训练成员端。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种模型训练数据传输方法、装置、设备和计算机可读介质。
背景技术
随着人工智能技术的发展,神经网络算法(例如,深度神经网络DNN)已逐渐应用于风险评估、语音识别、人脸识别和自然语言处理等领域。不同应用场景下的神经网络结构相对固定,为实现更好的模型性能,就需要更多的训练数据。在例如医疗、金融等的诸多领域,不同的企业或机构拥有不同的数据样本,一旦将这些数据进行联合训练,将极大提升模型精度。然而,这些原始的训练数据往往包含大量的用户隐私和商业机密,一旦信息泄露,将造成不可挽回的负面影响。因此,在通过多方联合训练解决数据孤岛问题的同时,如何保护数据隐私成为近年来研究的重点。
Otkrist等人在2018年提出了拆分学习的概念,将整体模型进行拆分,其中部分模型由训练成员进行计算,部分模型由服务器进行计算。训练成员将本地模型的隐层传输至服务器继续前向传播,直至计算得到损失函数;在后向传播过程中,服务器将隐层的梯度传输至训练成员,继续后向传播,进而更新训练成员模型。在拆分学习过程中,由于训练成员各自使用自身持有的训练数据进行计算,用户的原始数据不出域,能够解决联合训练过程中的数据隐私保护问题。
然而,在现有的拆分学习过程中,由于训练成员计算得到的隐层维度为(样本总数*输出维度),因此,数据规模越大,传输量越高,整体训练时间为(训练成员本地计算时间+隐层传输时间+服务器计算时间+隐层梯度传输时间)*训练次数。对于大规模数据,特别是对于整体数据参与计算的神经网络数据,单次的数据传输量较大,往往会超过通信协议最大允许的通信量,从而导致通信受阻,无法完成训练。
发明内容
本说明书实施例提供一种模型训练数据传输方法、装置、设备和计算机可读介质,以解决现有技术中在大规模数据的拆分学习模型中,数据传输量过大,超出通信协议上限,无法训练的问题。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种模型训练数据传输方法,应用于服务器,所述方法包括:
接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;将所述第一隐层分片梯度发送给所述第一训练成员端。
本说明书实施例提供的一种模型训练数据传输方法,应用于第一训练成员端,所述方法包括:将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;接收所述服务器发送的所述第一隐层分片梯度。
本说明书实施例提供的一种模型训练数据传输装置,应用于服务器,包括:隐层分片获取模块,用于接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;隐层分片梯度确定模块,用于基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;隐层分片梯度发送模块,用于将所述第一隐层分片梯度发送给所述第一训练成员端。
本说明书实施例提供的一种模型训练数据传输装置,应用于第一训练成员端,包括:隐层分片划分模型,用于将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;隐层分片发送模块,用于向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;隐层分片梯度获取模块,用于接收所述服务器发送的所述第一隐层分片梯度。
本说明书实施例提供的一种模型训练数据传输设备,应用于服务器,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;将所述第一隐层分片梯度发送给所述第一训练成员端。
本说明书实施例提供的一种模型训练数据传输设备,应用于第一训练成员端,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;接收所述服务器发送的所述第一隐层分片梯度。
本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种模型训练数据传输方法。
本说明书一个实施例至少能够达到以下有益效果:通过根据通信协议允许的通信量上限将隐层分成多个隐层分片后传输给服务器,能够保证数据传输顺利,确保训练的顺利进行;并且在训练成员端与服务器之间建立数据流,当训练成员端完成本地计算之后,将隐层分片上传至服务器,服务器根据隐层分片数据进行后续计算,提高了通信链路和计算模块的利用率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中一种模型联合训练方法的应用场景的示意图;
图2为本说明书实施例提供的一种应用于服务器的模型训练数据传输方法的流程示意图;
图3为本说明书实施例提供的一种应用于训练成员的模型训练数据传输方法的流程示意图;
图4为本说明书实施例提供的一种实际应用场景下,模型联合训练方法的流程示意图;
图5为本说明书实施例提供的另一种实际应用场景下,模型联合训练方法的流程示意图;
图6为本说明书实施例提供的对应于图2的一种模型训练数据传输装置的结构示意图;
图7为本说明书实施例提供的对应于图3的一种模型训练数据传输装置的结构示意图;
图8为本说明书实施例提供一种模型训练数据传输设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
应当理解,尽管在本申请文件中可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
现有技术中,在对待训练模型进行联合训练的过程中,利用拆分学习,将待训练模型整体进行拆分,其中部分模型由训练成员进行计算,部分模型由服务器进行计算。各训练成员将本地模型的隐层传输至服务器继续前向传播,直至计算得到损失函数;在后向传播过程中,服务器将隐层的梯度传输至训练成员,继续后向传播,进而更新训练成员模型。由于训练成员计算得到的隐层维度为样本总数*输出维度,因此数据规模越大,传输量越高,整体训练时间为:(训练成员本地计算时间+隐层传输时间+服务器计算时间+隐层梯度传输时间)*训练次数。对于大规模数据,单次的数据传输量较大,往往会超过通信协议最大允许的通信量,从而导致通信受阻,无法完成训练。
为了解决现有技术中的缺陷,本方案给出了以下实施例。
图1为本说明书实施例中一种模型联合训练方法的应用场景的示意图。
如图1所示,可以基于服务器和多个训练成员来共同完成对待训练模型的训练。其中,训练成员可以是参与模型联合训练的各个数据持有方,服务器可以是各方信任的公共服务器。训练成员可以持有训练样本的样本特征数据,在部分训练成员中,还可以持有训练样本的样本标签数据。服务器可以不持有训练样本的样本特征数据和样本标签数据,可以基于各训练成员上传的数据进行数据计算和数据传输等。在实际应用时,训练成员可以包括各种类型的计算设备,可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑、工作站等各种中小型或大型计算设备。
在实际进行模型联合训练之前,需要将待训练模型进行拆分。在本说明书的实施例中,可以由服务器对待训练模型进行拆分,得到服务器模型和训练成员模型,并将训练成员模型下发给各个训练成员,从而,在服务器端基于服务器模型进行计算,在训练成员端基于训练成员模型进行计算。
当具体训练时,在本说明书的实施例中,当各训练成员在本地计算得到隐层后,可以先根据通信协议允许的通信量上限,将隐层划分为多个隐层分片,然后如图1所示,依次向服务器上传各隐层分片;服务器可以根据隐层分片进行计算和后向传播,将隐层分片梯度发送回相应的训练成员。
如图1所示,在本说明书的实施例中,当训练成员完成本地计算后,不是直接将大小为(样本总数*输出维度)的隐层数据整体发送给服务器,而是先根据通信协议允许的通信量上限,将隐层划分为多个隐层分片,依次向服务器上传各个隐层分片,因此,即便数据规模较大,也能够保证数据传输顺利,确保训练的顺利进行。
并且,基于训练成员与服务器之间建立的数据流,在训练成员向服务器上传完成一个隐层分片后,服务器可以根据隐层分片进行计算和后向传播,而无需等待该训练成员将划分出的所有隐层分片上传完毕,也就是说,训练成员的一个隐层分片在服务器上的计算与另一个隐层分片向服务器的传输过程可以同时进行,因此,提高了通信链路和计算模块的利用率,鉴于在将隐层传输至服务器的过程中,可以同时执行基于隐层的计算和后向传播以及隐层梯度的传输,宏观上,基于本说明书实施例的方案,可以将整体训练时间缩短为约(训练成员本地计算时间+隐层传输时间)*训练次数。
接下来,将针对说明书实施例提供的一种模型训练数据传输方法,从服务器和训练成员的角度分别结合附图进行具体说明。
图2为本说明书实施例提供的一种应用于服务器的模型训练数据传输方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于服务器的程序。
如图2所示,该流程可以包括以下步骤:
步骤202:接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应。
其中,第一训练成员端以及下文的第二训练成员端,均用于表示参与模型联合训练的训练成员。此处的“第一”和“第二”仅用于将一个训练成员与另外的训练成员区分开。例如,假设共有k个训练成员,所述第一训练成员端,可以为训练成员1至k中任一训练成员,而下文的各个第二训练成员端,可以为训练成员1至k中的其他训练成员。
第一隐层数据,可以是与第一训练成员对应的隐层数据,具体地,可以是第一训练成员基于自身对应的训练成员模型对自身持有的训练样本的样本特征数据进行计算得到的隐层数据。同理,下文中出现的第二隐层数据,可以是与第二训练成员对应的隐层数据,具体地,可以是第二训练成员基于自身对应的训练成员模型对自身持有的训练样本的样本特征数据进行计算得到的隐层数据。
在本说明书的实施例中,为了便于传输,各训练成员可以将计算得到的隐层数据划分为多个隐层分片后,再传输至服务器进行后续计算。在实际应用时,各个训练成员可以采取同样的方式对自身生成的隐层数据进行划分,例如,均采取第一预设方式。所述第一预设方式可以包括按行划分的方式。具体地,可以在各训练成员之间完成数据对齐后,均根据相同的预设分片尺寸(batch size)来进行划分,所述预设分片尺寸可以包括单行、两行或更多行,不限于此。由此,在后续计算过程中,各训练成员可以每次上传其中的一个分片至服务器。
在实践中,各个训练成员可以将隐层数据划分为同样数量的隐层分片,例如,均划分为p个隐层分片。例如,训练成员i对应的隐层Li可以被划分为隐层分片Li,1、Li,2……Li,p,其中,i可以为1~k中任一值。
在图2的实施例中,所述第一隐层分片可以是与第一训练成员对应的隐层分片,同理,第二隐层分片可以是与第二训练成员对应的隐层分片。沿用前例,隐层分片Li,1、Li,2……Li,p均是与训练成员i对应的隐层分片。
在实践中,同一隐层划分出的不同隐层分片可以对应于该隐层的不同范围内的数据。例如,若按照行对隐层数据进行划分,则划分出的各隐层分片可以分别对应于不同的行。又如,若按照列对隐层数据进行划分,则划分出的各隐层分片可以分别对应于不同的列。并且,各训练成员均按照相同的顺序来上传自身划分得到的各隐层分片。
在图2的实施例中,用于共同计算确定隐层分片梯度的一组隐层分片中,来自各个训练成员的隐层分片可以对应于相应的目标范围。例如,训练成员1依次向服务器上传隐层分片L1,1、L1,2……L1,p,训练成员2依次向服务器上传隐层分片L2,1、L2,2……L2,p,……,训练成员k依次向服务器上传隐层分片Lk,1、Lk,2……Lk,p,其中,L1,1、L2,1……Lk,1为一组隐层分片,对应于相应的目标范围,L1,2、L2,2……Lk,2为一组隐层分片,对应于相应的目标范围,……,L1,p、L2,p……Lk,p为一组隐层分片,对应于相应的目标范围。即,服务器用于共同计算确定隐层分片梯度的一组隐层分片可以包括L1,1、L2,1……Lk,1,或者可以包括L1,2、L2,2……Lk,2,……,或者可以包括L1,p、L2,p……Lk,p,等等。
在本说明书的实施例中,各训练成员计算时使用的训练模型,可以是对待训练模型进行拆分得到的。具体地,服务器在接收第一训练成员端上传的第一隐层分片之前,可以先对待训练模型进行拆分,得到服务器模型和训练成员模型;然后,将所述训练成员模型下发给相应的训练成员端。
在可选的实施例中,所述对待训练模型进行拆分,得到服务器模型和训练成员模型,具体可以包括:将待训练模型拆分为服务器模型、第一类训练成员模型和第二类训练成员模型;所述将所述训练成员模型下发给相应的训练成员端,具体可以包括:将所述第一类训练成员模型下发给常规训练成员端,将所述第二类训练成员模型下发给特定训练成员端;所述常规训练成员端持有训练样本的样本特征数据;所述特定训练成员端持有训练样本的样本特征数据以及样本标签数据。
其中,特定训练成员与常规训练成员相比,不仅持有训练样本的样本特征数据,还可以持有训练样本的样本标签数据。在本说明书实施例中,所述第一训练成员和所述第二训练成员可以是常规训练成员,或者,也可以是特定训练成员。例如,如图1中所示,假设仅训练成员k持有样本标签数据,则训练成员k为特定训练成员,其他训练成员为常规训练成员。当实际应用时,特定训练成员可以在与常规训练成员执行同样的操作基础上,进一步执行利用样本标签数据计算损失函数、计算梯度等操作。这将在下文中详细描述。
步骤204:基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应。
其中,所述第一隐层数据的目标范围与所述第二隐层数据的目标范围是相应的,或者说是一致的,也就是说,第二隐层分片与第一隐层分片是对应的。在本说明书的实施例中,可以使用Li,j表示隐层分片,其中,i表示生成当前隐层分片的训练成员,j表示当前隐层分片在所属隐层划分出的多个隐层分片中的标识(或位次)。设共有k个训练成员,则i取值为1至k中(包含1和k)的任一整数;设各训练成员将隐层划分为p个隐层分片,则j取值为1至p中(包含1和p)的任一整数。第二隐层分片与第一隐层分片对应,可以是指两个隐层分片Li,j的j值相同。
在具体的实施例中,服务器在确定隐层分片梯度的过程中,具体地:可以先基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,通过所述服务器的服务器模型,得到服务器模型输出层;然后计算所述服务器模型输出层对应的输出层梯度;再基于所述输出层梯度,得到所述第一隐层分片对应的第一隐层分片梯度以及各个所述第二隐层分片对应的第二隐层分片梯度。
例如,可以先基于各训练终端上传的对应于相应的目标范围的隐层分片L1,j、L2,j……Lk,j,通过服务器模型计算得到服务器模型输出层Lout-j;然后,计算服务器模型输出层Lout-j对应的输出层梯度Gout-j;之后,再基于输出层梯度Gout-j得到各隐层分片L1,j、L2,j……Lk,j分别对应的隐层分片梯度G1,j、G2,j……Gk,j。
在可选的实施例中,所述基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,通过所述服务器的服务器模型,得到服务器模型输出层,具体可以包括:按照第二预设方式,将所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片进行组合,得到服务器模型输入层;将所述服务器模型输入层输入至所述服务器的服务器模型,计算得到服务器模型输出层。其中,所述第二预设方式包括求均值、求和或者拼接(concate)中的至少一种。其中,求均值方式指的是将参与计算的矩阵的对应元素逐个(element-wise)求均值;求和方式指的是将参与计算的矩阵的对应元素逐个(element-wise)求和;拼接方式指的是将参与计算的矩阵在列的方向上进行拼接。
例如,服务器接收到各训练终端上传的对应于相应的目标范围的隐层分片L1,j、L2,j……Lk,j后,可以先对各隐层分片组合(例如,求均值处理、求和处理或拼接处理等)来得到服务器模型输入层Lin-j,然后将服务器模型输入层Lin-j输入至服务器模型中进行计算,得到服务器模型输出层Lout-j。
在可选的实施例中,基于服务器模型输出层计算输出层梯度的步骤,可以由持有样本标签的训练成员来完成。具体地,所述基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,通过所述服务器的服务器模型,得到服务器模型输出层,具体可以包括:服务器可以将所述服务器模型输出层发送给持有样本标签的特定训练成员端;然后接收所述特定训练成员端基于所述服务器模型输出层计算得到的与所述服务器模型输出层对应的输出层梯度。在实践中,所述特定训练成员端可以为所述第一训练成员端或所述第二训练成员端中的持有样本标签的训练成员。
例如,可以向持有样本标签的训练成员k发送服务器模型输出层Lout-j,由训练成员k使用自身对应的第二类训练成员模型继续计算得到标签预测值,并结合训练成员k持有的样本标签真实值计算损失函数,进而计算出输出层梯度Gout-j,并发送给服务器。
在可选的实施例中,基于所述输出层梯度,得到所述第一隐层分片对应的第一隐层分片梯度以及各个所述第二隐层分片对应的第二隐层分片梯度,具体可以包括:按照与所述第二预设方式对应的方式,对所述输出层梯度进行拆分,得到所述第一隐层分片对应的第一隐层分片梯度以及各个所述第二隐层分片对应的第二隐层分片梯度。
例如,当得到输出层梯度Gout-j之后,可以采用与对各隐层分片进行组合的方法(例如,求均值处理、求和处理或拼接处理等)相对应的方法,对输出层梯度Gout-j进行拆分,从而得到各隐层分片L1,j、L2,j……Lk,j分别对应的隐层分片梯度G1,j、G2,j……Gk,j。
若对各隐层分片进行组合时采用求均值处理和求和处理,那么,对输出层梯度Gout-j进行拆分,具体可以是,使各隐层分片的对应的梯度均为Gout-j,即,G1,j=G2,j=……=Gk,j=Gout-j。若对各隐层分片进行组合时采用拼接处理,那么,对输出层梯度Gout-j进行拆分,具体可以是,在与拼接位置对应的位置处进行拆分处理,即,将输出层梯度Gout-j在列的方向上拆分为G1,j、G2,j……Gk,j多个梯度。
在实际应用中,计算得到所述服务器模型输出层对应的输出层梯度之后,还可以包括:根据所述输出层梯度,更新所述服务器模型。
步骤206:将所述第一隐层分片梯度发送给所述第一训练成员端。
在本说明书的实施例中,当服务器得到各隐层分片L1,j、L2,j……Lk,j分别对应的隐层分片梯度G1,j、G2,j……Gk,j之后,可以分别将各隐层分片梯度分别发送给上传各隐层分片L1,j、L2,j……Lk,j的各训练成员1~k。即,可以将所述第一隐层分片梯度发送给所述第一训练成员端并将各个第二隐层分片梯度发送给相应的各个所述第二训练成员端。
在本说明书的实施例中,当训练成员i将隐层Li划分为p个隐层分片Li,1、Li,2……Li,p后,可以向服务器依次上传各隐层分片Li,1、Li,2……Li,p。对于服务器而言,在接收到训练成员i上传的任一隐层分片Li,j以及其他训练成员上传的与该隐层分片对应的隐层分片(第二下标同为j的隐层分片)后,可以开始计算这组隐层分片对应的隐层分片梯度。也就是说,服务器无需等待训练成员i将所有的p个隐层分片Li,1、Li,2……Li,p均上传完成后再开始计算,而是在对当前组的隐层分片进行计算的过程中,同时接收各训练成员上传的其他组的隐层分片。
另一方面,当服务器将得到各隐层分片对应的隐层梯度后,依次返回给各训练终端,各训练终端可以基于接收到的p个隐层分片Li,1、Li,2……Li,p分别对应的隐层分片梯度,来组合得到与此前基于自身的训练成员模型计算得到的隐层数据对应的隐层梯度Gi,进而利用该隐层梯度Gi来对自身的训练成员模型进行更新。
应当理解,本说明书一个或多个实施例所述的方法中,部分步骤的顺序可以根据实际需要调整,或者可以省略部分步骤。
图3为本说明书实施例提供的一种应用于训练成员的模型训练数据传输方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于训练成员端的程序。
图3的实施例与图2的实施例是相应的,分别用于描述方案在不同端的执行步骤,在描述图3的实施例的过程中,与图2的实施例相同的部分将不再赘述。
如图3所示,该流程可以包括以下步骤:
步骤302:将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片。
在联合训练过程中,可以先由服务器对待训练模型进行拆分得到服务器模型和训练成员模型,并将训练成员模型下发给相应的训练成员。各训练成员接收到服务器下发的训练成员模型后,可以使用训练成员模型,对自身持有的训练样本的样本特征数据进行计算,得到训练成员模型的输出数据,即,整个待训练模型的隐层数据。
例如,对于第一训练成员来说,可以先接收服务器下发的训练成员模型;然后基于所述训练成员模型,对自身持有的训练样本的样本特征数据进行计算得到第一隐层数据。其中,所述第一训练成员可以是全部训练成员中的任意一个。
在本说明书的实施例中,所述第一预设方式,可以包括按行划分的方式。
在实际应用时,训练成员端可以将隐层数据划分为预设数量的隐层分片。因此,在实际对隐层进行划分之前,可以先确定待划分的隐层分片数量。可选地,可以基于样本量、隐层数据的输出维度、隐层数据的元素类型和通信协议上限,确定待划分的隐层分片数量。其中,样本量指的是训练终端在计算隐层时,读取的训练样本的样本特征数据的量。
例如,假设计算隐层Li时读取的样本量为n,隐层Li的输出维度为m,隐层的元素类型为float32(即,每个元素大小为4B),通信协议上限为x B,则可以将隐层Li进行二次划分成p个隐层分片(mini-batch),其中,p=ceil(4*n*m/x)。
步骤304:向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应。
在实际应用时,训练成员可以将自身隐层划分得到的多个隐层分片依次上传给服务器,不过对于服务器而言,仅需要在接收到训练成员上传的其中一个隐层分片后,则可以基于该接收的隐层分片继续后续计算和传播,而无需等待该训练成员上传完所有的隐层分片后再开始后续计算。
例如,训练成员i在得到隐层Li后,可以划分出得到p个隐层分片Li,1、Li,2……Li,p,并向服务器依次上传隐层分片Li,1、Li,2……Li,p。其中,不同的隐层分片对应于隐层中不同的数据范围,例如,对应于隐层中不同的行或不同的列。不同的训练成员中对应于相应的目标范围的隐层分片,构成一组隐层分片L1,j、L2,j……Lk,j(例如,L1,1、L2,1……Lk,1,或者L1,2、L2,2……Lk,2,……,等等),一组隐层分片可以共同用于确定各隐层分片L1,j、L2,j……Lk,j对应的隐层分片梯度G1,j、G2,j……Gk,j。
步骤306:接收所述服务器发送的所述第一隐层分片梯度。
在本说明书的实施例中,一方面,训练成员可以向服务器依次上传隐层分片Li,1、Li,2……Li,p,另一方面,也可以从服务器依次接收到计算得到的相应的隐层分片梯度Gi,1、Gi,2……Gi,p。当训练成员接收到所有隐层分片对应的隐层分片梯度(例如,全部p个隐层分片梯度)后,可以基于这些隐层分片梯度,得到隐层梯度。
可选地,在步骤306之后,第一训练成员还可以将所述第一隐层分片梯度与所述第一训练成员端的其他隐层分片梯度按照与所述第一预设方式对应的方式进行组合,得到所述第一隐层数据对应的第一隐层梯度;所述其他隐层分片梯度,是基于所述第一隐层数据的其他范围内的数据对应的其他隐层分片以及各个所述第二隐层数据的其他范围内的数据对应的其他隐层分片确定的。
其中,若进行隐层划分时采用按行划分的方式,则进行隐层分片梯度组合时也采用按行拼接的方式。
在本说明书的实施例中,训练成员在确定隐层梯度后,还可以根据所确定的隐层梯度来更新自身的训练成员模型。例如,第一训练成员可以在得到第一隐层梯度后,根据所述第一隐层梯度,更新所述第一训练成员端的训练成员模型。
在可选的实施例中,当服务器基于隐层分片Li,j计算隐层分片梯度Gi,j时,可以先使用服务器自身的服务器模型计算得到服务器模型输出层Lout-j,再发送给持有训练样本的样本标签数据的特定训练成员来计算损失函数和服务器模型输出层Lout-j对应的输出层梯度Gout-j。
具体地,若所述第一训练成员端为持有训练样本的样本标签数据的特定训练成员端。则所述第一训练成员端还可以:接收所述服务器发送的服务器模型输出层,所述服务器模型输出层是所述服务器使用服务器模型基于各训练成员端分别上传的相应的隐层分片得到的;基于所述服务器模型输出层,使用所述特定训练成员端自身对应的训练成员模型,得到标签预测值;基于所述标签预测值和所述特定训练成员端自身持有的样本标签真实值,得到损失函数值;基于所述损失函数值,得到与所述服务器模型输出层对应的输出层梯度;向所述服务器发送所述输出层梯度。
并且,在基于所述损失函数值,得到与所述服务器模型输出层对应的输出层梯度之后,还可以包括:根据所述输出层梯度,更新所述特定训练成员端自身对应的训练成员模型。
应当理解,本说明书一个或多个实施例所述的方法中,部分步骤的顺序可以根据实际需要调整,或者可以省略部分步骤。
基于图2和图3中的方法,训练成员根据通信协议允许的通信量上限,将需要发送给服务器的隐层数据划分成隐层分片后进行传输,使得,即便数据规模较大,也能够保证数据传输顺利,确保训练的顺利进行。在此基础上,基于训练成员与服务器之间建立的数据流,在训练成员向服务器上传完成一个隐层分片后,服务器可以根据隐层分片进行后续计算和传播,而无需等待该训练成员将划分出的所有隐层分片全部上传,也就是说,训练成员的一个隐层分片在服务器上参与计算的过程与另一个隐层分片被向服务器的传输过程可以同时进行,因此,提高了通信链路和计算模块的利用率,鉴于在将隐层传输至服务器的过程中,可以同时执行基于隐层的计算以及隐层梯度的传输,客观上可以将整体训练时间缩短为约(训练成员本地计算时间+隐层传输时间)*训练次数,缩短了整个模型的训练时间,提高了模型联合训练效率。
基于图2和图3的方法,本说明书实施例还提供了该方法的一些具体实施方式,下面进行说明。
在可选的实施例中,为了提升模型的鲁棒性,训练成员在计算得到隐层后,还可以先对隐层进行打乱重组,得到变换后的隐层,再对变换后的隐层执行分片以及后续计算。
在实际应用时,可以由所有训练成员中的目标训练成员(例如,任一训练成员或预定训练成员)来生成变换矩阵,再经由服务器将变换矩阵下发给其他训练成员,从而使所有训练成员完成同样的变换,以对齐样本空间。
对于生成变换矩阵的训练成员而言,假设以第一训练成员端为例,第一训练成员端可以对自身生成的隐层数据进行打乱重组,得到变换后的隐层数据;再将用于反映所述第一训练成员端对自身生成的隐层数据进行打乱重组的方式的变换矩阵信息发送至所述服务器,以便所述服务器将所述变换矩阵信息发送给第二训练成员端。
对于服务器而言,可以接收目标训练成员端上传的变换矩阵信息;所述变换矩阵信息用于反映,所述目标训练成员端对自身生成的隐层数据进行打乱重组的方式;所述目标训练成员端选自于所述第一训练成员端或所述第二训练成员端;然后将所述变换矩阵信息发送给所述第一训练成员端和所述第二训练成员端中的其他训练成员端;所述变换矩阵信息用于,由所述其他训练成员端基于所述变换矩阵信息对自身生成的隐层数据进行打乱重组。
对于接收变换矩阵的训练成员而言,假设还以第一训练成员端为例,第一训练成员端可以接收所述服务器下发的变换矩阵信息,所述变换矩阵信息用于反映,第二训练成员端对自身生成的隐层数据进行打乱重组的方式;然后基于所述变换矩阵信息,所述第一训练成员端对自身生成的隐层数据进行打乱重组,得到变换后的隐层数据。
在实际应用个过程中,各训练成员可以将所述变换后的隐层进行划分,得到变换后的多个隐层分片;然后,向服务器发送变换后的多个隐层分片,并得到服务器返回的变换后的多个隐层分片对应的梯度信息,拼接后得到变换后隐层对应的梯度信息;之后,再基于所述变换矩阵信息,对所述变换后的隐层梯度进行反变换,得到变换前的所述隐层数据对应的隐层梯度。
基于本说明书实施例的方案,训练成员将隐层进行打乱重组(shuffle)后,根据通信协议允许的通信量上限将隐层分成多个分片(mini-batch),保证了训练的顺利进行,同时提高了鲁棒性;在训练成员与服务器之间建立数据流,当训练成员完成本地计算之后,服务器根分片数据进行计算和后向传播,提高了通信链路和计算模块的利用率,整体训练时间约为(训练成员本地计算时间+隐层传输时间)*训练次数。
根据上面的说明,本说明书实施例提供的一种实际应用场景下,模型联合训练方法的流程示意图,如图4所示。
在本说明书的至少部分实施例中,各训练成员的之间的数据的样本空间相同,特征空间不同。在一些具体的应用场景中,例如在金融领域,各机构之间的数据往往为垂直切分的,例如,银行、第三方支付机构、社交软件运营机构之间等样本空间相同,特征空间不同。
在图4中,以垂直场景下的U-shape拆分学习为例(本说明书实施例的应用场景不限于此,例如,也可以应用于水平场景),假设共有k个训练成员,训练成员之间可以先进行数据隐私保护求交(PSI),以对齐样本空间。
在k个训练成员中,以训练成员i代表常规训练成员,即,仅持有训练样本的样本特征数据的训练成员;以训练成员k代表特定训练成员,即持有训练样本的样本特征数据以及样本标签数据的训练成员。设训练成员i上的特征数据集为Xi,其中,i=1,2,...,k;标签数据集在训练成员k上,设为yk。
通常,在k个训练成员可以包含一个或更多个特定训练成员,其余均为常规训练成员。在此为了方便,以在k个训练成员中仅包含一个特定训练成员k,其余均为常规训练成员的情况进行说明。
如图4所示,本说明书实施例的模型联合训练方法可以执行如下步骤:
步骤1模型分发与初始化:
1)设待训练模型为W,服务器初始化待训练模型W,并将待训练模型W拆分为第一类训练成员模型Wi、服务器模型Ws和第二类训练成员模型Wk。
具体地,可以将待训练模型W拆分为与全部训练成员的数量对应数量的第一类训练成员模型Wi,与特定训练成员的数量对应数量的第二类训练成员模型Wk以及与服务器的数量对应数量的服务器模型Ws。例如,可以拆分得到k个第一类训练成员模型Wi,1个第二类训练成员模型Wk以及1个服务器模型Ws。
2)将第一类训练成员模型Wi下发至相应的训练成员i,i=1,2,...,k。具体地,对于每一个训练成员i,可以下发一个相应的第一类训练成员模型Wi,即,可以将k个不同的第一类训练成员模型Wi分别下发给k个不同的训练成员i。
3)将第二类训练成员模型Wk下发至相应的训练成员k。
步骤2训练成员前向传播:
在本说明书的实施例中,可以采用开源的Tensorflow框架。在模型训练的每一轮迭代中,可以执行如图4中外侧虚线框中的步骤。
4)在一次训练迭代过程中,训练成员i可以基于Tensorflow框架,读取Xi中的样本数据(设读取的样本量为n),进行模型Wi的前向传播,得到Wi的输出层Li,i=1,2,...,k。
在联合训练过程中,各训练成员的样本空间是相同的,因此,在同一次训练迭代过程中,各训练成员读取的样本量是相同的。并且,在实际应用时,各训练成员可以均读取自身样本空间中的一个分片的样本量,且各训练成员读取的分片的样本量是相同的。
5)对隐层Li进行划分,得到p个隐层分片Li,mini-batch,即,隐层分片Li,1、Li,2……Li,p。在本文中,也可以将隐层Li划分后得到的隐层分片记为Li,j,其中,i=1,2,...,k,j=1,2,...,p。
其中,划分出的隐层分片数量的计算方式可以如下:假设隐层Li的输出维度为m,每个元素的类型为float32,通信协议上限为x B,则可以将隐层Li进行二次划分成p个隐层分片(mini-batch),p=ceil(4*n*m/x)。
步骤3创建数据训练的数据流(pipeline),如图4的内侧虚线框中所示:
6)训练成员i向服务器依次发送各隐层分片。例如,当前发送的隐层分片为Li,j。
7)服务器接收到所有训练成员当前上传的隐层分片L1,j、L2,j……Lk,j后,可以利用诸如求均值、求和或者拼接(concate)的方法,得到服务器模型Ws的服务器模型输入层Lin-j。
8)服务器可以基于Tensorflow利用Lin-j进行服务器模型Ws的前向传播,得到服务器模型输出层Lout-j。
9)服务器可以将服务器模型输出层Lout-j传输至持有训练样本的样本标签数据的训练成员k。
10)训练成员k可以继续训练成员模型Wk的前向传播,得到标签预测值,结合标签真实值yk得到损失函数值Loss。
11)然后可以进行反向传播,得到服务器模型输出层Lout-j对应的输出层梯度Gout-j,并更新训练成员模型Wk的模型参数。
12)训练成员k将输出层梯度Gout-j发送给服务器。
13)服务器根据输出层梯度Gout-j更新服务器模型Ws的模型参数。
14)服务器根据输出层梯度Gout-j得到隐层分片Li,j对应的隐层分片梯度Gi,j。
具体地,可以先基于输出层梯度Gout-j得到服务器模型输入层Lin-j对应的输入层梯度Gin-j,然后再拆分得到隐层分片Li,j对应的隐层分片梯度Gi,j。
15)服务器将隐层分片梯度Gi,j发送给训练成员i。
16)当训练成员i完成如内侧虚线框中所示的隐层分片的前向和后向传播之后,可以对各隐层分片梯度Gi,j(其中,j=1,2,...,p)进行拼接(concate)(例如,按照行的方向进行拼接),得到隐层Li对应的隐层梯度Gi。
17)训练成员i根据隐层梯度Gi更新训练成员模型Wi的模型参数。
步骤4循环训练:
重复上述步骤2-3,直到模型收敛,完成模型训练。
在本说明书的实施例中,模型收敛指的是,完整的待训练模型的收敛,更具体地,指的是服务器模型Ws、第一类训练成员模型Wi以及第二类训练成员模型Wk均收敛。
需要补充说明的是,为了图示的清晰,对于训练成员k,在图4中仅示出了相关步骤9)至步骤12),但是在实际执行过程中,训练成员k在此基础,还可以参与训练成员i所参与的所有步骤,例如,还可以参与步骤4)至步骤6)以及步骤15)至步骤17)。
在图4的方案基础上,可选地,训练成员可以对隐层进行打乱重组,以提升模型的鲁棒性。如图5,示出了本说明书实施例提供的另一种实际应用场景下,模型联合训练方法的流程示意图。
如图5所示,步骤a)至步骤e)为新增的步骤;步骤1)至步骤17)与图4中的步骤基本一致,下文中将不在赘述其执行过程。
如图5所示,在训练成员i对隐层Li进行划分之前,还可以对隐层Li进行变换。具体地:
a)选择参与训练的目标训练成员,对本地生成隐层的样本空间进行打乱重组。其中,该目标训练成员可以是随机选择的任一训练成员或按照预设选择的训练成员,可以选自于常规训练成员或特定训练成员。在图5中,为了图示的清晰,选择训练成员k来执行这一步骤,但是需要知道的是,在实践中不限于此,例如,也可以由训练成员i来执行这一步骤。
具体地,训练成员k按照行或列对隐层进行打乱重组,得到变换矩阵T,并得到新的隐层LT,k=T·Lk。例如,若按照行的方向进行打乱重组,假设隐层的行数为n,则可以先生成一个n*n的单位矩阵I,并将I按照行打乱,从而得到变换矩阵T。
b)训练成员k将变换矩阵T传输至服务器。可选地,可以将变换矩阵进行加密后传输至服务器。
c)服务器得到变换矩阵T后,发送至所有的训练成员。可选地,服务器可以直接将加密的变换矩阵发送给各训练成员。
d)各训练成员得到变换矩阵T后(例如,得到加密的变换矩阵并解密得到变换矩阵T后),进而基于变换矩阵T,对自身生成的隐层进行打乱重组,得到变换之后的隐层LT,i=T·Li。
与上述对隐层进行打乱重组的方法相对应地,在后续的步骤5)至步骤16)中,可以基于变换后的隐层LT,i进行计算,得到与变换后的隐层LT,i对应的梯度LT,i。因此,在步骤16)之后,还可以包括:
e)在变换后的隐层LT,i对应的梯度LT,i之后,训练成员利用变换矩阵T对梯度LT,i进行恢复,得到隐层Li对应的隐层梯度Gi=TT·GT,i。
如图4和图5所示,根据本说明书的一个或更多个实施例,训练成员对隐层进行二次拆分后进行前后向传播,并在得到隐层分片的梯度后拼接得到隐层梯度,再更新训练成员模型。由此,解决了在大规模数据的拆分学习模型中,数据传输量过大,超出通信协议上限,无法训练的问题。
并且,根据本说明书的一个或更多个实施例,建立了数据训练的数据流。具体地,在训练成员向服务器上传完成一个隐层分片后,服务器可以根据隐层分片进行后续计算和传播,而无需等待该训练成员将划分出的所有隐层分片全部上传,也就是说,训练成员的一个隐层分片在服务器上参与计算的过程与另一个隐层分片被向服务器的传输过程可以同时进行,因此,提高了通信链路和计算模块的利用率,鉴于在将隐层传输至服务器的过程中,可以同时执行基于隐层的计算以及隐层梯度的传输,客观上可以将整体训练时间缩短为约(训练成员本地计算时间+隐层传输时间)*训练次数,缩短了整个模型的训练时间,提高了模型联合训练效率。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图6为本说明书实施例提供的对应于图2的一种模型训练数据传输装置的结构示意图。如图6所示,该装置可以包括:
隐层分片获取模块602,用于接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;
隐层分片梯度确定模块604,用于基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
隐层分片梯度发送模块606,用于将所述第一隐层分片梯度发送给所述第一训练成员端。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图7为本说明书实施例提供的对应于图3的一种模型训练数据传输装置的结构示意图。如图7所示,该装置可以包括:
隐层分片划分模型702,用于将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;
隐层分片发送模块704,用于向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
隐层分片梯度获取模块706,用于接收所述服务器发送的所述第一隐层分片梯度。
可以理解,上述的各模块是指计算机程序或者程序段,用于执行某一项或多项特定的功能。此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图8为本说明书实施例提供一种模型训练数据传输设备的结构示意图。
如图8所示,若设备800为训练服务器,可以包括:
至少一个处理器810;以及,
与所述至少一个处理器通信连接的存储器830;其中,
所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述至少一个处理器810能够:
接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;
基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
将所述第一隐层分片梯度发送给所述第一训练成员端。
如图8所示,若设备800为第一训练成员端,可以包括:
至少一个处理器810;以及,
与所述至少一个处理器通信连接的存储器830;其中,
所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述至少一个处理器810能够:
将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;
向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
接收所述服务器发送的所述第一隐层分片梯度。
基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现以下方法:
接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;
基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
将所述第一隐层分片梯度发送给所述第一训练成员端。
或者,所述计算机可读指令可被处理器执行以实现以下方法:
将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;
向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
接收所述服务器发送的所述第一隐层分片梯度。
上述对本说明书特定实施例进行了描述,在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可。
本说明书实施例提供的装置、设备与方法是对应的,因此,装置、设备也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备的有益技术效果。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (24)
1.一种模型训练数据传输方法,应用于服务器,所述方法包括:
接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;
基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
将所述第一隐层分片梯度发送给所述第一训练成员端。
2.如权利要求1所述的方法,所述基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度,具体包括:
基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,通过所述服务器的服务器模型,得到服务器模型输出层;
计算所述服务器模型输出层对应的输出层梯度;
基于所述输出层梯度,得到所述第一隐层分片对应的第一隐层分片梯度。
3.如权利要求2所述的方法,所述计算所述服务器模型输出层对应的输出层梯度,具体包括:
将所述服务器模型输出层发送给持有样本标签的特定训练成员端;所述特定训练成员端为所述第一训练成员端或所述第二训练成员端;
接收所述特定训练成员端基于所述服务器模型输出层计算得到的与所述服务器模型输出层对应的输出层梯度。
4.如权利要求2所述的方法,所述基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,通过所述服务器的服务器模型,得到服务器模型输出层,具体包括:
按照第二预设方式,将所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片进行组合,得到服务器模型输入层;
将所述服务器模型输入层输入至所述服务器的服务器模型,计算得到服务器模型输出层。
5.如权利要求4所述的方法,所述第二预设方式包括求均值、求和或者拼接。
6.如权利要求4所述的方法,所述基于所述输出层梯度,得到所述第一隐层分片对应的第一隐层分片梯度,具体包括:
按照与所述第二预设方式对应的方式,对所述输出层梯度进行拆分,得到所述第一隐层分片对应的第一隐层分片梯度。
7.如权利要求2所述的方法,所述基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,通过所述服务器的服务器模型,得到服务器模型输出层之后,还包括:
根据所述输出层梯度,更新所述服务器模型。
8.如权利要求1所述的方法,所述接收第一训练成员端上传的第一隐层分片之前,还包括:
对待训练模型进行拆分,得到服务器模型和训练成员模型;
将所述训练成员模型下发给相应的训练成员端。
9.如权利要求8所述的方法,所述对待训练模型进行拆分,得到服务器模型和训练成员模型,具体包括:
将待训练模型拆分为服务器模型、第一类训练成员模型和第二类训练成员模型;
所述将所述训练成员模型下发给相应的训练成员端,具体包括:
将所述第一类训练成员模型下发给常规训练成员端,将所述第二类训练成员模型下发给特定训练成员端;所述常规训练成员端持有训练样本的样本特征数据;所述特定训练成员端持有训练样本的样本特征数据以及样本标签数据。
10.如权利要求1所述的方法,所述接收第一训练成员端上传的第一隐层分片之前,还包括:
接收目标训练成员端上传的变换矩阵信息;所述变换矩阵信息用于反映,所述目标训练成员端对自身生成的隐层数据进行打乱重组的方式;所述目标训练成员端选自于所述第一训练成员端或所述第二训练成员端;
将所述变换矩阵信息发送给所述第一训练成员端和所述第二训练成员端中的其他训练成员端;所述变换矩阵信息用于,由所述其他训练成员端基于所述变换矩阵信息对自身生成的隐层数据进行打乱重组。
11.一种模型训练数据传输方法,应用于第一训练成员端,所述方法包括:
将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;
向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
接收所述服务器发送的所述第一隐层分片梯度。
12.如权利要求11所述的方法,所述接收所述服务器发送的所述第一隐层分片梯度之后,还包括:
将所述第一隐层分片梯度与所述第一训练成员端的其他隐层分片梯度按照与所述第一预设方式对应的方式进行组合,得到所述第一隐层数据对应的第一隐层梯度;所述其他隐层分片梯度,是基于所述第一隐层数据的其他范围内的数据对应的其他隐层分片以及各个所述第二隐层数据的其他范围内的数据对应的其他隐层分片确定的。
13.如权利要求12所述的方法,所述将所述第一隐层分片梯度与所述第一训练成员端的其他隐层分片梯度按照与所述第一预设方式对应的方式进行组合,得到所述第一隐层数据对应的第一隐层梯度之后,还包括:
根据所述第一隐层梯度,更新所述第一训练成员端的训练成员模型。
14.如权利要求11所述的方法,所述将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片之前,还包括:
基于样本量、隐层数据的输出维度、隐层数据的元素类型和通信协议上限,确定待划分的隐层分片数量。
15.如权利要求11所述的方法,所述第一训练成员端为持有训练样本的样本标签数据的特定训练成员端;所述方法还包括:
接收所述服务器发送的服务器模型输出层;所述服务器模型输出层是所述服务器使用服务器模型基于各训练成员端分别上传的相应的隐层分片得到的;
基于所述服务器模型输出层,使用所述特定训练成员端自身对应的训练成员模型,得到标签预测值;
基于所述标签预测值和所述特定训练成员端自身持有的样本标签真实值,得到损失函数值;
基于所述损失函数值,得到与所述服务器模型输出层对应的输出层梯度;
向所述服务器发送所述输出层梯度。
16.如权利要求15所述的方法,所述基于所述损失函数值,得到与所述服务器模型输出层对应的输出层梯度之后,还包括:
根据所述输出层梯度,更新所述特定训练成员端自身对应的训练成员模型。
17.如权利要求11所述的方法,所述将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片之前,还包括:
接收服务器下发的训练成员模型;所述训练成员模型和服务器模型由所述服务器对待训练模型进行拆分得到;
基于所述训练成员模型,对训练样本的样本特征数据进行计算得到第一隐层数据。
18.如权利要求17所述的方法,所述基于所述训练成员模型,对训练样本的样本特征数据进行计算得到第一隐层数据之后,还包括:
所述第一训练成员端对自身生成的隐层数据进行打乱重组,得到变换后的隐层数据;
将用于反映所述第一训练成员端对自身生成的隐层数据进行打乱重组的方式的变换矩阵信息发送至所述服务器,以便所述服务器将所述变换矩阵信息发送给第二训练成员端。
19.如权利要求17所述的方法,所述基于所述训练成员模型,对训练样本的样本特征数据进行计算得到第一隐层数据之后,还包括:
接收所述服务器下发的变换矩阵信息;所述变换矩阵信息用于反映,第二训练成员端对自身生成的隐层数据进行打乱重组的方式;
基于所述变换矩阵信息,所述第一训练成员端对自身生成的隐层数据进行打乱重组,得到变换后的隐层数据。
20.一种模型训练数据传输装置,应用于服务器,包括:
隐层分片获取模块,用于接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;
隐层分片梯度确定模块,用于基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
隐层分片梯度发送模块,用于将所述第一隐层分片梯度发送给所述第一训练成员端。
21.一种模型训练数据传输装置,应用于第一训练成员端,包括:
隐层分片划分模型,用于将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;
隐层分片发送模块,用于向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
隐层分片梯度获取模块,用于接收所述服务器发送的所述第一隐层分片梯度。
22.一种模型训练数据传输设备,应用于服务器,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收第一训练成员端上传的第一隐层分片;所述第一隐层分片,是所述第一训练成员端基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据进行划分得到的;所述第一隐层数据被按照第一预设方式划分为多个隐层分片;所述第一隐层分片与所述第一隐层数据的第一目标范围内的数据相对应;
基于所述第一隐层分片以及各个第二训练成员端上传的第二隐层分片,确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
将所述第一隐层分片梯度发送给所述第一训练成员端。
23.一种模型训练数据传输设备,应用于第一训练成员端,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
将基于所述第一训练成员端的训练成员模型计算得到的第一隐层数据按照第一预设方式进行划分,得到多个隐层分片;所述多个隐层分片中包括与所述第一隐层数据的第一目标范围内的数据相对应的第一隐层分片;
向服务器上传所述第一隐层分片;所述第一隐层分片被用于,与各个第二训练成员端上传至所述服务器的第二隐层分片共同确定第一隐层分片梯度;所述第二隐层分片,是各个所述第二训练成员端对基于自身的训练成员模型计算得到的各个第二隐层数据进行划分得到的;所述第二隐层分片与所述第二隐层数据的第二目标范围内的数据相对应;所述第二目标范围与所述第一目标范围相对应;
接收所述服务器发送的所述第一隐层分片梯度。
24.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至19中任一项所述的模型训练数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210399111.9A CN114827308B (zh) | 2022-04-15 | 2022-04-15 | 一种模型训练数据传输方法、装置、设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210399111.9A CN114827308B (zh) | 2022-04-15 | 2022-04-15 | 一种模型训练数据传输方法、装置、设备和可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114827308A true CN114827308A (zh) | 2022-07-29 |
CN114827308B CN114827308B (zh) | 2023-11-17 |
Family
ID=82535692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210399111.9A Active CN114827308B (zh) | 2022-04-15 | 2022-04-15 | 一种模型训练数据传输方法、装置、设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114827308B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN109800751A (zh) * | 2019-01-25 | 2019-05-24 | 上海深杳智能科技有限公司 | 一种基于构建深度学习网络的票据识别方法及终端 |
CN110263350A (zh) * | 2019-03-08 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 模型训练方法、装置、计算机可读存储介质和计算机设备 |
CN110929886A (zh) * | 2019-12-06 | 2020-03-27 | 支付宝(杭州)信息技术有限公司 | 模型训练、预测方法及其系统 |
CN111461862A (zh) * | 2020-03-27 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 为业务数据确定目标特征的方法及装置 |
CN112132270A (zh) * | 2020-11-24 | 2020-12-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的神经网络模型训练方法、装置及系统 |
CN112836827A (zh) * | 2019-11-25 | 2021-05-25 | 上海哔哩哔哩科技有限公司 | 模型训练方法、装置以及计算机设备 |
WO2021204271A1 (zh) * | 2020-04-10 | 2021-10-14 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型 |
CN114330673A (zh) * | 2022-03-15 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 一种对业务预测模型进行多方联合训练的方法及装置 |
-
2022
- 2022-04-15 CN CN202210399111.9A patent/CN114827308B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN109800751A (zh) * | 2019-01-25 | 2019-05-24 | 上海深杳智能科技有限公司 | 一种基于构建深度学习网络的票据识别方法及终端 |
CN110263350A (zh) * | 2019-03-08 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 模型训练方法、装置、计算机可读存储介质和计算机设备 |
CN112836827A (zh) * | 2019-11-25 | 2021-05-25 | 上海哔哩哔哩科技有限公司 | 模型训练方法、装置以及计算机设备 |
CN110929886A (zh) * | 2019-12-06 | 2020-03-27 | 支付宝(杭州)信息技术有限公司 | 模型训练、预测方法及其系统 |
CN111461862A (zh) * | 2020-03-27 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 为业务数据确定目标特征的方法及装置 |
WO2021204271A1 (zh) * | 2020-04-10 | 2021-10-14 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型 |
CN112132270A (zh) * | 2020-11-24 | 2020-12-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的神经网络模型训练方法、装置及系统 |
CN114330673A (zh) * | 2022-03-15 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 一种对业务预测模型进行多方联合训练的方法及装置 |
Non-Patent Citations (2)
Title |
---|
REZA SALEHI;RETNO AMBARWATI SIGIT LESTARI: "Predicting the performance of a desulfurizing bio-filter using an artificial neural network (ANN) model", ENVIRONMENTAL ENGINEERING RESEARCH * |
孙浩;徐延杰;陈进;雷琳;计科峰;匡纲要: "基于自监督对比学习的深度神经网络对抗鲁棒性提升", 信号处理 * |
Also Published As
Publication number | Publication date |
---|---|
CN114827308B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021115480A1 (zh) | 联邦学习方法、装置、设备和存储介质 | |
CN110929886B (zh) | 模型训练、预测方法及其系统 | |
CN110955915B (zh) | 一种隐私数据的处理方法及装置 | |
US20230154630A1 (en) | Realizing private and practical pharmacological collaboration using a neural network architecture configured for reduced computation overhead | |
CN112329072B (zh) | 一种基于安全多方计算的模型联合训练方法 | |
CN111898769A (zh) | 基于横向联邦学习的建立用户行为周期模型的方法及系统 | |
CN110659678B (zh) | 一种用户行为分类方法、系统及存储介质 | |
CN111324630B (zh) | 基于mpi的神经网络架构搜索并行化方法和设备 | |
WO2021227959A1 (zh) | 保护数据隐私的多方联合训练对象推荐模型 | |
CN109255513A (zh) | 一种电力通信网现场运维工单调度方法 | |
CN114723047B (zh) | 任务模型训练方法、装置以及系统 | |
CN114004363B (zh) | 联合更新模型的方法、装置及系统 | |
CN114827308B (zh) | 一种模型训练数据传输方法、装置、设备和可读介质 | |
Dolev et al. | Secret Sharing Krohn-Rhodes: Private and Perennial Distributed Computation. | |
CN117170836A (zh) | 基于改进hho算法的视频云转码任务调度方法及装置 | |
CN114707634B (zh) | 联邦学习卷积神经网络模型聚合方法、装置及存储介质 | |
CN114723012B (zh) | 基于分布式训练系统的计算方法和装置 | |
Salcedo-Sanz et al. | Teaching advanced features of evolutionary algorithms using Japanese puzzles | |
CN113887740A (zh) | 联合更新模型的方法、装置及系统 | |
CN114723068A (zh) | 联邦模型训练方法及装置 | |
CN114580661A (zh) | 基于联邦学习的数据处理方法、装置和计算机设备 | |
Zhang et al. | A genetic algorithm using infeasible solutions for constrained optimization problems | |
CN111931947A (zh) | 一种用于分布式模型训练的训练样本重组方法及系统 | |
US20240013050A1 (en) | Packing machine learning models using pruning and permutation | |
CN118410521B (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 |