掌桥专利:专业的专利平台
掌桥专利
首页

基于多面体模型建模的自动并行策略搜索方法及相关设备

文献发布时间:2023-06-19 19:28:50


基于多面体模型建模的自动并行策略搜索方法及相关设备

技术领域

本发明涉及智算网络技术领域,特别涉及基于多面体模型建模的自动并行策略搜索方法及相关设备。

背景技术

自2017年开始,深圳、武汉、珠海、西安等城市均已建成以国产芯片为主的智算中心并投入运营,成都、南京、许昌等城市正在建设中,北京、上海、杭州、广州、大连、青岛、太远、南宁等地的智算中心建设也在陆续规划中。这些智算中心主要采用国产CPU和AI加速器。目前,我国已形成自主可控的云计算和大数据技术体系、标准规范和解决方案。

而当基于智算网络进行协同训练的时候,常用的ps架构在进行模型参数融合的时候,会产生大量的通信数据会造成瓶颈,并且当单个设备容纳不了模型参数时导致训练失败。那么,如何基于智算网络提供的环境进行高效的协同计算是丞待解决的问题。

因而现有技术还有待改进和提高。

发明内容

本发明的主要目的在于提供一种基于多面体模型建模的自动并行策略搜索方法及相关设备,旨在解决现有技术中协同计算的智算网络效率低下的问题。

为了达到上述目的,本发明采取了以下技术方案:

一种基于多面体模型建模的自动并行策略搜索方法,所述基于多面体模型建模的自动并行策略搜索方法包括:

根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配;

控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值。

所述基于多面体模型建模的自动并行策略搜索方法中,所述根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配,具体包括:

当一个智算网络的算力大且无本地数据,而另一个智算网络的算力小且拥有第一类型本地数据时,则将所述编解码架构模型分配至算力大的智算网络中;

当一个智算网络的算力大且拥有第二类型本地数据,而另一个智算网络的算力小且拥有所述第一类型本地数据时,则将所述编解码架构模型分配至算力大的智算网络中;

当两个客户端的智算网络的算力和所述本地数据的类型均相同,且该两个客户端的本地数据的分布不同时,则不对所述编解码架构模型进行分配;

当两个客户端的智算网络的算力相同,且该两个客户端的本地数据的分布相同时,则不对所述编解码架构模型进行分配;

当两个客户端的智算网络的算力、所述本地数据的类型以及该两个客户端的本地数据的分布均相同时,则将所述编解码架构模型平均分配至两个智算网络中。

所述基于多面体模型建模的自动并行策略搜索方法中,所述控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值,具体包括:

控制第一客户端利用经过分配后的编解码架构模型,对预存的本地数据进行第一次前向计算操作,得到第一前向输出结果后,发送至第二客户端;

控制所述第二客户端利用经过分配后的编解码架构模型,对所述第一前向输出结果进行聚合操作和第二次前向计算操作,得到第二前向输出结果后,发送至所述第一客户端;

控制所述第一客户端对所述第二前向输出结果,依次进行第三次前向计算操作和第一次反向梯度计算操作,并将得到的第一梯度值发送至所述第二客户端;

控制所述第二客户端对所述第一梯度值,依次进行聚合操作和第二次反向梯度计算操作后,将得到的第二梯度值发送至所述第一客户端;

控制所述第一客户端对所述第二梯度值进行第三次反向梯度计算操作,得到第三梯度值。

所述基于多面体模型建模的自动并行策略搜索方法中,所述控制第一客户端利用经过分配后的编解码架构模型,对预存的本地数据进行第一次前向计算操作,得到第一前向输出结果后,发送至第二客户端,具体包括:

控制所述第一客户端利用经过分配后的编解码架构模型中嵌入层,对所述本地数据进行所述第一次前向计算操作,得到所述第一前向输出结果,并将所述第一前向输出结果发送至所述第二客户端。

所述基于多面体模型建模的自动并行策略搜索方法中,所述控制所述第二客户端利用经过分配后的编解码架构模型,对所述第一前向输出结果进行聚合操作和第二次前向计算操作,得到第二前向输出结果后,发送至所述第一客户端,具体包括:

控制所述第二客户端对所述第一前向输出结果进行聚合操作,得到第一次聚合结果;

控制所述第二客户端利用经过分配后的编解码架构模型中多头注意力机制层,对所述第一次聚合结果进行所述第二次前向计算操作,得到所述第二前向输出结果;

控制所述第二客户端将所述第二前向输出结果发送至所述第一客户端。

