CN110705705A - 卷积神经网络模型同步训练方法、集群及可读存储介质 - Google Patents

卷积神经网络模型同步训练方法、集群及可读存储介质 Download PDF

Info

Publication number
CN110705705A
CN110705705A CN201910912956.1A CN201910912956A CN110705705A CN 110705705 A CN110705705 A CN 110705705A CN 201910912956 A CN201910912956 A CN 201910912956A CN 110705705 A CN110705705 A CN 110705705A
Authority
CN
China
Prior art keywords
training
gpu
neural network
convolutional neural
network model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910912956.1A
Other languages
English (en)
Other versions
CN110705705B (zh
Inventor
曹芳
郭振华
刘海威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Langchao Electronic Information Industry 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 Langchao Electronic Information Industry Co Ltd filed Critical Langchao Electronic Information Industry Co Ltd
Priority to CN201910912956.1A priority Critical patent/CN110705705B/zh
Priority to PCT/CN2019/108442 priority patent/WO2021056390A1/zh
Publication of CN110705705A publication Critical patent/CN110705705A/zh
Application granted granted Critical
Publication of CN110705705B publication Critical patent/CN110705705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

本申请公开了一种卷积神经网络模型同步训练方法、集群及可读存储介质,在本方法中,在训练卷积神经网络时,则按照训练数据量向各个GPU分配训练样本。各个GPU按照被分配的训练数据量对同一个卷积神经网络的训练耗时之间的差异得到缩小,各个GPU之间训练等待时间可缩短,训练效率得到提升。与此同时,在本方法中,用于训练卷积神经网络的GPU的型号可不同,因而可减少闲置GPU,可降低硬件成本。

Description

卷积神经网络模型同步训练方法、集群及可读存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种卷积神经网络模型同步训练方法、集群及可读存储介质。
背景技术
CNN模型由一系列不同类型的层组成(例如卷积层、全连接层等),通常使用标记图像的数据集来训练CNN模型。CNN训练的目标是在尽可能短的时间内获得高精度模型。随着卷积神经网络(CNN)越来越广泛地开发和使用,模型尺寸变得越来越大,如具有数百个层,总共有1000万到2000万个参数。模型尺寸增长使得高效的模型训练变得更加重要。如何在更短的时间内进行训练使模型收敛,且达到更高的精度,一直是一个被广泛研究的课题。
近些年,随着GPU硬件技术、网络模型结构和训练方法均取得了很大的突破,但是单机训练耗时过久的事实仍无法回避。人们投入了大量的工作和研究来提升分布式训练神经网络模型的效率。
目前,同步数据并行是最常用且应用最广泛的一种分布式模型训练方法。这种方法可以减少用于计算梯度的权重的陈旧性,使模型最终能够达到较高的收敛精度。这种方法要求GPU型号必须完全一致,以保证各个GPU训练速度一致,从而减少相互等待时间。实际上,由于GPU价格昂贵且更新换代速度极快,几乎每个研究团体都有多种不同型号的GPU板卡,如果仅使用同一种型号的GPU进行训练,将造成其他型号GPU闲置导致极大的资源浪费。
综上所述,如何在不同性能的GPU上快速训练卷积神经网络等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种卷积神经网络模型同步训练方法、集群及可读存储介质,以在不同性能的GPU上快速训练卷积神经网络。
为解决上述技术问题,本申请提供如下技术方案:
一种卷积神经网络模型同步训练方法,包括:
获取各个不同型号GPU对应的处理性能参数;
根据所述处理性能参数为各个所述GPU确定对应的训练数据量;
按照所述训练数据量分配训练样本给各个所述GPU;所述训练样本为训练卷积神经网络模型的样本;
获得各个所述GPU用于调节所述卷积神经网络模型的梯度值;
计算所述梯度值的平均梯度值,并利用所述平均梯度值更新模型参数,以便各个所述GPU获取所述模型参数。
优选地,获取各个不同型号GPU对应的处理性能参数,包括:
向各个所述GPU同时发布同一个的数据处理任务;
对各个所述GPU进行监测,获得各个所述GPU分别完成所述数据处理任务的处理耗时;
利用所述处理耗时确定所述处理性能参数。
优选地,所述利用所述处理耗时确定所述处理性能参数,包括:
计算所有所述处理耗时对应的最小公倍数,并计算所述最小公倍数与各个所述处理耗时分别对应的比值;
在预设常量系数集中选出与所述比值最接近的目标常量系数作为所述处理性能参数。
优选地,获取各个不同型号GPU对应的处理性能参数,包括:
按照GPU型号与处理性能参数的对应关系,从存储设备中获取各个不同型号GPU对应的处理性能参数。
优选地,计算所述梯度值的平均梯度值,包括:
根据所述处理性能参数确定各个GPU对应梯度值的加权系数;
将各个所述GPU对应梯度值与对应加权系数结合后,计算所述平均梯度值。
优选地,在训练轮次达到指定数值或所述卷积神经网络模型达到指定损失值时,包括:
对各个所述GPU内训练所述卷积神经网络模型的学习率进行调整。
优选地,根据所述处理性能参数为各个所述GPU分配对应的训练数据量,包括:
按照处理性能与训练数据量的正相关对应关系,确定各个所述GPU对应的训练数据量。
优选地,在按照所述训练数据量向各个所述GPU输入训练样本之前,还包括:
将训练样本总集划分为与各个所述GPU分别对应的训练样本子集;所述训练样本子集的训练样本量与所述训练数据量匹配。
优选地,按照所述训练数据量向各个所述GPU输入训练样本,包括:
按照训练样本子集与GPU的对应关系,向各个所述GPU分别输入对应的训练样本子集。
优选地,在按照所述训练数据量向各个所述GPU输入训练样本之前,还包括:
将所述训练样本总集划分为与各个所述训练数据量分别对应的多种数据大小的样本批次。
优选地,按照所述训练数据量向各个所述GPU输入训练样本,包括:
按照样本批次与GPU的对应关系,向各个所述GPU分别输入对应的样本批次。
一种卷积神经网络模型同步训练集群,包括:
处理器,多个不同型号的GPU,存储设备;所述处理器分别与所述GPU具有通信连接;
所述存储设备中存储卷积神经网络模型的训练样本;
各个所述GPU中具有所述卷积神经网络模型;
其中,所述处理器,用于获取各个不同型号GPU对应的处理性能参数;根据所述处理性能参数为各个所述GPU确定对应的训练数据量;按照所述训练数据量分配所述训练样本给各个所述GPU;获得各个所述GPU用于调节所述卷积神经网络模型的梯度值;计算所述梯度值的平均梯度值,并利用所述平均梯度值更新模型参数,以便各个所述GPU获取所述模型参数;
所述GPU,用于从所述存储设备中获取所述训练样本,并利用所述训练样本对所述卷积神经网络模型进行训练,各个所述GPU将所述梯度值反馈给所述处理器;并从所述处理器中获取所述模型参数。
优选地,所述处理器,具体用于向各个所述GPU同时发布同一个数据处理任务;对各个所述GPU进行监测,获得各个所述GPU分别完成所述数据处理任务的处理耗时;利用所述处理耗时确定所述处理性能参数;
各个所述GPU,具体用于在接收到所述数据处理任务后,执行所述数据处理任务。
优选地,所述处理器,具体用于根据所述处理性能参数确定各个GPU对应梯度值的加权系数;将各个所述GPU对应梯度值与对应加权系数结合后,计算所述平均梯度值。
优选地,所述处理器,具体用于在按照所述训练数据量向各个所述GPU输入训练样本之前,还包括:
将训练样本总集划分为与各个所述GPU分别对应的训练样本子集;所述训练样本子集的训练样本量与所述训练数据量匹配;
或,将所述训练样本总集划分为与各个所述训练数据量分别对应的多种数据大小的样本批次。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述卷积神经网络模型同步训练方法的步骤。
应用本申请实施例所提供的方法,获取各个不同型号GPU对应的处理性能参数;根据处理性能参数为各个GPU确定对应的训练数据量;按照训练数据量分配训练样本给各个GPU;训练样本为训练卷积神经网络模型的样本;获得各个GPU用于调节卷积神经网络模型的梯度值;计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数。
在本方法中,在利用同步数据并行对卷积神经网络进行训练之前,可获取各个不同型号GPU对应的处理性能参数,然后基于处理性能参数确定各个GPU对应的训练数据量。在训练卷积神经网络时,则按照训练数据量向各个GPU分配训练样本。由于输入至各个GPU的训练数据量与其处理性能参数相对应,因此,各个GPU按照被分配的训练数据量对同一个卷积神经网络的训练耗时之间的差异得到缩小,各个GPU之间训练等待时间可缩短,训练效率得到提升。与此同时,在本方法中,用于训练卷积神经网络的GPU的型号可不同,因而可减少闲置GPU,可降低硬件成本。
相应地,本申请实施例还提供了与上述卷积神经网络模型同步训练方法相对应的卷积神经网络模型同步训练集群和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种卷积神经网络模型同步训练方法的流程图;
图2为本申请实施例中一种处理性能参数确定流程示意图;
图3为本申请实施例中一种处理性能参数确定具体流程示意图;
图4为本申请实施例中一种平均梯度值确定流程示意图;
图5为本申请实施例中一种卷积神经网络模型同步训练方法的实施流程图;
图6为本申请实施例中另一种卷积神经网络模型同步训练方法的实施流程图;
图7为本申请实施例中一种卷积神经网络模型同步训练集群的组成结构示意图;
图8为一种传统的数据同步并行训练模式示意图;
图9为本申请实施例中一种性能分析流程示意图;
图10为本申请实施例中一种分布式训练模式示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一:
为了便于理解,先对本申请实施例所提供的卷积神经网络模型同步训练方法对应的方案所适用的硬件组成框架进行介绍。可以参见图7,图7为本申请实施例中一种卷积神经网络模型同步训练方法所适用的一种卷积神经网络模型同步训练集群示意图。可见,该集群包括:一个处理器,多个不同型号的GPU,存储设备;处理器分别与GPU具有通信连接。其中,多种不同型号的GPU指该集群中至少存在两种或两种以上型号类型的GPU。
该处理器,可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
请参考图1,图1为本申请实施例中一种卷积神经网络模型同步训练方法的流程图,该方法包括以下步骤:
S101、获取各个不同型号GPU对应的处理性能参数。
其中,处理性能参数即表征GPU的处理性能的参数。即,表征GPU处理性能的参数。
在本实施例中,GPU的数量可为多个,如5个,且GPU的型号至少存在两种。
获取各个不同型号GPU对应的处理性能参数,可选用以下获取方式:
方式一、直接读取:
按照GPU型号与处理性能参数的对应关系,从存储设备中获取各个不同型号GPU对应的处理性能参数。该处理性能参数可以直接采用现有的GPU性能参数表示。目前,体现GPU计算能力的两个重要特征:CUDA核的个数和存储器大小;描述GPU性能的两个重要指标:计算性能峰值和存储器带宽。该处理性能参数还可由预先对同一个任务的不同处理耗进行记录,并用于表征处理性能,并存入存储设备中。
方式二、通过对GPU完成相同任务的处理耗时计算得到:
请参考图2,获取实现过程,包括:
S11、向各个GPU同时发布同一数据处理任务;
S12、对各个GPU进行监测,获得各个GPU分别完成数据处理任务的处理耗时;
S13、利用处理耗时确定处理性能参数。
其中,数据处理任务可以为训练卷积神经网络的训练任务,也可以为对某图像进行渲染等常见的GPU处理任务。为了快速获得处理性能参数,可优选耗时相对较短的处理任务。
在本实施例中,可向各个GPU发布同一个数据处理任务。GPU接收到数据处理任务之后,便可执行该数据处理任务。此时,处理器可对各个GPU的任务执行情况进行监控,获得各个GPU分别完成该数据处理任务的处理耗时。由于处理性能越好,处理耗时越短,因而基于处理耗时可确定出处理性能参数。
请参考图3,S13处理性能参数确定具体实现步骤,包括:
S131、计算所有处理耗时对应的最小公倍数,并计算最小公倍数与各个处理耗时分别对应的比值;
S132、在预设常量系数集中选出与比值最接近的目标常量系数作为处理性能参数。
为便于描述,下面将上述S131和S132结合起来进行说明。
在本实施例中,可计算所有处理耗时对应的最小公倍数。然后计算出最小公倍数与各个处理耗时分别对应比值。考虑到在计算机计算中,往往采用二进制方式进行计算,因而在本实施例可在预设常量系数集中选出与该比值最接近的目标常量系数作为处理性能参数。
例如,当存在GPU1,GPU2,GPU3和GPU4时,对于数据处理任务A,GPU1对应的处理耗时为5秒,GPU2对应的处理耗时为50秒,GPU3对应的处理耗时为20秒,GPU4对应的处理耗时为10秒,则所有处理耗时对应的最小公倍数即为100秒,GPU1的最小公倍数与GPU1的处理耗时比值即为100:5=20;GPU2的最小公倍数与GPU2的处理耗时比值即为100:50=2;GPU3的最小公倍数与GPU3的处理耗时比值即为100:20=5;GPU4的最小公倍数与GPU4的处理耗时比值即为100:10=10。GPU1对应的处理性能参数可取16,GPU2对应的处理性能参数可取2,GPU3对应的处理性能参数可取4,GPU4的处理性能参数可取8。
方式三:对各个GPU进行监控,确定其单位时间内完成的任务量:
因处理性能越好,对应的完成任务数量更多,因而基于单位时间内完成的任务量也可表征GPU的处理性能。即可基于单位时间内完成的任务量确定出处理性能参数。具体实现过程可参照上述方式二,在此不再赘述。
S102、根据处理性能参数为各个GPU确定对应的训练数据量。
处理性能参数即可表征各个GPU分别对应的处理性能,在本实施例中,为了减少相互等待时间,在基于处理性能参数为不同的GPU分别确定出对应的训练数据量。
具体的,可按照处理性能与训练数据量的正相关对应关系,确定各个GPU对应的训练数据量。例如,当处理性能越好对应的处理性能参数越大,则可为处理性能参数越大的GPU分配更多的训练数据,即训练数据量越大;当处理性能越好,对应的处理性能参数越小时,则可为处理性能参数越小的GPU分配更多的训练数据,即训练数据量越大。在确定训练数据量时,可进行线性划分,即处理性能参数与对应的训练数据量的比值相同。
S103、按照训练数据量分配训练样本给各个GPU。
训练样本为训练卷积神经网络模型的样本。
在本实施例中,可预先获取用于训练卷积神经网络模型的训练样本。在确定出各个GPU分别对应的训练数据量之后,便可按照该训练数据量将训练样本分配给各个GPU。
每个GPU获得相应的训练样本之后,便对卷积神经网络模型进行训练。需要说明的是,在本实施例中,各个GPU在同一时段训练的卷积神经网络模型为同一个模型。卷积神经网络模型的训练过程可具体参见常见的模型训练过程,在此不再赘述。在完成一轮训练之后,处理器可根据训练结果确定出卷积神经网络模型的本轮训练后所确定的模型参数。当然,在其他具体实施例中,还可有由非处理器的其他设备(如任意一个参与模型训练的GPU,或其他专用的模型参数确定设备)基于各个GPU反馈的梯度值确定出模型参数。
S104、获得各个GPU用于调节卷积神经网络模型的梯度值。
在本实施例中,获取各个GPU对应的用于调节卷积神经网络模型的梯度值,可通过对GPU进行监控的方式获取,也可通过接收各个GPU反馈的训练结果的方式获取。
S105、计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数。
得到各个GPU用于调节卷积神经网络模型的梯度值之后,可对梯度值求均值。然后,利用平均梯度值更新模型参数,即将模型参照按照平均梯度值进行调整更新。处理器可直接将更新后的模型参数反馈给各个GPU,也可由各个GPU自行获取。GPU获得更新后的模型参数之后,将该模型参数作为卷积神经网络当前训练轮次的模型参数。如此,便可利用不同的GPU并行序列卷积神经网络模型在当前训练轮次对应的模型参数。
优选地,考虑到学习率为模型训练过程中一个非常重要的参数,学习率可以直接影响模型的收敛与否。不同的学习率变更策略也会影响最终的迭代结果。因此,在训练轮次达到指定数值或卷积神经网络模型达到指定损失值时,可对各个GPU内训练卷积神经网络模型的学习率进行调整。
应用本申请实施例所提供的方法,获取各个不同型号GPU对应的处理性能参数;根据处理性能参数为各个GPU确定对应的训练数据量;按照训练数据量分配训练样本给各个GPU;训练样本为训练卷积神经网络模型的样本;获得各个GPU用于调节卷积神经网络模型的梯度值;计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数。
在本方法中,在利用同步数据并行对卷积神经网络进行训练之前,可获取各个不同型号GPU对应的处理性能参数,然后基于处理性能参数确定各个GPU对应的训练数据量。在训练卷积神经网络时,则按照训练数据量向各个GPU分配训练样本。由于输入至各个GPU的训练数据量与其处理性能参数相对应,因此,各个GPU按照被分配的训练数据量对同一个卷积神经网络的训练耗时之间的差异得到缩小,各个GPU之间训练等待时间可缩短,训练效率得到提升。与此同时,在本方法中,用于训练卷积神经网络的GPU的型号可不同,因而可减少闲置GPU,可降低硬件成本。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
实施例二:
优选地,考虑到各个GPU的处理性能不同的,对于分配的训练样本较多的GPU,其训练得到的梯度值应当比分配的训练样本较少的GPU的训练得到的梯度值更符合实际需求。基于此,在本实施例中,在计算平均梯度值时,可为不同的GPU设置不同的加权系数。
请参考图4,上述S105中的计算用于调节模型参数的平均梯度值,还可具体包括:
S251、根据处理性能参数确定各个GPU对应梯度值的加权系数。
具体的,当处理性能参数与处理性能呈正相关时,则处理性能参数越大,对应的加权系数越大;当处理性能参数与处理性能呈负相关时,则处理性能参数越小,对应的加权系数越小。
S252、将各个GPU对应梯度值与对应加权系数结合后,计算平均梯度值。
即按照加权计算方式计算平均梯度值。
实施例三:
为便于本领域技术人员更好地理解如何向GPU分配不同的训练样本,下面对训练样本具体如何进行分配进行说明。
请参考图5,图5为本申请实施例中一种卷积神经网络模型同步训练方法的实施流程图,该方法包括:
S301、获取各个不同型号GPU对应的处理性能参数。
S302、根据处理性能参数为各个GPU确定对应的训练数据量。
S303、将训练样本总集划分为与各个GPU分别对应的训练样本子集;训练样本子集的训练样本量与训练数据量匹配。
具体的,即将全部训练样本按照与训练数据量匹配的方式,将其划分给各个GPU。例如,当存在6个GPU时,则将全部训练样本划分为6个训练样本子集,且每一个训练样本子集的训练样本量与训练数据量相匹配对应。
S304、按照训练样本子集与GPU的对应关系,向各个GPU分别输入对应的训练样本子集。
具体的,可将不同训练样本子集对应的存储地址发生给GPU,以便GPU自行读取相应的训练样本子集。当然,也可有CPU读取至内存后,将相应的训练样本子集发生给各个GPU。
S305、获得各个GPU用于调节卷积神经网络模型的梯度值。
S306、计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数。
实施例四:
为便于本领域技术人员更好地理解如何向GPU分配不同的训练样本,下面对训练样本具体如何进行分配进行说明。
请参考图6,图6为本申请实施例中另一种卷积神经网络模型同步训练方法的实施流程图,该方法包括:
S401、获取各个不同型号GPU对应的处理性能参数。
S402、根据处理性能参数为各个GPU确定对应的训练数据量。
S403、将训练样本总集划分为与各个训练数据量分别对应的多种数据大小的样本批次。
为了提高样本输入效率,在向GPU分配样本时,可批量分配。可直接将训练样本总集划分为不同数据大小的样本批次(batch),即一种GPU对应一种大小的样本批次。
S404、按照样本批次与GPU的对应关系,向各个GPU分别输入对应的样本批次。
将训练样本总集划分为不同大小的样本批次后,可按照样本批次与GPU的对应关系,向各个GPU输入对应的样本批次。
S405、获得各个GPU用于调节卷积神经网络模型的梯度值。
S406、计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数。
实施例五:
相应于上面的方法实施例,本申请实施例还提供了一种卷积神经网络模型同步训练集群,下文描述的一种卷积神经网络模型同步训练集群与上文描述的一种卷积神经网络模型同步训练方法可相互对应参照。
请参考图7,图7为本申请实施例中一种卷积神经网络模型同步训练集群的组成结构示意图。该集群包括:
处理器100,多个不同型号的GPU200,存储设备300;处理器分别与GPU具有通信连接;
存储设备中存储卷积神经网络模型的训练样本;
各个GPU中具有卷积神经网络模型;
其中,处理器,用于获取各个不同型号GPU对应的处理性能参数;根据处理性能参数为各个GPU确定对应的训练数据量;按照训练数据量分配训练样本给各个GPU;获得各个GPU用于调节卷积神经网络模型的梯度值;计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数;
GPU,用于从存储设备中获取训练样本,并利用训练样本对卷积神经网络模型进行训练,各个GPU将梯度值反馈给处理器;并从处理器中获取模型参数。
应用本申请实施例所提供的集群,获取各个不同型号GPU对应的处理性能参数;根据处理性能参数为各个GPU确定对应的训练数据量;按照训练数据量分配训练样本给各个GPU;训练样本为训练卷积神经网络模型的样本;获得各个GPU用于调节卷积神经网络模型的梯度值;计算梯度值的平均梯度值,并利用平均梯度值更新模型参数,以便各个GPU获取模型参数。
在本集群中,在利用同步数据并行对卷积神经网络进行训练之前,可获取各个不同型号GPU对应的处理性能参数,然后基于处理性能参数确定各个GPU对应的训练数据量。在训练卷积神经网络时,则按照训练数据量向各个GPU分配训练样本。由于输入至各个GPU的训练数据量与其处理性能参数相对应,因此,各个GPU按照被分配的训练数据量对同一个卷积神经网络的训练耗时之间的差异得到缩小,各个GPU之间训练等待时间可缩短,训练效率得到提升。与此同时,在本集群中,用于训练卷积神经网络的GPU的型号可不同,因而可减少闲置GPU,可降低硬件成本。
在本申请的一种具体实施方式中,处理器,具体用于向各个GPU同时发布同一个数据处理任务;对各个GPU进行监测,获得各个GPU分别完成数据处理任务的处理耗时;利用处理耗时确定处理性能参数;
各个GPU,具体用于在接收到数据处理任务后,执行数据处理任务。
其中,利用处理耗时确定处理性能参数,可具体包括:
计算所有处理耗时对应的最小公倍数,并计算最小公倍数与各个处理耗时分别对应的比值;
在预设常量系数集中选出与比值最接近的目标常量系数作为处理性能参数。
在本申请的一种具体实施方式中,处理器,具体用于根据处理性能参数确定各个GPU对应梯度值的加权系数;将各个GPU对应梯度值与对应加权系数结合后,计算平均梯度值。
在本申请的一种具体实施方式中,处理器,具体用于在按照训练数据量向各个GPU输入训练样本之前,还包括:
将训练样本总集划分为与各个GPU分别对应的训练样本子集;训练样本子集的训练样本量与训练数据量匹配;
或,将训练样本总集划分为与各个训练数据量分别对应的多种数据大小的样本批次。
相应地,处理器,按照训练数据量向各个GPU输入训练样本,可具体为按照训练样本子集与GPU的对应关系,向各个GPU分别输入对应的训练样本子集;或,按照样本批次与GPU的对应关系,向各个GPU分别输入对应的样本批次。
在本申请的一种具体实施方式中,处理器,获取各个不同型号GPU对应的处理性能参数,包括:按照GPU型号与处理性能参数的对应关系,从存储设备中获取各个不同型号GPU对应的处理性能参数。
在本申请的一种具体实施方式中,处理器,具体用于在训练轮次达到指定数值或卷积神经网络模型达到指定损失值时,对各个GPU内训练卷积神经网络模型的学习率进行调整。
在本申请的一种具体实施方式中,处理器,在根据处理性能参数为各个GPU分配对应的训练数据量,可按照处理性能与训练数据量的正相关对应关系,确定各个GPU对应的训练数据量。
实施例六:
本申请实施例所提供的卷积神经网络模型同步训练方法可应用于卷积神经网络模型同步训练集群,或者说,在本申请实施例所提供的卷积神经网络模型同步训练集群可实现卷积神经网络模型同步训练方法。为了便于本领域技术人员更好的逻辑卷积神经网络模型同步训练方法如何应用于卷积神经网络模型同步训练集群,下面以具体的应用场景并参照现有训练方式进行详细说明。
传统的数据同步并行训练模式如附图8所示,在每轮迭代开始时每个GPU从训练数据集获取相同batch_size大小的训练数据,然后各个GPU利用训练数据开始计算,在当前次迭代中要求所有的GPU全部完成前向计算与后向计算并求得梯度值后,将各GPU计算得到的梯度进行加和平均,然后用得到的平均梯度值去更新模型参数,在此过程中,若GPU计算型号速度稍有差异,便会出现计算较快的GPU在计算完后停下来等待还未完成计算的较慢的GPU的情况,从而降低了训练效率。
为了能够在同一集群中充分利用不同型号的GPU资源,避免资源浪费,同时提高训练效率,上述方法实施例提出了一种卷积神经网络模型同步训练方法,以及一种卷积神经网络模型同步训练集群。下面对在卷积神经网络模型同步训练集群上实现卷积神经网络模型同步训练方法进行说明。
可设置性能分析流程,对各个型号的GPU进行性能分析,进而求得能够使各GPU在单次迭代训练中同时完成训练的合适的batch_size数量。然后在正式训练的过程中,按照上述分析流程的分析结果,针对不同型号的GPU设置不同大小的batch_size训练数据量,从而使得每轮迭代训练过程中各个GPU能够在相同的时间内完成训练,如此有效避免了各GPU在训练过程中的空闲等待时间,提高了训练效率。同时各种不同型号的GPU都能被部署到同一训练集群当中有效利用,避免了硬件资源浪费。
具体实施过程如下:
首先进行性能分析,请参考图9,分析过程包括以下步骤:
步骤1.可假设训练数据集中获取的训练数据大小单位为minibatch,对各个不同型号的GPU0~GPUn,分别获取1000份minibatch训练数据;
步骤2.各GPU使用相同的网络结构对1000份minibatch数据进行1000次迭代计算(包括前向计算和后向计算),并统计每次迭代所耗时间;
步骤3.对GPU的1000次迭代时间分别求平均值,得到,GPU0、GPU1……GPUn的单个minibatch单次迭代训练所耗费的时间t0、t1……tn;
步骤4.求得t0、t1……tn的最小公倍数T;
步骤5.根据最小公倍数T求得各GPU在单次迭代过程中所需的训练数据量bach_size_i=T/ti*N。其中N为调整batch_size大小的常量系数。
请参考图10,对卷积神经网络模型进行分布式训练过程,具体包括以下步骤:
步骤1.按照性能分析流程求得的batch_size_i为各不同型号的GPU配置其每次迭代应获取的数据量;
步骤2.各GPUi按照自己的配置从训练数据集获取batch_size_i大小的训练数据量;同时获取最新模型参数;
步骤3.各GPUi分别进行前向计算和后向计算,获取梯度值;
步骤4.各GPU同时完成单次迭代运算后,利用平均梯度值更新模型参数;
步骤5.返回步骤2,循环训练,直到模型收敛。
可见,在卷积神经网络模型同步训练集群上应用了卷积神经网络模型同步训练方法的训练过程,即面向不同型号GPU集群的CNN模型同步数据并行训练方法,通过将各种不同型号的GPU添加到同一训练集群中去,提高现有资源的利用率;通过添加分析流程,即获取到与性能匹配的batch,最大限度的减少每轮迭代训练过程中GPU的空闲等待时间,从而提高了训练效率。
实施例七:
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种卷积神经网络模型同步训练方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的卷积神经网络模型同步训练方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

Claims (16)

1.一种卷积神经网络模型同步训练方法,其特征在于,包括:
获取各个不同型号GPU对应的处理性能参数;
根据所述处理性能参数为各个所述GPU确定对应的训练数据量;
按照所述训练数据量分配训练样本给各个所述GPU;所述训练样本为训练卷积神经网络模型的样本;
获得各个所述GPU用于调节所述卷积神经网络模型的梯度值;
计算所述梯度值的平均梯度值,并利用所述平均梯度值更新模型参数,以便各个所述GPU获取所述模型参数。
2.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,获取各个不同型号GPU对应的处理性能参数,包括:
向各个所述GPU同时发布同一个的数据处理任务;
对各个所述GPU进行监测,获得各个所述GPU分别完成所述数据处理任务的处理耗时;
利用所述处理耗时确定所述处理性能参数。
3.根据权利要求2所述的卷积神经网络模型同步训练方法,其特征在于,所述利用所述处理耗时确定所述处理性能参数,包括:
计算所有所述处理耗时对应的最小公倍数,并计算所述最小公倍数与各个所述处理耗时分别对应的比值;
在预设常量系数集中选出与所述比值最接近的目标常量系数作为所述处理性能参数。
4.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,获取各个不同型号GPU对应的处理性能参数,包括:
按照GPU型号与处理性能参数的对应关系,从存储设备中获取各个不同型号GPU对应的处理性能参数。
5.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,计算所述梯度值的平均梯度值,包括:
根据所述处理性能参数确定各个GPU对应梯度值的加权系数;
将各个所述GPU对应梯度值与对应加权系数结合后,计算所述平均梯度值。
6.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,在训练轮次达到指定数值或所述卷积神经网络模型达到指定损失值时,包括:
对各个所述GPU内训练所述卷积神经网络模型的学习率进行调整。
7.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,根据所述处理性能参数为各个所述GPU分配对应的训练数据量,包括:
按照处理性能与训练数据量的正相关对应关系,确定各个所述GPU对应的训练数据量。
8.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,在按照所述训练数据量向各个所述GPU输入训练样本之前,还包括:
将训练样本总集划分为与各个所述GPU分别对应的训练样本子集;所述训练样本子集的训练样本量与所述训练数据量匹配。
9.根据权利要求8所述的卷积神经网络模型同步训练方法,其特征在于,按照所述训练数据量向各个所述GPU输入训练样本,包括:
按照训练样本子集与GPU的对应关系,向各个所述GPU分别输入对应的训练样本子集。
10.根据权利要求1所述的卷积神经网络模型同步训练方法,其特征在于,在按照所述训练数据量向各个所述GPU输入训练样本之前,还包括:
将所述训练样本总集划分为与各个所述训练数据量分别对应的多种数据大小的样本批次。
11.根据权利要求10所述的卷积神经网络模型同步训练方法,其特征在于,按照所述训练数据量向各个所述GPU输入训练样本,包括:
按照样本批次与GPU的对应关系,向各个所述GPU分别输入对应的样本批次。
12.一种卷积神经网络模型同步训练集群,其特征在于,包括:
处理器,多个不同型号的GPU,存储设备;所述处理器分别与所述GPU具有通信连接;
所述存储设备中存储卷积神经网络模型的训练样本;
各个所述GPU中具有所述卷积神经网络模型;
其中,所述处理器,用于获取各个不同型号GPU对应的处理性能参数;根据所述处理性能参数为各个所述GPU确定对应的训练数据量;按照所述训练数据量分配所述训练样本给各个所述GPU;获得各个所述GPU用于调节所述卷积神经网络模型的梯度值;计算所述梯度值的平均梯度值,并利用所述平均梯度值更新模型参数,以便各个所述GPU获取所述模型参数;
所述GPU,用于从所述存储设备中获取所述训练样本,并利用所述训练样本对所述卷积神经网络模型进行训练,各个所述GPU将所述梯度值反馈给所述处理器;并从所述处理器中获取所述模型参数。
13.根据权利要求12所述的卷积神经网络模型同步训练集群,其特征在于,所述处理器,具体用于向各个所述GPU同时发布同一个数据处理任务;对各个所述GPU进行监测,获得各个所述GPU分别完成所述数据处理任务的处理耗时;利用所述处理耗时确定所述处理性能参数;
各个所述GPU,具体用于在接收到所述数据处理任务后,执行所述数据处理任务。
14.根据权利要求12所述的卷积神经网络模型同步训练集群,其特征在于,所述处理器,具体用于根据所述处理性能参数确定各个GPU对应梯度值的加权系数;将各个所述GPU对应梯度值与对应加权系数结合后,计算所述平均梯度值。
15.根据权利要求12所述的卷积神经网络模型同步训练集群,其特征在于,所述处理器,具体用于在按照所述训练数据量向各个所述GPU输入训练样本之前,还包括:
将训练样本总集划分为与各个所述GPU分别对应的训练样本子集;所述训练样本子集的训练样本量与所述训练数据量匹配;
或,将所述训练样本总集划分为与各个所述训练数据量分别对应的多种数据大小的样本批次。
16.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述卷积神经网络模型同步训练方法的步骤。
CN201910912956.1A 2019-09-25 2019-09-25 卷积神经网络模型同步训练方法、集群及可读存储介质 Active CN110705705B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910912956.1A CN110705705B (zh) 2019-09-25 2019-09-25 卷积神经网络模型同步训练方法、集群及可读存储介质
PCT/CN2019/108442 WO2021056390A1 (zh) 2019-09-25 2019-09-27 卷积神经网络模型同步训练方法、集群及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910912956.1A CN110705705B (zh) 2019-09-25 2019-09-25 卷积神经网络模型同步训练方法、集群及可读存储介质

Publications (2)

Publication Number Publication Date
CN110705705A true CN110705705A (zh) 2020-01-17
CN110705705B CN110705705B (zh) 2022-04-22

Family

ID=69197652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910912956.1A Active CN110705705B (zh) 2019-09-25 2019-09-25 卷积神经网络模型同步训练方法、集群及可读存储介质

Country Status (2)

Country Link
CN (1) CN110705705B (zh)
WO (1) WO2021056390A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722923A (zh) * 2020-05-29 2020-09-29 浪潮电子信息产业股份有限公司 一种异构资源的调用方法、装置和计算机可读存储介质
CN111738415A (zh) * 2020-06-17 2020-10-02 北京字节跳动网络技术有限公司 模型同步更新方法、装置及电子设备
CN111738416A (zh) * 2020-06-17 2020-10-02 北京字节跳动网络技术有限公司 模型同步更新方法、装置及电子设备
CN111860867A (zh) * 2020-07-24 2020-10-30 苏州浪潮智能科技有限公司 一种混合异构系统的模型训练方法、系统及相关装置
CN112508191A (zh) * 2020-12-14 2021-03-16 北京地平线信息技术有限公司 训练深度学习模型的方法及装置、电子设备及存储介质
CN112862662A (zh) * 2021-03-12 2021-05-28 云知声智能科技股份有限公司 一种分布式训练transformer-xl语言模型的方法和设备
CN113011563A (zh) * 2021-03-19 2021-06-22 北京大学 基于gpu的卷积神经网络批归一化处理方法
CN113327598A (zh) * 2021-06-30 2021-08-31 北京有竹居网络技术有限公司 模型的训练方法、语音识别方法、装置、介质及设备
CN113743570A (zh) * 2020-05-29 2021-12-03 华为技术有限公司 一种神经网络的训练方法及相关设备
CN114356540A (zh) * 2021-10-30 2022-04-15 腾讯科技(深圳)有限公司 一种参数更新方法、装置、电子设备和存储介质
CN114492801A (zh) * 2022-04-18 2022-05-13 中国科学院自动化研究所 一种神经网络的训练方法、装置及设备
CN114707532A (zh) * 2022-01-11 2022-07-05 中铁隧道局集团有限公司 一种基于改进的Cascade R-CNN的探地雷达隧道病害目标检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
US20180121806A1 (en) * 2016-10-27 2018-05-03 International Business Machines Corporation Efficient parallel training of a network model on multiple graphics processing units
CN108182469A (zh) * 2017-12-27 2018-06-19 郑州云海信息技术有限公司 一种神经网络模型训练方法、系统、装置及存储介质
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN108829517A (zh) * 2018-05-31 2018-11-16 中国科学院计算技术研究所 一种用于在集群环境下进行机器学习的训练方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021395B (zh) * 2017-12-27 2022-04-29 北京金山安全软件有限公司 一种面向神经网络的数据并行处理方法及系统
CN109657793B (zh) * 2018-12-26 2020-09-22 广州小狗机器人技术有限公司 模型训练方法及装置、存储介质及电子设备
CN109902818B (zh) * 2019-01-15 2021-05-25 中国科学院信息工程研究所 一种面向深度学习训练任务的分布式加速方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121806A1 (en) * 2016-10-27 2018-05-03 International Business Machines Corporation Efficient parallel training of a network model on multiple graphics processing units
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN108182469A (zh) * 2017-12-27 2018-06-19 郑州云海信息技术有限公司 一种神经网络模型训练方法、系统、装置及存储介质
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN108829517A (zh) * 2018-05-31 2018-11-16 中国科学院计算技术研究所 一种用于在集群环境下进行机器学习的训练方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SUNWOO LEE等: "Communication-Efficient Parallelization Strategy for Deep Convolutional Neural Network Training", 《2018 IEEE/ACM MACHINE LEARNING IN HPC ENVIRONMENTS (MLHPC)》 *
毕占甲: "基于多 GPU 的多层神经网络并行加速训练算法的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
郑焕鑫: "基于多机多卡的卷积神经网络性能优化", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113743570A (zh) * 2020-05-29 2021-12-03 华为技术有限公司 一种神经网络的训练方法及相关设备
CN111722923A (zh) * 2020-05-29 2020-09-29 浪潮电子信息产业股份有限公司 一种异构资源的调用方法、装置和计算机可读存储介质
CN111738415A (zh) * 2020-06-17 2020-10-02 北京字节跳动网络技术有限公司 模型同步更新方法、装置及电子设备
CN111738416A (zh) * 2020-06-17 2020-10-02 北京字节跳动网络技术有限公司 模型同步更新方法、装置及电子设备
CN111738416B (zh) * 2020-06-17 2023-07-18 北京字节跳动网络技术有限公司 模型同步更新方法、装置及电子设备
CN111738415B (zh) * 2020-06-17 2023-07-04 北京字节跳动网络技术有限公司 模型同步更新方法、装置及电子设备
CN111860867A (zh) * 2020-07-24 2020-10-30 苏州浪潮智能科技有限公司 一种混合异构系统的模型训练方法、系统及相关装置
CN112508191A (zh) * 2020-12-14 2021-03-16 北京地平线信息技术有限公司 训练深度学习模型的方法及装置、电子设备及存储介质
CN112862662A (zh) * 2021-03-12 2021-05-28 云知声智能科技股份有限公司 一种分布式训练transformer-xl语言模型的方法和设备
CN113011563A (zh) * 2021-03-19 2021-06-22 北京大学 基于gpu的卷积神经网络批归一化处理方法
CN113327598A (zh) * 2021-06-30 2021-08-31 北京有竹居网络技术有限公司 模型的训练方法、语音识别方法、装置、介质及设备
WO2023273579A1 (zh) * 2021-06-30 2023-01-05 北京有竹居网络技术有限公司 模型的训练方法、语音识别方法、装置、介质及设备
CN113327598B (zh) * 2021-06-30 2023-11-14 北京有竹居网络技术有限公司 模型的训练方法、语音识别方法、装置、介质及设备
CN114356540A (zh) * 2021-10-30 2022-04-15 腾讯科技(深圳)有限公司 一种参数更新方法、装置、电子设备和存储介质
CN114707532A (zh) * 2022-01-11 2022-07-05 中铁隧道局集团有限公司 一种基于改进的Cascade R-CNN的探地雷达隧道病害目标检测方法
CN114492801A (zh) * 2022-04-18 2022-05-13 中国科学院自动化研究所 一种神经网络的训练方法、装置及设备

Also Published As

Publication number Publication date
CN110705705B (zh) 2022-04-22
WO2021056390A1 (zh) 2021-04-01

Similar Documents

Publication Publication Date Title
CN110705705B (zh) 卷积神经网络模型同步训练方法、集群及可读存储介质
CN113326126B (zh) 任务处理方法、任务调度方法、装置及计算机设备
CN110515739A (zh) 深度学习神经网络模型负载计算方法、装置、设备及介质
CN107688492B (zh) 资源的控制方法、装置和集群资源管理系统
CN111064633B (zh) 一种云边协同电力信息通信设备自动化测试资源分配方法
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN113051053B (zh) 异构资源调度方法、装置、设备和计算机可读存储介质
EP3776371A1 (en) Coordinated heterogeneous processing of training data for deep neural networks
CN108304925B (zh) 一种池化计算装置及方法
CN116680060B (zh) 面向异构计算系统的任务分配方法、装置、设备和介质
CN112463390A (zh) 一种分布式任务调度方法、装置、终端设备及存储介质
CN112862112A (zh) 联邦学习方法、存储介质、终端、服务器、联邦学习系统
CN110874626A (zh) 一种量化方法及装置
WO2022083527A1 (zh) 确定逻辑核布局的方法、模型训练方法、电子设备、介质
CN106844024B (zh) 一种自学习运行时间预测模型的gpu/cpu调度方法及系统
CN103164338A (zh) 并发处理系统的模拟方法及装置
CN115202890A (zh) 数据元件生产资源空间分配方法、系统及设备
TWI770534B (zh) 自動機器學習系統效能調優方法、裝置、設備及介質
CN110928683B (zh) 基于两类密集型虚拟机的边缘计算资源分配方法
CN114020635A (zh) 基于场景化消息队列的数据测试方法、装置、设备及介质
CN113946274A (zh) 数据处理方法、装置、设备及介质
US20240111592A1 (en) Method, system, and computer readable media for elastic heterogeneous clustering and heterogeneity-aware job configuration
US11954527B2 (en) Machine learning system and resource allocation method thereof
CN114281545B (zh) 基于cpu资源与图像模型时延关系的资源分配方法
CN116225644A (zh) 模型训练系统的调度方法、电子设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant