一种计算系统、模型训练方法、装置及产品转让专利

申请号 : CN202310770034.8

文献号 : CN116541338B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张政

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请涉及一种计算系统、模型训练方法、装置及产品。其中计算系统涉及一种计算单元,该计算单元包括:主板,所述主板上配置有中央处理器CPU;基板,与所述主板之间通过第一通信链路连接,所述基板上配置有多个加速卡,所述多个加速卡之间通过第二通信链路连接;所述主板用于将目标模型的训练任务拆分为多个并行的模型训练任务并下发给所述多个加速卡,以及,处理所述多个加速卡的训练结果,得到训练完毕的目标模型;所述多个加速卡用于并行执行各自的模型训练任务,得到训练结果。本计算系统通过模块化的基板设计和互联,形成可弹性伸缩的计算系统架构,从而使计算系统的算力和带宽能够匹配不同参数规模的模型训练任务。

权利要求 :

1.一种计算节点,其特征在于,包括:

第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均包括:主板,所述主板上配置有中央处理器CPU;

基板,与所述主板之间通过两条第一通信链路连接,所述基板上配置有多个加速卡,所述多个加速卡中,每两个加速卡之间通过一条第二通信链路连接;所述两条第一通信链路中一条第一通信链路为下行数据传输链路,另一条第一通信链路为上行数据传输链路;或,所述两条第一通信链路中一条第一通信链路为主用数据传输链路,另一条第一通信链路为备用数据传输链路;

所述多个加速卡中的每个加速卡,通过交换扩展板与第二计算单元中的每个加速卡两两直接相连;

所述主板用于将目标模型的训练任务拆分为多个并行的模型训练任务并下发给所述多个加速卡,以及,处理所述多个加速卡的训练结果,得到训练完毕的目标模型;

所述多个加速卡用于并行执行各自的模型训练任务,得到训练结果。

2.根据权利要求1所述的计算节点,其特征在于,所述第一计算单元和所述第二计算单元均满足:所述CPU与所述多个加速卡的数量之比为1比4。

3.根据权利要求1所述的计算节点,其特征在于,所述第一计算单元中的主板包含的CPU与所述第二计算单元中的主板包含的CPU之间通过第三通信链路连接 。

4.根据权利要求1所述的计算节点,其特征在于,还包括:交换扩展板,用于连接所述第一计算单元与所述第二计算单元。

5.根据权利要求4所述的计算节点,其特征在于,所述交换扩展板上配置有两个交换芯片;

所述第一计算单元和所述第二计算单元各自包括的每个加速卡,通过一条第四通信链路与所述两个交换芯片中的每个交换芯片连接。

6.根据权利要求5所述的计算节点,其特征在于,所述交换扩展板上的每个交换芯片上配置有横向扩展接口,所述横向扩展接口用于与其他计算节点包括的交换扩展板上的交换芯片连接。

7.根据权利要求5所述的计算节点,其特征在于,所述交换芯片为PCIe芯片,所述第四通信链路为PCIe通信链路。

8.一种计算系统,其特征在于,包括:

第一计算节点和第二计算节点,所述第一计算节点和所述第二计算节点均是权利要求

1‑7中任一所述的计算节点。

9.根据权利要求8所述的计算系统,其特征在于,所述第一计算节点包括的交换扩展板上的第一交换芯片的横向扩展接口,与所述第二计算节点包括的交换扩展板上的第二交换芯片的横向扩展接口之间连接有一条第五通信链路;

以及,所述第一计算节点包括的交换扩展板上的第二交换芯片的横向扩展接口,与所述第二计算节点包括的交换扩展板上的第一交换芯片的横向扩展接口之间连接有一条第五通信链路。

10.一种计算系统,其特征在于,包括:

至少三个计算节点,所述多个计算节点中每个计算节点均是权利要求1‑7任一所述的计算节点。

11.根据权利要求10所述的计算系统,其特征在于,所述至少三个计算节点中的每个计算节点包括的交换扩展板上的两个交换芯片各自的横向扩展接口,与两个不同的计算节点包括的交换扩展板上的交换芯片的横向扩展接口之间连接有一条第五通信链路。

12.一种模型训练方法,其特征在于,基于如权利要求1‑7任一所述的计算节点或权利要求8‑11任一所述的计算系统实现,所述方法包括:确定目标模型的参数量;

根据所述目标模型的参数量,确定所需使用的目标计算系统;

利用所述目标计算系统,以执行所述目标模型的训练任务,得到训练完毕的目标模型。