所述基于多面体模型建模的自动并行策略搜索方法中,所述控制所述第一客户端对所述第二前向输出结果,依次进行第三次前向计算操作和第一次反向梯度计算操作,并将得到的第一梯度值发送至所述第二客户端,具体包括:

控制所述第一客户端利用经过分配后的编解码架构模型中头层,对所述第二前向输出结果进行所述第三次前向计算操作,得到第三前向输出结果;

控制所述第一客户端对所述第三前向输出结果进行所述第一次反向梯度计算操作,得到所述第一梯度值后,发送至所述第二客户端。

所述基于多面体模型建模的自动并行策略搜索方法中,所述控制所述第二客户端对所述第一梯度值,依次进行聚合操作和第二次反向梯度计算操作后,将得到的第二梯度值发送至所述第一客户端,具体包括:

控制所述第二客户端对所述第一梯度值进行所述聚合操作,得到第二次聚合结果;

控制所述第二客户端利用经过分配后的编解码架构模型中编解码层,对所述第二次聚合结果进行所述第二次反向计算操作,得到所述第二梯度值后,发送至所述第一客户端。

所述基于多面体模型建模的自动并行策略搜索方法中,所述控制所述第一客户端对所述第二梯度值进行第三次反向梯度计算操作,得到第三梯度值,具体包括:

控制所述第一客户端利用经过分配后的编解码架构模型中嵌入层,对所述第二梯度值进行所述第三次反向梯度计算操作,得到所述第三梯度值。

所述基于多面体模型建模的自动并行策略搜索方法中,所述智算中心资源包括:所述智算网络的算力和所述本地数据;所述第一类型本地数据为领域数据;所述第二类型本地数据为通用数据。

所述基于多面体模型建模的自动并行策略搜索方法中,所述第一前向输出结果为嵌入特征值;所述第二前向输出结果为隐藏层信息;所述第三前向输出结果为输出字符的可能性。

一种基于多面体模型建模的自动并行策略搜索系统,所述基于多面体模型建模的自动并行策略搜索系统包括:

模型分配模块,用于根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配;

梯度值计算模块,用于控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值。

一种控制器,所述控制器包括:存储器、处理器、显示器及存储在所述存储器上并可在所述处理器上运行的基于多面体模型建模的自动并行策略搜索程序,所述基于多面体模型建模的自动并行策略搜索程序被所述处理器执行时实现如上所述的基于多面体模型建模的自动并行策略搜索方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有基于多面体模型建模的自动并行策略搜索程序,所述基于多面体模型建模的自动并行策略搜索程序被处理器执行时实现如上所述的基于多面体模型建模的自动并行策略搜索方法的步骤。

相较于现有技术,本发明提供的一种基于多面体模型建模的自动并行策略搜索方法及相关设备,所述方法包括:根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配;控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值。通过先根据每两个客户端的智算网络的智算中心资源,对各自的编解码架构模型进行不同的分配,再利用经过分配后的编解码架构模型对所述智算中心资源进行协同训练和聚合操作,以便计算得到梯度值,从而实现根据不同算力分布、数据分布、以及不同业务场景进行分配,使得满足多种业务场景,实现大模型训练在智算网络中的规模化扩展。

附图说明

图1为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例的流程图;

图2为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中编解码架构模型不进行分配时的时序图;

图3为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤S100的流程图;

图4为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中编解码架构模型在场景一下的分配图;

图5为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中编解码架构模型在场景二下的分配图;

图6为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中编解码架构模型在场景三下的分配图;

图7为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中编解码架构模型在场景五下的分配图;

图8为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤S200的流程图;

图9为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中服务器端和N个客户端之间的训练过程示意图;

图10为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤S220的流程图;

图11为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤S230的流程图;

图12为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤S240的流程图;

图13为本发明提供的基于多面体模型建模的自动并行策略搜索系统的原理框图;

图14为本发明提供的基于多面体模型建模的自动并行策略搜索系统的较佳实施例中针对不同的场景对transformers架构的模型在两个客户端之间进行不同的分配的示意图;

图15为本发明提供的控制器的较佳实施例的运行环境示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

为了方便理解本申请实施例,首先在此介绍本发明实施例涉及到的设计初衷。

当基于智算网络进行协同训练的时候,常用的ps架构在进行模型参数融合的时候,会产生大量的通信数据会造成瓶颈,并且当单个设备容纳不了模型参数时导致训练失败。

为了解决上述现有技术问题,本发明提供了一种基于多面体模型建模的自动并行策略搜索方法及相关设备。本发明中通过根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配,再控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值,不仅实现根据不同算力分布、数据分布,以及业务场景需求进行不同的分配方式,还有效地提升了多种业务场景下智算网络的协同训练性能。

