CN117313823B - 一种卷积循环神经网络混合分布式并行训练方法及系统 - Google Patents

一种卷积循环神经网络混合分布式并行训练方法及系统 Download PDF

Info

Publication number
CN117313823B
CN117313823B CN202311594605.3A CN202311594605A CN117313823B CN 117313823 B CN117313823 B CN 117313823B CN 202311594605 A CN202311594605 A CN 202311594605A CN 117313823 B CN117313823 B CN 117313823B
Authority
CN
China
Prior art keywords
pipeline
training
data
model
parallel
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.)
Active
Application number
CN202311594605.3A
Other languages
English (en)
Other versions
CN117313823A (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.)
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Shenzhen Graduate School Harbin Institute of Technology
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 Shenzhen Graduate School Harbin Institute of Technology filed Critical Shenzhen Graduate School Harbin Institute of Technology
Priority to CN202311594605.3A priority Critical patent/CN117313823B/zh
Publication of CN117313823A publication Critical patent/CN117313823A/zh
Application granted granted Critical
Publication of CN117313823B publication Critical patent/CN117313823B/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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Abstract

本发明提出一种卷积循环神经网络混合分布式并行训练方法及系统,属于气象预报技术领域;获取雷达回波灰度图像数据集并预处理为图像时间序列数据;划分为训练集、验证集和测试集;在流水线并行改造过程中,通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现张量转移封装;将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量和前向传播过程;设计外层模型,处理前向传播过程中在序列维度上的循环结构,实现通用的流水线模型结构;在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行;调整梯度缩放因子,利用自动混合精度避免梯度上溢;通过设置激活值检查点,降低显存占用。

Description