13.根据权利要求12所述的模型训练方法,其特征在于,根据所述目标模型的参数量,确定所需使用的目标计算系统,包括:从多个区间中,确定所述目标模型的参数量所处的目标区间;

在所述目标区间为第一区间的情况下,确定所需使用的目标计算系统是权利要求1‑7任一所述的计算节点;

在所述目标区间为第二区间的情况下,确定所需使用的目标计算系统是权利要求8或9所述的计算系统,所述第一区间的上限值小于所述第二区间的下限值;

在所述目标区间为第三区间的情况下,确定所需使用的目标计算系统是权利要求10或

11所述的计算系统,所述第二区间的上限值小于所述第三区间的下限值。

14.根据权利要求12所述的模型训练方法,其特征在于,确定目标模型的参数量,包括:确定至少一个待训练模型的参数量,所述至少一个待训练模型为可进行并行运算的模型,所述至少一个待训练模型包括Transformer模型。

15.一种模型训练装置,其特征在于,用于实现如权利要求12‑14任一所述的模型训练方法,所述装置包括:第一确定模块,用于确定目标模型的参数量;

第二确定模块,用于根据所述目标模型的参数量,确定所需使用的目标计算系统;

执行模块,用于利用所述目标计算系统,以执行所述目标模型的训练任务,得到训练完毕的目标模型。

16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求12至14任一所述的模型训练方法中的步骤。

17.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求12至14任一所述的模型训练方法中的步骤。

说明书 :

一种计算系统、模型训练方法、装置及产品

技术领域

[0001] 本申请涉及计算机领域,特别是涉及一种计算系统、模型训练方法、装置及产品。

背景技术

[0002] 随着人工智能(Artificial Intelligence,AI)的快速发展,当前人工智能已发展到大模型时代。AI大模型是由大量层和参数组成的深度神经网络,可以理解为由上千万甚至上亿个层和参数组成的深度神经网络,其由于包含了海量的层数和参数量,使得模型的精度和性能实现显著的飞跃。
[0003] AI大模型在计算机视觉、语音识别、自然语言处理等任务中的预测准确性得到显著提高,在模型领域分布上,自然语言处理是目前AI大模型研发最活跃的重点领域。
[0004] 在此之前,常用的神经网络由几百个到几千个参数组成,但这些较小的神经网络的执行效率和预测准确度受到限制。AI大模型是指一个庞大复杂的神经网络,需要通过存储更多的参数来增加模型的深度和宽度,从而提高模型的表现能力,参数从百亿起步,对大量数据进行训练并产生高质量的预测结果,有的AI大模型的参数规模更是达到了千亿级别。模型越大,其对数据筛选、逻辑复杂度、算法匹配、硬件要求和模型优化等方面的要求就会越高,训练难度和训练成本也会相应的随之水涨船高。
[0005] 算力是打造大模型生态的必备基础,AI大模型通常需要在大型GPU集群上进行训练,因此需要大量的计算资源和数据存储资源。例如,微软和英伟达联合发布的Megatron Turing‑NLG参数量达到5300亿,当前最大的LLM参数量已经超过万亿规模。模型参数量的增加同时也对计算架构提出更高的要求,需要计算系统具有更高的算力,更大的互联带宽,以支撑模型的并行训练。更多的参数意味着需要更多的计算资源,Al大模型在训练和推理过程中需要消耗巨大的算力,因此针对大模型进行训练的计算系统算力要求非常高,只有具有超强算力的计算系统才能够支撑AI大模型的海量数据计算工作。
[0006] 当前,用于AI大模型训练的计算系统架构大都同质化严重,随着系统功耗的增加和更大的模型对系统扩展能力的需求增加,现有系统架构存在系统复杂度高、系统扩展成本高等诸多问题。因此,如何设计一种计算系统,使其能够根据AI大模型的参数规模进行方便地扩展,以匹配所训练的AI大模型的数据计算量和带宽,提高模型的训练效率,到达较优的训练效果,是需要解决的问题。

发明内容

