CN114217944A - 一种神经网络的针对模型并行的动态负载均衡方法 - Google Patents

一种神经网络的针对模型并行的动态负载均衡方法 Download PDF

Info

Publication number
CN114217944A
CN114217944A CN202110453555.1A CN202110453555A CN114217944A CN 114217944 A CN114217944 A CN 114217944A CN 202110453555 A CN202110453555 A CN 202110453555A CN 114217944 A CN114217944 A CN 114217944A
Authority
CN
China
Prior art keywords
node
operator
model
current
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.)
Pending
Application number
CN202110453555.1A
Other languages
English (en)
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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN202110453555.1A priority Critical patent/CN114217944A/zh
Publication of CN114217944A publication Critical patent/CN114217944A/zh
Pending legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种神经网络的针对模型并行的动态负载均衡方法,根据不同的模型和***的相应参数给出切分策略,并在训练过程中进一步迭代更新;根据不同的模型和***的相应参数,给出对模型网络的切分策略,在训练过程中进一步迭代更新。本发明能够根据不同的模型和***的相应参数自动给出较好的切分策略,无需手动调整模型,保证计算节点的负载均衡,大大提高了优化效率。

Description

一种神经网络的针对模型并行的动态负载均衡方法
技术领域
本发明涉及一种神经网络的针对模型并行的动态负载均衡方法,属于深度学习模型并行技术领域。
背景技术
如今的深度学习模型往往因为体量巨大而必须做并行化,分布式扩展技术可以有效的提高大规模数据的处理能力,目前深度学习分布式并行扩展模式主要包括数据并行、模型并行以及混合并行。
尽管数据并行应用最为广泛,但是对于某些模型参数太大,单个节点无法全部容纳的用例,就需要优先考虑模型并行的方法;模型并行模式的分布式训练将单个模型拆分到不同的节点上去,根据粒度的大小又分为将不同的网络层拆分到对应的节点,以及将同一层的不同参数切分到不同的节点中,并相应地实现不同节点间的中间输出的传递。
对于线性模型,可以将对应于不同数据维度的模型参数划分到不同的节点上,对于高度非线性的神经网络,各个工作节点不能相对独立地完成对自己负责的参数训练的更新,必须依赖与其他工作节点的协作,因此,需要寻找一个合适的切分方法才能以最小的代价实现。
当前主流的模型并行切分方法都是粗粒度的切分,仅仅将模型按照网络层划分分布到节点上,往往不能保证节点上的负载维持平衡。此外,由于模型的框架和***的架构各不相同,应用模型并行时往往需要算法工程师手工确定,这意味着需要进行反复的优化才能寻找到最低代价的负载均衡切分方法。同时对于不同的模型和***又要求算法工程师重新掌握,大大降低了优化效率。
发明内容
本发明的目的是提供一种神经网络的针对模型并行的动态负载均衡方法,以解决神经网络模型中模型并行的切分问题。
为达到上述目的,本发明采用的技术方案是:提供一种神经网络的针对模型并行的动态负载均衡方法,根据不同的模型和***的相应参数给出切分策略,并在训练过程中进一步迭代更新;
根据不同的模型和***的相应参数,给出对模型网络的切分策略,具体包括以下步骤:
S1、基于模型类型、参数量、网络集群拓扑带宽和节点数信息构建代价模型,用于评估每个算子的输入、输出和运行所需的计算时间,还用于评估相邻算子以及算子内部存在的通信时间;
S2、根据S1中得到的代价模型,为所有节点分配应计算的算子,具体步骤如下:
S21、代价模型对当前***中的所有可用的计算节点进行状态模拟,然后依次遍历代价模型的整个计算图,针对每个算子获得至少一个用于完成当前算子的可用节点作为计算节点;
S22、对于具有多个可用节点的算子,节点分配算法使用贪婪启发式算法来评估将其放置在每个可用节点上的预计完成时间,选取出预计最快完成当前算子的可用节点作为其映射的计算节点;
S23、对于每个算子,重复S22,继续为其余算子分配计算节点,直至为计算图中的每个算子完成计算节点分配;
在训练过程中进一步迭代更新,具体包括以下步骤:
S3、训练前为每个计算节点分配一个权重参数,用来表示分配到的负载量,权重越大分配到的负载量越多,初始时各个节点的权重参数相等;
S4、每轮训练时,首先根据上一步骤得到的当前节点的权重参数,通过代价模型找出所有计算节点的切分策略并开始训练,每个计算节点在计算完成后统计自身的等待时间;
S5、一轮训练完后,根据S4中得到的各个计算节点的最大等待时间和平均等待时间,判断当前的负载均衡是否最优,如果是,则保持当前的切分策略继续训练,如果不是最优,将根据各个计算节点间的等待时间的比重,调整各自的权重,从而改变每个计算节点应当分配到的负载量,随后通过代价模型重新计算出切分策略并执行下一轮训练;
S6、重复S4-S5直至在数次训练中不改变当前切分策略,即证明该切分策略在训练中动态达到最优。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,S21中,对于每个遍历到的算子,首先考虑其可用的节点列表,如果某个节点不提供当前算子的内核实现,那么当前设备对该算子就是不可用的。
2. 上述方案中,S22中,在评估过程中,贪婪启发式算法不仅考虑每个当前可用节点中等待执行的算子的预计完成时间,从而估算出当前算子的预计完成时间,还要考虑如果将算子放置在当前节点,那么将该算子的输入从其他节点传输过来的通信时间。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明实现了通用的基于神经网络模型并行的动态负载均衡,当应用模型并行方法时,能够根据不同的模型和***的相应参数自动给出较好的切分策略,无需手动调整模型,保证计算节点的负载均衡,大大提高了优化效率。
附图说明
附图1 为现有技术中模型并行方法示意图。
附图2为本发明一种针对模型并行的动态负载均衡方法的示意图。
具体实施方式
实施例:本发明提供一种神经网络的针对模型并行的动态负载均衡方法,根据不同的模型和***的相应参数给出切分策略,并在训练过程中进一步迭代更新;
根据不同的模型和***的相应参数,给出对模型网络的切分策略,具体包括以下步骤:
S1、基于模型类型、参数量、网络集群拓扑带宽和节点数信息构建代价模型,用于评估每个算子的输入、输出和运行所需的计算时间,还用于评估相邻算子以及算子内部存在的通信时间;
S2、根据S1中得到的代价模型,为所有节点分配应计算的算子,具体步骤如下:
S21、代价模型对当前***中的所有可用的计算节点进行状态模拟,然后依次遍历代价模型的整个计算图,针对每个算子获得至少一个用于完成当前算子的可用节点作为计算节点;
S22、对于具有多个可用节点的算子,节点分配算法使用贪婪启发式算法来评估将其放置在每个可用节点上的预计完成时间,选取出预计最快完成当前算子的可用节点作为其映射的计算节点;
S23、对于每个算子,重复S22,继续为其余算子分配计算节点,直至为计算图中的每个算子完成计算节点分配;
在训练过程中进一步迭代更新,具体包括以下步骤:
S3、训练前为每个计算节点分配一个权重参数,用来表示分配到的负载量,权重越大分配到的负载量越多,初始时各个节点的权重参数相等;
S4、每轮训练时,首先根据上一步骤得到的当前节点的权重参数,通过代价模型找出所有计算节点的切分策略并开始训练(即计算图中算子的分配方案,S2步骤),每个计算节点在计算完成后统计自身的等待时间;
S5、一轮训练完后,根据S4中得到的各个计算节点的最大等待时间和平均等待时间,判断当前的负载均衡是否最优,如果是,则保持当前的切分策略继续训练,如果不是最优,将根据各个计算节点间的等待时间的比重,调整各自的权重,从而改变每个计算节点应当分配到的负载量,随后通过代价模型重新计算出切分策略并执行下一轮训练;
S6、重复S4-S5直至在数次训练中不改变当前切分策略,即证明该切分策略在训练中动态达到最优。
S21中,对于每个遍历到的算子,首先考虑其可用的节点列表,如果某个节点不提供当前算子的内核实现,那么当前设备对该算子就是不可用的。
S22中,在评估过程中,贪婪启发式算法不仅考虑每个当前可用节点中等待执行的算子的预计完成时间,从而估算出当前算子的预计完成时间,还要考虑如果将算子放置在当前节点,那么将该算子的输入从其他节点传输过来的通信时间。
对上述实施例的进一步解释如下:
本发明能够在训练过程中根据各个节点计算完成后的等待时间,结合网络模型的类型、参数数据量和***的可用内存、节点数等参数,自动分析出更优的模型切分策略,从而减少下一轮训练的节点等待时间,直至各个节点的负载达到平衡。
本发明提出基于模型并行的动态负载均衡,首先构建了基于模型类型、参数量、网络集群拓扑带宽、节点数等信息的代价模型,基于内存的计算开销和通信开销来对时间建模,通过贪婪式启发算法为每个节点分配算子,并计算出不同的切分策略下模型在***中不同节点的近似训练时间,评估当前策略的负载均衡程度。
通过代价模型,能够读入每个算子的输入、输出和运行所需的计算时间,然后运行整个计算图,最终使用贪婪的启发式算法为每个节点分配算子,并且此分配方案会作为最终的实际执行中的分配方案。
代价模型方案对当前节点中的所有可用的计算节点进行状态模拟,然后依次遍历整个计算图,对于每个遍历到的算子,首先考虑其可用的节点列表,如果某个节点不提供当前算子的内核实现,那么当前设备对该算子就是不可用的,对于具有多个可用节点的算子,节点分配算法使用贪婪启发式算法来评估将其放置在每个可用节点上的预计完成时间,从而选取出预计最快完成当前算子的可用节点作为其映射的计算节点。
在此过程中,该算法不仅考虑每个当前可用节点中等待执行的算子的预计完成时间,从而估算出当前算子的预计完成时间,而且还要考虑如果将算子放置在当前节点,那么将该算子的输入从其他节点传输过来的通信成本,然后重复该映射过程继续为其余算子分配计算节点,直至为图中的每个算子完成节点分配。
训练前为各个节点分配一个权重参数,用来表示分配到的负载量,权重越大分配到的负载量越多,初始时各个节点的权重参数相等。
每轮训练时,首先根据当前节点的权重,通过代价模型找出不同节点的切分策略并开始训练,每个节点在计算完成后会统计自身的等待时间。
一轮训练完后,根据各个节点的最大等待时间和平均等待时间判断当前的负载均衡是否最优,如果是,则保持当前的切分策略继续训练,如果不是最优,将用各个节点间的等待时间的比重来调整各自的权重,从而改变分配到的负载量,随后通过代价模型重新计算出切分策略并执行下一轮训练。
采用上述一种神经网络的针对模型并行的动态负载均衡方法时,其实现了通用的基于神经网络模型并行的动态负载均衡,当应用模型并行方法时,能够根据不同的模型和***的相应参数自动给出较好的切分策略,无需手动调整模型,保证计算节点的负载均衡,大大提高了优化效率。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
模型并行:不同计算节点负责网络模型的不同部分,共同训练同一批数据,计算过程中的中间数据需要在不同计算节点之间传递。
负载均衡:按照模型的计算成本、计算时间和***的节点数等参数来维持各个节点上的计算量的平衡。
batch_size:深度学习模型进行训练时一次训练所选取的样本数量。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (3)

