一种数据量化方法以及装置与流程

文档序号:41476257发布日期:2025-03-28 18:30阅读:33来源:国知局
一种数据量化方法以及装置与流程

本技术涉及计算机领域,尤其涉及一种数据量化方法以及装置。


背景技术:

1、在模型训练中,数据并行是一种常用的训练策略。例如,可以将训练数据分为多个批次,并行在多个计算设备上进行训练。在数据并行过程中,每个计算设备都拥有完整的模型副本,并在每个批次的数据上执行随机梯度下降(stochastic gradient descent,sgd)算法以得到本地梯度。在每次迭代中,计算设备将所有本地梯度聚合得到全局梯度,并用全局梯度对模型更新。

2、在传输更新的模型数据时,通常需要设备之间进行通信传输。而模型规模越大,所需要传输的数据也就越多。如一些场景中,可以对梯度进行量化。具体将梯度进行离散化,将其表示为较少的比特数,同时计算计算梯度量化缩放器,将量化后的梯度与量化缩放器同时发送给接收端。接收端根据接收到的量化码字和量化缩放器还原梯度。然而,通常每个量化缩放器通常需要较高比特传输,如需要32bit传输,传输所需的通信开销大,无法解决模型性能与通信开销的矛盾。且越粗粒度的量化缩放器,模型性能损失越严重。越细粒度的量化缩放器,需要越多的额外通信开销。如此,如何降低各个设备之间传输的数据量,成为亟待解决的问题。


技术实现思路

1、本技术提供一种数据量化方法以及装置,可以对并行训练场景中需要传输的数据进行量化,在传输数据时无需传输量化缩放器,减少数据传输中的通信开销。

2、有鉴于此,本技术提供一种数据量化方法,应用于分布式系统,分布式系统包括多个设备,多个设备用于分别使用训练数据对第一模型进行训练,以该多个设备中的其中一个设备执行的其中一次训练过程为例,为便于区分称为第一设备,以下提及的至少一个第二设备为分布式系统中与第一设备不同的设备,该方法包括:首先,第一设备接收至少一种量化数据,该至少一种量化数据为前述的多种设备中的至少一个第二设备分别对各自本地训练后第一模型的数据进行量化后,且该至少一种量化数据与至少一个第二设备对应,即其中一种量化数据可以为其中一个第二设备对其本地的第一模型进行训练后,由该第二设备对训练后的第一模型的数据(如训练后的第一模型的权重参数或者梯度等)进行量化得到;随后,第一设备基于接收到的至少一种量化数据进行聚合,得到聚合数据;随后第一设备根据本地保存的第一模型的相关数据对聚合数据进行反量化,得到反量化数据,该第一模型的相关数据为第一设备本地保存的数据,如可以包括第一设备在前一次或多次迭代更新第一模型得到的数据;随后第一设备根据反量化数据更新第一模型,得到更新后的第一模型。

3、本技术实施方式中,在进行并行训练的过程中,各个训练设备可以对训练后的模型的数据进行量化,并将量化后的数据传输至相应的接收端,通过量化的方式来降低数据传输的通信开销。接收端可以利用本地保存的模型的相关数据来对接收到的数据进行反量化,而无需接收量化缩放器,因此设备之间无需传输量化缩放器,因此可以降低并行训练场景下的通信开销。且使用设备本地保存的数据进行反量化,其量化的损失不受数据传输的比特的影响,可以降低反量化的数据损失,实现更准确的反量化。

4、在一种可能的实施方式中,前述的第一设备根据本地保存的第一模型的相关数据对聚合数据进行反量化,得到反量化数据,可以包括:第一设备根据第一模型的相关数据计算量化缩放器,量化缩放器表示至少一种量化数据的量化比特的范围;第一设备根据量化缩放器对聚合数据进行反量化,得到反量化数据。

5、本技术实施方式中,接收端可以利用本地保存的数据来计算反量化所需的量化缩放器,利用使用本地数据计算得到的量化缩放器来进行反量化,因此设备之间无需传输量化缩放器,因此可以降低并行训练场景下的通信开销。且使用设备本地保存的数据进行反量化,其量化的损失不收数据传输的比特的影响,可以降低反量化的数据损失,实现更准确的反量化。

6、在一种可能的实施方式中,前述的第一设备本地保存的第一模型的相关数据具体可以包括:该第一设备在本地保存的优化器的数据或者第一模型的参数等,优化器为更新第一模型时使用的数据,该优化器可以包括更新模型过程中使用或者产生的数据,如梯度的统计参数或者损失函数的参数等,第一模型的参数如模型权重参数,具体的计算方式可以包括计算优化器的数据中包括的梯度的二阶动量或者基于模型的权重以及预先设定的缩放因子来计算量化缩放器等。

7、因此,本技术实施方式中,可以基于模型自身的数据或者更新模型的过程中产生的数据来计算量化缩放器,从而无需传输量化缩放器,减少通信开销。且使用设备本地保存的数据进行反量化,其量化的损失不受数据传输的比特的影响,可以降低反量化的数据损失,实现更准确的反量化。

8、在一种可能的实施方式中,进行模型训练的过程可以迭代训练的过程,为了提高量化缩放器的计算准确性,可以每间隔预设次数的迭代之后,更新各个设备本地保存的用于计算量化缩放器的数据。如每间隔预设次数的迭代之后,各个设备之间可以传输未经量化的梯度,以便于后续可以基于本地保存的准确的数据来进行反量化,提高反量化的结果准确度。

