本技术涉及计算机,更具体地说,涉及一种数据传输方法、装置、系统及电子设备和存储介质。
背景技术:
1、近几年来,人工智能发展出超大规模模型(简称“大模型”)正在改变数字世界。然而,训练这些大型模型需要在数百甚至数千个gpu(图形处理器,graphics processingunit)设备上使用大量内存和计算资源。面对千亿、万亿参数规模的大模型训练,仅仅是单次计算迭代内梯度同步需要的通信量就达到了百gb量级,此外还有各种并行模式、加速框架引入的通信需求,使得传统低速网络的带宽远远无法支撑gpu集群的高效计算,各计算节点间通讯速度及效率成为模型训练最大的瓶颈。
2、因此,如何提高分布式神经网络模型训练过程中节点之间的通信效率是本领域技术人员需要解决的技术问题。
技术实现思路
1、本技术的目的在于提供一种数据传输方法、装置、系统及电子设备和存储介质,提高了分布式神经网络模型训练过程中节点之间的通信效率。
2、为实现上述目的,本技术提供了一种数据传输方法,应用于分布式神经网络模型训练中的第一节点,所述方法包括:
3、判断神经网络模型的训练是否处于震荡收敛阶段;
4、若是,则对需要传输的原始数据进行量化操作得到量化数据;其中,所述原始数据为浮点数据,所述量化数据为整型数据;
5、将所述量化数据发送至第二节点,以便所述第二节点对接收到的量化数据进行反量化操作得到所述原始数据,并利用所述原始数据对神经网络模型进行训练。
6、其中,所述判断神经网络模型的训练是否处于震荡收敛阶段,包括:
7、基于神经网络模型训练过程中损失函数的损失值判断所述神经网络模型的训练是否处于震荡收敛阶段。
8、其中,所述基于神经网络模型训练过程中损失函数的损失值判断所述神经网络模型的训练是否处于震荡收敛阶段,包括:
9、获取神经网络模型训练过程中损失函数的损失值,计算所述损失值剔除变量量纲与函数表示形式差异后的一阶差分值;
10、确定所述一阶差分值在预设窗口内的变化率,判断所述变化率是否小于预设值;
11、若是,则判定所述神经网络模型的训练处于震荡收敛阶段。
12、其中,所述计算所述损失值剔除变量量纲与函数表示形式差异后的一阶差分值,包括:
13、利用一阶差分值计算公式计算所述损失值剔除变量量纲与函数表示形式差异后的一阶差分值;其中,所述一阶差分值计算公式为:l(y,f(x))为所述损失函数,为所述一阶差分值,f(x)为输入值x对应的预测值,y为输入值x对应的真实值,h为预设步长,f(x-h)为输入值x-h对应的预测值。
14、其中,所述确定所述一阶差分值在预设窗口内的变化率,包括:
15、利用变化率计算公式确定所述一阶差分值在预设窗口内的变化率;其中,所述弯化率计算公式为:k为预设窗口的长度,为所述一阶差分值,p为所述变化率。
16、其中,所述对需要传输的原始数据进行量化操作得到量化数据,包括:
17、对需要传输的原始数据进行非对称线性量化操作得到量化数据。
18、其中,所述对需要传输的原始数据进行非对称线性量化操作得到量化数据,包括:
19、基于所述原始数据的最大值和最小值、预设的量化后的整型数据的最大值和最小值计算缩放因子;
20、基于所述原始数据的最小值、预设的量化后的整型数据的最小值、所述缩放因子计算零点值;
21、基于所述缩放因子和所述零点值对需要传输的原始数据进行非对称线性量化操作得到量化数据。
22、其中,所述基于所述原始数据的最大值和最小值、预设的量化后的整型数据的最大值和最小值计算缩放因子,包括:
23、计算所述原始数据的最大值与最小值之间的第一差值,计算预设的量化后的整型数据的最大值与最小值之间的第二差值;
24、将所述第一差值与所述第二差值的比值作为缩放因子。
25、其中,所述基于所述原始数据的最大值和最小值、预设的量化后的整型数据的最大值和最小值计算缩放因子,包括:
26、利用缩放因子计算公式计算缩放因子;其中,所述缩放因子计算公式为:
27、
28、其中,rmin为所述原始数据的最小值,rmax为所述原始数据的最大值,qmin为预设的量化后的整型数据的最小值,qmax为预设的量化后的整型数据的最大值,s为所述缩放因子。
29、其中,所述基于所述原始数据的最小值、预设的量化后的整型数据的最小值、所述缩放因子计算零点值,包括:
30、计算所述原始数据的最小值与所述缩放因子的第一比值,将预设的量化后的整型数据的最小值与所述第一比值的差值作为零点值。
31、其中,所述基于所述原始数据的最小值、预设的量化后的整型数据的最小值、所述缩放因子计算零点值,包括:
32、利用零点值计算公式计算零点值;其中,所述零点值计算公式为:
33、
34、其中,rmin为所述原始数据的最小值,qmin为预设的量化后的整型数据的最小值,s为所述缩放因子,z为所述零点值。
35、其中,所述基于所述缩放因子和所述零点值对需要传输的原始数据进行非对称线性量化操作得到量化数据,包括:
36、计算需要传输的原始数据与所述缩放因子的第二比值,对所述第二比值与所述零点值的和进行向下取整得到量化数据。
37、其中,所述基于所述缩放因子和所述零点值对需要传输的原始数据进行非对称线性量化操作得到量化数据,包括:
38、利用非对称线性量化公式对需要传输的原始数据进行非对称线性量化操作得到量化数据;其中,所述非对称线性量化公式为:
39、
40、其中,r为所述原始数据,s为所述缩放因子,z为所述零点值,q为所述量化数据。
41、其中,所述对需要传输的原始数据进行非对称线性量化操作得到量化数据之前,还包括:
42、对需要传输的原始数据进行分批操作,得到每个批次需要传输的原始数据;
43、相应的,所述基于所述原始数据的最大值和最小值、预设的量化后的整型数据的最大值和最小值计算缩放因子,包括:
44、基于本批次需要传输的原始数据的最大值和最小值、预设的量化后的整型数据的最大值和最小值计算本批次的缩放因子;
45、相应的,所述基于所述原始数据的最小值、预设的量化后的整型数据的最小值、所述缩放因子计算零点值,包括:
46、基于本批次需要传输的原始数据的最小值、预设的量化后的整型数据的最小值、所述本批次的缩放因子计算本批次的零点值;
47、相应的,所述基于所述缩放因子和所述零点值对需要传输的原始数据进行非对称线性量化操作得到量化数据,包括:
48、基于所述本批次的缩放因子和所述本批次的零点值对本批次需要传输的原始数据进行非对称线性量化操作得到本批次需要传输的量化数据;
49、相应的,将所述量化数据发送至第二节点,以便所述第二节点对接收到的量化数据进行反量化操作得到所述原始数据,包括:
50、将所述本批次需要传输的量化数据、所述本批次的缩放因子和所述本批次的零点值发送至第二节点,以便所述第二节点根据所述本批次的缩放因子和所述本批次的零点值对接收到的量化数据进行反量化操作得到所述原始数据。
51、其中,所述对需要传输的原始数据进行量化操作得到量化数据,包括:
52、利用所述第一节点中的智能网卡对需要传输的原始数据进行量化操作得到量化数据;
53、相应的,将所述量化数据发送至第二节点,以便所述第二节点对接收到的量化数据进行反量化操作得到所述原始数据,包括:
54、利用所述第一节点中的智能网卡将所述量化数据发送至第二节点中的智能网卡,以便所述第二节点中的智能网卡对接收到的量化数据进行反量化操作得到所述原始数据。
55、其中,所述判断神经网络模型的训练是否处于震荡收敛阶段之后,还包括:
56、若神经网络模型的训练处于学习阶段,则将所述原始数据发送至第二节点,以便所述第二节点利用所述原始数据对神经网络模型进行训练。
57、其中,将所述原始数据发送至第二节点,包括:
58、利用所述第一节点中的智能网卡将所述原始数据发送至第二节点中的智能网卡。
59、为实现上述目的,本技术提供了一种数据传输装置,应用于分布式神经网络模型训练中的第一节点,所述装置包括:
60、判断模块,用于判断神经网络模型的训练是否处于震荡收敛阶段;
61、量化模块,用于当所述神经网络模型的训练处于震荡收敛阶段时,对需要传输的原始数据进行量化操作得到量化数据;其中,所述原始数据为浮点数据,所述量化数据为整型数据;
62、第一发送模块,用于将所述量化数据发送至第二节点,以便所述第二节点对接收到的量化数据进行反量化操作得到所述原始数据,并利用所述原始数据对神经网络模型进行训练。
63、为实现上述目的,本技术提供了一种电子设备,包括:
64、存储器,用于存储计算机程序;
65、处理器,用于执行所述计算机程序时实现如上述数据传输方法的步骤。
66、为实现上述目的,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据传输方法的步骤。
67、为实现上述目的,本技术提供了一种数据传输系统,应用于分布式神经网络模型训练,所述数据传输系统包括第一节点和第二节点;
68、所述第一节点,用于判断神经网络模型的训练是否处于震荡收敛阶段;若是,则对需要传输的原始数据进行量化操作得到量化数据;其中,所述原始数据为浮点数据,所述量化数据为整型数据;将所述量化数据发送至所述第二节点;
69、所述第二节点,用于对接收到的量化数据进行反量化操作得到所述原始数据,并利用所述原始数据对神经网络模型进行训练。
70、其中,所述第一节点包括:
71、第一主机,用于判断神经网络模型的训练是否处于震荡收敛阶段;
72、第一智能网卡,用于当所述神经网络模型的训练处于震荡收敛阶段时,对需要传输的原始数据进行量化操作得到量化数据,将所述量化数据发送至所述第二节点中的第二智能网卡;
73、所述第二节点包括:
74、第二智能网卡,用于对接收到的量化数据进行反量化操作得到所述原始数据;
75、第二主机,用于利用所述原始数据对神经网络模型进行训练。
76、通过以上方案可知,本技术提供的一种数据传输方法,包括:应用于分布式神经网络模型训练中的第一节点,所述方法包括:判断神经网络模型的训练是否处于震荡收敛阶段;若是,则对需要传输的原始数据进行量化操作得到量化数据;其中,所述原始数据为浮点数据,所述量化数据为整型数据;将所述量化数据发送至第二节点,以便所述第二节点对接收到的量化数据进行反量化操作得到所述原始数据,并利用所述原始数据对神经网络模型进行训练。
77、本技术提供的数据传输方法,根据神经网络训练状态动态决定数据传输精度,当神经网络模型的训练处于震荡收敛阶段时,对数据进行量化,也即将浮点数据转换为整型数据,降低原始数据精度后传输,由接收端进行反量化操作后进行模型训练,既保证了神经网络模型的训练精度,同时又可以有效降低网络通讯量,节省网络带宽占用,提高通信效率,从而加快神经网络模型的训练速度。本技术还公开了一种数据传输装置、系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
78、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。