1.一种神经网络的针对模型并行的动态负载均衡方法,其特征在于:根据不同的模型和***的相应参数给出切分策略,并在训练过程中进一步迭代更新;
根据不同的模型和***的相应参数,给出对模型网络的切分策略,具体包括以下步骤:
S1、基于模型类型、参数量、网络集群拓扑带宽和节点数信息构建代价模型,用于评估每个算子的输入、输出和运行所需的计算时间,还用于评估相邻算子以及算子内部存在的通信时间;
S2、根据S1中得到的代价模型,为所有节点分配应计算的算子,具体步骤如下:
S21、代价模型对当前***中的所有可用的计算节点进行状态模拟,然后依次遍历代价模型的整个计算图,针对每个算子获得至少一个用于完成当前算子的可用节点作为计算节点;
S22、对于具有多个可用节点的算子,节点分配算法使用贪婪启发式算法来评估将其放置在每个可用节点上的预计完成时间,选取出预计最快完成当前算子的可用节点作为其映射的计算节点;
S23、对于每个算子,重复S22,继续为其余算子分配计算节点,直至为计算图中的每个算子完成计算节点分配;
在训练过程中进一步迭代更新,具体包括以下步骤:
S3、训练前为每个计算节点分配一个权重参数,用来表示分配到的负载量,权重越大分配到的负载量越多,初始时各个节点的权重参数相等;
S4、每轮训练时,首先根据上一步骤得到的当前节点的权重参数,通过代价模型找出所有计算节点的切分策略并开始训练,每个计算节点在计算完成后统计自身的等待时间;
S5、一轮训练完后,根据S4中得到的各个计算节点的最大等待时间和平均等待时间,判断当前的负载均衡是否最优,如果是,则保持当前的切分策略继续训练,如果不是最优,将根据各个计算节点间的等待时间的比重,调整各自的权重,从而改变每个计算节点应当分配到的负载量,随后通过代价模型重新计算出切分策略并执行下一轮训练;
S6、重复S4-S5直至在数次训练中不改变当前切分策略,即证明该切分策略在训练中动态达到最优。
2.根据权利要求1所述的一种神经网络的针对模型并行的动态负载均衡方法,其特征在于:S21中,对于每个遍历到的算子,首先考虑其可用的节点列表,如果某个节点不提供当前算子的内核实现,那么当前设备对该算子就是不可用的。
3.根据权利要求1所述的一种神经网络的针对模型并行的动态负载均衡方法,其特征在于:S22中,在评估过程中,贪婪启发式算法不仅考虑每个当前可用节点中等待执行的算子的预计完成时间,从而估算出当前算子的预计完成时间,还要考虑如果将算子放置在当前节点,那么将该算子的输入从其他节点传输过来的通信时间。
CN202110453555.1A 2021-04-26 2021-04-26 一种神经网络的针对模型并行的动态负载均衡方法 Pending CN114217944A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110453555.1A CN114217944A (zh) 2021-04-26 2021-04-26 一种神经网络的针对模型并行的动态负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110453555.1A CN114217944A (zh) 2021-04-26 2021-04-26 一种神经网络的针对模型并行的动态负载均衡方法

