CN113138832A - 一种基于重置训练数据传输网络的分布式训练方法及系统 - Google Patents

一种基于重置训练数据传输网络的分布式训练方法及系统 Download PDF

Info

Publication number
CN113138832A
CN113138832A CN202010056054.5A CN202010056054A CN113138832A CN 113138832 A CN113138832 A CN 113138832A CN 202010056054 A CN202010056054 A CN 202010056054A CN 113138832 A CN113138832 A CN 113138832A
Authority
CN
China
Prior art keywords
training
node
network configuration
rdma network
rdma
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
CN202010056054.5A
Other languages
English (en)
Other versions
CN113138832B (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.)
Shenzhen Zhixing Technology Co Ltd
Original Assignee
Shenzhen Zhixing Technology Co Ltd
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 Shenzhen Zhixing Technology Co Ltd filed Critical Shenzhen Zhixing Technology Co Ltd
Priority to CN202010056054.5A priority Critical patent/CN113138832B/zh
Publication of CN113138832A publication Critical patent/CN113138832A/zh
Application granted granted Critical
Publication of CN113138832B publication Critical patent/CN113138832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供一种基于重置训练数据传输网络的分布式训练方法及系统。其中,首先提供一种在分布式训练过程中重置训练数据传输网络的方法,通过使所有运行着训练进程的虚拟节点构成一个逻辑环和分别从逻辑环的起始节点起向下游的正向、从终止节点起向上游的反向收集全局RDMA网络配置,以及各节点训练进程根据全局RDMA网络配置重置训练集群中的训练数据传输网络配置为RDMA网络,实现在分布式训练过程中的训练数据传输网络重置;进而在此基础上,提供一种基于高效通信网络的加速分布式训练方法以及加速分布式训练系统,实现训练过程中以高效RDMA网络进行训练数据传输的加速分布式训练。

Description