本发明中采用一种跨域的pipline并行对模型进行分配,并采用不同的融合策略,最终希望通过对输入输出表示形式统一化,即将所有信息转化为token(字符),得到token,并转化为特征向量进行表征。训练的时候将不同任务的text(文本)信息换成token序列组成batched input(批输入),然后,进入backbone(多头注意力机制)网络得到输出值,最后用输出值和标签值计算loss(损失值)。同时为了解决多任务难以区分的难题,可以预先写好很多模板的prompt(提示模板),然后把输入文本按照prompt的方式重写一遍,将输入空间大大规范化,不同任务之间的差别也更加明显,具备一定的迁移性。

并且,本发明支持三种融合策略:第一种,每个客户端用当前客户端的embedding(嵌入)层和head(头)层对原始数据进行编码和推理,通过embedding和head层来共享信息,增强模型。第二种,将每个客户端的embedding层进行平均融合。第三种,将每个客户端的embedding层和head层进行平均融合。

下面通过具体示例性的实施例对基于多面体模型建模的自动并行策略搜索方法设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:

请参阅图1,本发明提供的一种基于多面体模型建模的自动并行策略搜索方法,所述基于多面体模型建模的自动并行策略搜索方法包括:

S100、根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配。其中,所述智算中心资源包括:所述智算网络的算力和所述本地数据。

具体地,现有的基于智算网络的协同计算都是依赖一台中央服务器来控制训练过程,并接受所有客户端的模型参数,不对所述客户端的编解码架构模型进行分配,如图2所示为整个模型在不分配的情况下的时序图,这样极易造成单点故障或拥塞的问题。

为此,而本实施例中提出了一种两个客户端之间的跨域的pipline并行对模型进行分配的方式:先将客户端上各自的编解码架构模型根据情况进行分配,主要是将编解码架构模型中编解码层(transformer)中的多头注意力机制层(Backbone),在不同的场景下划分给不同的客户端,具体为:

首先,根据每两个客户端的智算网络的智算中心资源(所述智算网络的算力和所述本地数据,即计算、存储、通信资源等),以最优的并行策略(包括数据并行、模型并行、pipeline并行等混合并行)作为约束条件,同时还有以分配的层不超过设备内存限制,以及工作负载避免计算瓶颈作为约束条件,来进行对各自的编解码架构模型(主要是多头注意力机制层(Backbone),还包括、数据加载(Dataload)层、嵌入层(Embed,用于将句子映射到一个表征向量)、查询层(Query,用于预测下一个Query Q的位置)和头层(Head))的不同的分配方式。

本发明中通过提出针对不同算力分布、数据分布、以及不同业务场景进行分配的方式,使得可以满足应用于智算网络协同计算下的多种业务场景,并通过智算网络算力的协同,从而实现大模型训练在智算网络中的规模化扩展,有效地提升了所述智算网络协同计算的性能。

更进一步地,请参阅图3,所述S100、根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配,具体包括:

S110、当一个智算网络的算力大且无本地数据,而另一个智算网络的算力小且拥有第一类型本地数据时,则将所述编解码架构模型分配至算力大的智算网络中;

S120、当一个智算网络的算力大且拥有第二类型本地数据,而另一个智算网络的算力小且拥有所述第一类型本地数据时,则将所述编解码架构模型分配至算力大的智算网络中;

S130、当两个客户端的智算网络的算力和所述本地数据的类型均相同,且该两个客户端的本地数据的分布不同时,则不对所述编解码架构模型进行分配;

S140、当两个客户端的智算网络的算力相同,且该两个客户端的本地数据的分布相同时,则不对所述编解码架构模型进行分配;

S150、当两个客户端的智算网络的算力、所述本地数据的类型以及该两个客户端的本地数据的分布均相同时,则将所述编解码架构模型平均分配至两个智算网络中。

其中,所述第一类型本地数据为领域数据;所述第二类型本地数据为通用数据。

具体地,在对各自的编解码架构模型进行不同的分配时,根据不同的场景目标分配方式也不一样,常见的适合用于协同训练的场景具体见表1所示:

表1

如图4所示,在场景一中,当一个智算网络的算力大且无本地数据,而另一个智算网络的算力小且拥有第一类型本地数据(领域数据)时,则将所述编解码架构模型分配至算力大的智算网络中。即当第一客户端B1的智算网络的算力小且拥有领域数据,而第二客户端B2的算力大且无本地数据智算网络的时,则将所述多头注意力机制层(Backbone)划分至第一客户端B1的智算网络中。

