CN115424085A - 模型训练方法和装置 - Google Patents

模型训练方法和装置 Download PDF

Info

Publication number
CN115424085A
CN115424085A CN202110525151.9A CN202110525151A CN115424085A CN 115424085 A CN115424085 A CN 115424085A CN 202110525151 A CN202110525151 A CN 202110525151A CN 115424085 A CN115424085 A CN 115424085A
Authority
CN
China
Prior art keywords
model
data
submodel
processing
training
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
Application number
CN202110525151.9A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110525151.9A priority Critical patent/CN115424085A/zh
Publication of CN115424085A publication Critical patent/CN115424085A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种模型训练方法和装置。该方法包括:接收来自N个终端设备的表征结果,每个终端设备的表征结果是每个终端设备利用第一子模型对每个终端设备的本地数据进行第一处理得到的,第一处理包括提取目标任务对应的目标特征,第一子模型包含于第一模型中,第一模型是云端设备根据目标任务利用第三数据集训练得到的,第三数据集包括的数据的特征与每个终端设备的数据的特征相同,第三数据集包括的数据不属于每个终端设备的本地数据,N为大于等于2的正整数;利用N个终端设备的表征结果和目标任务对第二子模型进行训练,得到第三子模型,第二子模型包含于第一模型中。该方法可以提高用户隐私数据的安全性和降低系统开销。

Description

