CN116796850A - 模型训练方法、装置、设备及存储介质 - Google Patents
模型训练方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116796850A CN116796850A CN202210233104.1A CN202210233104A CN116796850A CN 116796850 A CN116796850 A CN 116796850A CN 202210233104 A CN202210233104 A CN 202210233104A CN 116796850 A CN116796850 A CN 116796850A
- Authority
- CN
- China
- Prior art keywords
- task
- network
- client
- training
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 357
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000002776 aggregation Effects 0.000 claims description 51
- 238000004220 aggregation Methods 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 13
- 238000000605 extraction Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000009826 distribution Methods 0.000 description 14
- 230000004931 aggregating effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 241000282472 Canis lupus familiaris Species 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013140 knowledge distillation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种模型训练方法、装置、设备及存储介质。第一客户端将第一客户端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络得到第一特征,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第一骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务;第一客户端通过第一特征对第一模型中的第一任务网络进行训练。本申请实施例可以充分利用不同客户端的本地数据进行模型训练,提升模型效果。
Description
技术领域
本申请涉及机器学习技术领域,尤其涉及一种模型训练方法、装置、设备及存储介质。
背景技术
随着人工智能技术的发展,为了解决数据孤岛的问题,人们提出了联邦学习(federatedlearning)的概念。联邦学习本质上是一种分布式机器学习技术,它的目标是在保障数据隐私安全的前提下让多个参与方协作进行机器学习模型的训练,以提升模型的效果。
目前的联邦学习方法只支持对不同客户的相同任务进行联合建模,因此,对于具有不同任务需求的客户来说,他们是无法利用现有的联邦学习方法进行联合建模的,导致这些客户的本地数据无法得到很好地利用。
发明内容
为了解决现有技术中存在的上述问题,本申请实施例中提供一种模型训练方法、装置、设备及存储介质,支持为不同客户的不同任务进行联合建模,拓宽了联邦学习的应用场景,可以充分利用各个客户本地的数据进行模型训练,提升模型效果。
第一方面,本申请提供了一种模型训练方法,用于第一客户端,该方法包括:将第一客户端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第一骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务;通过第一特征对第一模型中的第一任务网络进行训练。
可以看出,上述第一客户端的任务需求包括第一任务,并且第一客户端上存在第一任务对应的有标签数据和无标签数据;第一客户端中的第一模型可用于执行该第一任务,它包括第一骨干网络和第一任务网络,其中,第一骨干网络用于特征提取,第一骨干网络的输出作为第一任务网络的输入,第一任务网络与第一任务对应,用于基于第一骨干网络输入的特征输出第一任务的结果。类似的,第二客户端的任务需求包括第二任务,并且第二客户端上存在无标签数据;第二客户端中的第二模型可用于执行第二任务,第二模型包括第二骨干网络,第二骨干网络也用于特征提取。需要说明的是,第二骨干网络与第一骨干网络的结构相同,但二者的网络权重不一定相同。
虽然第一客户端和第二客户端的任务需求不同,但是它们本地都有一个骨干网络(分别是第一骨干网络和第二骨干网络),它们可以先分别利用其本地的无标签数据对本地的骨干网络进行自监督训练,再将各自得到的训练结果(分别是第一结果和第二结果)作为第一骨干网络的第一网络权重的参考。比如,可以将上述第一结果和第二结果进行聚合得到该第一网络权重。
可以理解的是,因为第一骨干网络的第一网络权重综合了第一客户端的上述第一结果和第二客户端的上述第二结果,所以第一网络权重可理解为是第一客户端和第二客户端共同训练的成果。这样的第一骨干网络(其网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度。
在传统的横向联邦学习方法中只支持相同任务的联合建模,即任务需求相同的多个客户端才能一起参与横向联邦学习,它们的目标模型是一样的,该目标模型用于执行该任务。如果多个客户端的任务需求不同,则它们的目标模型也不相同(各客户端的目标模型分别用于执行该客户端需求的任务),因此它们无法通过这种传统的横向联邦学习进行模型训练,导致各个客户端的本地数据得不到充分利用。
不同于传统的横向联邦学习方法,本方案支持为不同客户端的不同任务进行联合建模,拓宽了联邦学习的应用场景,从而能够将各个客户端的本地数据充分利用起来。在本方案中,各个客户端的目标模型均采用骨干网络和任务网络(与该客户端需求的任务对应)两部分来构成,其中,骨干网络用于特征提取,任务网络基于骨干网络提取的特征输出对应任务的结果。此时骨干网络作为各客户端的目标模型中的公共部分,便可以基于传统的横向联邦学习方法进行联合训练:各个客户端分别利用其本地的无标签数据对本地的骨干网络进行自监督训练,各客户端得到的训练结果由服务端聚合后再下发给各客户端,以更新各客户端本地的骨干网络;经过上面多次循环便可以得到训练好的骨干网络,这个训练好的骨干网络对所有客户端都有益。之后,各客户端再根据训练好的骨干网络及其本地的有标签数据对任务网络进行训练。可以理解的是,上述训练好的骨干网络相当于学习了多个客户端的本地数据的知识,所以特征提取效果较好,进而可以加快任务网络的训练速度,仅用少量有标签数据即可。
基于第一方面,在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。
也就是说,第一客户端可以利用第一客户端中的第一任务对应的无标签数据对第一骨干网络进行训练,而第二客户端可以利用第二客户端中的第二任务对应的无标签数据对第二骨干网络进行训练。由于第一骨干网络的第一网络权重参考了第一客户端和第二客户端的上述训练结果,相当于利用了不同客户端上的不同任务对应的无标签数据对第一骨干网络进行了训练,能够提升第一骨干网络的特征提取能力。
基于第一方面,在可能的实施例中,第一骨干网络的第一网络权重是根据以下两种训练结果聚合得到的:使用第一客户端中的无标签数据对第一骨干网络进行训练的训练结果;使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果。
也就是说,可以将第一客户端使用本地的无标签数据对第一骨干网络进行训练得到的结果以及第二客户端使用本地的无标签数据对第二骨干网络进行训练得到的结果进行聚合,从而得到第一骨干网络的第一网络权重。
基于第一方面,在可能的实施例中,所述通过第一特征对第一模型中的第一任务网络进行训练,包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据该预测值和第一客户端中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。
也就是说,第一客户端将第一骨干网络输出的第一特征输入第一任务网络,可以得到相应的预测值,然后将该预测值与之前输入的有标签数据的标签(真实值)进行比较,计算损失函数值,再根据损失函数值对第一任务网络的网络权重进行更新,从而得到第二网络权重。应理解,这里只更新了第一模型中的第一任务网络,没有更新第一模型中的第一骨干网络,第一骨干网络的网络权重固定为第一网络权重。
基于第一方面,在可能的实施例中,在得到第二网络权重之后,该方法还包括:将第二网络权重发送给服务端;接收服务端发送的第三网络权重,其中,第三网络权重参考了第二网络权重和第三结果,第三结果是第三客户端使用第三客户端中的第一任务对应的有标签数据对第三模型进行训练的训练结果,第三模型包括第三骨干网络和第二任务网络,第三模型用于执行第一任务;使用第三网络权重更新第一任务网络。
可以看出,第一客户端和第三客户端的任务需求都包括第一任务,第一客户端中的第一模型和第三客户端中的第三模型都可用于执行第一任务。第一模型包括第一骨干网络和第一任务网络,第三模型包括第三骨干网络和第二任务网络。第三骨干网络也用于特征提取;第二任务网络与第一任务也是对应的,用于基于第三骨干网络提取特征输出第一任务的结果。第三骨干网络与第一骨干网络的结构相同,但网络权重不一定相同。
第一客户端和第三客户端可以分别利用本地的第一任务对应的有标签数据对第一模型和第三模型进行训练,再分别将训练得到的训练结果上传至服务端,服务端根据它们上传的训练结果可以得到第三网络权重并下发给第一客户端(也可以下发给第三客户端),以更新第一客户端中的第一任务网络。可以理解的是,由于第三网络权重综合了第一客户端和第三客户端各自在本地的训练结果,相当于综合了不同客户端的训练成果,因此第一任务网络使用第三网络权重进行更新之后的效果会更好。
基于第一方面,在可能的实施例中,所述根据预测值和第一客户端中的第一任务对应的有标签数据更新第一任务网络,包括:根据预测值和第一客户端中的第一任务对应的有标签数据,更新第一任务网络和第一骨干网络;所述使用第三网络权重更新第一任务网络,包括:使用第三网络权重更新第一任务网络和第一骨干网络。
也就是说,第一客户端可以不固定第一模型中的第一骨干网络的网络权重,根据预测值和第一客户端中的第一任务对应的有标签数据,既更新第一模型中的第一任务网络的网络权重,也更新第一模型中的第一骨干网络的网络权重。应理解,第一骨干网络更新之后,其网络权重就不再是第一网络权重。于是,这里的第二网络权重不仅包括第一任务网络更新后的网络权重,还包括第一骨干网络更新后的网络权重。
基于第一方面,在可能的实施例中,第三网络权重还参考了使用服务端中的第一任务对应的有标签数据对第四模型进行训练的训练结果,第四模型包括第四骨干网络和第三任务网络,第四模型用于执行第一任务。
也就是说,如果服务端上也具有第一任务对应的有标签数据,那么,服务端也可以利用其本地的第一任务对应的有标签数据对第四模型进行训练,服务端上的第四模型也可用于执行第一任务,包括第四骨干网络和第三任务网络。其中,第四骨干网络与第一骨干网络的结构相同,但网络权重不一定相同,第四骨干网络也用于特征提取,第三任务网络用于基于第四骨干网络输入的特征输出第一任务的结果。
第二方面,本申请实施例提供了又一种模型训练方法,用于服务端,该方法包括:将服务端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,第二模型用于执行第一任务,第三模型用于执行第二任务,第一任务和第二任务是不同的任务;通过第一特征对第一模型中的第一任务网络进行训练。
可以看出,服务端上存在第一任务对应的有标签数据,服务端上的第一模型可用于执行第一任务。第一模型包括第一骨干网络和第一任务网络,第一骨干网络用于特征提取,第一任务用于基于第一骨干网络提取的特征输出第一任务的结果。
还可以看出,第一客户端和第二客户端本地均有一个骨干网络,分别是第二骨干网络和第三骨干网络,它们与服务端上的第一骨干网络的结构是相同的。第一客户端可以使用本地的无标签数据对第二骨干网络进行自监督训练,得到相应的训练结果,同样的,第二客户端也可以使用本地的无标签数据对第三骨干网络进行自监督训练,得到相应的训练结果。然后,服务端可以将上述第一客户端和第二客户端的训练结果作为第一骨干网络的第一网络权重的参考。
可以理解的是,因为第一骨干网络的第一网络权重综合了第一客户端和第二客户端各自在本地得到的上述训练结果,所以第一网络权重可理解为是不同客户端共同训练的成果。这样的第一骨干网络(其网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度。
基于第二方面,在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。
基于第二方面,在可能的实施例中,第一网络权重是根据以下两种训练结果聚合得到的:使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果;使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果。
基于第二方面,在可能的实施例中,所述通过第一特征对第一模型中的第一任务网络进行训练,包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据预测值和服务端中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。
基于第二方面,在可能的实施例中,该方法还包括:接收第一客户端发送的第三网络权重,其中,第三网络权重是第一客户端使用第一客户端中的第一任务对应的有标签数据对第二模型进行训练的训练结果,第二模型包括第二骨干网络和第二任务网络;根据第三网络权重和第二网络权重聚合得到第四网络权重,使用第四网络权重更新第一任务网络。
可以看出,第一客户端上存在第一任务对应的有标签数据,第一客户端可以利用本地的第一任务对应的有标签数据对第一客户端上的第二模型进行训练,然后将训练得到的第三网络权重发送给服务端。服务端可以对自身训练得到的第二网络权重以及第三网络权重进行聚合,从而得到第四网络权重,然后使用第四网络权重更新第一任务网络。
由于第四网络权重综合了第一客户端和服务端各自的训练结果,相当于服务端上的第一任务网络是综合利用了第一客户端中的第一任务对应的有标签数据以及服务端中的第一任务对应的有标签数据来训练,相当于提升了第一任务网络的训练数据的数据量,第一任务网络使用第四网络权重更新之后的效果会更好。
基于第二方面,在可能的实施例中,根据预测值和服务端中的第一任务对应的有标签数据更新第一任务网络,包括:根据预测值和服务端中的第一任务对应的有标签数据,更新第一任务网络和第一骨干网络;使用第四网络权重更新第一任务网络,包括:使用第四网络权重更新第一任务网络和第一骨干网络。
也就是说,服务端既可以将第一模型中的第一骨干网络的网络权重固定为第一网络权重,也可以不固定第一骨干网络的网络权重,服务端在使用本地的第一任务对应的有标签数据训练第一模型时,不仅更新第一模型中的第一任务网络的网络权重,还更新第一骨干网络的网络权重。
基于第二方面,在可能的实施例中,该方法还包括:将第四网络权重发送给第一客户端,以使得第一客户端根据第四网络权重更新第二模型。
也就是说,服务端聚合得到第四网络权重之后,还可以将其发送给第一客户端,以使得第一客户端利用第四网络权重更新第一客户端上的第二模型,提升第二模型的效果。在此之后,第一客户端可以继续使用其本地的第一任务对应的有标签数据对更新后的第二模型进行训练,还可以将训练后得到的训练结果再次发送给服务端进行聚合。
第三方面,本申请实施例提供了一种装置,该装置包括:处理模块,用于将装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了使用装置中的无标签数据对第一骨干网络进行训练的训练结果,以及,使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务;训练模块,用于通过第一特征对第一模型中的第一任务网络进行训练。
上述装置对应于第一方面中的第一客户端,该装置中的各个模块具体用于执行第一方面中的任一实施例的方法。
第四方面,本申请实施例提供了又一种装置,该装置包括:处理模块,用于将装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,以及,使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,第二模型用于执行第一任务,第三模型用于执行第二任务,第一任务和第二任务是不同的任务;训练模块,用于通过第一特征对第一模型中的第一任务网络进行训练。
上述装置对应于第二方面中的服务端,具体用于执行第二方面中的任一实施例的方法。
第五方面,本申请实施例提供了一种设备,包括处理器和存储器;处理器和存储器可通过总线相互连接,也可以集成在一起。该处理器用于读取存储器中存储的程序代码,以使得所述设备执行上述第一方面或第二方面中任一实施例的方法。
第六方面,本申请实施例提供一种计算机可读存储介质;该计算机可读存储介质用于存储上述第一方面或第二方面中的任一实施例方法的实现代码。
第七方面,本申请实施例提供了一种计算机程序(产品),该计算机程序(产品)包括程序指令,当该计算机程序产品被执行时,用于执行上述第一方面或第二方面中的任一实施例的方法。
综上所述,本申请实施例中的第一客户端可以利用其本地的无标签数据训练本地的骨干网络(即第一骨干网络),然后将得到的训练结果发送给服务端。同样的,其他客户端也可以利用本地的无标签数据训练本地的骨干网络,然后将训练结果发送给服务端。服务端可以对第一客户端发送的本地骨干网络的训练结果以及其他客户端发送的本地骨干网络的训练结果进行聚合,然后将聚合后得到的网络权重(即第一网络权重)下发给第一客户端,第一客户端可以使用第一网络权重更新第一模型中的第一骨干网络。这时候第一骨干网络的第一网络权重,既参考了第一客户端使用本地的无标签数据对第一骨干网络进行训练的训练结果(即第一结果),还参考了其他客户端使用其本地的无标签数据对本地的骨干网络进行训练的训练结果(如第二客户端的第二结果),相当于联合利用了不同客户端本地的无标签数据对第一骨干网络进行训练。这样的第一骨干网络(网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度,仅需少量的有标签数据即可完成训练。
接着,第一客户端可以使用本地的第一任务对应的有标签数据对第一模型进行训练,第一模型包括第一骨干网络(其网络权重为第一网络权重)和第一任务网络(即第一任务对应的网络)。第一客户端将本地的第一任务对应的有标签数据输入第一骨干网络,得到第一特征,然后通过第一特征对第一模型中的第一任务网络进行训练,得到第二网络权重,第一客户端可以将第二网络权重发送给服务端。同样的,其他客户端也可以分别利用本地的第一任务对应的有标签数据对它们本地的第一任务对应的网络进行训练,然后将训练结果发送给服务端。服务端可以将第一客户端上传的第二网络权重以及其他客户端上传的网络权重进行聚合,再将得到的第三网络权重发送给第一客户端,以更新第一客户端上的第一模型,提升第一模型的训练效果。可以理解的是,该第三网络权重相当于是学习了第一客户端以及其他客户端上的第一任务对应的有标签数据的知识,采用第三网络权重更新第一模型中的第一任务网络,可以加快第一任务网络的训练速度。然后,第一客户端还可以使用本地的第一任务对应的有标签数据,对更新后的第一模型继续进行训练。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例中提供的一种联邦学习的系统架构示意图;
图2是本申请实施例中提供的一种服务端的结构示意图;
图3是本申请实施例中提供的任务A对应的有标签数据和无标签数据的分布示意图;
图4是本申请实施例中提供的任务B对应的有标签数据和无标签数据的分布示意图;
图5是本申请实施例中提供的任务C对应的有标签数据和无标签数据的分布示意图;
图6是本申请实施例中提供的一种模型训练方法的第一阶段的流程示意图;
图7是本申请实施例中提供的一种模型训练方法的第二阶段的流程示意图;
图8是本申请实施例提供的一种第二阶段网络的结构示意图;
图9是本申请实施例中提供的任务A、任务B和任务C对应的任务网络的分布示意图;
图10是本申请实施例中提供的又一种模型训练方法的流程示意图;
图11是本申请实施例中提供的又一种模型训练方法的流程示意图;
图12是本申请实施例中提供的一种装置的结构示意图;
图13是本申请实施例中提供的又一种装置的结构示意图;
图14是本申请实施例中提供的一种设备的结构示意图;
图15是本申请实施例中提供的又一种设备的结构示意图。
具体实施方式
为了便于理解本申请实施例中的技术方案,首先对本申请实施例中涉及的系统架构进行介绍。
请参见图1,图1是本申请实施例中提供的一种联邦学习的系统架构示意图,包括服务端100以及多个客户端200(图中的三个客户端200仅作为示例)。服务端100与每个客户端200之间可以通过无线方式或者有线方式建立通信连接,本申请不具体限定。下面分别对服务端100和客户端200进行具体介绍。
(1)服务端100:用于向各个客户端200提供联邦学习服务,对联邦学习任务的执行过程进行全局控制。
需要说明的是,本申请所述的“联邦学习任务”指的是对参与该联邦学习任务的所有客户端200的任务需求进行联合建模,最终让每个客户端200都能获得满足其任务需求的个性化模型。
在可能的实施例中,如图2所示,服务端100可以包括流程协调模块101、联邦聚合模块102和中心训练模块103。
流程协调模块101:负责收集各个客户端200的基础信息、确定能够参与同一个联邦学习任务的客户端200,还可以负责控制联邦学习任务的各个训练阶段的开启、模型的拆分以及下发,等等。其中,上述“基础信息”可以包括客户端200所拥有的训练数据的信息,比如数据量、有无标签、标签类型等等,还可以包括客户端200的任务需求、通信地址等等,本申请不具体限定。
具体的,流程协调模块101可以基于各个客户端200上传的基础信息,确定哪些客户端200能够参与到同一联邦学习任务中。可以将具有相似的/同类型的任务需求(比如是多个相似的图像分类任务、相近的目标检测(object detection)任务或者不同的语义/实例分割任务)的不同客户端200,作为能够参与同一联邦学习任务的客户端200;或者,可以将任务需求属于相同的机器学习领域(比如计算机视觉(computer vision,CV)领域、自然语言处理(natural language processing,NLP)领域、音频处理领域等等)的不同客户端200,作为能够参与同一联邦学习任务的客户端200,本申请不具体限定。
比如,某个客户端200具有“识别图像中的车辆”的任务需求,另一个客户端200具有“对车辆图像进行分类”的任务需求,因为这两个任务都属于CV领域并且针对数据都是车辆图像,具有一定的相关性,所以可以让这两个客户端200参与到同一联邦学习任务中。再如,某个客户端200具有“文本分类”的任务需求,另一个客户端200具有“命名实体识别”和“意图识别”的任务需求,因为这三个任务都属于NLP处理领域并且针对的数据类型都是文本,具有一定的相似性,所以可以让这两个客户端200参与到同一联邦学习任务中。再如,某个客户端200具有“识别图像中的猫”的任务需求,另一个客户端200具有“识别图像中的狗”的任务需求,因为这两个任务都目标检测任务,并且它们各自针对的猫和狗在特征上存在相似性,所以可以让这两个客户端200参与到同一联邦学习任务中。在可能的实施例中,服务端100可以向参与同一联邦学习任务的各个客户端200分别发送通知消息,以告知该客户端200上的哪些任务需求是能够参与本次联邦学习任务的。
当然,服务端100还可以进一步结合其他因素(比如客户端200本地的数据量、客户端200本地的数据与任务的对应关系、算力、带宽等等)来确定最终参与到同一联邦学习任务中的客户端200,进而将参与同一联邦学习任务的各个客户端200组织起来,以协作执行该联邦学习任务。
联邦聚合模块102:负责对各个客户端200上传的模型参数/梯度进行聚合,进而得到聚合后的模型参数,然后把聚合后的模型参数下发给各个客户端200;也可以对各个客户端200上传的模型参数/梯度以及中心训练模块103训练得到的模型参数/梯度进行聚合,进而得到聚合后的模型参数,然后把聚合后的模型参数下发给各个客户端200。需要说明的是,本申请实施例可以对模型参数(比如神经网络的网络权重)进行聚合,也可以对梯度进行聚合,若无特殊说明,下文皆以模型参数的聚合为例进行介绍。
中心训练模块103:可以提供一定的计算能力和存储能力,可以根据自身存储的数据进行模型训练。在可能的实施例中,中心训练模块103存储的数据可以来自客户端200,比如,客户端200可以将部分本地的无标签数据提供给服务端100,然后服务端100对这些无标签数据进行标注得到有标签数据,这些有标签数据可以存储在中心训练模块103,于是中心训练模块103可以基于这些数据进行模型训练。
需要说明的是,服务端100中的上述各个模块可以部署在同一个服务器或者多个服务器,可以部署在公有云,还可以部署在靠近客户端200的数据中心,本申请不具体限定。还需要说明的是,服务端100中的上述各个模块的划分、连接关系等仅是示例,服务端100还可以包括更多或更少的模块,比如,上述模块可以进一步拆分为多个子模块,上述多个模块也可以合并为一个模块,服务端100还可以包括其他功能的模块。
(2)客户端200:具有一定的计算能力和存储能力,可以参与到服务端100所组织的联邦学习任务当中,利用本地的数据进行模型训练。
客户端200本地的数据可以包括无标签数据和/或有标签数据,与该客户端200的任务需求相匹配(或者说相对应)。比如,假设某个客户端200有“猫狗图像分类”的任务需求,那么该客户端200本地应该会有一些猫的图像和一些狗的图像,这些图像与上述任务即是匹配的(能够用于该任务),可以全是无标注的图像,也可以一部分图像有标注,另一部分图像无标注。同一个客户端200可以有一个或者多个不同的任务需求,任务(即机器学习任务)的具体类型不限定。
客户端200可以是智能手机、个人计算机或者服务器等设备,本申请不具体限定。
为了便于理解本申请实施例中的技术方案,下面再对服务端100和各个客户端200的数据分布情况进行介绍。
假设参与同一联邦学习任务的客户端200总共有M个,在这M个客户端200之间存在着N个不同的任务需求,这N个任务为该联邦学习任务中所针对的具体任务,它们之间具有一定的相关性(比如属于相同的机器学习领域、具有一定的相似性或者对应的训练数据相似),其中,M和N为大于1的正整数。对于N个任务中的每个任务来说,在这M个客户端200中可能有一个或多个客户端200具有该任务的需求,该任务对应的有标签数据和无标签数据(统称训练数据)分别存在于服务端100和/或至少一个客户端200当中。
上述M个客户端200中的每个客户端200都可以有一个或者多个任务需求,不同客户端200之间的任务需求可以完全相同或者完全不同,也可以部分相同。对于M个客户端200中的每个客户端200来说,它本地有自身任务需求所对应的无标签数据,但不一定有该任务对应的有标签数据。
下面结合图3、图4和图5,对上述N个任务中的每个任务对应的训练数据(包括有标签数据和无标签数据)的三种可能分布情况进行介绍。
第一种情况:例如,假设参与某个联邦学习任务的客户端200总共有五个,分别是第一客户端、第二客户端、第三客户端、第四客户端和第五客户端,在它们当中总共有三个不同的任务需求,分别是任务A、任务B和任务C。请参见图3,图3是任务A对应的有标签数据和无标签数据的分布示意图,任务A是上述N个任务中的一个任务。因为第一客户端、第三客户端和第四客户端都有任务A的需求,所以它们本地都有该任务对应的无标签数据。但是只有第一客户端、第四客户端有任务A对应的有标签数据,第三客户端没有任务A对应的有标签数据,服务端100也没有任务A对应的有标签数据。
由上述例子可知,对于N个任务中的某一个任务来说,M个客户端200当中可能有一个或者多个客户端200具有该任务的需求,该任务对应的训练数据的一种可能分布情况是:具有该任务需求的每一个客户端200本地都有该任务对应的无标签数据,M个客户端200中的至少一个客户端200具有该任务对应的有标签数据,而服务端100没有该任务对应的有标签数据。
第二种情况:例如,同样假设参与某个联邦学习任务的客户端200有五个,分别是第一客户端、第二客户端、第三客户端、第四客户端和第五客户端。请参见图4,图4是任务B对应的有标签数据和无标签数据的分布示意图,任务B是上述N个任务中的一个任务。因为第一客户端、第二客户端、第四客户端和第五客户端都有任务B的需求,所以它们本地都有该任务对应的无标签数据。第一客户端、第二客户端和第四客户端本地都有任务B对应的有标签数据,并且服务端100也有任务B对应的有标签数据,而第五客户端没有任务B对应的有标签数据。
由上述例子可知,对于N个任务中的某一个任务来说,M个客户端200当中可能有一个或者多个客户端200具有该任务需求,该任务对应的训练数据的一种可能分布情况是:具有该任务需求的每一个客户端200本地都有该任务对应的无标签数据,M个客户端200中的至少一个客户端200具有该任务对应的有标签数据,并且服务端100也有该任务对应的有标签数据。应理解,客户端200可以向服务端100发送某个任务对应的无标签数据,然后服务端100对该任务的无标签数据进行数据标注,进而得到该任务对应的有标签数据。
第三种情况:例如,同样假设参与某个联邦学习任务的客户端200有五个,分别是第一客户端、第二客户端、第三客户端、第四客户端和第五客户端。请参见图5,图5是任务C对应的有标签数据和无标签数据的分布示意图,任务C是上述N个任务中的一个任务。因为第二客户端、第四客户端和第五客户端都有任务C的需求,所以它们本地都有该任务对应的无标签数据,但它们都没有任务C对应的有标签数据,只有服务端100上存在任务C对应的有标签数据。
由上述例子可知,对于N个任务中的某一个任务来说,M个客户端200当中可能有一个或者多个客户端200具有该任务需求,该任务对应的训练数据的一种可能分布情况是:具有该任务需求的每一个客户端200本地都有该任务对应的无标签数据,然而只有服务端100拥有该任务对应的有标签数据。
需要说明的是,图3、图4和图5中的客户端200的数量、各个客户端200的任务需求、有标签数据和无标签数据的分布等等,仅作为示例,对本申请不构成限定。
基于上述服务端100、客户端200以及数据分布情况,下面介绍本申请中的模型训练方法的实施例。
需要说明的是,本申请中的模型训练方法用于参与同一联邦学习任务的客户端200和服务端100,该模型训练方法/联邦学习任务可以划分为第一阶段和第二阶段。其中,第一阶段利用各个客户端200本地的无标签数据对骨干网络(backbone)进行自监督训练,得到预训练骨干网络;第二阶段将预训练骨干网络迁移到不同任务上,利用各个任务对应的有标签数据进行有监督训练,最终让每个客户端200都能获得满足其任务需求的个性化模型。
下面分别对本申请中的模型训练方法的第一阶段和第二阶段的实施例进行具体介绍。
请参见图6,图6是本申请实施例提供的一种模型训练方法的第一阶段的流程示意图,可以包括如下步骤:
S601、服务端100初始化当前聚合轮次,向客户端200发送骨干网络。
其中,上述“客户端200”指的是参与同一联邦学习任务的客户端200,参与同一联邦学习任务的客户端200可以有多个(与前文一样假设有M个客户端200),服务端100会分别向这些客户端200发送的一个相同结构的骨干网络。如何确定参与同一联邦学习任务的客户端200,请参见前文的介绍,这里不重复。需要说明的是,因为参与同一联邦学习任务的各个客户端200在第一阶段所执行的动作是类似的,所以图6是直接以某一个客户端200为例进行描述的,但是并不代表只能有一个客户端200。
上述“当前聚合轮次”,指的是服务端100当前的聚合轮次,可以代表服务端100在第一阶段中,对各个客户端200发送的本地网络权重进行聚合的次数;“初始化当前聚合轮次”就是将当前聚合轮次初始化为某个特定值,比如可以设置为0,说明第一阶段刚刚开始,服务端100目前还没有执行过网络权重的聚合。
上述“骨干网络”指的是用于特征提取的人工神经网络,它可以基于无标签数据进行自监督训练。骨干网络可以是卷积神经网络(convolutional neural networks,CNN)、自注意力(self-attention)机制模型(比如Transformer)、残差网络(residual networks,ResNets)等等,本申请不具体限定。
关于骨干网络的具体类型,可以根据联邦学习任务中针对的所有任务(与前文一样假设是N个任务)来选择。比如,如果N个任务都属于CV领域,那么可以把能够提取视觉特征的网络作为骨干网络;如果N个任务都属于NLP领域,那么可以把能够提取文本特征/语义特征的网络作为骨干网络。
需要说明的是,在步骤S601之前,各个客户端200需要向服务端100发送自身的基础信息。关于客户端200的基础信息具体请参见前文描述,某个客户端200的基础信息可以由用户在该客户端200的用户界面中输入,不具体限定。接着,服务端100根据各个客户端200的基础信息,可以确定参与同一联邦学习任务的客户端200,可以将这些客户端200的信息记录在一起。比如,将这些客户端200的通信地址记录在同一张表格中,还可以记录每个客户端200的任务需求、训练数据的信息等等。然后,服务端100便可以执行步骤S601,初始化当前聚合轮次,向参与本次联邦学习任务(即同一联邦学习任务)的每个客户端200发送骨干网络。
例如,如图3至图5所示,第一客户端具有任务A和任务B的需求,它本地有任务A对应的有标签数据和无标签数据,同时还有任务B对应的有标签数据和无标签数据;第二客户端具有任务B和任务C的需求,它本地有任务B对应的有标签数据和无标签数据,还有任务C对应的无标签数据;第三客户端具有任务A的需求,它本地只有任务A对应的无标签数据;第四客户端具有任务A、任务B和任务C的需求,它本地有任务A和任务B各自对应的有标签数据及无标签数据,还有任务C对应的无标签数据;第五客户端具有任务B和任务C的需求,它只有这两个任务对应的无标签数据。因为任务A、任务B和任务C具有一定相关性,并且,在服务端100以及上述5个客户端200当中存这些任务各自对应的有标签数据和无标签数据,所以服务端100可以将上述5个客户端200确定为参与同一联邦学习任务的客户端200,该联邦学习任务针对的具体任务包括任务A、任务B和任务C。
假设任务D、E与上述三个任务也具有相似性,第五客户端还具有任务D的需求并拥有任务D对应的无标签数据,但它没有任务D对应的有标签数据,而其他客户端200以及服务端100上也没有任务D对应的有标签数据。因为没有任务D对应的有标签数据,所以任务D无法作为本次联邦学习任务中的针对的一个具体任务。假设还有第六客户端,它具有任务E对应的无标签数据,但没有任务E对应的有标签数据,而且前面的5个客户端200以及服务端100上都没有任务E对应的有标签数据。因为没有任务E对应的有标签数据,所以第六客户端无法和上述5个客户端200参与同一联邦学习任务。
S602、客户端200接收服务端100发送的骨干网络,初始化当前训练轮次。
其中,“当前训练轮次”指的是客户端200在第一阶段中当前的训练轮次;“初始化当前训练轮次”就是将当前训练轮次初始化为某个设定值,比如可以设置为0,说明该客户端200在第一阶段中还没有执行过训练。
S603、客户端200使用本地的无标签数据对骨干网络进行自监督训练,经过预设迭代轮次的训练之后得到本地网络权重,将当前训练轮次加一。
其中,上述“预设迭代轮次”可以根据客户端200拥有的训练数据的数据量、模型训练的批尺寸(batch-size)、客户端200的显存容量、算力等因素来确定,本申请不具体限定。比如,假设某个客户端200的预设迭代轮次设为5,那么它需要使用本地的无标签数据对本地的骨干网络执行5个迭代轮次(epoch)的训练,经过5个迭代轮次的训练后得到的本地骨干网络的网络权重即为本地网络权重。
具体来说,参与同一联邦学习任务的每个客户端200都会收到服务端100发送的一个相同结构的骨干网络;每个客户端200将收到的骨干网络作为本地骨干网络,并利用本地的无标签数据(准确来说,是该客户端200的任务需求所匹配的无标签数据)对本地骨干网络进行自监督训练、更新本地骨干网络的网络权重;在经过预设迭代轮次的训练之后,客户端200便可以得到一组本地网络权重,然后将当前训练轮次加1。
在可能的实施例中,客户端200本地如果存在与前文所述的N个任务中的至少一个任务对应的有标签数据,用来对本地的骨干网络进行自监督训练。也就是说,如果某个客户端200本地既有无标签数据,也有有标签数据,就可以将所有这些数据暂时都看做是无标签数据来对本地的骨干网络进行自监督训练。
S604、客户端200判断当前训练轮次是否达到预设第一阶段退出轮次,如果是则转至步骤S610,如果否则转至步骤S605。
其中,“第一阶段退出轮次”可以根据客户端200的数据量、算力等因素来合理设置,本申请不具体限定。
在可能的实施例中,客户端200可以不记录当前训练轮次,即没有上述步骤S602,同时也没有步骤S603中的“将当前训练轮次加一”的动作;客户端200可以在步骤S604中判断当前的骨干网络是否已经满足预设条件(比如已经收敛、达到了预设精度、连续几个迭代轮次(epoch)的精度不再上升、训练时长达到预设时长等等),如果满足预设条件则可以转至步骤S610,否则转至步骤S605。
S605、客户端200向服务端100发送本地网络权重。
在可能的实施例中,客户端200在上传本地网络权重之前,可以先对本地网络权重进行加密,然后将加密后的本地网络权重发送给服务端100;相应的,当服务端100接收到客户端200上传的加密后的本地网络权重之后,需要对其进行解密。关于加密方式,本申请不具体限定,比如可以采用同态加密技术。
S606、服务端100对各个客户端200发送的本地网络权重进行聚合,得到聚合网络权重,将当前聚合轮次加一。
具体来说,在当前的聚合轮次中,服务端100会分别收到各个客户端200上报的本地网络权重。这里的“各个客户端200”指的是参与本次联邦学习任务并且还没有退出第一阶段的客户端200,还包括刚刚退出第一阶段的客户端200(即刚执行了步骤S610的客户端200,服务端100刚收到该客户端200退出第一阶段的信息以及该客户端200上传的本地网络权重)。当服务端100接收到所有这些客户端200的本地网络权重后,便可以对这些客户端200的本地网络权重进行聚合,也就是说,服务端100会对没有退出第一阶段以及刚退出第一阶段的这些客户端200的本地网络权重进行联邦聚合。聚合完成后便得到一组聚合网络权重(即聚合后的网络权重),然后服务端100将当前聚合轮次加1。
在可能的实施例中,服务端100可以采用模型平均聚合算法、同步随机梯度下降(stochastic gradient descent,SGD)聚合算法或者异步聚合算法等方式进行聚合,本申请不具体限定。
S607、服务端100判断当前聚合轮次是否达到预设聚合轮次,如果是则转至步骤S611,如果否则转至步骤S608。
在可能的实施例中,服务端100可以不记录当前聚合轮次,即没有步骤S601中的“初始化当前聚合轮次”的动作,同时步骤S603中也没有“将当前聚合轮次加一”的动作;服务端100可以在步骤S607中判断服务端100本地的骨干网络(其网络权重为上一步骤S606中得到的聚合网络权重)是否已经达到预设要求,比如已经收敛、达到了预设精度、连续几个迭代轮次的精度都不再上升等等,如果达到预设要求则可以转至步骤S611,否则转至步骤S608。
S608、服务端100将聚合网络权重发送给客户端200。
需要说明的是,步骤S608中的客户端200指的是:参与本次联邦学习任务并且还没有退出第一阶段的所有客户端200。每个还没有退出第一阶段的客户端200均会收到服务端100发送的本地网络权重;如果某个客户端200已经退出了第一阶段的训练,那么服务端100便不会再把聚合网络权重发送给该客户端200。
S609、客户端200使用聚合网络权重更新骨干网络,返回步骤S603。
也就是说,当客户端200接收到服务端100发送的聚合网络权重后,用聚合网络权重更新本地的骨干网络的网络权重,然后返回到步骤S603。
S610、客户端200向服务端100发送本地网络权重,退出第一阶段的训练。
也就是说,如果某个客户端200的当前训练轮次已经达到了预设第一阶段退出轮次,则该客户端200将步骤S603中得到的本地网络权重上报给服务端100,并且向服务端100发送退出第一阶段的信息。
需要说明的是,当服务端100接收到该客户端200的本地网络权重以及退出第一阶段的信息时,可以对该客户端200做相应的记录,比如将该客户端200标记为已经退出第一阶段的客户端200,于是,服务端100在当前聚合轮次中得到的聚合网络权重不会再下发给该客户端200,服务端100之后也不会再等待该客户端200上报本地网络权重。
S611、服务端100结束第一阶段的训练。
需要说明的是,当服务端100确定当前聚合轮次已经达到预设聚合轮次时,便可以结束第一阶段的训练,将最后一次得到的一组聚合网络权重作为骨干网络的预训练网络权重,即骨干网络经过第一阶段的预训练之后确定的网络权重。这里将网络权重为预训练网络权重的骨干网络称为预训练骨干网络,它将用于后续第二阶段的训练。
综上所述,在本申请提供的模型训练方法的第一阶段中,参与同一联邦学习任务的各个客户端200分别利用了本地的无标签数据对本地的骨干网络进行自监督训练,并分别将训练得到的本地网络权重上传给服务端100;服务端100对各个客户端200上传的本地网络权重进行聚合得到聚合网络权重,然后下发给各个客户端200,以更新各个客户端200本地的骨干网络的参数;经过上面的多次循环,服务端100将最后一次得到的聚合网络权重作为骨干网络的预训练网络权重,它将用于第二阶段的训练、迁移到各个客户端200的具体任务上。
可以理解的是,参与同一联邦学习任务的这些客户端200存在多个不同的任务需求,用不同客户端200本地的不同任务匹配的无标签数据对骨干网络进行联合训练,最终得到的预训练骨干网络(其网络权重为上述预训练网络权重)对这些任务都有一定的泛化能力、具有比较强的特征提取能力,对所有客户端200都有具有一定的价值,从而能够迁移到各个客户端200的具体任务上。而且,无标签数据较容易获得,用大量的无标签数据对骨干网络进行预训练,可以提升骨干网络的效果。
上述第一阶段结束之后,服务端100可以开始第二阶段的训练。
需要说明的是,由于本申请实施例中的模型训练方法的第二阶段,需要利用有标签数据进行有监督训练,因此,参与第二阶段的各个客户端200都必须存在有标签数据。也就是说,某个参与了第一阶段训练的客户端200,它必须有前述N个任务中的至少一个任务对应的有标签数据,才能继续参与到第二阶段的训练中。
例如,如图3至图5所示,因为第一客户端、第二客户端和第四客户端都具备任务A、任务B和任务C中的至少一个任务对应的有标签数据,所以它们都能参与到接下来的第二阶段的训练。因为第三客户端和第五客户端不具备任务A、任务B或任务C中的任何一个任务对应的有标签数据,所以它们在参与完前述第一阶段的训练之后,无法继续参与后续第二阶段的训练。
请参见图7,图7是本申请实施例提供的一种模型训练方法的第二阶段的流程示意图,可以包括如下步骤:
S701、服务端100生成客户端200的第二阶段网络,第二阶段网络包括一个或多个任务网络,向客户端200发送第二阶段网络。
其中,上述“客户端200”指的是参与本次联邦学习任务并且能够参与到第二阶段的客户端200。需要说明的是,因为参与第二阶段的这些客户端200所执行的动作是类似的,所以这里直接以其中的某个客户端200为例进行描述,但并不代表只能有一个客户端200。
上述“客户端200的第二阶段网络”,指的是该客户端200在第二阶段中需要进行训练的人工神经网络。应理解,每个参与第二阶段的客户端200都会收到服务端100发送的一个第二阶段网络,不同客户端200收到的第二阶段网络可以相同,也可以不同,由它们的任务需求以及本地数据的情况决定。
具体来说,服务端100基于参与本次联邦学习任务的各个客户端200的基础信息,可以确定哪些客户端200上存在有标签数据,还可以确定它们本地的有标签数据分别对应哪些具体任务。然后,针对上述每一个存在有标签数据的客户端200,服务端100根据该客户端200本地的有标签数据与任务的对应关系,在骨干网络(通过步骤S611的预训练网络权重初始化)的基础上添加具体任务对应的head网络(即任务对应的网络,简称任务网络),从而得到该客户端200的第二阶段网络。某个客户端200的第二阶段网络包括骨干网络、该客户端200具有的有标签数据所对应的各个任务对应的网络。其中,骨干网络用于特征提取,它的输出作为各个任务对应的网络的输入;任务网络用于基于骨干网络提取的特征输出该任务的结果。然后,服务端100将每个客户端200的第二阶段网络分别发送给对应的客户端200。
例如,如图3至图5所示,服务端100根据第一客户端200上传的基础信息,可以确定第一客户端拥有任务A对应的有标签数据,还有任务B对应的有标签数据。如图8所示,服务端100根据第一客户端所拥有的有标签数据与任务的对应关系,在骨干网络的基础上添加任务A对应的网络层(简称任务网络A)以及任务B对应的网络层(简称任务网络B),从而得到第一客户端对应的第二阶段网络。可以看出,该第二阶段网络是一个多任务模型,然后服务端100将上述第二阶段网络发送给第一客户端。如图9所示,第一客户端上于是就有了任务网络A和任务网络B。同理,第四客户端可以获得任务网络A和任务网络B,用于第二阶段的训练。需要说明的是,虽然第一客户端和第四客户端上都有任务网络A,它们的任务网络A的结构系统,但网络权重不一定相同。
再如,如图3至图5所示,服务端100根据第二客户端的基础信息,可以确定第二客户端具有任务B对应的有标签数据。服务端100根据第二客户端所拥有的有标签数据与任务的对应关系,在骨干网络的基础上添加任务B对应的网络(简称任务网络B),从而得到第二客户端对应的第二阶段网络。显然,该第二阶段网络是一个单任务模型,其对应的任务只有任务B,然后服务端100把生成的上述第二阶段网络发送给第二客户端。如图9所示,第二客户端上于是就有了任务网络B。
在可能的实施例中,服务端100可以根据自身存储的有标签数据与任务的对应关系,生成服务端100对应的第二阶段网络,即服务端100在第二阶段中需要进行训练的网络,服务端100在第二阶段中同样可以利用自身存储的有标签数据对其进行有监督训练。
例如,如图3至图5所示,服务端100具有任务B对应的有标签数据以及任务C对应的有标签数据,因此,服务端100根据其所拥有的有标签数据与任务的对应关系,在步骤S611中所述的预训练骨干网络的基础上添加任务B对应的网络层和任务B对应的网络层,从而得到服务端100对应的第二阶段网络,该第二阶段网络是一个多任务模型,其对应的具体任务包括任务B和任务C,服务端100在第二阶段中可以利用上述有标签数据对其进行训练。如图9所示,服务端100上于是也有了任务网络B和任务网络C。
由上述几个实施例可知,对于某个任务来说:如果只有服务端100上存在与其匹配的有标签数据,则只有服务端100上的第二阶段网络具有该任务对应的网络,只能由服务端100利用该任务匹配的有标签数据对该任务对应的网络进行训练;如果服务端100和至少一个客户端200上存在该任务匹配的有标签数据,则服务端100和上述客户端200的第二阶段网络均包含该任务对应的网络层,在后面的训练过程中,服务端100需要对上述客户端200上传的该任务对应的网络的权重以及服务端100自身训练得到的该任务对应的网络的权重进行聚合,从而更新该任务对应的所有网络的参数;如果只有一个或多个客户端200上存在该任务匹配的有标签数据,则只有上述客户端200的第二阶段网络存在该任务对应的网络,在后面的训练中,服务端100需要对上述客户端200上传的该任务对应的网络的权重进行聚合,从而该任务对应的所有网络的权重。
在一种可能的实施例中,服务端100发送给客户端200的第二阶段网络中的骨干网络,并没有使用第一阶段中得到的预训练网络权重进行初始化;因此,在服务端100向客户端200发送第二阶段网络之后,服务端100还需要把预训练网络权重发送给客户端200,以便该客户端200使用预训练网络权重对其接收到的第二阶段网络中的骨干网络进行初始化,在此之后才能用本地的有标签数据对第二阶段网络进行训练。
在又一种可能的实施例中,服务端100生成客户端200的第二阶段网络时,可以先使用预训练网络权重对该第二阶段网络中的骨干网络进行初始化,然后再把该第二阶段网络发送给该客户端200。于是,服务端100无需单独发送预训练网络权重给客户端200,客户端200也不需要自行使用预训练网络权重对接收到的第二阶段网络中的骨干网络进行初始化。
由上述两种实施例可知,各个客户端200可以使用预训练网络权重自行初始化第二阶段网络中的骨干网络,服务端100也可以对第二阶段网络中的骨干网络初始化好之后再下发给客户端200,本申请不具体限定。若无特殊说明,下文皆以后者为例进行描述,于是,各个客户端200收到的第二阶段网络中的骨干网络已经是经过预训练网络权重初始化之后的网络。
在可能的实施例中,服务端100可以根据参与本次联邦学习任务的所有客户端200的任务需求生成聚合模型,聚合模型可用于网络权重的聚合。其中,聚合模型是一个多任务模型,包括骨干网络(通过预训练网络权重初始化)和本次联邦学习任务中针对的所有具体任务各自对应的网络,即聚合模型是一个针对所有客户端200任务的共享backbone的多头(即多个任务网络)模型。
在可能的实施例中,服务端100可以在前述步骤S601中就确定各个客户端200的第二阶段网络,然后将各个客户端200的第二阶段网络分别发送给对应的客户端200。于是,对于具有第二阶段网络的各个客户端200,它们在图6的实施例中可以只针对第二阶段网络中的骨干网络部分进行第一阶段的训练;在步骤S701中,服务端100不需要再向各个客户端200发送第二阶段网络,只需要把步骤S611中得到的预训练网络权重发送给具有第二阶段网络的各个客户端200,这些客户端200分别可以根据预训练网络权重更新第二阶段网络中的骨干网络,然后接着执行步骤S702。
在可能的实施例中,服务端100不需要生成第二阶段网络后再发给客户端200,服务端100可以将任务网络以及预训练网络权重发送给客户端200,然后客户端200根据本地的骨干网络以及接收到的预训练网络权重和任务网络,在本地自动生成相应的第二阶段网络。
S702、客户端200使用本地的有标签数据对第二阶段网络进行训练,经过预设迭代轮次的训练之后得到本地网络权重。
其中,客户端200本地可以有一个或者多个任务对应的有标签数据;“预设迭代轮次”可以根据客户端200拥有的有标签数据的数据量、训练第二阶段网络采用的批尺寸、客户端200的显存容量、算力等因素来确定,本申请不具体限定。由前文的描述可知,某个客户端200的第二阶段网络包括骨干网络(用预训练参数初始化)以及该客户端200本地的有标签数据对应的所有任务各自对应的网络(即一个或多个任务网络)。
在一种可能的实施例中,客户端200可以固定第二阶段网络中的骨干网络,即骨干网络的网络权重固定在第一阶段中得到的预训练网络权重,在客户端200使用本地的有标签数据对第二阶段网络进行训练时,仅更新第二阶段网络中的任务网络的权重。因此,这时候的“本地网络权重”可以只包含第二阶段网络中的任务网络的权重,而不包括骨干网络的权重,也就是说,客户端200后面只需要向服务端100上报自己在本地训练的任务网络的权重。同理,服务端100在训练本地的第二阶段网络时,也可以固定骨干网络的权重。
在又一种可能的实施例中,客户端200可以不固定第二阶段网络中的骨干网络的权重,在客户端200使用本地的有标签数据对第二阶段网络进行训练时,对整个第二阶段网络的权重进行更新,即第二阶段网络中的骨干网络以及任务网络的权重都进行更新。因此,这时候的“本地网络权重”包含第二阶段网络中的骨干网络的权重以及任务网络的权重。同理,服务端100在训练本地的第二阶段网络时,也可以不固定骨干网络的权重。
由上述两种实施例可知,客户端200/服务端100在训练本地的第二阶段网络时,可以固定第二阶段网络中的骨干网络的权重,也可以不固定骨干网络的权重,本申请不具体限定。若无特殊说明,下文皆以固定骨干网络的权重(固定为预训练网络权重)的情况为例进行描述,于是,客户端200上传给服务端100的本地网络权重仅包含该客户端200的第二阶段网络中的任务网络的权重。
承接步骤S701中的例子,如图3至图5所示,因为第一客户端具有任务A对应的有标签数据和任务B对应的有标签数据,所以在第一客户端收到的第二阶段网络中包括骨干网络、任务网络A以及任务网络B。第一客户端可以固定其第二阶段网络中的骨干网络的权重(即固定为预训练网络权重),利用本地的有标签数据对第二阶段网络进行训练(或者说是对第二阶段网络中的任务网络进行训练)。第一客户端使用任务A对应的有标签数据对第二阶段网络进行训练时,只更新第二阶段网络中的任务网络A的权重;用任务B对应的有标签对第二阶段网络进行训练,只更新第二阶段网络中的任务网络B的权重。经过预设迭代轮次的训练之后,第一客户端将任务网络A的权重和任务B网络的权重作为本地网络权重,以上传至服务端100。
需要说明的是,客户端200只需要对第二阶段网络中的还没有收敛的任务网络进行训练,向服务端100上传自身训练了的任务网络的权重;如果客户端200的第二阶段网络中的某个任务网络已经收敛了,该客户端200便可以停止训练该任务网络,即该客户端200的第二阶段网络中的该任务网络退出第二阶段的训练。在可能的实施例中,客户端200可以向服务端100发送通知消息,以表明该客户端200上的哪些任务网络是已经收敛的,相应的,服务端100可以记录该客户端200上的哪些任务网络收敛了,不再需要下发聚合后得到的该任务网络的权重至该客户端200。
S703、客户端200判断第二阶段网络中的所有任务网络是否都已收敛,如果是则转至步骤S709,如果否则转至步骤S704。
继续承接上例,如图9所示,第一客户端的第二阶段网络中包含两个任务网络,分别是任务A对应的任务网络A和任务B对应的任务网络B。如果第一客户端确定上述两个任务网络都收敛了,则转至步骤S709,第一客户端将最后一次得到的本地网络权重发送给服务端100,并且向服务端100发送退出第二阶段的通知消息,相应的,服务端100可以记录该客户端200是已经退出第二阶段的客户端200。如果上述两个任务网络中至少有一个任务网络还没有收敛,则转至S704,第一客户端将此次训练得到的本地网络权重发送给服务端100。
S704、客户端200向服务端100发送本地网络权重。
在一种可能实施例中,在步骤S702中客户端200是固定第二阶段网络中的骨干网络的权重进行训练的,于是在步骤S704中,客户端200向服务端100上传的本地网络权重中仅包含任务网络的权重(可以是一个或者多个任务网络的权重)。
在另一种可能的实施例中,在步骤S702中客户端200不固定第二阶段网络中的骨干网络,于是在步骤S704中,客户端200向服务端100上传的本地网络权重包含本地的骨干网络的权重以及任务网络的权重。
S705、服务端100对各个客户端200发送的本地网络权重进行聚合,得到聚合网络权重。
其中,上述客户端200包括还没有退出第二阶段的客户端200以及刚刚退出第二阶段的客户端200。刚刚退出第二阶段的客户端200指的是刚执行了步骤S709的客户端200,服务端100刚收到该客户端200退出第二阶段的消息及其最后一次上传的本地网络权重,所以服务端100还需要使用其最后一次上传的本地网络权重进行联邦聚合;服务端100对该客户端200上传的网络权重以及其他客户端200的本地网络权重聚合后,不再把聚合网络权重发送给该客户端200,因为该客户端200已经退出了第二阶段。
在一种可能的实施例中,对于某个任务来说,如果只有服务端100上存在与其匹配的有标签数据,那么只有服务端100上的第二阶段网络包括该任务对应的网络,所以只有服务端100会对该任务对应的网络进行训练。服务端100使用该任务对应的有标签数据对第二阶段网络进行训练时,更新该任务对应的网络的权重。当此任务对应的网络收敛时,该任务对应的网络退出第二阶段的训练(或者称该任务退出第二阶段的训练),该任务对应的网络已经训练好。
在又一种可能的实施例中,对于某个任务来说,如果服务端100和至少一个客户端200上都存在与其匹配的有标签数据,那么它们本地的第二阶段网络中都包含该任务对应的网络,它们可以分别利用本地的与该任务匹配的有标签数据训练本地的该任务对应的网络,这些客户端200各自上传的本地网络权重中可以包括该任务对应的网络的权重。同样的,服务端100使用本地的与该任务匹配的有标签数据对本地的第二阶段网络进行训练,也会得到该任务对应的网络的一组权重。然后,服务端100可以对各个客户端200以及服务端100训练得到的该任务网络的权重进行聚合,以更新该任务对应的所有网络的权重。当某个客户端200(或者是服务端100)上的该任务对应的网络收敛了,它就可以停止对本地的该任务对应的网络进行训练,也就是说,它本地的该任务对应的网络退出了第二阶段的训练。当所有客户端200和服务端100上的该任务对应的网络都已经收敛,该任务就可以退出第二阶段的训练,将最后一次聚合后得到的该任务对应的网络权重作为该任务网络训练好的权重。
在又一种可能的实施例中,对于某个任务来说,如果只有某些客户端200上具有与其匹配的有标签数据,服务端100上没有该任务匹配的有标签数据,则上述这些客户端200的第二阶段网络中都包含该任务对应的网络,只有这些客户端200会对该任务对应的网络进行训练。这些客户端200可以分别利用本地的与该任务匹配的有标签数据训练第二阶段网络中的该任务对应的网络、更新该任务对应的网络的权重,然后分别将该任务对应的网络的权重上传至服务端100,以进行联邦聚合,服务端100将聚合后的结果分别发送给这些客户端200,从而更新这些客户端200本地的该任务对应的网络的权重。同样的,当某个客户端200上的该任务对应的网络收敛了,它就可以停止对本地的该任务对应的网络进行训练,也就是说,它本地的该任务对应的网络退出了第二阶段的训练。当所有客户端200上的该任务对应的网络都已经收敛,该任务就可以退出第二阶段的训练,将最后一次聚合后得到的该任务对应的网络权重作为该任务网络训练好的权重。
S706、服务端100判断所有客户端200是否都已经退出第二阶段的训练,如果是则转至步骤S710,如果否则转至步骤S707。
在一种可能的实施例中,如果服务端100没有参与第二阶段的训练,即服务端100没有生成相应的第二阶段网络用于第二阶段的训练,只有多个客户端200参与了第二阶段的训练,那么,服务端100判断所有这些客户端200是否都已经退出第二阶段的训练,如果是则转至步骤S710,如果否则转至步骤S707。
在又一种可能的实施例中,如果服务端100参与了第二阶段的训练,即服务端100上生成了相应的第二阶段网络用于第二阶段的训练,那么服务端100需要判断自身以及所有参与第二阶段的客户端200是否都已经退出第二阶段的训练,如果是则转至步骤S710,如果否则转至步骤S707。
需要说明的是,服务端100/某个客户端200的第二阶段网络中可以包含一个或多个任务网络;如果服务端100和所有参与第二阶段的客户端200上的所有任务网络都已收敛,那么服务端100就可以转至步骤S710,即结束第二阶段的训练;否则转至步骤S707。换句话说,如果本次联邦学习任务中针对的所有任务都已经退出了第二阶段(所有任务对应的所有任务网络都已经收敛),服务端100就可以结束第二阶段的训练。
S707、服务端100向客户端200发送聚合网络权重。
需要说明的是,这里的客户端200指的是还没有退出第二阶段的客户端200,服务端100只会对还没有推出第二阶段的客户端200发送相应的聚合网络权重。服务端100向某个客户端200发送的聚合网络权重,指的是该客户端200上还未退出第二阶段训练的任务网络的权重(可以是一个或多个任务网络的权重),不同客户端200获得的聚合网络权重可能不同。
例如,如图8所示,第一客户端上的第二阶段网络包括任务A对应的任务网络A和任务B对应的任务网络B,并且任务网络A已经收敛,因此,服务端100只会把聚合后得到的任务网络B的权重发送给第一客户端,以便第一客户端对其本地的任务网络B的权重进行更新,而不再下发聚合后得到的任务网络A的权重给第一客户端。第二客户端上的第二阶段网络包括任务网络B,还未收敛,于是服务端100发送给第二客户端的聚合网络权重包括聚合后得到的任务网络B的权重,以使得第二客户端对其本地的任务网络B进行更新。
S708、客户端200使用聚合网络权重更新第二阶段网络。
应理解,客户端200收到的服务端100下发的聚合网络权重,包括该客户端200上还未退出第二阶段的任务网络的权重,客户端200使用聚合网络权重更新本地的第二阶段网络中的这些任务网络的权重,然后返回到步骤S702,继续使用本地的有标签数据对这些任务网络进行训练。
S709、客户端200向服务端100发送本地网络权重,退出第二阶段的训练。
也就是说,如果某个客户端200的第二阶段网络中的所有任务网络都已收敛,那么该客户端200向服务端100发送最后一次获得的本地网络权重(即最后收敛的任务网络的权重),并且通知服务端100自身退出第二阶段的训练。于是,该客户端200不再训练本地第二阶段网络,服务端100也不会再把聚合网络权重发送给该客户端200。
S710、服务端100结束第二阶段的训练。
应理解,在第二阶段的训练结束后,本次联邦学习任务中针对的每个任务都得到了一组对应的训练好的网络权重。
承接前文例子,如图3至图5所示,参与某个联邦学习任务的客户端200总共有五个,分别是第一客户端、第二客户端、第三客户端、第四客户端和第五客户端,在它们当中总共有三个不同的任务需求,分别是任务A、任务B和任务C,即本次联邦学习任务所针对的具体任务。在步骤S710完成之后,服务端100上就获得了任务A、任务B以及任务C各自对应的三组训练好的网络权重(分别是任务A、任务B和任务C对应的网络的权重)。
S711、服务端100根据客户端200的任务需求生成该客户端200的个性化模型,向该客户端200发送该个性化模型。
需要说明的是,上述客户端200指的是参与本次联邦学习任务的任意一个客户端200,服务端100会分别根据各个客户端200的任务需求,为每个客户端200都生成对应的个性化模型,然后发送给相应的客户端200,以满足每个客户端200的任务需求。
应理解,不同客户端200的个性化模型可以是相同的,也可以是不同的,由它们各自的任务需求来决定。如果两个客户端200的任务需求相同,则它们获得的个性化模型可以相同,都包含骨干网络以及它们的任务需求对应的网络(其网络权重是步骤S710中训练好的)。当然,即使两个客户端200的任务需求相同,它们的个性化模型也可以不相同,比如,对应第一客户端200和第二客户端200都有任务X和任务Y的需求,但是第一客户端所需求的个性化模型是单任务模型,而第二客户端所需求的个性化模型是多任务模型,于是,第一客户端可以得到两个个性化模型,其中一个包括骨干网络和任务X对应的网络(其网络权重是步骤S710中训练好的任务X对应的网络权重),另一个包含骨干网络和任务Y对应的网络(其网络权重是步骤S710中训练好的任务Y对应的网络权重),而第二客户端的个性化模型是一个多任务模型,包含骨干网络、任务X对应的网络以及任务Y对应的网络。
举例来说,第一客户端具有任务A和任务B的需求,服务端100可以根据第一客户端的任务需求为其生成个性化模型:
第一种情况,第一客户端的个性化模型可以是一个多个任务模型,包括骨干网络、任务网络A以及任务网络B,其中,任务网络A和任务网络B的权重都第二阶段的训练好的。如果第二阶段采用的是固定骨干网络的权重的训练方法,则这里的骨干网络的权重是步骤S611中所述的预训练网络权重;如果第二阶段采用的是不固定骨干网络的权重的训练方法,则这里的骨干网络权重是第二阶段的联邦聚合得到的骨干网络权重。如图8所示,骨干网络用于特征提取,骨干网络输出的特征分别作为任务网络A和任务网络B的输入,任务网络A用于输出任务A的结果,任务网络B用于输出任务B的结果。
第二种情况,个性化模型还可以是单任务模型,所以第一客户端的个性化模型可以有两个,其中一个包括骨干网络以及任务网络A,另一个包括骨干网络以及任务网络B,这些任务网络的权重都是第二阶段训练好的。然后,服务端100将第一客户端的这些个性化模型发送给第一客户端,从而满足了第一客户端的任务需求。服务端100为其他客户端200生成个性化模型的方式同理,这里不重复。
在可能的实施例中,服务端100在向客户端200发送个性化模型之前,可以先对个性化模型进行模型压缩(包括模型剪枝、知识蒸馏、量化等),然后将压缩后的个性化模型发送给客户端200。还可以对个性化模型进行加密,将个性化模型及密钥发送给客户端200,客户端200需要利用密钥才能使用该个性化模型来执行相应的任务。
综上所述,本申请实施例提供的模型训练方法基于传统的横向联邦学习技术,首先通过利用各个客户端200本地的无标签数据,训练出一个对不同客户端200的不同任务都有价值的一个骨干网络(其网络权重为预训练网络权重)。应理解,无标签数据相对于有标签数据较容易获得,经过大量的无标签数据训练得到的这个骨干网络,对每个客户端200的任务场景都具有一定的泛化能力,特征提取的效果较好。接着,在预训练得到的该骨干网络的基础上添加具体任务对应的网络并下发给客户端200,各个客户端200分别利用本地的有标签数据对任务网络进行训练,然后将本地得到的任务网络的权重交由服务端100进行联邦聚合,服务端100聚合后的结果发送给相应的客户端200,以更新客户端200本地的任务网络的权重。经过多次循环,最终各个任务网络都可以得到一组训练好的权重,服务端100据此为每个客户端200生成相应的个性化模型并下发,从而满足不同客户端200的不同任务需求。
可以理解的是,无标签数据相对于有标签数据较容易获得,客户端200本地的数据大部分都是没有经过人工标注的无标签数据。本申请通过利用各个客户端200本地的大量无标签数据对骨干网络进行联邦自监督学习,可以得到一个对所有客户端200的任务都有一定价值的预训练骨干网络。然后,在预训练骨干网络的基础上添加不同任务对应的网络,这时候,只需要使用少量的有标签数据即可完成对各个任务网络的训练,训练效率较高。
本申请的模型训练方法能够为不同客户端200的不同任务进行联合建模,拓宽了联邦学习的应用场景。对于具有不同任务需求的客户端200来说,虽然他们拥有的是不同任务所匹配的训练数据,但本申请中的模型训练方法却能够将这些不同任务对应的数据利用起来进行联合建模,各客户端200的本地数据得到了充分利用,解决了传统的联邦学习方法只支持相同任务的联合建模的问题;而且,不同客户端200的不同任务需求都能在一次联邦学习任务中得到满足,每个客户端200最终都能获得属于它的个性化模型。
还应理解,本申请提供的模型训练方法,可以应用于诸如医疗、金融、智能安防、自动驾驶、工业质检等场景下的机器学习模型的训练,本申请不具体限定。
请参见图10,图10是本申请实施例提供的又一种模型训练方法的流程示意图,该方法用于第一客户端(即某个客户端200),可以包括如下步骤:
S1001、将第一客户端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络得到第一特征,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第一骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果。
其中,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务。
需要说明的是,上述“第一骨干网络中的第一网络权重”,即为步骤S611中所述的预训练网络权重,关于预训练骨干网络是如何获得的,请参见图6的实施例,这里不过多介绍。由前文描述可知,因为各个客户端200是分别利用其本地的无标签数据对本地的骨干网络进行训练的,服务端100负责对它们在本地得到训练结果(即前文所述的本地网络权重)进行聚合,所以最终得到的预训练骨干网络权重,其实可以理解为是参考了多个客户端200分别使用本地的无标签数据对本地的骨干网络进行训练的训练结果。
还需要说明的是,上述“第一模型”,即为步骤S701中所述的第一客户端的第二阶段网络。该第一模型包括第一骨干网络(其网络权重为第一网络权重)和第一任务网络(即第一任务对应的网络)。
在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。也就是说,第一网络权重综合了不同任务对应的无标签数据的训练结果。
需要说明的是,第一客户端和第二客户端即为前文描述的参与同一联邦学习任务的客户端200,第一任务和第二任务是该联邦学习任务中所针对的两个具体任务,二者属于相同的机器学习领域,具有一定的相关性。关于参与同一联邦学习任务的客户端200是如何确定的,请参见步骤S601中的相关内容,这里不重复。
在可能的实施例中,上述第一网络权重是服务端100根据上述第一结果和第二结果聚合得到的。此实施例的具体内容请参见步骤S606中的相关部分,这里不重复。
S1002、通过第一特征对第一模型中的第一任务网络进行训练。
在可能的实施例中,“通过第一特征对第一模型中的第一任务网络进行训练”包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据该预测值和第一客户端中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。
也就是说,将第一骨干网络输出的第一特征输入第一任务网络,可以得到相应的预测值,然后将该预测值与之前输入的有标签数据的标签(真实值)进行比较,计算损失函数值,再根据损失函数值对第一任务网络的参数进行更新,从而得到第二网络权重。
应理解,这里只更新了第一模型中的第一任务网络的网络权重,没有更新第一模型中的第一骨干网络的网络权重,第一骨干网络的网络权重固定为第一网络权重。于是,这里的第二网络权重指的仅仅是训练后得到的第一任务网络的网络权重,不包括第一骨干网络的网络权重。关于固定骨干网络的网络权重的训练方法,请参见步骤S702中的相关描述,这里不过多介绍。
在可能的实施例中,在第一客户端得到第二网络权重之后,该方法还包括:将第二网络权重发送给服务端;接收服务端发送的第三网络权重,其中,第三网络权重参考了第二网络权重,以及,使用第三客户端中的第一任务对应的有标签数据对第三模型进行训练的训练结果,第三模型包括第三骨干网络和第二任务网络,第三模型用于执行第一任务;使用第三网络权重更新第一任务网络。
需要说明的是,上述“第三模型”即为步骤S701中所述的第三客户端的第二阶段网络,该第二阶段网络包括第三骨干网络和第二任务网络(即第一任务对应的网络)。同第一客户端一样,这里的第三客户端也可以利用它本地的第一任务对应的有标签数据,对第三客户端上的第三模型进行训练,更新第二任务网络的网络权重,然后第三客户端将训练得到的结果(包括第二任务网络的网络权重)发送给服务端100。然后,服务端100可以对第一客户端上传的第二网络权重和第三客户端上传的网络权重进行聚合(当然还可以有其他客户端上传的网络权重),从而得到第三网络权重。服务端100将第三网络权重发送给第一客户端,于是第一客户端就可以用第三网络权重去更新第一模型中的第一任务网络的网络权重。服务端100也可以将第三网络权重发送给其他客户端200,以更新它们的本地模型。
上述实施例的具体内容,请参见步骤S704至S708中的相关描述,这里不过多介绍。
在可能的实施例中,上述“根据预测值和第一客户端中的第一任务对应的有标签数据更新第一任务网络”可以包括:根据预测值和第一客户端中的第一任务对应的有标签数据,更新第一任务网络和第一骨干网络;上述“使用第三网络权重更新第一任务网络”可以包括:使用第三网络权重更新第一任务网络和第一骨干网络。
也就是说,第一客户端使用本地的第一任务对应的有标签数据对第一模型进行训练时,可以不固定第一模型中的第一骨干网络的网络权重(不固定在第一网络权重,即预训练网络权重),不仅第一任务网络的网络权重进行更新,而且第一骨干网络的网络权重也进行更新。关于不固定骨干网络的网络权重的训练方法,请参见前述步骤S702中的相关内容,这里不过多介绍。
在可能的实施例中,第三网络权重还参考了使用服务端中的第一任务对应的有标签数据对第四模型进行训练的训练结果,第四模型包括第四骨干网络和第三任务网络,第四模型用于执行第一任务。
需要说明的是,上述“第四模型”,即为步骤S701中所述的服务端的第二阶段网络,包括第四骨干网络和第三任务网络(也是与第一任务对应的网络)。也就是说,如果服务端上也具有第一任务对应的有标签数据,那么,服务端也可以利用本地的第一任务对应的有标签数据对第四模型进行训练,更新第三任务网络的网络权重,得到的训练结果也可以用于联邦聚合,所以说,第三网络权重还可以参考服务端的上述训练结果。此实施例的其他内容请参见步骤S705中的相关部分,这里不过多介绍。
综上所述,本申请实施例中的第一客户端可以利用其本地的无标签数据训练本地的骨干网络(即第一骨干网络),然后将得到的训练结果发送给服务端。同样的,其他客户端也可以利用本地的无标签数据训练本地的骨干网络,然后将训练结果发送给服务端。服务端可以对第一客户端发送的本地骨干网络的训练结果以及其他客户端发送的本地骨干网络的训练结果进行聚合,然后将聚合后得到的网络权重(即第一网络权重)下发给第一客户端,第一客户端可以使用第一网络权重更新第一模型中的第一骨干网络。这时候第一骨干网络的第一网络权重,既参考了第一客户端使用本地的无标签数据对第一骨干网络进行训练的训练结果(即第一结果),还参考了其他客户端使用其本地的无标签数据对本地的骨干网络进行训练的训练结果(如第二客户端的第二结果),相当于联合利用了不同客户端本地的无标签数据对第一骨干网络进行训练。这样的第一骨干网络(网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度,仅需少量的有标签数据即可完成训练。
接着,第一客户端可以使用本地的第一任务对应的有标签数据对第一模型进行训练,第一模型包括第一骨干网络(其网络权重为第一网络权重)和第一任务网络(即第一任务对应的网络)。第一客户端将本地的第一任务对应的有标签数据输入第一骨干网络,得到第一特征,然后通过第一特征对第一模型中的第一任务网络进行训练,得到第二网络权重,第一客户端可以将第二网络权重发送给服务端。同样的,其他客户端也可以分别利用本地的第一任务对应的有标签数据对它们本地的第一任务对应的网络进行训练,然后将训练结果发送给服务端。服务端可以将第一客户端上传的第二网络权重以及其他客户端上传的网络权重进行聚合,再将得到的第三网络权重发送给第一客户端,以更新第一客户端上的第一模型,提升第一模型的训练效果。可以理解的是,该第三网络权重相当于是学习了第一客户端以及其他客户端上的第一任务对应的有标签数据的知识,采用第三网络权重更新第一模型中的第一任务网络,可以加快第一任务网络的训练速度。然后,第一客户端还可以使用本地的第一任务对应的有标签数据,对更新后的第一模型继续进行训练。
请参见图11,图11是本申请实施例提供的又一种模型训练方法的流程示意图,该方法用于服务端100,可以包括如下步骤:
S1101、将服务端100中的第一任务对应的有标签数据输入第一模型中的第一骨干网络得到第一特征,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果。
其中,第二模型用于执行第一任务,第三模型用于执行第二任务,第一任务和第二任务是不同的任务。
需要说明的是,上述“第一模型”即为步骤S701中所述的服务端100的第二阶段网络。该第一模型包括第一骨干网络(其网络权重为第一网络权重)和第一任务网络(即第一任务对应的网络)。上述“第一网络权重”,即为步骤S611中所述的预训练网络权重,关于预训练骨干网络是如何获得的,请参见图6的实施例,这里不过多介绍。由前文描述可知,因为各个客户端200是分别利用其本地的无标签数据对本地的骨干网络进行训练的,服务端100负责对它们在本地得到训练结果(即前文描述的本地网络权重)进行聚合,所以最终得到的预训练骨干网络权重,其实可以理解为是参考了多个客户端200分别使用本地的无标签数据对本地的骨干网络进行训练的训练结果。
在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。
在可能的实施例中,第一骨干网络的网络权重是服务端100根据上述第一结果和第二结果聚合得到的。此实施例的具体内容请参见步骤S606中的相关部分,这里不重复。S1102、通过第一特征对第一模型中的第一任务网络进行训练。
在可能的实施例中,上述“通过第一特征对第一模型中的第一任务网络进行训练”可以包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据预测值和服务端中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。
也就是说,服务端100只更新了第一模型中的第一任务网络的网络权重,没有更新第一模型中的第一骨干网络的网络权重,第一骨干网络的网络权重固定为第一网络权重。于是,这里的第二网络权重指的仅仅是训练后得到的第一任务网络的网络权重,不包括第一骨干网络的网络权重。关于固定骨干网络的网络权重的训练方法,请参见步骤S702中的相关描述,这里不过多介绍。
在可能的实施例中,该方法还包括:接收第一客户端发送的第三网络权重,其中,第三网络权重是第一客户端使用第一客户端中的第一任务对应的有标签数据对第二模型进行训练的训练结果,第二模型包括第二骨干网络和第二任务网络;根据第三网络权重和第二网络权重聚合得到第四网络权重,使用第四网络权重更新第一任务网络。
需要说明的是,上述“第二模型”,即为图7实施例中所述的第一客户端的第二阶段网络,包括第二骨干网络以及第二任务网络。第一客户端上的第二任务网络和服务端上的第一任务网络都与第一任务对应,二者的结构相同。第一客户端也可以利用它本地的第一任务对应的有标签数据,对第一客户端上的第二模型进行训练,更新第二模型中的第二任务网络的网络权重,然后第一客户端可以将训练得到的第三网络权重发送给服务端100。然后,服务端100对第一客户端上传的第三网络权重以及自身训练得到的第二网络权重进行聚合(当然还可以有其他客户端上传的网络权重),从而得到第四网络权重。于是,服务端100可以根据第四网络权重更新第一模型中的第一任务网络,但不更新第一骨干网络的网络权重。
上述实施例的具体内容,请参见步骤图7的实施例的相关描述,这里不过多介绍。
在可能的实施例中,根据预测值和服务端中的第一任务对应的有标签数据更新第一任务网络,包括:根据预测值和服务端中的第一任务对应的有标签数据,更新第一任务网络和第一骨干网络;使用第四网络权重更新第一任务网络,包括:使用第四网络权重更新第一任务网络和第一骨干网络。
也就是说,服务端100使用本地的第一任务对应的有标签数据对第一模型进行训练时,可以不固定第一模型中的第一骨干网络的网络权重(不固定在第一网络权重,即预训练网络权重),不仅第一任务网络的网络权重进行更新,而且第一骨干网络的网络权重也进行更新。关于不固定骨干网络的网络权重的训练方法,请参见前述步骤S702中的相关内容,这里不过多介绍。
在可能的实施例中,该方法还包括:将第四网络权重发送给第一客户端,以使得第一客户端根据第四网络权重更新第二模型。
也就是说,服务端100聚合得到第四网络权重之后,还可以将其发送给第一客户端,于是第一客户端也可以利用第四网络权重更新第一客户端上的第二模型,提升第二模型的效果。在此之后,第一客户端可以继续使用本地的第一任务对应的有标签数据,对更新后的第二模型进行训练,还可以将训练后得到的训练结果再次发送给服务端100进行聚合。此实施例的具体内容,请参见步骤S707和S708中的相关部分,这里不过多介绍。
综上所述,本方案支持为不同客户端的不同任务进行联合建模,拓宽了联邦学习的应用场景,从而能够将各个客户端的本地数据充分利用起来。在本方案中,各个客户端的目标模型(如前文所述的个性化模型)均采用骨干网络和任务网络(与该客户端需求的任务对应)两部分来构成,其中,骨干网络用于特征提取,任务网络基于骨干网络提取的特征输出对应任务的结果。此时骨干网络作为各客户端的目标模型中的公共部分,便可以基于传统的横向联邦学习方法进行联合训练:各个客户端分别利用其本地的无标签数据对本地的骨干网络进行自监督训练,各客户端得到的训练结果由服务端聚合后再下发给各客户端,以更新各客户端本地的骨干网络;经过上面多次循环便可以得到训练好的骨干网络,这个训练好的骨干网络对所有客户端都有益。之后,各客户端再根据训练好的骨干网络及其本地的有标签数据对任务网络进行训练。可以理解的是,上述训练好的骨干网络相当于学习了多个客户端的本地数据的知识,所以特征提取效果较好,进而可以加快任务网络的训练速度,仅用少量有标签数据即可。
请参见图12,图12是本申请实施例提供的一种装置1200的结构示意图,该装置1200包括处理模块1201和训练模块1202。
处理模块1201用于:将装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络得到第一特征,其中,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是装置1200使用装置1200中的无标签数据对第一骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务;
训练模块1202用于:通过第一特征对第一模型中的第一任务网络进行训练。
在可能的实施例中,装置1200中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。在可能的实施例中,所述通过所述第一特征对所述第一模型中的第一任务网络进行训练,包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据预测值和装置1200中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。
在可能的实施例中,装置1200还包括发送模块1203和接收模块1204;发送模块1203用于:在得到第二网络权重之后,将第二网络权重发送给服务端100;接收模块用于:接收服务端100发送的第三网络权重,其中,第三网络权重参考了第二网络权重和第三结果,第三结果是第三客户端使用第三客户端中的第一任务对应的有标签数据对第三模型进行训练的训练结果,第三模型包括第三骨干网络和第二任务网络,第三模型用于执行第一任务;训练模块1202还用于:使用第三网络权重更新第一任务网络。
上述装置1200可以对应于图1中的客户端200,具体用于实现图6、图7或图10的模型训练方法中客户端200侧的实施例,请参见上文相关描述,这里不赘述。
需要说明的是,图12的实施例提供的装置1200,仅以上述各功能模块/单元的划分进行举例说明,在实际的应用中,可以根据需要而将上述功能分配由不同的功能模块/单元完成,即将装置1200的内部结构划分成其他不同的功能模块/单元,以完成以上描述的全部或者部分功能。
请参见图13,图13是本申请实施例提供的一种装置1300的结构示意图,该装置1300包括处理模块1301和训练模块1302。
处理模块1301用于:将装置1300中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,第二模型用于执行所述第一任务,第三模型用于执行第二任务,第一任务和所述第二任务是不同的任务。
训练模块1302用于:通过上述第一特征对第一模型中的第一任务网络进行训练。
在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。
在可能的实施例中,所述通过所述第一特征对所述第一模型中的第一任务网络进行训练,包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据预测值和装置1300中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。
在可能的实施例中,装置1300还包括接收模块1303和聚合模块1304;接收模块1303用于:接收第一客户端发送的第三网络权重,其中,第三网络权重是第一客户端使用第一客户端中的第一任务对应的有标签数据对第二模型进行训练的训练结果第二模型包括所述二骨干网络和第二任务网络;聚合模块1304用于:根据第三网络权重和第二网络权重聚合得到第四网络权重,使用第四网络权重更新第一任务网络。
在可能的实施例中,装置1300还包括发送模块1305,发送模块1305用于:将第四网络权重发送给第一客户端,以使得第一客户端根据第四网络权重更新第二模型。
上述装置1300可以对应于图1中的服务端100,具体用于实现图6、图7或图11的模型训练方法中服务端100侧的实施例,请参见上文相关描述,这里不赘述。
需要说明的是,图13的实施例提供的装置1300,仅以上述各功能模块/单元的划分进行举例说明,在实际的应用中,可以根据需要而将上述功能分配由不同的功能模块/单元完成,即将装置1300的内部结构划分成其他不同的功能模块/单元,以完成以上描述的全部或者部分功能。
图14是本申请实施例提供的一种设备1400的结构示意图。设备1400包括处理器1401、存储器1402以及通信接口1403,所述设备1400具体用于实现图6、图7或图10的模型训练方法中客户端200侧的任一实施例。其中,处理器1401、存储器1402以及通信接口1403可以通过内部总线1404相互连接,也可通过无线传输等其他手段实现通信。本申请实施例以通过总线1404连接为例,总线1404可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线、扩展工业标准结构(extended industry standardarchitecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(computeexpress link,CXL)总线、缓存一致互联协议(cache coherent interconnect foraccelerators,CCIX)总线等。总线1404可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1401可以由至少一个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器1401执行各种类型的数字存储指令,例如存储在存储器1402中的软件或者固件程序,它能使设备1400提供多种服务。
存储器1402用于存储程序代码,并由处理器1401来控制执行。存储器1402可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1402也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1402还可以包括上述种类的组合。存储器1402可以存储有程序代码,具体可以包括用于执行图6、图7或图10中的模型训练方法中客户端200侧的任一实施例的程序代码,这里不再进行赘述。
通信接口1403可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(peripheral component interconnect express,PCIe)总线接口)、有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他设备或模块进行通信。
上述设备1400可以应用于图1所示的联邦学习系统架构中,例如,可以是图1中的客户端200,用于执行图6、图7或图10的模型训练方法中的客户端200侧的动作。
需要说明的是,本实施例可以是通用的物理服务器实现的,例如,ARM服务器或者X86服务器,也可以是基于通用的物理服务器结合NFV技术实现的虚拟机实现的,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,本申请不作具体限定。应理解,图14所示的设备1400还可以是至少一个服务器构成的服务器集群,本申请不作具体限定。
还需要说明的,图14仅仅是本申请实施例的一种可能的实现方式,在实际的应用中,设备1400还可以包括更多或更少的部件,本申请不作具体限制。关于本申请实施例中未出示或未描述的内容,可参见前述图6、图7或图10的模型训练方法的实施例中的相关阐述,这里不再赘述。
图15是本申请实施例提供的一种设备1500的结构示意图。设备1500包括处理器1501、存储器1502以及通信接口1503,所述设备1500具体用于实现图6、图7或图11的模型训练方法中服务端100侧的任一实施例。其中,处理器1501、存储器1502以及通信接口1503可以通过内部总线1504相互连接,也可通过无线传输等其他手段实现通信。本申请实施例以通过总线1504连接为例,总线1504可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线、扩展工业标准结构(extended industry standardarchitecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(computeexpress link,CXL)总线、缓存一致互联协议(cache coherent interconnect foraccelerators,CCIX)总线等。总线1504可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1501可以由至少一个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器1501执行各种类型的数字存储指令,例如存储在存储器1502中的软件或者固件程序,它能使设备1500提供多种服务。
存储器1502用于存储程序代码,并由处理器1501来控制执行。存储器1502可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器1502也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1502还可以包括上述种类的组合。存储器1502可以存储有程序代码,具体可以包括用于执行图6、图7或图11中的模型训练方法中服务端100侧的任一实施例的程序代码,这里不再进行赘述。
通信接口1503可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(peripheral component interconnect express,PCIe)总线接口)、有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他设备或模块进行通信。
上述设备1500可以应用于图1所示的联邦学习系统架构中,例如,可以是图1中的服务端100,用于执行图6、图7或图11的模型训练方法中的服务端100侧的动作。
需要说明的是,本实施例可以是通用的物理服务器实现的,例如,ARM服务器或者X86服务器,也可以是基于通用的物理服务器结合NFV技术实现的虚拟机实现的,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,本申请不作具体限定。应理解,图15所示的设备1500还可以是至少一个服务器构成的服务器集群,本申请不作具体限定。
还需要说明的,图15仅仅是本申请实施例的一种可能的实现方式,在实际的应用中,设备1500还可以包括更多或更少的部件,本申请不作具体限制。关于本申请实施例中未出示或未描述的内容,可参见前述图6、图7或图11的模型训练方法的实施例中的相关阐述,这里不再赘述。
本申请实施例还提供一种系统,包括服务端100和多个客户端200,服务端100用于执行图6、图7或图11中的模型训练方法中服务端100侧的任一实施例,客户端200用于执行图6、图7或图10中的模型训练方法中客户端200侧的任一实施例。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在处理器上运行时,图10或图11的任一实施例的方法得以实现。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在处理器上运行时,图10或图11中的任一实施例的方法得以实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random accessmemory,RAM)等。
需要说明的是,以上所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
还需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任意或所有可能组合。
Claims (18)
1.一种模型训练方法,其特征在于,用于第一客户端,所述方法包括:
将第一客户端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,所述第一骨干网络的第一网络权重参考了第一结果和第二结果,所述第一结果是所述第一客户端使用所述第一客户端中的无标签数据对所述第一骨干网络进行训练的训练结果,所述第二结果是第二客户端使用所述第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,所述第一模型用于执行所述第一任务,所述第二模型用于执行第二任务,所述第一任务和所述第二任务是不同的任务;
通过所述第一特征对所述第一模型中的第一任务网络进行训练。
2.根据权利要求1所述的方法,其特征在于,所述第一客户端中的无标签数据包括所述第一任务对应的无标签数据,所述第二客户端中的无标签数据包括所述第二任务对应的无标签数据。
3.根据权利要求1或2所述的方法,其特征在于,所述通过所述第一特征对所述第一模型中的第一任务网络进行训练,包括:
将所述第一特征输入所述第一模型中的所述第一任务网络,得到预测值;
根据所述预测值和所述第一客户端中的所述第一任务对应的有标签数据更新所述第一任务网络,得到第二网络权重。
4.根据权利要求3所述的方法,其特征在于,在所述得到第二网络权重之后,所述方法还包括:
将所述第二网络权重发送给服务端;
接收所述服务端发送的第三网络权重,其中,所述第三网络权重参考了所述第二网络权重和第三结果,所述第三结果是第三客户端使用所述第三客户端中的所述第一任务对应的有标签数据对第三模型进行训练的训练结果,所述第三模型包括第三骨干网络和第二任务网络,所述第三模型用于执行所述第一任务;
使用所述第三网络权重更新所述第一任务网络。
5.一种模型训练方法,其特征在于,用于服务端,所述方法包括:
将服务端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,所述第一骨干网络的第一网络权重参考了第一结果和第二结果,所述第一结果是第一客户端使用所述第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,所述第二结果是第二客户端使用所述第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,所述第二模型用于执行所述第一任务,所述第三模型用于执行第二任务,所述第一任务和所述第二任务是不同的任务;
通过所述第一特征对所述第一模型中的第一任务网络进行训练。
6.根据权利要求5所述的方法,其特征在于,所述第一客户端中的无标签数据包括所述第一任务对应的无标签数据,所述第二客户端中的无标签数据包括所述第二任务对应的无标签数据。
7.根据权利要求5或6所述的方法,其特征在于,所述通过所述第一特征对所述第一模型中的第一任务网络进行训练,包括:
将所述第一特征输入所述第一模型中的所述第一任务网络,得到预测值;
根据所述预测值和所述服务端中的所述第一任务对应的有标签数据更新所述第一任务网络,得到第二网络权重。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述第一客户端发送的第三网络权重,其中,所述第三网络权重是所述第一客户端使用所述第一客户端中的所述第一任务对应的有标签数据对所述第二模型进行训练的训练结果,所述第二模型包括所述第二骨干网络和第二任务网络;
根据所述第三网络权重和所述第二网络权重聚合得到第四网络权重,使用所述第四网络权重更新所述第一任务网络。
9.一种装置,其特征在于,所述装置包括:
处理模块,用于将所述装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,所述第一骨干网络的第一网络权重参考了第一结果和第二结果,所述第一结果是所述装置使用所述装置中的无标签数据对所述第一骨干网络进行训练的训练结果,所述第二结果是第二客户端使用所述第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,所述第一模型用于执行所述第一任务,所述第二模型用于执行第二任务,所述第一任务和所述第二任务是不同的任务;
训练模块,用于通过所述第一特征对所述第一模型中的第一任务网络进行训练。
10.根据权利要求9所述的装置,其特征在于,所述装置中的无标签数据包括所述第一任务对应的无标签数据,所述第二客户端中的无标签数据包括所述第二任务对应的无标签数据。
11.根据权利要求9或10所述的装置,其特征在于,所述通过所述第一特征对所述第一模型中的第一任务网络进行训练,包括:
将所述第一特征输入所述第一模型中的所述第一任务网络,得到预测值;
根据所述预测值和所述装置中的所述第一任务对应的有标签数据更新所述第一任务网络,得到第二网络权重。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括发送模块和接收模块;
所述发送模块用于:在所述得到第二网络权重之后,将所述第二网络权重发送给服务端;
所述接收模块用于:接收所述服务端发送的第三网络权重,其中,所述第三网络权重参考了所述第二网络权重和第三结果,所述第三结果是第三客户端使用所述第三客户端中的所述第一任务对应的有标签数据对第三模型进行训练的训练结果,所述第三模型包括第三骨干网络和第二任务网络,所述第三模型用于执行所述第一任务;
所述训练模块还用于:使用所述第三网络权重更新所述第一任务网络。
13.一种装置,其特征在于,所述装置包括:
处理模块,用于将所述装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,所述第一骨干网络的第一网络权重参考了第一结果和第二结果,所述第一结果是第一客户端使用所述第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,所述第二结果是第二客户端使用所述第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,所述第二模型用于执行所述第一任务,所述第三模型用于执行第二任务,所述第一任务和所述第二任务是不同的任务;
训练模块,用于通过所述第一特征对所述第一模型中的第一任务网络进行训练。
14.根据权利要求13所述的装置,其特征在于,所述第一客户端中的无标签数据包括所述第一任务对应的无标签数据,所述第二客户端中的无标签数据包括所述第二任务对应的无标签数据。
15.根据权利要求13或14所述的装置,其特征在于,所述通过所述第一特征对所述第一模型中的第一任务网络进行训练,包括:
将所述第一特征输入所述第一模型中的所述第一任务网络,得到预测值;
根据所述预测值和所述装置中的所述第一任务对应的有标签数据更新所述第一任务网络,得到第二网络权重。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括接收模块和聚合模块;
所述接收模块用于:接收所述第一客户端发送的第三网络权重,其中,所述第三网络权重是所述第一客户端使用所述第一客户端中的所述第一任务对应的有标签数据对所述第二模型进行训练的训练结果,所述第二模型包括所述第二骨干网络和第二任务网络;
所述聚合模块用于:根据所述第三网络权重和所述第二网络权重聚合得到第四网络权重,使用所述第四网络权重更新所述第一任务网络。
17.一种设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中存储的计算机程序,以使得所述设备执行如权利要求1-4或5-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在处理器上运行时,如权利要求1-4或5-8中任意一项所述的方法被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210233104.1A CN116796850A (zh) | 2022-03-09 | 2022-03-09 | 模型训练方法、装置、设备及存储介质 |
PCT/CN2023/076284 WO2023169167A1 (zh) | 2022-03-09 | 2023-02-15 | 模型训练方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210233104.1A CN116796850A (zh) | 2022-03-09 | 2022-03-09 | 模型训练方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116796850A true CN116796850A (zh) | 2023-09-22 |
Family
ID=87937193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210233104.1A Pending CN116796850A (zh) | 2022-03-09 | 2022-03-09 | 模型训练方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116796850A (zh) |
WO (1) | WO2023169167A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117392633B (zh) * | 2023-12-11 | 2024-03-26 | 安徽蔚来智驾科技有限公司 | 一种目标检测方法、计算机可读存储介质及智能设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291897A (zh) * | 2020-02-10 | 2020-06-16 | 深圳前海微众银行股份有限公司 | 基于半监督的横向联邦学习优化方法、设备及存储介质 |
CN111428881B (zh) * | 2020-03-20 | 2021-12-07 | 深圳前海微众银行股份有限公司 | 识别模型的训练方法、装置、设备及可读存储介质 |
CN113688855B (zh) * | 2020-05-19 | 2023-07-28 | 华为技术有限公司 | 数据处理方法、联邦学习的训练方法及相关装置、设备 |
CN112101403B (zh) * | 2020-07-24 | 2023-12-15 | 西安电子科技大学 | 基于联邦少样本网络模型的分类方法、系统及电子设备 |
CN111931929B (zh) * | 2020-07-29 | 2023-06-16 | 深圳地平线机器人科技有限公司 | 一种多任务模型的训练方法、装置及存储介质 |
CN111915020B (zh) * | 2020-08-12 | 2024-02-23 | 杭州海康威视数字技术股份有限公司 | 检测模型的更新方法、装置及存储介质 |
-
2022
- 2022-03-09 CN CN202210233104.1A patent/CN116796850A/zh active Pending
-
2023
- 2023-02-15 WO PCT/CN2023/076284 patent/WO2023169167A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023169167A1 (zh) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501160B2 (en) | Cloud computing data compression for allreduce in deep learning | |
US10474926B1 (en) | Generating artificial intelligence image processing services | |
CN111914937A (zh) | 一种轻量化改进目标检测方法及检测系统 | |
Fan et al. | Federated generative adversarial learning | |
US20230153622A1 (en) | Method, Apparatus, and Computing Device for Updating AI Model, and Storage Medium | |
EP4350572A1 (en) | Method, apparatus and system for generating neural network model, devices, medium and program product | |
US11423307B2 (en) | Taxonomy construction via graph-based cross-domain knowledge transfer | |
WO2020147142A1 (zh) | 一种深度学习模型的训练方法、系统 | |
US20230368028A1 (en) | Automated machine learning pre-trained model selector | |
Milutinovic et al. | End-to-end training of differentiable pipelines across machine learning frameworks | |
CN111324773A (zh) | 一种背景音乐构建方法、装置、电子设备和存储介质 | |
EP4320556A1 (en) | Privacy-aware pruning in machine learning | |
CN116796850A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN114077841A (zh) | 基于人工智能的语义提取方法、装置、电子设备及介质 | |
CN114330514B (zh) | 一种基于深度特征与梯度信息的数据重建方法及系统 | |
CN116245086A (zh) | 文本处理方法、模型训练方法和系统 | |
Tchaye-Kondi et al. | Smartfilter: An edge system for real-time application-guided video frames filtering | |
CN113657272B (zh) | 一种基于缺失数据补全的微视频分类方法及系统 | |
Chen et al. | Resource-aware knowledge distillation for federated learning | |
CN116306905A (zh) | 半监督非独立同分布的联邦学习蒸馏方法及装置 | |
CN113807322A (zh) | 一种基于双模态交互和状态反馈的快速实时视频目标分割方法 | |
CN113221690A (zh) | 视频分类方法及装置 | |
CN113392867A (zh) | 一种图像识别方法、装置、计算机设备及存储介质 | |
CN113223121A (zh) | 视频生成方法、装置、电子设备及存储介质 | |
US20240161464A1 (en) | Systems and methods for video models with procedure understanding |
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 |