CN114676761B - 预训练模型训练处理方法、装置、电子设备及存储介质 - Google Patents
预训练模型训练处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114676761B CN114676761B CN202210234103.9A CN202210234103A CN114676761B CN 114676761 B CN114676761 B CN 114676761B CN 202210234103 A CN202210234103 A CN 202210234103A CN 114676761 B CN114676761 B CN 114676761B
- Authority
- CN
- China
- Prior art keywords
- model
- training
- processor
- parameters
- model parameters
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 225
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000005516 engineering process Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 84
- 238000005457 optimization Methods 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 57
- 230000008569 process Effects 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种预训练模型训练处理方法、装置、电子设备及存储介质,所述方法应用于对待处理模型进行训练处理的服务器,所述服务器包括多个图形处理器,所述方法包括:将关于所述待处理模型的训练数据分摊至各个所述图形处理器;基于数据并行技术,通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练。通过本发明提供的预训练模型训练处理方法,可以确保待处理模型能够在较小的空间占用下实现高效训练。
Description
技术领域
本发明涉及模型训练技术领域,尤其涉及一种预训练模型训练处理方法、装置、电子设备及存储介质。
背景技术
近年来,预训练模型成为研究热点,例如,预训练语言模型已成为自然语言处理领域的研究热点。预训练语言模型旨在让机器具有与人类相似的语言能力。其通过为模型提供合适的语料库,让模型从中进行自监督学习,最终具备一定的语言理解能力、辨析能力、生成能力等。随着深度学习技术的发展和GPU计算能力的提升,预训练语言模型逐渐向大规模预训练语言模型发展,旨在通过几十亿甚至百亿的参数量和超大规模的语料库,让模型具备更强大的语言能力。迄今为止,这些大型模型已经在许多语言任务上取得了可喜的成果。
然而,如此大规模的对预训练语言模型的预训练,通常需要和非常长时间的人力物力投入,消耗巨量的计算资源,这无疑会在时间、存储、金钱等方面产生巨大的成本。
发明内容
本发明提供一种预训练模型训练处理方法、装置、电子设备及存储介质,用以解决现有技术中对于大规模预训练模型在训练过程中存在的高成本、低效率缺陷,实现了大规模预训练模型得以在较小的空间占用下,不失高效地训练。
本发明提供一种预训练模型训练处理方法,所述方法应用于对待处理模型进行训练处理的服务器,所述服务器包括多个图形处理器,所述方法包括:将关于所述待处理模型的训练数据分摊至各个所述图形处理器;基于数据并行技术,通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练。
根据本发明提供的一种预训练模型训练处理方法,所述通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练,包括:通过各个所述图形处理器对所述训练数据进行分布式计算,得到关于所述待处理模型的模型参数;将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算,用以实现对所述待处理模型进行训练。
根据本发明提供的一种预训练模型训练处理方法,所述图形处理器包括第一图形处理器,所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算,包括:响应于所述第一图形处理器发起请求指令,基于通信传输获取第二图形处理器中的模型参数,其中,所述请求指令为关于获取所述第二图形处理器中的模型参数的请求,所述第二图形处理器为除所述第一图形处理器之外的其他图形处理器;基于所述第二图形处理器中的模型参数和所述第一图形处理器中的模型参数,通过所述第一图像处理器进行计算,并在计算完毕后从所述第一图形处理器中释放所述第二图形处理器中的模型参数。
根据本发明提供的一种预训练模型训练处理方法,所述服务器包括中央处理器,在所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算之后,所述方法还包括:将所述模型参数的优化参数卸载至所述中央处理器进行存储;响应于各个所述图形处理器进行所述模型参数的优化处理,将所述优化参数由所述中央处理器加载至所述图形处理器中进行所述模型参数的优化处理;响应于优化处理完成,将加载至所述图形处理器中的所述优化参数在所述图形处理器中进行释放。
根据本发明提供的一种预训练模型训练处理方法,所述方法还包括:将所述图形处理器的显存至少划分出第一显存池和第二显存池;所述将所述优化参数由所述中央处理器加载至所述图形处理器中进行所述模型参数的优化处理,包括:在同一时刻,基于所述第一显存池和所述第二显存池交替执行相邻所述优化参数由所述中央处理器加载至所述图形处理器的加载处理,以及在所述图形处理器中基于所述优化参数进行所述模型参数的优化处理。
根据本发明提供的一种预训练模型训练处理方法,在所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算之后,所述方法还包括:将检查点保存至所述图形处理器,其中,所述检查点为在正向传播过程中计算得到的呈离散状分布的隐状态;在反向传播过程中,基于所述检查点对相邻所述检查点之间的信息进行正向传播计算,以得到重放信息;通过所述图形处理器获取所述重放信息,并基于所述重放信息对所述待处理模型进行反向传播训练,并在训练完成后从所述图形处理器中释放所述重放信息。
根据本发明提供的一种预训练模型训练处理方法,在所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算之后,所述方法还包括:确定损失函数的初始放缩比例,其中,所述初始放缩比例大于或等于第一比例阈值;基于所述初始放缩比例对所述损失函数进行处理,并得到关于处理后损失函数的梯度;若所述梯度发生上溢,将减小所述初始放缩比例,直至基于减少后的初始放缩比例得到的梯度不发生上溢。
根据本发明提供的一种预训练模型训练处理方法,在所述若所述梯度发生上溢,将减小所述初始放缩比例,直至基于减少后的初始放缩比例得到的梯度不发生上溢之后,所述方法还包括:在预设时间间隔后,将增加所述初始放缩比例,并监测基于增加后的初始放缩比例得到的梯度是否发生上溢;若所述梯度不发生上溢,则将增加后的初始放缩比例作为当前时间间隔内最终的初始放缩比例,并重复执行基于所述初始放缩比例对所述损失函数进行处理的步骤。
本发明还提供一种预训练模型训练处理装置,所述装置应用于对待处理模型进行训练处理的服务器,所述服务器包括多个图形处理器,所述装置包括:分摊模块,用于将关于所述待处理模型的训练数据分摊至各个所述图形处理器;处理模块,用于基于数据并行技术,通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的预训练模型训练处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的预训练模型训练处理方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述的预训练模型训练处理方法。
本发明提供的预训练模型训练处理方法、装置、电子设备及存储介质,通过各个图形处理器对训练数据进行分布式计算来实现对待处理模型进行训练,可以确保待处理模型能够在较小的空间占用下进行高效训练,从而提高了训练效率、减少了训练成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用本发明提供的预训练模型训练处理方法的服务器的技术方案框架图;
图2是本发明提供的预训练模型训练处理方法的流程示意图之一;
图3是本发明提供的预训练模型训练处理方法的流程示意图之二;
图4是本发明提供的CPU-GPU调度优化方案的示意图;
图5是本发明提供的预训练模型训练处理方法的流程示意图之三;
图6是本发明提供的预训练模型训练处理方法的流程示意图之四;
图7是本发明提供的预训练模型训练处理装置的结构示意图;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,大规模预训练模型成为研究热点,例如,大规模预训练语言模型已成为自然语言处理领域的研究热点。其中,大规模预训练模型(可以对应本申请的待处理模型)是指模型参数量在十亿以上的模型。
为了便于说明,在本申请中,大规模预训练模型以大规模预训练语言模型为例进行说明。可以理解的是,本申请所包含的范围并不局限于大规模预训练语言模型。
随着深度学习技术的发展和GPU计算能力的提升,预训练语言模型逐渐向大规模预训练语言模型发展,旨在通过几十亿甚至百亿的参数量和超大规模的语料库,让模型具备更强大的语言能力。迄今为止,这些大型模型已经在许多语言任务上取得了可喜的成果。
然而,如此大规模的对语言模型的预训练,通常需要和非常长时间的人力物力投入,消耗巨量的计算资源。为了解决这个问题,模型加速、模型显存优化等模型优化技术被提出,通过在模型的实现层面或算法层面,减轻大规模语言模型的训练代价。
在模型优化技术中,已经有一些工作致力于提供一套完整的代码框架来实现通用的模型优化技术。然而,这些框架的空间优化力度不足、效率偏低,兼容性欠佳。因此,本申请提出了一种预训练模型训练处理方法,可以实现低成本训练,让待处理模型能够在在较小的空间占用下,不失高效地训练。
本发明提供的预训练模型训练处理方法可以应用于对待处理模型进行训练处理的服务器,结合图1可知,应用本发明的预训练模型训练处理方法的服务器的技术方案框架可以包括模型层、算法层、实现层和硬件层。其中,本申请将从算法层和实现层两个层面来对大规模待处理模型的训练过程进行优化,用于显著地降低训练期间所需要用到的计算资源总量,充分有效地利用计算资源的并行计算能力,大幅降低大规模语言模型的研发成本。
本发明将结合下述实施例对预训练模型训练处理方法的过程进行说明。
图2是本发明提供的预训练模型训练处理方法的流程示意图之一。
在本发明一示例性实施例中,预训练模型训练处理方法可以应用于对待处理模型进行训练处理的服务器,其中,待处理模型可以是大规模模型,大规模待处理模型是指模型参数量在十亿以上的模型。服务器可以包括多个图形处理器(Graphics Processing Unit,GPU)。
结合图2可知,预训练模型训练处理方法可以包括步骤210和步骤220,下面将分别介绍各步骤。
在步骤210中,将关于待处理模型的训练数据分摊至各个图形处理器。
在步骤220中,基于数据并行技术,通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练。
在一种实施例中,可以基于数据并行技术,将关于待处理模型的训练数据平均分摊到各个图形处理器上进行分布式计算,用以实现对待处理模型进行训练。在本实施例中,通过多个图形处理器对训练数据进行分布式计算,可以分摊空间开销,并降低计算成本,从而实现高效训练。
在又一种实施例中,通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练还可以采用以下方式实现:通过各个图形处理器对训练数据进行分布式计算,得到关于待处理模型的模型参数;将模型参数分摊至各个图形处理器,并通过各个图形处理器对模型参数进行分布式计算,用以实现对待处理模型进行训练。
在应用过程中,为了进一步发挥分布式计算的优势,还可以将待处理模型的模型参数进一步平均分摊到各个图形处理器上,这样能显著减轻各个图形处理器的显存负担,提高训练效率。
在对待处理模型进行训练的过程中,往往会用到多个模型参数进行计算,因此,在进行计算过程中,还需要不同的图形处理器之间进行信息交互。
本发明将结合下述实施例对不同的图形处理器之间进行信息交互的过程进行说明。
在本发明一示例性实施例中,图形处理器可以包括第一图形处理器。将模型参数分摊至各个图形处理器,并通过各个图形处理器对模型参数进行分布式计算还可以采用以下方式实现:响应于第一图形处理器发起请求指令,基于通信传输获取第二图形处理器中的模型参数,其中,请求指令为关于获取第二图形处理器中的模型参数的请求,第二图形处理器为除第一图形处理器之外的其他图形处理器;基于第二图形处理器中的模型参数和第一图形处理器中的模型参数,通过第一图像处理器进行计算,并在计算完毕后从第一图形处理器中释放第二图形处理器中的模型参数。
在应用过程中,当各个图形处理器需要用到分摊到其他图形处理器上的模型参数(例如第一图形处理器需要用到分摊到第二图形处理器上的模型参数)时,可以通过GPU-GPU的通信进行获取,并在计算后立即从显存中释放。通过本实施例,在图形处理器计算完毕后立即将获取的模型参数从显存中释放,可以有效减少图形处理器的空间开销。
为了进一步介绍本发明提供的预训练模型训练处理方法,下面将结合图3进行说明。
图3是本发明提供的预训练模型训练处理方法的流程示意图之二。
在本发明一示例性实施例中,服务器还可以包括中央处理器,如图3所示,预训练模型训练处理方法可以包括步骤310至步骤360,其中,步骤310与步骤210相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤320至步骤360。
在步骤320中,通过各个图形处理器对训练数据进行分布式计算,得到关于待处理模型的模型参数。
在步骤330中,将模型参数分摊至各个图形处理器,并通过各个图形处理器对模型参数进行分布式计算。
在步骤340中,将模型参数的优化参数卸载至中央处理器进行存储。
在步骤350中,响应于各个图形处理器进行模型参数的优化处理,将优化参数由中央处理器加载至图形处理器中进行模型参数的优化处理。
在步骤360中,响应于优化处理完成,将加载至图形处理器中的优化参数在图形处理器中进行释放。
在应用过程中,由于深度学习中使用的优化器在混合精度训练中往往需要维护比模型参数量还要多的信息,而这些信息仅仅在正向传播之前以及反向传播之后才会使用。在本实施例中,可以将模型参数的优化参数卸载至中央处理器进行存储。当图形处理器需要使用这些优化参数时,可以将优化参数由中央处理器加载至图形处理器的显存中,并在使用完毕后立即进行释放。通过本实施例可以显著减轻各个图形处理器的显存负担,提高训练效率。
多个图形处理器在对训练数据进行分布式计算,或图形处理器从中央处理器中读取信息的过程中,需要在CPU和GPU之间进行频繁地通信,从而造成了运行时间开销。为了解决这个问题,可以使用CPU-GPU调度优化技术。
本发明将结合下述实施例对CPU-GPU调度优化方案的过程进行说明。
在本发明一示例性实施例中,预训练模型训练处理方法还可以包括将图形处理器的显存至少划分出第一显存池和第二显存池;将优化参数由中央处理器加载至图形处理器中进行模型参数的优化处理可以采用以下方式实现:在同一时刻,基于第一显存池和第二显存池交替执行相邻优化参数由中央处理器加载至图形处理器的加载处理,以及在图形处理器中基于优化参数进行模型参数的优化处理。
结合图4可知,可以将GPU显存进行分段。在一示例中,可以设置两个显存池用以交替计算和加载参数。剩下的显存部分可以定义为“固定”显存。基于“固定”显存,可以存储一些图形处理器长期需要用到的优化参数,从而避免将所有参数都进行调度。
在应用过程中,以大规模预训练语言模型的层作为划分粒度。在一示例中,预训练语言模型可以包括12层,GPU显存能够支持8层的存储与运算。在应用过程中,可以使用2层的显存大小设置两个显存池,剩下的显存存储前6层的参数,并使用两个显存池进行后6层的参数调度。由于在同一时刻(例如T2时刻),相邻优化参数的计算和加载(例如计算第7层的参数和加载第8层的参数)是同时进行的,因此可以有效减少由于CPU和GPU之间进行频繁地通信而造成的运行时间开销。在本实施例中,CPU-GPU的通信以及GPU上的数值模型计算几乎是同步执行的,因而通信时间几乎被计算时间中完全重叠,避免了额外的时间开销。
在深度学习中,模型反向传播时所需的大部分信息需要在正向传播过程中计算后保存,而不能立即释放。由于大规模预训练语言模型的尺寸大,深度大,这样大量计算后不能立即释放的信息占用了巨量的GPU显存。本申请使用检查点技术,其核心在于允许在反向传播中所需的一些信息不用在正向传播中保存,而是在反向传播的过程中进行重新计算。
本发明将结合图5对检查点技术进行说明。
图5是本发明提供的预训练模型训练处理方法的流程示意图之三。
在本发明一示例性实施例中,如图5所示,预训练模型训练处理方法可以包括步骤510至步骤560,其中,步骤510至步骤530与步骤310至步骤330相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤540至步骤560。
在步骤540中,将检查点保存至图形处理器,其中,检查点为在正向传播过程中计算得到的呈离散状分布的隐状态。
在一示例中,检查点是指一些正向传播过程中计算得到的隐状态被保留给反向传播,而其他所有计算中间结果被立即从GPU中释放,其中,这些被保留的隐状态可以称为“检查点”。需要说明的是,检查点呈离散状分布是指检点并不是连续的。在一示例中,可以依次从间隔预设层数的神经层中获取隐状态,以得到检查点。
在步骤550中,在反向传播过程中,基于检查点对相邻检查点之间的信息进行正向传播计算,以得到重放信息。
在步骤560中,通过图形处理器获取重放信息,并基于重放信息对待处理模型进行反向传播训练,并在训练完成后从图形处理器中释放重放信息。
在应用过程中,大规模语言模型可以被划分为由若干个检查点分隔的阶段,其中,检查点与检查点之间信息在反向传播中被重新用最近的检查点通过正向传播计算得到,从而形成重放信息。进一步的,通过图形处理器获取重放信息,并基于重放信息对待处理模型进行反向传播训练,并在训练完成后从图形处理器中释放重放信息。在本实施例中,重放的信息在反向传播使用后立即从图形处理器中释放,使得图形处理器的最大负担从整个模型的信息量降低到只有检查点的总信息量。
由于在模型的正向传播和反向传播中均使用了半精度的浮点数(例如fp16),其可表示范围远小于单精度的浮点数,正数范围内最大值仅约6×104,最小值仅约6×10-5。在损失函数的梯度的反向传播中较为容易出现上溢为NaN、∞或下溢为0的情况。由于大规模预训练语言模型较深,其中下溢的情况最为常见。为此,本申请对损失函数进行动态的放缩,核心目标为尽可能大地放大损失,使得损失函数的梯度增大至不下溢的程度,但又不至于上溢。
下面将结合图6对损失函数进行动态的放缩的过程进行说明。
图6是本发明提供的预训练模型训练处理方法的流程示意图之四。
在本发明一示例性实施例中,如图6所示,预训练模型训练处理方法可以包括步骤610至步骤660,其中,步骤610至步骤630与步骤310至步骤330相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤640至步骤660。
在步骤640中,确定损失函数的初始放缩比例,其中,初始放缩比例大于或等于第一比例阈值。
需要说明的是,第一比例阈值可以根据实际情况进行调整,在本实施例中不对第一比例阈值作具体限定。
在步骤650中,基于初始放缩比例对损失函数进行处理,并得到关于处理后损失函数的梯度。
在步骤660中,若梯度发生上溢,将减小初始放缩比例,直至基于减少后的初始放缩比例得到的梯度不发生上溢。
在应用过程中,可以将初始放缩比例设为一个较大的二幂数值。当检查到经过初始放缩比例处理后的损失函数的梯度存在上溢时,可以减小初始放缩比例。在一示例中,可以将初始放缩比例减半,并重新计算,直到基于减少后的初始放缩比例得到的梯度不发生上溢为止。此时,初始放缩比例即为满足目标的一个合适值。由于模型的训练较为稳定,短时间内该初始放缩比例普遍适用。
在又一种实施例中,继续以图6所述的实施例为例进行说明。在前述步骤660之后,预训练模型训练处理方法还可以包括以下步骤:
在预设时间间隔后,将增加初始放缩比例,并监测基于增加后的初始放缩比例得到的梯度是否发生上溢;若梯度不发生上溢,则将增加后的初始放缩比例作为当前时间间隔内最终的初始放缩比例,并重复执行基于初始放缩比例对损失函数进行处理的步骤。
在应用过程中,为了避免一段时间后损失函数的梯度开始下溢,本申请会每隔一段时间(对应预设时间间隔)将增加初始放缩比例。在一示例中,可以对初始放缩比例进行翻倍处理。进一步的,再监测基于增加后的初始放缩比例得到的梯度是否发生上溢;若梯度不发生上溢,则将增加后的初始放缩比例作为当前时间间隔内最终的初始放缩比例,并基于当前时间间隔内最终的初始放缩比例,重复执行基于初始放缩比例对损失函数进行处理的步骤,例如包括前述步骤650、步骤660和本实施例所述的步骤。
需要说明的是,预设时间间隔可以根据实际情况进行调整,在本实施例中不作具体限定。当前时间间隔的间隔时长也可以根据实际情况进行调整,在本实施例中不作具体限定。
在本发明又一实施例中,为了更充分地利用GPU的张量核心,本申请针对语言模型重新设计并实现了一批高效的混合精度算子,不仅在设计针对语言模型提高了并行率,也利用了CUDA的单指令多操作提高了混合精度的运算性能。
根据上述描述可知,本发明提供的预训练模型训练处理方法,通过各个图形处理器对训练数据进行分布式计算来实现对待处理模型进行训练,可以确保待处理模型能够在较小的空间占用下进行高效训练,从而提高了训练效率、减少了训练成本。
基于相同的构思,本发明还提供一种预训练模型训练处理装置。
下面对本发明提供的预训练模型训练处理装置进行描述,下文描述的预训练模型训练处理装置与上文描述的预训练模型训练处理方法可相互对应参照。
图7是本发明提供的预训练模型训练处理装置的结构示意图。
在本发明一示例性实施例中,预训练模型训练处理装置可以应用于对待处理模型进行训练处理的服务器,其中,服务器可以包括多个图形处理器。
结合图7可知,预训练模型训练处理装置可以包括分摊模块710和处理模块720,下面将分别介绍各模块。
分摊模块710可以被配置为用于将关于待处理模型的训练数据分摊至各个图形处理器。
处理模块720可以被配置为用于基于数据并行技术,通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练。
在本发明一示例性实施例中,处理模块720可以采用以下方式通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练:通过各个图形处理器对训练数据进行分布式计算,得到关于待处理模型的模型参数;将模型参数分摊至各个图形处理器,并通过各个图形处理器对模型参数进行分布式计算,用以实现对待处理模型进行训练。
在本发明一示例性实施例中,图形处理器可以包括第一图形处理器,处理模块720可以采用以下方式将模型参数分摊至各个图形处理器,并通过各个图形处理器对模型参数进行分布式计算:响应于第一图形处理器发起请求指令,基于通信传输获取第二图形处理器中的模型参数,其中,请求指令为关于获取第二图形处理器中的模型参数的请求,第二图形处理器为除第一图形处理器之外的其他图形处理器;基于第二图形处理器中的模型参数和第一图形处理器中的模型参数,通过第一图像处理器进行计算,并在计算完毕后从第一图形处理器中释放第二图形处理器中的模型参数。
在本发明一示例性实施例中,服务器可以包括中央处理器,处理模块720还可以被配置为用于:将模型参数的优化参数卸载至中央处理器进行存储;响应于各个图形处理器进行模型参数的优化处理,将优化参数由中央处理器加载至图形处理器中进行模型参数的优化处理;响应于优化处理完成,将加载至图形处理器中的优化参数在图形处理器中进行释放。
在本发明一示例性实施例中,处理模块720还可以被配置为用于:将图形处理器的显存至少划分出第一显存池和第二显存池;处理模块720可以采用以下方式将优化参数由中央处理器加载至图形处理器中进行模型参数的优化处理:在同一时刻,基于第一显存池和第二显存池交替执行相邻优化参数由中央处理器加载至图形处理器的加载处理,以及在图形处理器中基于优化参数进行模型参数的优化处理。
在本发明一示例性实施例中,处理模块720还可以被配置为用于:将检查点保存至图形处理器,其中,检查点为在正向传播过程中计算得到的呈离散状分布的隐状态;在反向传播过程中,基于检查点对相邻检查点之间的信息进行正向传播计算,以得到重放信息;通过图形处理器获取重放信息,并基于重放信息对待处理模型进行反向传播训练,并在训练完成后从图形处理器中释放所述重放信息。
在本发明一示例性实施例中,处理模块720还可以被配置为用于:确定损失函数的初始放缩比例,其中,初始放缩比例大于或等于第一比例阈值;基于初始放缩比例对损失函数进行处理,并得到关于处理后损失函数的梯度;若梯度发生上溢,将减小初始放缩比例,直至基于减少后的初始放缩比例得到的梯度不发生上溢。
在本发明一示例性实施例中,处理模块720还可以被配置为用于:在预设时间间隔后,将增加初始放缩比例,并监测基于增加后的初始放缩比例得到的梯度是否发生上溢;若梯度不发生上溢,则将增加后的初始放缩比例作为当前时间间隔内最终的初始放缩比例,并重复执行基于初始放缩比例对损失函数进行处理的步骤。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行预训练模型训练处理方法,该方法应用于对待处理模型进行训练处理的服务器,服务器包括多个图形处理器,该方法包括:将关于待处理模型的训练数据分摊至各个图形处理器;基于数据并行技术,通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的预训练模型训练处理方法,该方法应用于对待处理模型进行训练处理的服务器,服务器包括多个图形处理器,该方法包括:将关于待处理模型的训练数据分摊至各个图形处理器;基于数据并行技术,通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的预训练模型训练处理方法,该方法应用于对待处理模型进行训练处理的服务器,服务器包括多个图形处理器,该方法包括:将关于待处理模型的训练数据分摊至各个图形处理器;基于数据并行技术,通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
进一步可以理解的是,本发明实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种预训练模型训练处理方法,其特征在于,所述方法应用于对待处理模型进行训练处理的服务器,所述服务器包括多个图形处理器,所述方法包括:
将关于所述待处理模型的训练数据分摊至各个所述图形处理器;
基于数据并行技术,通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练,其中,
所述通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练,包括:
通过各个所述图形处理器对所述训练数据进行分布式计算,得到关于所述待处理模型的模型参数;
将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算,用以实现对所述待处理模型进行训练;
所述服务器包括中央处理器,在所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算之后,所述方法还包括:
将所述模型参数的优化参数卸载至所述中央处理器进行存储;
响应于各个所述图形处理器进行所述模型参数的优化处理,将所述优化参数由所述中央处理器加载至所述图形处理器中进行所述模型参数的优化处理;
响应于优化处理完成,将加载至所述图形处理器中的所述优化参数在所述图形处理器中进行释放;
所述方法还包括:将所述图形处理器的显存至少划分出第一显存池和第二显存池;
所述将所述优化参数由所述中央处理器加载至所述图形处理器中进行所述模型参数的优化处理,包括:
在同一时刻,基于所述第一显存池和所述第二显存池交替执行相邻所述优化参数由所述中央处理器加载至所述图形处理器的加载处理,以及在所述图形处理器中基于所述优化参数进行所述模型参数的优化处理,其中,所述图形处理器的显存还包括固定显存,所述固定显存用于存储所述图形处理器长期用到的优化参数;
所述图形处理器包括第一图形处理器,所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算,包括:
响应于所述第一图形处理器发起请求指令,基于通信传输获取第二图形处理器中的模型参数,其中,所述请求指令为关于获取所述第二图形处理器中的模型参数的请求,所述第二图形处理器为除所述第一图形处理器之外的其他图形处理器;
基于所述第二图形处理器中的模型参数和所述第一图形处理器中的模型参数,通过所述第一图像处理器进行计算,并在计算完毕后从所述第一图形处理器中释放所述第二图形处理器中的模型参数;
在所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算之后,所述方法还包括:
将检查点保存至所述图形处理器,其中,所述检查点为在正向传播过程中计算得到的呈离散状分布的隐状态;
在反向传播过程中,基于所述检查点对相邻所述检查点之间的信息进行正向传播计算,以得到重放信息;
通过所述图形处理器获取所述重放信息,并基于所述重放信息对所述待处理模型进行反向传播训练,并在训练完成后从所述图形处理器中释放所述重放信息。
2.根据权利要求1所述的预训练模型训练处理方法,其特征在于,在所述将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算之后,所述方法还包括:
确定损失函数的初始放缩比例,其中,所述初始放缩比例大于或等于第一比例阈值;
基于所述初始放缩比例对所述损失函数进行处理,并得到关于处理后损失函数的梯度;
若所述梯度发生上溢,将减小所述初始放缩比例,直至基于减少后的初始放缩比例得到的梯度不发生上溢。
3.根据权利要求2所述的预训练模型训练处理方法,其特征在于,在所述若所述梯度发生上溢,将减小所述初始放缩比例,直至基于减少后的初始放缩比例得到的梯度不发生上溢之后,所述方法还包括:
在预设时间间隔后,将增加所述初始放缩比例,并监测基于增加后的初始放缩比例得到的梯度是否发生上溢;
若所述梯度不发生上溢,则将增加后的初始放缩比例作为当前时间间隔内最终的初始放缩比例,并重复执行基于所述初始放缩比例对所述损失函数进行处理的步骤。
4.一种预训练模型训练处理装置,其特征在于,所述装置应用于对待处理模型进行训练处理的服务器,所述服务器包括多个图形处理器,所述装置包括:
分摊模块,用于将关于所述待处理模型的训练数据分摊至各个所述图形处理器;
处理模块,用于基于数据并行技术,通过各个所述图形处理器对所述训练数据进行分布式计算,用以实现对所述待处理模型进行训练,其中,
处理模块采用以下方式通过各个图形处理器对训练数据进行分布式计算,用以实现对待处理模型进行训练:通过各个图形处理器对训练数据进行分布式计算,得到关于待处理模型的模型参数;将模型参数分摊至各个图形处理器,并通过各个图形处理器对模型参数进行分布式计算,用以实现对待处理模型进行训练;
服务器包括中央处理器,处理模块用于:将模型参数的优化参数卸载至中央处理器进行存储;响应于各个图形处理器进行模型参数的优化处理,将优化参数由中央处理器加载至图形处理器中进行模型参数的优化处理;响应于优化处理完成,将加载至图形处理器中的优化参数在图形处理器中进行释放;
处理模块用于:将图形处理器的显存至少划分出第一显存池和第二显存池;处理模块采用以下方式将优化参数由中央处理器加载至图形处理器中进行模型参数的优化处理:在同一时刻,基于第一显存池和第二显存池交替执行相邻优化参数由中央处理器加载至图形处理器的加载处理,以及在图形处理器中基于优化参数进行模型参数的优化处理,其中,所述图形处理器的显存还包括固定显存,所述固定显存用于存储所述图形处理器长期用到的优化参数;
所述图形处理器包括第一图形处理器,所述处理模块采用以下方式实现将所述模型参数分摊至各个所述图形处理器,并通过各个所述图形处理器对所述模型参数进行分布式计算:
响应于所述第一图形处理器发起请求指令,基于通信传输获取第二图形处理器中的模型参数,其中,所述请求指令为关于获取所述第二图形处理器中的模型参数的请求,所述第二图形处理器为除所述第一图形处理器之外的其他图形处理器;
基于所述第二图形处理器中的模型参数和所述第一图形处理器中的模型参数,通过所述第一图像处理器进行计算,并在计算完毕后从所述第一图形处理器中释放所述第二图形处理器中的模型参数;
所述处理模块还被配置为用于:将检查点保存至所述图形处理器,其中,所述检查点为在正向传播过程中计算得到的呈离散状分布的隐状态;
在反向传播过程中,基于所述检查点对相邻所述检查点之间的信息进行正向传播计算,以得到重放信息;
通过所述图形处理器获取所述重放信息,并基于所述重放信息对所述待处理模型进行反向传播训练,并在训练完成后从所述图形处理器中释放所述重放信息。
5.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述的预训练模型训练处理方法。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的预训练模型训练处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210234103.9A CN114676761B (zh) | 2022-03-10 | 2022-03-10 | 预训练模型训练处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210234103.9A CN114676761B (zh) | 2022-03-10 | 2022-03-10 | 预训练模型训练处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114676761A CN114676761A (zh) | 2022-06-28 |
CN114676761B true CN114676761B (zh) | 2024-03-19 |
Family
ID=82071572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210234103.9A Active CN114676761B (zh) | 2022-03-10 | 2022-03-10 | 预训练模型训练处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676761B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115633216B (zh) * | 2022-09-05 | 2024-05-28 | 北京智源人工智能研究院 | 时域运动一致性视频生成模型的训练方法和视频生成方法 |
CN115965070B (zh) * | 2022-11-11 | 2023-10-20 | 北京百度网讯科技有限公司 | 计算图处理方法、装置、设备、存储介质以及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN111898424A (zh) * | 2020-06-19 | 2020-11-06 | 贝壳技术有限公司 | 文字识别模型训练方法、装置、电子设备及存储介质 |
CN112052950A (zh) * | 2020-08-24 | 2020-12-08 | 北京达佳互联信息技术有限公司 | 神经网络训练方法、模型计算服务器及存储介质 |
CN113570397A (zh) * | 2021-01-27 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 一种模型训练设备、方法、装置及介质 |
CN113641804A (zh) * | 2021-07-19 | 2021-11-12 | 北京百度网讯科技有限公司 | 预训练模型获取方法、装置、电子设备及存储介质 |
CN114035937A (zh) * | 2021-10-15 | 2022-02-11 | 北京潞晨科技有限公司 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
-
2022
- 2022-03-10 CN CN202210234103.9A patent/CN114676761B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN111898424A (zh) * | 2020-06-19 | 2020-11-06 | 贝壳技术有限公司 | 文字识别模型训练方法、装置、电子设备及存储介质 |
CN112052950A (zh) * | 2020-08-24 | 2020-12-08 | 北京达佳互联信息技术有限公司 | 神经网络训练方法、模型计算服务器及存储介质 |
CN113570397A (zh) * | 2021-01-27 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 一种模型训练设备、方法、装置及介质 |
CN113641804A (zh) * | 2021-07-19 | 2021-11-12 | 北京百度网讯科技有限公司 | 预训练模型获取方法、装置、电子设备及存储介质 |
CN114035937A (zh) * | 2021-10-15 | 2022-02-11 | 北京潞晨科技有限公司 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114676761A (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114676761B (zh) | 预训练模型训练处理方法、装置、电子设备及存储介质 | |
CN110458280B (zh) | 一种适用于移动端的卷积神经网络加速方法及系统 | |
CN112711478B (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
CN111860867B (zh) | 一种混合异构系统的模型训练方法、系统及相关装置 | |
US20200159589A1 (en) | System and method for dynamic scheduling of distributed deep learning training jobs | |
US20230267569A1 (en) | Acceleration of gpus in cloud computing | |
CN110795226B (zh) | 利用计算机系统处理任务的方法、电子设备和存储介质 | |
CN113570033B (zh) | 神经网络处理单元、神经网络的处理方法及其装置 | |
CN109657794B (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN111352727A (zh) | 一种应用于图像混合集群处理系统的图像处理方法 | |
CN116991560B (zh) | 针对语言模型的并行调度方法、装置、设备及存储介质 | |
CN106445688A (zh) | 一种基于mic计算平台的nlm并行图像增强方法 | |
CN111061511B (zh) | 一种服务处理方法、装置及存储介质和服务器 | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
CN112764893A (zh) | 数据处理方法和数据处理系统 | |
CN114298329A (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN113655986B9 (zh) | 一种基于numa亲和性的fft卷积算法并行实现方法及系统 | |
CN115034365B (zh) | 一种面向神经网络处理器的多核并行计算方法 | |
US20240004718A1 (en) | Compiling tensor operators for neural network models based on tensor tile configurations | |
CN114676760B (zh) | 预训练模型推理处理方法、装置、电子设备及存储介质 | |
CN113888390A (zh) | 特征图处理方法、装置、电子设备和计算机可读介质 | |
Biswas et al. | An Efficient Reduced-Memory GPU-based Dynamic Programming Strategy for Bounded Knapsack Problems | |
CN111985605A (zh) | 信息处理装置、控制方法和存储信息处理程序的存储介质 | |
CN118394919B (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 |