因为Backbone部分的整个计算耗时占比超过70%,而剩下的Embedding(图4中的Embed)层、Query层、Head层的计算占比低于30%。同时,参与方1(第一客户端B1)拥有领域数据,且算力小,而参与方2(第二客户端B2)拥有通用数据,且算力大。所以场景一这种情况下,分配的依据就是将Backbone层放置与集群算力大的一方(参与方2),而双方的数据可以完全不出本地。那么,通过智算网络大算力方支持,从而实现领域数据拥有方大模型能力在领域任务中的性能增强。

如图5所示,在场景二中,当一个智算网络的算力大且拥有第二类型本地数据(通用数据),而另一个智算网络的算力小且拥有所述第一类型本地数据时,则将所述编解码架构模型分配至算力大的智算网络中。即当所述第一客户端B1的智算网络的算力小且拥有所述领域数据,而所述第二客户端B2的智算网络的算力大且拥有通用数据时,则将所述多头注意力机制层(Backbone)分配至第二客户端B2的智算网络中。

同理,因为Backbone部分的整个计算耗时占比超过70%,而剩下的embedding层、Query层和head层的计算占比低于30%。同时,参与方1拥有领域数据,且算力小,而参与方2拥有通用数据,且算力大。所以场景二这种情况下,分配的依据就是将Backbone层放置与集群算力大的一方(参与方2),而双方的数据可以完全不出本地。那么,通过智算网络大算力方支持,从而实现领域数据和通用数据融合下得到更高性能的大模型。

如图6所示,在场景三中,当两个客户端的智算网络的算力和所述本地数据的类型均相同,而所述本地数据的分布不同时,则不对所述编解码架构模型进行分配。即当所述第一客户端B1和所述第二客户端B2的智算网络的算力相同,且所拥有的所述本地数据的类型也相同,即均为所述通用数据或所述领域数据,但各自的本地数据的分布不同时,也即两方算力均衡,双方拥有同类型数据,数据分布不同,则采用跨中心数据并行,周期同步模型参数,不对所述编解码架构模型进行分配,即保持着图2中模型不分配的方式。

那么,通过智算网络算力的协同,实现大模型训练在智算网络中的规模化扩展。其中,图6中,模型整个层训练了好几次迭代称为一个“step”,所以就是完整模型的每迭代多次(用户可以设置)就是一个“step”,对应图2中一个“Train step”,其中,Fusion为聚合。

同样如图6所示,在场景四中,当两个客户端的智算网络的算力相同,且该两个客户端的本地数据的分布相同时,则不对所述编解码架构模型进行分配。即当所述第一客户端B1和所述第二客户端B2的智算网络的算力相同,且各自所拥有的所述本地数据的分布也相同时,也即两方算力均衡,双方拥有数据且同分布,则同样采用跨中心数据并行,周期同步模型参数,不对所述编解码架构模型进行分配。那么,通过智算网络算力的协同,实现大模型训练在智算网络中的规模化扩展。

如图7所示,在场景五中,当两个客户端的智算网络的算力、所述本地数据的类型以及该两个客户端的本地数据的分布均相同时,则将所述编解码架构模型平均分配至两个智算网络中。即当所述第一客户端B1和所述第二客户端B2的智算网络的算力相同,且各自所拥有的所述本地数据的类型也相同,但各自所拥有的所述本地数据的分布不相同时,也即两方算力均衡,双方拥有同类型数据,数据分布相同,则将所述多头注意力机制层(Backbone)平均分配至所述第一客户端B1和所述第二客户端B2的智算网络中。

进一步地,请继续参阅图1,S200、控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值。

具体地,在对所述客户端的编解码架构模型进行分配之后,以下均以该两个客户端为执行主体介绍两者之间的协同训练和聚合操作过程如下:

该两个客户端利用所有经过分配后的编解码架构模型对所述智算中心资源进行协同训练和聚合操作,以便计算得到所述多面体模型的梯度值。其中,由所有经过分配后的编解码架构模型构成所述多面体模型。

通过该两个客户端利用经过分配后的编解码架构模型进行高效地协同训练,从而能够快速地计算得到所述梯度值,不仅有效地减少训练耗时,而且还能避免拥塞的问题。

更进一步地,请参阅图8,所述S200、控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值,具体包括:

S210、控制第一客户端B1利用经过分配后的编解码架构模型,对预存的本地数据进行第一次前向计算操作,得到第一前向输出结果后,发送至第二客户端B2;

S220、控制所述第二客户端B2利用经过分配后的编解码架构模型,对所述第一前向输出结果进行聚合操作和第二次前向计算操作,得到第二前向输出结果后,发送至所述第一客户端B1;