一种卷积循环神经网络混合分布式并行训练方法及系统
技术领域
本发明属于气象预报技术领域,具体地,涉及一种卷积循环神经网络混合分布式并行训练方法及系统。
背景技术
短临降雨预报是气象学中的一个重要问题,而卷积神经网络的应用可以提高降雨预报的准确性和精度,能够被广泛用于短临降雨预报领域,它通过在数据中应用卷积操作和非线性激活函数,以及使用池化层来提取特征并学习数据的抽象表示。这种能力使得CNN在处理具有空间局部性的数据时表现出色。
对于短临降雨预报,可以将卷积神经网络应用于气象观测数据,例如雷达图像、卫星图像或传感器数据,以捕捉和学习与降雨相关的特征和模式。通过对历史观测数据进行训练,CNN可以学习降雨的空间分布、强度、移动方向等信息。然后,结合实时的观测数据,CNN可以进行预测,估计未来的降雨情况。
现有技术能获取大量高时空分辨率的数据,但由于设备显存限制,往往需要对原始图像进行压缩或裁剪后才能将其作为模型的训练样本,这会导致图像和位置信息的丢失,影响模型效果。现有技术方案包括LSTM矩阵分解方案、组循环重排方案、深度可分离卷积方案。
LSTM矩阵分解方案提出了两种方法,以减少大规模长短时记忆(Long Short-TermMemory, LSTM)网络的参数数量并加速训练过程。首先,采用矩阵分解的方法,通过使用两个较小的矩阵乘积来近似替代LSTM单元中的原始矩阵,以获得的效果。该方法的核心假设是矩阵W可以通过秩为r的矩阵来有效近似表示。如果W1的大小为/>,W2的尺寸为/>,且满足r<p ≤ n的条件,则近似方法的参数量为/>,原始矩阵的参数量为/>,相较于原始模型,LSTM网络的参数数量大幅减少,因此通过该近似方法,在分布式训练的情况下可以实现更快的计算和同步。其次,该方案基于Group LSTM单元,引入了一种将LSTM矩阵、输入张量和状态张量划分为独立特征组的方法。受到了AlexNet中组概念的启发,该方案假设模型输入和隐藏状态的特定部分可以被视为独立的特征组,经过特征组划分后,矩阵的参数量可以进一步减少。由于每个组的计算是独立的,因此这种单元结构非常适合模型并行计算。与集成模型相比,G-LSTM层的关键区别在于不同组的输入是不同的,且被假设为相互独立的,并不是计算集成输出,而是将其拼接成独立的部分。
组循环重排方案采用组策略处理RNN层,并在层与时间步之间引入表示重排策略,以提高模型训练速度并减少参数冗余。在RNN层中,序列的输入和隐藏状态被分成不相交的组,并对每个组进行递归学习。这种操作降低了模型复杂性,能够有效学习组内特征。然而,它无法捕捉不同组之间的依赖关系。为了恢复组间的相关性,引入了表示重排层,在任意两个连续的递归层和任意两个时间步之间进行重排。这种做法能将递归时序学习分解为组内时序学习和组间时序学习,降低了参数量。该方案中所提出的分组RNN相当于具有块对角稀疏权重矩阵的标准递归层,这种均匀稀疏结构计算效率比较高。表示重排层的目的是重新排列隐藏表示,确保后续层或时间步能够看到之前时间步所有输入组的特征,该层无需参数且结构简单,通过基本的张量操作Reshape和Transpose就能实现,几乎没有运行时开销。使用表示重排层后,能够有效提高模型性能。
深度可分离卷积方案提出了使用可分离卷积的循环神经网络结构。标准的卷积循环神经网络(Convolutional Long Short-Term Memory, ConvLSTM)非常适用于捕捉数据序列中的时间信息。它们在输入到状态和状态到状态的转换中使用卷积层,而不是传统LSTM中的全连接层。然而,ConvLSTM的计算和内存开销仍然很大。为了减少计算成本和参数数量,提出使用空间可分离卷积和深度可分离卷积,这在加速神经网络中的标准卷积层方面取得了成功。在空间可分离卷积中,一个的卷积层可以近似为一个/>的卷积层后跟一个/>的卷积层,这样可以降低参数数量,当/>时,降低了33%的参数数量。在深度可分离卷积中,每个输入通道都与一个滤波器独立卷积,与标准卷积相比,大大减少了计算量和参数的数量。在深度卷积之后应用/>逐点卷积,将深度层的输出进行合并。该方案中将深度卷积和逐点卷积的组合称为深度可分离卷积,并将其应用于ConvLSTM,从而显著减少了参数数量,能有效加速模型训练,但是可能导致模型精度略微下降。
发明内容
本发针对现有的卷积循环神经网络单设备显存消耗大,难以支持并行计算,模型调优时间长等问题,提出了一种卷积循环神经网络混合分布式并行训练方法及系统,获取雷达回波灰度图像数据,经过带有异常值处理的标准化方式,按照时间序列生成分组训练数据,用于模型训练和验证。
本发明通过以下技术方案实现:
一种卷积循环神经网络混合分布式并行训练方法:
所述方法具体包括以下步骤:
步骤1、获取雷达回波灰度图像数据集,将灰度图像数据预处理为图像时间序列数据;将处理后的数据集划分为训练集、验证集和测试集;
步骤2、通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现张量转移过程的封装;
步骤3、对模型进行流水线并行改造,将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量和前向传播过程,并且在每次前向传播前,子模型都需要初始化一次隐状态张量;
步骤4、设计外层模型,将每个流水线阶段作为类型实例,处理前向传播过程中在序列维度上的循环结构,实现通用的流水线模型结构;
步骤5、使用训练集训练模型,使用验证集调整模型,评估模型性能;
步骤6、在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行,并使用零冗余优化器降低存储开销;调整梯度缩放因子,利用自动混合精度训练的优势避免梯度上溢;并通过在合适的位置设置激活值检查点,以在反向传播过程中从最近的存储点重新计算需要的激活值;
并将上述步骤通过全局张量扩展到多机多卡训练,使用测试集进行测试,从而最终实现针对卷积循环神经网络的分布式混合并行训练方法。
进一步地,在步骤1中,
在所述雷达回波灰度图像数据集中,以Ref格式存储,数据的时间分辨率为6分钟,空间分辨率0.01°(约1km);
将图像读取为矩阵数组,对回波图像进行填充,并滤除部分异常像素值,得到的单张图像尺寸为900*900,然后以20作为序列长度,将数据集整理为时间序列图像的集合,作为序列预测任务的输入。
进一步地,在步骤3中,
所述流水线并行改造具体为:
步骤3.1、首先将原模型根据ConvLSTMCell的层数均分为两个子模型,每个子模型对应一个流水线阶段,进行数据分发并初始化隐状态张量;
步骤3.2、判断当前时间步是否小于序列长度,若是则执行步骤3.3,若否则执行步骤3.6;
步骤3.3、使用掩码混合输入数据,执行流水线阶段一的前向传播,并将张量转移到流水线阶段二;
步骤3.4、执行流水线阶段二的前向传播和张量转移,并将转移后的张量数据追加到输出张量中,时间步加一;
步骤3.5、重新判断当前时间步是否小于序列长度,若是则重新执行步骤3.3,若否则执行步骤3.6;
步骤3.6、调整输出张量维度,计算损失函数并执行反向传播;
最后一个流水线阶段的输出就是二阶段流水线并行的ConvLSTM模型的输出,既会在下一个时间步用于计算掩码,也会在本轮前向传播结束后用于损失函数计算。
进一步地,在步骤3中,
假设N为序列长度,S为流水线层数,B表示训练批量大小,为隐层状态维度,H为输入图像高度,W为输入图像宽度,C为输入图像通道数,那么使用流水线并行策略进行训练,每次前向传播过程中的总通信量V为
(7)
进一步地,在步骤6,
通过数据并行、零冗余优化器、自动混合精度训练和激活重计算技术实现了分布式混合并行训练;
所述数据并行和零冗余优化器具体为:
每个流水线阶段包含多个计算节点,这些计算节点构成一个数据并行组,同一个数据并行组内的计算节点都持有相同的子模型;
在模型训练过程中,不同流水线阶段之间需要以数据并行组为单位执行张量转移;
在每轮前向传播前,通过采样器来控制数据集的分发过程,通过设定采样器的副本数量和分发节点组,使数据集只分发到第一个流水线阶段所包含的计算节点上;
在前向传播过程中,利用张量的Placement信息,控制全局张量以数据并行组为单位在流水线阶段之间进行张量转移;
在反向传播过程中,由通信进程组以All-Reduce的方式来汇总和分发同一个数据并行组内的梯度,使计算节点能获取完整的梯度信息,从而完成参数更新,保持模型的一致性;
在每个数据并行组内,使用零冗余优化器,在多个计算节点之间分片存储模型参数、梯度和优化器状态。
进一步地,所述自动混合精度(Automatic Mixed Precision,AMP),结合了单精度(FP32)和半精度(FP16)浮点数来加速模型的训练过程;
在卷积循环神经网络的前向传播和反向传播过程中,将模型权重和激活值使用半精度浮点数进行存储和计算;能有效降低计算资源需求,同时加快模型迭代速度;通过适当调小梯度缩放因子的初始值和增长率,调大回退因子值和增长间隔,从而控制训练过程中的梯度缩放幅度,使得模型的收敛速度和收敛精度不受影响。
所述激活重计算(Activation Checkpointing)技术通过在合适的位置设置激活值存储点,在反向传播过程从最近的存储点重新计算需要的激活值,从而减少内存占用;
一种卷积循环神经网络混合分布式并行训练系统:
所述系统包括:数据处理模块、二阶段流水线并行改造模块、流水线并行训练模块和分布式混合并行模块;
所述数据处理模块获取雷达回波灰度图像数据集,将灰度图像数据预处理为图像时间序列数据;将处理后的数据集划分为训练集、验证集和测试集;
所述二阶段流水线并行改造模块使用训练集训练模型、进行流水线并行改造,使用二阶段流水线并行的ConvLSTM,通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现封装张量转移;
所述流水线并行训练模块将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量,并且在每次前向传播前,子模型都需要初始化一次隐状态张量;设计外层模型,将每个流水线阶段作为类型实例,输入验证集并处理前向传播过程中在序列维度上的循环结构,实现通用的流水线模型结构;
所述分布式混合并行模块在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行;调整梯度缩放因子,利用自动混合精度训练的优势避免梯度上溢;并通过在合适的位置设置激活值检查点,以在反向传播过程中从最近的存储点重新计算需要的激活值;并通过全局张量扩展到多机多卡训练,使用测试集进行测试,从而最终实现针对卷积循环神经网络的分布式混合并行训练方法。
一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时实现上述方法的步骤。
本发明有益效果
本发明将多种分布式并行训练方法应用到卷积循环神经网络的训练过程中,在不影响模型精度的前提下,降低训练过程中的单设备显存占用,提高模型训练速度;针对现有模型训练方案单设备显存消耗大的问题,设计了多阶段流水线并行改造方案。
针对现有卷积循环神经网络显存占用高且并行度低的问题,本发明方案将流水线并行技术应用于训练,提供了较为通用的模型改造方案,有效降低了单卡显存占用,提高了设备吞吐量。
针对现有卷积循环神经网络训练速度慢的问题,本发明方案在流水线并行训练的基础上,有效结合了数据并行、混合精度训练、激活重计算技术,设计了易扩展的混合分布式并行训练方法,进一步降低显存占用,并提高模型训练速度。
针对现有方案模型调优时间长的问题,本发明方案针对卷积循环神经网络结构特征设计了较为通用的多阶段流水线并行训练方法,进一步结合数据并行、混合精度训练、激活重计算等技术,设计了混合分布式并行训练策略。
同时,本发明所设计的策略是通用的,能有效推广到扩展的卷积循环神经网络中。
附图说明
图1为使用二阶段流水线并行的ConvLSTM前向传播过程示意图;
图2为本发明的ConvLSTM单元;
图3为ConvLSTM模型的四阶段流水线并行训练过程;
图4为PredRNN模型的四阶段流水线并行训练过程;
图5为流水线并行结合数据并行示意图;
图6为ConvLSTM的激活重计算示意图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图1和图6;
一种卷积循环神经网络混合分布式并行训练方法:
所述方法具体包括以下步骤:
步骤1、获取雷达回波灰度图像数据集,将灰度图像数据预处理为图像时间序列数据;将处理后的数据集划分为训练集、验证集和测试集;
步骤2、通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现封装张量转移;
以两阶段流水线并行的ConvLSTM为例,将原模型根据ConvLSTMCell的层数均分为两个子模型,每个子模型对应一个流水线阶段,管理对应ConvLSTMCell层的隐状态张量和前向传播子过程,然后构建外层模型,
步骤3、对模型进行流水线并行改造,将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量和前向传播过程,并且在每次前向传播前,子模型都需要初始化一次隐状态张量,从而保证和单卡训练过程等效;
步骤4、设计外层模型,外层模型持有子模型的实例,将每个流水线阶段作为类型实例,处理前向传播过程中在序列维度上的循环结构,同时控制张量在不同流水线阶段的转移过程;实现较通用的流水线模型结构;
步骤5、使用训练集训练模型,使用验证集调整模型,评估模型性能;
步骤6、在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行,并使用零冗余优化器降低存储开销;调整梯度缩放因子,利用自动混合精度训练的优势避免梯度上溢;并通过在合适的位置设置激活值检查点,以在反向传播过程中从最近的存储点重新计算需要的激活值,这样就能减少内存占用;
并将上述步骤通过全局张量扩展到多机多卡训练,使用测试集进行测试,从而最终实现针对卷积循环神经网络的分布式混合并行训练方法。
在步骤1中,在所述广东省雷达回波灰度图像数据集中,该数据集包含2014年-2018年的雷达回波图像,以Ref格式存储,数据的时间分辨率为6分钟,空间分辨率0.01°(约1km);
将图像读取为矩阵数组,对回波图像进行填充,并滤除部分异常像素值,得到的单张图像尺寸为900*900,然后以20作为序列长度,将数据集整理为时间序列图像的集合,作为序列预测任务的输入。
在步骤3中,通过ConvLSTM单元将LSTM单元中的矩阵乘法替换为了卷积操作,能较好地建模时空序列数据,被广泛应用于时空序列特征提取,其模型图如图2所示,计算公式如下:
(1)
输入门(2)
遗忘门(3)
记忆细胞(4)
输出门(5)
隐状态(6)
ConvLSTM在前向传播的过程中存在序列维度上的循环结构,难以直接应用并行技术,且激活函数的输出在每个时间步都会生成,并且在整个前向传播过程内都需要被保留,所以模型训练过程中显存占用大。
所述流水线并行改造具体为:
步骤3.1、首先将原模型根据ConvLSTMCell的层数均分为两个子模型,每个子模型对应一个流水线阶段,进行数据分发并初始化隐状态张量;
步骤3.2、判断当前时间步是否小于序列长度,若是则执行步骤3.3,若否则执行步骤3.6;
步骤3.3、使用掩码混合输入数据,执行流水线阶段一的前向传播,并将张量转移到流水线阶段二;
步骤3.4、执行流水线阶段二的前向传播和张量转移,并将转移后的张量数据追加到输出张量中,时间步加一;
步骤3.5、重新判断当前时间步是否小于序列长度,若是则重新执行步骤3.3,若否则执行步骤3.6;
步骤3.6、调整输出张量维度,计算损失函数并执行反向传播;
基于Oneflow框架提供的全局张量,完成了张量转移过程的封装。需要注意的是,最后一个流水线阶段的输出就是二阶段流水线并行的ConvLSTM模型的输出,既会在下一个时间步用于计算掩码,也会在本轮前向传播结束后用于损失函数计算。所以通过先将最后一个流水线阶段的输出张量转移到第一个流水线阶段所在的计算设备上,可以有效降低通信开销。
在步骤3中,
假设N为序列长度,S为流水线层数,B表示训练批量大小,为隐层状态维度,H为输入图像高度,W为输入图像宽度,C为输入图像通道数,那么使用流水线并行策略进行训练,每次前向传播过程中的总通信量V为
(7)
本发明设计的外层模型控制循环结构,子模型管理流水线阶段的模式能够推广到更复杂的卷积循环神经网络结构的模型中,PredRNN模型在ConvLSTMCell的结构中引入了记忆张量,使得模型在长时间范围内能更好地捕捉依赖关系。
将其以同样的方法改造为流水线并行,只需要在每个流水线阶段之间额外执行记忆张量的转移过程,而记忆张量在每层LSTMCell中的计算过程则保持不变,本方案很好地隐藏了模型本身的复杂性,只需要关注流水线阶段之间的参数传递,针对卷积循环神经网络具有良好的通用性。
在步骤5中,模型性能的评估指标有:
1.均方误差(Mean Squared Error, MSE):MSE 是一种常用的回归损失函数,它计算的是预测值与真实值之间差的平方的平均值。MSE 的值越小,说明模型的预测性能越好。
2.平均绝对误差(Mean Absolute Error, MAE):MAE 是另一种常用的回归损失函数,它计算的是预测值与真实值之间差的绝对值的平均值。与 MSE 相比,MAE 对于异常值不那么敏感。
3梯度差异损失(Gradient Difference Loss, GDL):GDL 是一种用于图像生成任务的损失函数,它计算的是预测图像与真实图像的梯度(即像素值的变化率)之间的差异。GDL 能够鼓励生成的图像在结构上更接近真实图像。
4.结构相似性指数(Structural Similarity Index, SSIM):SSIM 是一种用于衡量两幅图像相似性的指标。与传统的像素级误差度量(如 MSE)不同,SSIM 考虑的是图像的结构信息,因此能够更好地反映人眼对图像质量的主观感受。
5.峰值信噪比(Peak Signal-to-Noise Ratio, PSNR):PSNR 是一种常用于图像和视频质量评估的指标,它计算的是信号最大可能功率和影响它的噪声功率之间的比值。PSNR 的值越大,说明图像的质量越好。
在步骤6,本发明在流水线并行的基础上,通过数据并行、零冗余优化器、自动混合精度训练和激活重计算技术实现了分布式混合并行训练;
所述数据并行和零冗余优化器具体为:
每个流水线阶段包含多个计算节点,这些计算节点构成一个数据并行组,同一个数据并行组内的计算节点都持有相同的子模型;
在模型训练过程中,不同流水线阶段之间需要以数据并行组为单位执行张量转移;
在每轮前向传播前,通过采样器来控制数据集的分发过程,通过设定采样器的副本数量和分发节点组,使数据集只分发到第一个流水线阶段所包含的计算节点上;
在前向传播过程中,利用张量的Placement信息,控制全局张量以数据并行组为单位在流水线阶段之间进行张量转移;
在反向传播过程中,由通信进程组以All-Reduce的方式来汇总和分发同一个数据并行组内的梯度,使计算节点能获取完整的梯度信息,从而完成参数更新,保持模型的一致性;
在每个数据并行组内,使用零冗余优化器,在多个计算节点之间分片存储模型参数、梯度和优化器状态,从而降低每个节点的显存占用和通信开销。
通常在模型训练过程中,显存占用由激活值和模型状态两部分组成,零冗余优化器能够有效减少模型状态部分的显存占用。由于卷积循环神经网络的前向传播过程中存在循环结构,激活值占用了大部分显存,零冗余优化器的效果有限。
所述自动混合精度(Automatic Mixed Precision,AMP),结合了单精度(FP32)和半精度(FP16)浮点数来加速模型的训练过程;
在卷积循环神经网络的前向传播和反向传播过程中,将模型权重和激活值使用半精度浮点数进行存储和计算;能有效降低计算资源需求,同时加快模型迭代速度;但由于模型的前向传播过程中存在循环,直接使用AMP,容易出现梯度上溢。通过适当调小梯度缩放因子的初始值和增长率,调大回退因子值和增长间隔,从而控制训练过程中的梯度缩放幅度,使得模型的收敛速度和收敛精度不受影响。
所述激活重计算(Activation Checkpointing)技术通过在合适的位置设置激活值存储点,在反向传播过程从最近的存储点重新计算需要的激活值,从而减少内存占用;但会增加部分计算时间。
在卷积循环神经网络的训练过程中,激活值占用了大部分显存,通过设置合适的激活值存储点,可以显著减少显存占用,而不会大幅增加计算时间,从而支持更大的训练批量,平衡通信计算比。
由于卷积循环神经网络中存在序列维度的循环,在设置存储点时,通过分析时序循环展开后的计算图,梳理模型各单元之间的依赖关系,从而选择出计算量较小、激活值较大的层来设置存储点,能有效降低显存占用,而不过度影响计算效率。
本发明最终选择将每层LSTMCell作为一个模块来设置激活值存储点,该设置方式效果最佳且更为通用,如图6所示。
一种卷积循环神经网络混合分布式并行训练系统:
所述系统包括:数据处理模块、二阶段流水线并行改造模块、流水线并行训练模块和分布式混合并行模块;
所述数据处理模块获取雷达回波灰度图像数据集,将灰度图像数据预处理为图像时间序列数据;将处理后的数据集划分为训练集、验证集和测试集;
所述二阶段流水线并行改造模块使用训练集训练模型、进行流水线并行改造,使用二阶段流水线并行的ConvLSTM,通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现封装张量转移;
所述流水线并行训练模块将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量,并且在每次前向传播前,子模型都需要初始化一次隐状态张量;设计外层模型,将每个流水线阶段作为类型实例,输入验证集并处理前向传播过程中在序列维度上的循环结构,实现通用的流水线模型结构;
所述分布式混合并行模块在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行;调整梯度缩放因子,利用自动混合精度训练的优势避免梯度上溢;并通过在合适的位置设置激活值检查点,以在反向传播过程中从最近的存储点重新计算需要的激活值;并通过全局张量扩展到多机多卡训练,使用测试集进行测试,从而最终实现针对卷积循环神经网络的分布式混合并行训练方法。
一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时实现上述方法的步骤。
本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器read only memory,ROM、可编程只读存储器programmable ROM,PROM、可擦除可编程只读存储器erasablePROM,EPROM、电可擦除可编程只读存储器electrically EPROM,EEPROM或闪存。易失性存储器可以是随机存取存储器random access memory,RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM 可用,例如静态随机存取存储器static RAM,SRAM、动态随机存取存储器dynamic RAM,DRAM、同步动态随机存取存储器synchronous DRAM,SDRAM、双倍数据速率同步动态随机存取存储器double data rate SDRAM,DDR SDRAM、增强型同步动态随机存取存储器enhanced SDRAM,ESDRAM、同步连接动态随机存取存储器synchlink DRAM,SLDRAM和直接内存总线随机存取存储器direct rambus RAM,DR RAM。应注意,本发明描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线例如同轴电缆、光纤、数字用户线digital subscriber line,DSL或无线例如红外、无线、微波等方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质例如,软盘、硬盘、磁带、光介质例如,高密度数字视频光盘digital video disc,DVD、或者半导体介质例如,固态硬盘solid state disc,SSD等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软 件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
以上对本发明所提出的一种卷积循环神经网络混合分布式并行训练方法及系统,进行了详细介绍,对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种卷积循环神经网络混合分布式并行训练方法,其特征在于:
所述方法具体包括以下步骤:
步骤1、获取雷达回波灰度图像数据集,将灰度图像数据预处理为图像时间序列数据;将处理后的数据集划分为训练集、验证集和测试集;
步骤2、通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现张量转移过程的封装;
步骤3、对模型进行流水线并行改造,将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量和前向传播过程,并且在每次前向传播前,子模型都需要初始化一次隐状态张量;
步骤4、设计外层模型,将每个流水线阶段作为类型实例,处理前向传播过程中在序列维度上的循环结构,实现通用的流水线模型结构;
步骤5、使用训练集训练模型,使用验证集调整模型,评估模型性能;
步骤6、在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行,并使用零冗余优化器降低存储开销;调整梯度缩放因子,利用自动混合精度训练的优势避免梯度上溢;并通过在合适的位置设置激活值检查点,以在反向传播过程中从最近的存储点重新计算需要的激活值;
并将上述步骤通过全局张量扩展到多机多卡训练,使用测试集进行测试,从而最终实现针对卷积循环神经网络的分布式混合并行训练方法。
2.根据权利要求1所述方法,其特征在于:在步骤1中,
在所述雷达回波灰度图像数据集中,以Ref格式存储,数据的时间分辨率为6分钟,空间分辨率0.01°;
将图像读取为矩阵数组,对所述雷达回波灰度图像进行填充,并滤除部分异常像素值,得到的单张图像尺寸为900*900,然后以20作为序列长度,将数据集整理为时间序列图像的集合,作为序列预测任务的输入。
3.根据权利要求2所述方法,其特征在于:在步骤3中,
所述流水线并行改造具体为:
步骤3.1、首先将原模型根据ConvLSTMCell的层数均分为两个子模型,每个子模型对应一个流水线阶段,进行数据分发并初始化隐状态张量;
步骤3.2、判断当前时间步是否小于序列长度,若是则执行步骤3.3,若否则执行步骤3.6;
步骤3.3、使用掩码混合输入数据,执行流水线阶段一的前向传播,并将张量转移到流水线阶段二;
步骤3.4、执行流水线阶段二的前向传播和张量转移,并将转移后的张量数据追加到输出张量中,时间步加一;
步骤3.5、重新判断当前时间步是否小于序列长度,若是则重新执行步骤3.3,若否则执行步骤3.6;
步骤3.6、调整输出张量维度,计算损失函数并执行反向传播;
最后一个流水线阶段的输出就是二阶段流水线并行的ConvLSTM模型的输出,既会在下一个时间步用于计算掩码,也会在本轮前向传播结束后用于损失函数计算。
4.根据权利要求3所述方法,其特征在于:在步骤3中,
假设N为序列长度,S为流水线层数,B表示训练批量大小,Nhidden为隐层状态维度,H为输入图像高度,W为输入图像宽度,C为输入图像通道数,那么使用流水线并行策略进行训练,每次前向传播过程中的总通信量V为
V=B*Nhidden*H*W*(S-1)*N+B*C*H*W*N (7)。
5.根据权利要求4所述方法,其特征在于:在步骤6,
通过数据并行、零冗余优化器、自动混合精度训练和激活重计算技术实现了分布式混合并行训练;
所述数据并行和零冗余优化器具体为:
每个流水线阶段包含多个计算节点,这些计算节点构成一个数据并行组,同一个数据并行组内的计算节点都持有相同的子模型;
在模型训练过程中,不同流水线阶段之间需要以数据并行组为单位执行张量转移;
在每轮前向传播前,通过采样器来控制数据集的分发过程,通过设定采样器的副本数量和分发节点组,使数据集只分发到第一个流水线阶段所包含的计算节点上;
在前向传播过程中,利用张量的Placement信息,控制全局张量以数据并行组为单位在流水线阶段之间进行张量转移;
在反向传播过程中,由通信进程组以All-Reduce的方式来汇总和分发同一个数据并行组内的梯度,使计算节点能获取完整的梯度信息,从而完成参数更新,保持模型的一致性;
在每个数据并行组内,使用零冗余优化器,在多个计算节点之间分片存储模型参数、梯度和优化器状态。
6.根据权利要求5所述方法,其特征在于:
所述自动混合精度(Automatic Mixed Precision,AMP),结合了单精度(FP32)和半精度(FP16)浮点数来加速模型的训练过程;
在卷积循环神经网络的前向传播和反向传播过程中,将模型权重和激活值使用半精度浮点数进行存储和计算;能有效降低计算资源需求,同时加快模型迭代速度;通过适当调小梯度缩放因子的初始值和增长率,调大回退因子值和增长间隔,从而控制训练过程中的梯度缩放幅度,使得模型的收敛速度和收敛精度不受影响。
7.一种根据权利要求1至6中任意一项所述的卷积循环神经网络混合分布式并行训练方法的训练系统,其特征在于:
所述系统包括:数据处理模块、二阶段流水线并行改造模块、流水线并行训练模块和分布式混合并行模块;
所述数据处理模块获取雷达回波灰度图像数据集,将灰度图像数据预处理为图像时间序列数据;将处理后的数据集划分为训练集、验证集和测试集;
所述二阶段流水线并行改造模块使用训练集训练模型、进行流水线并行改造,使用二阶段流水线并行的ConvLSTM,通过Oneflow框架提供的全局张量,结合Pytorch的通信原语,实现封装张量转移;
所述流水线并行训练模块将卷积循环神经网络划分为多个均匀的流水线阶段,每个阶段的流水线管理各自子模型的隐状态张量,并且在每次前向传播前,子模型都需要初始化一次隐状态张量;设计外层模型,将每个流水线阶段作为类型实例,输入验证集并处理前向传播过程中在序列维度上的循环结构,实现通用的流水线模型结构;
所述分布式混合并行模块在流水线并行的基础上,通过改写数据集采样器的数据分发逻辑实现数据并行;调整梯度缩放因子,利用自动混合精度训练的优势避免梯度上溢;并通过在合适的位置设置激活值检查点,以在反向传播过程中从最近的存储点重新计算需要的激活值;并通过全局张量扩展到多机多卡训练,使用测试集进行测试,从而最终实现针对卷积循环神经网络的分布式混合并行训练方法。
8.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6中任意一项所述方法的步骤。
9.一种计算机可读存储介质,用于存储计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1-6中任意一项所述方法的步骤。
CN202311594605.3A 2023-11-28 2023-11-28 一种卷积循环神经网络混合分布式并行训练方法及系统 Active CN117313823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311594605.3A CN117313823B (zh) 2023-11-28 2023-11-28 一种卷积循环神经网络混合分布式并行训练方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311594605.3A CN117313823B (zh) 2023-11-28 2023-11-28 一种卷积循环神经网络混合分布式并行训练方法及系统

