一种机器学习训练数据集的获取方法、获取装置及终端与流程

文档序号:26636710发布日期:2021-09-14 23:43阅读:235来源:国知局
一种机器学习训练数据集的获取方法、获取装置及终端与流程

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.图1是本技术实施例提供的一种机器学习训练数据集的获取方法的流程图一;
26.图2是本技术实施例提供的一种机器学习训练数据集的获取方法的流程图二;
27.图3是本技术实施例提供的一种训练数据集的缓存架构图;
28.图4是本技术实施例提供的一种机器学习训练数据集的获取装置的结构图;
29.图5是本技术实施例提供的一种终端的结构图。
具体实施方式
30.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
31.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
32.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
33.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
34.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0035]
具体实现中,本技术实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
[0036]
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
[0037]
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
[0038]
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸
敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
[0039]
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0040]
为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
[0041]
参见图1,图1是本技术实施例提供的一种机器学习训练数据集的获取方法的流程图一。如图1所示,一种机器学习训练数据集的获取方法,该方法包括以下步骤:
[0042]
步骤101,获取机器学习训练任务中训练数据的打包指令,所述打包指令中包括所述训练数据的打包策略。
[0043]
机器学习训练任务例如为对水果进行分类识别的模型训练任务,或者对人脸进行识别匹配的模型训练任务等等。
[0044]
其中该训练数据具体为用于训练节点使用以实现执行训练任务的相关数据,该训练数据中包括训练文字、训练图片以及对应标注结果数据等内容。
[0045]
这里,打包策略具体为实现对当前需要执行的机器学习训练任务中训练数据进行打包的策略,该策略中具体可以包括:执行打包动作所需要的算力资源配置、打包处理流程配置、处理进程数量配置等等,可以根据实际需要进行策略配置。
[0046]
在具体实施时,可以是通过数据集打包策略管理中心,进行打包策略配置,主要参数有:
[0047]
1、算力资源配置。包括cpu_number:中央处理器cpu数量、mem_number:存储器memory数量、gpu_number:图形处理器gpu数量、storage:存储空间。
[0048]
2、打包流程配置。包括process_pipeline:配置处理流程节点,以及节点之间的串行并行关系。
[0049]
3、处理进程数量:process_number。
[0050]
4、处理的目标数据集合:source_dataset。
[0051]
步骤102,基于所述打包指令,向所述机器学习训练任务的分配节点服务器发送训练数据集的本地缓存查询请求。
[0052]
其中,该分配节点服务器被分配来执行机器学习训练任务。
[0053]
其中,该训练数据集对应于该机器学习训练任务所需的训练数据打包后的状态。这里,在机器学习训练任务被触发后,基于机器学习训练任务中训练数据的打包指令,先从分配节点服务器的本地查询是否存在该机器学习训练任务所需的训练数据集。
[0054]
步骤103,在基于所述本地缓存查询请求,确定所述分配节点服务器的本地缓存中不存在所述训练数据集的情况下,向远程服务器发送所述训练数据集的远程缓存查询请求。
[0055]
在分配节点服务器的缓存中不存在该机器学习训练任务所需的训练数据集时,则向远程服务器的缓存中进行查找,是否存在。其中,该远程服务器中存储的是训练数据集的缓存内容,是对原始训练数据已经打包完成的数据内容,区别于数据中心中存储的机器学习训练任务所需的训练数据的源数据。
[0056]
通过在训练节点本地查找及在远程服务器进行远程查找训练数据集,尽量减少从数据中心对训练数据的源数据的获取,提升对打包完成的训练数据集的快速获取过程。
[0057]
步骤104,在基于所述远程缓存查询请求,确定所述远程服务器的缓存中不存在所
述训练数据集的情况下,通过资源调度器获取与所述打包策略相对应的算力资源。
[0058]
当在训练节点本地查找及在远程服务器进行远程查找训练数据集均未找到的情况下,则说明该训练任务在很大程度上为一个完全没有执行过的新任务,则此时,直接按照正常的数据打包流程进行训练任务的打包。这里,需要结合资源调度器进行算力资源调度。
[0059]
资源调度器,主要通过获取打包策略里的算力资源配置,对训练节点服务器集群进行资源调度,将通过最优组合算法,将算力需求的一个或多个服务器节点加入到数据打包算力资源池,只负责当前打包任务的计算工作,以利用其最佳性能,最大化利用资源,使打包时间最短。在完成打包任务后,通过资源调度器将算力资源对应调度的服务器节点从算力资源池释放,使其参与其它数据集处理任务或其他类型任务,使算力资源得到充分的利用。
[0060]
步骤105,基于所述算力资源执行所述打包策略,得到所述训练数据集并将所述训练数据集分发至所述分配节点服务器,指示所述分配节点服务器将所述训练数据集缓存至本地。
[0061]
上述各实施步骤中,执行主体具体可以是机器学习训练任务处理装置,具体可以是该机器学习训练任务处理装置中所包含的数据集处理器。
[0062]
在对训练数据进行打包后,则将打包得到的训练数据集分发至分配节点服务器,以使其在本地进行缓存,一方面可以使分配节点服务器基于该缓存的训练数据集执行机器学习训练任务,另一方面,可以在下次再执行相同或相似训练任务时,可以使得训练节点服务器本地存储有相关的训练数据集,实现训练数据的快速获取。
[0063]
该过程中,通过数据集打包策略、数据缓存策略、以及数据分发等策略,提高了各节点服务器中算力资源和存储资源的利用率,大幅降低了数据传输频率,节省带宽流量,缩短数据读写时间,提高硬件使用寿命,且优化了算法训练任务调度过程,使算法训练任务能够匹配到资源最佳的训练节点服务器,有效解决大规模数据场景算法训练的数据打包、数据传输等问题,大大缩短机器学习算法训练时间。
[0064]
对应地,在该指示所述分配节点服务器将所述训练数据集缓存至本地之后,还包括:指示所述分配节点服务器,基于所述训练数据集,执行所述机器学习训练任务。
[0065]
进一步地,作为一可选的实施方式,其中,所述基于所述算力资源执行所述打包策略,得到所述训练数据集之后,还包括:
[0066]
判断处理过与所述机器学习训练任务同类型的训练任务的同层级节点服务器的本地是否缓存有所述训练数据集;
[0067]
若判断结果为否,则将所述训练数据集分发至所述同层级节点服务器,指示所述同层级节点服务器将所述训练数据集缓存至本地。
[0068]
这里,执行的是在算力资源执行所述打包策略,得到所述训练数据集之后,执行的数据分发策略,当该训练任务在很大程度上为一个完全没有执行过相同或相似任务的新任务时,需要对打包好的与该训练任务对应的训练数据集进行分发处理,一方面是将该训练数据集分发至训练节点本地,另一方面是,将该训练数据集分发至与该机器学习训练任务同类型的训练任务的同层级节点服务器,以使其他节点在后续执行相同或相似任务时可以从本地进行训练数据集的直接获取。
[0069]
在具体实施过程中,可以设置数据分发策略,数据分发策略确定了数据的分发规
则,决定被使用过的数据如何及时分发到机器学习训练节点,以达到数据在被算法训练任务a使用后,能够在同一类型的算法训练任务b进行训练时及时从训练节点本地缓存获取数据。
[0070]
在打包得到或者从远程服务器获取得到训练数据集并分发至训练节点服务器本地,或者从训练节点服务器本地查询得到训练数据集后,训练节点服务器执行机器学习训练任务,此时可以对训练节点服务器(即分配节点服务器)层执行过该机器学习训练任务的相关信息进行记录,可以记录该训练任务所述类型、执行时间、该训练任务所对应的训练数据集等等。
[0071]
具体地,在实际应用中,数据分发策略主要为当在训练节点服务器node1及训练节点服务器node2中发起一个类型l(如水果分类训练)的机器学习训练任务a1,使用数据集ds1,缓存策略,数据集会被缓存到node1、node2,同时上报node1、node2曾经执行过l类型的算法训练任务及存在数据集ds1的缓存,且数据集ds1有可能缓存到远程服务器中。
[0072]
进一步地,该分配节点服务器可以是服务器集群中,处理过所述机器学习训练任务或处理过与所述机器学习训练任务同类型的训练任务的节点服务器。
[0073]
可以尽可能实现在训练任务执行节点的本地查找到对应的训练数据集,提升整个训练任务执行过程中的效率。
[0074]
例如,在具体实现时,可以设置算法训练任务调度策略,通过训练任务调度器查找节点服务器集群中是否有执行过同一种大类算法训练,如果有,则优先选用该些节点服务器作为分配节点服务器,并执行上述实施过程;还可以通过训练任务调度器查找节点服务器集群中是否存在执行过同一种大类算法训练且本地有算法训练任务t要使用的数据集缓存的训练节点服务器node(1

x),如果存在,则将该算法训练任务t调度到查找到的node(1...x)上,保证该算法训练任务可以优先从训练节点本地缓存获取训练数据。
[0075]
本技术实施例,基于机器学习训练任务中的打包指令,向机器学习训练任务的分配节点服务器发送训练数据集的本地缓存查询请求;在确定分配节点服务器的本地缓存中不存在训练数据集的情况下,向远程服务器发送训练数据集的远程缓存查询请求;在确定远程服务器的缓存中不存在训练数据集的情况下,通过资源调度器获取与打包策略相对应的算力资源,基于算力资源执行打包策略,得到训练数据集并将训练数据集分发至分配节点服务器,指示分配节点服务器将训练数据集缓存至本地,该过程中设置了多层次的训练数据集的获取方式,最大化优先实现从训练任务的分配节点服务器本地缓存或远程服务器的本地缓存中实现对数据打包后的训练数据集的获取,减少从数据中心获取训练数据源的频次,降低训练数据传输方式在数据打包传输过程中的算力资源及时间资源的损耗,提升实现算法训练需求的数据的快速打包、传输的及时有效度,最大化满足大规模分布式机器学习算法训练时数据的及时有效传输需求。
[0076]
本技术实施例中还提供了机器学习训练数据集的获取方法的不同实施方式。
[0077]
参见图2,图2是本技术实施例提供的一种机器学习训练数据集的获取方法的流程图二。如图2所示,一种机器学习训练数据集的获取方法,该方法包括以下步骤:
[0078]
步骤201,获取机器学习训练任务中训练数据的打包指令,所述打包指令中包括所述训练数据的打包策略。
[0079]
该步骤的实现过程与前述实施方式中的步骤101的实现过程相同,此处不再赘述。
[0080]
步骤202,基于所述打包指令,向所述机器学习训练任务的当前分配节点服务器发送训练数据集的本地缓存查询请求。
[0081]
具体地,这里的当前分配节点服务器为与该机器学习训练任务相对应的此次将要执行该机器学习训练任务的服务器节点,先向该节点本地查询是否存储有训练数据集。
[0082]
步骤203,在基于所述本地缓存查询请求,确定所述当前分配节点服务器的本地缓存中不存在所述训练数据集的情况下,向处理过所述机器学习训练任务或处理过与所述机器学习训练任务同类型的训练任务的同层级节点服务器发送所述本地缓存查询请求。
[0083]
在确定当前分配节点服务器的本地缓存中不存在所述训练数据集的情况下,则可以向同层级节点服务器进行缓存查询请求,以尽可能实现对历史训练任务中所存储的训练数据集的本地数据的利用,减少外部数据读取频次,提升效率。
[0084]
与此对应地,在基于所述打包指令,向所述机器学习训练任务的当前分配节点服务器发送训练数据集的本地缓存查询请求之后,还包括:在基于所述本地缓存查询请求,确定所述当前分配节点服务器的本地缓存中存在所述训练数据集的情况下,根据所述当前分配节点服务器中的所述训练数据集的使用热度值与预设值,确定更新后的所述使用热度值。
[0085]
该过程,在具体实施中,可以是将训练数据集的使用热度值与该预设值相加,得到更新后的使用热度值。其中,该预设值例如为1,实现随着训练数据集的使用情况,对训练数据集的使用热度值进行计数增加。
[0086]
这里,数据分发策略还包括:将训练任务使用的训练数据集分发至远程服务器。需要设置训练数据集的使用热度值,基于该使用热度值以实现将训练节点服务器中的训练数据集进行筛选,可以将使用热度值高于阈值的训练数据集分发至远程服务器上,使其缓存于远程服务器本地。实现训练数据集的分层次存储。训练节点服务器中在设定时间内使用热度低于设定阈值的训练数据集则可以定期清除,节省存储空间。
[0087]
步骤204,在基于所述本地缓存查询请求,确定所述同层级节点服务器的本地缓存中不存在所述训练数据集的情况下,确定所述分配节点服务器的本地缓存中不存在所述训练数据集。
[0088]
与此对应地,在向处理过所述机器学习训练任务或处理过与所述机器学习训练任务同类型的训练任务的同层级节点服务器发送所述本地缓存查询请求之后,还包括:
[0089]
在基于所述本地缓存查询请求,确定所述同层级节点服务器的本地缓存中存在所述训练数据集的情况下,将所述同层级节点服务器的本地缓存中的所述训练数据集分发至所述当前分配节点服务器,指示所述当前分配节点服务器将所述训练数据集缓存至本地。
[0090]
实现训练数据集从同层级节点服务器中获取,并在执行当前训练任务的当前分配节点服务器本地的存储。
[0091]
步骤205,在基于所述本地缓存查询请求,确定所述分配节点服务器的本地缓存中不存在所述训练数据集的情况下,向第一层级缓存服务器发送所述训练数据集的所述远程缓存查询请求。
[0092]
这里,远程服务器可以包括不同的层级服务器,具体包括该第一层级缓存服务器及后面所描述的根节点层级缓存服务器。两者的区别在于各自存储的数据集存在不同。
[0093]
其中,所述第一层级缓存服务器中存储有预设时间内使用热度值处于设定范围的
训练数据集。根节点层级缓存服务器中存储有所有使用过的训练数据集。
[0094]
步骤206,在基于所述远程缓存查询请求,确定所述第一层级缓存服务器的缓存中不存在所述训练数据集的情况下,向根节点层级缓存服务器发送所述远程缓存查询请求。
[0095]
该过程,实现训练数据集在远程服务器端进行有层级的查询,以提升数据获取的便捷度,提升效率。
[0096]
对应地在基于所述远程缓存查询请求,确定所述根节点层级缓存服务器的缓存中不存在所述训练数据集的情况下,确定所述远程服务器的缓存中不存在所述训练数据集。
[0097]
具体的,对上述实施过程进一步说明。整个训练数据集的缓存架构如图3所示,由根节点层级缓存服务器(图中root层)、第一层级缓存服务器(图中l2层),训练节点服务器本地(图中l1层)缓存组成。具体对应有缓存策略,缓存策略决定了缓存数据周期,缓存规则,以及缓存内容的量,以达到机器学习算法训练要使用的数据只要存在缓存将能够从本地获取,减少数据重复打包,频繁传输,降低输入输出,缩短获取数据时间为最终目标。其中,缓存策略具体实施时,可以设置为:
[0098]
root层存储所有被使用过的训练数据;
[0099]
l2层的缓存存储根据最近最少使用算法(lru,least recently used)原则,缓存最近n天(n可配置),容量上限为m(m可配置且小于或等于当前服务器存储空间h)的使用热度top k(k的大小总和小于或等于m)的数据;
[0100]
训练节点服务器l1层则缓存最近n天(n可配置),容量上限为m(m可配置且小于或等于当前服务器存储空间h)的当前节点使用过的且按照lru原则热度在top k(k的大小总和小于或等于m)内的数据。
[0101]
当一个训练任务启动,数据集处理器将根据配置的数据集id,向训练节点服务器发送查询缓存请求,当缓存中有训练数据集存在时,直接将缓存在训练节点服务器的数据路径返回,训练节点服务器则直接读取数据执行训练任务;当训练节点服务器本地缓存中不存在训练数据集时,数据集处理器向l2层发送缓存查询请求,当训练数据集存在时,将数据从l2层缓存返回给数据集处理器,数据集处理器下载训练数据集缓存数据返回给训练节点服务器执行训练任务。
[0102]
当向l2层节点获取训练数据集缓存数据没有返回结果时,数据集处理器向缓存根服务器root层发出请求是否存在训练数据集的缓存,若存在则返回数据集,同样的,训练节点数据集处理器下载数据并分发到训练节点服务器本地;若不存在缓存,则数据集处理器执行数据打包任务流程。
[0103]
其中,缓存策略的主要参数有:缓存最近时间长度:n,以天为单位;存储容量:m,以gb为单位;使用热度:为大于或等于0的整数。
[0104]
步骤207,在基于所述远程缓存查询请求,确定所述远程服务器的缓存中不存在所述训练数据集的情况下,通过资源调度器获取与所述打包策略相对应的算力资源。
[0105]
该步骤的实现过程与前述实施方式中的步骤104的实现过程相同,此处不再赘述。
[0106]
步骤208,基于所述算力资源执行所述打包策略,得到所述训练数据集并将所述训练数据集分发至所述分配节点服务器,指示所述分配节点服务器将所述训练数据集缓存至本地。
[0107]
该步骤的实现过程与前述实施方式中的步骤105的实现过程相同,此处不再赘述。
[0108]
本技术实施例,基于机器学习训练任务中的打包指令,向机器学习训练任务的分配节点服务器发送训练数据集的本地缓存查询请求;在确定分配节点服务器的本地缓存中不存在训练数据集的情况下,向远程服务器发送训练数据集的远程缓存查询请求;在确定远程服务器的缓存中不存在训练数据集的情况下,通过资源调度器获取与打包策略相对应的算力资源,基于算力资源执行打包策略,得到训练数据集并将训练数据集分发至分配节点服务器,指示分配节点服务器将训练数据集缓存至本地,该过程中设置了多层次的训练数据集的获取方式,最大化优先实现从训练任务的分配节点服务器本地缓存或远程服务器的本地缓存中实现对数据打包后的训练数据集的获取,减少从数据中心获取训练数据源的频次,降低训练数据传输方式在数据打包传输过程中的算力资源及时间资源的损耗,提升实现算法训练需求的数据的快速打包、传输的及时有效度,最大化满足大规模分布式机器学习算法训练时数据的及时有效传输需求。
[0109]
参见图4,图4是本技术实施例提供的一种机器学习训练数据集的获取装置,为了便于说明,仅示出了与本技术实施例相关的部分。
[0110]
所述机器学习训练数据集的获取装置400包括:
[0111]
第一获取模块401,用于获取机器学习训练任务中训练数据的打包指令,所述打包指令中包括所述训练数据的打包策略;
[0112]
第一发送模块402,用于基于所述打包指令,向所述机器学习训练任务的分配节点服务器发送训练数据集的本地缓存查询请求;
[0113]
第二发送模块403,用于在基于所述本地缓存查询请求,确定所述分配节点服务器的本地缓存中不存在所述训练数据集的情况下,向远程服务器发送所述训练数据集的远程缓存查询请求;
[0114]
第二获取模块404,用于在基于所述远程缓存查询请求,确定所述远程服务器的缓存中不存在所述训练数据集的情况下,通过资源调度器获取与所述打包策略相对应的算力资源;
[0115]
分发模块405,用于基于所述算力资源执行所述打包策略,得到所述训练数据集并将所述训练数据集分发至所述分配节点服务器,指示所述分配节点服务器将所述训练数据集缓存至本地。
[0116]
其中,第一发送模块402,具体用于:
[0117]
基于所述打包指令,向所述机器学习训练任务的当前分配节点服务器发送训练数据集的本地缓存查询请求;
[0118]
在基于所述本地缓存查询请求,确定所述当前分配节点服务器的本地缓存中不存在所述训练数据集的情况下,向处理过所述机器学习训练任务或处理过与所述机器学习训练任务同类型的训练任务的同层级节点服务器发送所述本地缓存查询请求;
[0119]
在基于所述本地缓存查询请求,确定所述同层级节点服务器的本地缓存中不存在所述训练数据集的情况下,确定所述分配节点服务器的本地缓存中不存在所述训练数据集。
[0120]
该装置还包括:
[0121]
更新模块,用于在基于所述本地缓存查询请求,确定所述当前分配节点服务器的本地缓存中存在所述训练数据集的情况下,根据所述当前分配节点服务器中的所述训练数
据集的使用热度值与预设值,确定更新后的所述使用热度值。
[0122]
该装置还包括:
[0123]
读取模块,用于在基于所述本地缓存查询请求,确定所述同层级节点服务器的本地缓存中存在所述训练数据集的情况下,将所述同层级节点服务器的本地缓存中的所述训练数据集分发至所述当前分配节点服务器,指示所述当前分配节点服务器将所述训练数据集缓存至本地。
[0124]
该第二发送模块403,具体用于:
[0125]
向第一层级缓存服务器发送所述训练数据集的所述远程缓存查询请求;
[0126]
在基于所述远程缓存查询请求,确定所述第一层级缓存服务器的缓存中不存在所述训练数据集的情况下,向根节点层级缓存服务器发送所述远程缓存查询请求;
[0127]
其中,所述第一层级缓存服务器中存储有预设时间内使用热度值处于设定范围的训练数据集;所述根节点层级缓存服务器中存储有所有使用过的训练数据集。
[0128]
该装置还包括:
[0129]
判断模块,用于判断处理过与所述机器学习训练任务同类型的训练任务的同层级节点服务器的本地是否缓存有所述训练数据集;若判断结果为否,则将所述训练数据集分发至所述同层级节点服务器,指示所述同层级节点服务器将所述训练数据集缓存至本地。
[0130]
其中,所述分配节点服务器为服务器集群中,处理过所述机器学习训练任务或处理过与所述机器学习训练任务同类型的训练任务的节点服务器。
[0131]
本技术实施例提供的机器学习训练数据集的获取装置能够实现上述机器学习训练数据集的获取方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0132]
图5是本技术实施例提供的一种终端的结构图。如该图所示,该实施例的终端5包括:至少一个处理器50(图5仅示出一个)、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个方法实施例中的步骤。
[0133]
所述终端5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端5的示例,并不构成对终端5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
[0134]
所述处理器50可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0135]
所述存储器51可以是所述终端5的内部存储单元,例如终端5的硬盘或内存。所述存储器51也可以是所述终端5的外部存储设备,例如所述终端5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器51还可以既包括所述终端5的内部存储单元也包括外部存储设
备。所述存储器51用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0136]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0137]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0138]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0139]
在本技术所提供的实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0140]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0141]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0142]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述
计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0143]
本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在终端上运行时,使得所述终端执行时实现可实现上述各个方法实施例中的步骤。
[0144]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1