S230、控制所述第一客户端B1对所述第二前向输出结果,依次进行第三次前向计算操作和第一次反向梯度计算操作,并将得到的第一梯度值发送至所述第二客户端B2;

S240、控制所述第二客户端B2对所述第一梯度值,依次进行聚合操作和第二次反向梯度计算操作后,将得到的第二梯度值发送至所述第一客户端B1;

S250、控制所述第一客户端B1对所述第二梯度值进行第三次反向梯度计算操作,得到第三梯度值。

其中,所述第一前向输出结果为嵌入特征值;所述第二前向输出结果为隐藏层信息。

具体地,请继续参阅图6,对于图6中的每一个“step”,均存在以下两种情况:在所述编解码架构模型中的嵌入层和头层被平均分配的情况下,即在两个客户端的智算网络的算力和所述本地数据的类型均相同,而所述本地数据的分布不同的场景下,以及在两个客户端的智算网络的算力相同,且各自的本地数据的分布相同的情况下,两个所述智算网络之间的协同训练的过程均如下:

首先,所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层(Emd/Embed/Embedding)对预存的本地数据(NLP(Natural Language Processing,自然语言处理,是计算机科学领域与人工智能领域中的一个重要方向)中的字符)进行第一次前向计算操作,得到第一前向输出结果(嵌入特征值)后,发送至第二客户端B2;所述第二客户端B2再利用经过分配后的编解码架构模型中多头注意力机制层(Backbone)对所述第一前向输出结果进行聚合操作和第二次前向计算操作,得到第二前向输出结果(隐藏层信息)后,发送至所述第一客户端B1。

然后,所述第一客户端B1利用经过分配后的编解码架构模型中头层(Head)对所述第二前向输出结果依次进行第三次前向计算操作和第一次反向梯度计算操作,并将得到的第一梯度值发送至所述第二客户端B2;所述第二客户端B2利用经过分配后的编解码架构模型中编解码层(transformer)对所述第一梯度值依次进行聚合操作和第二次反向梯度计算操作后,将得到的所述第二梯度值发送至所述第一客户端B1。最后,所述第一客户端B1再利用经过分配后的编解码架构模型中嵌入层对所述第二梯度值进行所述第三次反向梯度计算操作,得到所述第三梯度值,重复以上步骤直到达到预设的迭代次数,从而完成了所述第一客户端B1与所述第二客户端B2之间的协同训练。

请继续参阅图4,本发明中的第二个实施例中,在一个智算网络的算力大且无本地数据,而另一个智算网络的算力小且拥有领域数据的场景下,两个所述智算网络之间的协同训练的过程如下:

首先,所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层(图4中参与方1上的第一个Emd/Embed/Embedding)对所述领域数据进行第一次前向计算操作,得到第一前向输出结果(嵌入特征值)后,发送至第二客户端B2;所述第二客户端B2再利用经过分配后的编解码架构模型中多头注意力机制层(图4中参与方2上的第一个Backbone)对所述第一前向输出结果进行第二次前向计算操作,得到第二前向输出结果(隐藏层信息)后,发送至所述第一客户端B1。

然后,所述第一客户端B1利用经过分配后的编解码架构模型中查询层(图4中参与方1上的第一个Query)和头层(图4中参与方1上的第一个Head)对所述第二前向输出结果进行第三次前向计算操作,得到所述第三前向输出结果(输出字符的可能性),以及利用经过分配后的编解码架构模型中头层(图4中参与方1上的第二个Head)和查询层(图4中参与方1上的第二个Query)对所述第三前向输出结果进行第一次反向梯度计算操作,并将得到的第一梯度值发送至所述第二客户端B2。

其次,所述第二客户端B2利用经过分配后的编解码架构模型中多头注意力机制层(图4中参与方2上的第二个Backbone)对所述第一梯度值依次进行第二次反向梯度计算操作后,将得到的第二梯度值发送至所述第一客户端B1。最后,所述第一客户端B1再利用经过分配后的编解码架构模型中嵌入层(图4中参与方1上的第二个Embed)对所述第二梯度值进行第三次反向梯度计算操作,得到第三梯度值,重复以上步骤直到达到预设的迭代次数,从而完成了所述第一客户端B1与所述第二客户端B2之间的协同训练。

请继续参阅图5,本发明中的第三个实施例中,在一个智算网络的算力大且拥有第二类型本地数据(通用数据),而另一个智算网络的算力小且拥有所述第一类型本地数据(领域数据)的情况下两个所述智算网络之间的协同训练的过程如下:

首先,所述第一客户端B1利用经过分配后的编解码架构模型中的嵌入层(图5中B1上的第一个Embed)对领域数据进行第一次前向计算操作,得到第一前向输出结果(嵌入特征值,即图5中Embed Feat(B1))后,发送至第二客户端B2;同时,所述第二客户端B2利用经过分配后的编解码架构模型中的嵌入层(图5中B2上的第一个Embed)对通用数据进行第二次前向计算操作,得到第二前向输出结果(嵌入特征值)。然后,所述第二客户端B2将所述第一前向输出结果和所述第二前向输出结果进行合并后,利用经过分配后的编解码架构模型中的多头注意力机制层(图5中B2上的第一个Backbone)进行第三次前向计算操作,得到第三前向输出结果(隐藏层信息,即图5中Feat(B1+B2));所述第二客户端B2再将所述第三前向输出结果传输至所述第一客户端B1。

其次,所述第一客户端B1和所述第二客户端B2同时利用经过分配后的编解码架构模型中查询层(图5中B1和B2上的第一个Query)和头层(图5中B1和B2上的第一个Head)分别对所述第三前向输出结果进行第四次前向计算操作后,得到第四前向计算结果(输出字符的可能性,即图5中L1+L2)。之后,所述第一客户端B1和所述第二客户端B2同时利用经过分配后的编解码架构模型中头层(图5中B1和B2上的第二个Head)和查询层(图5中B1和B2上的第二个Query)分别对所述第三前向输出结果进行第一次反向梯度计算操作后,得到第一梯度值。

再者,所述第二客户端B2再利用经过分配后的编解码架构模型中多头注意力机制层(图5中B2上的第二个Backbone)进行第二次反向梯度计算操作,得到第二梯度值(图5中的Activation(B1+B2),即激活值(B1+B2)),并传输至所述第一客户端B1。所述第一客户端B1和所述第二客户端B2同时利用经过分配后的编解码架构模型中嵌入层(图5中B2和B2上的第二个Embed)分别对所述第二梯度值进行第三次反向梯度计算操作后,得到第三梯度值。最后,重复以上步骤直到达到预设的迭代次数,从而完成了所述第一客户端B1与所述第二客户端B2之间的协同训练。

请继续参阅图7,本发明中的第五个实施例中,在两个客户端的智算网络的算力、所述本地数据的类型以及各自的本地数据的分布均相同的情况下,两个所述智算网络之间的协同训练的过程如下:

首先,所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层(图7中B1上的第一个Embed)和多头注意力机制层(图7中B1上的第一个Backbone1)对预存的本地数据进行第一次前向计算操作,得到第一前向输出结果(嵌入特征值,即图7中的Feat(B)),并将所述第一前向输出结果和数据索引(图7中的data index)一并传输至所述第二客户端B2。

然后,所述第二客户端B2利用经过分配后的编解码架构模型中多头注意力机制层(图7中B2上的第一个Backbone2)、查询层(图7中B2上的第一个Query)和头层(图7中B2上的第一个Head)对所述第一前向输出结果进行第二次前向计算操作,得到第二前向输出结果(输出字符的可能性)。其次,所述第二客户端B2利用经过分配后的编解码架构模型中头层(图7中B2上的第二个Head)、查询层(图7中B2上的第二个Query)和多头注意力机制层(图7中B2上的第二个Backbone2)对所述第二前向输出结果进行第一次反向梯度计算操作,得到第一梯度值(图7中的Activation(B)),并传输至所述第一客户端B1。

再者,所述第一客户端B1利用经过分配后的编解码架构模型中多头注意力机制层(图7中B1上的第二个Backbone1)和嵌入层(图7中B1上的第二个Embed)对所述第二梯度值进行第二次反向梯度计算操作,得到第二梯度值,重复以上步骤直到达到预设的迭代次数,从而完成了所述第一客户端B1与所述第二客户端B2之间的协同训练。

其中,本发明中可以是所述第一客户端B1与所述第二客户端B2之间的协同训练,还可以是服务器端(Server)与N个客户端(Client1-N)之间的协同训练,训练过程如图9所示。

更进一步地,所述S210、控制第一客户端B1利用经过分配后的编解码架构模型,对预存的本地数据进行第一次前向计算操作,得到第一前向输出结果后,发送至第二客户端B2,具体包括:

S211、控制所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层,对所述本地数据进行所述第一次前向计算操作,得到所述第一前向输出结果,并将所述第一前向输出结果发送至所述第二客户端B2。

