CN109032671A - 一种基于数据并行策略的分布式深度学习方法及系统 - Google Patents

一种基于数据并行策略的分布式深度学习方法及系统 Download PDF

Info

Publication number
CN109032671A
CN109032671A CN201810662859.7A CN201810662859A CN109032671A CN 109032671 A CN109032671 A CN 109032671A CN 201810662859 A CN201810662859 A CN 201810662859A CN 109032671 A CN109032671 A CN 109032671A
Authority
CN
China
Prior art keywords
parameter
training
model
working node
neural network
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.)
Granted
Application number
CN201810662859.7A
Other languages
English (en)
Other versions
CN109032671B (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201810662859.7A priority Critical patent/CN109032671B/zh
Publication of CN109032671A publication Critical patent/CN109032671A/zh
Application granted granted Critical
Publication of CN109032671B publication Critical patent/CN109032671B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Machine Translation (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于数据并行策略的分布式深度学习方法及系统,本发明的系统包括一个分布式计算框架Spark、PyTorch深度学习框架、轻量级Web应用框架Flask及pickle、urllib2等相关组件;Spark框架提供集群资源管理、数据分发、分布式计算的功能;PyTorch深度学习框架,提供神经网络定义的接口,提供神经网络上层训练计算的功能;flask框架提供参数服务器功能;urllib2模块负责提供工作节点与参数服务器节点的网络通信功能;pickle负责将神经网络模型中的参数序列化与反序列化,以在网络上进行传输。本发明有效的将PyTorch与Spark结合起来,通过Spark将PyTorch与底层分布式集群解耦、吸取了各自的优势,提供便捷的训练接口,高效实现基于数据并行的分布式训练过程。

Description

一种基于数据并行策略的分布式深度学习方法及系统
技术领域
本发明涉及一种深度学习训练系统,具体涉及基于数据并行策略的分布式深度学习方法及系统。
背景技术
近年来随着大数据的到来,与人工智能特别是深度学习的迅速发展,在大数据集上训练的深度神经网络模型在许许多多领域都取得突破性的提高与广泛应用,包括语音识别和图像识别到自然语言处理等。深度学习通过不断的求导迭代更新模型来提高自己的能力,需要大量的计算,是典型的计算密集型任务。因此这些神经网络的训练过程非常耗时,尽管近些年GPU(图形处理器)的硬件技术、网络模型结构和训练方法均取得了一定程度的进展,但是单机训练耗时过久的事实仍无法回避。其次,深度学习要求很大的模型与大量的训练数据,同时研究表明数据规模与神经网络的性能成线性增长关系,未来训练数据可能达到PB、ZB级别。随着数据与模型参数量的越来越大,单机的内存(或显存)的增长速度并将不能与之相匹配。由此,单节点进行深度学习训练已经无法满足要求。分布式由于其良好的灵活性与可扩展性,将单机资源有效的结合起来,分布式深度学习成为解决该问题的有效手段。分布式深度学习主要有两种策略,模型并行与数据并行。模型并行是将神经网络模型分割成多个部分,将各个部分交给个工作节点进行训练,但是工作节点之间存在大量通信,同时切割划分模型存在一定的困难。数据并行则是将训练数据划分成多个训练数据集,交给各个工作节点进行训练,是针对大规模训练数据集分布式训练的有效策略。
Apache Spark作为一个广泛应用的通用分布式计算框架(一种大数据分布式处理引擎),其拥有Hadoop MapReduce所具有的优点,同时Spark底层利用yarn等集群资源管理框架提供了便捷的集群资源管理功能。Spark具有先进的设计理念,引入了actor并行模型,使其在处理分布式数据集上有巨大优势,同时具有运行速度快、易用性好、通用性强等特点。然而在人工智能迅速发展的今天,Spark中的Mllib/Mlbase等机器学习库发展缓慢,同时近年来深度学习得到了前所未有的发展,将在各个领域不断地替代经典的机器学习算法,而Spark对深度学习的支持性很差,运行在Spark上的应用不能直接应用深度学习算法,需要通过复杂的方式才能达到这目的。Spark作为通用分布式计算系统并不能很好的支持深度学习。近年来,有将caffe(Convolutional Architecture for Fast FeatureEmbedding),tensorflow深度学习框架整合至Spark上面的架构,如sparknet,deepspark,caffeonspark。通过将训练数据转化成RDD(弹性分布式数据集)数据类型,然后通过spark进行分布式计算训练。然而这种架构下,上层深度学习框架均为静态图框架,缺少灵活性,同时在参数交换与分布式更新算法方面存在一定的局限性。
在深度学习的发展下,许多深度学习框架出现在公司与高校中,如caffe、tensorflow等。2017年1月,Facebook人工智能研究院(FAIR)团队在GitHub上开源了PyTorch,并迅速占领GitHub热度榜榜首。PyTorch不是简单地封装Lua Torch提供Python接口,而是对Tensor之上的所有模块进行了重构,并新增了最先进的自动求导系统,同时其定义网络结构方便直观、灵活等特点、成为当下最流行的动态图框架,在工业界与学术界得到了广泛的应用。PyTorch虽然具有分布式训练的接口,但是其编程需要配置节点集群,较为复杂,没有集群资源管理功能,在分布式集群加入新的节点或者增加新的计算资源时,程序需要重写;同时在迭代更新方面,并不能有效的降低网络中的通信开销,使得分布式训练在扩展性与灵活性方面效果较差。
发明内容
本发明的发明目的在于:针对上述存在的问题,提出一种基于数据并行策略的分布式深度学习技术,以Spark与PyTorch为基础,将PyTorch与Spark有效结合起来,提供便捷的训练接口,高效实现基于数据并行的分布式训练过程。
为了达到上述目的,本发明采用的解决方案为:
一种基于数据并行策略的分布式深度学习方法,包括下列步骤:
步骤1:输入用户基于PyTorch编写的待训练的神经网络模型,得到待训练的PyTorch神经网络模型P-Model;以及用户为所述P-Model设置下列参数:
分布式训练参数,包括通信阈值、工作节点数量N和分布式更新算法(即异步更新算法,例如ASGD(异步随机梯度下降)、Hogwild!等);
工作节点训练参数,包括迭代次数、批尺寸batch size、损失函数和工作节点的optimizer;
全局训练参数,包括精度期望值和参数服务器的optimizer;
步骤2:将P-Model、工作节点训练参数和分布式训练参数中的通信阈值发送到N个工作节点,以及将P-Model、全局训练参数和分布式训练参数中的分布式更新算法发送至参数服务器,将参数服务器上的P-Model定义为全局神经网络模型;
步骤3:将训练所述P-Model的训练数据转化为RDD数据类型;
通过大数据分布式处理引擎Spark将转化后的训练数据等分为N份后分发到所述N个工作节点;
步骤4:各工作节点基于本地的训练数据和工作节点训练参数,对本地的P-Model进行迭代训练,更新本地神经网络模型参数;
各工作节点在满足通信阈值时,计算本地神经网络模型参数的更新量并上传至参数服务器,其中更新量为当前神经网络模型参数与上次发生通信时的神经网络模型参数的差值;
参数服务器基于工作节点上传的更新量、分布式更新算法、以及全局训练参数训练全局神经网络模型,更新全局神经网络模型参数并下发至工作节点,工作节点将接收的全局神经网络模型参数同步至本地的P-Model;
步骤5:重复执行步骤4,至到满足模型训练终止条件,参数服务器将全局神经网络模型输出;
其中,模型训练终止条件为下述两种中任意一种:
第一终止条件:各工作节点的实际迭代训练次数均达到工作节点训练参数中的迭代次数;
第二终止条件:参数服务器每次更新全局神经网络模型参数后,训练精度达到精度期望值。
进一步的,参数服务器更新全局神经网络模型参数具体方式为:将参数服务器的optimizer的梯度替换为工作节点上传的更新量;再通过所述参数服务器的optimizer对全局神经网络模型的参数进行更新。
本发明的分布式深度学习方法的有益效果在于,有效的将PyTorch与Spark结合起来,通过Spark将PyTorch与底层分布式集群解耦、吸取了各自的优势,并针对分布式训练过程进行了设计与优化,用户可以分别自定义工作节点与参数服务器的optimizer,多粒度控制工作节点与参数服务器的通信,同时用户可以选择不同的分布式更新算法,有效提高了系统的训练效率、灵活性。
同时,对应上述方法,本发明还公开了一种基于数据并行策略的深度学习系统,其包括大数据分布式处理引擎Spark、PyTorch深度学习训练框架、轻量级Web应用框架Flask、urllib2模块、pickle模块、参数设置模块和数据转化模块;
其中,PyTorch深度学习训练框架用于用户编写待训练的PyTorch神经网络模型P-Model;
参数设置模块用于设置所述P-Model的分布式训练参数,工作节点训练参数和全局训练参数;其中,所述分布式训练参数,包括通信阈值、工作节点数量N和分布式更新算法;所述工作节点训练参数,包括:迭代次数、批尺寸batch size、损失函数和工作节点的optimizer;所述全局训练参数,包括:精度期望值和参数服务器的optimizer;
轻量级Web应用框架Flask根据P-Model、分布式更新算法和全局训练参数建立参数服务器;
所述大数据分布式处理引擎Spark根据用户设置的工作节点数量N选取分布式集群中N个节点作为工作节点;并将所述P-Model、工作节点训练参数和通信阈值传送至工作节点并建立本地的PyTorch模型训练模块;
所述数据转化模块用于将训练所述P-Model的训练数据转化为Spark支持的RDD数据类型,并通过大数据分布式处理引擎Spark将转化后训练数据等分为N份后分发到所述N个工作节点;
各PyTorch模型训练模块通过urllib2模块和pickle模块与参数服务器进行参数交互,所述urllib2模块用于PyTorch模型训练模块与参数服务器之间的网络通信,pickle模块用于对待发送的参数进行序列化处理,以及对接收的参数进行反序列化处理;
各PyTorch模型训练模块基于工作节点训练参数,以及分发到的训练数据对本地的P-Model进行迭代训练,不断更新本地神经网络模型参数;并在满足通信阈值时,计算本地神经网络模型参数的更新量并上传至参数服务器,其中更新量为当前神经网络模型参数与上次发生通信时的神经网络模型参数的差值;
参数服务器上的P-Model为全局神经网络模型,参数服务器基于从工作节点收到的更新量、用户设置的分布式更新算法、以及全局训练参数,更新全局神经网络模型参数并将其返回至该工作节点,该工作节点上的PyTorch模型训练模块根据接收的全局神经网络模型参数对本地神经网络模型参数进行同步;
参数服务器监控各PyTorch模型训练模块的训练过程,当满足模型训练终止条件时,参数服务器将全局神经网络模型输出。
在本系统中采取多粒度的更新算法,可采用epoch与batch两种粒度结合的方式。通过设定更新粒度与间隔控制模型在工作节点训练的轮数,进而可以控制工作节点与参数服务器的通信频率。以及采用了参数服务器的optimizer(参数更新模块)与工作节点optimizer单独设置的方式,提供多种参数更新算法,使用户可以更好的利用工作节点的更新量,提高了系统的灵活性。
综上,本发明的有益效果在于:针对深度学习的分布式训练,提出了一种接口简单灵活、训练效率高、可拓展性强分布式深度学习方案。本发明有效的将PyTorch与Spark结合起来,通过Spark将PyTorch与底层分布式集群解耦、吸取了各自的优势,并针对分布式训练过程进行了设计与优化,用户可以分别自定义工作节点与参数服务器的optimizer,多粒度控制工作节点与参数服务器的通信,同时用户可以选择不同的分布式更新算法,有效提高了分布式训练的训练效率、灵活性。
附图说明
图1为本发明中一种基于数据并行策略的分布式深度学习系统架构示意图。
图2为本系统中内部进行分布式训练的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
针对大规模数据训练,本发明主要采取了数据并行策略,结合参数服务器来实现分布式深度学习。本发明中,被选取的每个工作节点训练部分数据,并维护一个本地神经网络模型,参数服务器接受工作节点模型更新的信息,通过相关算法更新并维护全局神经网络模型。
参见图1,本发明的深度学习系统主要包括大数据分布式处理引擎Spark、PyTorch深度学习训练框架、轻量级Web应用框架Flask、urllib2模块、pickle模块、参数设置模块和数据转化模块;
其中,PyTorch深度学习训练框架用于用户编写待训练的PyTorch神经网络模型,即图1中所示的PyTorch model(简称P-Model);
本发明的参数设置模块包括set_distributed_param接口、set_worker_param接口与set_server_param接口,分别用于设置所述P-Model的分布式训练参数(包括通信粒度、通信轮数、工作节点数量N和分布式更新算法等),工作节点训练参数(epoch、批尺寸batch size、损失函数和工作节点的optimizer等)和全局训练参数(精度期望值和参数服务器的optimizer等);
轻量级Web应用框架Flask根据PyTorch model、分布式更新算法和全局训练参数建立参数服务器server,即图1中所示的Flask server;
Spark提供集群资源管理、数据分发、分布式计算及任务调度的功能,即基于用户设置选取分布式集群中N个节点作为工作节点,并将所述PyTorch model、工作节点训练参数、通信粒度和通信轮数传送至工作节点并建立本地的PyTorch模型训练模块;以及用于将被数据转化模块转化为Spark支持的RDD数据类型的训练数据等分为N份后分发到所述N个工作节点;
各PyTorch模型训练模块通过urllib2模块和pickle模块与参数服务器进行参数交互,其中urllib2模块用于PyTorch模型训练模块与参数服务器之间的网络通信,pickle模块用于对待发送的参数进行序列化处理,以及对接收的参数进行反序列化处理。
基于本发明的深度学习系统,用户在编程中不必关心分布式集群中的各个节点,系统通过Spark将PyTorch与底层硬件解耦,使用户在编程时不需要关注分布式集群,仅需传入简单的参数就可以利用分布式集群进行训练,同时分布式集群在增加或删除节点时不影响上层的编程,提高了集群的可扩展性与灵活性。
在用户使用本发明的深度学习系统开始分布式训练时,用户调用原生PyTorch神经网络框架接口编写PyTorch神经网络模型;调用参数设置模块的set_distributed_param接口、set_worker_param接口与set_server_param接口分别设置分布式训练参数、工作节点训练参数与全局训练参数;在对训练数据进行归一化、去噪、增强等预处理操作后调用数据转化模块的rdd_transform接口将训练数据转化成RDD数据类型,利用Spark与Flask在主节点与若干工作节点上建立分布式训练模型,开始分布式训练。参见图2,其分布式训练流程处理过程如下:
Spark将RDD数据类型的训练数据,根据用户设置的工作节点个数均分,并与PyTorch model及训练相关参数(epoch、批尺寸batch size、损失函数和工作节点的optimizer、通信粒度和通信轮数)一起分发到各个工作节点;同时启动参数服务器(Flaskserver),维护全局神经网络模型(参数服务器上的PyTorch model)。
若选择ASGD更新算法,则参数服务器为全局神经网络模型加读写锁;若选择Hogwild!算法,则参数服务器不为全局神经网络模型加读写锁。
各个工作节点将RDD数据类型的训练数据转化成PyTorch需要的Variable类型,并解析工作节点的optimizer参数,生成optimizer对象,开始各自进行迭代训练,更新本地神经网络模型参数。
在深度学习的分布式训练过程中,存在工作节点与参数服务器大量通信,过大的通信开销在一定程度上会影响分布式训练的效率。工作节点在本地训练多轮模型之后计算更新量(当前神经网络模型参数与上次发生通信时的神经网络模型参数的差值)后与参数服务器通信,可以有效降低通信开销。在训练迭代过程中,工作节点利用本地数据对本地模型进行训练,并根据设置的通信粒度、轮数与参数服务器进行通信。例如设置通信粒度为epoch,轮数为3,则各个工作节点在本地每训练3个epoch后,计算本次更新量并上传至参数服务器;例如设置通信粒度为batch,轮数为4,则各个工作节点在本地每训练4个batch后,计算本次更新量并上传至参数服务器。
在通信时,工作节点首先通过本地当前训练后的网络模型参数与上次发生通信时的网络模型参数的更新量,然后通过本地的pickle模块进行序列化后传至参数服务器,触发参数服务器的全局神经网络模型更新操作,待全局神经网络模型更新完毕后,获取参数服务器上全局神经网络模型的最新参数,反序列化后,载入本地模型,开始下一轮本地神经网络模型训练。本发明中,选择传神经网络模型的参数,在本地重新载入参数,相对于传递整个神经网络模型也有效的减少了通信的开销。
参数服务器收到工作节点传来的序列化后的本地更新量后,通过pickle模块将其反序列化得到更新量,然后将全局神经网络模型的optimizer的梯度替换成更新量,再通过该optimizer对全局模型根据设定的optimizer更新算法(不同的更新算法对应不同的optimizer)进行更新,得到新的全局神经网络模型参数。
在各个工作节点完成指定训练迭代次数之后,根据设定,参数服务器将全局神经网络模型存入HDFS(Hadoop分布式文件系统),至此完成神经网络的训练过程。
使用本发明的深度学习系统运行样例的时间分析如下:
在50000训练样本,30个epoch情况下,单节点利用CPU单核的训练时间消耗约40min,在三节点CPU单核训练的时间消耗为17min,效率提高235%。本结果是在利用CPU训练下进行测试,同时本发明也可以利用GPU进行训练。
本发明通过将当下流行的神经网络框架PyTorch与Spark结合,吸收了两者的优点,有效解决了PyTorch进行分布式训练复杂,灵活性扩展性差的特点。用户可以利用该发明系统进行方便、快捷、扩展性好的分布式神经网络训练。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1.一种基于数据并行策略的分布式深度学习方法,其特征在于,包括下列步骤:
步骤1:输入用户基于PyTorch编写的待训练的神经网络模型,得到待训练的PyTorch神经网络模型P-Model;以及用户为所述P-Model设置下列训练参数:
分布式训练参数,包括通信阈值、工作节点数量N和分布式更新算法;
工作节点训练参数,包括迭代次数、批尺寸batch size、损失函数和工作节点的optimizer;
全局训练参数,包括精度期望值和参数服务器的optimizer;
步骤2:将P-Model、工作节点训练参数和分布式训练参数中的通信阈值发送到N个工作节点,以及将P-Model、全局训练参数和分布式训练参数中的分布式更新算法发送至参数服务器,将参数服务器上的P-Model定义为全局神经网络模型;
步骤3:将训练所述P-Model的训练数据转化为RDD数据类型;并通过大数据分布式处理引擎Spark将转化后的训练数据等分为N份后分发到所述N个工作节点;
步骤4:各工作节点基于本地的训练数据和工作节点训练参数,对本地的P-Model进行迭代训练,更新本地神经网络模型参数;
各工作节点在满足通信阈值时,计算本地神经网络模型参数的更新量并上传至参数服务器,其中更新量为当前神经网络模型参数与上次发生通信时的神经网络模型参数的差值;
参数服务器基于工作节点上传的更新量、分布式更新算法、以及全局训练参数训练全局神经网络模型,更新全局神经网络模型参数并下发至工作节点,工作节点将接收的全局神经网络模型参数同步至本地的P-Model;
步骤5:重复执行步骤4,至到满足模型训练终止条件,参数服务器将全局神经网络模型输出;
其中,模型训练终止条件为:各工作节点的实际迭代训练次数均达到工作节点训练参数中的迭代次数;
或者模型训练终止条件为:参数服务器每次更新全局神经网络模型参数后,训练精度达到精度期望值。
2.如权利要求1所述的方法,其特征在于,参数服务器更新全局神经网络模型参数具体方式为:将参数服务器的optimizer的梯度替换为工作节点上传的更新量;再通过所述参数服务器的optimizer对全局神经网络模型的参数进行更新。
3.如权利要求1或2所述的方法,其特征在于,分布式更新算法为异步随机梯度下降ASGD或Hogwild!。
4.如权利要求1或2所述的方法,其特征在于,参数服务器将全局神经网络模型存入HDFS。
5.如权利要求1或2所述的方法,其特征在于,所述通信阈值包括通信粒度、间隔通信轮数M,当工作节点在本地训练M轮通信粒度后,认为满足通信阈值。
6.如权利要求5所述的方法,其特征在于,所述通信粒度为epoch或batch。
7.一种基于数据并行策略的分布式深度学习系统,其特征在于,包括大数据分布式处理引擎Spark、PyTorch深度学习训练框架、轻量级Web框架Flask、urllib2模块、pickle模块、参数设置模块和数据转化模块;
其中,所述PyTorch深度学习训练框架用于用户编写待训练的PyTorch神经网络模型P-Model;
参数设置模块用于设置所述P-Model的分布式训练参数,工作节点训练参数和全局训练参数;其中,所述分布式训练参数,包括通信阈值、工作节点数量N和分布式更新算法;所述工作节点训练参数,包括:迭代次数、批尺寸batch size、损失函数和工作节点的optimizer;所述全局训练参数,包括:精度期望值和参数服务器的optimizer;
轻量级Web框架Flask根据P-Model、分布式更新算法和全局训练参数建立参数服务器;
所述大数据分布式处理引擎Spark根据用户设置的工作节点数量N选取分布式集群中N个节点作为工作节点;并将所述P-Model、工作节点训练参数和通信阈值传送至工作节点并建立本地的PyTorch模型训练模块;
所述数据转化模块用于将训练所述P-Model的训练数据转化为Spark支持的RDD数据类型,并通过大数据分布式处理引擎Spark将转化后训练数据等分为N份后分发到所述N个工作节点;
各PyTorch模型训练模块通过urllib2模块和pickle模块与参数服务器进行参数交互,所述urllib2模块用于PyTorch模型训练模块与参数服务器之间的网络通信,pickle模块用于对待发送的参数进行序列化处理,以及对接收的参数进行反序列化处理;
各PyTorch模型训练模块基于工作节点训练参数,以及分发到的训练数据对本地的P-Model进行迭代训练,不断更新本地神经网络模型参数;并在满足通信阈值时,计算本地神经网络模型参数的更新量并上传至参数服务器,其中更新量为当前神经网络模型参数与上次发生通信时的神经网络模型参数的差值;
参数服务器上的P-Model为全局神经网络模型,参数服务器基于从工作节点收到的更新量、用户设置的分布式更新算法、以及全局训练参数,更新全局神经网络模型参数并将其返回至该工作节点,该工作节点上的PyTorch模型训练模块根据接收的全局神经网络模型参数对本地神经网络模型参数进行同步;
参数服务器监控各PyTorch模型训练模块的训练过程,当满足模型训练终止条件时,参数服务器将全局神经网络模型输出;
其中,模型训练终止条件为:各工作节点的实际迭代训练次数均达到工作节点训练参数中的迭代次数;
或者模型训练终止条件为:参数服务器每次更新全局神经网络模型参数后,训练精度达到精度期望值。
CN201810662859.7A 2018-06-25 2018-06-25 一种基于数据并行策略的分布式深度学习方法及系统 Expired - Fee Related CN109032671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810662859.7A CN109032671B (zh) 2018-06-25 2018-06-25 一种基于数据并行策略的分布式深度学习方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810662859.7A CN109032671B (zh) 2018-06-25 2018-06-25 一种基于数据并行策略的分布式深度学习方法及系统

Publications (2)

Publication Number Publication Date
CN109032671A true CN109032671A (zh) 2018-12-18
CN109032671B CN109032671B (zh) 2022-05-03

Family

ID=64610589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810662859.7A Expired - Fee Related CN109032671B (zh) 2018-06-25 2018-06-25 一种基于数据并行策略的分布式深度学习方法及系统

Country Status (1)

Country Link
CN (1) CN109032671B (zh)

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670583A (zh) * 2018-12-27 2019-04-23 浙江省公众信息产业有限公司 去中心化的数据分析方法、系统以及介质
CN109739514A (zh) * 2018-12-21 2019-05-10 北京中科寒武纪科技有限公司 参数处理方法及相关产品
CN109871958A (zh) * 2019-02-01 2019-06-11 东软医疗系统股份有限公司 训练模型的方法、装置及设备
CN110008028A (zh) * 2019-04-10 2019-07-12 北京旷视科技有限公司 计算资源分配方法、装置、计算机设备和存储介质
CN110059829A (zh) * 2019-04-30 2019-07-26 济南浪潮高新科技投资发展有限公司 一种异步参数服务器高效并行架构与方法
CN110097188A (zh) * 2019-04-30 2019-08-06 科大讯飞股份有限公司 一种模型训练方法、工作节点及参数更新服务器
CN110188919A (zh) * 2019-04-22 2019-08-30 武汉大学 一种基于长短期记忆网络的负荷预测方法
CN110263928A (zh) * 2019-06-18 2019-09-20 中国科学技术大学 保护数据隐私的基于移动设备的分布式深度学习训练方法
CN110276455A (zh) * 2019-06-19 2019-09-24 南京邮电大学 基于全局率权重的分布式深度学习系统
CN110503194A (zh) * 2019-08-09 2019-11-26 苏州浪潮智能科技有限公司 一种分布式并行训练的方法和系统
CN110674923A (zh) * 2019-08-15 2020-01-10 山东领能电子科技有限公司 一种多神经网络框架间的快速模型验证方法
CN110772797A (zh) * 2019-10-29 2020-02-11 腾讯科技(深圳)有限公司 一种数据处理方法、装置、服务器及可存储介质
CN110929884A (zh) * 2019-11-22 2020-03-27 北京大学 一种基于列划分的分布式机器学习优化的分类方法及装置
CN110956202A (zh) * 2019-11-13 2020-04-03 重庆大学 基于分布式学习的图像训练方法、系统、介质及智能设备
CN110954896A (zh) * 2019-12-02 2020-04-03 中国矿业大学(北京) 一种基于PyTorch的探地雷达层析成像加速方法
CN111079892A (zh) * 2019-10-30 2020-04-28 华为技术有限公司 深度学习模型的训练方法、装置及系统
CN111126621A (zh) * 2019-12-17 2020-05-08 北京九章云极科技有限公司 在线模型训练方法及装置
CN111131080A (zh) * 2019-12-26 2020-05-08 电子科技大学 分布式深度学习流调度方法、系统、设备
CN111158902A (zh) * 2019-12-09 2020-05-15 广东工业大学 一种移动边缘分布式机器学习系统和方法
CN111340235A (zh) * 2020-02-29 2020-06-26 苏州浪潮智能科技有限公司 一种兼容多种训练方式的深度学习分布式训练方法与系统
CN111353582A (zh) * 2020-02-19 2020-06-30 四川大学 一种基于粒子群算法的分布式深度学习参数更新方法
CN111444019A (zh) * 2020-03-31 2020-07-24 中国科学院自动化研究所 云端协同的深度学习模型分布式训练方法及系统
WO2020206958A1 (zh) * 2019-04-09 2020-10-15 苏宁云计算有限公司 一种基于迭代式学习的智能辅助标注方法及系统
CN111985609A (zh) * 2020-07-06 2020-11-24 电子科技大学 一种基于TensorFlow框架的数据并行优化方法
CN112001774A (zh) * 2020-08-12 2020-11-27 浪潮软件股份有限公司 基于神经网络的烟草投放量研判方法及系统
CN112035261A (zh) * 2020-09-11 2020-12-04 杭州海康威视数字技术股份有限公司 数据处理方法及系统
CN112070238A (zh) * 2020-11-10 2020-12-11 鹏城实验室 准确的机器学习异步预测方法及系统、存储介质
CN112101536A (zh) * 2020-08-30 2020-12-18 西南电子技术研究所(中国电子科技集团公司第十研究所) 轻量级分布式多任务协同框架
CN112149808A (zh) * 2020-09-28 2020-12-29 上海交通大学 拓展单机图神经网络训练至分布式训练方法、系统及介质
CN112446484A (zh) * 2019-08-31 2021-03-05 深圳致星科技有限公司 一种多任务训练集群智能网络系统及集群网络优化方法
CN112541584A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 深度神经网络模型并行模式选择方法
CN112685504A (zh) * 2021-01-06 2021-04-20 广东工业大学 一种面向生产过程的分布式迁移图学习方法
CN112734040A (zh) * 2021-01-22 2021-04-30 中国人民解放军军事科学院国防科技创新研究院 一种嵌入式人工智能计算框架及应用方法
CN112988382A (zh) * 2021-03-12 2021-06-18 中国科学院自动化研究所 基于分布式深度学习的医学影像智能分析系统
CN112988366A (zh) * 2019-12-12 2021-06-18 中科寒武纪科技股份有限公司 参数服务器、主从客户机、权值参数的处理方法及系统
CN113065666A (zh) * 2021-05-11 2021-07-02 海南善沙网络科技有限公司 一种神经网络机器学习模型训练用分布式计算方法
CN113297127A (zh) * 2020-02-21 2021-08-24 深圳致星科技有限公司 一种大规模分布式训练集群的参数更新方法、平台系统
CN113610210A (zh) * 2021-06-28 2021-11-05 深圳大学 基于智能网卡的深度学习训练网络迭代更新方法
US11699073B2 (en) 2018-12-29 2023-07-11 Cambricon Technologies Corporation Limited Network off-line model processing method, artificial intelligence processing device and related products
CN116680060A (zh) * 2023-08-02 2023-09-01 浪潮电子信息产业股份有限公司 面向异构计算系统的任务分配方法、装置、设备和介质
CN117376170A (zh) * 2023-12-06 2024-01-09 广州思涵信息科技有限公司 用于窄带网络的大并行ai分析方法、系统和计算机介质
CN118051779A (zh) * 2024-04-12 2024-05-17 清华大学 用于大模型训练的参数自动搜索方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570565A (zh) * 2016-11-21 2017-04-19 中国科学院计算机网络信息中心 一种面向大数据的深度学习方法及系统
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN107578094A (zh) * 2017-10-25 2018-01-12 济南浪潮高新科技投资发展有限公司 基于参数服务器和fpga实现神经网络分布式训练的方法
CN107704970A (zh) * 2017-10-24 2018-02-16 上海电器科学研究所(集团)有限公司 一种基于Spark的需求侧负荷预测方法
WO2018051349A1 (en) * 2016-09-15 2018-03-22 R.A.S Robotics Artificial Intelligence Ltd. Facility monitoring by a distributed robotic system
US20180108440A1 (en) * 2016-10-17 2018-04-19 Jeffrey Stevens Systems and methods for medical diagnosis and biomarker identification using physiological sensors and machine learning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018051349A1 (en) * 2016-09-15 2018-03-22 R.A.S Robotics Artificial Intelligence Ltd. Facility monitoring by a distributed robotic system
US20180108440A1 (en) * 2016-10-17 2018-04-19 Jeffrey Stevens Systems and methods for medical diagnosis and biomarker identification using physiological sensors and machine learning
CN106570565A (zh) * 2016-11-21 2017-04-19 中国科学院计算机网络信息中心 一种面向大数据的深度学习方法及系统
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN107704970A (zh) * 2017-10-24 2018-02-16 上海电器科学研究所(集团)有限公司 一种基于Spark的需求侧负荷预测方法
CN107578094A (zh) * 2017-10-25 2018-01-12 济南浪潮高新科技投资发展有限公司 基于参数服务器和fpga实现神经网络分布式训练的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KETKAR N: "《Introduction to pytorch》", 31 December 2017 *
朱虎明;李佩;焦李成;杨淑媛;侯彪: "深度神经网络并行化研究综述", 《计算机学报》 *

Cited By (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739514A (zh) * 2018-12-21 2019-05-10 北京中科寒武纪科技有限公司 参数处理方法及相关产品
CN109670583A (zh) * 2018-12-27 2019-04-23 浙江省公众信息产业有限公司 去中心化的数据分析方法、系统以及介质
US11699073B2 (en) 2018-12-29 2023-07-11 Cambricon Technologies Corporation Limited Network off-line model processing method, artificial intelligence processing device and related products
CN109871958A (zh) * 2019-02-01 2019-06-11 东软医疗系统股份有限公司 训练模型的方法、装置及设备
WO2020206958A1 (zh) * 2019-04-09 2020-10-15 苏宁云计算有限公司 一种基于迭代式学习的智能辅助标注方法及系统
CN110008028A (zh) * 2019-04-10 2019-07-12 北京旷视科技有限公司 计算资源分配方法、装置、计算机设备和存储介质
CN110188919A (zh) * 2019-04-22 2019-08-30 武汉大学 一种基于长短期记忆网络的负荷预测方法
CN110097188A (zh) * 2019-04-30 2019-08-06 科大讯飞股份有限公司 一种模型训练方法、工作节点及参数更新服务器
CN110059829A (zh) * 2019-04-30 2019-07-26 济南浪潮高新科技投资发展有限公司 一种异步参数服务器高效并行架构与方法
CN110263928A (zh) * 2019-06-18 2019-09-20 中国科学技术大学 保护数据隐私的基于移动设备的分布式深度学习训练方法
CN110276455A (zh) * 2019-06-19 2019-09-24 南京邮电大学 基于全局率权重的分布式深度学习系统
CN110276455B (zh) * 2019-06-19 2022-08-30 南京邮电大学 基于全局率权重的分布式深度学习系统
CN110503194A (zh) * 2019-08-09 2019-11-26 苏州浪潮智能科技有限公司 一种分布式并行训练的方法和系统
CN110674923A (zh) * 2019-08-15 2020-01-10 山东领能电子科技有限公司 一种多神经网络框架间的快速模型验证方法
CN112446484A (zh) * 2019-08-31 2021-03-05 深圳致星科技有限公司 一种多任务训练集群智能网络系统及集群网络优化方法
CN112541584B (zh) * 2019-09-23 2022-10-04 无锡江南计算技术研究所 深度神经网络模型并行模式选择方法
CN112541584A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 深度神经网络模型并行模式选择方法
CN110772797A (zh) * 2019-10-29 2020-02-11 腾讯科技(深圳)有限公司 一种数据处理方法、装置、服务器及可存储介质
CN110772797B (zh) * 2019-10-29 2021-09-28 腾讯科技(深圳)有限公司 一种数据处理方法、装置、服务器及可存储介质
CN111079892A (zh) * 2019-10-30 2020-04-28 华为技术有限公司 深度学习模型的训练方法、装置及系统
CN110956202A (zh) * 2019-11-13 2020-04-03 重庆大学 基于分布式学习的图像训练方法、系统、介质及智能设备
CN110956202B (zh) * 2019-11-13 2023-08-01 重庆大学 基于分布式学习的图像训练方法、系统、介质及智能设备
CN110929884A (zh) * 2019-11-22 2020-03-27 北京大学 一种基于列划分的分布式机器学习优化的分类方法及装置
CN110929884B (zh) * 2019-11-22 2023-05-16 北京大学 一种基于列划分的分布式机器学习优化的分类方法及装置
CN110954896A (zh) * 2019-12-02 2020-04-03 中国矿业大学(北京) 一种基于PyTorch的探地雷达层析成像加速方法
CN111158902A (zh) * 2019-12-09 2020-05-15 广东工业大学 一种移动边缘分布式机器学习系统和方法
CN111158902B (zh) * 2019-12-09 2022-05-10 广东工业大学 一种移动边缘分布式机器学习系统和方法
CN112988366A (zh) * 2019-12-12 2021-06-18 中科寒武纪科技股份有限公司 参数服务器、主从客户机、权值参数的处理方法及系统
CN111126621A (zh) * 2019-12-17 2020-05-08 北京九章云极科技有限公司 在线模型训练方法及装置
CN111131080A (zh) * 2019-12-26 2020-05-08 电子科技大学 分布式深度学习流调度方法、系统、设备
CN111353582A (zh) * 2020-02-19 2020-06-30 四川大学 一种基于粒子群算法的分布式深度学习参数更新方法
CN113297127A (zh) * 2020-02-21 2021-08-24 深圳致星科技有限公司 一种大规模分布式训练集群的参数更新方法、平台系统
CN111340235A (zh) * 2020-02-29 2020-06-26 苏州浪潮智能科技有限公司 一种兼容多种训练方式的深度学习分布式训练方法与系统
CN111444019B (zh) * 2020-03-31 2024-01-26 中国科学院自动化研究所 云端协同的深度学习模型分布式训练方法及系统
CN111444019A (zh) * 2020-03-31 2020-07-24 中国科学院自动化研究所 云端协同的深度学习模型分布式训练方法及系统
CN111985609A (zh) * 2020-07-06 2020-11-24 电子科技大学 一种基于TensorFlow框架的数据并行优化方法
CN112001774A (zh) * 2020-08-12 2020-11-27 浪潮软件股份有限公司 基于神经网络的烟草投放量研判方法及系统
CN112101536A (zh) * 2020-08-30 2020-12-18 西南电子技术研究所(中国电子科技集团公司第十研究所) 轻量级分布式多任务协同框架
CN112035261A (zh) * 2020-09-11 2020-12-04 杭州海康威视数字技术股份有限公司 数据处理方法及系统
CN112149808A (zh) * 2020-09-28 2020-12-29 上海交通大学 拓展单机图神经网络训练至分布式训练方法、系统及介质
CN112149808B (zh) * 2020-09-28 2022-10-14 上海交通大学 拓展单机图神经网络训练至分布式训练方法、系统及介质
CN112070238A (zh) * 2020-11-10 2020-12-11 鹏城实验室 准确的机器学习异步预测方法及系统、存储介质
CN112685504A (zh) * 2021-01-06 2021-04-20 广东工业大学 一种面向生产过程的分布式迁移图学习方法
CN112685504B (zh) * 2021-01-06 2021-10-08 广东工业大学 一种面向生产过程的分布式迁移图学习方法
US11367002B1 (en) 2021-01-06 2022-06-21 Guangdong University Of Technology Method for constructing and training decentralized migration diagram neural network model for production process
CN112734040A (zh) * 2021-01-22 2021-04-30 中国人民解放军军事科学院国防科技创新研究院 一种嵌入式人工智能计算框架及应用方法
CN112988382A (zh) * 2021-03-12 2021-06-18 中国科学院自动化研究所 基于分布式深度学习的医学影像智能分析系统
CN112988382B (zh) * 2021-03-12 2023-09-19 中国科学院自动化研究所 基于分布式深度学习的医学影像智能分析系统
CN113065666A (zh) * 2021-05-11 2021-07-02 海南善沙网络科技有限公司 一种神经网络机器学习模型训练用分布式计算方法
CN113610210A (zh) * 2021-06-28 2021-11-05 深圳大学 基于智能网卡的深度学习训练网络迭代更新方法
CN113610210B (zh) * 2021-06-28 2024-03-29 深圳大学 基于智能网卡的深度学习训练网络迭代更新方法
CN116680060A (zh) * 2023-08-02 2023-09-01 浪潮电子信息产业股份有限公司 面向异构计算系统的任务分配方法、装置、设备和介质
CN116680060B (zh) * 2023-08-02 2023-11-03 浪潮电子信息产业股份有限公司 面向异构计算系统的任务分配方法、装置、设备和介质
CN117376170A (zh) * 2023-12-06 2024-01-09 广州思涵信息科技有限公司 用于窄带网络的大并行ai分析方法、系统和计算机介质
CN117376170B (zh) * 2023-12-06 2024-03-08 广州思涵信息科技有限公司 用于窄带网络的大并行ai分析方法、系统和计算机介质
CN118051779A (zh) * 2024-04-12 2024-05-17 清华大学 用于大模型训练的参数自动搜索方法、装置及电子设备

Also Published As

Publication number Publication date
CN109032671B (zh) 2022-05-03

Similar Documents

Publication Publication Date Title
CN109032671A (zh) 一种基于数据并行策略的分布式深度学习方法及系统
Wang et al. A comprehensive survey on training acceleration for large machine learning models in IoT
CN109754060A (zh) 一种神经网络机器学习模型的训练方法及装置
CN108460457A (zh) 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN108111335B (zh) 一种调度和链接虚拟网络功能的方法及系统
Mechalikh et al. PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments
Zhan et al. Pipe-torch: Pipeline-based distributed deep learning in a gpu cluster with heterogeneous networking
Aravena et al. A distributed asynchronous algorithm for the two-stage stochastic unit commitment problem
CN106371924B (zh) 一种最小化MapReduce集群能耗的任务调度方法
CN107220107B (zh) 一种多时钟多任务并行实时仿真系统及方法
CN110705716A (zh) 一种多模型并行训练方法
CN109657794A (zh) 一种基于指令队列的分布式深度神经网络性能建模方法
Luo et al. Efficient pipeline planning for expedited distributed dnn training
CN117785490B (zh) 一种图神经网络模型的训练架构、方法、系统及服务器
Xu et al. Living with artificial intelligence: A paradigm shift toward future network traffic control
CN116245243A (zh) 一种格网驱动的卫星观测与数传任务解耦规划方法
CN103780640A (zh) 一种多媒体云计算仿真方法
Guicheng et al. Review on Dec-POMDP model for MARL algorithms
Qadeer et al. Deep-deterministic policy gradient based multi-resource allocation in edge-cloud system: a distributed approach
CN110012021B (zh) 一种移动边缘计算下的自适应计算迁移方法
Ahn et al. Scissionlite: Accelerating distributed deep neural networks using transfer layer
Zhou et al. A single-shot generalized device placement for large dataflow graphs
Salama A swarm intelligence based model for mobile cloud computing
Duan et al. Lightweight federated reinforcement learning for independent request scheduling in microgrids
Liu A Programming Model for the Cloud Platform

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220503