模型训练方法和装置
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种模型训练方法和装置。
背景技术
随着人工智能(artificial intelligence,AI)技术和互联网产业的发展,数据隐私和安全 越来越受到重视。联邦学习(federated learning,FL)正是在满足数据隐私和安全的前提 下,进行数据使用和训练模型的方法。
现有的联邦学习架构和方法需要假设所有的终端在包含了不同数据的同时拥有相同 的模型结构,并设置了一个中央服务器通过不断收集、整合、分发这些模型,使参与学习 的各个终端最终能够获得一个效果最好的联邦模型,我们称这一类方法为参数服务器架构 下的联邦学习方法。参数服务器架构能够较好地解决一部分比较理想的联邦学习场景,同 时由于终端和中央服务器间传输的是模型参数而非数据本身,能够满足一定的数据隐私要 求。但是,参数服务器架构对于模型结构和数据都有很多的限制,需要数据能够完全对齐、 需要模型结构完全一致,使得能够应用的场景非常局限;而且即使能够应用的时候,由于 终端之间的模型参数差异和数据差异,导致需要很多次的训练才能得到一个满足需求的联 邦模型,这无疑带来大量的运算资源的消耗,且需要很长的训练时间;同时由于每一轮次 的训练过程都需要多次传输模型,因此该架构需要更多次数的数据传输,这会带来很高的 传输带宽成本。此外,上述各种可能原因都会使得现有的联邦学习方法的学习质量较低, 进一步导致得到的训练模型的识别准确度较低。
发明内容
本申请提供一种模型训练方法和装置。该方法在保证得到的训练模型具有较高的识别 准确度的前提下,可以提高用户隐私数据的安全性和降低系统开销。
第一方面,提供了一种模型训练方法,该方法包括:
接收来自N个终端设备的表征结果,其中,每个终端设备的表征结果是该每个终端设 备利用第一子模型对该每个终端设备的本地数据进行第一处理得到的,该第一处理包括提 取目标任务对应的目标特征,该第一子模型包含于第一模型中,该第一模型是云端设备根 据该目标任务利用第三数据集训练得到的,该第三数据集包括的数据的特征与该N个终端 设备的数据的特征相同,且该第三数据集包括的数据不属于该N个终端设备的本地数据, N为大于等于2的正整数;
利用该N个终端设备的表征结果和该目标任务对第二子模型进行训练,得到第三子模 型,其中,该第二子模型包含于该第一模型中,该第二子模型的输入包括该第一子模型的 输出。
上述方法的执行主体是云端设备,对云端设备不作具体限定,例如该云端设备可以是 云端服务器。对上述终端设备不作具体限定,例如该终端设备可以是手机,该终端设备还 可以是物联网(internet of things,IoT)设备等。
上述第三数据集包括的数据的特征与N个终端设备的数据的特征相同,且第三数据集 包括的数据不属于N个终端设备的本地数据。可以理解的是,特征相同的两个数据可以是 相同或相近领域的数据,或者特征相同的两个数据也可以是格式相同或相近的数据。其中, 数据的特征相同,还可以替换为数据的底层特征相同或相似,底层特征包括但不限于:颜 色、纹理和形状。上述第三数据集可以理解为现有公开的数据集(例如,公开数据库中的 数据集,或公开论文中的数据集等)。在一个示例中,N个终端设备中的每个终端设备的 本地数据的类型可以与第三数据集包括的数据的类型相同,且这两种类型的数据的特征也 相同。例如,N个终端设备中的每个终端设备的本地数据的类型为猫的图像数据,第三数 据集包括的数据也为猫的图像数据。在另一个示例中,N个终端设备中的每个终端设备的 本地数据的类型可以与第三数据集包括的数据的类型不相同,但这两种类型的数据的特征 相同。例如,N个终端设备中的每个终端设备的本地数据的类型为猫的图像数据,第三数 据集包括的数据也为狗的图像数据。
上述每个终端设备的本地数据,可以理解为,该每个终端设备获取到的一个或多个用 户的真实数据,这些真实数据涉及该一个或多个用户的隐私。
对上述训练第一模型的云端设备和接收来自N个终端设备的表征结果的云端设备不 作具体限定。在一个示例中,训练第一模型的云端设备和接收来自N个终端设备的表征结 果的云端设备是同一个云端设备。在另一个示例中,训练第一模型的云端设备和接收来自 N个终端设备的表征结果的云端设备是不同的云端设备。在此情况下,接收来自N个终端设备的表征结果的云端设备需要与训练第一模型的云端设备进行交互,以从训练第一模型的云端设备处获得第一模型,或者获得第一子模型和第二子模型。
上述技术方案中,云端设备基于N个终端设备的非本地数据进行模型预训练,得到第 一模型,在训练第一模型的过程中不会泄漏使用该N个终端设备的用户的隐私数据。云端 设备将第一模型拆分为第一子模型和第二子模型,并仅将第一子模型下发给每个终端设 备,使得每个终端设备基于该第一子模型得到目标任务对应的表征结果,进一步云端设备 基于从每个终端设备获取的表征结果对第二子模型进行训练,以得到第三子模型,其中, 第一模型的目标任务和第三子模型的目标任务相同。在训练第三子模型的过程中,终端设 备与云端设备之间传输的是表征结果,而不是终端设备中的数据,有效保障了终端设备中 的数据的安全性,有利于提高用户隐私数据的安全性。在训练第三子模型的过程中,第一 子模型是固定不变的,因此对第二子模型的每一轮次的训练过程中云端设备无需向终端设 备传输第一子模型,同时云端设备也无需跨多个终端设备进行第一子模型的同步,有利于 保证得到的第三子模型具有较高的识别准确度和降低系统开销。本申请提供的模型训练方 法,云端设备和终端设备能够协同地在不泄露数据参与方隐私的情况下执行深度模型(即, 第三子模型)的联合训练。在联合训练过程中,不泄露使用终端设备的用户的数据,同时 也保证训练结果(即,训练好的深度模型参数)不会泄露给拥有用户数据的终端设备。
结合第一方面,在第一方面的某些实现方式中,该第一模型是包括M层网络的神经网络模型,M为大于等于2的正整数,
该第一子模型包括该M层网络中的L层网络,该L层网络用于对输入该第一子模型的数据进行处理,以得到该目标特征,L为小于M的正整数;
该第二子模型包括该M层网络中除去该L层网络之外的网络。
可选的,在一些实现方式中,当第一模型的前L层网络产生的表征具有很强的可迁移 性时,上述第一子模型包括M层网络中的前L层网络。例如,当M=50时,第一模型是 包括50层网络的神经网络模型。若第一模型的前15层网络产生的表征具有很强的可迁移 性,则第一子模型包括该50层网络中的前15层网络。也就是说,该50层网络中的前15 层网络用于对输入第一子模型的数据进行处理,以得到目标特征。在此情况下,第二子模 型包括35层网络,且该35层网络是该50层网络中的第16层网络至第50层网络。
可选的,上述L的选取可遵循如下原则:在上述N个终端设备的性能(包括但不限于:运算性能和存储性能)允许的情况下,尽量可以对L取较大数值,实验结果表明L 越大时,第一子模型输出的数据越抽象,越难根据第一子模型输出的表征结果反转得到原 始数据,有利于增加终端设备隐私保护效果。具体的,对L的取值的分析过程可以使用上 述第三数据集来进行测试。
上述技术方案中,第一子模型又称为表征提取器或特征提取器。终端设备基于该第一 子模型能够从该终端设备的本地数据中提取目标任务对应的目标特征。
结合第一方面,在第一方面的某些实现方式中,该第一处理还包括量化处理,其中, 该量化处理用于对该目标特征进行量化处理;或者
该第一处理还包括加噪处理,其中,该加噪处理用于对该目标特征进行加噪处理;或 者
该第一处理还包括量化处理和加噪处理,其中,该量化处理用于对该目标特征进行量 化处理,该加噪处理用于对该量化处理得到的结果进行加噪处理。
上述技术方案中,当第一处理中包括量化处理时,可以对提取到的目标特征执行量化 处理,以实现对获取的目标特征的压缩,有利于降低云端设备与终端设备之间的传输开销。 当第一处理中包括加噪处理时,可以对提取到的目标特征执行加噪处理,以增强获取的目 标特征的隐私性,有利于进一步提高用户隐私数据的安全性。
结合第一方面,在第一方面的某些实现方式中,该N个终端设备包括第一终端设备和 第二终端设备,该N个终端设备的表征结果包括第一表征结果和第二表征结果,
其中,该第一表征结果是该第一终端设备利用该第一子模型对第一本地数据进行该第 一处理得到的,该第一本地数据是该第一终端设备在第一预设时间内的本地数据;
该第二表征结果是该第二终端设备利用该第一子模型对第二本地数据进行该第二处 理得到的,该第二本地数据是该第二终端设备在该第一预设时间内的本地数据。
结合第一方面,在第一方面的某些实现方式中,该N个终端设备的表征结果还包括第 三表征结果和第四表征结果,
其中,该第三表征结果是该第一终端设备利用该第一子模型对第三本地数据进行该第 一处理得到的,该第三本地数据是该第一终端设备在第二预设时间内的本地数据,该第二 预设时间为该第一预设时间之后的预设时间;
该第四表征结果是该第二终端设备利用该第一子模型对第四本地数据进行该第一处 理得到的,该第四本地数据是该第二终端设备在该第二预设时间内的本地数据。
上述技术方案中,云端设备在第一预设时间内接收到第一表征结果和第二表征结果 后,利用第一表征结果和第二表征结果对第二子模型进行训练,训练一个或者多个时期(epoch)后,还可以将云端设备在第一预设时间之后的第二预设时间内接收到的第三表 征结果和第是表征结果加入训练数据集,继续进行训练。这个过程不断循环,直到模型训 练收敛得到第三子模型,有利于提高得到的第三子模型的识别准确度。
结合第一方面,在第一方面的某些实现方式中,在该接收来自N个终端设备的表征结 果之前,该方法还包括:
获取该目标任务和该第三数据集;
根据该目标任务利用该第三数据集进行训练,得到该第一模型;
基于第一信息,对该第一模型进行划分,得到该第一子模型和该第二子模型,其中, 该第一信息包括该N个终端设备中每个终端设备的运算性能和存储性能;
将该第一子模型发送给该N个终端设备。
可以理解的是,上述第一信息包括但不限于:该N个终端设备中每个终端设备的运算 性能和存储性能。可选的,在一些实现方式中,第一信息还可以是用户根据经验配置的信 息,其中,用户根据经验配置的信息用于指示从第一模型中的第j层网络进行划分,第j层以及第j层网络之前的网络是第一子模型包括的网络,第j层网络之后的网络是第二子模型包括的网络,j为正整数。
上述技术方案中,训练第一模型的云端设备和接收来自N个终端设备的表征结果的云 端设备是同一个云端设备,避免了不同云端设备之间的交互,有利于降低系统开销。
结合第一方面,在第一方面的某些实现方式中,在该得到第三子模型之后,该方法还 包括:
接收来自该N个终端设备中的至少一个终端设备的第五表征结果;
利用该第三子模型对该第五表征结果进行处理,得到该目标任务对应的预测结果;
将该预测结果发送给该至少一个终端设备。
上述技术方案中,云端设备可以利用训练好的第三子模型对终端设备的表征结果进行 预测,云端设备仅将预测结果发送给终端设备,有利于保证云端设备训练得到的第三子模 型或第三子模型参数不会泄露给拥有用户数据的终端设备。
第二方面,提供了一种模型训练方法,该方法包括:
接收来自云端设备的第一子模型,其中,该第一子模型包含于第一模型中,该第一模 型是该云端设备根据目标任务利用第三数据集训练得到的,该第三数据集包括的数据的特 征与N个终端设备的数据的特征相同,且该第三数据集包括的数据不属于该N个终端设 备的本地数据,N为大于等于2的正整数;
利用该第一子模型对第一终端设备的本地数据进行第一处理,得到第一表征结果,其 中,该第一终端设备是该N个终端设备中的一个终端设备,该第一处理包括提取该目标任 务对应的目标特征;
将该第一表征结果发送给该云端设备;
其中,该第一子模型和该第三子模型是根据上述第一方面该的训练方法训练得到的。
上述方法的执行主体是终端设备,对该终端设备不作具体限定,例如该终端设备可以 是手机,该终端设备还可以是IoT设备等。
上述技术方案中,终端设备仅需从云端设备处获取第一模型中的部分模型(即,第一 子模型),然后基于该第一子模型对该终端设备的本地数据进行处理,得到该终端设备的 本地数据的表征结果,最后将表征结果发送给云端设备,使得云端设备基于获取的表征结 果对第二子模型进行训练以得到第三子模型。上述模型训练过程中,终端设备与云端设备 之间传输的是第一模型中的部分模型和表征结果,避免了现有参数服务器架构下的联邦学 习的模型训练中,需要在终端设备与云端设备之间传输完整的神经网络模型,有利于降低 系统开销。此外,第一模型是云端设备基于N个终端设备的非本地数据进行模型预训练得 到的,上述过程中不会泄漏使用该N个终端设备的用户的隐私数据。第一模型的目标任务 和第三子模型的目标任务相同,基于第一模型中的第一子模型的表征结果对第二子模型训 练,有利于保证得到的第三子模型具有较高的识别准确度。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:
接收该第三子模型,其中,该第三子模型是该云端设备基于该N个终端设备的表征结 果和该目标任务对该第二子模型进行训练得到的;
利用该第三子模型对该第一表征结果进行处理,得到该目标任务对应的预测结果。
上述技术方案中,终端设备可以基于从云端设备获取的第三子模型,实现对该终端设 备的第一表征结果进行预测。
第三方面,提供一种模型训练装置,该装置可以实现上述第一方面和第二方面中至少 一个方面所涉及的方法中各个步骤所对应的功能。
第四方面,提供一种模型训练装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面或第二方面的任意一种实现方式中的方法。
第五方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代 码,该程序代码包括用于执行第一方面或第二方面中的任意一种实现方式中的方法。
第六方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运 行时,使得计算机执行上述第一方面或第二方面中的任意一种实现方式中的方法。
第七方面,提供一种芯片系统,所述芯片系统包括处理器与数据接口,所述处理器通 过所述数据接口读取存储器上存储的指令,执行上述第一方面或第二方面中的任意一种实 现方式中的方法。
可选地,作为一种实现方式,所述芯片系统还可以包括存储器,所述存储器中存储有 指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器 用于执行第一方面或第二方面中的任意一种实现方式中的方法。
附图说明
图1是一种人工智能主体框架示意图。
图2是现有技术中常见的联邦学习的系统架构的示意图。
图3是本申请实施例提供的一种系统架构300的示意图。
图4本申请实施例提供的一种训练模型的系统架构的示意图。
图5是本申请实施例提供的一种芯片的硬件结构的示意图。
图6是本申请实施例提供的一种模型训练方法600的示意性流程图。
图7是本申请实施例提供的一种模型训练方法700的示意性流程图。
图8是本申请实施例提供的一种模型训练装置的示意性框图。
图9是本申请实施例提供的一种模型训练装置的硬件结构示意图。
图10是本申请实施例提供的一种模型训练装置的示意性框图。
图11是本申请实施例提供的一种模型训练装置的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然, 所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施 例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于 本申请保护的范围。
图1是一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流 程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链” (垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、 智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中, 数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生 态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平 台实现支撑。
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器 (neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、 专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列 (field programmable gate array,FPGA)等硬件加速芯片。
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以 包括云存储和计算、互联互通网络等。
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提 供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据:
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图 像、语音、文本、序列,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及 力、位移、液位、温度、湿度等感知数据。
应理解,序列可以理解为数据序列,最常见的有时序序列数据,即时序数据,例如一 段时间内的天气预报数据(温度、风向等),又例如股市数据、人体血糖变化数据等生理数据的序列等等。
(3)数据处理:
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、 预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利 用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力:
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用 的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用:
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决 方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、 智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能 家居、智能医疗、智能安防、自动驾驶,平安城市等领域。
具体地,本申请实施例可以具体应用在各类数据处理的领域,例如图像分类、图像检 索、图像语义分割、图像超分辨率等图像类数据相关的处理任务,又例如语音合成、语音识别、语音搜索等语音类数据相关的处理任务,又例如智能翻译、语义提取等文字类数据相关的处理任务,又例如草图绘制、手势控制等涉及图形数据的相关处理任务。图像类数据相关的处理任务还可以是视频类图像数据,例如可以应用于视频搜索、视频分类、关键人物追踪等任务。此外,本申请实施例还可以应用于数据序列的处理任务,例如时序数据。还应理解上述各任务只是按照涉及的处理数据的数据类型来举例说明,但有些任务可以涉及多种数据类型,例如可以是利用语音搜索图像的任务,也就是说,输入一段语音,根据 这段语音从图像库中找到相应的图像,该任务就是既涉及图像数据有又涉及语音数据。
为了便于理解,下面先对本申请实施例可能涉及的人工智能的相关术语和概念进行介 绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单 元,该运算单元的输出可以为:
Figure BDA0003065513120000071
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。 f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来 将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以 分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中 间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定 与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
Figure BDA0003065513120000081
其中,
Figure BDA0003065513120000082
是输入向量,
Figure BDA0003065513120000083
是输出向量,
Figure BDA0003065513120000084
是偏移向 量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量
Figure BDA0003065513120000085
经过如此 简单的操作得到输出向量
Figure BDA0003065513120000086
由于DNN层数多,系数W和偏移向量
Figure BDA0003065513120000087
的数量也比较多。 这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二 层的第4个神经元到第三层的第2个神经元的线性系数定义为
Figure BDA0003065513120000088
上标3代表系数W所 在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
Figure BDA0003065513120000089
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更 能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就 越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵 的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量 W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经 网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可 以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷 积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常 包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面 的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的 方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过 程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神 经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络
循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的 神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一 层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍 然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的 单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任 何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网 络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。 但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了: 我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知 道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依 赖当前的输入信息和历史的记忆信息。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要 预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的 差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的 过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调 整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标 值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标 值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们 是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出 值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的 过程。
(6)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始 的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前 向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经 网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运 动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(7)联邦学习
联邦学习(federated learning,FL)又可以称之为联合学习或联盟学习。联邦学习能 有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和 学习建模。联邦学习包括横向联邦学习(horizontal federated learning)、纵向联邦学习 (vertical federated learning)。可以说,联邦学习就是为了能够使得既能够共享知识和参 数,又不需要交换任何自身数据。
数据矩阵的横向的一行表示一条训练样本,纵向的一列表示一个数据特征。横向联邦 学习是联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数 据是横向划分的。横向联邦学习也称为特征对齐的联邦学习(feature-alignedfederated learning),即参与者的数据特征是对齐的,横向联邦学习可以增加训练样本总量。纵向 联邦学习是联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训 练数据是纵向划分的。纵向联邦学习也称为样本对齐的联邦学习(sample-aligned federated learning),即参与者的训练样本是对齐的,纵向联邦学习可以增加训练数据特征维度。
联邦学习在工业界已经得到应用,例如谷歌将其应用于自身的GBoard项目,又例如 微众银行提出的FATE联邦学习框架等等,均是上述参数服务器架构的联邦学习方法的实 际应用的典型例子,它们都需要参与学习的不同设备之间具有非常高的一致性,模型结构 一致,数据能够对齐。这就使得,对于一些不满足上述一致性要求的场景,现有的联邦学习方法并不适用。
图2是现有技术中常见的联邦学习的系统架构的示意图,也就是说基于参数服务器架 构的联邦学习的示意图。
如图2所示,在该场景中包括终端设备#1和终端设备#2以及云端设备#1,为了确保用户数据隐私和安全,终端设备之间不能进行数据交互。需要说明的是,图2中也可能存 在3个或3个以上的终端设备,原理是相同的,对此进行了省略。
本地数据#1和本地数据#2分别表示终端设备#1和终端设备#2所能提供的数据,或者 可以理解为本地数据#1和本地数据#2分别是终端设备#1和终端设备#2各自的本地真实数 据,在联邦学习中,这些数据不希望被其他终端设备获取。这些数据例如可以是图像数据、 语音数据、文本数据、序列数据等等。终端设备#1利用本地数据#1进行模型训练,得到本地模型#1;终端设备#2利用本地数据#2进行模型训练得到本地模型#2。之后,终端设 备#1将本地模型#1或本地模型#1的参数发送给云端设备#1,终端设备#2将本地模型#2 或本地模型#2的参数发送给云端设备#1。
云端设备#1在获得所有本地模型(包括本地模型#1和本地模型#2)后,将所有获得的本地模型汇聚成一个联邦模型,联邦模型也可以理解为统一模型,也就是说所有终端设备能够通用的模型。
之后云端设备#1将得到的联邦模型发送给所有终端设备,终端设备在接收到联邦模 型后,将本地模型替换成联邦模型,再重复下一轮的训练:在联邦学习模型的基础上训练 得到新的本地模型、上传新的本地模型、模型汇聚出新的联邦模型,如此循环,直到达到一定的预设要求。在图2所示场景中,整个的训练过程可以看作是对联邦模型的模型参数的不断调整,使得联邦模型的参数能够同时适用于所有终端设备,想要获得满足需求的参数,就需要很多次的训练,也就是说,需要循环执行上述过程:训练得到本地模型、上传 本地模型、模型汇聚、下发联邦模型、更新本地模型,直到达到能够适用于所有终端设备 的要求,从图2中可以看出,需要终端设备与云端设备之间分别多次的数据交互,即多次 本地模型和联邦模型的传输。
应注意,由于云端设备#1需要将所有的本地模型进行模型汇聚,所以所有本地模型 的结构必须是完全一致的,不然无法进行模型汇聚,在图2中为了便于理解,将本地模型#1和本地模型#2的结构都用了三角形进行表示,相当于表示两个本地模型的结构完全一致。如果还存在更多的终端设备,则所有参与学习的终端设备所产生的本地模型也必须结构完全一致,即也必须用完全相同的三角形表示。
在图2所示的系统中,主要存在以下问题。
首先,所有终端设备的本地模型必须拥有完全一致的结构,否则上传的模型参数无法 匹配,也就不能汇聚得到一个通用的联邦模型,这就使得终端设备只能采用相同的模型结 构和能够对齐的训练数据来训练模型,这会使得训练得到的模型在本地数据的表现上不是 非常好。可以理解为,假设在计算能力足够的情况下,终端设备利用本地数据进行训练获 得的本地模型的准确性非常高,而在进行汇聚时,为了使得联邦模型能适用于所有终端设 备,调整后的参数可能会使得该本地模型和的准确性反而降低了。
其次,如果希望得到一个准确性相对较高的联邦模型,通常需要多次训练,也就是说, 需要多次重复上述过程:终端设备在初始模型或接收到的联邦模型的基础上训练得到本地 模型,终端设备将本地模型的参数上传,云端设备汇聚出联邦模型,云端设备将联邦模型 下发给各终端设备。这就使得总的通信开销非常大,且随着训练轮次的增加,联邦模型传 输所需要占用的资源也会增多,同时也容易出现因为通信不畅而导致训练效果下降或者训 练周期过长的情况。
本申请提供一种模型训练方法,该方法在保证得到的训练模型具有较高的识别准确度 的前提下,可以提高用户隐私数据的安全性和降低系统开销。
下面,结合图3介绍适用于本申请提供的模型训练方法的系统架构。
图3是本申请实施例提供的一种系统架构300的示意图。
如图3所示,在该系统架构300中包括云端设备#1,终端设备#1和终端设备#2,为确保终端设备数据隐私和安全,终端设备之间不能进行数据交互。需要说明的是,图3中 也可能存在3个或3个以上的终端设备,原理是相同的,对此进行了省略。
在云端设备#1中,云端设备#1利用公开数据集进行训练,得到第一模型,并将第一模型划分为第一子模型和第二子模型,其中,公开数据集不是终端设备#1和终端设备#2 的本地数据。也就是说,在云端设备#1利用公开数据集训练得到第一模型的过程中,不 涉及泄漏终端设备#1和终端设备#2的隐私数据。
可选的,在一些实现方式中,第一模型还可以是由除去云端设备#1之外的其它云端 设备利用公开数据集训练得到的。基于此,云端设备#1可以从除去云端设备#1之外的其它云端设备获取第一模型。也就是说,在这种情况下,云端设备#1与训练第一模型的云 端设备存在交互过程。
之后云端设备#1将得到的第一子模型发送给所有终端设备(即,终端设备#1和终端 设备#2),终端设备在接收到第一子模型后,利用第一子模型对终端设备的本地数据进行 处理,得到该终端设备的表征结果。终端设备将该终端设备的表征结果发送给云端设备#1。
云端设备#1接收来自所有终端设备(即,终端设备#1和终端设备#2)的表征结果(即, 表征结果#1和表征结果#2)后,云端设备#1利用表征结果对第二子模型进行迭代训练, 得到第三子模型。
可选的,在云端设备#1利用表征结果对第二子模型进行迭代训练的过程中,云端设 备#1还可以接收来自所有终端设备在其它预设时间内的表征结果,有利于提高得到的第 三子模型的识别准确度。
应理解,图3仅为示意,并不对本申请提供的模型训练方法适用的系统架构构成任何 限定。例如,系统架构300中还可以包括更多数目的云端设备,如包括云端设备#2,云端设备#2训练得到第一模型后将第一模型发送给云端设备#1。例如,系统架构300中还可 以包括更多数目的终端设备。例如,云端设备#1还可以将第三子模型发送给终端设备#1 和/或终端设备#2。基于此,终端设备#1可以利用第三子模型对表征结果#1进行处理,得 到预测结果。
上面,结合图3详细介绍了适用于本申请实施例提供的模型训练方法的一种系统架构 300。下面,结合图4介绍上文所描述的系统架构300中的云端设备#1训练模型的系统架 构。
图4是本申请实施例提供的一种训练模型的系统架构的示意图。
在图4中,数据采集设备160用于采集训练数据。针对本申请实施例的方法来说,训练数据可以为图像数据、图形数据、文本数据、语音数据、序列数据等任意一种数据,当 训练数据为图像数据时,训练数据可以包括训练图像以及训练图像对应的分类结果,其中,训练图像的结果可以是人工预先标注的结果;当训练数据为语音数据时,训练数据可以包括训练语音以及训练语音对应的目标语音。
在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设 备120基于数据库130中维护的训练数据训练得到目标模型/规则101。
下面对训练设备120基于训练数据得到目标模型/规则101进行描述,当用于图像分 类时,训练设备120对输入的原始图像进行处理,将输出的图像标签与真实的图像标签进 行对比,直到训练设备120输出的图像标签与真实的图像标签一致,从而完成目标模型/规则101的训练。当用于语音合成时,训练设备120对输入的待被合成语音的文字内容进 行处理,将输出的合成语音与目标语音进行对比,直到训练设备120输出的合成语音与目 标语音的差值小于一定的阈值,从而完成目标模型/规则101的训练。
本申请实施例中的目标模型/规则101具体可以为神经网络。需要说明的是,在实际 的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方 获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中, 如应用于图4所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR), 车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置输入/输出 (input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140 向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待 处理数据,例如待处理图像、待处理语音。
预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,也可以没有预处理模块113和预处理模块114 (也可以只有其中的一个预处理模块),而直接采用计算模块111对输入数据进行处理。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计 算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练 数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目 标或完成上述任务,从而为用户提供所需的结果。
在图4中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112 提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体 的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端, 采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本 数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口 112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为 新的样本数据存入数据库130。
值得注意的是,图4仅是本申请实施例提供的一种训练模型的系统架构的示意图,图 中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图4中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置 于执行设备110中。
如图4所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例提供的神经网络可以为深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络等等。
图4所示训练模型的架构可以用来实现上述图3所示的系统架构300中的云端设备#1 获得第一模型和第三子模型的过程。也就是说,系统架构300中的云端设备#1可以利用 图4所示系统架构的部分或全部模块训练获得第一模型,系统架构300中的云端设备#1还可以利用图4所示系统架构的部分或全部模块以及利用表征结果(例如表征结果#1和 表征结果#2)对第二子模型进行训练,以得到第三子模型。
图5是本申请实施例提供的一种芯片的硬件结构示意图,该芯片包括神经网络处理器 500(即图示NPU500)。该芯片可以被设置在如图4所示的执行设备110中,用以完成 计算模块111的计算工作。该芯片也可以被设置在如图4所示的训练设备120中,用以完 成训练设备120的训练工作并输出目标模型/规则101。
NPU500作为协处理器挂载到主中央处理器(central processing unit,CPU)(host CPU) 上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503 提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些 实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501 中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累 加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运 算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一 化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。 例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向 量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如 用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)505 将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中 的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504 使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过 程。
入口:可以根据实际发明说明这里的数据是说明数据。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(on-chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双 倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读 可写的存储器。
其中,神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
上面,结合图3至图5分别介绍了适用于本申请提供的模型训练方法的系统架构,训 练模型的系统架构,以及训练模型相关的芯片的硬件结构。下面,结合图6和图7,详细介绍本申请实施例提供的模型训练方法。
图6是本申请实施例提供的一种模型训练方法600的示意性流程图。如图6所示,该方法600包括步骤610和步骤620,下面对步骤610和步骤620进行详细介绍。其中,该 方法600的执行主体包括但不限于上述图3所示的系统架构300中的云端设备#1。应理解, 图6的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限 制于图6的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种 等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
步骤610,接收来自N个终端设备的表征结果,其中,每个终端设备的表征结果是每个终端设备利用第一子模型对每个终端设备的本地数据进行第一处理得到的,第一处理包括提取目标任务对应的目标特征,第一子模型包含于第一模型中,第一模型是云端设备根据目标任务利用第三数据集训练得到的,第三数据集包括的数据的特征与N个终端设备的数据的特征相同,且第三数据集包括的数据不属于N个终端设备的本地数据,N为大于等 于2的正整数。
上述步骤610的执行主体可以是云端设备。也就是说,云端设备接收来自N个终端设 备的表征结果。此外。对上述步骤610中的终端设备的类型不作具体限定,例如该终端设备可以是手机,该终端设备还可以是IoT设备等。示例性的,上述步骤610中的该云端设 备可以是上文图3所示的系统架构300中的云端设备#1,上述步骤610中的终端设备可以 是手机。
上述第三数据集包括的数据的特征与N个终端设备的数据的特征相同,且第三数据集 包括的数据不属于N个终端设备的本地数据。可以理解的是,特征相同的两个数据可以是 相同或相近领域的数据,或者特征相同的两个数据也可以是格式相同或相近的数据。其中, 数据的特征相同,还可以替换为数据的底层特征相同或相似,底层特征包括但不限于:颜 色、纹理和形状。上述第三数据集可以理解为现有公开的数据集(例如,公开数据库中的 数据集,或公开论文中的数据集等)。在一个示例中,N个终端设备中的每个终端设备的 本地数据的类型可以与第三数据集包括的数据的类型相同,且这两种类型的数据的特征相 同。例如,N个终端设备中的每个终端设备的本地数据的类型为猫的图像数据,第三数据 集包括的数据也为猫的图像数据。在另一个示例中,N个终端设备中的每个终端设备的本 地数据的类型可以与第三数据集包括的数据的类型不相同,但这两种类型的数据的特征相 同。例如,N个终端设备中的每个终端设备的本地数据的类型为猫的图像数据,第三数据 集包括的数据也为狗的图像数据。
上述每个终端设备的本地数据,可以理解为,该每个终端设备获取到的一个或多个用 户的真实数据,这些真实数据涉及该一个或多个用户的隐私。
在一些实现方式中,第一模型可以是包括M层网络的神经网络模型,M为大于等于2的正整数,第一子模型包括M层网络中的L层网络,L层网络用于对输入第一子模型的 数据进行处理,以得到目标特征,L为小于M的正整数,第二子模型包括M层网络中除 去L层网络之外的网络。也就是说,可以根据第一模型包括的网络层对第一模型进行划分, 以得到第一子模型和第二子模型。
可选的,当第一模型的前L层网络产生的表征具有很强的可迁移性时,上述第一子模 型包括M层网络中的前L层网络。例如,当M=50时,第一模型是包括50层网络的神经 网络模型。若第一模型的前15层网络产生的表征具有很强的可迁移性,则第一子模型包 括该50层网络中的前15层网络。也就是说,该50层网络中的前15层网络用于对输入第 一子模型的数据进行处理,以得到目标特征。在此情况下,第二子模型包括35层网络, 且该35层网络是该50层网络中的第16层网络至第50层网络。
可选的,上述L的选取可遵循如下原则:在上述N个终端设备性能(包括但不限于运算性能和存储性能)允许的情况下,尽量可以对L取较大数值,实验结果表明L越大时, 第一子模型输出的数据越抽象,越难根据第一子模型输出的表征结果反转得到原始数据, 有利于增加终端设备隐私保护效果。具体的,对L的取值的分析过程可以使用上述第三数 据集来进行测试。
上述步骤610中的第一模型是云端设备根据目标任务利用第三数据集训练得到的,可 以包括如下两种情况:
情况一:训练第一模型的云端设备,与接收来自N个终端设备的表征结果的云端设备 是同一个云端设备,其中为便于描述,可以将该云端设备记为云端设备#1。
可以理解的是,在情况一下,云端设备#1接收来自N个终端设备的表征结果之前,该云端设备#1还可以执行如下操作:
获取目标任务和第三数据集;
根据目标任务利用第三数据集进行训练,得到第一模型;
基于第一信息,对第一模型进行划分,得到第一子模型和第二子模型,其中,第一信 息包括N个终端设备中每个终端设备的运算性能和存储性能;
将第一子模型发送给N个终端设备。
情况二:训练第一模型的云端设备,与接收来自N个终端设备的表征结果的云端设备 不是同一个云端设备,为便于描述,可以将训练第一模型的云端设备记为云端设备#2,将 接收来自N个终端设备的表征结果的云端设备记为云端设备#1。其中,云端设备#2通过与云端设备#1进行通信,以从云端设备#1处获取第一模型。
可以理解的是,在情况二下,云端设备#2执行如下操作:
获取目标任务和第三数据集;
根据目标任务利用第三数据集进行训练,得到第一模型;
将第一模型发送给云端设备#1,使得云端设备#1接收到第一模型后基于第一信息对 第一模型进行划分以得到第一子模型和第二子模型,其中,第一信息包括N个终端设备中 每个终端设备的运算性能和存储性能。
可选的,在一些实现方式中,还可以是云端设备#2基于第一信息对第一模型进行划 分得到第一子模型和第二子模型,然后云端设备#1通过与云端设备#2通信,以从云端设备#2处获取第一子模型和第二子模型。
对上述情况一和情况二中的第一信息包括的内容不作具体限定。也就是说,第一信息 包括但不限于:该N个终端设备中每个终端设备的运算性能和存储性能。可选的,在一些 实现方式中,第一信息还可以是用户根据经验配置的信息,其中,用户根据经验配置的信 息用于指示从第一模型中的第j层网络进行划分,第j层以及第j层网络之前的网络是第一子模型包括的网络,第j层网络之后的网络是第二子模型包括的网络,j为正整数。
对基于第一信息对第一模型进行划分的具体方式也不作限定。在一些实现方式中,可 以基于第一信息中的具有最差运算性能和最差存储性能的终端设备的运算信息,对第一模 型进行划分。在另一些实现方式中,还可以基于第一信息中的所有终端设备的平均运算性 能和平均存储性能,对第一模型进行划分。
应理解的是,上述情况一和情况二,均是以给每个终端设备发送相同的第一子模型为 例进行介绍的。也就是说,上述情况一和情况二中,基于第一信息第一模型进行划分得到 一个统一的第一子模型,该统一的第一子模型适用于每个终端设备。
可选的,在一些实现方式中,云端设备还可以仅根据每个终端设备的性能对第一模型 进行划分,以得到该每个终端设备对应的最佳的第一子模型和最佳的第二子模型。在这种 情况下,不同性能的终端设备接收的第一子模型包括的网络层数可能不相同。例如,云端 设备#1需要给终端设备#1和终端设备#2下发第一子模型,且终端设备#1的性能和终端设 备#2的性能存在差异。云端设备#1以终端设备#1的性能将第一模型划分为第一子模型#1 和第二子模型#1,并将第一子模型#1下发至终端设备#1。云端设备#1以终端设备#2的性 能将第一模型划分为第一子模型#2和第二子模型#2,并将第一子模型#2下发至终端设备 #2。其中,第一子模型#1包括的网络层数与第一子模型#2包括的网络层数不相同。在这种实现方式下,云端设备#1根据终端设备#1的表征结果对第二子模型#1进行训练得到第三子模型#1,云端设备#1根据终端设备#2的表征结果#对第二子模型#2进行训练得到第 三子模型#2,以及云端设备对第三子模型#1和第三子模型#2进行联邦汇聚以得到一个第 三子模型。
上述步骤610中,每个终端设备的表征结果是每个终端设备利用第一子模型对每个终 端设备的本地数据进行第一处理得到的,第一处理包括提取目标任务对应的目标特征。为 进一步降低云端设备与终端设备之间的通信开销,第一处理还可以包括量化处理。为进一 步提高终端设备数据的隐私保护,第一处理还可以包括加噪处理。因此,本申请实施例提 供的第一处理可以是以下形式中的任意一种:
形式一:第一处理仅包括提取目标任务对应的目标特征。
形式二:第一处理包括提取目标任务对应的目标特征,量化处理,其中,量化处理用 于对目标特征进行量化处理。
形式三:第一处理包括提取目标任务对应的目标特征,加噪处理,其中,加噪处理用 于对目标特征进行加噪处理。
形式四:第一处理包括提取目标任务对应的目标特征,量化处理,加噪处理。
在形式四中,在执行提取目标任务对应的目标特征之后,可以先执行量化处理,再执 行加噪处理;或者,在执行提取目标任务对应的目标特征之后,也可以先执行加噪处理,再执行量化处理。
在本申请实施例中,对量化处理和加噪处理的方法不作具体限定。下面以形式四中的 第一处理为例,介绍上述步骤610。在终端设备利用第一子模型对该终端设备的本地数据 提取目标任务对应的目标特征之后,可以按照如下方式对得到的目标特征进行量化处理:
Figure BDA0003065513120000171
其中,Bi表示量化处理后的结果,Ai表示提取得到的目标特征,Ai也是第一子模型的输出结果。
接下来,可以基于本地差分隐私LDP对上述量化结果进行加噪处理。可以采用满足LDP的一种随机处理方法——随机响应的方法,即:一种对0和1二值数据实现LDP的 方法,具体如下:
Figure BDA0003065513120000172
其中,Bi表示量化处理后的结果。p表示当Bi等于1时,
Figure BDA0003065513120000173
保持为1的概率。q表 示当Bi等于0时,
Figure BDA0003065513120000174
变化为1的概率。p和q的具体取值可以根据本地差分隐私理论中隐 私保护强度的值计算出来。
Figure BDA0003065513120000175
表示加噪处理之后的结果,
Figure BDA0003065513120000176
也是经过第一处理后得到的 结果。
应理解,上述量化处理和加噪处理仅为示意,并不对本申请实施例中的第一处理构成 任何限定。
在本申请实施例中,对目标任务不作具体限定。示例性的,若目标任务是人脸识别任 务,则该目标任务对应的目标特征包括人脸特征(例如人脸中的嘴角和眼角特征等)。示例性的,若目标任务是车牌识别任务,则该目标任务对应的目标特征包括车牌中的字符特征等。
步骤620,利用N个终端设备的表征结果和目标任务对第二子模型进行训练,得到第 三子模型,其中,第二子模型包含于第一模型中,第二子模型的输入包括第一子模型的输 出。
上述步骤620的执行主体是云端设备。示例性的,若上述步骤610的执行主体是上文 图3所示的系统架构300中的云端设备#1,则上述步骤620的执行主体也可以是云端设备#1。
在本申请实施例中,在基于N个终端设备的表征结果对第二子模型进行训练过程中, 对N个终端设备的表征结果不作具体限定。
在一些实现方式中,N个终端设备包括第一终端设备和第二终端设备,N个终端设备 的表征结果包括第一表征结果和第二表征结果,其中,第一表征结果是第一终端设备利用 第一子模型对第一本地数据进行第一处理得到的,第一本地数据是第一终端设备在第一预 设时间内的本地数据;第二表征结果是第二终端设备利用第一子模型对第二本地数据进行 第二处理得到的,第二本地数据是第二终端设备在第一预设时间内的本地数据。
可选的,在一些实现方式中,N个终端设备的表征结果还包括第三表征结果和第四表 征结果,其中,第三表征结果是第一终端设备利用第一子模型对第三本地数据进行第一处 理得到的,第三本地数据是第一终端设备在第二预设时间内的本地数据,第二预设时间为 第一预设时间之后的预设时间;第四表征结果是第二终端设备利用第一子模型对第四本地 数据进行第一处理得到的,第四本地数据是第二终端设备在第二预设时间内的本地数据。
上述技术方案中,云端设备(例如云端设备#1)在第一预设时间内接收到第一表征结 果和第二表征结果后,利用第一表征结果和第二表征结果对第二子模型进行训练,训练一 个或者多个时期(epoch)后,还可以将云端设备在第一预设时间之后的第二预设时间内接收到的第三表征结果和第是表征结果加入训练数据集,继续进行训练。这个过程不断循环,直到模型训练收敛,以得到第三子模型。
可选的,在一些实现方式中,在云端设备训练得到第三子模型之后,云端设备还可以 执行如下操作:
接收来自N个终端设备中的至少一个终端设备的第五表征结果;
利用第三子模型对第五表征结果进行处理,得到目标任务对应的预测结果;
将预测结果发送给至少一个终端设备。
本申请实施例提供的模型训练方法,在保证训练模型(即,第三子模型)具有较高的 识别准确度的前提下,可以提高用户隐私数据的安全性和降低系统开销。具体的,云端设 备基于N个终端设备的非本地数据进行模型预训练,得到第一模型,在训练第一模型的过 程中不会泄漏使用该N个终端设备的用户的隐私数据。云端设备将第一模型拆分为第一子 模型和第二子模型,并仅将第一子模型下发给每个终端设备,使得每个终端设备基于该第 一子模型得到目标任务对应的表征结果,进一步云端设备基于从每个终端设备获取的表征 结果对第二子模型进行训练,以得到第三子模型,其中,第一模型的目标任务和第三子模 型的目标任务相同。在训练第三子模型的过程中,终端设备与云端设备之间传输的是表征 结果,而不是终端设备中的数据,有效保障了终端设备中的数据的安全性,有利于提高用 户隐私数据的安全性。在训练第三子模型的过程中,第一子模型是固定不变的,因此对第 二子模型的每一轮次的训练过程中云端设备无需向终端设备传输第一子模型,同时云端设 备也无需跨多个终端设备进行第一子模型的同步,有利于保证得到的第三子模型具有较高 的识别准确度和降低系统开销。
此外,上述训练第三子模型的技术方案,可以不需要对模型进行联邦汇聚,有利于提 高模型训练的效率。
下面,以上文图3所示的系统架构300中包括云端设备#1、终端设备#1和终端设备#2为例,结合图7介绍上文方法600中的云端设备#1和终端设备(即终端设备#1和终端 设备#2)之间的交互过程。
图7是本申请实施例提供的一种模型训练方法700的示意性流程图。如图7所示,该方法700包括步骤710至步骤780,下面对步骤710至步骤780进行详细介绍。其中,该 方法700的执行主体包括但不限于:图3中的云端设备#1,终端设备#1和终端设备#2。 应理解,图7的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请 实施例限制于图7的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以 进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
步骤710,云端设备#1基于信息#1对第一模型进行划分,得到第一子模型和第二子模型。
上述步骤710中的信息#1包括但不限于:终端设备#1的运算性能和存储性能,以及终端设备#2的运算性能和存储性能。例如,若终端设备#1的运算性能和存储性能优于终 端设备#2的运算性能和存储性能,则可以根据终端设备#2的运算性能和存储性能对第一 模型进行划分,得到第一子模型和第二子模型。
其中,第一模型可以是包括M层网络的神经网络模型,M为大于等于2的正整数。 当第一模型的前L层网络产生的表征具有很强的可迁移性时,第一子模型包括M层网络 中的前L层网络,L层网络用于对输入第一子模型的数据进行处理,以得到目标特征,L 为小于M的正整数,第二子模型包括M层网络中除去前L层网络之外的网络。
步骤720,云端设备#1向终端设备#1发送第一子模型。
步骤730,云端设备#1向终端设备#2发送第一子模型。
应理解的是,上述步骤720中的第一子模型和上述步骤730中的第一子模型是相同的。
步骤740,终端设备#1利用第一子模型对数据集#1进行第一处理,得到表征结果#1。
上述数据集#1是终端设备#1的本地数据集,该数据集#1包括的数据的特征与训练第 一模型的数据集中的数据的特征相同。可以理解的是,特征相同的两个数据可以是相同或 相近领域的数据。其中,数据的特征相同,还可以替换为数据的底层特征相同或相似,底层特征包括但不限于:颜色、纹理和形状。在一个示例中,数据集#1包括的数据的类型 可以与训练第一模型的数据集中的数据的类型相同,且这两种类型的数据的特征也相同。 在另一个示例中,数据集#1包括的数据的类型可以与训练第一模型的数据集中的数据的 类型不相同,但这两种类型的数据的特征相同。
步骤750,终端设备#1向云端设备发送表征结果#1。
步骤760,终端设备#2利用第一子模型对数据集#2进行第一处理,得到表征结果#2。
其中,数据集#2是终端设备#2的本地数据集,该数据集#2包括的数据的特征与训练 第一模型的数据集中的数据的特征相同。可以理解的是,特征相同的两个数据可以是相同 或相近领域的数据。其中,数据的特征相同,还可以替换为数据的底层特征相同或相似,底层特征包括但不限于:颜色、纹理和形状。在一个示例中,数据集#2包括的数据的类 型可以与训练第一模型的数据集中的数据的类型相同,且这两种类型的数据的特征也相 同。在另一个示例中,数据集#2包括的数据的类型可以与训练第一模型的数据集中的数 据的类型不相同,但这两种类型的数据的特征相同。
上述步骤740和上述步骤760中的第一处理包括提取目标任务对应的目标特征。可选 的,第一处理还可以包括量化处理,第一处理还可以包括加噪处理。其中,对量化处理和加噪处理的具体实现方式不作限定。
步骤770,终端设备#2向云端设备发送表征结果#2。
应理解,上述步骤720至步骤770的执行顺序仅为示意,并不构成任何限定。上述步骤720至步骤770的执行顺序仅需满足:先执行步骤720,然后执行步骤740,最后执行 步骤750;以及先执行步骤730,然后执行步骤760,最后执行步骤770。具体的,可以根 据实际情况(例如设备的运行情况等),确定执行上述步骤720至步骤770的顺序。示例 性的,根据设备的运行情况可以按照如下顺序执行步骤720至步骤770:步骤720,步骤 730,步骤760,步骤770,步骤740,步骤750。
步骤780,云端设备#1利用表征结果#1和表征结果#2对第二子模型训练,得到第三子模型。
应理解的是,上述步骤710至步骤780未详细描述的内容与上述方法600中的内容相 同,具体可以参见上述方法600,此处不再详细赘述。
应理解,图7仅为示意,并不对本申请实施例提供的模型训练方法构成任何限定。例 如,在一个示例中,上述方法700中的云端设备#1不是训练第一模型的云端设备,此时,云端设备#1可以从云端设备#2处获取第一模型中的第一子模型和第一模型中的第二子模型,其中,云端设备#2是训练第一模型的云端设备。例如,在另一个示例中,还可以包 括更多数目(3个或8个等)的终端设备。
上文,结合图3至图7详细介绍了本申请实施例提供的模型训练方法,该模型训练方 法适用的系统架构300,以及训练模型的系统架构。下面,结合图8至图11详细介绍本 申请实施例提供的模型训练装置。应理解,方法实施例的描述与探测装置实施例的描述相 互对应,因此,未详细描述的部分可以参见前面方法实施例。
图8是本申请实施例提供的一种模型训练装置的示意性框图。图8所示的装置2000包括收发单元2001和处理单元2002,
收发单元2001,用于接收来自N个终端设备的表征结果,其中,每个终端设备的表征结果是该每个终端设备利用第一子模型对该每个终端设备的本地数据进行第一处理得到的,该第一处理包括提取目标任务对应的目标特征,该第一子模型包含于第一模型中,该第一模型是云端设备根据该目标任务利用第三数据集训练得到的,该第三数据集包括该N个终端设备的非本地数据,该第三数据集包括的数据的特征与该N个终端设备的数据的特征相同,且该第三数据集包括的数据不属于该N个终端设备的本地数据,N为大于等于 2的正整数;
处理单元2002,用于利用该N个终端设备的表征结果和该目标任务对第二子模型进 行训练,得到第三子模型,其中,该第二子模型包含于该第一模型中,该第二子模型的输入包括该第一子模型的输出。
可选的,在一些实现方式中,该第一模型是包括M层网络的神经网络模型,M为大于等于2的正整数,
该第一子模型包括该M层网络中的L层网络,该L层网络用于对输入该第一子模型的数据进行处理,以得到该目标特征,L为小于M的正整数;
该第二子模型包括该M层网络中除去该L层网络之外的网络。
可选的,在一些实现方式中,该第一处理还包括量化处理,其中,该量化处理用于对 该目标特征进行量化处理;或者
该第一处理还包括加噪处理,其中,该加噪处理用于对该目标特征进行加噪处理;或 者
该第一处理还包括量化处理和加噪处理,其中,该量化处理用于对该目标特征进行量 化处理,该加噪处理用于对该量化处理得到的结果进行加噪处理。
可选的,在一些实现方式中,该N个终端设备包括第一终端设备和第二终端设备,该 N个终端设备的表征结果包括第一表征结果和第二表征结果,
其中,该第一表征结果是该第一终端设备利用该第一子模型对第一本地数据进行该第 一处理得到的,该第一本地数据是该第一终端设备在第一预设时间内的本地数据;
该第二表征结果是该第二终端设备利用该第一子模型对第二本地数据进行该第二处 理得到的,该第二本地数据是该第二终端设备在该第一预设时间内的本地数据。
可选的,在一些实现方式中,该N个终端设备的表征结果还包括第三表征结果和第四 表征结果,
其中,该第三表征结果是该第一终端设备利用该第一子模型对第三本地数据进行该第 一处理得到的,该第三本地数据是该第一终端设备在第二预设时间内的本地数据,该第二 预设时间为该第一预设时间之后的预设时间;
该第四表征结果是该第二终端设备利用该第一子模型对第四本地数据进行该第一处 理得到的,该第四本地数据是该第二终端设备在该第二预设时间内的本地数据。
可选的,在一些实现方式中,该收发单元2001,还用于获取该目标任务和该第三数据集;
该处理单元2002还用于:
根据该目标任务利用该第三数据集进行训练,得到该第一模型;
基于第一信息,对该第一模型进行划分,得到该第一子模型和该第二子模型,其中, 该第一信息包括该N个终端设备中每个终端设备的运算性能和存储性能;
该收发单元2001,还用于将该第一子模型发送给该N个终端设备。
可选的,在一些实现方式中,该收发单元2001,还用于接收来自该N个终端设备中的至少一个终端设备的第五表征结果;
该处理单元2002,还用于利用该第三子模型对该第五表征结果进行处理,得到该目 标任务对应的预测结果;
该收发单元2001,还用于将该预测结果发送给该至少一个终端设备。
图9是本申请实施例提供的一种模型训练装置的硬件结构示意图。图9所示的装置3000包括存储器3001、处理器3002、通信接口3003以及总线3004。其中,存储器3001、 处理器3002、通信接口3003通过总线3004实现彼此之间的通信连接。
存储器3001可以是ROM、静态存储设备,动态存储设备或者RAM。存储器3001可 以存储程序,当存储器3001中存储的程序被处理器3002执行时,处理器3002用于执行 上文方法600或方法700中云端设备执行的步骤。
处理器3002可以采用通用的CPU、微处理器、ASIC、GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的方法中云端设备执行的步骤。
处理器3002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的神经网络的构建方法的各个步骤可以通过处理器3002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器3002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器3001,处理器3002读取存储器3001中的信息,结 合其硬件完成本数据处理装置中包括的单元所需执行的功能,或者执行本申请方法实施例 的方法中云端设备执行的步骤。
通信接口3003使用例如但不限于收发器一类的收发装置,来实现装置3000与其他设 备或通信网络之间的通信。例如,可以通过通信接口3003获取本地模型和数据生成器。
总线3004可包括在装置3000各个部件(例如,存储器3001、处理器3002、通信接 口3003)之间传送信息的通路。
应注意,尽管上述装置3000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置3000还可以包括实现正常运行所必须的其 他器件。同时,根据具体需要,本领域的技术人员应当理解,装置3000还可包括实现其 他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置3000也可仅仅包括实 现本申请实施例所必须的器件,而不必包括图9中所示的全部器件。
图10是本申请实施例提供的一种模型训练装置的示意性框图。图10所示的装置4000 包括收发单元4001和处理单元4002,收发单元4001和处理单元4002可以用于执行本申 请实施例的方法中终端设备执行的步骤,具体的,
收发单元4001,用于接收来自云端设备的第一子模型,其中,该第一子模型包含于第一模型中,该第一模型是该云端设备根据目标任务利用第三数据集训练得到的,该第三数据集包括的数据的特征与该N个终端设备的数据的特征相同,且该第三数据集包括的数据不属于该N个终端设备的本地数据,N为大于等于2的正整数;
处理单元4002,用于利用该第一子模型对第一终端设备的本地数据进行第一处理, 得到第一表征结果,其中,该第一终端设备是该N个终端设备中的一个终端设备,该第一 处理包括提取该目标任务对应的目标特征;
该收发单元4001,还用于将该第一表征结果发送给该云端设备;
其中,该第一子模型是根据上文方法600或方法700该的训练方法训练得到的。
可选的,在一些实现方式中,该第一模型还包括第二子模型,其特征在于,
该收发单元4001,还用于接收第三子模型,其中,该第三子模型是该云端设备基于该N个终端设备的表征结果和该目标任务对该第二子模型进行训练得到的;
该处理单元4002,还用于利用该第三子模型对该第一表征结果进行处理,得到该目 标任务对应的预测结果。
图11是本申请实施例提供的一种模型训练装置的硬件结构示意图。图11所示的装置 5000包括存储器5001、处理器5002、通信接口5005以及总线5004。其中,存储器5001、 处理器5002、通信接口5005通过总线5004实现彼此之间的通信连接。
存储器5001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器5001可以存储程序, 当存储器5001中存储的程序被处理器5002执行时,处理器5002用于执行上文方法600 或方法700中终端设备执行的步骤。
处理器5002可以采用通用的中央处理器(central processing unit,CPU),微处理器, 应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施 例的方法中用户设备执行的步骤。
处理器5002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的神经网络的构建方法的各个步骤可以通过处理器5002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器5002还可以是通用处理器、数字信号处理器(digital signalprocessing, DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编 程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施 例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以 是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理 器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存 储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领 域成熟的存储介质中。该存储介质位于存储器5001,处理器5002读取存储器5001中的 信息,结合其硬件完成本数据处理装置中包括的单元所需执行的功能,或者执行本申请方 法实施例的方法中用户设备执行的步骤。
通信接口5005使用例如但不限于收发器一类的收发装置,来实现装置5000与其他设 备或通信网络之间的通信。
总线5004可包括在装置5000各个部件(例如,存储器5001、处理器5002、通信接 口5005)之间传送信息的通路。
应注意,尽管上述装置5000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置5000还可以包括实现正常运行所必须的其 他器件。同时,根据具体需要,本领域的技术人员应当理解,装置5000还可包括实现其 他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置5000也可仅仅包括实 现本申请实施例所必须的器件,而不必包括图11中所示的全部器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及 算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以 硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可 以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本 申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装 置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储 在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计 算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而 前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的 介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟 悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖 在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (22)

1.一种模型训练方法,其特征在于,所述方法包括:
接收来自N个终端设备的表征结果,其中,每个终端设备的表征结果是所述每个终端设备利用第一子模型对所述每个终端设备的本地数据进行第一处理得到的,所述第一处理包括提取目标任务对应的目标特征,所述第一子模型包含于第一模型中,所述第一模型是云端设备根据所述目标任务利用第三数据集训练得到的,所述第三数据集包括的数据的特征与所述N个终端设备的数据的特征相同,且所述第三数据集包括的数据不属于所述N个终端设备的本地数据,N为大于等于2的正整数;
利用所述N个终端设备的表征结果和所述目标任务对第二子模型进行训练,得到第三子模型,其中,所述第二子模型包含于所述第一模型中,所述第二子模型的输入包括所述第一子模型的输出。
2.根据权利要求1所述的训练方法,其特征在于,所述第一模型是包括M层网络的神经网络模型,M为大于等于2的正整数,
所述第一子模型包括所述M层网络中的L层网络,所述L层网络用于对输入所述第一子模型的数据进行处理,以得到所述目标特征,L为小于M的正整数;
所述第二子模型包括所述M层网络中除去所述L层网络之外的网络。
3.根据权利要求1或2所述的训练方法,其特征在于,
所述第一处理还包括量化处理,其中,所述量化处理用于对所述目标特征进行量化处理;或者
所述第一处理还包括加噪处理,其中,所述加噪处理用于对所述目标特征进行加噪处理;或者
所述第一处理还包括量化处理和加噪处理,其中,所述量化处理用于对所述目标特征进行量化处理,所述加噪处理用于对所述量化处理得到的结果进行加噪处理。
4.根据权利要求1-3任一项所述的训练方法,其特征在于,所述N个终端设备包括第一终端设备和第二终端设备,所述N个终端设备的表征结果包括第一表征结果和第二表征结果,
其中,所述第一表征结果是所述第一终端设备利用所述第一子模型对第一本地数据进行所述第一处理得到的,所述第一本地数据是所述第一终端设备在第一预设时间内的本地数据;
所述第二表征结果是所述第二终端设备利用所述第一子模型对第二本地数据进行所述第二处理得到的,所述第二本地数据是所述第二终端设备在所述第一预设时间内的本地数据。
5.根据权利要求4所述的训练方法,其特征在于,所述N个终端设备的表征结果还包括第三表征结果和第四表征结果,
其中,所述第三表征结果是所述第一终端设备利用所述第一子模型对第三本地数据进行所述第一处理得到的,所述第三本地数据是所述第一终端设备在第二预设时间内的本地数据,所述第二预设时间为所述第一预设时间之后的预设时间;
所述第四表征结果是所述第二终端设备利用所述第一子模型对第四本地数据进行所述第一处理得到的,所述第四本地数据是所述第二终端设备在所述第二预设时间内的本地数据。
6.根据权利要求1-5任一项所述的训练方法,其特征在于,在所述接收来自N个终端设备的表征结果之前,所述方法还包括:
获取所述目标任务和所述第三数据集;
根据所述目标任务利用所述第三数据集进行训练,得到所述第一模型;
基于第一信息,对所述第一模型进行划分,得到所述第一子模型和所述第二子模型,其中,所述第一信息包括所述N个终端设备中每个终端设备的运算性能和存储性能;
将所述第一子模型发送给所述N个终端设备。
7.根据权利要求1-6任一项所述的训练方法,其特征在于,在所述得到第三子模型之后,所述方法还包括:
接收来自所述N个终端设备中的至少一个终端设备的第五表征结果;
利用所述第三子模型对所述第五表征结果进行处理,得到所述目标任务对应的预测结果;
将所述预测结果发送给所述至少一个终端设备。
8.一种模型训练方法,其特征在于,所述方法包括:
接收来自云端设备的第一子模型,其中,所述第一子模型包含于第一模型中,所述第一模型是所述云端设备根据目标任务利用第三数据集训练得到的,所述第三数据集包括的数据的特征与N个终端设备的数据的特征相同,且所述第三数据集包括的数据不属于所述N个终端设备的本地数据,N为大于等于2的正整数;
利用所述第一子模型对第一终端设备的本地数据进行第一处理,得到第一表征结果,其中,所述第一终端设备是所述N个终端设备中的一个终端设备,所述第一处理包括提取所述目标任务对应的目标特征;
将所述第一表征结果发送给所述云端设备;
其中,所述第一子模型是根据如权利要求1-7中任一项所述的训练方法训练得到的。
9.根据权利要求8所述方法,其特征在于,所述第一模型还包括第二子模型,所述方法还包括:
接收第三子模型,其中,所述第三子模型是所述云端设备基于所述N个终端设备的表征结果和所述目标任务对所述第二子模型进行训练得到的;
利用所述第三子模型对所述第一表征结果进行处理,得到所述目标任务对应的预测结果。
10.一种模型训练装置,其特征在于,包括:
收发单元,用于接收来自N个终端设备的表征结果,其中,每个终端设备的表征结果是所述每个终端设备利用第一子模型对所述每个终端设备的本地数据进行第一处理得到的,所述第一处理包括提取目标任务对应的目标特征,所述第一子模型包含于第一模型中,所述第一模型是云端设备根据所述目标任务利用第三数据集训练得到的,所述第三数据集包括的数据的特征与所述每个终端设备的数据的特征相同,且所述第三数据集包括的数据不属于所述每个终端设备的本地数据,N为大于等于2的正整数;
处理单元,用于利用所述N个终端设备的表征结果和所述目标任务对第二子模型进行训练,得到第三子模型,其中,所述第二子模型包含于所述第一模型中,所述第二子模型的输入包括所述第一子模型的输出。
11.根据权利要求10所述的训练装置,其特征在于,所述第一模型是包括M层网络的神经网络模型,M为大于等于2的正整数,
所述第一子模型包括所述M层网络中的L层网络,所述L层网络用于对输入所述第一子模型的数据进行处理,以得到所述目标特征,L为小于M的正整数;
所述第二子模型包括所述M层网络中除去所述L层网络之外的网络。
12.根据权利要求10或11所述的训练装置,其特征在于,
所述第一处理还包括量化处理,其中,所述量化处理用于对所述目标特征进行量化处理;或者
所述第一处理还包括加噪处理,其中,所述加噪处理用于对所述目标特征进行加噪处理;或者
所述第一处理还包括量化处理和加噪处理,其中,所述量化处理用于对所述目标特征进行量化处理,所述加噪处理用于对所述量化处理得到的结果进行加噪处理。
13.根据权利要求10-12任一项所述的训练装置,其特征在于,所述N个终端设备包括第一终端设备和第二终端设备,所述N个终端设备的表征结果包括第一表征结果和第二表征结果,
其中,所述第一表征结果是所述第一终端设备利用所述第一子模型对第一本地数据进行所述第一处理得到的,所述第一本地数据是所述第一终端设备在第一预设时间内的本地数据;
所述第二表征结果是所述第二终端设备利用所述第一子模型对第二本地数据进行所述第二处理得到的,所述第二本地数据是所述第二终端设备在所述第一预设时间内的本地数据。
14.根据权利要求13所述的训练装置,其特征在于,所述N个终端设备的表征结果还包括第三表征结果和第四表征结果,
其中,所述第三表征结果是所述第一终端设备利用所述第一子模型对第三本地数据进行所述第一处理得到的,所述第三本地数据是所述第一终端设备在第二预设时间内的本地数据,所述第二预设时间为所述第一预设时间之后的预设时间;
所述第四表征结果是所述第二终端设备利用所述第一子模型对第四本地数据进行所述第一处理得到的,所述第四本地数据是所述第二终端设备在所述第二预设时间内的本地数据。
15.根据权利要求10-14任一项所述的训练装置,其特征在于,
所述收发单元,还用于获取所述目标任务和所述第三数据集;
所述处理单元还用于:
根据所述目标任务利用所述第三数据集进行训练,得到所述第一模型;
基于第一信息,对所述第一模型进行划分,得到所述第一子模型和所述第二子模型,其中,所述第一信息包括所述N个终端设备中每个终端设备的运算性能和存储性能;
所述收发单元,还用于将所述所述第一子模型发送给所述N个终端设备。
16.根据权利要求10-15任一项所述的训练装置,其特征在于,
所述收发单元,还用于接收来自所述N个终端设备中的至少一个终端设备的第五表征结果;
所述处理单元,还用于利用所述第三子模型对所述第五表征结果进行处理,得到所述目标任务对应的预测结果;
所述收发单元,还用于将所述预测结果发送给所述至少一个终端设备。
17.一种模型训练装置,其特征在于,包括:
收发单元,用于接收来自云端设备的第一子模型,其中,所述第一子模型包含于第一模型中,所述第一模型是所述云端设备根据目标任务利用第三数据集训练得到的,所述第三数据集包括的数据的特征与N个终端设备的数据的特征相同,且所述第三数据集包括的数据不属于所述N个终端设备的本地数据,N为大于等于2的正整数;
处理单元,用于利用所述第一子模型对第一终端设备的本地数据进行第一处理,得到第一表征结果,其中,所述第一终端设备是所述N个终端设备中的一个终端设备,所述第一处理包括提取所述目标任务对应的目标特征;
所述收发单元,还用于将所述第一表征结果发送给所述云端设备;
其中,所述第一子模型是根据如权利要求1-7中任一项所述的训练方法训练得到的。
18.根据权利要求17任一项所述的训练装置,其特征在于,所述第一模型还包括第二子模型,
所述收发单元,还用于接收第三子模型,其中,所述第三子模型是所述云端设备基于所述N个终端设备的表征结果和所述目标任务对所述第二子模型进行训练得到的;
所述处理单元,还用于利用所述第三子模型对所述第一表征结果进行处理,得到所述目标任务对应的预测结果。
19.一种模型训练装置,其特征在于,包括处理器和存储器,所述存储器用于存储计算机执行指令,所述处理器用于读取所述存储器中存储的所述计算机执行指令,以实现如权利要求1至7中任一项所述的方法。
20.一种模型训练装置,其特征在于,包括处理器和存储器,所述存储器用于存储计算机执行指令,所述处理器用于读取所述存储器中存储的所述计算机执行指令,以实现如权利要求8或9所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,使得所述计算机执行如权利要求1至9中任一项所述的方法。
22.一种芯片系统,其特征在于,所述芯片系统包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至9中任一项所述的方法。
CN202110525151.9A 2021-05-14 2021-05-14 模型训练方法和装置 Pending CN115424085A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110525151.9A CN115424085A (zh) 2021-05-14 2021-05-14 模型训练方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110525151.9A CN115424085A (zh) 2021-05-14 2021-05-14 模型训练方法和装置

Publications (1)

Publication Number Publication Date
CN115424085A true CN115424085A (zh) 2022-12-02

Family

ID=84230562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110525151.9A Pending CN115424085A (zh) 2021-05-14 2021-05-14 模型训练方法和装置

Country Status (1)

Country Link
CN (1) CN115424085A (zh)

Similar Documents

Publication Publication Date Title
WO2020221200A1 (zh) 神经网络的构建方法、图像处理方法及装置
WO2019228358A1 (zh) 深度神经网络的训练方法和装置
WO2021120719A1 (zh) 神经网络模型更新方法、图像处理方法及装置
WO2021190451A1 (zh) 训练图像处理模型的方法和装置
WO2021164772A1 (zh) 训练跨模态检索模型的方法、跨模态检索的方法和相关装置
CN110222717B (zh) 图像处理方法和装置
CN112418392A (zh) 一种神经网络构建方法以及装置
WO2022001805A1 (zh) 一种神经网络蒸馏方法及装置
WO2021008206A1 (zh) 神经网络结构的搜索方法、图像处理方法和装置
CN110222718B (zh) 图像处理的方法及装置
WO2021164750A1 (zh) 一种卷积层量化方法及其装置
CN113705769A (zh) 一种神经网络训练方法以及装置
CN111985649A (zh) 基于联邦学习的数据处理方法和装置
WO2021227787A1 (zh) 训练神经网络预测器的方法、图像处理方法及装置
WO2023284716A1 (zh) 一种神经网络搜索方法及相关设备
CN112529146A (zh) 神经网络模型训练的方法和装置
WO2022156475A1 (zh) 神经网络模型的训练方法、数据处理方法及装置
WO2021129668A1 (zh) 训练神经网络的方法和装置
WO2021136058A1 (zh) 一种处理视频的方法及装置
CN111340190A (zh) 构建网络结构的方法与装置、及图像生成方法与装置
WO2021190433A1 (zh) 更新物体识别模型的方法和装置
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN115081588A (zh) 一种神经网络参数量化方法和装置
CN113536970A (zh) 一种视频分类模型的训练方法及相关装置
CN116368796A (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