CN111767034A - 基于nfdt的分布式训练框架构建方法、分布式训练方法及系统 - Google Patents
基于nfdt的分布式训练框架构建方法、分布式训练方法及系统 Download PDFInfo
- Publication number
- CN111767034A CN111767034A CN202010523162.9A CN202010523162A CN111767034A CN 111767034 A CN111767034 A CN 111767034A CN 202010523162 A CN202010523162 A CN 202010523162A CN 111767034 A CN111767034 A CN 111767034A
- Authority
- CN
- China
- Prior art keywords
- training
- code
- distributed training
- module
- distributed
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于NFDT的分布式训练框架构建方法、分布式训练方法及系统,该分布式训练方法包括如下步骤:单机用户将数据集和代码存储于集群网络中并生成唯一hash值;分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码;分布式训练模块利用单机版代码生成分布式训练框架;分布式训练框架调用计算资源进行分布式训练。本发明的用户只需要上传自己的数据集和单机训练代码,利用去中心化存储方式将训练任务压缩到集群中,集群中对应的训练设备根据收到的hash值将其解压,保证了训练的安全性和数据可靠性。本发明的NFDT框架对单机版训练过程中产生的模型文件进行模型解读和分析,实现单机版代码结构到分布式的训练功能。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种基于NFDT(New Framwork forDistributed Tensorflow,分布式Tensorflow新框架)的分布式训练框架构建方法、分布式训练方法及系统。
背景技术
在利用分布式Tensorflow(张量流)框架构建分布式训练平台系统时发现存在以下两个主要问题:
一是在进行分布式Tensorflow训练时,用户需要将单机版代码修改成分布式代码,增加了用户的使用难度,虽然无论是Uber公司推出的Horvovd框架,还是谷歌公司推出的estimator API或者Tensorflow2.0,都是对Tensorflow进行底层封装,极大地缩减了分布式框架与单机版的区别。但是对于很多初学者来说仍然需要熟悉掌握新的API或者框架才能部署成可以进行分布式训练的代码结构,效果仍然不理想。从整体的实现过程而言,在单机版框架上实现分布式训练需要大量的框架重写和集群定义,这样的分布式框架与单机版相比复杂且难以定义。
二是在通过基于中心化的分布式存储数据集时,如果某个服务器因为宕机会导致数据的丢失,影响整体训练效率和数据安全性。中心化存储因为有明确的中心,会导致容易受攻击,而且只要中心节点出现宕机或者损坏,会导致数据丢失。在5G以及人工智能的快速发展背景下,平台方拥有所有的数据,个人数据不再被个人所拥有。有些平台方为了自身的利益考虑,会将这些数据用作AI深度学习的训练数据样本。而这些数据经过收集、处理后,拥有一定的商业价值。因此,把数据放在中心化的地方,那么用户的数据安全性就得不到保障。另外,中心化存储导致带宽传输成本非常高昂,比如在计算机视觉领域的图像数据集动辄几百个G或者上千G,无论上传数据还是下载数据都会消耗带宽,带宽是不可忽略的且比存储成本要贵,而中心化的存储服务,为了保证各个地方的用户都拥有良好的体验,他们会将数据中心部署到主干网络上,而主干网络在任何一个国家都是非常昂贵的。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于NFDT的分布式训练框架构建方法、分布式训练方法及系统。
为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种基于NFDT的分布式训练框架构建方法,其包括如下步骤:
获取单机用户的单机版代码框架;
运行单机版代码框架并生成Checkpoint文件(模型文件),所述Checkpoint文件中包括单机版机器学习模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码;
构建分布式训练框架,所述分布式训练框架包括计算集群定义单元,模型结构解析单元,模型结构调用以及训练解析单元和数据流调用解析单元,所述分布式训练框架从单机版Checkpoint文件中解析出模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码。
本发明的基于NFDT的分布式训练框架构建方法通过NFDT框架对单机版框架生成的Checkpoint文件进行模型解析,得到分布式训练框架,使得用户只需要用自己的单机版代码即可进行分布式训练。
为了实现本发明的上述目的,根据本发明的第二个方面,本发明提供了一种分布式训练方法,其包括如下步骤:
单机用户将数据集和代码存储于集群网络中并生成唯一hash值(哈希值);
分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码;
分布式训练模块利用单机版代码生成分布式训练框架;
分布式训练框架调用计算资源进行分布式训练。
利用本发明的分布式训练方法,用户只需要上传自己的数据集和单机训练代码,去中心化存储方式将训练任务压缩到集群中,集群中对应的训练设备根据收到的hash值可以将其解压,保证了训练的安全性和数据可靠性,本发明将分布式训练框架设计成用户单机版框架的客户端和NFDT框架作为服务端。NFDT框架对单机版训练过程中产生的模型文件进行模型解读和分析,实现单机版代码结构到分布式的训练功能。
根据本发明的一种优选实施方式,所述存储的方法为:
单机用户将经过处理后的数据集和代码通过其连接的子集群上传至集群网络的所有子集群,所述集群网络的子集群位置不同且相互连接;
存储用户获得数据集对应的唯一hash值并监测是否有下载请求。
本发明的去中心化存储方法将数据集存储于集群网络,存储用户获得数据集对应的唯一hash值并监测是否有下载请求以决定是否发送数据集对应的唯一hash值,分布式存储数据,提高了存储效率也避免了中心化存储节点被攻击的风险;存储用户获得数据集对应的唯一hash值并监测是否有下载请求以决定是否发送该hash值,个人数据仍具有一定的个人属性,提高了数据的安全性。
根据本发明的另一种优选实施方式,单机用户将数据集的唯一hash值发送给具有信任关系的部分子集群或用户。具有信任关系的部分子集群或用户才能够获取数据集的唯一hash值,才能够下载使用数据,提高了数据的安全性。
根据本发明的另一种优选实施方式中,所述信任关系为预先设置好的可发送hash值子集群,或者向上传用户提出下载请求的子集群或用户。通过预先设置信任关系或者依请求发送,提高了数据的安全性。
根据本发明的再另一种优选实施方式中,所述下载的方法为:分布式训练模块获取预下载数据集对应的唯一hash值;分布式训练模块在任意一个子集群下载,或者通过其相连的子集群同时从所有子集群中同步下载,所述子集群位置不同且互联。
本发明的数据下载方法下载用户同时从集群中的多个子集群同时进行下载,大大地增加了数据集的下载速度。同时,集群网络中的部分子集群虽然参与了整体数据集的上传存储过程和下载传输过程,但是因为不知道该数据集的hash值,所以无法知道该数据集的相关信息,提高了数据的安全性。
为了实现本发明的上述目的,根据本发明的第三个方面,本发明提供了一种基于NFDT的分布式训练框架系统,其包括:单机版代码框架模块,所述单机版代码框架模块运行单机版代码;Checkpoint文件模块,所述Checkpoint文件模块存储有单机版机器学习模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码;以及分布式训练模块,所述分布式训练模块包括计算集群定义单元,模型结构解析单元,模型结构调用以及训练解析单元和数据流调用解析单元,所述分布式训练框架从单机版Checkpoint文件中解析出模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码。
本发明的基于NFDT的分布式训练框架系统通过NFDT框架对单机版框架生成的Checkpoint文件进行模型解析,得到分布式训练框架,使得用户只需要用自己的单机版代码即可进行分布式训练。
为了实现本发明的上述目的,根据本发明的第四个方面,本发明提供了一种分布式训练平台,其包括集群模块,分布式训练模块;单机用户将数据集和代码存储于集群模块中并生成唯一hash值,分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码,分布式训练模块利用单机版代码生成分布式训练框架;分布式训练框架调用计算资源进行分布式训练。
利用本发明的分布式训练平台,用户只需要上传自己的数据集和单机训练代码,去中心化存储方式将训练任务压缩到集群中,集群中对应的训练设备根据收到的hash值可以将其解压,保证了训练的安全性和数据可靠性,本发明将分布式训练框架设计成用户单机版框架的客户端和NFDT框架作为服务端。NFDT框架对单机版训练过程中产生的模型文件进行模型解读和分析,实现单机版代码结构到分布式的训练功能。
根据本发明的一种优选实施方式中,还包括Docher容器,所述分布式训练模块封装在Docher容器中,分布式训练模块将接收到的任务需求对应的hash值进行解压缩,在Docker容器环境下得到单机版代码和数据集。
本发明提出了基于Docker容器化机制作为分布式训练平台系统的运行环境模块,将分布式训练模块封装成服务器镜像容器,分布式训练模块再根据分布式的训练任务继续创建若干个参数服务器容器和计算服务器容器。这样,服务器的启动、参数服务器和计算服务器进行的分布式训练都在容器中运行,实现了环境的隔离和一键部署和删除。
根据本发明的另一种优选实施方式中,还包括KAFKA服务器,所述KAFKA服务器连接分布式训练模块和前端模块,前端接收分布式训练模块的训练日志并反馈给用户,而在整个训练过程中,前端和分布式训练模块不直接交互。
本发明中,用户上传训练代码和数据集到前端,前端将训练任务和相关任务硬件需求发送至NFDT框架,NFDT框架作为分布式框架根据用户的具体算法结构进行分布式训练,在训练过程中,NFDT模块作为KAFKA服务器的Producer将产生的训练日志发送到KAFKA服务器,前端作为KAFKA服务器的消费者接收KAFKA服务器发送过来的训练日志,前端将训练日志反馈给用户,而在整个训练过程中,前端和NFDT框架不需要训练日志的交互,提高了整体的运行效率。
附图说明
图1是本发明一种优选实施方式中基于NFDT的分布式训练框架构的结构示意图;
图2是本发明一种优选实施方式中分布式训练的结构示意图;
图3是本发明一种优选实施方式中IPFS有向无环图的索引结构的二叉树结构;
图4是本发明一种优选实施方式中存储系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明提供了一种基于NFDT的分布式训练框架构建方法,其包括如下步骤:
获取单机用户的单机版代码框架;
运行单机版代码框架并生成Checkpoint文件,所述Checkpoint文件中包括单机版机器学习模型的创建代码,模型结构调用代码以及训练代码,模块训练过程中数据流的调用代码;
构建分布式训练框架,所述分布式训练框架包括计算集群定义单元,模型结构解析单元,模型结构调用以及训练解析单元和数据流调用解析单元,所述分布式训练框架从单机版Checkpoint文件中解析出模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码。
如图1所示,作为客户端的单机版框架,Tensorflow的训练条件主要包括:build_model、train_model、train_batch三个模块。其中,build_model模块负责的是深度学习算法模型的创建,包括模型网络结构的搭建、优化器、准确率函数、损失值函数的定义等。train_model模块负责是对build_model定义后的模型结构调用以及训练。train_batch模块负责train_model模块训练过程中数据流的调用。在分布式训练之前先通过客户端的单机版框架运行生成用于模型调用的Checkpoint文件。
作为服务端的NFDT框架,主要包括以下几个模块:Cluster(计算集群模块)、get_build_model、get_train_model、get_train_batch四个模块。在Cluster模块中,使用Cluster(簇)、Job和Task来定义一个计算集群,根据Job(工作)的名称和Task(任务)的任务id进行相应的任务操作。在get_build_model模块中,调用Checkpoint模型文件解析出模型结构信息,具体可以是读取Checkpoint文件中的图文件,得到图的Graph(图表)对象后即可得到完整的网络结构。在get_train_model模块中,通过调用Checkpoint模型的文件解析出优化器、损失函数等信息,例如graph中定义的经过operation(操作)的tensor(张量)为损失函数,损失函数带入优化器的minimize(使最小化)方法中做参数,一般命名为train_step。get_train_batch模块是和单机版中train_batch模块是一样的,负责训练过程中的数据流的调用。
本发明的基于NFDT的分布式训练框架构建方法通过NFDT框架对单机版框架生成的模型文件(Checkpoint)进行模型解析,得到分布式训练框架,使得用户只需要用自己的单机版代码即可进行分布式训练。
本发明还提供了一种分布式训练方法,如图2所示,其包括如下步骤:
单机用户将数据集和代码存储于集群网络中并生成唯一hash值;
分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码;
分布式训练模块利用单机版代码生成分布式训练框架;
分布式训练框架调用计算资源进行分布式训练。
利用本发明的分布式训练方法,用户只需要上传自己的数据集和单机训练代码,去中心化存储方式将训练任务压缩到集群中,集群中对应的训练设备根据收到的hash值可以将其解压,保证了训练的安全性和数据可靠性,本发明将分布式训练框架设计成用户单机版框架的客户端和NFDT框架作为服务端。NFDT框架对单机版训练过程中产生的模型文件进行模型解读和分析,实现单机版代码结构到分布式的训练功能。
在本实施方式中,本发明提供了一种去中心化存储方法,其包括如下步骤:
存储用户将经过处理后的数据集通过其连接的子集群上传至集群网络的所有子集群,所述集群网络的子集群位置不同且相互连接;
存储用户获得数据集对应的唯一hash值并监测是否有下载请求。
在本发明的一种实施方式中,本发明构可以建以IPFS(InterPlanetary FileSystem,星际文件系统)协议为核心的去中心化分布式存储机制,作为分布式存储功能模块,解决了中心化分布式存储带来的数据丢失和安全问题。例如在进行AI深度学习的模型训练过程中,数据集的存储、上传起到了非常重要的作用。
如图3所示,以节点ID为110的视角的二叉树进行了拆分,每一个节点都可以通过自己的视角对二叉树进行拆分,拆分规则是从根节点开始,把不包含自己的子树拆分出来,然后在剩下的子树中再拆分不包含自己的下一层子树,按照这样的方式以此类推,直到最后只剩下自己的这个节点。而对于每个子树而言,如果知道里面的任何一个节点,就可以通过这个节点递归路由到子树的任何一个节点。在实际开发应用中,如果某一个节点恰好宕机,为了保证系统的鲁棒性,Kad算法引入了K桶(K-bucket)的机制来解决这个问题。
K桶的更新机制:K-bucket主要有三种方式来更新路由表:主动收集节点、被动收集节点、检测失效节点。主动收集节点:主动发起FIND_NODE(查询节点)的请求,从而更新K桶的节点信息。被动收集节点:当收到其他节点发送过来的请求,会把对方的节点ID加入到某个K桶中。检测失效节点:周期性的发起PING请求,判断K桶中某个节点是否在线,然后清理K桶中哪些下线的节点。
当一个节点ID被用来更新K桶的时候进行如下步骤:计算自己和目标节点ID的距离d;通过距离d找到对应的K桶,如果ID已经在K桶中了则把对应项移到K桶的末尾。如果不在K桶中则有两种情况:如果该K桶存储的节点小于K个,则直接把目标节点插入到K-桶尾部。如果该K桶存储节点大于等于K个,检测节点是否存活。如果头部节点没有响应,说明头部节点失效,移除该头部节点,并将目标节点插入到队列尾部;如果头部节点有响应,则把头部节点移到队列尾部,同时忽略目标节点。通过这种更新策略可以保证在线时间长的节点有较大的可能继续保存在K桶中,提高了稳定网络构建路由表的成本。
定位节点:节点查询有同步进行和异步进行两种方式。确定目标ID对应路由表中的K桶位置,然后从自己的K-桶中筛选出K个距离目标ID最近的节点,并同时向这些节点发起FIND_NODE的查询请求。被查询节点收到FIND_NODE请求后,从对应的K桶中找出自己所知道的最近的K个节点,并返回给发起者。发起者在收到这些节点后,更新自己的结果列表,并再次从其中K个距离目标节点ID最近的节点,挑选未发送请求的节点重复第一步不断重复上面的步骤直到找到目标节点为止。
在本实施方式中,还包括以下步骤:存储用户将数据集的唯一hash值发送给具有信任关系的部分子集群或用户。具有信任关系的部分子集群或用户才能够获取数据集的唯一hash值,才能够下载使用数据,提高了数据的安全性。具体信任关系为预先设置好的可发送hash值子集群,或者向存储用户提出下载请求的子集群或用户。通过预先设置信任关系或者依请求发送,提高了数据的安全性。
根据本发明的再一种优选实施方式中,存储用户对提出下载请求的子集群或用户进行信任度验证,当信任度超过阈值则向其发送数据集对应的唯一hash值。通过设置信任度验证,进一步保证数据被随意下载,提高了数据安全性。
根据本发明的再另一种优选实施方式中,在集群网络中不具有信任关系的子集群只存储数据集不存储数据集对应的唯一hash值。存储单元中数据与其对应的hash值分离,保证高效存储数据的同时,避免了数据任意下载,提高了数据的安全性。
根据本发明的再另一种优选实施方式中,所述数据集的处理方法为:
把数据文件拆分成若干个块,逐块计算每块的hash值,把所有块的hash值拼凑成一个数组,再计算一次hash值,得到了文件最终的hash值,将最终hash值和所有块的hash值“捆绑”起来,组成一个对象,把这个对象作为一个索引结构,把数据块、索引结构全部上传给集群网络的所有子集群。数据文件和hash值分离,保证了存储的安全性。
本发明还提供了一种数据下载方法,其包括以下步骤:
下载用户获取预下载数据集对应的唯一hash值;
下载用户在任意一个子集群下载,或者通过其相连的子集群同时从所有子集群中同步下载,所述子集群位置不同且互联。
本发明的数据下载方法下载用户同时从集群中的多个子集群同时进行下载,大大地增加了数据集的下载速度。同时,集群网络中的部分子集群虽然参与了整体数据集的上传存储过程和下载传输过程,但是因为不知道该数据集的hash值,所以无法知道该数据集的相关信息,提高了数据的安全性。
本实施方式中,所述下载用户从存储用户获取数据集对应的唯一hash值或者从与其直接连接的子集群上获取数据集对应的唯一hash值。
只有下载用户或者具有信任关系的子集群获得数据集对应的唯一hash值,实现数据的下载,其它子集群不知道该数据集的hash值,因而无法知道该数据集的相关信息,提高了数据的安全性。
根据本发明的另一种优选实施方式中,存储用户对提出下载请求的子集群或下载用户进行信任度验证,当信任度超过阈值则向其发送数据集对应的唯一hash值。
在本发明的一种优选实施方式中,具体下载时,当下载用户已经获取了hash值,通过其连接的子集群向集群网络发送文件索引哈希值发送,集群网络根据文件索引哈希值进行检索,判断是否匹配检索,若匹配检索,则集群网络的所有子集群将检索到的与所述文件索引哈希值向对应的文件发送至指定的客户端。
本发明还提供了一种存储系统,其包括多个子集群组成的集群网络,所述多个子集群位置不同且互联,所述子集群可与存储用户连接,所述子集群还可与下载用户连接,所述存储用户按照本发明的存储方法将数据集存储于集群网络,所述下载用户按照本发明的下载方法从集群网络下载数据集。
本发明的存储系统将数据集存储于集群网络,存储用户获得数据集对应的唯一hash值并监测是否有下载请求以决定是否发送数据集对应的唯一hash值,分布式存储数据,提高了存储效率也避免了中心化存储节点被攻击的风险;存储用户获得数据集对应的唯一hash值并监测是否有下载请求以决定是否发送该hash值,个人数据仍具有一定的个人属性,提高了数据的安全性。
如图4所示,在本发明的一种优选实施方式中,集群网络由集群C、D、E、F四个子集群组成且四个集群分布在不同的地理位置。
用户A现将数据集dataset通过集群D上传至整体集群网络:
把数据文件拆分成若干个256KB大小的Block块,然后逐块计算Block块的hash,把所有的Block hash拼凑成一个数组,再计算一次hash,便得到了文件最终的hash,并将这个hash和Block hash数据“捆绑”起来,组成一个对象,把这个对象当做一个索引结构,把Block、索引结构全部上传给IPFS节点,数据文件便同步到了IPFS集群网络了。
存储后用户A会得到数据集dataset对应的唯一的hash值。如果用户B也想通过相同的数据集dataset在集群F中进行分布式训练,那么只需要用户A将该数据集的hash值告诉用户B,用户B就可以在任意一个子集群中对该数据集进行下载使用。集群F获取数据集的过程是同时从集群C、D、E三个子集群同时进行下载,大大地增加了数据集的下载速度。而集群C和集群E虽然参与了整体数据集的上传存储过程和下载传输过程,但是因为不知道该数据集的hash值,所以无法知道该数据集的相关信息。通过该去中心化存储机制作为分布式深度学习训练平台的存储模块,保障了用户数据集的安全性和使用方便快捷性。
本发明还提供了一种基于NFDT的分布式训练框架系统,其包括:单机版代码框架模块,所述单机版代码框架模块运行单机版代码;Checkpoint文件模块,所述Checkpoint文件模块存储有单机版机器学习模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码;以及分布式训练模块,所述分布式训练模块包括计算集群定义单元,模型结构解析单元,模型结构调用以及训练解析单元和数据流调用解析单元,所述分布式训练框架从单机版Checkpoint文件中解析出模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码。
本发明的基于NFDT的分布式训练框架系统通过NFDT框架对单机版框架生成的模型文件(Checkpoint)进行模型解析,得到分布式训练框架,使得用户只需要用自己的单机版代码即可进行分布式训练。
本发明还提供了一种分布式训练平台,其包括集群模块,分布式训练模块;单机用户将数据集和代码存储于集群模块中并生成唯一hash值,分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码,分布式训练模块利用单机版代码生成分布式训练框架;分布式训练框架调用计算资源进行分布式训练。
利用本发明的分布式训练平台,用户只需要上传自己的数据集和单机训练代码,去中心化存储方式将训练任务压缩到集群中,集群中对应的训练设备根据收到的hash值可以将其解压,保证了训练的安全性和数据可靠性,本发明将分布式训练框架设计成用户单机版框架的客户端和NFDT框架作为服务端。NFDT框架对单机版训练过程中产生的模型文件进行模型解读和分析,实现单机版代码结构到分布式的训练功能。
根据本发明的一种优选实施方式中,还包括Docher容器,所述分布式训练模块封装在Docher容器中,分布式训练模块将接收到的任务需求对应的hash值进行解压缩,在Docker容器环境下得到单机版代码和数据集。
本发明整个服务端都是封装在Docker容器中,服务端接收到用户的训练代码信息(代码和数据集),会通过NFDT框架组成分布式训练框架,形成不同的分布式训练任务(参数服务器和计算服务器),不同的训练任务根据CUDA(compute unified devicearchitecture,统一计算设备架构)去调用底层的硬件设备,进行分布式训练。在整个训练过程中,用户端无需去安装任何的深度学习框架、Numpy库等安装包。而服务端的整体环境都封装在镜像中,在Docker容器中运行分布式训练,彻底隔离了平台用户与底层环境的交互。在训练结束后,将任务容器的进程关闭,最终实现了模型的快速构建、模型的高效训练、模型的一键托管等特性。
本发明提出了基于Docker容器化机制作为分布式训练平台系统的运行环境模块,将分布式训练模块封装成服务器镜像容器,分布式训练模块再根据分布式的训练任务继续创建若干个参数服务器容器和计算服务器容器。这样,服务器的启动、参数服务器和计算服务器进行的分布式训练都在容器中运行,实现了环境的隔离和一键部署和删除。
根据本发明的另一种优选实施方式中,还包括KAFKA服务器,所述KAFKA服务器连接分布式训练模块和前端模块,前端接收分布式训练模块的训练日志并反馈给用户,而在整个训练过程中,前端和分布式训练模块不直接交互。
本发明中,用户上传训练代码和数据集到前端,前端将训练任务和相关任务硬件需求发送至NFDT框架,NFDT框架作为分布式框架根据用户的具体算法结构进行分布式训练,在训练过程中,NFDT模块作为KAFKA服务器的Producer将产生的训练日志发送到KAFKA服务器,前端作为KAFKA服务器的消费者接收KAFKA服务器发送过来的训练日志,前端将训练日志反馈给用户,而在整个训练过程中,前端和NFDT框架不需要训练日志的交互,提高了整体的运行效率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (9)
1.基于NFDT的分布式训练框架构建方法,其特征在于,包括如下步骤:
获取单机用户的单机版代码框架;
运行单机版代码框架并生成Checkpoint文件,所述Checkpoint文件中包括单机版机器学习模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码;
构建分布式训练框架,所述分布式训练框架包括计算集群定义单元,模型结构解析单元,模型结构调用以及训练解析单元和数据流调用解析单元,所述分布式训练框架从单机版Checkpoint文件中解析出模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码。
2.一种分布式训练方法,其特征在于,包括如下步骤:
单机用户将数据集和代码存储于集群网络中并生成唯一hash值;
分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码;
分布式训练模块利用单机版代码生成分布式训练框架;
分布式训练框架调用计算资源进行分布式训练。
3.如权利要求2所述的分布式训练方法,其特征在于,所述存储的方法为:
单机用户将经过处理后的数据集和代码通过其连接的子集群上传至集群网络的所有子集群,所述集群网络的子集群位置不同且相互连接;
存储用户获得数据集对应的唯一hash值并监测是否有下载请求。
4.如权利要求2所述的分布式训练方法,其特征在于,单机用户将数据集的唯一hash值发送给具有信任关系的部分子集群或用户。
5.如权利要求2所述的分布式训练方法,其特征在于,所述下载的方法为:
分布式训练模块获取预下载数据集对应的唯一hash值;
分布式训练模块在任意一个子集群下载,或者通过其相连的子集群同时从所有子集群中同步下载,所述子集群位置不同且互联。
6.一种基于NFDT的分布式训练框架系统,其特征在于,包括:
单机版代码框架模块,所述单机版代码框架模块运行单机版代码;
Checkpoint文件模块,所述Checkpoint文件模块存储有单机版机器学习模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码;以及
分布式训练模块,所述分布式训练模块包括计算集群定义单元,模型结构解析单元,模型结构调用以及训练解析单元和数据流调用解析单元,所述分布式训练框架从单机版Checkpoint文件中解析出模型的创建代码,模型结构调用以及训练代码,模块训练过程中数据流的调用代码。
7.一种分布式训练平台,其特征在于,包括集群模块,分布式训练模块;单机用户将数据集和代码存储于集群模块中并生成唯一hash值,分布式训练模块接收任务需求对应的hash值从集群网络下载数据集和单机版代码,分布式训练模块利用单机版代码生成分布式训练框架;分布式训练框架调用计算资源进行分布式训练。
8.如权利要求7所述的分布式训练平台,其特征在于,还包括Docher容器,所述分布式训练模块封装在Docher容器中,分布式训练模块将接收到的任务需求对应的hash值进行解压缩,在Docker容器环境下得到单机版代码和数据集。
9.如权利要求7或8所述的分布式训练平台,其特征在于,还包括KAFKA服务器,所述KAFKA服务器连接分布式训练模块和前端模块,前端接收分布式训练模块的训练日志并反馈给用户,而在整个训练过程中,前端和分布式训练模块不直接交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010523162.9A CN111767034A (zh) | 2020-06-10 | 2020-06-10 | 基于nfdt的分布式训练框架构建方法、分布式训练方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010523162.9A CN111767034A (zh) | 2020-06-10 | 2020-06-10 | 基于nfdt的分布式训练框架构建方法、分布式训练方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767034A true CN111767034A (zh) | 2020-10-13 |
Family
ID=72720581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010523162.9A Pending CN111767034A (zh) | 2020-06-10 | 2020-06-10 | 基于nfdt的分布式训练框架构建方法、分布式训练方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767034A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113610241A (zh) * | 2021-08-03 | 2021-11-05 | 曙光信息产业(北京)有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN113672215A (zh) * | 2021-07-30 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | 深度学习分布式训练适配方法和装置 |
-
2020
- 2020-06-10 CN CN202010523162.9A patent/CN111767034A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672215A (zh) * | 2021-07-30 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | 深度学习分布式训练适配方法和装置 |
CN113672215B (zh) * | 2021-07-30 | 2023-10-24 | 阿里巴巴新加坡控股有限公司 | 深度学习分布式训练适配方法和装置 |
CN113610241A (zh) * | 2021-08-03 | 2021-11-05 | 曙光信息产业(北京)有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN113610241B (zh) * | 2021-08-03 | 2024-05-10 | 曙光信息产业(北京)有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525624B (zh) | 一种容器登录方法、装置及存储介质 | |
US11514304B2 (en) | Continuously provisioning large-scale machine learning models | |
CN112600891B (zh) | 一种基于信息物理融合的边云协同系统及工作方法 | |
CN111767034A (zh) | 基于nfdt的分布式训练框架构建方法、分布式训练方法及系统 | |
CN104967619A (zh) | 文件推送方法、装置和系统 | |
KR20060045788A (ko) | 데이터 오버레이, 자가-조직 메타데이터 오버레이 및애플리케이션 레벨 멀티캐스팅 | |
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
CN101447891B (zh) | 业务模型自适应系统及方法 | |
CN111935242B (zh) | 数据传输方法、装置、服务器以及存储介质 | |
Chechina et al. | Evaluating scalable distributed Erlang for scalability and reliability | |
EP3942413A1 (en) | Merge trees for collaboration | |
US20200351111A1 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN108401031A (zh) | 一种镜像文件传输方法、装置及存储介质 | |
CN111597014B (zh) | 免二次镜像的容器化JavaEE应用服务器的发布方法 | |
CN116680040A (zh) | 一种容器处理方法、装置、设备、存储介质及程序产品 | |
CN101667139A (zh) | 基于集合类型对象的服务程序调用方法、装置及系统 | |
CN114817190A (zh) | 日志同步的方法、装置、系统、设备及存储介质 | |
CN116360954B (zh) | 基于云边协同技术的工业物联网管控方法和管控系统 | |
CN116684416A (zh) | 一种网元集群中的镜像分发方法、装置和系统 | |
CN115809292A (zh) | 数据处理方法、装置、设备及介质 | |
CN110138670B (zh) | 一种基于动态路径的负载迁移方法 | |
CN113435489A (zh) | 部署系统的方法、装置、计算机可读存储介质及处理器 | |
CN111767250A (zh) | 去中心化存储方法、下载方法及存储系统 | |
Safri et al. | Towards developing a global federated learning platform for IoT | |
CN112000425A (zh) | 一种基于idv模式下的镜像管理系统 |
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 |