一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种深度学习训练的执行方法及相关装置与流程

2021-12-15 01:09:00 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,特别涉及一种深度学习训练的执行方法、执行装置、服务器以及计算机可读存储介质。
背景技术
::2.随着人工智能技术的不断发展,与其相关的模型训练任务的规模和数量也越来越大。为了适应当下的训练任务,通过多台存储系统组成存储系统用于存储训练任务的各项数据,以便应对海量的训练数据。3.相关技术中,一般使用多台存储服务器,搭建一套独立的存储系统,用来解决数据集存储的问题。但是,独立的存储服务器一般使用相对廉价的硬件,数据读写效率都不高。存储系统一般独立于深度学习训练平台计算节点,计算程序读写数据需要经过相对较长的网络通路,也限制了数据的使用效率。并且,在大规模训练下,会对存储系统产生瞬时的远超存储系统承载能力的读写压力,影响深度学习任务的训练效果。可见,该数据缓存加速过程的数据效率较低,导致时延较大。4.因此,如何提高深度学习训练平台中进行训练的效率是本领域技术人员关注的重点问题。技术实现要素:5.本技术的目的是提供一种深度学习训练的执行方法、执行装置、服务器以及计算机可读存储介质,以便将训练任务的数据集在数据缓存资源中使用,避免数据存储系统降低数据读写的效率。6.为解决上述技术问题,本技术提供一种深度学习训练的执行方法,包括:7.计算节点获取深度学习训练任务;8.将所述深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源;9.基于所述数据缓存资源中的所述数据集执行所述深度学习训练任务。10.可选的,还包括:11.当所述深度学习训练任务执行时,进行数据计算得到数据变化;12.根据所述数据变化对所述数据存储节点的数据进行更新。13.可选的,所述数据缓存资源为独立缓存节点;14.相应的,基于所述数据缓存资源中的所述数据集执行所述深度学习训练任务,包括:15.通过posix挂载方式将所述独立缓存节点作为本地文件系统;16.基于所述本地文件系统中的所述数据集执行所述深度学习训练任务。17.可选的,所述数据缓存资源为基于所述计算节点的分布式文件系统;18.相应的,基于所述数据缓存资源中的所述数据集执行所述深度学习训练任务,包括:19.从所述分布式文件系统确定最小化数据访问路径;20.基于所述最小化数据访问路径和所述数据集执行所述深度学习训练任务。21.可选的,将所述深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源,包括:22.通过底层存储接口从所述数据存储节点读取所述深度学习训练任务对应的数据集;23.将所述数据集存储至所述数据缓存资源。24.可选的,还包括:25.通过所述底层存储接口将所述数据缓存资源中的数据同步至所述数据存储节点。26.可选的,执行所述深度学习训练任务的读写数据过程,包括:27.根据负载均衡算法进行数据读写处理。28.本技术还提供一种深度学习训练的执行装置,包括:29.任务获取模块,用于获取深度学习训练任务;30.数据集缓存模块,用于将所述深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源;31.训练任务执行模块,用于基于所述数据缓存资源中的所述数据集执行所述深度学习训练任务。32.本技术还提供一种服务器,包括:33.存储器,用于存储计算机程序;34.处理器,用于执行所述计算机程序时实现如上所述的执行方法的步骤。35.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的执行方法的步骤。36.本技术所提供的一种深度学习训练的执行方法,包括:计算节点获取深度学习训练任务;将所述深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源;基于所述数据缓存资源中的所述数据集执行所述深度学习训练任务。37.通过将获取到的深度学习任务对应的数据集从数据存储节点中导入到数据缓存资源中,后续基于数据缓存资源中的数据集执行深度学习训练任务,而不是基于数据存储节点中的数据集执行任务,避免数据存储节点拖慢训练任务执行时的效率,同时通过数据缓存资源加快数据读写的效率,降低时延。38.本技术还提供一种深度学习训练的执行装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做具体限定。附图说明39.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。40.图1为本技术实施例所提供的一种深度学习训练的执行方法的流程图;41.图2为本技术实施例所提供的一种深度学习训练的执行方法的第一种结构示意图;42.图3为本技术实施例所提供的一种深度学习训练的执行方法的第二种结构示意图;43.图4为本技术实施例所提供的一种深度学习训练的执行方法的第三种结构示意图;44.图5为本技术实施例所提供的一种深度学习训练的执行方法的负载均衡示意图;45.图6为本技术实施例所提供的一种深度学习训练的执行装置的结构示意图。具体实施方式46.本技术的核心是提供一种深度学习训练的执行方法、执行装置、服务器以及计算机可读存储介质,以便将训练任务的数据集在数据缓存资源中使用,避免数据存储系统降低数据读写的效率。47.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。48.相关技术中,一般使用多台存储服务器,搭建一套独立的存储系统,用来解决数据集存储的问题。但是,独立的存储服务器一般使用相对廉价的硬件,数据读写效率都不高。存储系统一般独立于深度学习训练平台计算节点,计算程序读写数据需要经过相对较长的网络通路,也限制了数据的使用效率。并且,在大规模训练下,会对存储系统产生瞬时的远超存储系统承载能力的读写压力,影响深度学习任务的训练效果。可见,该数据缓存加速过程的数据效率较低,导致时延较大。49.因此,本技术提供一种深度学习训练的执行方法,通过将获取到的深度学习任务对应的数据集从数据存储节点中导入到数据缓存资源中,后续基于数据缓存资源中的数据集执行深度学习训练任务,而不是基于数据存储节点中的数据集执行任务,避免数据存储节点拖慢训练任务执行时的效率,同时通过数据缓存资源加快数据读写的效率,降低时延。50.以下通过一个实施例,对本技术提供的一种深度学习训练的执行方法进行说明。51.请参考图1,图1为本技术实施例所提供的一种深度学习训练的执行方法的流程图。52.本实施例中,该方法可以包括:53.s101,计算节点获取深度学习训练任务;54.可见,本步骤旨在本实施例中的计算节点获取到用户发送的深度学习训练任务。55.其中,深度学习训练任务主要是对深度学习模型进行训练的任务。在实行该深度学习训练任务的过程中需要不断读写数据,以便进行训练。现有技术中,一般是通过与其对应的存储系统进行数据读写,但是存储系统一般考虑的是存储容量,在数据读写效率方面较低,容易导致数据读写效率不佳等问题。56.s102,将深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源;57.在s101的基础上,本步骤旨在将深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源。也就是说,本实施例中不在数据存储系统执行对应的训练任务,而是将对应的数据集导入至数据缓存资源中,再使用对应的数据集。以便通过数据缓存资源的高效率提高数据的读写速度,降低时延。58.其中,该数据缓存资源可以是独立的数据缓存节点,也可以是由计算节点中的数据存储资源构建成的缓存系统。其中,无论是独立的数据缓存节点还是缓存系统,均可以实现对应的分布式数据存储系统,以便缓存对应的数据集。59.通过构建该数据缓存系统,实现了将多台节点的磁盘整合为一个分布式文件系统。深度学习训练任务可以通过应用程序接口模块触发数据导入缓存系统,从而拥有超越计算节点本机的存储容量,和超越底层文件系统的iops性能,也即是该iops(input/outputoperationspersecond,每秒进行读写操作的次数)性能高于数据存储节点。60.并且,该数据缓存资源,提供posix挂载方式。深度学习训练任务可以像读写本地文件系统一样使用数据缓存资源。同时,还提供了程序开发接口,通过接口,训练任务可以进行同步、异步的触发数据载入数据缓存资源,从而实现更高的灵活度。此外,实现和底层文件系统的应用程序接口交互。接收应用程序接口模块的数据缓存请求,将底层文件系统的数据文件和文件夹导入至数据缓存系统;接收应用程序接口模块请求,将数据缓存系统内的文件同步回底层文件系统。61.其中,posix表示可移植操作系统接口(portableoperatingsysteminterfaceofunix,缩写为posix),posix标准定义了操作系统应该为应用程序提供的接口标准。62.进一步的,本步骤可以包括:63.步骤1,通过底层存储接口从数据存储节点读取深度学习训练任务对应的数据集;64.步骤2,将数据集存储至数据缓存资源。65.可见,本可选方案中主要是对如何将数据集进行导入做说明。本可选方案中通过底层存储接口从数据存储节点读取深度学习训练任务对应的数据集,将数据集存储至数据缓存资源。很显然,本可选方案中直接通过该数据存储节点的底层存储接口中获取到对应的数据集,并将其存储至该数据缓存资源中,保证了数据存取的效率。66.此外,本实施例在上一可选方案的基础上,还可以包括:67.通过底层存储接口将数据缓存资源中的数据同步至数据存储节点。68.可见,在上一可选方案的基础上,本可选方案中主要是说明通过该底层存储接口将数据与数据存储节点中的数据进行同步,以便保持数据存储节点中的数据存储的正确性。69.s103,基于数据缓存资源中的数据集执行深度学习训练任务。70.在s102的基础上,本步骤旨在基于数据缓存资源中的数据集执行深度学习训练任务。也就是利用数据缓存资源中数据执行对应的训练任务,而不是利用数据存储节点中的数据。同时,在执行深度学习训练任务的过程中涉及到大量的数据读写操作,性能较高的数据缓存资源可以保证训练执行过程中的效率,降低对应的时延。71.本实施例中的数据缓存资源为独立缓存节点;72.相应的,基于数据缓存资源中的数据集执行深度学习训练任务的步骤,可以包括:73.步骤1,通过posix挂载方式将独立缓存节点作为本地文件系统;74.步骤2,基于本地文件系统中的数据集执行深度学习训练任务。75.可见,本可选方案中主要是对如何执行深度学习训练任务做说明。本可选方案中通过posix挂载方式将独立缓存节点作为本地文件系统,基于本地文件系统中的数据集执行深度学习训练任务。可见,可选方案中的数据缓存资源为各个独立缓存节点组成的分布式文件系统。因此,以posix挂载方式使用该分布式文件系统,以便提高训练任务使用的效率。76.本实施例中的数据缓存资源为基于计算节点的分布式文件系统;77.相应的,基于数据缓存资源中的数据集执行深度学习训练任务的步骤,可以包括:78.步骤1,从分布式文件系统确定最小化数据访问路径;79.步骤2,基于最小化数据访问路径和数据集执行深度学习训练任务。80.可见,本可选方案中主要是对如何执行深度学习训练任务做说明。本可选方案中从分布式文件系统确定最小化数据访问路径,基于最小化数据访问路径和数据集执行深度学习训练任务。可见,本可选方案中数据缓存资源为各个计算节点中的磁盘组成的分布式文件系统,就是该数据缓存资源为部署在每个计算节点中的分布式分拣系统,利用了每个计算节点的存储资源。因此,可以确定对应的最小化数据访问路径,并基于该最小化数据访问路径使用数据集,以便提高数据读写的效率。81.进一步的,本步骤中执行深度学习训练任务的读写数据过程,包括:82.根据负载均衡算法进行数据读写处理。83.可见,在执行深度学习训练任务涉及到大量的数据读写操作,因此可以通过负载均衡算法进行数据读写处理,以便提高性能的利用率。84.此外,本实施例还可以包括:85.步骤1,当深度学习训练任务执行时,进行数据计算得到数据变化;86.步骤2,根据数据变化对数据存储节点的数据进行更新。87.可见,本可选方案主要说明本实施例中如何对数据进行更新。本可选当深度学习训练任务执行时,进行数据计算得到数据变化,根据数据变化对数据存储节点的数据进行更新。88.综上,本实施例通过将获取到的深度学习任务对应的数据集从数据存储节点中导入到数据缓存资源中,后续基于数据缓存资源中的数据集执行深度学习训练任务,而不是基于数据存储节点中的数据集执行任务,避免数据存储节点拖慢训练任务执行时的效率,同时通过数据缓存资源加快数据读写的效率,降低时延。89.以下通过另一个具体的实施例,对本技术提供的一种深度学习训练的执行方法做进一步说明。90.本实施例,以深度学习训练平台大规模数据集训练场景为例。在该场景中解决了深度学习训练平台对大规模数据集的读写效率和承载能力问题,能够在训练程序无感知和不中断的情况下,进行数据的预缓存和回写。通过本实施例训练平台可以利用计算节点的本地硬件设备提供读写缓存服务,利用本地高速硬件和近地计算优势,提供远高于存储系统的iops,并且可以将缓存数据变化同步回底层存储系统。91.本实施例中,首先完成数据缓存系统的构建。92.请参考图2,图2为本技术实施例所提供的一种深度学习训练的执行方法的第一种结构示意图。93.在深度学习训练平台计算节点和存储系统之前,新增数据缓存系统datacache。数据缓存系统在深度学习训练场景中的位置如图2。94.其中,缓存元数据管理模块metamanager,用于管理缓存系统数据缓存系统的元数据。元数据主要包括文件的元信息(id、大小、修改时间、权限、在本系统的存储位置、原始文件在底层存储系统的地址)。元数据管理模块能够维护缓存系统数据缓存系统的缓存数据状态,并且维护缓存系统内的文件和底层文件系统文件的映射关系。同时,元数据管理模块支持多节点部署,客户端连接任一节点的元数据管理模块实例都能够获取全量元数据管理模块实例的部署信息。95.其中,缓存数据存储模块storagemanager,用于文件数据的存储。从底层存储系统转入缓存的文件,会按照预设大小(默认8mb)拆分为多个数据块,以数据块的维度进行存储。缓存数据存储模块会将文件的存储数据分块后按照规则存储至本地磁盘。缓存数据存储模块支持多节点部署,通过整合多节点的磁盘,形成一个分布式的文件系统,从而具备了远远高于单机的存储容量能力。96.其中,应用程序接口模块clientmanage,用于对接深度学习训练服务。提供posix挂载方式,深度学习训练任务可以像读写本地文件系统一样使用缓存系统。同时,应用程序接口模块提供了程序开发接口(api),通过接口,训练任务可以进行同步、异步的触发数据载入缓存,从而实现更高的灵活度。97.其中,底层存储系统接口模块stagemanager,用于实现和底层文件系统的接口交互。主要有两个作用:1)接收应用程序接口模块的数据缓存请求,将底层文件系统的数据文件和文件夹导入至数据缓存系统;2)接收应用程序接口模块请求,将数据缓存系统内的文件同步回底层文件系统。98.通过构建该数据缓存系统,实现了将多台节点的磁盘整合为一个分布式文件系统。深度学习训练任务可以通过应用程序接口模块触发数据导入缓存系统,从而拥有超越计算节点本机的存储容量,和超越底层文件系统的iops性能。99.然后,将数据缓存系统进行部署。100.本实施例,提供了两种数据缓存系统的部署方案。在实际应用中,可以根据深度学习训练平台的实际情况灵活选择不同方案,在此不做具体限定。无论何种方案,主要目的还是通过利用少量高速硬件、尽量缩短与深度学习训练任务的访问距离,提供更高性能的存储能力。101.请参考图3,图3为本技术实施例所提供的一种深度学习训练的执行方法的第二种结构示意图。102.可见,在独立部署方案使用多个专用节点部署数据缓存系统,如附图3。在此方案中,使用专门的节点部署缓存系统。节点的选型一般考虑以下几个因素:高性能的磁盘、高速网络链接、具有一定计算能力的cpu、足够的内存。103.请参考图4,图4为本技术实施例所提供的一种深度学习训练的执行方法的第三种结构示意图。104.可见,在混合部署方案中充分利用训练平台计算节点的资源,利用计算节点的磁盘整合为分布式文件系统。混合部署的方案,做到了最小化的数据访问路径,充分利用近地计算的优势;同时,这种方案利用已有的资源进行缓存系统部署,不会增加深度学习训练平台的成本。同时也需要考虑到,缓存系统运行需要的资源成本也有可能会影响训练任务,因此,此种方案需要审慎的制定和限制缓存系统的资源需求。105.最后,实现对数据缓存系统进行数据管理。106.其中,缓存数据集的使用流程:深度学习训练任务在提交前,可以通过应用程序接口模块,将所需要的数据集导入至缓存系统的指定目录下。缓存指令可以是同步的,即训练任务可以等待数据集全部缓存完成后才开始执行;缓存也可以设置为异步方式,训练任务发送缓存命令后,可以进行其他的准备操作,通过查询接口发现缓存完成后,开始正式的训练。107.深度学习训练任务使用缓存加速系统的流程可以包括:108.步骤1,用户提交深度学习训练作业,并指定使用的数据集a;109.步骤2,应用程序接口模块将数据集a从底层存储系统导入数据缓存系统;110.步骤3,深度学习训练作业被调度提交运行,运行过程中可以读取和写入数据至缓存系统;111.步骤4,缓存系统自动计算数据的变化,将新增、修改的数据变化同步至底层文件系统;将无用的数据(被训练作业删除、已经完成同步的数据)丢弃。112.此外,还需要保持数据缓存系统的高性能。113.(1)使用高速硬件:高性能硬件是缓存加速的基础,高速的磁盘或网络设备是缓存加速效果的前提条件。在本实施例中,通过少量的高速硬件构建一个小型高性能文件系统,在训练任务和底层文件系统之间做了缓冲,能够承载短期内的高速读写请求,并将请求优化缓冲后同步给底层文件系统。底层文件系统无需升级任何硬件和变化,就能够实现透明的缓存加速功能。114.(2)近地计算:减少数据链路长度是提高数据读取效率的方法之一。在混合部署方案中,缓存系统直接部署于训练任务计算节点上,训练任务读取缓存数据近似于读取本地文件,提升了缓存加速的效果。115.(3)数据散列存储:在深度学习训练任务高并发读写数据时,底层文件系统的元数据管理和数据存储模块面临巨大的处理压力。本实施例中缓存数据存储模块和缓存元数据管理模块可以多节点多实例部署,并且可以将数据流量通过散列算法进行负载均衡,能够很好的实现压力的平衡。116.请参考图5,图5为本技术实施例所提供的一种深度学习训练的执行方法的负载均衡示意图。117.可见,本实施例可以通过将获取到的深度学习任务对应的数据集从数据存储节点中导入到数据缓存资源中,后续基于数据缓存资源中的数据集执行深度学习训练任务,而不是基于数据存储节点中的数据集执行任务,避免数据存储节点拖慢训练任务执行时的效率,同时通过数据缓存资源加快数据读写的效率,降低时延。118.下面对本技术实施例提供的深度学习训练的执行装置进行介绍,下文描述的深度学习训练的执行装置与上文描述的深度学习训练的执行方法可相互对应参照。119.请参考图6,图6为本技术实施例所提供的一种深度学习训练的执行装置的结构示意图。120.本实施例中,该装置可以包括:121.任务获取模块100,用于获取深度学习训练任务;122.数据集缓存模块200,用于将深度学习训练任务对应的数据集从数据存储节点导入至数据缓存资源;123.训练任务执行模块300,用于基于数据缓存资源中的数据集执行深度学习训练任务。124.本技术实施例还提供一种服务器,包括:125.存储器,用于存储计算机程序;126.处理器,用于执行所述计算机程序时实现如以上实施例所述的执行方法的步骤。127.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的执行方法的步骤。128.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。129.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。130.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd‑rom、或
技术领域
:内所公知的任意其它形式的存储介质中。131.以上对本技术所提供的一种深度学习训练的执行方法、执行装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献