一种基于重置训练数据传输网络的分布式训练方法及系统
技术领域
本发明涉及AI模型分布式训练技术领域;具体地,涉及一种基于重置训练数据传输网络的分布式训练方法及系统。
背景技术
近年来,人工智能,特别是深度学习,在图像识别,语言处理等领域取得重大突破,并且开始广泛应用于商业活动中。深度学习能够取得如此重大突破的一个关键原因是深度学习在训练过程中处理了大量样本,从样本中学习到样本之中包含的众多特征。若是仅使用单台服务器运行深度学习训练,那么其处理完大量样本过程中将耗费大量时间,严重影响工作效率。因此,既有必要将训练扩展到多台服务中进行,每台服务器处理不同的样本,加快样本处理速度,缩短深度学习训练时间,这也就是最近兴起的分布式训练。深度学习可以理解为是基于梯度的学习:深度学习训练过程中处理样本,经过一系列复杂运算,可以得到深度学习过程中一个至关重要的中间结果梯度。在分布式训练过程中的关键即每台服务器需要将其计算得到的梯度分享给其他服务器。
由于要保证各节点(例如前面述及的服务器节点)上的梯度等参数的一致性,一个用于分布式训练的服务器集群,其部署运行环境、启动训练过程中都有着大量网络配置、分布式训练配置等工作,需要运维人员和算法工程师们手动实施。如此方法配置,是一定会严重制约其部署和训练效率。
容器技术的出现,不仅能够实现容器集群的快速部署,同时它也是一种轻量化的解决方案,且能够有效整合和管理着裸机资源。Kubernetes即为一种典型的基于容器技术的用于管理多主机上的容器化的应用。以Kubernetes平台运行分布式机器学习训练任务为例,Kubernetes不仅大大简化深度学习环境部署过程,还能够实现分布式训练的快速启动,最大限度减少运维人员和算法工程师们手动操作,进而提高训练效率。
不同于在物理服务器集群上部署分布式训练,在如Kubernetes平台等的这类容器云平台部署分布式训练任务时,通常是先配置分布式训练任务,再依据其资源需求向平台申请资源和和为分布式训练任务中的各子任务创建对应的虚拟节点(即容器或容器组,例如Pod——Kubernetes平台的最小调度单位,其实质上为包含一个或者多个容器的逻辑主机),以上也即是将分布式训练任务调度到容器云平台的过程。此外,为保障训练过程中各虚拟节点上的子任务间训练参数等的一致性,还需要为之生成一系列分布式训练配置;例如,在Kubernetes平台部署分布式tensorflow任务时,即是通过Pod的环境变量TF_CONFIG实现各Pod上任务训练参数的一致性的。因为是设置分布式训练任务在前而用于训练的容器集群创建在后,所以配置中用于虚拟节点间互联通信的网络连接配置,并非虚拟节点实际的网络地址这样网络配置信息,而仅是一个连接访问服务的字符串;而上述虚拟节点间的通信,实际上是通过上述的连接访问服务字符串请求容器云平台提供的连接访问服务实现的;这其中的虚拟节点间通信,自然也包括后续的训练过程中的各虚拟节点间的互联通信。
在分布式训练过程中,每个节点中的训练进程将其计算的梯度发送给其他节点和接收其他节点发来的梯度的过程,将会产生大量网络通信,并且随着分布式训练集群规模越来越大,其中产生的网络通信成倍增加,逐渐成为制约深度学习分布式训练效率的主要因素。这主要是因为分布式训练过程中网络通信往往是基于TCP/IP协议实现的,而基于TCP/IP协议的传统网络通信,需要系统内核和网络协议栈接入,其中涉及大量不必要的数据拷贝,特别是随着样本数据集的爆炸性增长、样本数据集Batch Size的几何倍数增大,不仅是其本身通信效率低下,而且还将大量占用CPU资源。因此,传统的基于TCP/IP协议的网络通信,越来越不适用今日之分布式训练。
远程直接内存访问技术,即RDMA技术,则可以省去数据传输过程中不必要的数据拷贝;同时,由于其将数据读取等业务逻辑卸载到网卡中,故数据传输过程中也不再需要CPU参与。因此,较之传统网络通信,RDMA网络大大提升网络通信速度。将其应用于深度学习分布式训练,可以加快分布式训练过程中各个节点间的参数、梯度交换过程,大幅降低传统网络通信瓶颈对于分布式训练效率的不利影响。其中使在物理服务器集群上部署的分布式训练使用RDMA网络,并不存在十分复杂的技术问题。具体而言,在部署时提供额外的RDMA网络,并获取集群RDMA网络配置,将其对应地设为分布式训练过程中训练数据传输的网络即可。
然而,在容器云平台部署分布式训练任务时,因为是设置分布式训练任务在前而构成训练集群的虚拟节点创建在后,所以在训练集群上运行的各分布式训练应用是无法获知训练集群的RDMA网络配置的,那么显然也是无法使用RDMA网络传输训练数据的。
发明内容
有鉴于此,本发明提供一种基于重置训练数据传输网络的分布式训练方法及系统。其中,本发明拟提供一种在分布式训练过程中重置训练数据传输网络的方法,将默认的传统网络替换为高效的RDMA网络;以及在以上述方法实现的加速通信基础上,提供一种基于高效通信网络的加速分布式训练方法以及加速分布式训练系统。
一方面,本发明实施例提供一种在分布式训练过程中重置训练数据传输网络的方法,其中,通过使所有运行着训练进程的虚拟节点构成一个逻辑环和确定逻辑环的起始节点、终止节点,以及分别从起始节点起向下游直到终止节点递次地传递上游节点RDMA网络配置到下游相邻节点,和从终止节点起向上游直到起始节点递次地传递下游节点RDMA网络配置到上游相邻节点,使各节点训练进程经过上述的正向和反向收集均获得训练集群的全局RDMA网络配置,并根据全局RDMA网络配置生成新的训练数据传输网络配置以更新默认的训练数据传输网络配置,即重置训练集群中的训练数据传输网络为RDMA网络。其中,
上述的在分布式训练过程中重置训练数据传输网络的方法,具体包括:
在分布式训练启动后和各虚拟节点上运行的分布式训练应用执行训练运算前,
将所有运行着训练进程的虚拟节点分别视为独立的逻辑节点,构建一个逻辑环,使其包括上述的全部虚拟节点;
确定逻辑环中任意的相邻的两个虚拟节点分别为起始节点、终止节点;
从起始节点起向下游,正向收集逻辑环中各节点的RDMA网络配置:
从起始节点起向下游直到终止节点,其中的各训练进程递次地获取本虚拟节点RDMA网络配置和接收自上游相邻节点训练进程发来的上游节点的RDMA网络配置(其中,起始节点视为无上游相邻节点,只需获取其自身虚拟节点的RDMA网络配置即可);并将它们一并作为下游相邻节点的上游节点RDMA网络配置,发送给下游相邻节点的训练进程;直至终止节点的训练进程获得逻辑环内全部节点的RDMA网络配置;
从终止节点起向上游,反向收集逻辑环中各节点的RDMA网络配置:
从终止节点起向上游直到起始节点,其中的各训练进程递次地获取本虚拟节点RDMA网络配置和接收自下游相邻节点训练进程发来的下游节点的RDMA网络配置(其中,终止节点视为无下游相邻节点,只需获取其自身虚拟节点的RDMA网络配置即可);并将它们一并作为上游相邻节点的下游节点RDMA网络配置,发送给上游相邻节点的训练进程;直至起始节点的训练进程获得逻辑环内全部节点的RDMA网络配置;
经过上述的正向和反向收集后,各节点训练进程均获得逻辑环中各节点的RDMA网络配置各节点,也即训练集群的全局RDMA网络配置;各节点训练进程,根据上述的全局RDMA网络配置生成新的包括RDMA网络配置的训练数据传输网络配置,替换默认的训练数据传输网络配置,以实现重置训练集群中的训练数据传输网络为RDMA网络的目的。
另一方面,基于第一方面提供的在分布式训练过程中重置训练数据传输网络的方法实现的加速通信,本发明实施例提供一种基于高效通信网络的加速分布式训练方法。
结合第一方面,上述的基于高效通信网络的加速分布式训练方法,包括:
将分布式训练任务调度到容器云平台;
在训练集群启动分布式训练应用;
在各虚拟节点上的训练应用执行训练前,
以第一方面述及的方法重置上述训练集群的训练数据传输网络配置为RDMA网络;
在训练数据传输网络配置被重置为RDMA网络后,
各训练应用即开始执行训练运算以及训练运算相关的操作等具体训练业务逻辑;
在之后的训练过程中,通过RDMA网络,进行各训练进程间的训练数据的通信。
再一方面,基于第一方面提供的在分布式训练过程中重置训练数据传输网络的方法实现的加速通信,本发明实施例提供一种基于高效通信网络的加速分布式训练系统。
结合第一、第二方面,上述的基于高效通信网络的加速分布式训练系统,包括:
网络重置单元,用于在分布式训练启动后和训练集群各虚拟节点上分布式训练应用执行训练前,重置训练集群的训练数据传输网络配置为RDMA网络;具体地,上述的网络重置单元,通过执行第一方面述及方法中的操作,实现上述的网络重置;
在上述网络重置单元将训练集群的训练数据传输网络配置为RDMA网络后,所述的加速分布式训练系统,通过训练集群各虚拟节点上的分布式训练应用开始执行训练运算以及训练运算相关的操作等具体训练业务逻辑,以及在后续训练过程中通过RDMA网络进行各训练进程间的训练数据的通信,实现高效RDMA网络的加速分布式训练。
上述实施例提供的在分布式训练过程中重置训练数据传输网络的方法、及在其基础上上实现的基于高效通信网络的加速分布式训练方法、系统,其中通过使所有运行着训练进程的虚拟节点构成一个逻辑环和分别从逻辑环的起始节点起向下游的正向、从终止节点起向上游的反向收集全局RDMA网络配置,以及各节点训练进程根据全局RDMA网络配置重置训练集群中的训练数据传输网络配置为RDMA网络,实现在分布式训练过程中的训练数据传输网络重置;以及进而在此基础上实现训练过程中基于高效RDMA网络进行训练数据传输的加速分布式训练。
下面通过附图、具体实施例对本发明的技术方案做进一步的描述。
附图说明
为更加清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明中一部分实施例或现有技术描述中涉及的附图做简单介绍。
图1为基于本发明一些优选实施例提供的一种基于高效通信网络的加速分布式训练方法的流程示意图。
具体实施方式
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下为本发明的一些优选实施例。
这些优选实施例中的一些提供一种在分布式训练过程中重置训练数据传输网络的方法。该方法具体包括:
当分布式训练任务被调度到容器云平台,
在各虚拟节点启动分布式训练应用后和分布式训练应用执行训练前,将所有运行训练进程的虚拟节点均视为独立的逻辑节点,构建一个逻辑环,使其包括全部的上述虚拟节点;
选择逻辑环中任意的相邻的两个虚拟节点,分别作为逻辑环的起始节点、终止节点;
从起始节点起向下游方向,正向收集逻辑环中各节点的RDMA网络配置:
由起始节点的训练进程获取本虚拟节点的RDMA网络配置,并将之发送给与其相邻的下游节点(记做第二节点);第二节点接收上游相邻节点(即起始节点)发来的上游节点RDMA网络配置,并获取本节点的RDMA网络配置,将它们一并作为其下游相邻节点(这里即是指第三节点)的上游节点RDMA网络配置,发送给第三节点的训练进程;……,上述传递和收集过程由后续节点的训练进程递次进行,直至终止节点的训练进程获得逻辑环中全部节点的RDMA网络配置;
以及从终止节点起向上游方向,反向收集逻辑环中各节点的RDMA网络配置:
由终止节点(记做第N节点)的训练进程获取本虚拟节点的RDMA网络配置,并将之发送给与其相邻的上游节点(记做第N-1节点);第N-1节点接收下游相邻节点(即终止节点)发来的下游节点RDMA网络配置,并获取本节点的RDMA网络配置,将它们一并作为其上游相邻节点(这里即是指第N-2节点)的下游节点RDMA网络配置,发送给第N-2节点的训练进程;……,上述传递和收集过程由后续节点的训练进程递次进行,直至起始节点的训练进程获得逻辑环中全部节点的RDMA网络配置;
经过上述的正向和反向收集后,各节点训练进程均获得逻辑环中各节点的RDMA网络配置各节点,也即训练集群的全局RDMA网络配置;
根据上述的全局RDMA网络配置,各节点训练进程生成新的包括RDMA网络配置的训练数据传输网络配置,替换训练集群中默认的训练数据传输网络配置,以实现重置训练集群中的训练数据传输网络为RDMA网络的目的。其中,上述更新训练数据传输网络配置的一种简单的实现方式,可以是:修改默认训练数据传输网络配置中的连接访问服务字符串为全局RDMA网络配置中对应节点的RDMA网络配置。
但是,上述的优选实施例提供的在分布式训练过程中重置训练数据传输网络的方法中,在其中的网络重置过程中,不免会因节点或节点间链路故障而使逻辑环中的一些节点无法通信,那么显然不仅会在正向或反向收集过程中无法收集该节点的RDMA网络配置,而且会使后续收集无法进行致使整个网络重置过程失败;通常在这种情况下,训练数据传输网络重置过程会重置失败并导致整个训练退出。此外,在网络重置过程中,也不免出现其中的训练进程在获取本节点RDMA网络配置时,由于某些原因并没能获取的本节点RDMA网络配置,那么,其如果未选择报错退出而继续网络重置的话,那么将出现混合网络的训练集群,显然也是不利于训练的。
因此,进一步地,在上述的优选实施例中的一些提供的一种在分布式训练过程中重置训练数据传输网络的方法中,
在正向/反向收集RDMA网络配置的过程中,若其中的训练进程发现其下游相邻节点/上游相邻节点无法通信,则跳过该下游相邻节点/上游相邻节点,向该下游相邻节点的下游相邻节点/该上游相邻节点的上游相邻节点的训练进程发送上游节点RDMA网络配置/下游节点RDMA网络配置;若仍不通,则继续跳过,直至有下游节点/上游节点接收其发送的上游RDMA网络配置/下游RDMA网络配置。
以及进一步地,在上述的优选实施例中的一些提供的一种在分布式训练过程中重置训练数据传输网络的方法中,
在根据全局RDMA网络配置重置训练数据传输网络配置前,各训练进程分别删除在全局RDMA网络配置中没有RDMA网络配置的节点、收集的上游节点或下游节点RDMA网络配置中缺失的节点(即上述实施例中因单向无法通信或双向均无法通信而在收集过程中被跳过为被收集的节点);根据删除后的全局RDMA网络配置,生成新的训练数据传输网络配置。
进一步地,在上述的优选实施例中的一些提供的一种在分布式训练过程中重置训练数据传输网络的方法中,
其中的正向收集各节点RDMA网络配置的过程与反向收集各节点RDMA网络配置的过程,可以是同步的;两过程可以同时开始、执行,以提高网络重置的效率。
进一步地,在上述的优选实施例中的一些提供的一种在分布式训练过程中重置训练数据传输网络的方法中,其中的各训练进程在获取、接收RDMA网络配置、更新训练数据传输网络配置后,即时保存。例如,根据生成的新的训练数据传输网络配置修改节点操作系统的环境变量,将新的训练数据传输网络配置保存在节点操作系统的环境变量中。
进一步地,在上述的优选实施例中的一些提供的一种在分布式训练过程中重置训练数据传输网络的方法中,其中的训练数据传输主要包括分布式训练过程中AI模型的参数交换;例如深度学习中的梯度聚合等。
在上述优选实施例提供的在分布式训练过程中重置训练数据传输网络的方法的基础上,本发明的另一些优选实施例提供一种基于高效通信网络的加速分布式训练方法。如图1所示,该方法包括:
将分布式训练任务调度到容器云平台;
在训练集群启动分布式训练应用;
在各虚拟节点上的训练应用执行训练前,以上述任一实施例述及的在分布式训练过程中重置训练数据传输网络的方法重置训练集群的训练数据传输网络配置为RDMA网络;
在训练数据传输网络配置被重置为RDMA网络后,
各训练应用即在本节点开始执行训练运算以及训练运算相关的操作等具体训练业务逻辑;以及在之后的训练过程中,通过RDMA网络,进行各训练进程间的训练数据的通信。
在上述的优选实施例提供的基于高效通信网络的加速分布式训练方法中,在其中的重置训练数据传输网络的过程中,前面也提到了在正向或反向收集过程可能出现的逻辑环中的一些节点无法与其他相邻节点通信的情况,以及可能出现逻辑环中节点未能获取到自身RDMA网络配置的情况;虽然前面也有一些实施例提出在重置训练数据传输网络过程中,通过跳过无法通信的节点以及在全局RDMA网络配置重置训练数据传输网络配置前,删除全局RDMA网络配置中没有RDMA网络配置的节点、收集的上游节点或下游节点RDMA网络配置中因跳过而缺失的节点,然后在根据新的全局RDMA网络配置重置训练数据传输网络。但是,在训练集群重置训练数据传输网络和被重置的节点开始执行的分布式训练后,这些节点训练进程却仍在等待其他节点通信,且这些节点仍将占用着容器云平台的资源,却并未参与也无法参与RDMA网络下的训练。因此,进一步地,在上述的优选实施例中的一些提供的一种基于高效通信网络的加速分布式训练方法中,使未参与重置网络后训练的这些“空转节点”的训练进程退出,并通知容器云平台销毁该虚拟节点(即容器或容器组),释放占用资源。其中,可以通过其中的训练进程与其他节点的通信情况,来判断其是否为“空转节点、有无参与RDMA网络下的训练。若其中的训练进程在一定时间内都没有收到来自其他节点的通信,则退出训练,并通知容器云平台销毁该虚拟节点(即容器或容器组),释放占用资源。另外,更具体地,还可以通过在一定的时间内是否收到上、下游节点RDMA网络配置来判断除起始节点和终止节点外的节点是否与其相邻节点连接,即是否属于重置训练数据传输网络过程中无法与相邻节点(双向)通信的“空转节点”;其中,若在一定时间内未收到上游节点和下游节点RDMA网络配置或仅收到上游节点或下游节点RDMA网络配置,则认为其完全不能通信或单向通信,判断其为“空转节点”,使其退出训练,并通知容器云平台销毁该虚拟节点(即容器或容器组),释放占用资源。
在上述优选实施例提供的在分布式训练过程中重置训练数据传输网络的方法的基础上,本发明的又一些优选实施例提供一种基于高效通信网络的加速分布式训练系统。该系统包括:
网络重置单元,用于在分布式训练启动后和训练集群各虚拟节点上分布式训练应用执行训练前,重置训练集群的训练数据传输网络配置为RDMA网络;其中,上述的网络重置单元,通过执行上述任一实施例述及的在分布式训练过程中重置训练数据传输网络的方法中的操作,实现网络重置的目的;
在上述的网络重置单元将训练集群的训练数据传输网络配置为RDMA网络后,所述的加速分布式训练系统,通过训练集群各虚拟节点上的分布式训练应用开始执行训练运算以及训练运算相关的操作等具体训练业务逻辑,以及在后续训练过程中通过RDMA网络进行各训练进程间的训练数据的通信,实现高效RDMA网络的加速分布式训练。
进一步地,在上述的优选实施例中的一些提供的一种基于高效通信网络的加速分布式训练系统中,还包括:
资源优化单元,用于在分布式训练过程中处理那些经训练数据传输网络重置后未能参与分布式训练的节点(即前面述及的“空转节点”);例如,没有RDMA网络配置的节点、在重置训练数据传输网络过程中正、反向收集时因无法与相邻节点(双向)通信而被跳过的节点。
具体而言,其通过各节点的训练进程的跨节点通信情况判断哪些节点为“空转节点”,未参与分布式训练;其中,若有节点的训练进程在一定时间内都没有收到来自其他节点的通信,则退出训练,并通知容器云平台销毁该虚拟节点(即容器或容器组),释放占用资源。或者,直接通过在一定的时间内是否收到上、下游节点RDMA网络配置来判断除起始节点和终止节点外的节点是否与其相邻节点连接,即是否属于重置训练数据传输网络过程中无法与相邻节点(双向)通信的“空转节点”:若在一定时间内未收到上游节点和下游节点RDMA网络配置或仅收到上游节点或下游节点RDMA网络配置,则认为其完全不能通信或单向通信,判断其为“空转节点”,使其退出训练,并通知容器云平台销毁该虚拟节点(即容器或容器组),释放占用资源。
以下为上述优选实施例中的一个的具体实现,其以在Kubernetes平台部署分布式训练任务为例,其中:
当分布式任务被调度到容器云平台;
用于分布式训练的Pod以及由其构成的训练集群被创建;
在各Pod中启动运行训练进程,
在上述训练进程执行训练运行相关的构建图以及训练运算等业务逻辑前,
所有训练进程根据深度学习框架提供的功能,生成各自的任务ID,并构建逻辑环;
预先定义其中的两个相邻的ID的Pod分别为起始节点、终止节点;例如,其中的任务ID编号0-M,且根据该顺序构建逻辑环,定义其中的为0和为M的节点为起始节点、终止节点;
每个训练进程根据任务ID,确认其是否为起始节点、终止节点;
每个训练进程分别获取各自的包含RDMA网卡地址(一般是RDMA网络IP)等的网络配置信息;
每个训练进程执行RDMA网络配置的正向收集传递,其过程如下:
若执行的训练进程位于起始节点,则将其RDMA网络配置信息发送给其下游相邻节点(即ID为1的节点);
若执行的训练进程既不位于起始节点也不位于终止节点(即ID为1至M-1的节点),则等待上游相邻节点发来的RDMA网络配置信息,并加入自身RDMA网络配置信息,生成新的上游节点RDMA网络配置信息;以及将新的上游节点RDMA网络配置信息发送给其下游相邻节点;
若执行的训练进程位于终止节点,则等待上游相邻节点(即ID为M-1的节点)发来的上游节点RDMA网络配置信息,加入自身RDMA网络配置信息,生成全局RDMA网络配置信息;
如果在上述正向收集传递过程中,其中的某个训练进程发现下游相邻节点的训练进程无法通信,则跳过该下游相邻节点,发送给该下游相邻节点的下游相邻节点的训练进程;若仍不通,则继续跳过,直至有下游节点接收其发送的上游RDMA网络配置;
与此同时,每个训练进程也执行RDMA网络配置的反向收集传递,其过程如下:
若执行的训练进程位于终止节点,则将其RDMA网络配置信息发送给其上游相邻节点(即ID为M的节点);
若执行的训练进程既不位于起始节点也不位于终止节点(即ID为1至M-1的节点),则等待下游相邻节点发来的RDMA网络配置信息,并加入自身RDMA网络配置信息,生成新的下游节点RDMA网络配置信息;以及将新的下游节点RDMA网络配置信息发送给其上游相邻节点;
若执行的训练进程位于起始节点,则等待下游相邻节点(即ID为1的节点)发来的下游节点RDMA网络配置信息,加入自身RDMA网络配置信息,生成全局RDMA网络配置信息;
如果在上述反向收集传递过程中,其中的某个训练进程发现上游相邻节点的训练进程无法通信,则跳过该上游相邻节点,发送给该上游相邻节点的上游相邻节点的训练进程;若仍不通,则继续跳过,直至有上游节点接收其发送的下游RDMA网络配置;
经过上述的双向收集同步,除了确定已获得全局RDMA网络配置信息的起始节点和终止节点外,其他的节点在合并上、下游RDMA网络配置信息后,也获得了全局RDMA网络配置信息(除去那些被跳过未收集的和未获取到自身RDMA网络配置信息的节点的RDMA网络配置信息);
上述的各训练进程根据保存的全局RDMA网络配置信息中的RDMA网络配置生成新的由RDMA网络配置构成的训练数据传输网络配置,修改替换保存在各节点操作系统环境变量中的默认的训练数据传输网络配置;
所有训练进程开始执行构建图、训练运算等操作,使用新的训练数据传输网络——RDMA网络进行节点间的参数交换。
此外,在上述的分布式训练过程中(特别是在训练集群开始执行训练后),其中的训练进程若在设定的时间t内(例如,根据经验值设定为5分钟)都没有收到来自其他节点的通信,则退出训练,并通知容器云平台销毁该Pod,释放占用资源。
以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。

