一种网络训练的数据集缓存方法、装置、设备及存储介质与流程

文档序号:24172304发布日期:2021-03-05 19:31阅读:102来源:国知局
一种网络训练的数据集缓存方法、装置、设备及存储介质与流程

1.本申请涉及深度学习领域,特别是涉及一种网络训练的数据集缓存方法、装置、设备及存储介质。


背景技术:

2.深度学习在当前得到了广泛的运用,深度学习指的是通过大量数据对神经网络进行特征训练,产生具有识别相应数据能力的网络模型。
3.由于神经网络训练的过程中所使用的样本数据集的多少,直接影响深度学习的效果,因此当前往往以包含有多个训练节点以及数据集存储节点的集群方式,采用多个训练节点共同利用数据集存储节点中的数据集对神经网络进行训练。在训练过程中,不同训练节点中缓存的数据集可能存在差异,并且当前往往存在需要使用多个训练节点基于相同数据集进行神经网络训练的情况,而神经网络训练的整体可靠性也是当前本领域所关注的重点。
4.由此可见,提供一种网络训练的数据集缓存方法,以确保训练节点缓存待训练数据集的可靠性,进而确保网络训练的整体可靠性,是本领域技术人员需要解决的问题。


技术实现要素:

5.本申请的目的是提供一种网络训练的数据集缓存方法、装置、设备及存储介质,以确保训练节点缓存待训练数据集的可靠性,进而确保网络训练的整体可靠性。
6.为解决上述技术问题,本申请提供一种网络训练的数据集缓存方法,包括:
7.统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据集的过程中所需的磁盘性能开销;
8.监控未缓存待训练数据集的训练节点的当前性能参数;
9.基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点;
10.利用目的节点缓存由源节点传入的待训练数据集,以基于目的节点对待训练数据集执行网络训练。
11.优选地,在利用目的节点缓存由源节点传入的待训练数据集之前,方法还包括:
12.判断网络训练集群中是否存在缓存有待训练数据集的源训练节点;
13.若网络训练集群中存在缓存有待训练数据集的源训练节点,则在源训练节点中选取与目的节点之间的空闲网络带宽最大的目标源训练节点;
14.相应的,利用目的节点缓存由源节点传入的待训练数据集,包括:
15.利用目的节点缓存由目标源训练节点传入的待训练数据集。
16.优选地,当网络训练集群中不存在缓存有待训练数据集的源训练节点时,利用目的节点缓存由源节点传入的待训练数据集,包括:
17.利用目的节点缓存由网络训练集群中的数据集存储节点传入的待训练数据集。
18.优选地,统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据
集的过程中所需的磁盘性能开销,包括:
19.基于未缓存待训练数据集的训练节点的硬件性能参数以及待训练数据集的数据属性参数统计得到磁盘性能开销。
20.优选地,硬件性能参数包括磁盘转速、磁盘平均巡道时间以及磁盘最大传输速率;
21.待训练数据集的数据属性参数包括平均文件大小;平均文件大小基于待训练数据集的数据总量以及文件总量运算得到。
22.优选地,在利用目的节点缓存由源节点传入的待训练数据集之前,方法还包括:
23.判断目的节点的缓存队列是否存在空闲空间;
24.若是,则执行利用目的节点缓存由源节点传入的待训练数据集的步骤;
25.否则,将缓存队列中执行次数最少的目标待训练数据集删除,并执行利用目的节点缓存由源节点传入的待训练数据集的步骤。
26.优选地,当前性能参数包括i/o队列长度,磁盘性能开销包括iops开销;
27.基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,包括:
28.在网络集群中选取i/o队列长度小于iops开销的目的节点。
29.此外,本申请还提供一种网络训练的数据集缓存装置,包括:
30.开销统计模块,用于统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据集的过程中所需的磁盘性能开销;
31.参数监控模块,用于监控未缓存待训练数据集的训练节点的当前性能参数;
32.节点选取模块,用于基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点;
33.节点缓存模块,用于利用目的节点缓存由源节点传入的待训练数据集,以基于目的节点对待训练数据集执行网络训练。
34.此外,本申请还提供一种网络训练的数据集缓存设备,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行计算机程序时实现如上述的网络训练的数据集缓存方法的步骤。
37.此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的网络训练的数据集缓存方法的步骤。
38.本申请所提供的网络训练的数据集缓存方法,首先统计网络训练集群中未缓存待训练数据集的训练节点,在缓存待训练数据集的过程中所需的磁盘性能开销,进而监控未缓存有待训练数据集的训练节点的当前性能参数,并基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,进而利用目的节点缓存由源节点传入的待训练数据集,以此基于目的节点对待训练数据集执行网络训练。由于本方法根据预估得到缓存待训练数据集所需的磁盘性能开销,在网络训练集群的训练节点中选取当前性能参数满足磁盘性能开销的目的节点对源节点传入的待训练数据集进行缓存,相对确保了训练节点缓存待训练数据集的可靠性,进而确保了网络训练的整体可靠性。此外,本申请还提供一种网络训练的数据集缓存装置、设备及存储介质,有益效果同上所述。
附图说明
39.为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本申请实施例公开的一种网络训练的数据集缓存方法的流程图;
41.图2为本申请实施例公开的一种网络训练的数据集缓存装置的结构示意图。
具体实施方式
42.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
43.由于神经网络训练的过程中所使用的样本数据集的多少,直接影响深度学习的效果,因此当前往往以包含有多个训练节点以及数据集存储节点的集群方式,采用多个训练节点共同利用数据集存储节点中的数据集对神经网络进行训练。在训练过程中,不同训练节点中缓存的数据集可能存在差异,并且当前往往存在需要使用多个训练节点基于相同数据集进行神经网络训练的情况,而神经网络训练的整体可靠性也是当前本领域所关注的重点。
44.为此,本申请的核心是提供一种网络训练的数据集缓存方法,以确保训练节点缓存待训练数据集的可靠性,进而确保网络训练的整体可靠性。
45.为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
46.请参见图1所示,本申请实施例公开了一种网络训练的数据集缓存方法,包括:
47.步骤s10:统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据集的过程中所需的磁盘性能开销。
48.需要说明的是,本实施例的执行主体可以为网络训练集群中的具有运算能力的任意节点。本步骤首先统计网络训练集群中未缓存待训练数据集的训练节点,在缓存相应待训练数据集过程中所需要的磁盘性能开销,其中,待训练数据集指的是网络训练过程中所使用的样本数据的集合,统计未缓存待训练数据集的训练节点对应的磁盘性能开销,本质上是预估训练节点在缓存相应待训练数据集过程中被占用的通信及运行资源的开销,另外,不同训练节点缓存同一待训练数据集时的磁盘性能开销可以根据相应训练节点的硬件参数差异而有所不同。
49.步骤s11:监控未缓存待训练数据集的训练节点的当前性能参数。
50.在统计得到训练节点在缓存待训练数据集的过程中所需的磁盘性能开销之后,本步骤进一步监控未缓存有待训练数据集的训练节点的当前性能参数,目的是在后续步骤中根据训练节点的当前性能参数选取能够承载与待训练数据集对应的磁盘性能开销的目的节点。
51.步骤s12:基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点。
52.在监控未缓存待训练数据集的训练节点的当前性能参数之后,本步骤进一步基于当前性能参数在网络集群中选取满足磁盘性能开销的目的节点,目的是在后续步骤中,通过目的节点缓存该待训练数据集。
53.步骤s13:利用目的节点缓存由源节点传入的待训练数据集,以基于目的节点对待训练数据集执行网络训练。
54.在基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点之后,本步骤进一步利用目的节点缓存由源节点传入的待训练数据集,以此基于目的节点对待训练数据集执行网络训练,目的是确保将待训练数据集缓存至目的节点时,目的节点能够对待训练数据集进行可靠存储。
55.本申请所提供的网络训练的数据集缓存方法,首先统计网络训练集群中未缓存待训练数据集的训练节点,在缓存待训练数据集的过程中所需的磁盘性能开销,进而监控未缓存有待训练数据集的训练节点的当前性能参数,并基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,进而利用目的节点缓存由源节点传入的待训练数据集,以此基于目的节点对待训练数据集执行网络训练。由于本方法根据预估得到缓存待训练数据集所需的磁盘性能开销,在网络训练集群的训练节点中选取当前性能参数满足磁盘性能开销的目的节点对源节点传入的待训练数据集进行缓存,相对确保了训练节点缓存待训练数据集的可靠性,进而确保了网络训练的整体可靠性。
56.在上述实施例的基础上,作为一种优选的实施方式,在利用目的节点缓存由源节点传入的待训练数据集之前,方法还包括:
57.判断网络训练集群中是否存在缓存有待训练数据集的源训练节点;
58.若网络训练集群中存在缓存有待训练数据集的源训练节点,则在源训练节点中选取与目的节点之间的空闲网络带宽最大的目标源训练节点;
59.相应的,利用目的节点缓存由源节点传入的待训练数据集,包括:
60.利用目的节点缓存由目标源训练节点传入的待训练数据集。
61.需要说明的是,在本实施方式中,当判定网络训练集群中存在缓存有待训练数据集的源训练节点时,即网络训练集群中已存储有待训练数据集的训练节点,在此情况下,利用目的节点缓存由源节点传入的待训练数据集之前,首先在源训练节点中选取与目的节点之间的空闲网络带宽最大的目标源训练节点,进而在利用目的节点缓存由源节点传入的待训练数据集时,具体是通过目的节点缓存由源训练节点传入的待训练数据集,由于目标源训练节点与目的节点之间的带宽相对较高,因此目标源训练节点与目的节点之间的网络传输效率较高,进而本实施方式进一步提高了训练节点之间共享待训练数据集的整体效率。
62.更进一步的,作为一种优选的实施方式,当网络训练集群中不存在缓存有待训练数据集的源训练节点时,利用目的节点缓存由源节点传入的待训练数据集,包括:
63.利用目的节点缓存由网络训练集群中的数据集存储节点传入的待训练数据集。
64.需要说明的是,在本实施方式中,网络训练集群包含有数据集存储节点,数据集存储节点用于存储待训练数据集,当判定网络训练集群中不存在缓存有待训练数据集的源训练节点时,则在利用目的节点缓存由源节点传入的待训练数据集时,具体利用目的节点缓存由网络训练集群中的数据集存储节点传入的待训练数据集,以此进一步确保目的节点对于待训练数据集进行获取的可靠性。
65.在上述实施例的基础上,作为一种优选的实施方式,统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据集的过程中所需的磁盘性能开销,包括:
66.基于未缓存待训练数据集的训练节点的硬件性能参数以及待训练数据集的数据属性参数统计得到磁盘性能开销。
67.需要说明的是,本实施方式在统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据集的过程中所需的磁盘性能开销时,具体是基于未缓存待训练数据集的训练节点的硬件性能参数以及待训练数据集的数据属性参数统计得到性能磁盘开销,其中,硬件性能参数指的是训练节点的硬件运行指标参数,数据属性参数指的是待训练数据集所具有的数据特征参数。由于硬件性能参数能够准确表征训练节点进行数据缓存时的效率,而数据属性参数能够准确表征待训练数据集的数据量级以及数据类型等特征,因此本实施方式基于训练节点的硬件性能参数以及待训练数据集的数据属性参数统计得到磁盘性能开销,能够进一步提高统计得到的磁盘性能开销的准确性。
68.更进一步的,作为一种优选的实施方式,硬件性能参数包括磁盘转速、磁盘平均巡道时间以及磁盘最大传输速率;
69.待训练数据集的数据属性参数包括平均文件大小;平均文件大小基于待训练数据集的数据总量以及文件总量运算得到。
70.本实施方式中,硬件性能参数包括磁盘转速、磁盘平均巡道时间以及磁盘最大传输速率。其中,磁盘转速指的是,磁盘盘片在一分钟内所能完成的最大转数,它是决定磁盘内部传输率的关键因素之一,在很大程度上直接影响到磁盘的速度;磁盘平均巡道时间,是指磁盘在接收到系统指令后,磁头从开始移动到数据所在的磁道所花费时间的平均值,它在一定程度上体现了磁盘读取数据的能力,是影响磁盘内部数据传输率的重要参数;磁盘最大传输速率,指的是数据由磁盘的磁头到高速缓存之间传输的速度,影响数据在磁盘中缓存的整体效率。
71.另外,本实施方式中,待训练数据集的数据属性参数包括平均文件大小,平均文件大小基于待训练数据集的数据总量以及文件总量运算得到,也就是说,通过待训练数据集的数据总量,即数据总大小与文件总量,即文件个数进行商运算得到,平均文件大小指的是待训练数据集中的每一个文件需要占用的磁盘存储空间平均值。
72.本实施方式通过对训练节点的硬件性能参数以及待训练数据集的数据属性参数进行了细化,以此进一步提高了统计得到的磁盘性能开销的准确性。
73.在上述实施例的基础上,作为一种优选的实施方式,在利用目的节点缓存由源节点传入的待训练数据集之前,方法还包括:
74.判断目的节点的缓存队列是否存在空闲空间;
75.若是,则执行利用目的节点缓存由源节点传入的待训练数据集的步骤;
76.否则,将缓存队列中执行次数最少的目标待训练数据集删除,并执行利用目的节点缓存由源节点传入的待训练数据集的步骤。
77.需要说明的是,在本实施方式中,在利用目的节点缓存由源节点传入的待训练数据集之前,进一步判断目的节点的缓存队列中是否存在空闲空间,也就是判断缓存队列中是否能够正常存储待训练数据集,进而当目的节点的缓存队列存在空闲空间时,则进一步执行利用目的节点缓存由源节点传入的待训练数据集的步骤,相反的,当目的节点的缓存
队列不存在空闲空间时,则将缓存队列中执行次数最少的目标待训练数据集删除,并执行利用目的节点缓存由源节点传入的待训练数据集的步骤,以此确保待训练数据集能够正常存储至目的节点的缓存队列,进一步确保了数据集缓存过程的整体可靠性。
78.在上述一系列实施方式的基础上,作为一种优选的实施方式,当前性能参数包括i/o队列长度,磁盘性能开销包括iops开销;
79.基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,包括:
80.在网络集群中选取i/o队列长度小于iops开销的目的节点。
81.需要说明的是,在本实施方式中,当前性能参数包括i/o(input/output的缩写,即输入输出端口)队列长度,磁盘性能开销包括iops开销,iops(input/output,operations per second)是一个用于计算机存储设备(如磁盘(hdd)、固态磁盘(ssd)或存储区域网络(san))性能测试的测量方式,可以视为是每秒的读写次数。在基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点时,具体是在网络集群中选取i/o队列长度小于iops开销的目的节点,目的是确保待训练数据集能够可靠缓存至所选取的目的节点,进而进一步确保了数据集缓存过程的整体可靠性。
82.为了进一步加深对于上述实施例的理解,本申请还提供一种具体应用场景下的场景实施例做进一步说明。
83.对于集群中的每个训练节点,可获得用户进行数据集缓存的磁盘的下列参数:磁盘转速(rpm),磁盘平均寻道时间(avgseektime),磁盘最大传输速率(maxtransrate)。通过以上4个参数、数据集的平均文件大小(avgsize)以及下式,计算该磁盘在该数据集的缓存时的单次io时间,即iotime:
[0084][0085]
根据上式可得在该数据集下,每次io操作耗时的近似值。
[0086]
对于该数据集在当前的节点进行缓存时的最大iops能力,可以通过下式近似计算:
[0087][0088]
同时,对于每个训练节点,通过监控可得到数据集缓存磁盘的wrqm/s值、rrqm/s和avgqu-sz值。其中wrqm/s代表该磁盘当前的每秒合并数据(merge)后的写次数,rrqm/s代表该磁盘当前的每秒合并数据(merge)后的读次数,avgqu-sz代表该磁盘的i/o队列长度。考虑到iotime的增加与iops的增加并不是一个完全线性的关系,事实上在达到某个iops值之后,iotime会随着iops的增加而显著提升。故本方法对于avgqu-sz<iops*70%的节点,做为本次数据集缓存的目的节点,用于缓存待训练数据集。
[0089]
请参见图2所示,本申请实施例提供了一种网络训练的数据集缓存装置,包括:
[0090]
开销统计模块10,用于统计网络训练集群中未缓存待训练数据集的训练节点在缓存待训练数据集的过程中所需的磁盘性能开销;
[0091]
参数监控模块11,用于监控未缓存待训练数据集的训练节点的当前性能参数;
[0092]
节点选取模块12,用于基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点;
[0093]
节点缓存模块13,用于利用目的节点缓存由源节点传入的待训练数据集,以基于目的节点对待训练数据集执行网络训练。
[0094]
本申请所提供的网络训练的数据集缓存装置,首先统计网络训练集群中未缓存待训练数据集的训练节点,在缓存待训练数据集的过程中所需的磁盘性能开销,进而监控未缓存有待训练数据集的训练节点的当前性能参数,并基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,进而利用目的节点缓存由源节点传入的待训练数据集,以此基于目的节点对待训练数据集执行网络训练。由于本装置根据预估得到缓存待训练数据集所需的磁盘性能开销,在网络训练集群的训练节点中选取当前性能参数满足磁盘性能开销的目的节点对源节点传入的待训练数据集进行缓存,相对确保了训练节点缓存待训练数据集的可靠性,进而确保了网络训练的整体可靠性。
[0095]
此外,本申请还提供一种网络训练的数据集缓存设备,包括:
[0096]
存储器,用于存储计算机程序;
[0097]
处理器,用于执行计算机程序时实现如上述的网络训练的数据集缓存方法的步骤。
[0098]
本申请所提供的网络训练的数据集缓存设备,首先统计网络训练集群中未缓存待训练数据集的训练节点,在缓存待训练数据集的过程中所需的磁盘性能开销,进而监控未缓存有待训练数据集的训练节点的当前性能参数,并基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,进而利用目的节点缓存由源节点传入的待训练数据集,以此基于目的节点对待训练数据集执行网络训练。由于本设备根据预估得到缓存待训练数据集所需的磁盘性能开销,在网络训练集群的训练节点中选取当前性能参数满足磁盘性能开销的目的节点对源节点传入的待训练数据集进行缓存,相对确保了训练节点缓存待训练数据集的可靠性,进而确保了网络训练的整体可靠性。
[0099]
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的网络训练的数据集缓存方法的步骤。
[0100]
本申请所提供的计算机可读存储介质,首先统计网络训练集群中未缓存待训练数据集的训练节点,在缓存待训练数据集的过程中所需的磁盘性能开销,进而监控未缓存有待训练数据集的训练节点的当前性能参数,并基于当前性能参数在网络训练集群中选取满足磁盘性能开销的目的节点,进而利用目的节点缓存由源节点传入的待训练数据集,以此基于目的节点对待训练数据集执行网络训练。由于本计算机可读存储介质根据预估得到缓存待训练数据集所需的磁盘性能开销,在网络训练集群的训练节点中选取当前性能参数满足磁盘性能开销的目的节点对源节点传入的待训练数据集进行缓存,相对确保了训练节点缓存待训练数据集的可靠性,进而确保了网络训练的整体可靠性。
[0101]
以上对本申请所提供的一种网络训练的数据集缓存方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0102]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1