Publications (1)

Publication Number Publication Date
CN114217944A true CN114217944A (zh) 2022-03-22

Family

ID=80695843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110453555.1A Pending CN114217944A (zh) 2021-04-26 2021-04-26 一种神经网络的针对模型并行的动态负载均衡方法

Country Status (1)

Country Link
CN (1) CN114217944A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954721A (zh) * 2023-09-20 2023-10-27 天津南大通用数据技术股份有限公司 一种执行器多模态算子异步非阻塞***方法
CN117032938A (zh) * 2023-10-08 2023-11-10 北京燧原智能科技有限公司 一种算子的并行调度方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954721A (zh) * 2023-09-20 2023-10-27 天津南大通用数据技术股份有限公司 一种执行器多模态算子异步非阻塞***方法
CN116954721B (zh) * 2023-09-20 2023-12-15 天津南大通用数据技术股份有限公司 一种执行器多模态算子异步非阻塞***方法
CN117032938A (zh) * 2023-10-08 2023-11-10 北京燧原智能科技有限公司 一种算子的并行调度方法、装置、电子设备及存储介质
CN117032938B (zh) * 2023-10-08 2024-01-09 北京燧原智能科技有限公司 一种算子的并行调度方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109491790B (zh) 基于容器的工业物联网边缘计算资源分配方法及***
CN109388484B (zh) 一种基于Deep Q-network算法的多资源云作业调度方法
Gai et al. Fusion of cognitive wireless networks and edge computing
CN111064633B (zh) 一种云边协同电力信息通信设备自动化测试资源分配方法
CN102724220B (zh) 任务协同方法、装置及物联网***
CN111106999A (zh) 一种ip-光网络通信业务联合分配方法及装置
CN104869151A (zh) 一种业务卸载方法及***
CN106227599B (zh) 一种云计算***中资源调度的方法及***
CN114217944A (zh) 一种神经网络的针对模型并行的动态负载均衡方法
CN112541584B (zh) 深度神经网络模型并行模式选择方法
CN113821332B (zh) 自动机器学习***效能调优方法、装置、设备及介质
CN113806018A (zh) 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN109118097B (zh) 一种可靠性维修性保障性评估方法和装置
CN106325976A (zh) 一种渲染任务调度处理方法及服务器
CN110198280A (zh) 一种基于bp神经网络的sdn链路分配方法
CN103530317A (zh) 云存储***中一种能耗自适应的副本管理方法
CN108055701A (zh) 一种资源调度方法及基站
CN113179175A (zh) 一种电力通信网业务的实时带宽预测方法及装置
CN102745192B (zh) 一种混合动力车辆的分布式控制***的任务分配***
CN115543626A (zh) 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法
CN111340192A (zh) 网络路径分配模型训练方法、路径分配方法、以及装置
CN112417748B (zh) 一种调度自动驾驶仿真任务的方法、***、设备及介质
CN114629767A (zh) 电力调度网络仿真方法、装置、计算机设备和存储介质
CN102774376B (zh) 一种混合动力车辆的分布式控制***的任务分配方法
CN112213956A (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