Claims (10)

1.一种在分布式训练过程中重置训练数据传输网络的方法,其特征在于,包括:
在分布式训练启动后和各虚拟节点的分布式训练应用执行训练运算前,
构建一个逻辑环,使其包括全部虚拟节点;
确定逻辑环的起始节点、终止节点;
从起始节点起向下游,正向收集各节点的RDMA网络配置:
从起始节点起向下游直到终止节点,其中的各训练进程递次地获取本虚拟节点RDMA网络配置和接收上游相邻节点训练进程发来的上游节点的RDMA网络配置;并一并作为下游相邻节点的上游节点RDMA网络配置,发送给下游相邻节点的训练进程;直至终止节点的训练进程获得逻辑环内全部节点的RDMA网络配置;
从终止节点起向上游,反向收集各节点的RDMA网络配置:
从终止节点起向上游直到起始节点,其中的各训练进程递次地获取本虚拟节点RDMA网络配置和接收下游相邻节点训练进程发来的下游节点的RDMA网络配置;并一并作为上游相邻节点的下游节点RDMA网络配置,发送给上游相邻节点的训练进程;直至起始节点的训练进程获得逻辑环内全部节点的RDMA网络配置;
经过所述的正向和反向收集后,各节点训练进程均获得逻辑环中各节点的RDMA网络配置各节点,即训练集群的全局RDMA网络配置;
各节点训练进程根据所述的全局RDMA网络配置生成新的包括RDMA网络配置的训练数据传输网络配置,替换默认的训练数据传输网络配置。
2.根据权利要求1所述的在分布式训练过程中重置训练数据传输网络的方法,其特征在于,
在其中的正向/反向收集RDMA网络配置的过程中,若其中的训练进程发现其下游相邻节点/上游相邻节点无法通信,则跳过该下游相邻节点/上游相邻节点,向该下游相邻节点的下游相邻节点/该上游相邻节点的上游相邻节点的训练进程发送上游节点RDMA网络配置/下游节点RDMA网络配置;
若仍不通,则继续跳过,直至有下游节点/上游节点接收其发送的上游RDMA网络配置/下游RDMA网络配置。
3.根据权利要求1-2中任一所述的在分布式训练过程中重置训练数据传输网络的方法,其特征在于,
在根据全局RDMA网络配置重置训练数据传输网络配置前,各训练进程分别删除在全局RDMA网络配置中没有RDMA网络配置的节点和/或收集的上游节点或下游节点RDMA网络配置中缺失的节点;
根据删除后的全局RDMA网络配置,生成新的训练数据传输网络配置。
4.根据权利要求1所述的在分布式训练过程中重置训练数据传输网络的方法,其特征在于,
其中的正向收集各节点RDMA网络配置的过程与反向收集各节点RDMA网络配置的过程,同步进行。
5.根据权利要求1所述的在分布式训练过程中重置训练数据传输网络的方法,其特征在于,
其中的各训练进程在获取、接收RDMA网络配置、更新训练数据传输网络配置后,即时保存。
6.根据权利要求1所述的在分布式训练过程中重置训练数据传输网络的方法,其特征在于,
其中的训练数据传输,包括分布式训练过程中AI模型的参数交换。
7.一种基于高效通信网络的加速分布式训练方法,其特征在于,
将分布式训练任务调度到容器云平台;
在训练集群启动分布式训练应用;
在各虚拟节点上的训练应用执行训练前,
以权利要求1-6中任一所述的方法重置所述训练集群的训练数据传输网络配置为RDMA网络;
在训练数据传输网络配置被重置为RDMA网络后,
各训练应用开始执行训练;
并在之后的训练过程中,通过RDMA网络,进行各训练进程间的训练数据的通信。
8.根据权利要求7所述的基于高效通信网络的加速分布式训练方法,其特征在于,
使未参与重置网络后训练的空转节点的训练进程退出,并通知容器云平台销毁该虚拟节点),释放占用资源;其中,
若其中的训练进程在一定时间内没有收到来自其他节点的通信,则退出训练;并通知容器云平台销毁该虚拟节点,释放占用资源;
和/或,
若其中的训练进程在一定时间内未收到上游节点、下游节点RDMA网络配置,则认为其为重置过程中无法通信的空转节点;使其退出训练;并通知容器云平台销毁该虚拟节点,释放占用资源。
9.一种基于高效通信网络的加速分布式训练系统,其特征在于,包括:
网络重置单元,用于在分布式训练启动后和训练集群各虚拟节点上分布式训练应用执行训练前,重置训练集群的训练数据传输网络配置为RDMA网络;其中,
所述网络重置单元,通过执行权利要求1-6中任一所述的方法的操作,实现所述的网络重置;
在所述网络重置单元将训练集群的训练数据传输网络配置为RDMA网络后,所述的加速分布式训练系统,通过训练集群各虚拟节点上的分布式训练应用开始执行训练;以及在后续训练过程中通过RDMA网络进行各训练进程间的训练数据的通信。
10.根据权利要求9所述的基于高效通信网络的加速分布式训练系统,其特征在于,
资源优化单元,用于在分布式训练过程中处理空转节点;其中,
若有节点的训练进程在一定时间内没有收到来自其他节点的通信,则判定其为空转节点;进而则退出训练;并通知容器云平台销毁该虚拟节点,释放占用资源。
和/或,
若有节点的训练进程在一定时间内未收到上游节点、下游节点RDMA网络配置,则认为其为重置过程中无法通信的空转节点;使其退出训练;并通知容器云平台销毁该虚拟节点,释放占用资源。
CN202010056054.5A 2020-01-17 2020-01-17 一种基于重置训练数据传输网络的分布式训练方法及系统 Active CN113138832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010056054.5A CN113138832B (zh) 2020-01-17 2020-01-17 一种基于重置训练数据传输网络的分布式训练方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010056054.5A CN113138832B (zh) 2020-01-17 2020-01-17 一种基于重置训练数据传输网络的分布式训练方法及系统

