CN117035123A - 一种并行训练中的节点通信方法、存储介质、设备 - Google Patents

一种并行训练中的节点通信方法、存储介质、设备 Download PDF

Info

Publication number
CN117035123A
CN117035123A CN202311298503.7A CN202311298503A CN117035123A CN 117035123 A CN117035123 A CN 117035123A CN 202311298503 A CN202311298503 A CN 202311298503A CN 117035123 A CN117035123 A CN 117035123A
Authority
CN
China
Prior art keywords
activation value
model
synchronized
training
node
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
CN202311298503.7A
Other languages
English (en)
Other versions
CN117035123B (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 CN202311298503.7A priority Critical patent/CN117035123B/zh
Publication of CN117035123A publication Critical patent/CN117035123A/zh
Application granted granted Critical
Publication of CN117035123B publication Critical patent/CN117035123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • 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

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

Abstract

本说明书公开了一种并行训练中的节点通信方法、存储介质、设备,所述方法应用于模型并行训练,所述模型被切分为不同的运算模块,各运算模块分别部署于不同的计算节点中,针对任一计算节点,该方法包括:根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值;根据该待同步激活值与预存的输出激活值,得到输出激活值增量;对该输出激活值增量进行量化,得到量化激活值增量;将该量化激活值增量同步给其他计算节点。所述方法能够加速通信、减小对网络通信的要求,提升模型的训练性能。

Description

一种并行训练中的节点通信方法、存储介质、设备
技术领域
本说明书涉及机器学习领域,尤其涉及一种并行训练中的节点通信方法、存储介质、设备。
背景技术
目前,大语言模型(Large Language Models,LLM)发展迅速,从谷歌的T5到OpenAI的GPT系列,这一类模型也被越来越多地应用到机器翻译、智能查询、代码调试等各种需要语言处理的场景。由于其庞大的参数量以及复杂的隐藏层维度,大语言模型的训练依赖并行训练方法实现。
并行训练,在数据或模型维度上对原模型进行切分,并将切分后的各模块部署于不同的计算节点上并行运行,在这一过程中不同的计算节点会频繁地进行通信,严重影响了模型的训练速度。
本发明,提供一种并行训练中的节点通信的方法,加速节点间通信、减小对通信的网络要求,提升模型的训练性能。
发明内容
本说明书提供一种并行训练中的节点通信方法、存储介质、设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种并行训练中的节点通信方法,包括:
一种并行训练中的节点通信方法,所述方法应用于模型并行训练,所述模型被切分为不同的运算模块,各运算模块分别部署于不同的计算节点中;针对任一计算节点,所述方法包括:
根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值;
根据所述待同步激活值与预存的输出激活值,得到输出激活值增量;
对所述输出激活值增量进行量化,得到量化激活值增量;
将所述量化激活值增量同步给其他计算节点。
可选的,所述模型按张量并行维度和流水并行维度被切分为不同的运算模块。
可选的,根据训练样本及部署于该计算节点上的运算模块得到待同步激活值,具体包括:
当该计算节点存在发送节点时,对发送节点同步的量化激活值增量进行反量化,得到输入激活值增量;
根据所述输入激活值增量和预存的输入激活值,得到当前输入激活值;
将所述当前激活值输入部署于所述计算节点上的运算模块,得到所述运算模块输出的待同步激活值。
可选的,对发送节点同步的量化激活值增量进行反量化,具体包括:
当该计算节点存在至少两个发送节点时,对各发送节点同步的量化激活值增量进行合并,得到全局量化激活值增量;
对所述全局量化激活值增量进行反量化。
可选的,根据所述输入激活值增量和预存的输入激活值,得到当前输入激活值之后,所述方法还包括:
根据所述当前输入激活值,更新预存的输入激活值。
可选的,根据所述待同步激活值与预存的输出激活值,得到输出激活值增量之后,所述方法还包括:
根据所述待同步激活值,更新预存的输出激活值。
可选的,将所述量化激活值增量同步给其他计算节点之后,所述方法还包括:
通过所述其他计算节点继续根据接收到的量化激活值增量得到待同步激活值,直至得到所述模型中的最后一个运算模块输出的结果为止;
根据所述结果,对所述模型进行训练,以调整所述模型中的至少一个运算模块中的模型参数。
可选的,所述模型为大语言模型;
所述训练样本为文本数据;
根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值,具体包括:
根据所述文本数据及部署于该计算节点上的运算模块,得到所述文本数据的特征值;
所述大语言模型中的最后一个运算模块输出的结果为对所述文本数据的预测结果;
将所述量化激活值增量同步给其他计算节点之后,所述方法还包括:
所述模型并行训练根据所述预测结果进行参数调整。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述并行训练中的节点通信方法。
本说明书提供了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述并行训练中的节点通信方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的并行训练中的节点通信方法中,根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值,根据所述待同步激活值与预存的输出激活值,得到输出激活值增量,对所述输出激活值增量进行量化,得到量化激活值增量,将所述量化激活值增量同步给其他计算节点。
从上述方法中可以看出,本方法使用量化激活值增量来进行各计算节点间的同步,利用激活值增量矩阵较原激活值矩阵更稀疏的特点,降低了通信量,达到加速节点间通信、减小对通信的网络要求的效果,最终达到提升模型训练性能的目的。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种并行训练中的节点通信方法的流程示意图;
图2为本说明书中模型切分分组的示意图;
图3为本说明书中说明增量矩阵稀疏性的示意图;
图4为本说明书中一种并行训练中的节点通信方法在完整训练过程中的应用流程图;
图5为本说明书提供的一种并行训练中的节点通信装置的示意图;
图6为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
在进行大语言模型训练时,由于该类模型往往具有多个模型层,且各模型层内参数向量维度极高,为保证训练地正常进行,该类模型需要被切分为多个模块并行运行。而这些并行运行的模块在训练过程中也需要频繁地互相通信,以进行梯度和激活值的同步。在实际的训练过程中,各模块间相互同步的时间严重影响着模型训练的速度,同时,各模块间相互通信时,所传输的矩阵具有极高的维度,这也对通信传输的带宽有着极高的要求。为了提升模型的训练性能,优化并行训练中的通信过程显得尤为重要。因此,本说明书提供一种并行训练中的节点通信的方法,本说明书的执行主体可以是计算节点,也可以是控制计算节点相互通信的服务器或其他电子设备。为了便于说明,以下仅以计算节点为执行主体对本说明书提供的一种并行训练中的节点通信方法进行说明。
图1为本说明书中一种并行训练中的节点通信方法的流程示意图,该方法应用于模型并行训练,该模型被切分为不同的运算模块,各运算模块分别部署于不同的计算节点中。在本说明书一个或多个实施例中,该模型按张量并行维度和流水并行维度被切分为如图2所示的各流水并行分组。具体的,当该模型层数为L,流水并行和张量并行维度分别是Pdim、Tdim,按切分顺序设置Pdim个流水并行分组,第i个流水并行分组内包含Ki层模型,Ki为整数,且K1+K2+…+KPdim=L;在第i个流水并行分组内,将模型每层的张量平均切分成Tdim份,每个流水并行分组内包含Tdim个张量并行分组,每个张量并行分组包含Ki层模型的1/Tdim份,各张量并行分组间执行张量并行。同一流水并行分组中的各张量并行分组相互通信以同步激活值,各流水并行分组间进行点对点通信以同步激活值。将切分后的各张量并行分组分别作为一个运算模块部署于各计算节点中,该计算节点可以是图形处理器(GPU)、中央处理器(CPU)等具有运算功能的物理设备,也可以是云计算服务中的虚拟节点,本说明书对此不做限制。同一流水并行分组各张量并行分组可以部署在同一物理节点内,以加速通信。该节点通信方法具体包括以下步骤:
S101:根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值。
具体的,当训练样本输入当前训练的模型时,部署了该模型第一层运算模块的第一流水并行分组各计算节点直接利用自身相应的运算模块处理训练样本,得到该计算节点的待同步激活值矩阵,同步给接收节点,接收节点将发送节点同步来的待同步激活值矩阵作为输入自身运算模块的输入激活值矩阵,进而得到该接收运算节点的待同步激活值矩阵。也就是说,部署了该模型第一模型层相应运算模块的计算节点直接使用训练样本进行运算,而其他计算节点使用的是经发送节点处理后的训练样本。
其中,激活值是各运算节点中部署的运算模块的输出值,也是其接收节点中运算模块的输入值;一组发送节点与接收节点的关系为,当同一流水并行分组各张量并行分组相互通信时,互为发送节点与接收节点,当各流水并行分组间进行通信时,前一流水并行分组的计算节点为发送节点,后一流水并行分组的计算节点为接收节点,也就是说,在完成激活值同步的过程中,发送节点向接收节点进行通信。
S102:根据所述待同步激活值与预存的输出激活值,得到输出激活值增量。
当前计算节点在完成自身运算模块的运算后,便得到该节点的待同步激活值矩阵,在常见的模型训练过程中,该待同步激活值矩阵会直接同步给下一模型层的计算节点。由于模型训练的特性,各模型层的激活值矩阵往往规模巨大且数据复杂,在同步这些矩阵的过程中需要消耗大量时间,同时这也对通信的带宽提出了极高的要求。而根据模型训练的又一特性,当训练迭代达到一定轮次时,相邻两轮间各模型层相对于同一样本的激活值矩阵往往不会有较大改变。基于此,本说明书提出根据同步激活值矩阵与预存的输出激活值矩阵的差值得到输出激活值增量矩阵用于通信的方法。如图3所示,图中待同步激活值矩阵与预存的输出激活值矩阵,仅有两个数字不同,则相应的输出激活值增量矩阵存在许多0值,该输出激活值增量矩阵相较于待同步激活值矩阵更为稀疏,更适用于各种量化方法。
其中,预存的输出激活值矩阵可以通过对模型进行预训练,记录每个样本预训练过程中各计算节点进行同步通信时接收的激活值矩阵的方法得到,也可以通过根据经验预设的方法得到,本说明书对此不做限制。
S103:对所述输出激活值增量进行量化,得到量化激活值增量。
如果将输出激活值增量矩阵直接同步给其他节点,虽然该矩阵更为稀疏,但矩阵的大小并未改变,仍会占用同样的通信带宽,也无法提高通信速度。由此,对该输出激活值增量矩阵进行量化,量化后的量化激活值增量矩阵相较于原矩阵,规模较小,且可用占据空间更小的数据类型表示,将其应用于节点间通信,可达到加速节点间通信、减小对通信的网络要求的效果,同时由于该激活值增量矩阵更为稀疏,在进行量化操作时,所损失的精度极少,并不影响模型最终的训练结果。其中,量化的方法可以是低比特量化、模型二值化、8bit训练加速等各种常见的量化方法,本说明书对此不做限制。
S104:将所述量化激活值增量同步给其他计算节点。
按原模型中各模型层的顺序关系,各计算节点将运算得到的量化激活值增量矩阵同步给部署着下一模型层运算模块的各计算节点,该同步过程,可以是点对点的通信,也可以是先同步给某一中间节点,由该中间节点同步给其他节点等各种通信方式,本说明书对此不做限制。
基于图1所示的一种并行训练中的节点通信方法,根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值,根据所述待同步激活值与预存的输出激活值,得到输出激活值增量,对所述输出激活值增量进行量化,得到量化激活值增量,将所述量化激活值增量同步给其他计算节点,降低了通信量,加速了节点间通信、减小了对通信的网络要求,最终提升了模型训练性能。
另外,在图1所示的步骤S101中,当该计算节点上部署的运算模块不属于该模型第一模型层,该计算节点对其发送节点同步的量化激活值增量矩阵进行反量化,得到自身节点的输入激活值增量矩阵,将自身节点的输入激活值增量矩阵和预存的输入激活值矩阵加和得到当前输入激活值矩阵,再利用自身的运算模块处理该当前输入激活值矩阵,最终得到该计算节点的待同步激活值矩阵。其中,反量化是和量化互为逆运算的操作,将量化后的矩阵还原为量化前的数据格式;预存的输入激活值矩阵可以通过对模型进行预训练,记录每个样本预训练过程中各计算节点进行同步通信时使用的激活值矩阵的方法得到,也可以通过根据经验预设等方法得到,本说明书对此不做限制。
进一步的,如图1所示的步骤S101中,当该计算节点存在至少两个发送节点时,对各发送节点同步的量化激活值增量矩阵进行合并,得到全局量化激活值增量矩阵。各计算节点上部署的运算模块是由原模型切分后得来的,每个流水并行分组内包含Tdim个运算模块,当某一流水并行分组包含超过1个运算模块,即原模型相应模型层被切分为不只1份,该运算模块运算得到的激活值矩阵仅为完整模型层相应激活值矩阵的1/Tdim,而各运算模块都需要输入完整的激活值矩阵才能进行运算,则部署了下一模型层运算模块的计算节点需要将各上一模型层计算节点同步的量化激活值增量矩阵进行合并,得到全局量化激活值增量矩阵,进而得到用于自身运算模块的当前输入激活值矩阵。其中,对量化激活值增量矩阵的合并可以使用Allreduce实现,也可以用其他可实现数据整合的方法实现,本说明书对此不做限制。
不仅如此,在如图1所示步骤S101中将自身节点的输入激活值增量矩阵和预存的输入激活值矩阵加和得到当前输入激活值矩阵之后,还可根据所述当前输入激活值,更新预存的输入激活值,相应的,在如图1所示步骤S102之后,根据所述待同步激活值,更新预存的输出激活值。在模型的训练过程中,虽然在迭代达到一定轮次后相邻两轮间各模型层相对于同一样本的激活值矩阵不会有较大改变,但是在继续进行一定轮次的迭代后,总增量的积累可能使得输出激活值增量矩阵不再像最初时那样稀疏,继而影响后续的同步流程。因此,在每轮迭代时使用当前输入激活值矩阵和待同步激活值矩阵覆盖预存的输入激活值矩阵和预存的输出激活值矩阵,保证迭代过程中每轮输出激活值增量矩阵的稀疏性。
图4为本说明书中一种并行训练中的节点通信方法在完整模型训练过程中的应用流程图,具体包括以下步骤:
S401:输入训练样本到包含第一模型层的各计算节点。
S402:根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值。
S403:判断当前是否为该模型最后一层,若是,则将该待同步激活值作为运算结果,执行步骤S407,否则,执行步骤S404。
S404:根据待同步激活值与预存的输出激活值,得到输出激活值增量。
S405:对输出激活值增量进行量化得到量化激活值增量。
S406:将量化激活值增量同步给其他计算节点,当前计算节点将量化激活值增量同步给接收计算节点,返回步骤S402,接收计算节点根据该量化激活值增量继续进行模型其余部分的运算。
S407:根据运算结果训练模型。
S408:根据预设目标判断是否继续训练,若是,则返回步骤S401,继续进行下一轮训练,否则,执行步骤S409。
预设的训练目标可以是模型参数收敛或模型训练达到一定次数等各种符合训练人员预期的目标,本说明书对此不做限制。
S409:结束训练。
在本说明书的一个或多个实施例中,该模型可以为大语言模型,训练样本可以为文本数据,则在大语言模型的训练过程中,首先根据文本数据及部署于计算节点上的运算模块,得到所述文本数据的待同步特征值,根据该待同步特征值与预存的输出特征值的差值得到输出特征值增量,将该输出特征值增量同步给接收节点,接收节点继续按此流程完成各自的运算与通信任务,直到得到模型最后一层的运算结果,根据该运算结果调整所述模型中的至少一个运算模块中的模型参数,并根据预设的训练目标决定是否继续下一轮模型迭代,若否,则完成模型训练,否则,则从样本数据输入开始进行下一轮训练。该运算结果可以是预测答复文本、预测翻译文本等各种大语言模型训练的相关任务目标,本说明书对此不做限制。
以下为本说明书的一种并行训练中的节点通信方法在大语言模型(LLM)GPT2-xl中的应用示例,该模型有48个模型层,模型层向量大小为1600,注意力机制head数量为25,模型参数大小共计1.5B。训练数据集采用gpt2-output-dataset,在4机32卡上进行训练。
第一步初始化模型,根据模型及机器配置,将模型切分成4个流水并行分组,每个分组内切分为8个运算模块,并为每个运算模块分配GPU。
第二步模型预热,模型共计训练500000轮,前1%即5000轮迭代用于预热模型,预热阶段每轮迭代记录每个样本在不同张量并行分组下不同层的激活值以及不同流水并行分组的输入激活值和输出激活值:
对于各张量并行分组T_Groupi,(i=1..8),记录训练样本x在该模块下不同层的激活值;对于流水并行分组P_Groupi,(i=1..4),记录训练样本x在该分组下的输入与输出激活值。
第三步进入模型迭代,样本x输入GPT2-xl模型,逐层从前往后计算,同流水并行分组内的模型层,通过张量并行方式同步计算。在各运算模块内,首先计算自注意力层的激活值,将模型层内的Q、K、V矩阵均匀划分到不同GPU,然后同时计算得到待同步激活值矩阵Y,再通过一次全连接层计算得到全局待同步激活值矩阵Z,接着执行量化激活值增量操作,并同步该矩阵。
自注意力层计算完成后,进入到多层感知机层的计算,在流水并行分组内,中间结果X被同步到多个GPU中,每个GPU同时执行矩阵运算,最终得到全局待同步激活值矩阵Z,最后执行量化激活值增量操作,并同步该矩阵。
上述两个计算过程中,均包含量化激活值增量操作,具体的,对于样本x,在各自GPU的缓存中取出上一轮预存的输出激活值,同当前轮得到的待同步激活值做差,得到输出激活值增量矩阵,再将当前轮待同步激活值覆盖上一轮预存的输出激活值;通过量化操作得到量化激活值增量矩阵/>,对该矩阵执行AllReduce同步操作,得到全局量化激活值增量矩阵/>,再通过反量化操作得到反量化后的全局激活值增量矩阵,将该全局激活值增量矩阵与预存的输入激活值相加得到最新的全局激活值,从而完成激活值更新过程。
完成当前流水并行分组计算后,将该阶段的输出值P_Valuex,通过点对点的通信方式同步给接收流水并行分组:
首先从缓存中取出当前流水并行分组的上一轮输出激活值。Val = P_dict[x, 1,P_Groupi],其中x表示某一样本;计算同当前轮输出的差值,再将新激活值覆盖缓存中原有激活值P_dict[x, 1, P_Groupi] = P_Valuex,然后通过量化操作得到量化后的差值矩阵/>,通过点对点的通信方式,将该流水并行分组的量化激活增量矩阵同步到接收流水并行分组。接收流水并行分组通过反量化操作将量化激活增量矩阵数据类型转换为浮点数类型,即/>,更新接收流水并行分组预存的输入激活值并重新记录,即/>
第四步,每轮迭代结束后,判断模型损失函数是否已经收敛,如果收敛则结束训练,否则回到第三步继续模型迭代。
以上为本说明书实施例提供的并行训练中的节点通信方法,相应的,本说明书还提供了一种并行训练中的节点通信装置,如图5所示。
图5为本说明书实施例提供的并行训练中的节点通信装置,所述装置应用于模型并行训练,所述模型被切分为不同的运算模块,各运算模块分别部署于不同的计算节点中;所述装置位于任一计算节点中,所述装置包括:
计算模块501,用于根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值;
增量模块502,用于根据所述待同步激活值与预存的输出激活值,得到输出激活值增量;
量化模块503,用于对所述输出激活值增量进行量化,得到量化激活值增量;
同步模块504,用于将所述量化激活值增量同步给其他计算节点。
可选的,所述模型按张量并行维度和流水并行维度被切分为不同的运算模块。
可选的,所述计算模块501,具体用于当该计算节点存在发送节点时,对发送节点同步的量化激活值增量进行反量化,得到输入激活值增量;根据所述输入激活值增量和预存的输入激活值,得到当前输入激活值;将所述当前激活值输入部署于所述计算节点上的运算模块,得到所述运算模块输出的待同步激活值。
可选的,所述计算模块501,具体用于当该计算节点存在至少两个发送节点时,对各发送节点同步的量化激活值增量进行合并,得到全局量化激活值增量;对所述全局量化激活值增量进行反量化。
可选的,所述计算模块501,还用于在根据所述输入激活值增量和预存的输入激活值,得到当前输入激活值之后,根据所述当前输入激活值,更新预存的输入激活值。
可选的,所述增量模块502,还用于根据所述待同步激活值与预存的输出激活值,得到输出激活值增量之后,根据所述待同步激活值,更新预存的输出激活值。
可选的,所述装置还包括反向调整模块505,在同步模块504将所述量化激活值增量同步给其他计算节点之后,通过所述其他计算节点继续根据接收到的量化激活值增量得到待同步激活值,直至得到所述模型中的最后一个运算模块输出的结果为止,所述反向调整模块505用于根据所述结果,对所述模型进行训练,以调整所述模型中的至少一个运算模块中的模型参数。
可选的,所述模型为大语言模型,所述训练样本为文本数据,则所述计算模块501用于根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值,具体包括:
计算模块501根据所述文本数据及部署于该计算节点上的运算模块,得到所述文本数据的特征值,所述大语言模型中的最后一个运算模块输出的结果为对所述文本数据的预测结果,所述装置还包括反向调整模块505,用于在同步模块504将所述量化激活值增量同步给其他计算节点之后,对所述模型并行训练根据所述预测结果进行参数调整。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的并行训练中的节点通信方法。
本说明书还提供了图6所示的电子设备的示意结构图。如图6所述,在硬件层面,该并行训练中的节点通信设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的并行训练中的节点通信方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种并行训练中的节点通信方法,其特征在于,所述方法应用于模型并行训练,所述模型被切分为不同的运算模块,各运算模块分别部署于不同的计算节点中;针对任一计算节点,所述方法包括:
根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值;
根据所述待同步激活值与预存的输出激活值,得到输出激活值增量;
对所述输出激活值增量进行量化,得到量化激活值增量;
将所述量化激活值增量同步给其他计算节点。
2.如权利要求1所述的方法,其特征在于,所述模型按张量并行维度和流水并行维度被切分为不同的运算模块。
3.如权利要求1所述的方法,其特征在于,根据训练样本及部署于该计算节点上的运算模块得到待同步激活值,具体包括:
当该计算节点存在发送节点时,对发送节点同步的量化激活值增量进行反量化,得到输入激活值增量;
根据所述输入激活值增量和预存的输入激活值,得到当前输入激活值;
将所述当前激活值输入部署于所述计算节点上的运算模块,得到所述运算模块输出的待同步激活值。
4.如权利要求3所述的方法,其特征在于,对发送节点同步的量化激活值增量进行反量化,具体包括:
当该计算节点存在至少两个发送节点时,对各发送节点同步的量化激活值增量进行合并,得到全局量化激活值增量;
对所述全局量化激活值增量进行反量化。
5.如权利要求3所述的方法,其特征在于,根据所述输入激活值增量和预存的输入激活值,得到当前输入激活值之后,所述方法还包括:
根据所述当前输入激活值,更新预存的输入激活值。
6.如权利要求1所述的方法,其特征在于,根据所述待同步激活值与预存的输出激活值,得到输出激活值增量之后,所述方法还包括:
根据所述待同步激活值,更新预存的输出激活值。
7.如权利要求1所述的方法,其特征在于,将所述量化激活值增量同步给其他计算节点之后,所述方法还包括:
通过所述其他计算节点继续根据接收到的量化激活值增量得到待同步激活值,直至得到所述模型中的最后一个运算模块输出的结果为止;
根据所述结果,对所述模型进行训练,以调整所述模型中的至少一个运算模块中的模型参数。
8.如权利要求1所述的方法,其特征在于,所述模型为大语言模型;
所述训练样本为文本数据;
根据训练样本及部署于该计算节点上的运算模块,得到待同步激活值,具体包括:
根据所述文本数据及部署于该计算节点上的运算模块,得到所述文本数据的特征值;
所述大语言模型中的最后一个运算模块输出的结果为对所述文本数据的预测结果;
将所述量化激活值增量同步给其他计算节点之后,所述方法还包括:
所述模型并行训练根据所述预测结果进行参数调整。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~8任一项所述的方法。
10.一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~8任一项所述的方法。
CN202311298503.7A 2023-10-09 2023-10-09 一种并行训练中的节点通信方法、存储介质、设备 Active CN117035123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311298503.7A CN117035123B (zh) 2023-10-09 2023-10-09 一种并行训练中的节点通信方法、存储介质、设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311298503.7A CN117035123B (zh) 2023-10-09 2023-10-09 一种并行训练中的节点通信方法、存储介质、设备

Publications (2)

Publication Number Publication Date
CN117035123A true CN117035123A (zh) 2023-11-10
CN117035123B CN117035123B (zh) 2024-01-09

Family

ID=88630432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311298503.7A Active CN117035123B (zh) 2023-10-09 2023-10-09 一种并行训练中的节点通信方法、存储介质、设备

Country Status (1)

Country Link
CN (1) CN117035123B (zh)

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039905A1 (en) * 2016-08-03 2018-02-08 International Business Machines Corporation Large scale distributed training of data analytics models
CN108491928A (zh) * 2018-03-29 2018-09-04 腾讯科技(深圳)有限公司 模型参数训练方法、装置、服务器及存储介质
US20200118000A1 (en) * 2018-10-10 2020-04-16 NEC Laboratories Europe GmbH Method and system for distributed deep learning
EP3788558A1 (en) * 2018-05-02 2021-03-10 Telefonaktiebolaget LM Ericsson (publ) Placement-aware acceleration of parameter optimization in a predictive model
WO2021128293A1 (zh) * 2019-12-27 2021-07-01 华为技术有限公司 模型训练方法、装置、存储介质和程序产品
CN113177632A (zh) * 2021-04-13 2021-07-27 支付宝(杭州)信息技术有限公司 一种基于流水线并行的模型训练方法、装置以及设备
CN114219094A (zh) * 2021-11-10 2022-03-22 华南理工大学 基于多任务联邦学习的通信成本和模型鲁棒性优化方法
CN114398949A (zh) * 2021-12-13 2022-04-26 鹏城实验室 一种脉冲神经网络模型的训练方法、存储介质及计算设备
CN114418088A (zh) * 2021-12-28 2022-04-29 南京大学 一种模型训练方法
CN114462592A (zh) * 2021-12-24 2022-05-10 光子算数(北京)科技有限责任公司 模型训练方法、装置、电子设备及计算机可读存储介质
CN114528924A (zh) * 2022-01-27 2022-05-24 山东浪潮科学研究院有限公司 一种图像分类模型的推理方法、装置、设备及介质
CN114595799A (zh) * 2020-11-30 2022-06-07 华为技术有限公司 一种模型训练方法及装置
CN114756383A (zh) * 2022-06-15 2022-07-15 苏州浪潮智能科技有限公司 一种分布式计算方法、系统、设备及存储介质
CN114861907A (zh) * 2022-04-22 2022-08-05 网易(杭州)网络有限公司 数据计算方法、装置、存储介质和设备
CN115345298A (zh) * 2022-08-17 2022-11-15 支付宝(杭州)信息技术有限公司 联合训练模型的方法及装置
CN116011587A (zh) * 2022-12-30 2023-04-25 支付宝(杭州)信息技术有限公司 一种模型训练方法、装置、存储介质及电子设备
CN116070719A (zh) * 2023-03-20 2023-05-05 鹏城实验室 一种跨计算节点分布式训练高效通信方法及系统
CN116167463A (zh) * 2023-04-26 2023-05-26 之江实验室 一种模型训练的方法、装置、存储介质及电子设备
CN116704291A (zh) * 2023-06-19 2023-09-05 北京百度网讯科技有限公司 分片并行的模型训练方法、装置、设备及存储介质

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039905A1 (en) * 2016-08-03 2018-02-08 International Business Machines Corporation Large scale distributed training of data analytics models
CN108491928A (zh) * 2018-03-29 2018-09-04 腾讯科技(深圳)有限公司 模型参数训练方法、装置、服务器及存储介质
EP3788558A1 (en) * 2018-05-02 2021-03-10 Telefonaktiebolaget LM Ericsson (publ) Placement-aware acceleration of parameter optimization in a predictive model
US20200118000A1 (en) * 2018-10-10 2020-04-16 NEC Laboratories Europe GmbH Method and system for distributed deep learning
WO2021128293A1 (zh) * 2019-12-27 2021-07-01 华为技术有限公司 模型训练方法、装置、存储介质和程序产品
CN114595799A (zh) * 2020-11-30 2022-06-07 华为技术有限公司 一种模型训练方法及装置
CN113177632A (zh) * 2021-04-13 2021-07-27 支付宝(杭州)信息技术有限公司 一种基于流水线并行的模型训练方法、装置以及设备
CN114219094A (zh) * 2021-11-10 2022-03-22 华南理工大学 基于多任务联邦学习的通信成本和模型鲁棒性优化方法
CN114398949A (zh) * 2021-12-13 2022-04-26 鹏城实验室 一种脉冲神经网络模型的训练方法、存储介质及计算设备
CN114462592A (zh) * 2021-12-24 2022-05-10 光子算数(北京)科技有限责任公司 模型训练方法、装置、电子设备及计算机可读存储介质
CN114418088A (zh) * 2021-12-28 2022-04-29 南京大学 一种模型训练方法
CN114528924A (zh) * 2022-01-27 2022-05-24 山东浪潮科学研究院有限公司 一种图像分类模型的推理方法、装置、设备及介质
CN114861907A (zh) * 2022-04-22 2022-08-05 网易(杭州)网络有限公司 数据计算方法、装置、存储介质和设备
CN114756383A (zh) * 2022-06-15 2022-07-15 苏州浪潮智能科技有限公司 一种分布式计算方法、系统、设备及存储介质
CN115345298A (zh) * 2022-08-17 2022-11-15 支付宝(杭州)信息技术有限公司 联合训练模型的方法及装置
CN116011587A (zh) * 2022-12-30 2023-04-25 支付宝(杭州)信息技术有限公司 一种模型训练方法、装置、存储介质及电子设备
CN116070719A (zh) * 2023-03-20 2023-05-05 鹏城实验室 一种跨计算节点分布式训练高效通信方法及系统
CN116167463A (zh) * 2023-04-26 2023-05-26 之江实验室 一种模型训练的方法、装置、存储介质及电子设备
CN116704291A (zh) * 2023-06-19 2023-09-05 北京百度网讯科技有限公司 分片并行的模型训练方法、装置、设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DOMINIC MASTERS等: "Revisiting Small Batch Training for Deep Neural Networks", 《ARXIV》, pages 1 - 18 *
RICHARD LIAW等: "Tune: A Research Platform for Distributed Model Selection and Training", 《ARXIV》, pages 1 - 8 *
任书玉: "大规模模型训练支撑平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, vol. 2023, no. 7, pages 138 - 285 *
王国生: "基于忆阻器的脉冲神经网络关键技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, vol. 2022, no. 4, pages 135 - 377 *

Also Published As

Publication number Publication date
CN117035123B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
CN107957989B (zh) 基于集群的词向量处理方法、装置以及设备
CN116432778B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116521380A (zh) 一种资源自适应协同的模型训练加速方法、装置及设备
CN117312394B (zh) 一种数据访问方法、装置、存储介质及电子设备
CN116382599B (zh) 一种面向分布式集群的任务执行方法、装置、介质及设备
CN116822657B (zh) 一种模型训练加速的方法、装置、存储介质及电子设备
CN117035123B (zh) 一种并行训练中的节点通信方法、存储介质、设备
CN117409466A (zh) 一种基于多标签控制的三维动态表情生成方法及装置
CN117635822A (zh) 一种模型训练的方法、装置、存储介质及电子设备
CN115543945B (zh) 一种模型压缩的方法、装置、存储介质及电子设备
CN116384505A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116403097A (zh) 一种目标检测方法、装置、存储介质及电子设备
CN113177632B (zh) 一种基于流水线并行的模型训练方法、装置以及设备
CN115034367A (zh) 一种模型部署的方法及装置
CN117873789B (zh) 一种基于分段量化的检查点写入方法及装置
CN116126750B (zh) 一种基于硬件特性的数据处理的方法及装置
CN116185307B (zh) 一种模型数据的存储方法、装置、存储介质及电子设备
CN116755893B (zh) 面向深度学习的分布式计算系统的作业调度方法和装置
CN116109008B (zh) 一种业务执行的方法、装置、存储介质及电子设备
CN117649568B (zh) 一种用于图像分类卷积神经网络的网络压缩方法及装置
CN116996397B (zh) 一种网络丢包优化的方法、装置、存储介质及电子设备
CN117873789A (zh) 一种基于分段量化的检查点写入方法及装置
CN116340004A (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN116090584A (zh) 一种模型训练方法、装置、存储介质及设备
CN117909746A (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