Publications (2)

Publication Number Publication Date
CN117313823A CN117313823A (zh) 2023-12-29
CN117313823B true CN117313823B (zh) 2024-04-12

Family

ID=89288709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311594605.3A Active CN117313823B (zh) 2023-11-28 2023-11-28 一种卷积循环神经网络混合分布式并行训练方法及系统

Country Status (1)

Country Link
CN (1) CN117313823B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158068A (zh) * 2019-12-31 2020-05-15 哈尔滨工业大学(深圳) 一种基于简单卷积循环神经网络的短临预报方法及系统
CN112446419A (zh) * 2020-10-29 2021-03-05 中山大学 基于注意力机制的时空神经网络雷达回波外推预报方法
CN112464784A (zh) * 2020-11-25 2021-03-09 西安烽火软件科技有限公司 一种基于混合并行的分布式训练方法
CN112784968A (zh) * 2021-01-29 2021-05-11 东南大学 一种加速分布式深度神经网络训练的混合流水线并行方法
CN114139690A (zh) * 2021-12-09 2022-03-04 南京邮电大学 短临降水预测方法及装置
CN115293342A (zh) * 2022-03-17 2022-11-04 西北农林科技大学 一种基于混合并行的深度卷积神经网络并行训练方法
CN115600673A (zh) * 2022-11-07 2023-01-13 中国人民解放军国防科技大学(Cn) 面向多机多卡计算系统的并行训练dnn模型的方法及系统
CN117035045A (zh) * 2022-09-16 2023-11-10 腾讯科技(深圳)有限公司 模型参数更新方法、装置、设备、存储介质和程序产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190130268A1 (en) * 2017-10-27 2019-05-02 Wave Computing, Inc. Tensor radix point calculation in a neural network
US20220051104A1 (en) * 2020-08-14 2022-02-17 Microsoft Technology Licensing, Llc Accelerating inference of traditional ml pipelines with neural network frameworks

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158068A (zh) * 2019-12-31 2020-05-15 哈尔滨工业大学(深圳) 一种基于简单卷积循环神经网络的短临预报方法及系统
CN112446419A (zh) * 2020-10-29 2021-03-05 中山大学 基于注意力机制的时空神经网络雷达回波外推预报方法
CN112464784A (zh) * 2020-11-25 2021-03-09 西安烽火软件科技有限公司 一种基于混合并行的分布式训练方法
CN112784968A (zh) * 2021-01-29 2021-05-11 东南大学 一种加速分布式深度神经网络训练的混合流水线并行方法
CN114139690A (zh) * 2021-12-09 2022-03-04 南京邮电大学 短临降水预测方法及装置
WO2023103587A1 (zh) * 2021-12-09 2023-06-15 南京邮电大学 短临降水预测方法及装置
CN115293342A (zh) * 2022-03-17 2022-11-04 西北农林科技大学 一种基于混合并行的深度卷积神经网络并行训练方法
CN117035045A (zh) * 2022-09-16 2023-11-10 腾讯科技(深圳)有限公司 模型参数更新方法、装置、设备、存储介质和程序产品
CN115600673A (zh) * 2022-11-07 2023-01-13 中国人民解放军国防科技大学(Cn) 面向多机多卡计算系统的并行训练dnn模型的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PFST-LSTM: A Spatio Temporal LSTM Model With Pseudoflow Prediction for Precipitation Nowcasting;Chuyao Luo et al;《IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing》(第14期);第843-857页 *
基于卷积门控循环单元神经网络的临近预报方法研究;陈训来 等;《高原气象》;第40卷(第2期);第411-423页 *