[0007] 有鉴于此,本申请旨在提出一种计算系统、模型训练方法、装置及产品,以解决当前用于AI大模型训练的计算系统架构比较复杂、系统扩展成本高、灵活性差的问题。
[0008] 为达到上述目的,本申请的技术方案如下:
[0009] 本申请实施例的第一方面提供一种计算单元,所述计算单元包括:
[0010] 主板,所述主板上配置有中央处理器CPU;
[0011] 基板,与所述主板之间通过第一通信链路连接,所述基板上配置有多个加速卡,所述多个加速卡之间通过第二通信链路连接;
[0012] 所述主板用于将目标模型的训练任务拆分为多个并行的模型训练任务并下发给所述多个加速卡,以及,处理所述多个加速卡的训练结果,得到训练完毕的目标模型;
[0013] 所述多个加速卡用于并行执行各自的模型训练任务,得到训练结果。
[0014] 可选地,所述多个加速卡中,每两个加速卡之间通过一条第二通信链路连接。
[0015] 可选地,所述主板与所述基板之间通过所述第一通信链路连接。
[0016] 可选地,所述CPU与所述多个加速卡的数量之比为1比4。
[0017] 根据本申请实施例的第二方面,提供一种计算节点,所述节点包括:
[0018] 第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均是如本申请第一方面所述的计算单元。
[0019] 可选地,所述第一计算单元中的主板包含的CPU与所述第二计算单元中的主板包含的CPU之间通过第三通信链路连接。
[0020] 可选地,所述计算节点还包括:
[0021] 交换扩展板,用于连接所述第一计算单元与所述第二计算单元。
[0022] 可选地,所述交换扩展板上配置有两个交换芯片;
[0023] 所述第一计算单元和所述第二计算单元各自包括的每个加速卡,通过一条第四通信链路与所述两个交换芯片中的每个交换芯片连接。
[0024] 可选地,所述交换扩展板上的每个交换芯片上配置有横向扩展接口,所述横向扩展接口用于与其他计算节点包括的交换扩展板上的交换芯片连接。
[0025] 可选地,所述交换芯片为PCIe芯片,所述第四通信链路为PCIe通信链路。
[0026] 根据本申请实施例的第三方面,提供一种计算系统,所述计算系统包括:
[0027] 第一计算节点和第二计算节点,所述第一计算节点和所述第二计算节点均是如本申请第二方面所述的计算节点。
[0028] 可选地,所述第一计算节点包括的交换扩展板上的第一交换芯片的横向扩展接口,与所述第二计算节点包括的交换扩展板上的第二交换芯片的横向扩展接口之间连接有一条第五通信链路;
[0029] 以及,所述第一计算节点包括的交换扩展板上的第二交换芯片的横向扩展接口,与所述第二计算节点包括的交换扩展板上的第一交换芯片的横向扩展接口之间连接有一条第五通信链路。
[0030] 根据本申请实施例的第四方面,提供一种计算系统,所述计算系统包括:
[0031] 至少三个计算节点,所述多个计算节点中每个计算节点均是本申请第二方面所述的计算节点。
[0032] 可选地,所述至少三个计算节点中的每个计算节点包括的交换扩展板上的两个交换芯片各自的横向扩展接口,与两个不同的计算节点包括的交换扩展板上的交换芯片的横向扩展接口之间连接有一条第五通信链路。
[0033] 根据本申请实施例的第五方面,提供一种模型训练方法,所述模型训练方法包括:
[0034] 确定目标模型的参数量;
[0035] 根据所述目标模型的参数量,确定所需使用的目标计算系统;
[0036] 利用所述目标计算系统,以执行所述目标模型的训练任务,得到训练完毕的目标模型。
[0037] 可选地,根据所述目标模型的参数量,确定所需使用的目标计算系统,包括:
[0038] 从多个区间中,确定所述目标模型的参数量所处的目标区间;
[0039] 在所述目标区间为第一区间的情况下,确定所需使用的目标计算系统是如本申请第一方面所述的计算单元;
[0040] 在所述目标区间为第二区间的情况下,确定所需使用的目标计算系统是如本申请第二方面所述的计算节点,所述第一区间的上限值小于所述第二区间的下限值;
[0041] 在所述目标区间为第三区间的情况下,确定所需使用的目标计算系统是如本申请第三方面所述的计算系统,所述第二区间的上限值小于所述第三区间的下限值;
[0042] 在所述目标区间为第四区间的情况下,确定所需使用的目标计算系统是如本申请第四方面所述的计算系统,所述第三区间的上限值小于所述第四区间的下限值。
[0043] 可选地,确定目标模型的参数量,包括:
[0044] 确定至少一个待训练模型的参数量,所述至少一个待训练模型为可进行并行运算的模型,所述至少一个待训练模型包括Transformer模型。
[0045] 根据本申请实施例的第六方面,提供一种模型训练装置,所述模型训练装置包括:
[0046] 第一确定模块,用于确定目标模型的参数量;
[0047] 第二确定模块,用于根据所述目标模型的参数量,确定所需使用的目标计算系统;
[0048] 执行模块,用于利用所述目标计算系统,以执行所述目标模型的训练任务,得到训练完毕的目标模型。
[0049] 根据本申请实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如本申请第五方面所述的方法中的步骤。
[0050] 根据本申请实施例的第八方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时,实现如本申请第五方面所述的方法中的步骤。
[0051] 本申请提供的计算系统,通过模块化的基板设计和互联,形成可弹性伸缩的计算系统架构,使计算系统能够匹配参数量不同规模的模型训练任务,从而使计算系统的算力和带宽能够匹配不同参数规模的模型训练任务。本申请所提供的计算系统扩展方便且运算高效,特别适用于参数规模庞大的AI大模型训练需求。