Publications (2)

Publication Number Publication Date
CN113138832A true CN113138832A (zh) 2021-07-20
CN113138832B CN113138832B (zh) 2024-03-01

Family

ID=76808579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010056054.5A Active CN113138832B (zh) 2020-01-17 2020-01-17 一种基于重置训练数据传输网络的分布式训练方法及系统

Country Status (1)

Country Link
CN (1) CN113138832B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665154A (zh) * 2016-07-27 2018-02-06 鄞州浙江清华长三角研究院创新中心 基于rdma与消息传递的可靠数据分析方法
EP3506095A2 (en) * 2017-12-29 2019-07-03 INTEL Corporation Communication optimizations for distributed machine learning
CN110033078A (zh) * 2018-01-12 2019-07-19 华为技术有限公司 一种基于树状拓扑的计算系统及方法
CN110297670A (zh) * 2019-05-17 2019-10-01 北京瀚海星云科技有限公司 一种提高容器云上分布式任务训练效率的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665154A (zh) * 2016-07-27 2018-02-06 鄞州浙江清华长三角研究院创新中心 基于rdma与消息传递的可靠数据分析方法
EP3506095A2 (en) * 2017-12-29 2019-07-03 INTEL Corporation Communication optimizations for distributed machine learning
CN110033078A (zh) * 2018-01-12 2019-07-19 华为技术有限公司 一种基于树状拓扑的计算系统及方法
CN110297670A (zh) * 2019-05-17 2019-10-01 北京瀚海星云科技有限公司 一种提高容器云上分布式任务训练效率的方法及系统