Also Published As

Publication number Publication date
CN117313823A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN111967679B (zh) 基于tcn模型的电离层总电子含量预报方法
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
CN113222101A (zh) 深度学习处理装置、方法、设备和存储介质
CN112906294A (zh) 用于深度学习模型的量化方法和量化装置
CN111738435B (zh) 一种基于移动设备的在线稀疏训练方法及系统
CN113674172A (zh) 一种图像处理方法、系统、装置及存储介质
CN113947133A (zh) 小样本图像识别的任务重要性感知元学习方法
CN116187430A (zh) 一种联邦学习方法及相关装置
CN117313823B (zh) 一种卷积循环神经网络混合分布式并行训练方法及系统
CN113850298A (zh) 一种图像识别方法、装置及相关设备
CN117151195A (zh) 基于求逆归一化的模型优化方法、装置、设备和介质
CN116822616A (zh) 一种用于大语言模型中Softmax函数训练的装置
CN115456149B (zh) 脉冲神经网络加速器学习方法、装置、终端及存储介质
WO2023045297A1 (zh) 图像超分辨率方法、装置、计算机设备和可读介质
US11966716B2 (en) Apparatus and method for fully parallelized simulated annealing using a self-action parameter
CN116386312A (zh) 一种交通量预测模型的构建方法和系统
CN114722490A (zh) 一种基于混合增点与区间缩减的代理模型全局优化方法
CN112001492A (zh) 关于二值权重DenseNet模型的混合流水式加速架构及加速方法
CN114580625A (zh) 用于训练神经网络的方法、设备和计算机可读存储介质
Dong et al. Caching Hybrid Rotation: A Memory Access Optimization Method for CNN on FPGA
CN116523028B (zh) 基于图像空间位置的图像表征模型训练方法及装置
CN116385839B (zh) 图像预训练模型的训练方法、装置、电子设备及存储介质
CN114625691B (zh) 一种基于乒乓结构的存内计算装置及方法
CN116883325B (zh) 一种免疫荧光图像分析方法和装置
CN111627056B (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