深度神经网络模型的训练方法和设备的制造方法
【技术领域】
[0001] 本发明的实施方式涉及计算机应用领域,更具体地,本发明的实施方式涉及深度 神经网络模型的训练方法和设备。
【背景技术】
[0002] 本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的 描述可包括可以探宄的概念,但不一定是之前已经想到或者已经探宄的概念。因此,除非 在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技 术,并且并不因为包括在本部分中就承认是现有技术。
[0003] 目前,除了可以采用单个处理器进行深度神经网络模型的训练之外,为了加快训 练速度,还可以采用多个处理器进行模型训练。并且,现有技术也提供了多种采用多个处理 器进行模型训练的训练方案,例如,基于数据并行的多处理器方案以及基于数据并行与模 型并行混合的多处理器方案等。
[0004] 另外,在模型训练中,为了使最终训练出的模型具有较高的精准度,需要通过迭代 处理的方式对模型参数进行多次更新,每一次更新过程即为一次训练过程。
[0005] 例如,在对深度神经网络模型进行训练时,以一次迭代处理过程为例,先将训练数 据从深度神经网络模型的首层到末层逐层地进行正向处理,并在正向处理结束后获得误差 信息;然后将误差信息从深度神经网络模型的末层到首层逐层地进行反向处理,并在反向 处理过程中获得需要进行模型参数更新的层的模型参数修正量;最后根据模型参数修正量 对需要进行模型参数更新的层的模型参数进行更新。
【发明内容】
[0006] 但是,本发明人在研宄过程中发现,在现有技术中,当进行模型训练时,会根据上 一次迭代处理后模型的精准度适当地调整下一次迭代处理时训练数据的大小。也就是说, 在每一次迭代处理时,训练数据的大小不是固定不变的,而是根据精准度的需求而不断调 整的。而对于特定大小的训练数据来说,采用特定的训练方案会加快训练速度。例如,发 明人发现,当训练数据很小时,与其它方案相比,采用单处理器方案可以获得更快的训练速 度,而当训练数据很大时,与其它方案相比,采用基于数据并行的多处理器方案可以获得更 快的训练速度。
[0007] 依照现有技术,如果固定地采用同一种模型训练方案进行模型训练,对于某一些 大小的训练数据来说,其训练速度是比较快的,但是对于其它大小的训练数据来说,其训练 速度是比较慢的。也就是说,由于固定地采用同一种训练方案不适用于所有大小的训练数 据,因此不会达到最快的训练速度。
[0008] 为此,非常需要一种深度神经网络模型的训练方法和设备,以解决现有技术中由 于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致对其中一些训练数 据的训练速度变慢的问题。
[0009] 在本上下文中,本发明的实施方式期望提供一种深度神经网络模型的训练方法和 设备。
[0010] 在本发明实施方式的第一方面中,提供了一种深度神经网络模型的训练方法,包 括:
[0011] 当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的 训练数据在预设的至少两个候选训练方案中的训练耗时;
[0012] 从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变 后的训练数据的最佳训练方案;
[0013] 将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。
[0014] 在本发明实施方式的第二方面中,提供了一种深度神经网络模型的训练设备,包 括:
[0015] 计算单元,用于当训练数据的大小发生改变时,针对改变后的训练数据,分别计算 所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;
[0016] 选取单元,用于从预设的至少两个候选训练方案中选取训练耗时最小的训练方案 作为所述改变后的训练数据的最佳训练方案;
[0017] 模型训练单元,用于将所述改变后的训练数据在所述最佳训练方案中进行深度神 经网络模型训练。
[0018] 在本发明实施方式中,在模型训练时,对于不同大小的训练数据,不再固定地采用 同一种训练方案进行训练,而在选择适用于该训练数据的最佳训练方案进行训练,即,采用 训练速度最快的训练方案。这样可以避免由于固定地采用同一种训练方案对所有大小的训 练数据进行训练而导致的对其中一些训练数据的训练速度变慢的问题。
【附图说明】
[0019] 通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目 的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若 干实施方式,其中:
[0020] 图1示意性地示出了本发明实施方式可以在其中实施的一个示例性场景;
[0021] 图2示意性地示出了根据本发明的一个实施方式的深度神经网络模型的训练方 法的流程图;
[0022] 图3示意性地示出了根据本发明的一个实施方式的计算改变后的训练数据在一 个候选训练方案中的训练耗时的方法的流程图;
[0023] 图4示意性地示出了根据本发明的一个实施方式的基于数据并行的多处理器方 案的训练方法的流程图;
[0024] 图5示意性地示出了根据本发明的一个实施方式的基于数据并行与模型并行混 合的多处理器方案的训练方法的流程图;
[0025] 图6示意性地示出了根据本发明的另一个实施方式的深度神经网络模型的训练 方法的流程图;
[0026] 图7示意性地示出了根据本发明的一个实施方式的模型参数同步的操作示意图;
[0027] 图8示意性地示出了根据本发明的另一个实施方式的模型参数同步的操作示意 图;
[0028] 图9示意性地示出了根据本发明的另一个实施方式的模型参数同步的操作示意 图;
[0029] 图10示意性地示出了根据本发明的另一个实施方式的模型参数同步的操作示意 图;
[0030] 图11示意性地示出了根据本发明一个实施方式的深度神经网络模型的训练设备 的结构框架图。
[0031] 在附图中,相同或对应的标号表不相同或对应的部分。
【具体实施方式】
[0032] 下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这 些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何 方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能 够将本公开的范围完整地传达给本领域的技术人员。
[0033] 本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法 或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件 (包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0034] 根据本发明的实施方式,提出了一种深度神经网络模型的训练方法和设备。
[0035] 在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何 命名都仅用于区分,而不具有任何限制含义。
[0036] 下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
[0037] 发明概沐
[0038] 本发明人发现,针对不同大小的训练数据,如果固定地采用同一种模型训练方案 进行模型训练,很可能会只会达到对其中一些训练数据的训练速度比较快,而对其余一些 训练数据的训练数据比较慢。即,从训练速度最优化的角度来看,固定的同一种训练方案并 不适用于所有大小的训练数据。
[0039] 如果针对不同大小的训练数据,采用适用于该训练数据的最佳训练方案,即,采用 训练速度最快的训练方案,而不是固定地采用同一种训练方案的话,就可以避免前面所述 的由于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致的对其中一些 训练数据的训练速度变慢的问题。
[0040] 在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方 式。
[0041] 应用场景总览
[0042] 首先参考图1,图1示意性地示出了本发明的实施方式可以在其中实施的示例性 应用场景。其中,在进行每一次模型训练时,将本次训练的训练数据10输入到用于模型训 练的处理系统20中,由处理系统20将训练数据10在基于本次训练所确定的最佳训练方案 中进行模型训练。在经过多次模型训练之后,处理系统20最终输出一个精准度符合用户要 求的深度神经网络模型30。其中,如果基于本次训练所确定的最佳训练方案为单处理器方 案,则在处理系统20中仅包含一个处理器21,在该一个处理器21中布置一个完整的深度神 经网络模型,一个完整的深度神经网络模型包含所有用于对训练数据进行映射和运算等处 理的处理层。如果基于本次训练所确定的最佳训练方案为基于数据并行的多处理器方案, 则在处理系统20中包含多个处理器21,例如,共包含4个处理器21,在4个处理器21中各 布置有一个完整的深度神经网络模型,并且4个处理器21中的完整的深度神经网络模型是 相同的。如果基于本地训练所确定的最佳训练方案为基于数据并行与模型并行混合的多处 理器方案,则在处理系统20中包含多个处理器21,并且,将该多个处理器21平均分成多个 组,为每一个组各布置一个完整的深度神经网络模型,将布置在每一个组内的一个完整的 深度神经网络模型平均拆分为多个子模型,而经过平均拆分后,每个子模型所包含的处理 层的层数相同或基本相同。其中,处理器的分组个数与一个完整的深度神经网络模型中的 子模型的个数的乘积为处理器的总个数。例如,处理系统20共包含4个处理器21,将4个 处理器21平均分成2个组,每一个组包含2个处理器21,为每一个组各布置一个完整的深 度神经网络模型,将布置在每一个组内的一个完整的深度神经网络模型平均拆分为2个子 模型A和B (子模型A和B的层数相同或基本相同),即,对于每一个组来说,在其中一个处 理器21中布置子模型A,在另一个处理器21中布置子模型B。其中