具体地,在开始进行两个客户端之间的协同训练时,首先,所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层(Emd/Embed/Embedding)对所述本地数据(NLP中的字符)进行所述第一次前向计算操作,得到所述第一前向输出结果(嵌入特征值)。

更进一步地,请参阅图10,S220、控制所述第二客户端B2利用经过分配后的编解码架构模型,对所述第一前向输出结果进行聚合操作和第二次前向计算操作,得到第二前向输出结果后,发送至所述第一客户端B1,具体包括:

S221、控制所述第二客户端B2对所述第一前向输出结果进行聚合操作,得到第一次聚合结果;

S222、控制所述第二客户端B2利用经过分配后的编解码架构模型中多头注意力机制层,对所述第一次聚合结果进行所述第二次前向计算操作,得到所述第二前向输出结果;

S223、控制所述第二客户端B2将所述第二前向输出结果发送至所述第一客户端B1。

具体地,在得到所述第一前向输出结果后,所述第二客户端B2先对所述第一前向输出结果进行聚合操作,得到第一次聚合结果,并利用经过分配后的编解码架构模型中多头注意力机制层(Backbone)对所述第一次聚合结果进行所述第二次前向计算操作,得到所述第二前向输出结果(隐藏层信息)。然后,所述第二客户端B2将所述第二前向输出结果发回至所述第一客户端B1。

更进一步地,请参阅图11,S230、控制所述第一客户端B1对所述第二前向输出结果,依次进行第三次前向计算操作和第一次反向梯度计算操作,并将得到的第一梯度值发送至所述第二客户端B2,具体包括:

S231、控制所述第一客户端B1利用经过分配后的编解码架构模型中头层,对所述第二前向输出结果进行所述第三次前向计算操作,得到第三前向输出结果;

S232、控制所述第一客户端B1对所述第三前向输出结果进行所述第一次反向梯度计算操作,得到所述第一梯度值后,发送至所述第二客户端B2。

具体地,在得到所述第二前向输出结果后,所述第一客户端B1利用经过分配后的编解码架构模型中头层(Head)对所述第二前向输出结果进行所述第三次前向计算操作,得到所述第三前向输出结果(字符的可能性)。然后,所述第一客户端B1对所述第三前向输出结果进行所述第一次反向梯度计算操作,得到所述第一梯度值,并发送至所述第二客户端B2。

更进一步地,请参阅图12,S240、控制所述第二客户端B2对所述第一梯度值,依次进行聚合操作和第二次反向梯度计算操作后,将得到的第二梯度值发送至所述第一客户端B1,具体包括:

S241、控制所述第二客户端B2对所述第一梯度值进行所述聚合操作,得到第二次聚合结果;

S242、控制所述第二客户端B2利用经过分配后的编解码架构模型中编解码层,对所述第二次聚合结果进行所述第二次反向计算操作,得到所述第二梯度值后,发送至所述第一客户端B1。

具体地,在所述第二客户端B2接收到所述第一梯度值后,所述第二客户端B2先对所述第一梯度值进行所述聚合操作,得到所述第二次聚合结果。然后,所述第二客户端B2利用经过分配后的编解码架构模型中编解码层(transformer)对所述第二次聚合结果进行所述第二次反向计算操作,得到所述第二梯度值。其次,所述第二客户端B2将所述第二梯度值发送至所述第一客户端B1。

更进一步地,S250、控制所述第一客户端B1对所述第二梯度值进行第三次反向梯度计算操作,得到第三梯度值,具体包括:

S251、控制所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层,对所述第二梯度值进行所述第三次反向梯度计算操作,得到所述第三梯度值。

具体地,在所述第一客户端B1接收到所述第二梯度值后,所述第一客户端B1利用经过分配后的编解码架构模型中嵌入层对所述第二梯度值进行所述第三次反向梯度计算操作,得到所述第三梯度值,从而完成了整个协同训练的过程。

进一步地,请参阅图13,本发明还提供一种基于多面体模型建模的自动并行策略搜索系统,所述基于多面体模型建模的自动并行策略搜索系统包括:

模型分配模块1,用于根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配;

梯度值计算模块2,用于控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值。

具体地,本发明中所述基于多面体模型建模的自动并行策略搜索方法是应用于所述基于多面体模型建模的自动并行策略搜索系统的,那么,所述基于多面体模型建模的自动并行策略搜索方法实现如下:

本发明中提供将客户端上各自的编解码架构模型根据情况进行分配,主要是将编解码架构模型中编解码层(transformer)中的多头注意力机制层(Backbone),在不同的场景下划分给不同的客户端,具体为:

首先,根据每两个客户端的智算网络的智算中心资源(所述智算网络的算力和所述本地数据,即计算、存储、通信资源等),以最优的并行策略(包括数据并行、模型并行、pipeline并行等混合并行)作为约束条件,同时还有以分配的层不超过设备内存限制,以及工作负载避免计算瓶颈作为约束条件,来进行对各自的编解码架构模型(主要是多头注意力机制层(Backbone),还包括、数据加载(Dataload)层、嵌入层(Embed)、查询层(Query)和头层(Head))的不同的分配方式。

其中,针对不同的场景对transformers架构的模型在两个客户端(Client1和Client2)之间进行不同的分配的示意图如图14所示,图14中将整个模型分配为3个部分(part):part1:embedding(Emd)层;part2:backbone层;part3:Head层,在前向跨域传播过程中,embedding层的前向输出传输给part3部分的backbone层,backbone层前向输出传输给part1的head层计算得到logits(损失值)。而在反向跨域传播过程中,在part1部分根据得到的logits计算得到的梯度信息传输给backbone层,backbone层反向计算完梯度再回传给embedding层,从而完成整个反向传播的过程。其中,图14中Token embedding为向量编码;Position embedding为位置编码;Sentence embedding为自注意力模块的输出结果;Gradient为梯度值。

然后,利用经过分配后的编解码架构模型对所述智算中心资源进行协同训练和聚合操作,以便计算得到所述梯度值,通过利用经过分配后的编解码架构模型进行高效地协同训练,从而能够快速地计算得到所述梯度值,不仅有效地减少训练耗时,而且还能避免拥塞的问题。

本发明中针对不同算力分布、数据分布,以及业务场景需求进行不同的分配方式,以及需要进行通信的次数,使得可以满足多种业务场景,通过智算网络算力的协同,解决了数据不出本地或算力不足情况下进行协同训练提升模型性能的方式,实现大模型训练在智算网络中的规模化扩展,丰富了跨域协同训练的场景,加快推动算力平衡发展。

并且,可以使用一组具有相同权重的单一神经网络完成多任务,而且对于transformer(编解码层)架构来看,参数量越大效果可能更好。且在实现过程中,将模型分成多个部分并实现点对点的通信模块进行不同部分之间的传输,在传输过程中可以减少一些不必要的传输,其中,需要远程传输的标识为“remote(远程)”,可以在本地获取的参量标识为“local(当地)”。

进一步地,如图15所示,基于上述基于多面体模型建模的自动并行策略搜索方法,本发明还相应提供了一种控制器,所述控制器包括处理器10、存储器20(及显示器30)。图15仅示出了控制器的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述控制器的内部存储单元,例如控制器的硬盘或内存。所述存储器20在另一些实施例中也可以是所述控制器的外部存储设备,例如所述控制器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述控制器的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述控制器的应用软件及各类数据,例如所述安装控制器的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有基于多面体模型建模的自动并行策略搜索程序40,该基于多面体模型建模的自动并行策略搜索程序40可被处理器10所执行,从而实现本申请中基于多面体模型建模的自动并行策略搜索方法。

所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述基于多面体模型建模的自动并行策略搜索方法等。

所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述控制器的信息以及用于显示可视化的用户界面。所述控制器的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中基于多面体模型建模的自动并行策略搜索程序40时实现的步骤,可以参照上述基于多面体模型建模的自动并行策略搜索方法中的对应描述,在此不再赘述。

进一步地,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于多面体模型建模的自动并行策略搜索程序,所述基于多面体模型建模的自动并行策略搜索程序被处理器执行时实现如上所述的基于多面体模型建模的自动并行策略搜索方法的步骤;由于上述对该所述基于多面体模型建模的自动并行策略搜索方法的步骤进行了详细的描述,在此不再赘述。

综上所述,本发明提供的一种基于多面体模型建模的自动并行策略搜索方法及相关设备,所述方法包括:根据每两个客户端的智算网络的智算中心资源,以最优的并行策略作为约束条件,分别对该两个客户端上的编解码架构模型进行分配;控制该两个客户端利用所有经过分配后的编解码架构模型,对所述智算中心资源进行协同训练和聚合操作,计算得到多面体模型的梯度值。通过先根据每两个客户端的智算网络的智算中心资源,对各自的编解码架构模型进行不同的分配,再利用经过分配后的编解码架构模型对所述智算中心资源进行协同训练和聚合操作,以便计算得到梯度值,从而实现根据不同算力分布、数据分布、以及不同业务场景进行分配,使得满足多种业务场景,实现大模型训练在智算网络中的规模化扩展。

可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

技术分类

06120115923926