Also Published As

Publication number Publication date
CN113138832B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
US8533728B2 (en) Resource tracking method and apparatus
CN109445944B (zh) 一种基于dpdk的网络数据采集处理系统及其方法
CN108684046B (zh) 一种基于随机学习的接入网服务功能链部署方法
US20200210834A1 (en) Deployment of deep neural networks (dnn) in embedded devices by means of peer-to-peer routing between computational points
CN112698838A (zh) 多云容器部署系统及其容器部署方法
CN115023919A (zh) 防火墙规则的更新方法、装置、服务器及存储介质
US20110238959A1 (en) Distributed controller, distributed processing system, and distributed processing method
CN109491767A (zh) 分布式事务的处理方法和分布式系统
CN113138832B (zh) 一种基于重置训练数据传输网络的分布式训练方法及系统
WO2024045784A1 (zh) 作业调度方法、调度器及相关设备
CN113138831B (zh) 一种网络重置方法及基于此的加速分布式训练方法和系统
CN115509716A (zh) 任务调度方法、系统及存储介质
CN112804313B (zh) 基于跨域边缘节点的数据同步方法、装置、设备及介质
CN115361382A (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN108810645A (zh) 弹幕消息分发方法、装置、设备及存储介质
CN112348196A (zh) 一种自适应rdma网络的分布式机器学习系统及方法
CN112350842B (zh) 一种重置分布式训练任务训练过程中数据传输网络的方法
EP4136531A1 (en) Orchestrating execution of a complex computational operation
Zhai et al. An improved DDS publish/subscribe automatic discovery algorithm
CN116069481B (zh) 一种共享gpu资源的容器调度系统及调度方法
CN114936098B (zh) 一种数据流转方法、装置、后端设备及存储介质
CN114661312B (zh) 一种OpenStack集群嵌套部署方法及系统
CN113672364B (zh) 任务调度方法、装置、电子设备及存储介质
CN114817411B (zh) 分布式图学习方法和装置
CN113825149B (zh) 5g切片网元功能自动裁剪方法、装置及计算设备

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