9、如在一种一轮迭代中,第一设备可以接收未经量化的至少一种第一模型的数据,第一设备可以利用接收到的未经量化的模型的数据来更新本地保存的模型的相关数据,如更新优化器的状态数据,或者直接使用梯度进行模型更新得到新的第一模型的相关数据等,以便于在后续的迭代过程中可以利用更准确的本地数据来计算量化缩放器,提高计算得到的量化缩放器的准确性。

10、在一种可能的实施方式中,各个第二设备可以对本地保存的第一模型进行训练得到梯度,前述提及的第一模型的数据可以包括梯度,即各个第二设备本地保存的训练后的第一模型的数据可以包括梯度,前述的至少一种量化数据可以为至少一个第二设备分别对各自本地的梯度进行量化得到,即前述提及的量化数据可以为一个第二设备对本地的梯度进行量化得到,前述的反量化数据可以用于表示对一个或多个第二设备的梯度进行聚合后的值,在第一设备更新第一模型时,即可使用该聚合后的值作为梯度更新第一模型,得到更新后的第一模型。

11、本技术实施方式中,在并行训练的场景中,各个设备之间可以传输量化后的梯度,从而使进行聚合的设备可以基于对各个设备的梯度进行聚合后的值来更新模型。因此,仅需传输数据量较小的梯度即可实现模型的并行训练,仅需花费较低的通信开销。

12、在一种可能的实施方式中,前述的第一设备基于至少一种量化数据进行聚合,得到聚合数据,可以包括:第一设备基于至少一种量化数据以及第一设备对第一模型进行训练得到数据进行聚合,得到聚合数据。

13、本技术实施方式中,第一设备在进行数据聚合时,还可以对本地保存的模型训练数据进行聚合,即进行数据聚合的设备自身也可以进行模型训练,从而可以充分利用可用资源,提高模型训练效率。

14、在一种可能的实施方式中,前述的第一模型分为多个区域,多个设备分别对多个区域的参数进行更新,第一设备根据反量化数据更新第一模型,得到更新后的第一模型,还可以包括:第一设备根据反量化数据,对第一区域的参数进行更新,得到更新后的第一模型,第一区域为多个区域中的其中一个区域。因此,本技术实施方式中,各个设备可以对模型进行分区更新,从而使各个模型可以在本地对需要更新区域的数据,可以充分利用各个设备的训练资源,均衡各个设备的负载。

15、第二方面,本技术提供一种数据量化装置,应用于分布式系统,该中分布式系统包括多个设备,多个设备用于分别使用训练数据对第一模型进行训练,该数据量化装置为多个设备中的其中一个设备,以下提及的第二设备为该多个设备中与该数据量化装置不同的设备,装置包括:

16、收发模块,用于接收至少一种量化数据,该至少一种量化数据与至少一个第二设备对应,其中一种量化数据为其中一个第二设备对第一模型进行训练后,对训练后的第一模型的数据进行量化得到;

17、聚合模块,用于基于至少一种量化数据进行聚合,得到聚合数据;

18、反量化模块,用于根据本地保存的第一模型的相关数据对聚合数据进行反量化,得到反量化数据;

19、更新模块,用于根据反量化数据更新第一模型,得到更新后的第一模型。

20、在一种可能的实施方式中,反量化模块,具体用于:根据本地保存的第一模型的相关数据计算量化缩放器,量化缩放器表示至少一种量化数据的量化比特的范围;根据量化缩放器对聚合数据进行反量化,得到反量化数据。

21、在一种可能的实施方式中,第一模型的相关数据包括:第一设备在本地保存的优化器的数据或者第一模型的参数,优化器的数据包括梯度的统计参数或者损失函数中的参数,第一模型的参数包括第一模型的权重参数。

22、在一种可能的实施方式中,前述的第一模型的数据可以包括梯度,前述提及的量化数据可以由第二设备对本地的梯度进行量化得到,各个第二设备本地的梯度为各个第二设备对本地保存的第一模型进行训练后得到,前述的反量化数据可以用于表示对一个或多个第二设备的梯度进行聚合后的值。

23、在一种可能的实施方式中,聚合模块,具体用于基于至少一种量化数据以及在本地对第一模型进行训练得到数据进行聚合,得到聚合数据。

24、在一种可能的实施方式中,第一模型分为多个区域,多个设备分别对多个区域的参数进行更新,

25、更新模块,具体用于根据反量化数据,对第一区域的参数进行更新,得到更新后的第一模型,第一区域为多个区域中的其中一个区域。

26、在一种可能的实施方式中,多个设备分别对使用训练数据对第一模型进行多次迭代,方法还包括:

27、在其中一次迭代中,收发模块,还用于接收至少一种训练数据,训练数据为未经量化的数据;

28、反量化模块,还用于根据至少一种训练数据更新第一模型的相关数据,更新后的第一模型的相关数据用于在后续的迭代训练过程中对量化后的数据进行反量化。

29、第三方面,本技术实施例提供一种数据量化装置,该数据量化装置具有实现上述第一方面数据量化方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

30、第四方面,本技术实施例提供一种数据量化装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的数据量化方法中与处理相关的功能。可选地,该数据量化装置可以是芯片。

31、第五方面,本技术实施例提供了一种分布式系统,该分布式系统中可以包括多个设备,该多个设备分别用于使用训练数据对各自本地的第一模型进行训练,其中,该多个设备可以用于执行前述上述第一方面任一项所示的数据量化方法中的步骤。

32、第六方面,本技术实施例提供了一种数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面或第一方面中任一可选实施方式中与处理相关的功能。

33、第七方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一可选实施方式中的方法。

34、第八方面,本技术实施例提供了一种包含计算机程序/指令的计算机程序产品,当其被处理器执行时,使得处理器执行上述第一方面或第一方面中的任一可选实施方式中的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1