附图说明

[0052] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0053] 图1是本申请一实施例提出的计算单元的架构示意图;
[0054] 图2是本申请一实施例提出的计算节点的架构示意图;
[0055] 图3是本申请一实施例提出的计算系统的架构示意图;
[0056] 图4是本申请一实施例提出的计算系统的架构示意图;
[0057] 图5是本申请一实施例提出的模型训练方法的流程图;
[0058] 图6是本申请一实施例提出的模型训练装置的示意图;
[0059] 图7是本申请一实施例提出的电子设备的示意图。

具体实施方式

[0060] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0061] 应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
[0062] 在本申请的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0063] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0064] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0065] 下面将参考附图并结合实施例来详细说明本申请。
[0066] 图1是本申请一实施例提出的计算单元的架构示意图。如图1所示,该计算单元包括:
[0067] 主板,所述主板上配置有中央处理器CPU;
[0068] 基板,与所述主板之间通过第一通信链路连接,所述基板上配置有多个加速卡,所述多个加速卡之间通过第二通信链路连接;
[0069] 所述主板用于将目标模型的训练任务拆分为多个并行的模型训练任务并下发给所述多个加速卡,以及,处理所述多个加速卡的训练结果,得到训练完毕的目标模型;
[0070] 所述多个加速卡用于并行执行各自的模型训练任务,得到训练结果。
[0071] 如图1所示,本实施例中计算单元包括一张单路主板与一张加速基板,在主板上配置有一个中央处理器CPU,在加速基板上有多张加速卡。单路主板上的中央处理器将模型的训练任务拆分为多个子任务并发送到多个加速卡中,在加速卡中完成子任务的数据计算。主板与加速基板之间存在第一通信链路,第一通信链路用于中央处理器向加速卡下发拆分的训练任务,以及处理多个加速卡的数据计算结果,从而得到训练完成的目标模型。其中,每个加速卡中的数据计算都是并行的,当加速卡中的计算任务完成后,在数据链路中进行计算结果的汇总和同步,值得注意的是,计算结果的汇总和同步的具体方式依赖于上层算法,在此不做限定。
[0072] 本实施例中,通过中央处理器将模型训练过程中的数据处理,拆分到多路加速卡中进行并行运算,形成以多路加速卡为核心的分布式的计算架构,以加快模型训练过程中的数据处理的效率。
[0073] 可选地,所述多个加速卡中,每两个加速卡之间通过一条第二通信链路连接。
[0074] 如图1所示,在一种实施例中,计算单元的加速基板中有多张加速卡,每张加速卡之间通过一条第二通信链路连接,即,在加速基板中,每两张加速卡之间通过一条第二通信链路直接相连。这种加速卡之间两两直接相连的方式叫做全互联,在全互联的情况下,加速基板中任意两张加速卡之间可以直接通信,而不需要通过跨加速卡或别的转发方式进行通信。在加速基板中所有的加速卡全互联的情况下,任意两张加速卡直接的通信传输最快,通信效率最高,由于任意两张加速卡之间无需跨卡通信,因此加速卡之间的通信不会产生延迟,从而在全互联情况下,加速卡之间的通信效率达到最优。本实施例中,第二通信链路为加速基板上的集成电路,该第二通信链路可根据加速卡的类型,支持对应的传输协议。例如,加速卡支持以太协议的情况下,该加速基板中的集成电路用于传输以太协议的数据;加速卡支持PCIe协议的情况下,该加速基板中的集成电路用于传输PCIe协议的数据。
[0075] 可选地,所述主板与所述基板之间通过所述第一通信链路连接。
[0076] 本实施例中,主板与基板之间通过第一通信链路连接。第一通信链路如图1所示,第一通信链路可以是PCIe链路。在本实施例中,主板中的中央处理器通过PCIe链路与加速基板上的多张加速卡进行通信,该中央处理器通过PCIe链路向加速基板中的多张加速卡下发拆分的训练任务,以及处理多张加速卡的数据计算结果,从而得到训练完成的目标模型。
[0077] 本实施例中,如图1所示,单路主板与加速基板之间通过两条PCIe链路连接。当单路主板中的中央处理器将数据运算任务拆分并下发至加速基板的多张加速卡中时,选择其中一条PCIe链路作为下行数据传输链路,通过该下行传输链路与多张加速基板进行通信;当多张加速基板中数据运算完成后,选择另一条PCIe链路作为上行数据传输链路,通过该上行数据传输链路与中央处理器进行通信,在这种情况下,上行数据与下行数据可同时传输,进一步提高计算单元的数据传输效率。
[0078] 在一种实施例中,选择其中一条PCIe链路作为数据传输链路,当单路主板中的中央处理器将数据运算任务拆分并下发至加速基板的多张加速卡中时,通过该传输链路与多张加速基板进行通信,当多张加速基板中数据运算完成后,通过该传输链路与多张加速基板进行通信。将另一条PCIe链路作为备用的数据传输链路,当作为数据传输链路的PCIe链路出现故障时,切换至备用的数据传输链路,以此防止数据丢失,提升计算单元的稳定性。
[0079] 可选地,所述CPU与所述多个加速卡的数量之比为1比4。
[0080] 在本实施例中,如图1所示,加速基板上设置有四张加速卡,每张加速卡之间两两直接相连,构成全互联的加速卡架构。本计算单元中,由一个中央处理器与四张加速卡进行直接通信,控制四张加速卡进行模型训练数据的分布式并行计算。
[0081] 在本实施例中,通过单路主板与多路加速基板构成计算单元,在单路主板与加速基板之间通过两条第一通信链路连接,加速基板中的多张加速卡之间通过一条第二通信链路两两直接相连,形成全互联的计算架构。单路主板上的中央处理器通过第一通信链路与加速基板中的每张加速卡进行通信,加速基板中的加速卡之间通过第二通信链路进行直接通信。该计算单元,通过将模型训练过程中的数据运算拆分到多张加速卡中并行进行,提高了运算的效率。
[0082] 基于同一发明构思,本申请一实施例提供一种计算节点。参考图2,图2是本申请一实施例提出的计算节点的架构示意图。如图2所示,该计算节点包括:
[0083] 第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均是本申请一实施例提供的上述计算单元中的任一计算单元。
[0084] 如图2所示,本实施例中,计算节点包括两张单路主板与两张加速基板,在每一张单路主板上都配置有一个中央处理器CPU,在每张加速基板上配置有多张加速卡。单路主板上的中央处理器将模型的训练任务拆分为多个子任务并发送到多个加速卡中,在加速卡中完成子任务的数据计算。主板与加速基板之间存在第一通信链路,第一通信链路用于中央处理器向加速卡下发拆分的训练任务,以及处理多个加速卡的数据计算结果,从而得到训练完成的目标模型。其中,每个加速卡中的数据计算都是并行的,当加速卡中的计算任务完成后,在数据链路中进行计算结果的汇总和同步。
[0085] 本实施例中,计算节点是在上述实施例中的计算单元上进行扩展形成的,对于采用单个计算单元无法完成的参数规模较大的模型训练任务,通过将上述计算单元进行扩展,形成由两个计算单元组成的计算节点,为参数规模较大的模型训练匹配合适的算力和带宽。
[0086] 可选地,所述第一计算单元中的主板包含的CPU与所述第二计算单元中的主板包含的CPU之间通过第三通信链路连接。
[0087] 如图2所示,本实施例中,两张单路主板中的CPU通过第三通信链路连接。第三通信链路将计算节点中的两个计算单元的单路主板直接相连,以实现中央处理器的扩展。在单个计算单元的架构基础上,将计算单元中的中央处理器与加速卡扩展一倍,横向扩展计算单元的运算性能从而使算力和带宽成倍提升。
[0088] 可选地,所述计算节点还包括:
[0089] 交换扩展板,用于连接所述第一计算单元与所述第二计算单元。
[0090] 本实施例中,为了实现加速基板模块的横向扩展,设置了交换扩展板作为连接第一计算单元中的加速卡,与第二计算单元中的加速卡的交换单元。一张交换扩展板上配置有两张交换芯片,通过交换芯片实现第一计算单元中的加速卡与第二计算单元中的加速卡的通信。
[0091] 可选地,所述交换扩展板上配置有两个交换芯片;
[0092] 所述第一计算单元和所述第二计算单元各自包括的每个加速卡,通过一条第四通信链路与所述两个交换芯片中的每个交换芯片连接。
[0093] 在一种实施例中,在进行加速卡的横向扩展时,将第一计算单元中的每个加速卡,与第二计算单元中的每个加速卡两两直接相连,形成全互联的连接方式。由于在全互联的情况下,加速基板中任意两张加速卡之间可以直接通信,通信效率最高,加速卡之间的通信不会产生延迟,因此,通过将两个计算单元中所有的加速卡构成全互联,从而使计算节点的运算性能达到最优。
[0094] 具体地,将第一计算单元中和第二计算单元中的每一张加速卡,通过一条第四通信链路与交换扩展板上的两张交换芯片分别连接;第一计算单元中加速基板上的多张加速卡两两之间通过一条第二通信链路连接,第二计算单元中加速基板上的多张加速卡两两之间通过一条第二通信链路连接。
[0095] 本实施例中,通过第二通信链路实现加速基板内的通信,通过第四通信链路实现加速基板间的通信。交换扩展板上的每一张交换芯片,都与两个计算单元中所有加速卡直接相连,从而使两个计算单元中的加速卡之间能够两两直接通信,在该计算系统的规模基础上达到最优的运算性能。
[0096] 可选地,所述交换芯片为PCIe芯片,所述第四通信链路为PCIe通信链路。
[0097] 本实施例中,根据加速卡的类型可采用支持不同传输协议的链路作为两个计算单元间加速卡的通信链路,可选地,采用PCIe芯片作为交换芯片,采用PCIe链路作为两个计算单元中的加速卡间的通信链路。
[0098] 可选地,所述交换扩展板上的每个交换芯片上配置有横向扩展接口,所述横向扩展接口用于与其他计算节点包括的交换扩展板上的交换芯片连接。
[0099] 在一种实施例中,交换节点的交换扩展板还可以用于扩展计算节点。在交换扩展板上的每个PCIe交换芯片上,都配置有下行scale‑out扩展接口,单个计算节点可通过scale‑out扩展接口连接其他计算节点,实现计算节点的扩展,以满足更高参数规模的大模型的并行计算和互联带宽需求。
[0100] 基于同一发明构思,本申请一实施例提供一种计算系统。参考图3,图3是本申请一实施例提出的计算系统的架构示意图。如图3所示,该计算系统包括:
[0101] 第一计算节点和第二计算节点,所述第一计算节点和所述第二计算节点均是如本申请第二方面所述的计算节点。
[0102] 本实施例中计算系统包括两个配置相同的计算节点,每个计算节点在包括两张单路主板、两张加速基板以及一张交换扩展板。在该计算系统的每个计算节点中,两张单路主板上的中央处理器通过第三通信链路互联,每张单路主板分别与一张加速基板通过第一通信链路相连,每张加速基板上的每一张加速卡,通过两条第四通信链路与交换扩展板上的两个交换芯片分别相连,每张加速基板上的所有加速卡之间,通过一条第二通信链路两两直接相连。
[0103] 该计算系统是在上述实施例中所述的计算节点的基础上进行横向扩展得到的,通过对单个计算节点进行横向扩展,使计算系统的运算性能成倍提升,以满足更高参数规模的大模型的并行计算和互联带宽需求。
[0104] 可选地,所述第一计算节点包括的交换扩展板上的第一交换芯片的横向扩展接口,与所述第二计算节点包括的交换扩展板上的第二交换芯片的横向扩展接口之间连接有一条第五通信链路;
[0105] 以及,所述第一计算节点包括的交换扩展板上的第二交换芯片的横向扩展接口,与所述第二计算节点包括的交换扩展板上的第一交换芯片的横向扩展接口之间连接有一条第五通信链路。
[0106] 本实施例中,通过交换扩展板预留的下行scale‑out扩展接口实现计算节点的横向扩展。如图3所示,该计算系统中的两个计算节点之间,通过scale‑out扩展接口利用两条第五通信链路进行连接。其中,第一计算节点的交换扩展板上的第一PCIe交换芯片,与第二计算节点的交换扩展板上的第二PCIe交换芯片通过一条第五通信链路相连;第一计算节点的交换扩展板式的第二PCIe交换芯片,与第二计算节点的交换扩展板上的第一PCIe交换芯片通过另一条第五通信链路相连。需要注意的是,该计算系统中两个计算节点在通过PCIe芯片连接时,其连接顺序没有限制,本实施例中的连接方式只用于说明通过PCIe芯片预留的scale‑out扩展接口实现计算节点的横向扩展方式。
[0107] 在该计算系统中,两个计算节点各自的加速基板上的加速卡,除了在所属节点内两两互联,还通过第五通信链路,与另一个节点中的加速卡相连,即在该计算系统中,所有的加速卡形成全互联,使该计算系统在当前节点规模下具备最优的运算性能。
[0108] 示例地,第五通信链路可以是高密连接器,在保障信号传输质量的情况下实现数据的高速传输。
[0109] 基于同一发明构思,本申请一实施例提供一种计算系统。参考图4,图4是本申请一实施例提出的计算系统的架构示意图。如图4所示,该计算系统包括:
[0110] 至少三个计算节点,所述多个计算节点中每个计算节点均是本申请第二方面所述的计算节点。
[0111] 本实施例中,基于上述实施例中的单个计算节点,扩展为具有多个计算节点的计算系统。该计算系统中至少包括三个计算节点,多个计算节点之间通过交换扩展板预留的下行scale‑out扩展接口和第五通信链路进行两两互联,形成可方便地扩展伸缩的计算系统,根据训练模型的参数规模需求进行匹配,以满足不同参数规模的大模型的训练需求。
[0112] 可选地,所述至少三个计算节点中的每个计算节点包括的交换扩展板上的两个交换芯片各自的横向扩展接口,与两个不同的计算节点包括的交换扩展板上的交换芯片的横向扩展接口之间连接有一条第五通信链路。
[0113] 如图4所示,本实施例中以具有三个计算节点的计算系统为例,该计算系统中,每个计算节点中的交换扩展板,通过预留的scale‑out扩展接口和第五通信链路,分别与两个不同的计算节点中的交换扩展板相连。第一计算节点的交换扩展板上的第一PCIe交换芯片,与第三计算节点的交换扩展板上的第二PCIe交换芯片相连;第一计算节点的交换扩展板上的第二PCIe交换芯片,与第二计算节点的交换扩展板上的第一PCIe交换芯片相连;第二计算节点的交换扩展板上的第二PCIe交换芯片,与第三计算节点的交换扩展板上的第一PCIe交换芯片相连。
[0114] 需要注意的是,在多计算节点的计算系统中,通过交换扩展板上的PCIe 交换芯片预留的下行scale‑out扩展接口进行计算节点的扩展时,对PCIe交换芯片的连接顺序不做限制,只需要将一个计算节点的交换扩展板上两个PCIe交换芯片分别与两个不同的计算节点中的PCIe交换芯片连接,即可实现计算节点的多节点架构。
[0115] 在多个计算节点的计算系统中,所有计算节点中的所有加速卡之间为全互联,使该计算系统在当前节点规模下具备最优的运算性能。
[0116] 基于同一发明构思,本申请一实施例提供一种模型训练方法。参考图5,图5是本申请一实施例提出的模型训练方法的流程图。如图5所示,该模型训练方法包括:
[0117] S1:确定目标模型的参数量;
[0118] S2:根据所述目标模型的参数量,确定所需使用的目标计算系统;
[0119] S3:利用所述目标计算系统,以执行所述目标模型的训练任务,得到训练完毕的目标模型。
[0120] 本实施例中,基于上述实施例中的计算系统进行大模型的训练。首先,需要确定目标模型的训练参数量,通过模型的参数量进行计算系统的架构选择。例如,当模型的参数规模较小时,可使用上述实施例中的计算单元进行模型的训练,在匹配模型的算力和带宽的同时节约设备资源;在模型参数量非常庞大的情况下,可根据模型的参数规模搭建多计算节点的扩展架构,实现计算系统的算力和带宽与待训练的模型相匹配。
[0121] 可选地,确定目标模型的参数量,包括:
[0122] S11:确定至少一个待训练模型的参数量,所述至少一个待训练模型为可进行并行运算的模型,所述至少一个待训练模型包括Transformer模型。
[0123] 本实施例中的模型训练方法,利用上述实施例中的计算系统训练模型,特别是针对可进行并行运算的大模型。根据待训练模型的参数量规模选择对应架构的计算系统,拆分待训练模型的训练任务,使模型训练过程中的数据运算在多张加速卡中进行分布式并行运算,提高模型的训练效率。
[0124] Transformer是一种深度学习模型,广泛应用于自然语言处理领域,例如机器翻译、文本分类、问答系统等。Transformer模型是由Google提出的一种NLP(Natural Language Processing,自然语言处理)经典模型,现在比较火热的BERT(Bidirectional Encoder Representation from Transformers,双向编码Transformer)模型也是基于Transformer模型,其优点在于可以在处理长文本时保持较好的性能,并且可以并行计算,提高训练速度。Transformer模型使用了自注意力机制,不采用RNN(Recurrent Neural Network,循环神经网络)的顺序结构,使得模型可以并行化训练,而且能够拥有全局信息。
[0125] 本实施例中,对于可进行并行运算的AI大模型,例如Transformer模型及基于Transformer模型的其他模型,可采用本方法进行模型的训练,根据待训练模型的参数规模匹配对应的计算系统架构,提高模型训练效率。
[0126] 可选地,根据所述目标模型的参数量,确定所需使用的目标计算系统,包括:
[0127] S21:从多个区间中,确定所述目标模型的参数量所处的目标区间;
[0128] S22:在所述目标区间为第一区间的情况下,确定所需使用的目标计算系统是如本申请第一方面所述的计算单元;
[0129] S23:在所述目标区间为第二区间的情况下,确定所需使用的目标计算系统是如本申请第二方面所述的计算节点,所述第一区间的上限值小于所述第二区间的下限值;
[0130] S24:在所述目标区间为第三区间的情况下,确定所需使用的目标计算系统是如本申请第三方面所述的计算系统,所述第二区间的上限值小于所述第三区间的下限值;
[0131] S25:在所述目标区间为第四区间的情况下,确定所需使用的目标计算系统是如本申请第四方面所述的计算系统,所述第三区间的上限值小于所述第四区间的下限值。
[0132] 本实施例中,通过模型的参数规模来确定使用的计算系统的架构。集体地,将计算系统的架构对应参数规模的四个区间。其中,当模型的参数规模在第一区间时,采用计算单元作为训练该模型的计算系统架构;当模型的参数规模在第二区间时,采用单个计算节点作为训练该模型的计算系统架构;当模型的参数规模在第三区间时,采用双计算节点互联的架构作为训练该模型的计算系统架构;当模型的参数规模在第四区间时,采用多计算节点互联的架构作为训练该模型的计算系统架构。在实际应用中,可根据实际情况划分模型参数规模的区间,以便使用相匹配的计算系统架构进行高效的模型训练。
[0133] 在一种实施例中,示例地,只包括一个计算单元的计算系统架构,可用于训练百亿级参数或者更小规模参数的模型;包括至少一个计算节点的计算系统架构,可根据模型的参数规模进行架构伸缩从而匹配模型的参数规模,其能够匹配参数规模区间为百万级到万亿级。
[0134] 基于同一发明构思,本发明实施例提供一种模型训练装置。图6是本申请一实施例提出的模型训练装置600的示意图。如图6所示,该模型训练装置600包括:
[0135] 第一确定模块601,用于确定目标模型的参数量;
[0136] 第二确定模块602,用于根据所述目标模型的参数量,确定所需使用的目标计算系统;
[0137] 执行模块603,用于利用所述目标计算系统,以执行所述目标模型的训练任务,得到训练完毕的目标模型。
[0138] 可选地,所述第一确定模块601,用于确定至少一个待训练模型的参数量,所述至少一个待训练模型为可进行并行运算的模型,所述至少一个待训练模型包括Transformer模型。
[0139] 可选地,所述第二确定模块602,用于执行以下步骤:
[0140] 从多个区间中,确定所述目标模型的参数量所处的目标区间;
[0141] 在所述目标区间为第一区间的情况下,确定所需使用的目标计算系统是如本申请第一方面所述的计算单元;
[0142] 在所述目标区间为第二区间的情况下,确定所需使用的目标计算系统是如本申请第二方面所述的计算节点,所述第一区间的上限值小于所述第二区间的下限值;
[0143] 在所述目标区间为第三区间的情况下,确定所需使用的目标计算系统是如本申请第三方面所述的计算系统,所述第二区间的上限值小于所述第三区间的下限值;
[0144] 在所述目标区间为第四区间的情况下,确定所需使用的目标计算系统是如本申请第四方面所述的计算系统,所述第三区间的上限值小于所述第四区间的下限值。
[0145] 根据本申请实施例的第七方面,提供一种计算机可读存储介质,该可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如本申请第五方面所述的方法中的步骤。
[0146] 基于同一发明构思,本发明实施例提供一种电子设备。图7是本申请一实施例提出的电子设备700的示意图,如图7所示,该电子设备700包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时,实现如本申请第五方面所述的方法中的步骤。
[0147] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0148] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
[0149] 对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和部件并不一定是本申请所必须的。
[0150] 本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0151] 本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0152] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0153] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0154] 尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
[0155] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0156] 以上对本申请所提供的计算系统、模型训练方法、装置及产品进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。