CN117215973B - 一种缓存数据的处理方法、深度学习训练方法和系统 - Google Patents

一种缓存数据的处理方法、深度学习训练方法和系统 Download PDF

Info

Publication number
CN117215973B
CN117215973B CN202311179609.5A CN202311179609A CN117215973B CN 117215973 B CN117215973 B CN 117215973B CN 202311179609 A CN202311179609 A CN 202311179609A CN 117215973 B CN117215973 B CN 117215973B
Authority
CN
China
Prior art keywords
data
local
cache
node
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.)
Active
Application number
CN202311179609.5A
Other languages
English (en)
Other versions
CN117215973A (zh
Inventor
周方
赵伟驰
吴建斌
方启明
周超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202311179609.5A priority Critical patent/CN117215973B/zh
Publication of CN117215973A publication Critical patent/CN117215973A/zh
Application granted granted Critical
Publication of CN117215973B publication Critical patent/CN117215973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种缓存数据的处理方法、深度学习训练方法和系统。应用于本地节点,本地节点连接远程节点以及服务器,本地节点设置有本地命中缓存区和本地淘汰缓存区:从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据;其中,第一已缓存数据包括已分配至本地节点并缓存在本地命中缓存区的第一历史训练数据,以及本地节点从远程节点预读取并缓存至本地命中缓存区的第二历史训练数据;在服务器基于当前读取数据生成深度学习模型的情况下,本地节点将当前读取数据转移至淘汰缓存区中,得到第二已缓存数据。采用本方法能够提高深度学习训练的效率。

Description

一种缓存数据的处理方法、深度学习训练方法和系统
技术领域
本申请涉及人工智能下深度学习技术领域,特别是涉及一种缓存数据的处理方法、深度学习训练方法和系统。
背景技术
目前,越来越多超大规模的模型(如AlphaGold、GPT-3等)快速增长,对应的大模型的算力也正在从通用AI服务器向分布式集群(高性能服务器)跃迁,随着AI算法和AI模型的不断发展,目前常见的分布式集群算力已无法承载大模型大数据集的深度学习训练,且在分布式集群上进行深度学习训练耗时长一直是人工智能领域的主要问题。许多研究正在挖掘分布式集群“算力工厂”的潜能以适应AI应用特征,不仅需要满足模型计算的算力,同时还需要满足数据在分布式集群上计算时不断快速的迭代输入。因此,高效缓存深度学习训练的大数据集已逐渐成为高性能服务器结合AI技术的热点问题。
在分布式集群下,深度学习训练一般需要很高的计算性能,并且训练需要满足深度学习训练的数据读取模式,如重复多轮读取底层文件系统或低速存储设备中的数据,该数据读取过程一般比分布式集群训练模型计算的过程要慢,因此,传统的直接通过深度学习框架的机制反复从底层存储中重复加载数据至芯片以训练,将存在严重的IO性能瓶颈。
目前针对深度学习训练数据的加载效率底下的问题,尚未提出有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种缓存数据的处理方法、深度学习训练方法和系统。
第一方面,本申请提供了一种缓存数据的处理方法。应用于本地节点,该本地节点连接远程节点以及服务器,本地节点且设置有本地命中缓存区和本地淘汰缓存区;上述方法包括:
从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据;其中,第一已缓存数据包括已分配至本地节点并缓存在本地命中缓存区的第一历史训练数据,以及本地节点从远程节点预读取并缓存至本地命中缓存区的第二历史训练数据;
在服务器基于当前读取数据生成深度学习模型的情况下,本地节点将当前读取数据转移至淘汰缓存区中,得到第二已缓存数据。
在其中一个实施例中,从本地命中缓存区中读取第一已缓存数据之前,方法还包括:
获取服务器基于访问序列对应发送的训练数据,并将训练数据缓存在本地命中缓存区中;其中,访问序列是由服务器基于预设的划分规则生成的,且访问序列与本地节点相对应。
在其中一个实施例中,从所述本地命中缓存区中读取第一已缓存数据,并得到当前读取数据,包括:
获取当前训练轮次的轮次数;
当轮次数小于或等于预设次数,从本地命中缓存区中读取第一历史训练数据,得到当前读取数据;
当轮次数大于预设次数,从本地命中缓存区中读取第一历史训练数据和第二历史训练数据,得到当前读取数据。
在一个实施例中,从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据,包括:
在检测到训练节点的数据量等于训练节点的预设缓存阈值的情况下,从淘汰缓存区中读取数据,得到目标淘汰数据;并从剩余训练节点中读取数据,得到目标剩余数据;
根据目标淘汰数据、目标剩余数据以及第一已缓存数据,得到当前读取数据。
在一个实施例中,上述本地节点还连接共享存储设备;得到目标剩余数据之后,上述方法还包括:
在检测到训练节点的数据量等于缓存阈值的情况下,从共享存储设备中获取目标共享数据;
根据目标淘汰数据、目标剩余数据、第一已缓存数据以及目标共享数据,确定训练节点对应的训练数据。
在一个实施例中,将计算完毕的数据转移至预设的淘汰缓存区中之后,上述方法还包括:
基于命中缓存区中的数据以及淘汰缓存区中的数据之和得到当前数据量;
若检测到当前数据量大于或预设缓存阈值,基于预设的换出策略将淘汰缓存区中的目标删除数据进行删除,得到剩余数据;其中,换出策略根据对本地节点遍历得到的遍历结果确定;
基于命中缓存区中的数据和淘汰缓存区中的剩余数据之和得到新的数据量;若检测到新的数据量下降至低于预设缓存阈值,将当前的训练数据缓存至所述本地命中缓存区中。
在一个实施例中,基于预设的换出策略将淘汰缓存区中的目标删除数据进行删除,得到剩余数据,包括:
基于当前数据量与缓存阈值之差确定目标删除数据的删除数据量,以及基于换出策略确定目标删除数据中的锚点数据;
根据删除数据量和锚点数据将目标删除数据删除,得到剩余数据。
在一个实施例中,换出策略包括头部换出策略以及尾部换出策略;基于换出策略确定目标删除数据中的锚点数据,包括:
基于预设的分割方法对淘汰缓存区中的数据进行分割,得到头部淘汰缓存区和尾部淘汰缓存区,并计算得到针对于头部淘汰缓存区的头部权值结果和针对于尾部淘汰缓存区的尾部权值结果;
基于预设的排序算法对淘汰缓存区中的数据进行排序,得到排序结果;
若检测到头部权值结果大于或等于尾部权值结果,则确定换出策略为头部换出策略,并基于头部换出策略,确定排序结果中的头部数据为锚点数据;
若检测到尾部权值结果大于头部权值结果,则确定换出策略为尾部换出策略,并基于尾部换出策略,确定排序结果中的尾部数据为锚点数据。
第二方面,本申请还提供了一种深度学习训练方法,其特征在于,应用于服务器,服务器连接本地节点和远程节点,方法包括:
获取训练数据,并将训练数据分配至本地节点的本地命中缓存区和远程节点的远程命中缓存区进行缓存;
接收本地节点发送的子任务计算结果;其中,子任务计算结果是由本地节点根据所述缓存数据处理方法得到当前读取数据,对当前读取数据计算得到的;
根据子任务计算结果生成目标深度学习模型。
第三方面,本申请还提供了一种缓存数据的处理系统,其特征在于,系统包括服务器、本地节点和远程节点;
本地节点,连接至服务器和远程节点,用于执行上述各方法的实施例的流程;
服务器,用于基于当前读取数据生成深度学习模型。
上述一种缓存数据的处理方法、深度学习训练方法和系统,根据本地节点中的第一已缓存数据得到当前读取数据,具体地,该第一已缓存数据由已分配给本地节点的第一历史训练数据以及从远程节点中获取到的第二历史训练数据。根据该方法加快了本地节点计算的速度,比传统方法中直接从底层存储中将所需的数据重复加载至芯片以进行训练的效率要高很多。进一步地,在命中缓存区的数据读取完毕后,将该当前读取数据转移至淘汰缓存区中,根据剩余的数据得到第二已缓存数据,本申请中将已读取过的数据和未读取过的数据分开存储,从而便于后续步骤中对已读取的数据进行适应性删除处理,以解放本地节点的缓存,提高本地节点的计算效率。
附图说明
图1为一个实施例中缓存数据处理方法的流程示意图;
图2为一个实施例中缓存数据处理方法的架构示意图;
图3为一个实施例中缓存数据处理方法的流程示意图;
图4为一个实施例中缓存数据处理方法的换出策略选择方法示意图;
图5为一个优选实施例中缓存数据处理方法的架构示意图;
图6为一个实施例中缓存数据处理方法中节点之间数据拷贝方法示意图;
图7为另一个实施例中深度学习训练方法的流程示意图;
图8为一个实施例中深度学习训练效果示意图;
图9为一个实施例中缓存数据处理系统的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种缓存数据的处理方法,以该方法应用于本地节点为例进行举例说明,本地节点连接远程节点以及服务器,且该本地节点设置有本地命中缓存区和本地淘汰缓存区;图1是根据本申请实施例的缓存数据的处理方法流程图,包括以下步骤:
S102,从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据;其中,第一已缓存数据包括已分配至本地节点并缓存在本地命中缓存区的第一历史训练数据,以及本地节点从远程节点预读取并缓存至本地命中缓存区的第二历史训练数据。
其中,数据的预取进行一启动,每个节点就会在缓存内设计两个区域,即远程节点也包括有命中缓存区以及淘汰缓存区,在本地节点进行计算时,从本地节点的命中缓存区中读取第一已缓存数据,其中,该第一已缓存数据为在当前读取数据步骤前已缓存至命中缓存区中的数据。该第一已缓存数据包括有本地节点按照计算所需的数据从本地淘汰缓存区中获取到,并保存至上述本地命中缓存区中的第一历史训练数据,以及本地节点按照计算所需的数据从远程节点的命中缓存区和淘汰缓存区中获取到,并保存至上述本地命中缓存区中的第二历史训练数据。
S104,在服务器基于当前读取数据生成深度学习模型的情况下,本地节点将当前读取数据转移至淘汰缓存区中,得到第二已缓存数据。
其中,本地节点在对于命中缓存区中的当前读取数据读取完毕后,将该当前读取数据转移至淘汰缓存区中,以保证在淘汰缓存区中的数据均为至少读取过一次的数据,同时,本地节点以及远程节点的计算结果也会在节点之间进行一次同步,并且本地节点以及远程节点的计算结果统一上传至服务器进行汇总,生成训练后的深度学习模型。在实际应用中,最终输出的结果也可以包括深度学习模型、训练后得到的参数以及计算结果等输出文件。
通过步骤S102至步骤S104,通过本地命中缓存区中包括的第一历史训练数据以及第二历史训练数据,保证了在本地节点进行计算之前就将计算所需的数据保存至本地命中缓存区中,避免了在进行计算时才从远程节点或底层存储中获取所需的数据,从而大大提升了计算的效率,需要说明的是,若本地节点中没有缓存有第二历史训练数据,则遍历远程节点中的数据以获取该第二历史训练数据,该获取效率也远大于从底层共享存储中获取。进一步地,考虑到已读取过一次的数据再次读取的可能性会降低,因此本申请中将本地命中缓存区中已读取过的数据转移至本地淘汰缓存区中,若后续过程中本地节点的存储空间已满,则可优先考虑从本地淘汰缓存区中进行数据的删除。且,将已读取过的数据转移至本地淘汰缓存区中保存起来,便于在后续计算时从本地淘汰缓存区中进行查找,避免了重复缓存浪费本地节点的存储空间。
在一个实施例中,从本地命中缓存区中读取第一已缓存数据之前,该方法还包括:
获取服务器基于访问序列对应发送的训练数据,并将训练数据缓存在本地命中缓存区中;其中,访问序列是由服务器基于预设的划分规则生成的,且访问序列与本地节点相对应。
具体地,如图2所示为一个实施例中缓存数据处理方法的架构示意图。使用预设的访问序列生成器先生成每个节点每次计算所需访问的访问序列,其中,以将本申请应用于深度学习训练中,则访问序列会以批次(batch)数据方式进行传输,上述访问序列生成器可以为ID生成器,上述访问序列可以为数据ID访问序列。上述预设的划分规则可以为某个随机种子以乱序规则生成每一轮训练的数据ID访问序列,并均匀的分配给每个节点。每个节点获取到访问序列时,根据访问序列提前一轮获取到下一轮计算时所需的数据,并保存至本地命中缓存区中。
和现有技术不同,传统方法中是将整个数据集平分至每个节点中,显然传统方法会出现节点计算不够灵活、计算效率慢等问题。而本申请则通过上述方法,本地节点基于对应的访问序列确定计算所需的数据,从而可以实现提前获取到对应的训练数据,进一步地,在获取到第一批次的训练数据之后,本地节点即可开始进行计算,本轮计算的同时获取下一轮所需的数据,直至每个节点的存储空间饱和,从而大大提升了节点的计算速度。
在一个实施例中,从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据,包括:
获取当前训练轮次的轮次数;
当轮次数小于或等于预设次数,从本地命中缓存区中读取第一历史训练数据,得到当前读取数据;
当轮次数大于预设次数,从本地命中缓存区中读取第一历史训练数据和第二历史训练数据,得到当前读取数据。
具体地,多个节点的缓存容量相同,上述预设的轮次数是基于节点的缓存容量决定的。当节点缓存容量未满,即上述当前轮次数小于预设次数时,从预设的远程共享存储中获取数据集,将数据集按照上述访问序列分配以批次为单位给对应的节点,本地节点获取到对应批次的数据后,将该数据保存至本地命中缓存区中,作为第一历史训练数据。若此时各节点缓存仍有空余,则继续获取每一节点所需的下一轮次训练的数据,直至各节点缓存已满,具体地,若假设在N轮后各节点缓存容量已满,则此时各节点缓存空间中的数据之和应为原数据集的N倍。在各节点缓存容量已满,即上述当前轮次数大于预设次数时,而后本地节点进行数据预取时则从本地节点的本地命中缓存区、本地淘汰缓存区以及远程节点的缓存中获取。上述数据的预取进程和分布式深度学习训练进程异步进行,确保了数据提前在上一轮训练中预取到本地缓存中,使得每一轮的分布式深度学习训练进程所需的数据均能从本地的缓存中访问。
在一个实施例中,从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据,包括:
在检测到本地节点的数据量等于训练节点的预设缓存阈值的情况下,从淘汰缓存区中读取数据,得到目标淘汰数据;并从剩余本地节点中读取数据,得到目标剩余数据;
根据目标淘汰数据、目标剩余数据以及第一已缓存数据,得到当前读取数据。
具体地,如图3所示,命中缓存区以及淘汰缓存区在数据预取和读取的过程中会对应转移数据的存储位置。图中SSD缓存LRU区为上述命中缓存区,SSD缓存LFU区为上述淘汰缓存区,若在命中缓存区中未能读取到所需的数据时,则从淘汰缓存区以及远程节点移入远程数据,当对命中缓存区中的数据进行读取之后,则转移至淘汰缓存区中。而每个节点设计了一个上述数据历史区,用于保存遍历结果,用于后续数据一出进程进行动态选择移除策略的依据。在实际应用中,可以在上述对本地节点的遍历过程中记录命中以及未命中的情况,具体为在本地命中缓存区以及本地淘汰缓存区中已命中的数据都会记录在预设的字典目录里,可以为LocalHitMap数据结构,并记录待训练的访问序列中在本地缓存中未命中的数据,这些数据的数据ID都会记录在节点的SSD缓存历史区中。通过上述方法可以灵活的实现在本次计算之前以多种方法获取到所需的数据,考虑到从本地淘汰区获取数据的速度大于从远程节点获取,所以一般在实际应用中优先选择从本地淘汰缓存区中获取,从而可以实现快速获取下一轮所需的数据。进一步地,通过记录上述本地节点命中和未命中情况,也有利于为后续步骤中数据的删除做依据。
在一个实施例中,本地节点还连接共享存储设备;得到目标剩余数据之后,上述方法还包括:
在检测到训练节点的数据量等于缓存阈值的情况下,从共享存储设备中获取目标共享数据;
根据目标淘汰数据、目标剩余数据、第一已缓存数据以及目标共享数据,确定训练节点对应的训练数据。
具体地,本地节点还可以从底层共享存储中获取下一轮所需的数据。一般情况下,本地节点从本地淘汰缓存区中获取数据的速度大于从远程节点中获取,从远程节点中获取数据的速度大于从远程共享存储中获取,所以在获取下一轮计算所需的数据时可以优先考虑从本地淘汰缓存区中获取,再考虑从远程节点中获取,最后若所需数据均不位于各节点的缓存中,则再考虑从共享存储设备中获取。通过上述方法,可以在保证了数据获取的速度的情况下,避免了数据的损坏、缺失等情况的出现,可以在实际应用中更好的适应各种情况。
在一个实施例中,将计算完毕的数据转移至预设的淘汰缓存区中之后,上述方法还包括:
基于命中缓存区中的数据以及淘汰缓存区中的数据之和得到当前数据量;
若检测到当前数据量大于预设缓存阈值,基于预设的换出策略将淘汰缓存区中的目标删除数据进行删除,得到剩余数据;其中,换出策略根据对本地节点遍历得到的遍历结果确定;
基于命中缓存区中的数据和淘汰缓存区中的剩余数据之和得到新的数据量;若检测到新的数据量下降至低于预设缓存阈值,将当前的训练数据缓存至本地命中缓存区中。
具体地,若检测到本地节点的缓存容量已满时,则启动换出策略,该策略的启动可以根据各节点自动启动或人工发送换出指示信号实现。进一步地,对于节点来说,预设的缓存阈值是针对于节点的命中缓存区以及淘汰缓存区之和决定的,而对于命中缓存区或淘汰缓存区各自的换存量并不进行限制,从而可以实现在从远程节点中获取目标剩余数据时,若检测到本地节点的缓存总量大于上述预设缓存阈值时,从淘汰缓存区中删除对应数量的数据,从而可以将目标剩余数据缓存至命中缓存区中,便于下一轮计算时直接从命中缓存区中获取。通过上述方法加快了各节点获取数据的效率,更好的衔接了数据的预取以及读取两个步骤,使得各节点可以在有限的缓存成本中实现高效的数据读取并训练。
在一个实施例中,基于预设的换出策略将淘汰缓存区中的目标删除数据进行删除,得到剩余数据,包括:
基于当前数据量与缓存阈值之差确定目标删除数据的删除数据量,以及基于换出策略确定目标删除数据中的锚点数据;
根据删除数据量和锚点数据将目标删除数据删除,得到剩余数据。
具体地,该锚点数据为在淘汰缓存区中的数据序列中选择一个数据作为锚点数据,并从锚点数据左右两端或其中一端按照上述删除数据量对数据进行删除。该锚点数据可以为人工设定或随机设定的任一个数据,而后从该锚点左右两端根据上述删除数据量对目标删除数据进行删除;也可以预先设置为淘汰缓存区数据序列的头部第一个数据或尾部第一个数据,而后相应的只能删除头部或尾部单侧的目标删除数据。通过上述方法可以实现在各节点缓存已满时,通过删除淘汰缓存区中的数据,便于下一轮所需的数据缓存至命中缓存区中;同时由于深度学习任务本身具有很强的随机性、非规律性,也避免了过多去掉尾部和头部的数据。
在一个实施例中,换出策略包括头部换出策略以及尾部换出策略;基于换出策略确定目标删除数据中的锚点数据,包括:
基于预设的分割方法对淘汰缓存区中的数据进行分割,得到头部淘汰缓存区和尾部淘汰缓存区,并计算得到针对于头部淘汰缓存区的头部权值结果和针对于尾部淘汰缓存区的尾部权值结果;
基于预设的排序算法对淘汰缓存区中的数据进行排序,得到排序结果;
若检测到头部权值结果大于或等于尾部权值结果,则确定换出策略为头部换出策略,并基于头部换出策略,确定排序结果中的头部数据为锚点数据;
若检测到尾部权值结果大于头部权值结果,则确定换出策略为尾部换出策略,并基于尾部换出策略,确定排序结果中的尾部数据为锚点数据。
具体地,上述换出策略包括头部换出策略以及尾部换出策略,相应的,若为头部换出策略,则其锚点数据对应设置为缓存序列的头部第一个数据,若为尾部换出策略,则其锚点数据对应设置为缓存序列的尾部第一个数据。上述对于头部换出策略和尾部换出策略的选择主要取决于上述遍历结果,具体地,本申请中的最优策略管理截止可以根据遍历结果中的历史命中信息和历史未命中信息决定将来的策略选择,当决策的当前换出策略导致当前节点的缓存命中率降低时,会产生反馈用以更新淘汰缓存区头部换出策略和淘汰缓存区的尾部换出策略的权值,从而实现对各节点缓存的数据进行自适应换出操作。具体地,如图4所示,为针对换出策略的选择方法,以头部换出策略和尾部换出策略为例,本申请中对于换出策略的选择依据主要由两部分组成,分别是子策略选择以及权重更新部分,子策略选择由以下公式进行计算:
其中,action表示子策略的选择结果,即选择执行的换出策略。WHLFU和WTLFU分别表示头部换出策略对应的权重值和尾部换出策略对应的权重值,prob(WHLFU,WTLFU)是用来归一化向量w,其中(HLFU,TLFU)表示概率密度函数。当头部换出策略权值更大时,选择HLFU策略,则淘汰缓存区中删除的数据块由TLFU策略所选择,并且该数据被从淘汰缓存区中删除,最后将被删除的数据ID加入到预设的MissIDLink链表数据结构中。
缓存策略的权重值决定了执行任务时缓存算法选择换出策略的重要性。基于缓存缺失的遗憾最小化策略更新,并通过两个缓存替换子策略管理权重,能够根据数据请求状态不断地调节各缓存策略的权值,从而找到子策略最优的选择模型:
WHLFU=WHLFU*eλ*r
WTLFU=WTLFU*eλ*r
其中,两个缓存策略权重的计算公式如以上两个公式所示,λ表示学习率(初始值为1/e),r表示奖励值(初始值为缓存大小N的倒数)。而后根据以下两个公式将两个缓存策略的权值进行归一化,令两个缓存策略的权值总和为1:
WTLFU=1-WHLFU
除此之外,针对除了头部换出策略和尾部换出策略的其余策略,可由相关技术人员在进行操作时直接进行指示。通过上述方法,以最常用的头部换出策略和尾部换出策略为例,描述了一种自适应任务访问特征的缓存管理机制,通过使用两个缓存区来动态管理本地节点的缓存数据,以保证分布式深度学习训练的高命中率,并使用强化学习机制选择最优的缓存替换子策略,使得缓存区的使用更加高效,适应性更强,数据换入换出的策略更智能,从而避免了数据命中率的下降,提高了整个分布式深度学习系统的性能。
本实施例还提供了一种缓存数据的处理方法的具体实施例,如图5所示,图5是一个优选实施例中缓存数据的处理方法的架构示意图。
图4中SSD指代各训练节点的缓存空间,SSD与训练节点为一一对应关系。首先,先由ID生成器生成每一轮需要访问的访问序列,并均匀的分配给每个节点,其中访问序列会形成批次(batch)数据方式进行传输,本申请中的每个节点缓存空间相同,用于存储数据。第一轮训练时读取各节点读取第一个epoch所需的访问序列,并加载对应的数据至各节点命中缓存区中,其中,在实际应用中,该进程预先从分布式集群常见的NFS网络文件系统的disk慢速设备中获取数据;当各节点均加载完第一轮数据后,开启分布式深度学习的训练进程,对数据进行处理,并同时预取下一轮训练所需的数据,直至各节点的缓存空间装载满。
其次,数据预取进程一起动会在每个节点的缓存内设计两个区域,分别为上述命中缓存区和上述淘汰缓存区,现有技术中命中缓存区可以选择使用LRU缓存区或其他可以进行数据缓存及遍历的,淘汰缓存区可以选择使用LFU缓存区。在缓存空间装载满之后,每个节点在预取进程中会提前读取未来一轮所需的数据,并缓存至命中缓存区中,这使得分布式深度学习训练进程在方位节点缓存时直接命中该命中缓存区中的数据。各节点数据预取进程获取到待训练的访问序列,并对应遍历本地节点命中缓存区和淘汰缓存区中的数据,遍历结果记录在字典LocalHitMap中,以及记录待训练访问序列中在本地节点缓存中未命中的数据,该数据一般会在远程某节点,从远程节点替换淘汰缓存区中的数据,这些数据ID会记录在预设的缓存历史区中,提供给数据从远程节点换入的依据,即根据本地节点的LocalHitMap信息选择后续对应的换出策略,将本地节点缓存中的数据与在远程节点命中的当前数据序列ID的数据进行交换,或将远程节点对应的数据拷贝至当前节点中,以便下一轮模型计算访问的数据能够在本地缓存中命中,从而加快数据处理速度。其中具体的,数据预取进程中遍历待训练的访问序列,从而得到本地节点缓存区中未命中的数据的ID,数据预取进程先遍历远程节点的LocalHitMap判断是否存在该ID,若存在则会将该ID的数据从远程节点拷贝或调换至本地缓存中,否则从贡献存储中获取该ID对应的数据,其中新数据的加入也会被记录在LocalHitMap,以便后续可以根据该信息对本地节点的数据进行移除操作。
其中具体的,如图6所示,为远程节点数据拷贝至本地节点的示意图。当节点Node1的缓存空间装载满数据时,数据预取进程根据新一轮需要访问的访问序列,如batchN+1序列{2,5,14,16},当前正处理batch1的数据,batchN+1序列未载入Node1缓存,数据预取进程会进行从Node1的淘汰缓存区移除部分数据,如Node1节点缓存b1中{6,19}对应的位置,该位置是根据动态换出策略决定的,数据移除的同时数据预取进程会从一个远程节点(如Node2)的缓存中获取到当前Node1下一轮batchN+1所需的数据,最后进行数据传输到Node1的缓存空间中对应移除的位置上。
最后,根据上述子策略选择与权值更新两部分,完成对于移除策略的自适应调整,实现及时移除淘汰缓存区中溢出的数据。
需要说明的是,本申请中还包括有元数据管理器,元数据管理器实时记录了上述两个缓存区以及历史缓存区的元数据,使得该分布式缓存系统设置的命中缓存区能够在深度学习训练时提供每个迭代所需的数据,提高缓存区的命中率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于应用上述所涉及的缓存数据的处理方法的深度学习的训练方法。该方法所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个深度学习的训练方法实施例中的具体限定可以参见上文中对于缓存数据的处理方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种深度学习训练方法,其特征在于,应用于服务器,该服务器连接本地节点和远程节点;上述方法包括:
获取训练数据,并将训练数据分配至本地节点的本地命中缓存区和远程节点的远程命中缓存区进行缓存;
接收本地节点发送的子任务计算结果;其中,子任务计算结果是由本地节点根据如上述各方法的实施例的流程得到当前读取数据,对当前读取数据计算得到的;
根据子任务计算结果生成目标深度学习模型。
具体地,与现有技术不同,现有技术中为简单的将整个数据集平分至每个节点的缓存空间中,而本申请是通过缓存预取来提高每个节点的缓存命中率,即通过预设的,和每个节点一一对应的访问序列,基于该访问序列向每个节点分配对应的训练数据,使得每个节点在当前轮计算前,即可获得当前轮所需的训练数据,其中,考虑到现有技术中一般是直接基于远程共享存储获取训练所需的数据,而从远程共享存储处直接获取会存在获取数据效率低下等问题,因此本申请中对训练数据的获取一般是从远程节点处、以及本节点的淘汰缓存区处获取。进一步地,为了节约缓存资源,本申请还引入了针对于每个节点淘汰缓存区的目标删除数据的删除方法,不同节点可以根据各自的命中情况适应性调整删除方法,以提高节点的命中率。综上,本申请的缓存数据处理方法,可以实现分布式深度学习模型整个训练过程的加速,数据预取进程预先加载每一轮训练所需的数据到每个节点的缓存中,使得在分布式深度学习的训练进程中,需要访问的数据都能预先加载至对应的缓存区中,从而提高了数据读取效率,以至模型训练任务性能得到提高,比传统技术中每一遍训练都需要从远程共享低速存储设备中读取整个数据集的训练方式要高效。进一步地,本申请在特定集群和硬件配置的环境做了大量实验,整个训练效果如图8所示,其中,△t=(传统方法单轮耗时-本申请单轮耗时)*轮次k-第一个epoch载入耗时,实验数据展示了达到一定训练轮次数的训练任务,该分布式缓存系统优化方法比传统方法获取训练数据的时间要少,并且训练时间节省与轮次数为正相关,实验数据体现了该缓存系统能够更好地支撑迭代伦次多的分布式大规模训练任务。
在一个实施例中,提供了一种缓存数据的处理系统,该缓存数据的处理系统结构框图,如图9所示,该系统由服务器、本地节点和远程节点;
所述本地节点,连接至所述服务器和所述远程节点,用于执行上述各方法实施例中的步骤;
所述服务器,用于基于所述当前读取数据生成深度学习模型。
具体地,上述本地节点从本地命中缓存区中读取第一已缓存数据,并得到当前读取数据;其中,该第一已缓存数据包括服务器分配给各训练节点,各训练节点缓存在本地命中缓存区的第一历史训练数据,以及本地节点从远程节点预读取并缓存至本地命中缓存区中的第二历史训练数据;而后在服务器基于当前读取数据生成深度学习模型的情况下,本地节点将当前读取数据从命中缓存区中转移至淘汰缓存区中,命中缓存区中剩余的数据即为上述第二已缓存数据。其中,上述服务器可以为计算机、主控芯片或其他用于控制上述缓存数据的处理流程的硬件设备。进一步地,该服务器可以包括通过系统总线连接的处理器、存储器和网络接口。其中,该服务器的处理器用于提供计算和控制能力。该服务器的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该服务器的数据库用于存储缓存数据的处理方法的数据。该服务器的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种缓存数据的处理方法。在一些实施例中,该服务器可以通过传输设备与各训练节点进行通信连接。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (7)

1.一种缓存数据的处理方法,其特征在于,应用于本地节点,所述本地节点连接远程节点以及服务器,所述本地节点设置有本地命中缓存区和本地淘汰缓存区;所述方法包括:
从所述本地命中缓存区中读取第一已缓存数据,并得到当前读取数据;其中,所述第一已缓存数据包括已分配至所述本地节点并缓存在所述本地命中缓存区的第一历史训练数据,以及所述本地节点从所述远程节点预读取并缓存至所述本地命中缓存区的第二历史训练数据;
在所述服务器基于所述当前读取数据生成深度学习模型的情况下,所述本地节点将所述当前读取数据转移至所述淘汰缓存区中,得到第二已缓存数据;
基于所述命中缓存区中的数据以及所述淘汰缓存区中的数据之和得到当前数据量;
若检测到所述当前数据量大于预设缓存阈值,基于预设的换出策略将所述淘汰缓存区中的目标删除数据进行删除,得到剩余数据,包括,基于所述当前数据量与所述缓存阈值之差确定所述目标删除数据的删除数据量,以及基于所述换出策略确定所述目标删除数据中的锚点数据;根据所述删除数据量和所述锚点数据将所述目标删除数据删除,得到所述剩余数据;其中,所述换出策略根据对所述本地节点遍历得到的遍历结果确定,所述换出策略包括头部换出策略以及尾部换出策略;
所述基于所述换出策略确定所述目标删除数据中的锚点数据,包括:
基于预设的分割方法对所述淘汰缓存区中的数据进行分割,得到头部淘汰缓存区和尾部淘汰缓存区,并计算得到针对于所述头部淘汰缓存区的头部权值结果和针对于所述尾部淘汰缓存区的尾部权值结果;
基于预设的排序算法对所述淘汰缓存区中的数据进行排序,得到排序结果;
若检测到所述头部权值结果大于或等于所述尾部权值结果,则确定所述换出策略为所述头部换出策略,并基于所述头部换出策略,确定所述排序结果中的头部数据为所述锚点数据;
若检测到所述尾部权值结果大于所述头部权值结果,则确定所述换出策略为所述尾部换出策略,并基于所述尾部换出策略,确定所述排序结果中的尾部数据为所述锚点数据;
基于所述命中缓存区中的数据和所述淘汰缓存区中的剩余数据之和得到新的数据量;若检测到所述新的数据量下降至低于所述预设缓存阈值,将当前的训练数据缓存至所述本地命中缓存区中。
2.根据权利要求1所述的方法,其特征在于,所述从所述本地命中缓存区中读取第一已缓存数据之前,所述方法还包括:
获取所述服务器基于访问序列对应发送的训练数据,并将所述训练数据缓存在所述本地命中缓存区中;其中,所述访问序列是由所述服务器基于预设的划分规则生成的,且所述访问序列与所述本地节点相对应。
3.根据权利要求1所述的方法,其特征在于,所述从所述本地命中缓存区中读取第一已缓存数据,并得到当前读取数据,包括:
获取当前训练轮次的轮次数;
当所述轮次数小于或等于预设次数,从所述本地命中缓存区中读取所述第一历史训练数据,得到所述当前读取数据;
当所述轮次数大于预设次数,从所述本地命中缓存区中读取所述第一历史训练数据和所述第二历史训练数据,得到所述当前读取数据。
4.根据权利要求1所述的方法,其特征在于,所述从所述本地命中缓存区中读取第一已缓存数据,并得到当前读取数据,包括:
在检测到所述本地节点的数据量等于所述本地节点的预设缓存阈值的情况下,从所述淘汰缓存区中读取数据,得到目标淘汰数据;并从所述远程节点中读取数据,得到目标剩余数据;
根据所述目标淘汰数据、所述目标剩余数据以及所述第一已缓存数据,得到所述当前读取数据。
5.根据权利要求4所述的方法,其特征在于,所述本地节点还连接共享存储设备;所述得到目标剩余数据之后,所述方法还包括:
在检测到所述本地节点的数据量等于所述缓存阈值的情况下,从所述共享存储设备中获取目标共享数据;
根据所述目标淘汰数据、所述目标剩余数据、所述第一已缓存数据以及所述目标共享数据,确定所述本地节点对应的所述训练数据。
6.一种深度学习训练方法,其特征在于,应用于服务器,所述服务器连接本地节点和远程节点;所述方法包括:
获取训练数据,并将所述训练数据分配至所述本地节点的本地命中缓存区和所述远程节点的远程命中缓存区进行缓存;
接收所述本地节点发送的子任务计算结果;其中,所述子任务计算结果是由所述本地节点根据如权利要求1至5任一项所述的缓存数据处理方法得到当前读取数据,对所述当前读取数据计算得到的;
根据所述子任务计算结果生成目标深度学习模型。
7.一种缓存数据的处理系统,其特征在于,所述系统包括服务器、本地节点和远程节点;
所述本地节点,连接至所述服务器和所述远程节点,用于执行如权利要求1至5任一项所述的缓存数据读取方法;
所述服务器,用于基于所述当前读取数据生成深度学习模型。
CN202311179609.5A 2023-09-13 2023-09-13 一种缓存数据的处理方法、深度学习训练方法和系统 Active CN117215973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311179609.5A CN117215973B (zh) 2023-09-13 2023-09-13 一种缓存数据的处理方法、深度学习训练方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311179609.5A CN117215973B (zh) 2023-09-13 2023-09-13 一种缓存数据的处理方法、深度学习训练方法和系统

Publications (2)

Publication Number Publication Date
CN117215973A CN117215973A (zh) 2023-12-12
CN117215973B true CN117215973B (zh) 2024-05-28

Family

ID=89050555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311179609.5A Active CN117215973B (zh) 2023-09-13 2023-09-13 一种缓存数据的处理方法、深度学习训练方法和系统

Country Status (1)

Country Link
CN (1) CN117215973B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555697B (zh) * 2024-01-11 2024-04-05 之江实验室 一种面向分布式训练的缓存加载系统、方法、装置及设备
CN117909258B (zh) * 2024-03-18 2024-05-14 北京开源芯片研究院 一种处理器缓存的优化方法、装置、电子设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143243A (zh) * 2019-12-19 2020-05-12 上海交通大学 一种基于nvm混合内存的缓存预取方法及系统
CN111241010A (zh) * 2020-01-17 2020-06-05 中国科学院计算技术研究所 一种基于缓存划分及回滚的处理器瞬态攻击防御方法
CN113392863A (zh) * 2020-03-13 2021-09-14 深圳云天励飞技术有限公司 一种机器学习训练数据集的获取方法、获取装置及终端
CN113835614A (zh) * 2020-09-17 2021-12-24 北京焱融科技有限公司 一种基于分布式文件存储客户端的ssd智能缓存方法和系统
CN114968588A (zh) * 2022-06-07 2022-08-30 之江实验室 一种面向多并发深度学习训练任务的数据缓存方法和装置
CN115237825A (zh) * 2022-05-31 2022-10-25 杭州祺鲸科技有限公司 一种基于机器学习的智能缓存替换方法
CN115587266A (zh) * 2022-09-30 2023-01-10 中国人民解放军陆军工程大学 一种空天地一体化互联网智能边缘缓存方法
WO2023012230A2 (en) * 2021-08-06 2023-02-09 Telefonaktiebolaget Lm Ericsson (Publ) Generative adversarial-based attack in federated learning
CN115712583A (zh) * 2023-01-09 2023-02-24 之江实验室 一种提升分布式缓存跨节点访问性能的方法及装置、介质
CN115861022A (zh) * 2021-09-24 2023-03-28 英特尔公司 具有地址排序的图形处理器存储器访问体系结构
CN116501696A (zh) * 2023-06-30 2023-07-28 之江实验室 适用于分布式深度学习训练预取缓存管理的方法和装置
CN116737363A (zh) * 2023-05-09 2023-09-12 鹏城实验室 深度学习平台的数据集缓存加速方法、系统、设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782221B2 (en) * 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US10893120B2 (en) * 2018-09-19 2021-01-12 International Business Machines Corporation Data caching and data-aware placement to accelerate machine learning applications
US20220377614A1 (en) * 2022-04-01 2022-11-24 Intel Corporation Apparatus, system, method and computer-implemented storage media to implement radio resource management policies using machine learning

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143243A (zh) * 2019-12-19 2020-05-12 上海交通大学 一种基于nvm混合内存的缓存预取方法及系统
CN111241010A (zh) * 2020-01-17 2020-06-05 中国科学院计算技术研究所 一种基于缓存划分及回滚的处理器瞬态攻击防御方法
CN113392863A (zh) * 2020-03-13 2021-09-14 深圳云天励飞技术有限公司 一种机器学习训练数据集的获取方法、获取装置及终端
CN113835614A (zh) * 2020-09-17 2021-12-24 北京焱融科技有限公司 一种基于分布式文件存储客户端的ssd智能缓存方法和系统
WO2023012230A2 (en) * 2021-08-06 2023-02-09 Telefonaktiebolaget Lm Ericsson (Publ) Generative adversarial-based attack in federated learning
CN115861022A (zh) * 2021-09-24 2023-03-28 英特尔公司 具有地址排序的图形处理器存储器访问体系结构
CN115237825A (zh) * 2022-05-31 2022-10-25 杭州祺鲸科技有限公司 一种基于机器学习的智能缓存替换方法
CN114968588A (zh) * 2022-06-07 2022-08-30 之江实验室 一种面向多并发深度学习训练任务的数据缓存方法和装置
CN115587266A (zh) * 2022-09-30 2023-01-10 中国人民解放军陆军工程大学 一种空天地一体化互联网智能边缘缓存方法
CN115712583A (zh) * 2023-01-09 2023-02-24 之江实验室 一种提升分布式缓存跨节点访问性能的方法及装置、介质
CN116737363A (zh) * 2023-05-09 2023-09-12 鹏城实验室 深度学习平台的数据集缓存加速方法、系统、设备及介质
CN116501696A (zh) * 2023-06-30 2023-07-28 之江实验室 适用于分布式深度学习训练预取缓存管理的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种面向SSD-HDD混合存储的热区跟踪替换算法;刘圣卓;姜进磊;杨广文;;小型微型计算机系统;20121015(第10期);第2255-2258页 *

Also Published As

Publication number Publication date
CN117215973A (zh) 2023-12-12

Similar Documents

Publication Publication Date Title
CN117215973B (zh) 一种缓存数据的处理方法、深度学习训练方法和系统
US10235044B2 (en) System and methods for storage data deduplication
CN104899156B (zh) 一种面向大规模社交网络的图数据存储及查询方法
CN110188080B (zh) 基于客户端高效缓存的远程文件数据访问性能优化方法
JP2022166198A5 (zh)
KR100338224B1 (ko) 참조의 국한성에 대한 고효율의 동적 추적 방법 및 장치
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
CN111143243B (zh) 一种基于nvm混合内存的缓存预取方法及系统
US20070067575A1 (en) Method of managing cache memory based on data temperature
CN103365954A (zh) 提高线上重复删除效率的方法和系统
CN103902260B (zh) 一种对象文件系统的预取方法
US20160246710A1 (en) Apparatus and method for data arrangement
CN111258967A (zh) 文件系统中数据读取方法、装置及计算机可读存储介质
CN115712583B (zh) 一种提升分布式缓存跨节点访问性能的方法及装置、介质
CN117194502B (zh) 一种基于长短期记忆网络的数据库内容缓存替换方法
CN116931838A (zh) 一种固态盘缓存管理方法、系统、电子设备及存储介质
EP4261712A1 (en) Data elimination method and apparatus, cache node, and cache system
CN115687304A (zh) 一种Flink状态存储优化方法及装置
CN116560562A (zh) 一种读、写数据方法及装置
CN107370807A (zh) 基于透明服务平台数据访问的服务端及其缓存优化方法
CN109582233A (zh) 一种数据的缓存方法和装置
CN112799590B (zh) 一种针对在线主存储重删的差异化缓存方法
US20160092133A1 (en) Data allocation control apparatus and data allocation control method
CN111787062B (zh) 面向广域网络文件系统的自适应快速增量预读方法
CN115203076B (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
GR01 Patent grant
GR01 Patent grant