CN111860835A - 一种神经网络模型训练方法和装置 - Google Patents
一种神经网络模型训练方法和装置 Download PDFInfo
- Publication number
- CN111860835A CN111860835A CN202010690926.3A CN202010690926A CN111860835A CN 111860835 A CN111860835 A CN 111860835A CN 202010690926 A CN202010690926 A CN 202010690926A CN 111860835 A CN111860835 A CN 111860835A
- Authority
- CN
- China
- Prior art keywords
- data set
- local cache
- node
- container
- training
- 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.)
- Withdrawn
Links
- 238000012549 training Methods 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000003062 neural network model Methods 0.000 title claims abstract description 28
- 239000012634 fragment Substances 0.000 claims abstract description 98
- 238000013135 deep learning Methods 0.000 claims abstract description 45
- 239000003795 chemical substances by application Substances 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 7
- 238000013467 fragmentation Methods 0.000 claims description 6
- 238000006062 fragmentation reaction Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 239000007787 solid Substances 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims 1
- 238000004886 process control Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000002932 luster Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种神经网络模型训练方法和装置,方法包括:将训练使用的数据集上传到集中存储设备并提交训练任务;由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;在每个节点上创建调用计算力资源的多个容器并部署深度学习框架和脚本接口;由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,将与训练任务片段对应的数据集分片;依次对每个数据集分片下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本。本发明能够集中管理数据集,减少数据冗余,提升训练速度,减少资源成本。
Description
技术领域
本发明涉及人工智能领域,更具体地,特别是指一种神经网络模型训练方法和装置。
背景技术
智能技术与实体经济结合与迭代过程中,算法、算力与数据都处在高高在上的位置,一般企业没有技术能力和成本去获取这些东西。对于大部分企业而言,招聘高级AI专家以及在研发时间上需要投入的成本太高,数据管理困难,数据冗余度高,训练速度慢。因此将复杂的AI技术进行封装,搭建一个零门槛的AI平台,用AI赋能不同的行业就变得非常有意义。
针对现有技术中深度学习数据难以管理、高冗余、处理速度慢、成本高的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种神经网络模型训练方法和装置,能够集中管理数据集,减少数据冗余,提升训练速度,减少资源成本。
基于上述目的,本发明实施例的第一方面提供了一种神经网络模型训练方法,包括执行以下步骤:
将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;
由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;
在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;
由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;
依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤。
在一些实施方式中,由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息包括:获取对应的训练任务片段的数据集总大小、数据集中文件个数、数据集消息摘要;
根据元数据信息将与训练任务片段对应的数据集分片包括:根据数据集总大小和预设的单位分片大小将与训练任务片段对应的数据集分片。
在一些实施方式中,依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本包括:
由节点的节点代理进程控制本地缓存从集中存储设备读取数据集分片以下载并保存到本地缓存中;
由节点代理进程控制本地缓存将保存到本地缓存中的数据集分片以文件形式置入本地缓存队列;
由容器的环境代理进程通过节点代理进程确定本地缓存队列中具有数据集分片的文件,并控制容器内存从本地缓存队列中读取数据集分片的文件以加载并保存到容器内存中;
由环境代理进程控制容器内存将保存到容器内存中的数据集分片以文件形式从本地缓存队列移除并置入容器内存队列;
由环境代理进程使用预设的脚本数据库作为脚本接口以封装的形式导入并执行脚本,以使用数据集分片训练深度学习框架。
在一些实施方式中,使用数据集分片训练深度学习框架包括:由深度学习框架将数据集分片的数据转化成张量,将张量发送到计算力资源执行矩阵计算,并使用矩阵计算的结果重构深度学习框架的参数。
在一些实施方式中,集中存储设备、本地缓存、和容器内存在数据平面上通信;节点代理进程和环境代理进程在不同于数据平面的控制平面上通信。
在一些实施方式中,计算力资源包括图形处理单元、中央处理单元、内存储器、和/或固态硬盘。
在一些实施方式中,集中存储设备使用网络文件***、Hadoop分布式文件***、或Luster文件***。
本发明实施例的第二方面提供了一种神经网络模型训练装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;
由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;
在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;
由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;
依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤。
在一些实施方式中,由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息包括:获取对应的训练任务片段的数据集总大小、数据集中文件个数、数据集消息摘要;根据元数据信息将与训练任务片段对应的数据集分片包括:根据数据集总大小和预设的单位分片大小将与训练任务片段对应的数据集分片。
在一些实施方式中,依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本包括:
由节点的节点代理进程控制本地缓存从集中存储设备读取数据集分片以下载并保存到本地缓存中;
由节点代理进程控制本地缓存将保存到本地缓存中的数据集分片以文件形式置入本地缓存队列;
由容器的环境代理进程通过节点代理进程确定本地缓存队列中具有数据集分片的文件,并控制容器内存从本地缓存队列中读取数据集分片的文件以加载并保存到容器内存中;
由环境代理进程控制容器内存将保存到容器内存中的数据集分片以文件形式从本地缓存队列移除并置入容器内存队列;
由环境代理进程使用预设的脚本数据库作为脚本接口以封装的形式导入并执行脚本,以使用数据集分片训练深度学习框架。
本发明具有以下有益技术效果:本发明实施例提供的神经网络模型训练方法和装置,通过将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤的技术方案,能够集中管理数据集,减少数据冗余,提升训练速度,减少资源成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的神经网络模型训练方法的流程示意图;
图2为本发明提供的神经网络模型训练方法的整体结构示意图;
图3为本发明提供的神经网络模型训练方法的节点内流程示意图;
图4为本发明提供的神经网络模型训练方法的多容器-数据集分片执行顺序示意图;
图5为本发明提供的神经网络模型训练方法的以节点为中心的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够集中管理数据集,减少数据冗余的神经网络模型训练方法的一个实施例。图1示出的是本发明提供的神经网络模型训练方法的流程示意图。
所述的神经网络模型训练方法,如图1所示,包括执行以下步骤:
步骤S101:将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;
步骤S103:由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;
步骤S105:在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;
步骤S107:由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;
步骤S109:依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息包括:获取对应的训练任务片段的数据集总大小、数据集中文件个数、数据集消息摘要;根据元数据信息将与训练任务片段对应的数据集分片包括:根据数据集总大小和预设的单位分片大小将与训练任务片段对应的数据集分片。
在一些实施方式中,依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本包括:
由节点的节点代理进程控制本地缓存从集中存储设备读取数据集分片以下载并保存到本地缓存中;
由节点代理进程控制本地缓存将保存到本地缓存中的数据集分片以文件形式置入本地缓存队列;
由容器的环境代理进程通过节点代理进程确定本地缓存队列中具有数据集分片的文件,并控制容器内存从本地缓存队列中读取数据集分片的文件以加载并保存到容器内存中;
由环境代理进程控制容器内存将保存到容器内存中的数据集分片以文件形式从本地缓存队列移除并置入容器内存队列;
由环境代理进程使用预设的脚本数据库作为脚本接口以封装的形式导入并执行脚本,以使用数据集分片训练深度学习框架。
在一些实施方式中,使用数据集分片训练深度学习框架包括:由深度学习框架将数据集分片的数据转化成张量,将张量发送到计算力资源执行矩阵计算,并使用矩阵计算的结果重构深度学习框架的参数。
在一些实施方式中,集中存储设备、本地缓存、和容器内存在数据平面上通信;节点代理进程和环境代理进程在不同于数据平面的控制平面上通信。
在一些实施方式中,计算力资源包括图形处理单元、中央处理单元、内存储器、和/或固态硬盘。
在一些实施方式中,集中存储设备使用网络文件***、Hadoop分布式文件***、或Luster文件***。
下面根据图2所示的具体实施例进一步阐述本发明的具体实施方式。
对于一个AI计算平台,首先将用户的训练样本数据集上传至平台,进行统一存储。当用户需要进行训练时,首先选择需要使用的训练数据集。之后指定训练所需要的计算力资源量(如内存、CPU和GPU)。之后AI计算平台会根据计算力的情况,自动选择集群内的主机,并分配算力资源。并使训练数据集对于主机的计算力资源可见。
用户上传数据集时,首先上传至平台的集中存储,例如LusterFS/NFS/HDFS(网络文件***、Hadoop分布式文件***、Luster文件***)。每个Node节点为待调度的物理机节点,其中有GPU/CPU/内存/SSD硬盘等资源。根据用户申请使用的计算力资源,进行资源调度,选择合适的Node节点,创建Pod,同时将集中存储的对应数据集挂载至Pod。每个物理机节点的SSD硬盘做为该节点的数据集缓存磁盘。当调度完成时,会通过网络,优先拉取至对应计算节点的SSD磁盘。
如图3所示,Node节点执行模型的训练任务,数据集使用NFS Server存储的数据集。在训练的物理机节点存在一个进程node agent。在训练使用的物理机节点上创建训练任务时,会为任务创建容器。每个容器中均预置了训练使用的深度学习框架(Framework),py lib软件包,env agent进程。在深度学习训练任务启动时(即该容器启动时),会自动启动env agent进程。
其中node agent的作用是,访问NFS的挂载路径。获取此次训练需要使用的数据集的信息,例如数据集总大小,数据集文件个数等。Node agent将NFS目录中对应的数据集拷贝至本地的缓存(即local disk cache),在数据拷贝复制完成之后,将对应的文件入localdisk cache的队列(代表该数据已经在disk cache中ready)。
Local disk cache目录被挂载至每一个容器中,同时容器中的env agent进程,可以通过接口与node agent进行通信。Env agent进程可以通过接口查询到local diskcache队列的状态及其对应的文件。Env agent从队列中读取数据,并加载至对应的容器的内存,并将数据从local disk cache队列出队列,加入自身的memory队列(代表该数据已经在memory中ready)。
对于env agent进程,它提供了一个python的接口层(图中的py lib)。可以在容器中通过pip的方式,预装这个py lib。这样在用户编写训练脚本时,就可以通过导入这个封装,然后调用py lib的一个python api来使用数据集了。
数据集的传输过程中,需要经历6个阶段,这6个阶段分别是:
1、获取NFS Server上数据集的总大小,数据集中文件个数、数据集MD5摘要等信息,进行数据集的分片;
2、读取NFS Server上指定的数据集的指定分片,将数据分片传输至本地,写入local cache磁盘;
3、从本地local cache磁盘打开指定分片的文件,读取数据至内存;
4、训练框架从内存中读取指定分片数据,将数据转换成tensor;
5、在需要时,训练框架将指定数据传递至GPU显存;
6、GPU从显存读取tensor数据,进行矩阵计算。
具体数据分片的方式,可以按照每64MB大小的一个数据块为一个分片。1至4由平台提供机制进行处理,5和6需要例如tensorflow这样的深度学习framework进行处理。将这6个阶段按流水线进行处理后,实际效果如图4所示,假设数据管道中需要的Phase个数为m,每个Phase的执行时间是t,每个数据集有n个shard,则在采用该方法前,对于一个1280MB的数据集(20个shard),其数据传输所需要的时间T是:
T=n*t*m(m=6,n=20)
使用本方法后,1280MB的数据集被分成20个shard。则需要的传输时间T是:
T=m*t+(n-1)*t(m=6,n=20)
由此可知,使用该技术将会大大减少数据传输所需要的时间。
以节点为中心的整体流程参见图5。用户将数据集上传至AIStation平台的共享存储中;用户编写好训练的脚本,其中训练脚本中使用了py lib所提供的api,用户指定训练任务需要的资源,选择训练所需要的数据集;用户提交训练任务之后,训练任务调度到指定节点,获取对应的容器镜像,按照训练任务资源的需求创建指定的容器;进行数据集的获取,缓存,写入内存等一系列pipeline的动作流程。
从上述实施例可以看出,本发明实施例提供的神经网络模型训练方法,通过将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤的技术方案,能够集中管理数据集,减少数据冗余,提升训练速度,减少资源成本。
需要特别指出的是,上述神经网络模型训练方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于神经网络模型训练方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够集中管理数据集,减少数据冗余的神经网络模型训练装置的一个实施例。神经网络模型训练装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;
由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;
在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;
由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;
依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤。
在一些实施方式中,由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息包括:获取对应的训练任务片段的数据集总大小、数据集中文件个数、数据集消息摘要;
根据元数据信息将与训练任务片段对应的数据集分片包括:根据数据集总大小和预设的单位分片大小将与训练任务片段对应的数据集分片。
在一些实施方式中,依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本包括:
由节点的节点代理进程控制本地缓存从集中存储设备读取数据集分片以下载并保存到本地缓存中;
由节点代理进程控制本地缓存将保存到本地缓存中的数据集分片以文件形式置入本地缓存队列;
由容器的环境代理进程通过节点代理进程确定本地缓存队列中具有数据集分片的文件,并控制容器内存从本地缓存队列中读取数据集分片的文件以加载并保存到容器内存中;
由环境代理进程控制容器内存将保存到容器内存中的数据集分片以文件形式从本地缓存队列移除并置入容器内存队列;
由环境代理进程使用预设的脚本数据库作为脚本接口以封装的形式导入并执行脚本,以使用数据集分片训练深度学习框架。
从上述实施例可以看出,本发明实施例提供的神经网络模型训练装置,通过将训练使用的数据集上传到集中存储设备,并基于数据集和执行训练使用的脚本提交训练任务;由主机根据训练任务确定具有计算力资源的多个节点,并将训练任务拆分为若干训练任务片段分别调度到多个节点;在每个节点上创建调用计算力资源的多个容器,并为每个容器部署深度学习框架和脚本接口;由每个节点从集中存储设备分别获取对应的训练任务片段的元数据信息,并根据元数据信息将与训练任务片段对应的数据集分片;依次对每个数据集分片执行以下步骤:下载到节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对深度学习框架执行通过脚本接口导入的脚本,其中,响应于前一个数据集分片的后一步骤和后一个数据集分片的前一步骤均执行完成而执行后一个数据集分片的后一步骤的技术方案,能够集中管理数据集,减少数据冗余,提升训练速度,减少资源成本。
需要特别指出的是,上述神经网络模型训练装置的实施例采用了所述神经网络模型训练方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述神经网络模型训练方法的其他实施例中。当然,由于所述神经网络模型训练方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述神经网络模型训练装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种神经网络模型训练方法,其特征在于,包括执行以下步骤:
将训练使用的数据集上传到集中存储设备,并基于所述数据集和执行训练使用的脚本提交训练任务;
由主机根据所述训练任务确定具有计算力资源的多个节点,并将所述训练任务拆分为若干训练任务片段分别调度到多个所述节点;
在每个所述节点上创建调用计算力资源的多个容器,并为每个所述容器部署深度学习框架和脚本接口;
由每个所述节点从所述集中存储设备分别获取对应的所述训练任务片段的元数据信息,并根据所述元数据信息将与所述训练任务片段对应的数据集分片;
依次对每个所述数据集分片执行以下步骤:下载到所述节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对所述深度学习框架执行通过所述脚本接口导入的所述脚本,其中,响应于前一个所述数据集分片的后一步骤和后一个所述数据集分片的前一步骤均执行完成而执行后一个所述数据集分片的后一步骤。
2.根据权利要求1所述的方法,其特征在于,由每个所述节点从所述集中存储设备分别获取对应的所述训练任务片段的元数据信息包括:获取对应的所述训练任务片段的数据集总大小、数据集中文件个数、数据集消息摘要;
根据所述元数据信息将与所述训练任务片段对应的数据集分片包括:根据所述数据集总大小和预设的单位分片大小将与所述训练任务片段对应的数据集分片。
3.根据权利要求2所述的方法,其特征在于,依次对每个所述数据集分片执行以下步骤:下载到所述节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对所述深度学习框架执行通过所述脚本接口导入的所述脚本包括:
由所述节点的节点代理进程控制所述本地缓存从所述集中存储设备读取所述数据集分片以下载并保存到所述本地缓存中;
由所述节点代理进程控制所述本地缓存将保存到所述本地缓存中的所述数据集分片以文件形式置入本地缓存队列;
由所述容器的环境代理进程通过所述节点代理进程确定所述本地缓存队列中具有所述数据集分片的文件,并控制所述容器内存从本地缓存队列中读取所述数据集分片的文件以加载并保存到所述容器内存中;
由所述环境代理进程控制所述容器内存将保存到所述容器内存中的所述数据集分片以文件形式从所述本地缓存队列移除并置入容器内存队列;
由所述环境代理进程使用预设的脚本数据库作为所述脚本接口以封装的形式导入并执行所述脚本,以使用所述数据集分片训练所述深度学习框架。
4.根据权利要求3所述的方法,其特征在于,使用所述数据集分片训练所述深度学习框架包括:
由所述深度学习框架将所述数据集分片的数据转化成张量,将所述张量发送到计算力资源执行矩阵计算,并使用所述矩阵计算的结果重构所述深度学习框架的参数。
5.根据权利要求3所述的方法,其特征在于,所述集中存储设备、所述本地缓存、和所述容器内存在数据平面上通信;所述节点代理进程和所述环境代理进程在不同于所述数据平面的控制平面上通信。
6.根据权利要求1所述的方法,其特征在于,所述计算力资源包括图形处理单元、中央处理单元、内存储器、和/或固态硬盘。
7.根据权利要求1所述的方法,其特征在于,所述集中存储设备使用网络文件***、Hadoop分布式文件***、或Luster文件***。
8.一种神经网络模型训练装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时依次执行以下步骤:
将训练使用的数据集上传到所述集中存储设备,并基于所述数据集和执行训练使用的脚本提交训练任务;
由所述主机根据所述训练任务确定具有计算力资源的多个节点,并将所述训练任务拆分为若干训练任务片段分别调度到多个所述节点;
在每个所述节点上创建调用计算力资源的多个容器,并为每个所述容器部署深度学习框架和脚本接口;
由每个所述节点从所述集中存储设备分别获取对应的所述训练任务片段的元数据信息,并根据所述元数据信息将与所述训练任务片段对应的数据集分片;
依次对每个所述数据集分片执行以下步骤:下载到所述节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对所述深度学习框架执行通过所述脚本接口导入的所述脚本,其中,响应于前一个所述数据集分片的后一步骤和后一个所述数据集分片的前一步骤均执行完成而执行后一个所述数据集分片的后一步骤。
9.根据权利要求8所述的装置,其特征在于,由每个所述节点从所述集中存储设备分别获取对应的所述训练任务片段的元数据信息包括:获取对应的所述训练任务片段的数据集总大小、数据集中文件个数、数据集消息摘要;
根据所述元数据信息将与所述训练任务片段对应的数据集分片包括:根据所述数据集总大小和预设的单位分片大小将与所述训练任务片段对应的数据集分片。
10.根据权利要求8所述的装置,其特征在于,依次对每个所述数据集分片执行以下步骤:下载到所述节点的本地缓存、加入本地缓存队列、加载到容器内存、加入容器内存队列、由容器调用计算力资源对所述深度学习框架执行通过所述脚本接口导入的所述脚本包括:
由所述节点的节点代理进程控制所述本地缓存从所述集中存储设备读取所述数据集分片以下载并保存到所述本地缓存中;
由所述节点代理进程控制所述本地缓存将保存到所述本地缓存中的所述数据集分片以文件形式置入本地缓存队列;
由所述容器的环境代理进程通过所述节点代理进程确定所述本地缓存队列中具有所述数据集分片的文件,并控制所述容器内存从本地缓存队列中读取所述数据集分片的文件以加载并保存到所述容器内存中;
由所述环境代理进程控制所述容器内存将保存到所述容器内存中的所述数据集分片以文件形式从所述本地缓存队列移除并置入容器内存队列;
由所述环境代理进程使用预设的脚本数据库作为所述脚本接口以封装的形式导入并执行所述脚本,以使用所述数据集分片训练所述深度学习框架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010690926.3A CN111860835A (zh) | 2020-07-17 | 2020-07-17 | 一种神经网络模型训练方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010690926.3A CN111860835A (zh) | 2020-07-17 | 2020-07-17 | 一种神经网络模型训练方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111860835A true CN111860835A (zh) | 2020-10-30 |
Family
ID=73000501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010690926.3A Withdrawn CN111860835A (zh) | 2020-07-17 | 2020-07-17 | 一种神经网络模型训练方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111860835A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112700004A (zh) * | 2020-12-25 | 2021-04-23 | 南方电网深圳数字电网研究院有限公司 | 基于容器技术的深度学习模型训练方法、设备及存储介质 |
CN112882999A (zh) * | 2021-01-31 | 2021-06-01 | 云知声智能科技股份有限公司 | 基于分布式缓存亲和性调度的训练加速方法、装置及*** |
CN113469372A (zh) * | 2021-07-02 | 2021-10-01 | 北京市商汤科技开发有限公司 | 强化学习训练方法、装置、电子设备以及存储介质 |
CN113569987A (zh) * | 2021-08-19 | 2021-10-29 | 北京沃东天骏信息技术有限公司 | 模型训练方法和装置 |
CN113792885A (zh) * | 2021-08-20 | 2021-12-14 | 山东英信计算机技术有限公司 | 一种深度学习训练的执行方法及相关装置 |
WO2022161081A1 (zh) * | 2021-01-28 | 2022-08-04 | 华为技术有限公司 | 集成学习模型的训练方法、装置、***和相关设备 |
CN115022405A (zh) * | 2022-08-10 | 2022-09-06 | 合肥中科类脑智能技术有限公司 | 一种深度学***台的智能缓存加速***及方法 |
CN115509644A (zh) * | 2022-11-21 | 2022-12-23 | 北京邮电大学 | 算力卸载方法、装置、电子设备和存储介质 |
GB2611764A (en) * | 2021-10-08 | 2023-04-19 | Samsung Electronics Co Ltd | Method, system and apparatus for image orientation correction |
CN116136838A (zh) * | 2023-04-19 | 2023-05-19 | 之江实验室 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
WO2023226284A1 (zh) * | 2022-05-26 | 2023-11-30 | 鹏城实验室 | 一种深度学习模型的训练方法、装置、设备及存储介质 |
WO2023241312A1 (zh) * | 2022-06-16 | 2023-12-21 | 北京火山引擎科技有限公司 | 模型训练方法及装置 |
-
2020
- 2020-07-17 CN CN202010690926.3A patent/CN111860835A/zh not_active Withdrawn
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112700004A (zh) * | 2020-12-25 | 2021-04-23 | 南方电网深圳数字电网研究院有限公司 | 基于容器技术的深度学习模型训练方法、设备及存储介质 |
WO2022161081A1 (zh) * | 2021-01-28 | 2022-08-04 | 华为技术有限公司 | 集成学习模型的训练方法、装置、***和相关设备 |
CN112882999A (zh) * | 2021-01-31 | 2021-06-01 | 云知声智能科技股份有限公司 | 基于分布式缓存亲和性调度的训练加速方法、装置及*** |
CN113469372A (zh) * | 2021-07-02 | 2021-10-01 | 北京市商汤科技开发有限公司 | 强化学习训练方法、装置、电子设备以及存储介质 |
CN113569987A (zh) * | 2021-08-19 | 2021-10-29 | 北京沃东天骏信息技术有限公司 | 模型训练方法和装置 |
CN113792885A (zh) * | 2021-08-20 | 2021-12-14 | 山东英信计算机技术有限公司 | 一种深度学习训练的执行方法及相关装置 |
GB2611764A (en) * | 2021-10-08 | 2023-04-19 | Samsung Electronics Co Ltd | Method, system and apparatus for image orientation correction |
WO2023226284A1 (zh) * | 2022-05-26 | 2023-11-30 | 鹏城实验室 | 一种深度学习模型的训练方法、装置、设备及存储介质 |
WO2023241312A1 (zh) * | 2022-06-16 | 2023-12-21 | 北京火山引擎科技有限公司 | 模型训练方法及装置 |
CN115022405B (zh) * | 2022-08-10 | 2022-10-25 | 合肥中科类脑智能技术有限公司 | 一种深度学***台的智能缓存加速***及方法 |
CN115022405A (zh) * | 2022-08-10 | 2022-09-06 | 合肥中科类脑智能技术有限公司 | 一种深度学***台的智能缓存加速***及方法 |
CN115509644A (zh) * | 2022-11-21 | 2022-12-23 | 北京邮电大学 | 算力卸载方法、装置、电子设备和存储介质 |
CN116136838A (zh) * | 2023-04-19 | 2023-05-19 | 之江实验室 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860835A (zh) | 一种神经网络模型训练方法和装置 | |
US9389995B2 (en) | Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning | |
CN110262901B (zh) | 一种数据处理方法及数据处理*** | |
US9331943B2 (en) | Asynchronous scheduling informed by job characteristics and anticipatory provisioning of data for real-time, parallel processing | |
CN108629029B (zh) | 一种应用于数据仓库的数据处理方法和装置 | |
WO2017167095A1 (zh) | 一种模型的训练方法和装置 | |
US9558216B2 (en) | Moving tables across nodes in an in-memory database instance | |
CN106503791A (zh) | 用于有效神经网络部署的***和方法 | |
CN107450971A (zh) | 任务处理方法及装置 | |
US11817999B1 (en) | Computer-based systems for management of big data development platforms based on machine learning techniques and methods of use thereof | |
CN111309649B (zh) | 一种数据传输和任务处理方法、装置及设备 | |
CN107077390A (zh) | 一种任务处理方法以及网卡 | |
US20200004464A1 (en) | Method and apparatus for storing data | |
CN112597126A (zh) | 一种数据迁移方法和装置 | |
Ashu et al. | Intelligent data compression policy for Hadoop performance optimization | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN112948025B (zh) | 数据加载方法、装置及存储介质、计算设备、计算*** | |
Lerat et al. | Single node deep learning frameworks: Comparative study and CPU/GPU performance analysis | |
CN112182111B (zh) | 基于区块链的分布式***分层处理方法和电子设备 | |
CN110955461B (zh) | 计算任务的处理方法、装置、***、服务器和存储介质 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN106649716A (zh) | 一种基于多线程的文件格式在线转换方法及*** | |
Liu et al. | A large-scale rendering system based on hadoop | |
CN111416872A (zh) | 基于mp和rdma的高速缓存文件***通信方法及*** | |
CN110222018A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201030 |