CN116737363A - 深度学习平台的数据集缓存加速方法、系统、设备及介质 - Google Patents
深度学习平台的数据集缓存加速方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116737363A CN116737363A CN202310519363.5A CN202310519363A CN116737363A CN 116737363 A CN116737363 A CN 116737363A CN 202310519363 A CN202310519363 A CN 202310519363A CN 116737363 A CN116737363 A CN 116737363A
- Authority
- CN
- China
- Prior art keywords
- data set
- cache
- data
- training
- storage
- 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.)
- Pending
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 188
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000013135 deep learning Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 claims abstract description 222
- 238000012549 training Methods 0.000 claims abstract description 206
- 238000012545 processing Methods 0.000 claims abstract description 90
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 39
- 238000012986 modification Methods 0.000 claims description 27
- 230000004048 modification Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013506 data mapping Methods 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000014759 maintenance of location Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000003205 fragrance Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能,提供了一种深度学习平台的数据集缓存加速方法、系统、设备及介质,该方法包括:响应于任务指令,将远端存储的目标数据集映射至数据集抽象组件;基于数据集抽象组件对加速引擎组件进行绑定;根据目标数据集从所有处理节点中确定出用于执行训练任务的工作节点;根据缓存配置参数,对工作节点的缓存区域进行配置,并对缓存区域与加速引擎组件进行映射关系建立,形成逻辑存储,以使目标数据集通过加速引擎组件映射至缓存区域;将训练任务挂载至逻辑存储,以便于训练任务通过缓存区读取目标数据集。本发明实施例提供的数据集缓存加速方法能够解决计算应用程序与异构存储之间的兼容性问题,同时提升数据读取的速度。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种深度学习平台的数据集缓存加速方法、系统、设备及介质。
背景技术
在云计算时代,由于存算分离架构相比传统耦合架构具有数据易于扩展、低成本、易于维护等优势,存算分离架构可以是指将所有需要持久化的数据存储到远端服务器,计算应用程序通过读取远端数据,而本地节点并不存储数据。由于所有数据都存储在远端服务器,系统便易于进行扩展,例如集群需要增加算力,只需要新加入一个计算节点,无需对数据进行物理搬迁。然而,该架构也存在下面两个问题:第一,计算应用程序与远端异构存储之间存在兼容性问题;第二,由于数据存储在远端,计算应用读取数据需要通过网络等方式,因此不可避免受限于网络带宽等因素制约。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种深度学习平台的数据集缓存加速方法、系统、设备及介质,能够解决计算应用程序与异构存储之间的兼容性问题,同时提升数据读取的速度。
第一方面,本发明实施例提供了一种深度学习平台的数据集缓存加速方法,该深度学习平台包括数据集抽象组件、加速引擎组件和至少一个处理节点;该数据集缓存加速方法包括:
响应于任务指令,将远端存储的目标数据集映射至所述数据集抽象组件,所述数据集抽象组件根据所述目标数据集的数据集命名空间进行创建得出,所述任务指令包括训练任务所需的所述目标数据集以及用于配置数据缓存空间的缓存配置参数;
基于所述数据集抽象组件对所述加速引擎组件进行绑定,所述加速引擎组件根据所述数据集命名空间进行创建得出;
根据所述目标数据集从所有所述处理节点中确定出用于执行训练任务的工作节点;
根据所述缓存配置参数,对所述工作节点的缓存区域进行配置,并对所述缓存区域与所述加速引擎组件进行映射关系建立,形成逻辑存储,以使所述目标数据集通过所述加速引擎组件映射至所述缓存区域;
将所述训练任务挂载至所述逻辑存储,以便于所述训练任务通过所述缓存区读取所述目标数据集。
根据本发明提供的实施例的数据集缓存加速方法,至少具有如下有益效果:数据集抽象组件可以对远端存储的目标数据集进行抽象和整合,为上层应用程序提供统一的数据接口,从而有助于上层应用程序透明地读取目标数据集,屏蔽远端异构存储之间的差异,解决了计算应用程序与异构存储之间的兼容性问题。而通过数据集命名空间对数据集抽象组件与加速引擎组件进行绑定,使得加速引擎组件能够具有对目标数据集加速访问的能力,另外,加速引擎组件采用映射关系检索数据而非从远端存储中直接检索读取,能够缓解对目标数据集进行管理时的性能开销。利用缓存配置参数对工作节点进行缓存区域进行配置,并通过加速引擎组件建立映射关系,同时将训练任务挂载至逻辑存储,使得训练任务能够通过本地的缓存区域来访问目标数据,实现上层计算应用对远端存储数据的加速读取。而由于缓存区域是工作节点中的本地物理内存,不仅能够提高节点资源的利用率,还能够为训练任务提供快速、低延迟的数据读取,加速深度学习任务的训练过程,提高深度学习平台的整体性能。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述目标数据集包括至少一个数据集来源,所述数据集来源表征为所述目标数据集中的数据所存储的远端存储设备类型;
所述响应于任务指令,将远端存储的目标数据集映射至所述数据集抽象组件,包括:
响应于任务指令,根据所述数据集来源,将所述目标数据集中的数据映射至所述数据集抽象组件;
其中,所述数据集抽象组件与所述数据集来源一一对应,所述数据集抽象组件创建于所述目标数据集中对应所述数据集来源的数据的数据集命名空间。
通过数据集抽象组件对远端异构存储的底层存储方式的差异进行屏蔽,提供同一的数据接口,让上层应用无需关注底层存储的细节。同时,通过不同数据集来源在不同数据集的专属命名空间中创建相应的数据集抽象组件,实现对不同来源的数据进行隔离,提高数据安全性和可靠性。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述基于所述数据集抽象组件对所述加速引擎组件进行绑定,包括:
将同一所述数据集命名空间下的所述数据集抽象组件与所述加速引擎组件进行绑定,所述数据集抽象组件与所述加速引擎组件一一对应;
根据所述数据集来源,将所述目标数据集以文件形式挂载至对应的所述加速引擎组件的一个或多个目录下。
采用在同一数据集命名空间下创建的加速引擎组件与相应的数据集抽象组件进行绑定,能够有效实现对不同来源的数据进行隔离,提高数据的管理和保护能力。而将不同数据集来源的数据抽象为加速引擎中不同目录下的文件,从而能够以访问文件形式来同时访问不同来源的数据,屏蔽不同存储类型版本之间的差异。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述将所述训练任务挂载至所述逻辑存储之后,所述数据集缓存加速方法还包括:
在进行读取所述目标数据集的过程中,依次对所述工作节点、非工作节点和所述远端存储进行训练数据的读取判定,直至所述训练数据读取成功,所述训练数据为所述训练任务所需的数据,所述非工作节点为所有所述处理节点中除所述工作节点以外的所述处理节点。
通过优先读取工作节点和非工作节点中的本地缓存数据,能够实现训练任务快速读取数据,减少从远端存储中读取数据带来的网络延迟,同时,通过优先访问本地节点的缓存数据,能够避免每次访问数据集时都要从远端存储中读取数据,降低计算开销和资源消耗。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述依次对所述工作节点、非工作节点和所述远端存储进行训练数据的读取判定,直至所述训练数据读取成功,包括:
当所述工作节点的所述缓存区域存在所述训练数据,从所述工作节点的所述缓存区域中读取所述训练数据;当所述工作节点的所述缓存区域不存在训练数据,对所有非工作节点的所述缓存区域进行所述训练数据的查找;
当所述非工作节点的所述缓存区域中存储有所述训练数据,从所述非工作节点的所述缓存区域中读取所述训练数据并保存至所述工作节点的所述缓存区域;当所有所述非工作节点的所述缓存区域中不存在所述训练数据,从所述远端存储的所述目标数据集中读取所述训练数据并保存至所述工作节点的所述缓存区域。
通过优先读取本地节点的缓存数据能够提高训练任务读取数据的效率,同时在数据读取后,将数据集存储于工作节点的本地内存中能够从远端存储读取数据而产生的计算开销和资源消耗,同时实现数据的分布式存储,提高数据的可靠性。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述根据所述目标数据集从所有所述处理节点中确定出用于执行训练任务的工作节点,包括:
当所述目标数据集为首次训练应用,从所有所述处理节点中确定出无训练任务进行中的节点作为用于执行训练任务的工作节点;
当所述目标数据集为非首次训练应用,从所有所述处理节点中确定出与所述目标数据集相匹配的节点作为执行训练任务的工作节点。
通过判断目标数据集是否为首次训练应用,来对训练任务和目标数据集进行节点分配,在未有训练应用的情况下,分配空闲节点能够减少等待时间和资源浪费,提高深度学习训练任务的效率;而针对已有训练应用的情况下,将训练任务尽可能分配到本地缓存区域中已有该目标数据集的工作节点,使得训练任务能够从本地缓存区域内快速读取目标数据集,提高数据读取的效率。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述从所有所述处理节点中确定出与所述目标数据集相匹配的节点作为执行训练任务的工作节点,包括:
根据所述目标数据集,对各个所述处理节点的缓存数据进行数据匹配,确定出各个所述处理节点的评估分数,所述评估分数表征为所述处理节点的所述缓存数据与所述目标数据集的相似度;
根据所述评估分数,从所述处理节点中确定出用于执行训练任务的工作节点。
通过对已存在缓存数据的处理节点进行检索和选取,优先分配本地缓存与目标数据集相匹配的处理节点作为工作节点,减少数据传输次数和数据传输量减轻网络的传输开销,并且通过本地数据读取能够提高数据的访问效率和训练速度。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述将所述训练任务挂载至所述逻辑存储之后,所述数据集缓存加速方法还包括:
针对各个所述处理节点,对各个训练数据集的读取频率进行计算,确定出常用数据集,所述训练数据集表征为各个所述处理节点中的应用程序已读取的数据集;
将所述常用数据集保存至所述处理节点的所述缓存区域。
通过对各个数据集读取频率确定出热数据,并借助于处理节点进行本地存储,能够充分利用处理节点上的存储空间,弥补了数据本地缺失问题,提高了资源利用率,同时使得大量热数据不必通过网络方式从远端获取,减少网络带宽对数据请求限制,提高了数据读取速度。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述数据集缓存加速方法还包括:
获取所述远端存储中数据集的存储修改时间,以及所述缓存区域的缓存修改时间;
当所述存储修改时间与所述缓存修改时间不满足时间一致性条件,重新将所述远端存储中新的目标数据集更新至所述工作节点的所述缓存区域。
由于训练任务读取的数据为从远端存储中缓存至工作节点中本地的缓存区域,当远端存储中的数据发生改变,则近端缓存即缓存区域的数据需要同时改变才能保证训练任务从缓存区域中读取的数据为最新且准确的数据,通过记录远端存储和近端缓存两者的数据修改时间来判断缓存数据与远端数据是否一致,对远端存储中修改后的数据进行及时更新,实现数据实时性,同时提高数据的准确性和可靠性。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述缓存配置参数包括数据缓存路径、存储介质类型和存储容量。
通过配置缓存区域的数据缓存路径和存储容量,即实现将数据缓存至工作节点本地存储区域,能够提高数据读取效率,减少训练过程中频繁访问数据所带来的网络开销;而通过对缓存区域的存储介质类型和存储容量,能够根据实际需求合理分配存储资源,优化存储资源的利用。
根据本发明的一些实施例,在上述数据集缓存加速方法中,所述深度学习平台还包括用于管理所述数据集抽象组件的生命周期的数据集抽象控制器,以及用于管理所述加速引擎组件的生命周期的加速引擎控制器。
通过数据集抽象控制器和加速引擎控制器,可以实现对数据集抽象组件和加速引擎组件的控制和管理,提高深度学习平台的可维护性和可扩展性。
第二方面,本发明实施例提供一种数据集缓存加速系统,包括:
数据映射模块,用于响应于任务指令,将远端存储的目标数据集映射至所述数据集抽象组件,所述数据集抽象组件根据所述目标数据集的数据集命名空间进行创建得出,所述任务指令包括训练任务所需的所述目标数据集以及用于配置数据缓存空间的缓存配置参数;
组件绑定模块,用于基于所述数据集抽象组件对所述加速引擎组件进行绑定,以形成逻辑存储,所述加速引擎组件根据所述数据集命名空间进行创建得出;
节点确定模块,用于根据所述目标数据集从所有所述处理节点中确定出用于执行训练任务的工作节点;
缓存配置模块,用于根据所述缓存配置参数,对所述工作节点的缓存区域进行配置,并建立所述缓存区域与所述加速引擎组件的映射关系;
任务挂载模块,用于将所述训练任务挂载至所述逻辑存储,以使所述目标数据集通过所述逻辑存储映射至所述缓存区域,便于所述训练任务通过所述缓存区读取所述目标数据集。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面的数据集缓存加速方法。
第四方面,本发明实施例提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面的数据集缓存加速方法。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明实施例提供的深度学习平台的数据集缓存加速方法的流程图;
图2是本发明实施例提供的示例一的具体实现过程示意图;
图3是图1中步骤S100的具体实现过程示意图;
图4是图1中步骤S200的具体实现过程示意图;
图5是本发明实施例提供的示例二的具体实现过程示意图;
图6是图1中步骤S500之后的具体实现过程示意图;
图7是图6中步骤S600的具体实现过程示意图;
图8是图1中步骤S300的具体实现过程示意图;
图9是图8中步骤S320的具体实现过程示意图;
图10是本发明实施例提供的示例三的具体实现过程示意图;
图11是图1中步骤S600的另一具体实现过程示意图;
图12是本发明另一实施例提供的数据集缓存加速方法的示意图;
图13是本发明实施例提供的数据集缓存加速系统的结构示意图;
图14是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在模块示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于模块中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在云计算时代,由于存算分离架构相比传统耦合架构具有数据易于扩展、低成本、易于维护等优势,目前,深度学习平台通常会将计算资源和存储资源分别部署在不同的节点或者不同的设备上,形成存算分离的结构。由于所有数据都存储在远端存储设备,系统便易于进行扩展,例如集群需要增加算力,只需要新加入一个计算节点,无需对数据进行物理搬迁。然而,该存算分离架构也存在以下问题:第一,计算应用程序与远端异构存储之间的兼容性问题,由于异构存储常常采用不同的文件格式、协议和接口,而计算应用程序需要依赖这些异构存储的接口和协议进行存储、读写和传输数据,当两者之间的技术和方式不兼容,则会导致存储读写错误、数据传输失败等问题,影响系统的稳定性和可靠性。第二,由于数据存储在远端设备中,计算应用读取数据需要通过网络等方式,因此不可避免受限于网络带宽等因素制约,尤其是网络带宽不足或网络通塞时,会导致数据传输速度减慢,进而影响计算应用程序对数据的读取和处理。因此,如何解决计算应用程序与异构存储之间的兼容性问题或者数据读取速度受限于网络因素制约成为亟需解决的问题。
本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
深度学习是一种人工智能技术,它是一类基于多层神经网络的机器学习方法,深度学习适用于处理结构化和非结构化的数据,如图像、语音、自然语言、时间序列等。深度学习模型具有端到端的特点,即输入数据经过一系列层次化的变换,直接得到输出结果,不需要人工干预。深度学习的主要思想是通过构建多层次、分层次的非线性模型,逐层从原始数据中学习高层次的抽象表示,并通过反向传播算法来实现模型的训练和优化。深度学习在语音识别、计算机视觉、自然语言处理等领域可以取得非常优秀的表现。
而深度学习平台是指一种软硬件基础设施,为深度学习模型的构建、训练和部署提供全面的支持。深度学习平台能够提供一系列深度学习算法以及模型库,有助于快速构建出深度学习模型,同时提供了分布式训练和部署环境,支持多个计算节点之间的任务分配和通信,实现大规模的并行化训练和推理,另外,深度学习平台,能够提供数据管理、模型开发、训练调试、部署管理等一系列工具,可以极大地提高深度学习应用的开发效率和训练速度,同时能够优化墨香效果和部署性能。
本发明涉及人工智能,提供了一种深度学习平台的数据集缓存加速方法、系统、设备及介质,能够解决计算应用程序与异构存储之间的兼容性问题,同时提升数据读取的速度。该数据集缓存加速方法包括:响应于任务指令,将远端存储的目标数据集映射至数据集抽象组件,数据集抽象组件根据目标数据集的数据集命名空间进行创建得出,任务指令包括训练任务所需的目标数据集以及用于配置数据缓存空间的缓存配置参数;基于数据集抽象组件对加速引擎组件进行绑定,加速引擎组件根据数据集命名空间进行创建得出;根据目标数据集从所有处理节点中确定出用于执行训练任务的工作节点;根据缓存配置参数,对工作节点的缓存区域进行配置,并对缓存区域与加速引擎组件进行映射关系建立,形成逻辑存储,以使目标数据集通过加速引擎组件映射至缓存区域;将训练任务挂载至逻辑存储,以便于训练任务通过缓存区读取目标数据集。根据本发明提供的实施例,数据集抽象组件可以对远端存储的目标数据集进行抽象和整合,为上层应用程序提供统一的数据接口,从而有助于上层应用程序透明地读取目标数据集,屏蔽远端异构存储之间的差异,解决了计算应用程序与异构存储之间的兼容性问题。而通过数据集命名空间对数据集抽象组件与加速引擎组件进行绑定,使得加速引擎组件能够具有对目标数据集加速访问的能力,另外,加速引擎组件采用映射关系检索数据而非从远端存储中直接检索读取,能够缓解对目标数据集进行管理时的性能开销。利用缓存配置参数对工作节点进行缓存区域进行配置,并通过加速引擎组件建立映射关系,同时将训练任务挂载至逻辑存储,使得训练任务能够通过本地的缓存区域来访问目标数据,实现上层计算应用对远端存储数据的加速读取。而由于缓存区域是工作节点中的本地物理内存,不仅能够提高节点资源的利用率,还能够为训练任务提供快速、低延迟的数据读取,加速深度学习任务的训练过程,提高深度学习平台的整体性能。
第一方面,参照图1,图1示出了本发明实施例提供的数据集缓存加速方法的流程图,该数据集缓存加速方法包括但不限于有以下步骤:
步骤S100,响应于任务指令,将远端存储的目标数据集映射至数据集抽象组件,数据集抽象组件根据目标数据集的数据集命名空间进行创建得出,任务指令包括训练任务所需的目标数据集以及用于配置数据缓存空间的缓存配置参数;
步骤S200,基于数据集抽象组件对加速引擎组件进行绑定,加速引擎组件根据数据集命名空间进行创建得出;
步骤S300,根据目标数据集从所有处理节点中确定出用于执行训练任务的工作节点;
步骤S400,根据缓存配置参数,对工作节点的缓存区域进行配置,并对缓存区域与加速引擎组件进行映射关系建立,形成逻辑存储,以使目标数据集通过加速引擎组件映射至缓存区域;
步骤S500,将训练任务挂载至逻辑存储,以便于训练任务通过缓存区读取目标数据集。
可以理解的是,当深度学习平台接收到训练任务的任务指令,通过任务指令中包含的信息确定出训练任务所需的目标数据集,因此,可以在该目标数据集的数据集命名空间下创建数据集抽象组件,并将远端存储的目标数据集映射至该数据集抽象组件。接着,从该目标数据集的数据集命名空间下创建加速引擎组件,并且将该加速引擎组件与数据集抽象组件进行绑定,即加速引擎组件与数据集抽象组件一对一绑定。数据集抽象组件作为如对象存储服务(Object Storage Service,OSS)、分布式文件系统(Hadoop DistributedFile System,HDFS)、Ceph系统等远端存储与上层加速引擎组件的中间层,数据集抽象组件可以对远端存储的数据集进行抽象和整合,为上层应用程序提供统一的数据接口,告知加速引擎组件所需数据集的数据来源,即告知加速引擎组件可以在哪里找到所需要的数据集,从而上层的加速引擎组件可以通过访问数据集抽象组件来透明地读取所需的数据集,能够实现屏蔽异构存储引起的不同存储类型版本之间的差异的效果,解决了计算应用程序与异构存储之间的兼容性问题。加速引擎组件可以实现数据集的管理和加速访问的能力,在加速引擎组件与数据集抽象组件绑定后,加速引擎组件作为应用程序与远端存储之间的通信载体,也能够为上层应用程序提供访问异构存储系统的公共接口。
利用缓存配置参数对工作节点进行缓存区域进行配置,并根据缓存配置参数对加速引擎组件与缓存区域建立映射关系,使得加速引擎组件、数据集抽象组件与缓存区域形成逻辑存储。逻辑存储相当于数据集在工作节点上的逻辑副本,用于提供数据的快速访问和处理能力。将训练任务挂在至逻辑存储,以便于训练任务在需要访问、处理和修改数据的情况下,直接从缓存区域内的目标数据集进行快速读取,实现上层计算应用对远端存储数据的加速读取。而由于缓存区域是工作节点中的本地物理内存,不仅能够提高节点资源的利用率,还能够为训练任务提供快速、低延迟的数据读取,加速深度学习任务的训练过程,提高深度学习平台的整体性能。
其中,可以通过将训练任务以容器卷的形式挂载至逻辑存储,多个容器可以挂载同一个容器卷,从而可以实现容器之间的数据共享和数据访问,便于进行多个训练任务之间数据的共享和协同工作,提供平台的资源利用率。另外,多个容器共享一个数据集,也可以降低对网络带宽的占用,减少了数据传输的时间和成本,提高了数据访问和处理的效率。因此,利用数据集抽象组件、加速引擎组件和工作节点的缓存区域能够提供分布式共享缓存服务,充分利用处理节点中存储空间进行数据保存,提供了节点资源的利用率和数据读取的效率。
通过采用逻辑存储的机制,能够便于对数据集进行管理和维护,实现数据的备份、恢复和迁移等功能,同时逻辑存储具有独立性,能够减少不同训练任务之间的干扰和冲突。
需要说明的是,与传统文件系统相比,云存储和对象存储系统的语义和操作方式不同,因此在访问和处理大规模的深度学习数据集时,这些存储系统可能面临较大的性能开销和延迟问题。例如,由于对象存储系统的元数据服务通常采用异步写入的方式进行处理,因此可能会导致较长时间的元数据更新延迟,从而影响数据的访问和处理。为了缓解这些问题带来的性能开销,可以将加速引擎组件与云存储或对象存储一起部署,从而使得数据的访问和处理可以通过加速引擎组件实现,即加速引擎组件通过数据集抽象组件进行数据检索,而不是直接从远端存储中检索读取,从而提高数据访问和处理的效率。加速引擎组件可以根据数据访问和处理需求,优化数据流和计算流程,减少数据的读写开销和延迟。因此,加速引擎组件与云存储或对象存储的部署方案可以为深度学习应用的训练和推理带来一些实际的优化和性能提升。
需要说明的是,数据集抽象组件可以在数据集抽象控制器的控制下创建得出,数据集抽象控制器负责管理数据集抽象组件的生命周期,包括创建,与加速引擎组件绑定解绑以及删除,同时提供数据集的元数据管理和访问支持,便于管理数据集。另外,加速引擎组件可以在加速引擎控制器的控制下创建得出,加速引擎控制器负责管理加速引擎组件的生命周期管理,包括创建,扩缩容,缓存预热和清理的触发,删除等操作,同时提供加速引擎组件的性能监控和调优支持,便于管理训练任务的执行。例如,在当前训练任务执行之前,数据集抽象控制器和加速引擎组件分别创建所需的数据集抽象组件和加速引擎组件,数据集抽象控制器控制数据集抽象组件与相应的加速引擎组件进行绑定;而在当前训练任务执行之后,数据集抽象控制器可以控制该数据集抽象组件与加速引擎组件进行解绑,而加速引擎控制器可以对加速引擎组件中的缓存进行清理。
在计算与存储分离的大背景下,本发明实施例将数据从异构存储中抽象出来进行统一管理,实现了数据与计算之间的快速融合,借助于计算工作节点自身存储,使得大量热数据不必通过网络方式从远端存储中获取,提升了访问效率,尤其是在网络带宽越小情况下访问效率提升越明显。
为了解决不同计算应用程序与异构存储之间的兼容性问题,通过引入虚拟文件系统,该虚拟文件系统包括数据集抽象组件和加速引擎组件,它位于上层计算应用层和底层异构存储之间,通过它为上下两层都各自提供了一组对应的接口。对于计算应用层来,计算应用程序可以通过虚拟文件系统提供的上层接口进行交互即加速引擎组件提供的接口,即能够屏蔽底层存储系统之间的差异。对于底层异构存储来说,可以通过虚拟文件系统的下层接口即数据集抽象组件提供的接口进行交互,从而屏蔽上层计算应用之间的差异。例如,可以获取常见底层存储文档信息,并根据不同类型存储进行定制环境变量的配置;由于底层存储在软件层面本质上是一个文件管理系统,能够给上层应用提供如创建、打开、读取、写入和关闭等功能,同时提供了一些跨语言的应用程序编程接口(ApplicationProgramming Interface,API),通过这些API可以实现接口编程以及通过代码方式实现对存储系统中数据的增删改查,因此可以采用主流编程语言对这些接口进行重新开发以便提供一个支持标准的文件操作的统一功能,从而可以通过自定义的接口实现将底层存储获取的数据放入虚拟文件系统中的目的;而不同的计算应用层的编程语言框架配置参数不同,可以通过包安装器对接口进行改写,来消除差异化,比如Hadoop的配置是保存在HadoopConf文件中,Spark的配置是在SparkEnv中,利用不同的包安装器将这些计算应用和各自的重要信息序列化为字节数组,传入虚拟文件系统中,再通过反序列化进行恢复,不同计算应用都通过各自包管理器实现上层计算应用对存储数据访问的接口的改写,通过改写之后的接口可以访问虚拟文件系统下层接口,进而实现对底层异构存储数据交互,实现了计算应用对异构存储的透明访问,以Spark计算应用为例,可以自定义接口与计算应用Spark数据读取接口进行对接,从而利用统一的API实现Spark与数据读写与交互。
下面以具体的例子对本发明实施例所提供的数据集缓存加速方法进行详细的说明。
示例一:参照图2,用于执行数据集缓存加速方法的系统架构可以包括主节点、工作节点、加速引擎组件、数据集抽象组件、加速引擎控制器和数据集抽象控制器。主节点在收到任务指令即训练任务后,将训练任务分配至工作节点,工作节点内设置有计算单元,能够对数据进行训练完成训练任务。目标数据集可以来自三个异构存储设备,包括OSS、HDFS和Ceph,其中OSS为云端存储,HDFS与Ceph为集群内存储。首先,数据集抽象控制器在目标数据集命名空间下创建三个数据集抽象组件,用来告知加速引擎控制器在哪里可以找到所需数据集,此时各个数据集抽象组件的状态为创建但未绑定。然后,在该命名空间下创建三个加速引擎组件,分别与三个数据集抽象组件进行绑定,同时在加速引擎组件配置工作节点的存储目录、存储介质类型和存储容量,即缓存配置参数。当加速引擎组件创建成功,在相应工作节点中同时创建一个缓存区域,此时三个数据集抽象组件为绑定状态,同时缓存区域、绑定后的数据集抽象组件和加速引擎组件形成逻辑存储,从而训练任务以容器卷的挂载方法同时请求这三对逻辑存储以便获取缓存区域中的数据集。
参照图3,图1所示实施例中的步骤S100包括但不限于有以下步骤:
步骤S110,响应于任务指令,根据数据集来源,将目标数据集中的数据映射至数据集抽象组件。
可以理解的是,目标数据集可以来源于多个远端存储,而各个远端存储的设备类型可以不相同,如HDFS、OSS、Ceph等存储设备,这些存储设备实用的语义、数据格式和访问方式都有所不同,即目标数据集可以包括多个数据集来源。为了提高数据的安全性,可以根据远端存储的设备类型对数据集进行划分,形成多个数据集,即一个数据集可以对应于一个远端存储,并且根据划分后各个数据集的数据集来源,创建不同数据集的专属命名空间,即每个数据集来源的数据集具有不同的数据集命名空间,从而在各个相应的数据集命名空间下创建相应的数据集抽象组件,实现对不同来源的数据进行隔离,同时能够实现对不同数据集来源的数据进行统一管理,便于进行数据的访问和处理。
参照图4,图1所示实施例中的步骤S200包括但不限于有以下步骤:
步骤S210,将同一数据集命名空间下的数据集抽象组件与加速引擎组件进行绑定,数据集抽象组件与加速引擎组件一一对应;
步骤S220,根据数据集来源,将目标数据集以文件形式挂载至对应的加速引擎组件的一个或多个目录下。
可以理解的是,加速引擎组件可以实现数据集的管理和加速,实现上层应用访问异构存储系统的公共接口。在目标数据集来源于多个远端存储,即目标数据集包括多个数据集来源的情况下,可以在各个不同数据集来源所对应的数据集的数据集命名空间下创建加速引擎组件,即可以在各个数据集命名空间下创建数据集抽象组件和加速引擎组件,并且将相同数据集命名空间下的数据集抽象组件和加速引擎组件进行一对一绑定,形成一对一的映射关系。
同时,可以利用数据集抽象组件将不同数据集来源的目标数据集抽象形成不同目录下的文件,即以文件形式挂载至与该数据集抽象组件所绑定的加速引擎组件中,从而能够可以通过访问加速引擎组件中不同目录下的文件来实现访问不同数据集来源的数据。
可以理解的是,缓存配置参数包括数据缓存路径、存储介质类型和存储容量。数据缓存路径可以表示数据缓存在工作节点的实际存储位置,而存储介质类型可以指明缓存数据所使用的存储设备类型,如“MEM”、“SSD”、“HDD”;存储容量可以表示为该缓存区域所允许的最大缓存容量。通过配置缓存区域的数据缓存路径和存储容量,即实现将数据缓存至工作节点本地存储区域,能够提高数据读取效率,减少训练过程中频繁访问数据所带来的网络开销;而通过对缓存区域的存储介质类型和存储容量,能够根据实际需求合理分配存储资源,优化存储资源的利用。对于在深度学习平台中提交训练任务,可以仅需要选择所需缓存加速的目标数据集,以及确定数据缓存路径、存储介质类型和存储容量作为缓存配置参数,简化操作,便于用户使用。在确定上述信息之后,深度学习平台会选择在数据集所属的命名空间下创建对应数据抽象组件与加速引擎组件进行绑定,同时自动创建对应存储卷和存储卷请求,并且将已经创建逻辑存储挂载到训练任务容器卷中,即可实现训练任务对数据集加速读取。
下面以具体的例子对本发明实施例所提供的数据集缓存加速方法进行详细的说明。
示例二:参照图5,图5示出了深度学习平台缓存加速整体结构示意图。远端存储设备有多个,如“MNIO”、“HDFS”、“AWS S3”等等,而远端存储中包括有多个数据集,如数据集A、数据集B。为了提高数据的安全性,对不同来源的数据进行隔离,在集群内部利用不同数据集进行创建属于不同数据集的专属名称空间,如数据集A创建出了数据集A的专属空间A,而数据集B创建出了数据集B的专属空间B,进而在各个专属空间下创建相应的数据抽象组件和加速引擎组件,同时也创建对应逻辑存储提供训练任务请求。
可以理解的是,出于对不同对象(如不同训练任务或不同来源数据集或不同用户)的数据的安全性,利用底层容器化技术通过不同对象的元信息中唯一性的字段(如标记名称)创建属于该对象唯一命名空间,不同对象所创建的计算应用程序只能访问改命名空间下的数据集,而不能跨空间进行访问,实现了数据的安全隔离。另外上述的数据处理过程透明,同时数据集被缓存在挂载的容器卷中,当容器运行时,数据集已经被预先加载到容器卷中,无需再从远端存储中读取,避免了网络传输数据的过程,从而提高了数据的访问效率和响应速度,缩短了训练任务的运行时间。同时,使用容器卷的数据管理方式,也可以方便地对数据进行维护和管理,保证数据的安全性和可靠性,有效解决了访问远端数据的效率或者管理数据的便捷性,以及计算应用如何调度决策等运维问题,形成了一套云原生场景下数据密集型高效能支撑平台。因此,利用本发明实施例提供的数据集缓存加速方法能够在深度学习平台上实现配置缓存加速、创建缓存区、不同处理节点共享缓存等一系列有关数据加速的完整链路,同时数据集缓存加速功能独立于该深度学习平台的其他功能,可以根据实际需要即是否触发任务指令,选择是否开启此功能。当关闭数据集加速功能,即深度学习平台无任务指令触发,训练任务将不会从缓存区读取数据集而从远端存储中直接获取数据,因此该功能对本平台其他功能无任何兼容性问题。
参照图6,图1所示实施例中的步骤S500之后包括但不限于有以下步骤:
步骤S600,在进行读取目标数据集的过程中,依次对工作节点、非工作节点和远端存储进行训练数据的读取判定,直至训练数据读取成功,训练数据为训练任务所需的数据,非工作节点为所有处理节点中除工作节点以外的处理节点。
可以理解的是,在进行读取目标数据集的过程中,首先从被分配训练任务的工作节点开始尝试读取训练数据,如果工作节点的本地缓存中具有训练数据,则读取成功,直接从本地缓存中返回训练数据,并结束读取过程,达到快速读取数据的效果。如果在工作节点中无法读取训练数据,则尝试从所有处理节点中除工作节点以外的处理节点,即非工作节点中进行训练数据的读取,如果读取成功,则通过节点之间的共享返回训练数据,并结束读取过程。由于远端存储中必然存在该目标数据集,即远端存储中必然存储有训练数据,因此,若工作节点和非工作节点本地缓存的数据均不包含训练数据,则从远端存储中进行训练数据读取,来确保训练数据读取成功。
利用优先读取工作节点和非工作节点本地缓存的数据这种读取方式可以在保证数据安全性的同时,最大限度地优化数据读取效率和访问速度,避免每次访问数据集时都要从远端存储中读取数据,减少从远端存储中读取数据集带来的网络延迟,有效地减少任务运行的时间成本和资源消耗。
参照图7,图6所示实施例中的步骤S600包括但不限于有以下步骤:
步骤S610,当工作节点的缓存区域存在训练数据,从工作节点的缓存区域中读取训练数据;当工作节点的缓存区域不存在训练数据,对所有非工作节点的缓存区域进行训练数据的查找;
步骤S620,当非工作节点的缓存区域中存储有训练数据,从非工作节点的缓存区域中读取训练数据并保存至工作节点的缓存区域;当所有非工作节点的缓存区域中不存在训练数据,从远端存储的目标数据集中读取训练数据并保存至工作节点的缓存区域。
可以理解的是,在读取训练数据的情况下,首先尝试在工作节点中查找读取,如果工作节点中已保存训练数据,则可以直接从工作节点中读取训练数据,避免了再次从非工作节点或远端存储中读取数据,提高了数据访问效率。而在工作节点丢失训练数据的情况下,可以通过查找非工作节点或远端存储中的数据,重新获取训练数据并保存至工作节点,利用工作节点的本地存储空间进行数据存储,能够提高节点的资源利用率,实现数据的分布式存储,避免了数据丢失带来的训练任务失败问题,保证了训练模型的准确性和稳定性。另外,可以随时增加或减少处理节点的数量,实现任务的弹性扩容,同时能够对处理节点访问的负载均衡,保证数据读取和处理的平衡性,提高深度学习平台的稳定性和可靠性。因此,通过依次读取工作节点、非工作节点和远端存储的数据并将训练数据保存至本地缓存中,能够实现数据的快速获取和存储,缩短训练任务的运行时间,同时优化数据处理效率,提高深度学习平台的整体运行效率和性能。
例如,在深度学习平台中,计算应用程序正常读取远端存储(如MINIO对象存储)中数据集,该数据集的容量为443MB,经过测试得知,读取所需时间为40秒。由于深度学习平台执行本发明实施例提供的数据集缓存加速方法后,各个处理节点会将数据进行本地缓存,当计算应用程序即训练任务再次读取数据集,不需要重复访问远端存储,而是从工作节点或非工作节点的本地缓存中读取,经过测试得知,从本地缓存中读取训练数据所需时间为0.4秒;又如,在对HDFSCLient文件进行加速访问测试的过程中,采用HDFSjavaClient直接访问远端文件时间需要7000毫秒,而从工作节点或处理节点中的本地缓存中获取文件时间需要1200毫秒,因此采用本发明实施例提供的数据集缓存加速方法,在工作节点读取训练数据后保存至本地的缓存区域内,便于数据的二次读取,实现数据的快速获取,提高深度学习平台的整体运行效率和性能。
参照图8,图1所示实施例中的步骤S300包括但不限于有以下步骤:
步骤S310,当目标数据集为首次训练应用,从所有处理节点中确定出无训练任务进行中的节点作为用于执行训练任务的工作节点;
步骤S320,当目标数据集为非首次训练应用,从所有处理节点中确定出与目标数据集相匹配的节点作为执行训练任务的工作节点。
可以理解的是,通过判断目标数据集是否为首次训练应用,来对训练任务和目标数据集进行节点分配。在该训练任务首次执行,即目标数据集为首次训练应用的情况下,需要从所有处理节点中确定出一个可用节点作为工作节点,其中,可以根据处理节点的网络带宽大小或本地缓存区域的存储容量大小进行工作节点的确定,通过分配空闲节点能够减少等待时间和资源浪费,提高深度学习训练任务的效率。
针对已有训练应用即训练任务再次调用的情况,根据目标数据集中的数据特征和处理节点中本地缓存数据的内容,确定出一个本地缓存数据内容与目标数据集相匹配的处理节点作为工作节点,即将训练任务尽可能分配到本地缓存区域中已有该目标数据集的工作节点,使得训练任务能够从本地缓存区域内快速读取目标数据集,充分利用现有节点的缓存数据,提高数据读取的效率,极耳提高训练任务的执行效率,有效控制资源消耗。
参照图9,图8所示实施例中的步骤S320包括但不限于有以下步骤:
步骤S321,根据目标数据集,对各个处理节点的缓存数据进行数据匹配,确定出各个处理节点的评估分数,评估分数表征为处理节点的缓存数据与目标数据集的相似度;
步骤S322,根据评估分数,从处理节点中确定出用于执行训练任务的工作节点。
可以理解的是,依次对各个处理节点的缓存数据进行针对目标数据集的数据匹配任务,确定出处理节点中的缓存数据与目标数据集的相似度,得出各个处理节点的评估分数。因此,可以利用各个处理节点的评估分数,确定出合适的节点作为工作节点,最大化利用处理节点的资源,提高训练任务的运行效率。同时,通过评估处理节点的缓存数据与目标数据集相似度,可以选择缓存数据与目标数据集最为接近的节点作为工作节点,从而最小化数据传输量,减少数据传输带宽和成本开销,提高数据访问效率。
下面以具体的例子对本发明实施例所提供的数据集缓存加速方法进行详细的说明。
示例三:参照图10,图10示出了训练任务在集群中调度过程的具体示意图。
在主节点首次接收到训练任务即任务指令,主节点可以从所有处理节点中确定出可用节点,进而将训练任务调度到一个可用的工作节点,在该工作节点开辟缓存区域,计算应用程序从远端的异构存储中的目标数据集读取数据,并将部分数据存储在工作节点本地缓存即缓存区域中,计算应用程序再次读取数据,计算应用会先尝试从本地缓存区中读取数据,如果数据存在则直接获取,如果不存在则尝试从非工作节点缓存区读取数据,如果存在则直接读取,并将到数据保存到本地缓存区,如果不存在则从远端存储中读取,并将数据保存到本地缓存区。而在主节点再次接收到训练任务,且所需数据与之前数据相同,则可以通过节点亲和性调度策略将优先调度到缓存中有该数据集的工作节点。数据集控制器可以获取深度学习平台中所有节点的缓存数据,结合目标数据集以及各个节点的缓存数据,对各个节点进行优先调度打分评估即作出评估分数,例如节点具有该训练任务所需数据集的缓存越多,则评估分数越高,反之则越低。值得注意的是,评估分数作为节点调度评估中的一个指标,而非仅依据评估分数进行节点调度,还可以根据网络带宽等物理指标综合考虑,得出最优的调度策略。因此,能够实现上层计算应用对远端存储数据的加速读取。
参照图11,图1所示实施例中的步骤S600包括但不限于有以下步骤:
步骤S630,针对各个处理节点,对各个训练数据集的读取频率进行计算,确定出常用数据集,训练数据集表征为各个处理节点中的应用程序已读取的数据集;
步骤S640,将常用数据集保存至处理节点的缓存区域。
可以理解的是,通过调用各个处理节点的工作日志,对各个处理节点读取数据集的次数进行统计,得出在各个处理节点中各个训练数据集的读取频率,进而确定出常用数据集,即热数据。将热数据保存至处理节点的缓存区域中,可以避免反复从远端存储中读取数据集,提高数据访问效率和响应速度。通过本地缓存常用数据集,还可以减少处理节点和远程存储之间的数据传输量化和传输成本,降低训练任务的成本开销。同时,根据数据集的使用情况选择性地利用处理节点的本地内存进行数据缓存,有效提高节点资源利用率。同时,由于工作节点分配存储空间有限,将计算应用程序经常使用的数据即热数据缓存到本地,还可以定期处理不经常使用的数据,释放存储空间,达到对数据缓存控制管理。
参照图12,图1所示实施例中的数据集缓存加速方法还包括但不限于有以下步骤:
步骤S710,获取远端存储中数据集的存储修改时间,以及缓存区域的缓存修改时间;
步骤S720,当存储修改时间与缓存修改时间不满足时间一致性条件,重新将远端存储中新的目标数据集更新至工作节点的缓存区域。
可以理解的是,为了解决本地缓存区域中数据与远端异构存储中数据一致性问题,可以通过记录并获取远端存储中数据集的存储修改时间和缓存区域的缓存修改时间,判断存储修改时间与缓存修改时间是否满足时间一致性,即存储修改时间是否早于缓存修改时间,否则,认为两者时间不满足时间一致性条件,则需要重新将远端存储中修改后的目标数据集对本地的缓存区域内的数据进行更新。
例如,对于远端存储和缓存区域中每个数据集,分别创建一个对应的元数据信息,当远端数据(即底层存储)改变,近端缓存(即计算应用程序所在物理机)需要同时改变才能保证计算应用程序从本地缓存中获取数据为最新数据。
因此,可以通过管理元数据的组件对数据集的元信息进行记录,例如记录存储修改时间,该组件可以定期查询本地缓存中数据与底层异构存储数据变化情况,比如远端存储中数据集的存储修改时间与目前缓存区域的缓存修改时间是否一致等,如果不一样则需要从远程异构存储中重新拉取数据到本地缓存中,该组件查询的时间间隔可以根据实际使用情况进行配置,查询时间间隔越短,数据一致性程度越高,但是随着查询次数的增多,物理机系统开销也增大,反之查询时间间隔越长,数据一致性程度越低,但是物理机系统开销较少;或者,当计算应用程序读取完数据之后自动触发一次数据同步,该组件对记录并判断远端存储中数据集的存储修改时间和缓存区域的缓存修改时间满足时间一致性。
而关于底层存储的元信息,可以通过底层存储中的接口进行获取,比如当读取一份数据则需要通过该接口将数据的信息记录至数据集抽象组件、加速引擎组件或缓存区域中,而读取时间点可以通过调用接口的时间进行记录,并在元数据管理组件维护一张数据元信息表格进行管理。
通过本发明实施例提供的深度学习平台的数据集缓存加速方法,在控制层中,基于异构数据源创建数据集抽象组件以及对应的加速引擎组件进行绑定,同时创建两个组件控制器分别管理数据集抽象组件和引擎加速组件的生命周期。数据集抽象组件将不同存储来源数据以文件形式挂载到加速引擎的一个或者多个目录下,本地的处理节点可以以访问加速引擎组件目录下文件形式实现远端数据的间接访问,同时会创建一对能被集群系统识别的逻辑存储,对于训练任务而言只需要以容器卷形式挂载逻辑存储即能够获取缓存区中的数据,而控制器可以对集群内各缓存区统一管理,动态存储缓存内容。在服务端基于云数据分析和人工智能的开源数据编排技术,实现不同计算应用程序与异构存储的通信。
第二方面,参照图13,图13示出了本发明实施例提供的数据集缓存加速系统1300的结构示意图。
数据集缓存加速系统1300包括数据映射模块1310、组件绑定模块1320、节点确定模块1330、缓存配置模块1340和任务挂载模块1350。
数据映射模块1310,用于响应于任务指令,将远端存储的目标数据集映射至数据集抽象组件,数据集抽象组件根据目标数据集的数据集命名空间进行创建得出,任务指令包括训练任务所需的目标数据集以及用于配置数据缓存空间的缓存配置参数;
组件绑定模块1320,用于基于数据集抽象组件对加速引擎组件进行绑定,以形成逻辑存储,加速引擎组件根据数据集命名空间进行创建得出;
节点确定模块1330,用于根据目标数据集从所有处理节点中确定出用于执行训练任务的工作节点;
缓存配置模块1340,用于根据缓存配置参数,对工作节点的缓存区域进行配置,并建立缓存区域与加速引擎组件的映射关系;
任务挂载模块1350,用于将训练任务挂载至逻辑存储,以使目标数据集通过逻辑存储映射至缓存区域,便于训练任务通过缓存区读取目标数据集。
根据本发明提供的数据集缓存加速系统,数据映射模块1310可以通过数据集抽象组件对远端存储的目标数据集进行抽象和整合,为上层应用程序提供统一的数据接口,从而有助于上层应用程序透明地读取目标数据集,屏蔽远端异构存储之间的差异,解决了计算应用程序与异构存储之间的兼容性问题。而组件绑定模块1320通过数据集命名空间对数据集抽象组件与加速引擎组件进行绑定,使得加速引擎组件能够具有对目标数据集加速访问的能力,另外,加速引擎组件采用映射关系检索数据而非从远端存储中直接检索读取,能够缓解对目标数据集进行管理时的性能开销。通过节点确定模块1330确定出工作后,接着通过缓存配置模块1340对工作节点进行缓存区域进行配置,并通过加速引擎组件建立映射关系,同时利用任务挂载模块1350将训练任务挂载至逻辑存储,使得训练任务能够通过本地的缓存区域来访问目标数据,实现上层计算应用对远端存储数据的加速读取。而由于缓存区域是工作节点中的本地物理内存,不仅能够提高节点资源的利用率,还能够为训练任务提供快速、低延迟的数据读取,加速深度学习任务的训练过程,提高深度学习平台的整体性能。
第三方面,参照图14,图14示出了本发明实施例提供的电子设备1400。该电子设备1400包括存储器1410、处理器1420及存储在存储器1410上并可在处理器1420上运行的计算机程序,处理器1420执行计算机程序时实现如上述实施例中的数据集缓存加速方法。
存储器1410作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明上述实施例中的数据集缓存加速方法。处理器1420通过运行存储在存储器1410中的非暂态软件程序以及指令,从而实现上述本发明上述实施例中的数据集缓存加速方法。
存储器1410可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述实施例中的数据集缓存加速方法所需的数据等。此外,存储器1410可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。需要说明的是,存储器1410可选包括相对于处理器1420远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例中的数据集缓存加速方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述实施例中的数据集缓存加速方法,例如,执行以上描述的图1中的方法步骤S100至步骤S500、图3中的方法步骤S110、图4中的方法步骤S210至步骤S220、图6中的方法步骤S600、图7中的方法步骤S610至步骤S620、图8中的方法步骤S310至步骤S320、图9中的方法步骤S321至步骤S322、图11中的方法步骤S630至步骤S640和图12中的方法步骤S710至步骤S720。
第四方面,本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行如上述实施例中的数据集缓存加速方法,例如,执行以上描述的图1中的方法步骤S100至步骤S500、图3中的方法步骤S110、图4中的方法步骤S210至步骤S220、图6中的方法步骤S600、图7中的方法步骤S610至步骤S620、图8中的方法步骤S310至步骤S320、图9中的方法步骤S321至步骤S322、图11中的方法步骤S630至步骤S640和图12中的方法步骤S710至步骤S720。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
需要说明的是,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (14)
1.一种深度学习平台的数据集缓存加速方法,所述深度学习平台包括数据集抽象组件、加速引擎组件和至少一个处理节点;所述数据集缓存加速方法包括:
响应于任务指令,将远端存储的目标数据集映射至所述数据集抽象组件,所述数据集抽象组件根据所述目标数据集的数据集命名空间进行创建得出,所述任务指令包括训练任务所需的所述目标数据集以及用于配置数据缓存空间的缓存配置参数;
基于所述数据集抽象组件对所述加速引擎组件进行绑定,所述加速引擎组件根据所述数据集命名空间进行创建得出;
根据所述目标数据集从所有所述处理节点中确定出用于执行训练任务的工作节点;
根据所述缓存配置参数,对所述工作节点的缓存区域进行配置,并对所述缓存区域与所述加速引擎组件进行映射关系建立,形成逻辑存储,以使所述目标数据集通过所述加速引擎组件映射至所述缓存区域;
将所述训练任务挂载至所述逻辑存储,以便于所述训练任务通过所述缓存区读取所述目标数据集。
2.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述目标数据集包括至少一个数据集来源,所述数据集来源表征为所述目标数据集中的数据所存储的远端存储设备类型;
所述响应于任务指令,将远端存储的目标数据集映射至所述数据集抽象组件,包括:
响应于任务指令,根据所述数据集来源,将所述目标数据集中的数据映射至所述数据集抽象组件;
其中,所述数据集抽象组件与所述数据集来源一一对应,所述数据集抽象组件创建于所述目标数据集中对应所述数据集来源的数据的数据集命名空间。
3.根据权利要求2所述的数据集缓存加速方法,其特征在于,所述基于所述数据集抽象组件对所述加速引擎组件进行绑定,包括:
将同一所述数据集命名空间下的所述数据集抽象组件与所述加速引擎组件进行绑定,所述数据集抽象组件与所述加速引擎组件一一对应;
根据所述数据集来源,将所述目标数据集以文件形式挂载至对应的所述加速引擎组件的一个或多个目录下。
4.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述将所述训练任务挂载至所述逻辑存储之后,所述数据集缓存加速方法还包括:
在进行读取所述目标数据集的过程中,依次对所述工作节点、非工作节点和所述远端存储进行训练数据的读取判定,直至所述训练数据读取成功,所述训练数据为所述训练任务所需的数据,所述非工作节点为所有所述处理节点中除所述工作节点以外的所述处理节点。
5.根据权利要求4所述的数据集缓存加速方法,其特征在于,所述依次对所述工作节点、非工作节点和所述远端存储进行训练数据的读取判定,直至所述训练数据读取成功,包括:
当所述工作节点的所述缓存区域存在所述训练数据,从所述工作节点的所述缓存区域中读取所述训练数据;当所述工作节点的所述缓存区域不存在训练数据,对所有非工作节点的所述缓存区域进行所述训练数据的查找;
当所述非工作节点的所述缓存区域中存储有所述训练数据,从所述非工作节点的所述缓存区域中读取所述训练数据并保存至所述工作节点的所述缓存区域;当所有所述非工作节点的所述缓存区域中不存在所述训练数据,从所述远端存储的所述目标数据集中读取所述训练数据并保存至所述工作节点的所述缓存区域。
6.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述根据所述目标数据集从所有所述处理节点中确定出用于执行训练任务的工作节点,包括:
当所述目标数据集为首次训练应用,从所有所述处理节点中确定出无训练任务进行中的节点作为用于执行训练任务的工作节点;
当所述目标数据集为非首次训练应用,从所有所述处理节点中确定出与所述目标数据集相匹配的节点作为执行训练任务的工作节点。
7.根据权利要求6所述的数据集缓存加速方法,其特征在于,所述从所有所述处理节点中确定出与所述目标数据集相匹配的节点作为执行训练任务的工作节点,包括:
根据所述目标数据集,对各个所述处理节点的缓存数据进行数据匹配,确定出各个所述处理节点的评估分数,所述评估分数表征为所述处理节点的所述缓存数据与所述目标数据集的相似度;
根据所述评估分数,从所述处理节点中确定出用于执行训练任务的工作节点。
8.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述将所述训练任务挂载至所述逻辑存储之后,所述数据集缓存加速方法还包括:
针对各个所述处理节点,对各个训练数据集的读取频率进行计算,确定出常用数据集,所述训练数据集表征为各个所述处理节点中的应用程序已读取的数据集;
将所述常用数据集保存至所述处理节点的所述缓存区域。
9.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述数据集缓存加速方法还包括:
获取所述远端存储中数据集的存储修改时间,以及所述缓存区域的缓存修改时间;
当所述存储修改时间与所述缓存修改时间不满足时间一致性条件,重新将所述远端存储中新的目标数据集更新至所述工作节点的所述缓存区域。
10.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述缓存配置参数包括数据缓存路径、存储介质类型和存储容量。
11.根据权利要求1所述的数据集缓存加速方法,其特征在于,所述深度学习平台还包括用于管理所述数据集抽象组件的生命周期的数据集抽象控制器,以及用于管理所述加速引擎组件的生命周期的加速引擎控制器。
12.一种数据集缓存加速系统,其特征在于,包括:
数据映射模块,用于响应于任务指令,将远端存储的目标数据集映射至所述数据集抽象组件,所述数据集抽象组件根据所述目标数据集的数据集命名空间进行创建得出,所述任务指令包括训练任务所需的所述目标数据集以及用于配置数据缓存空间的缓存配置参数;
组件绑定模块,用于基于所述数据集抽象组件对所述加速引擎组件进行绑定,以形成逻辑存储,所述加速引擎组件根据所述数据集命名空间进行创建得出;
节点确定模块,用于根据所述目标数据集从所有所述处理节点中确定出用于执行训练任务的工作节点;
缓存配置模块,用于根据所述缓存配置参数,对所述工作节点的缓存区域进行配置,并建立所述缓存区域与所述加速引擎组件的映射关系;
任务挂载模块,用于将所述训练任务挂载至所述逻辑存储,以使所述目标数据集通过所述逻辑存储映射至所述缓存区域,便于所述训练任务通过所述缓存区读取所述目标数据集。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至11中任意一项所述的数据集缓存加速方法。
14.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至11中任意一项所述的数据集缓存加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310519363.5A CN116737363A (zh) | 2023-05-09 | 2023-05-09 | 深度学习平台的数据集缓存加速方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310519363.5A CN116737363A (zh) | 2023-05-09 | 2023-05-09 | 深度学习平台的数据集缓存加速方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737363A true CN116737363A (zh) | 2023-09-12 |
Family
ID=87914110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310519363.5A Pending CN116737363A (zh) | 2023-05-09 | 2023-05-09 | 深度学习平台的数据集缓存加速方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737363A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215973A (zh) * | 2023-09-13 | 2023-12-12 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
CN117332881A (zh) * | 2023-11-27 | 2024-01-02 | 荣耀终端有限公司 | 分布式训练方法及电子设备 |
-
2023
- 2023-05-09 CN CN202310519363.5A patent/CN116737363A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215973A (zh) * | 2023-09-13 | 2023-12-12 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
CN117215973B (zh) * | 2023-09-13 | 2024-05-28 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
CN117332881A (zh) * | 2023-11-27 | 2024-01-02 | 荣耀终端有限公司 | 分布式训练方法及电子设备 |
CN117332881B (zh) * | 2023-11-27 | 2024-04-05 | 荣耀终端有限公司 | 分布式训练方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704290B2 (en) | Methods, devices and systems for maintaining consistency of metadata and data across data centers | |
CN103116618B (zh) | 基于客户端持久缓存的远程文件系统镜像方法及系统 | |
CN111324360B (zh) | 一种面向边缘计算的容器镜像构建方法和系统 | |
US10831720B2 (en) | Cloud storage distributed file system | |
US9456049B2 (en) | Optimizing distributed data analytics for shared storage | |
CN103150394B (zh) | 面向高性能计算的分布式文件系统元数据管理方法 | |
CN116737363A (zh) | 深度学习平台的数据集缓存加速方法、系统、设备及介质 | |
US20190370362A1 (en) | Multi-protocol cloud storage for big data and analytics | |
US6823336B1 (en) | Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor | |
US20180024853A1 (en) | Methods, systems, devices and appliances relating to virtualized application-layer space for data processing in data storage systems | |
US20150269239A1 (en) | Storage device selection for database partition replicas | |
US20050234867A1 (en) | Method and apparatus for managing file, computer product, and file system | |
CN101263494B (zh) | 用于监控与存储网络中的对象相关的事务的方法和装置 | |
US20080235300A1 (en) | Data migration processing device | |
US7143112B2 (en) | Method and apparatus for data integration | |
CN107562757B (zh) | 基于分布式文件系统的查询、访问方法、装置及系统 | |
US8380815B2 (en) | Root node for file level virtualization | |
US20090063556A1 (en) | Root node for carrying out file level virtualization and migration | |
KR20210075845A (ko) | 네이티브 키-밸류 분산 스토리지 시스템 | |
CN110287150B (zh) | 一种大规模存储系统元数据分布式管理方法与系统 | |
CN111881107B (zh) | 支持多文件系统挂载的分布式存储方法 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN116680040A (zh) | 一种容器处理方法、装置、设备、存储介质及程序产品 | |
CN113849137B (zh) | 一种面向申威容器平台的可视化块存储方法和系统 | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write |
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 |