CN116757260B - 一种大型预训练模型的训练方法和系统 - Google Patents
一种大型预训练模型的训练方法和系统 Download PDFInfo
- Publication number
- CN116757260B CN116757260B CN202311020099.7A CN202311020099A CN116757260B CN 116757260 B CN116757260 B CN 116757260B CN 202311020099 A CN202311020099 A CN 202311020099A CN 116757260 B CN116757260 B CN 116757260B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- training
- parameter
- memory
- general processing
- 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 183
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 156
- 230000015654 memory Effects 0.000 claims abstract description 96
- 238000004364 calculation method Methods 0.000 claims abstract description 85
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013526 transfer learning Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- 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
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种大型预训练模型的训练方法和系统,所述方法包括:将输入数据分别加载到受限处理单元和通用处理单元的存储器中;所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;将标签加载到所述通用处理单元的存储器中并计算损失;根据计算的损失执行反向计算,计算梯度并更新所述参数增量;重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。可以使用计算能力受限的处理单元与通用处理单元共同实现大模型的训练,从而降低了训练过程对通用处理单元的需求,使得关键的大模型训练技术可以在更多的场景被采用,降低了功耗、时延和成本。
Description
技术领域
本申请实施例涉及深度学习技术领域,具体涉及一种大型预训练模型的训练方法和系统。
背景技术
大模型(也称大型预训练模型)的训练是一项复杂的技术,常用的策略包括预训练、微调等。预训练是指使用大规模数据集对模型进行无监督学习,以提高模型的泛化能力和训练效果。微调是指在预训练的基础上,使用较小的数据集对模型进行有监督学习,以适应具体需求和专门领域。但不论采用何种训练方法,目前大模型的训练都使用通用图形处理器(GPGPU)等通用处理单元执行运算。
AI 推理芯片是一种专门用于执行模型推理运算的芯片。AI 推理芯片通常是基于通用图形处理器(GPGPU)或专用集成电路(ASIC)的架构设计,并且具有高度优化的算法和软件支持,以实现高效的推理能力。
但是,由于芯片优化方向、计算能力等原因,AI 推理芯片无法运行或无法高效运行一些仅在模型训练时才需要的计算,因此不能或不适合在模型训练过程中直接使用。
发明内容
为此,本申请实施例提供一种大型预训练模型的训练方法和系统,可以使用计算能力受限的处理单元与通用处理单元共同实现大模型的训练,从而降低了训练过程对通用处理单元的需求,使得关键的大模型计算能力受限的处理技术可以在更多的场景被采用,降低了功耗、时延和成本。
为了实现上述目的,本申请实施例提供如下技术方案:
根据本申请实施例的第一方面,提供了一种大型预训练模型的训练方法,所述方法包括:
将输入数据分别加载到受限处理单元和通用处理单元的存储器中;
所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;
所述通用处理单元将标签加载到所述通用处理单元的存储器中并计算损失;
所述通用处理单元根据计算的损失执行反向计算,计算梯度并更新所述参数增量;
重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。
可选地,所述受限处理单元和所述通用处理单元根据预训练参数和参数增量执行前向计算,包括:
针对前向计算的每一步,若所述受限处理单元的存储器中存在预训练参数,则所述受限处理单元根据所述预训练参数得到这一步前向计算的计算结果;若所述通用处理单元存在所述预训练参数的参数增量,则所述通用处理单元根据所述预训练参数的参数增量得到这一步前向计算的计算结果;将这一步前向计算的计算结果求和,将求和的结果分别发送给所述受限处理单元和所述通用处理单元。
可选地,所述方法还包括:
根据所述梯度反方向将初始化后的预训练参数Φ0更新为 Φ0+∆Φ,如下式所示:
其中, Φ 为大型预训练模型的所有参数,Z 为训练数据集,x、y 分别为输入数据和标签;t 为 y 序列中的序号,yt 表示序列的第 t 个元素,y<t 表示序列的前 t-1 个元素,|y| 表示序列的长度。
可选地,将输入数据分别加载到受限处理单元和通用处理单元的存储器中之后,所述方法还包括:
从系统的存储器中读取大型预训练模型的预训练参数,加载到所述受限处理单元的存储器中;
构造参数增量,加载到所述通用处理单元的存储器中。
可选地,所述方法还包括:
训练结束后,将最终的参数增量从所述通用处理单元的存储器保存到系统的存储器中,丢弃所述受限处理单元的存储器中的预训练参数。
根据本申请实施例的第二方面,提供了一种大型预训练模型的训练系统,所述系统包括:
输入模块,用于将输入数据分别加载到受限处理单元和通用处理单元的存储器中;
前向计算模块,用于所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;
损失计算模块,用于所述通用处理单元将标签加载到所述通用处理单元的存储器中并计算损失;
反向计算模块,用于所述通用处理单元根据计算的损失执行反向计算,计算梯度并更新所述参数增量;
训练模块,用于重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。
可选地,所述前向计算模块,具体用于:
所述通用处理单元根据所述参数增量 计算出参数增量的参数增量;
针对前向计算的每一步,若所述受限处理单元的存储器中存在预训练参数,则所述受限处理单元根据所述预训练参数得到这一步前向计算的计算结果;若所述通用处理单元存在所述预训练参数的参数增量,则所述通用处理单元根据所述预训练参数的参数增量得到这一步前向计算的计算结果;将这一步前向计算的计算结果求和,将求和的结果分别发送给所述受限处理单元和所述通用处理单元。
可选地,所述训练模块,还用于:
根据所述梯度反方向将初始化后的预训练参数Φ0更新为 Φ0+∆Φ,如下式所示:
其中, Φ 为大型预训练模型的所有参数,Z 为训练数据集,x、y 分别为输入数据和标签;t 为 y 序列中的序号,yt 表示序列的第 t 个元素,y<t 表示序列的前 t-1 个元素,|y| 表示序列的长度。
根据本申请实施例的第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现上述第一方面所述的方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述第一方面所述的方法。
综上所述,本申请实施例提供了一种大型预训练模型的训练方法和系统,通过将输入数据分别加载到受限处理单元和通用处理单元的存储器中;所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;将标签加载到所述通用处理单元的存储器中并计算损失;根据计算的损失执行反向计算,计算梯度并更新所述参数增量;重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。可以使用计算能力受限的处理单元与通用处理单元共同实现大模型的训练,从而降低了训练过程对通用处理单元的需求,使得关键的大模型训练技术可以在更多的场景被采用,降低了功耗、时延和成本。可以使用计算能力受限的处理单元与通用处理单元共同实现大模型的训练,从而降低了训练过程对通用处理单元的需求,使得关键的大模型计算能力受限的处理技术可以在更多的场景被采用,降低了功耗、时延和成本。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本申请实施例提供的一种大型预训练模型的训练方法流程示意图;
图2为本申请实施例提供适用的整体系统架构;
图3为本申请实施例提供的训练的前向计算流程图;
图4为本申请实施例提供的训练的反向计算流程示意图;
图5为本申请实施例提供的一种大型预训练模型的训练系统框图;
图6示出了本申请实施例提供的一种电子设备的结构示意图;
图7示出了本申请实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本申请实施例涉及的词汇进行解释。
大模型(大型预训练模型):在大规模数据集上进行预训练的大型神经网络模型。大模型使用特定的深度学习算法,通过对大量数据进行自监督学习,学习到数据中包含的丰富的内在规律。大模型可以用于各种下游任务,也可以通过微调等方式进行迁移学习,以适应新的具体需求和专门领域。深度学习的各个分支,如自然语言处理、计算机视觉、语音处理等,都有相应的大模型。
微调:在预训练模型的基础上,通过在少量数据上进行进一步的训练,以适应新的具体需求和专门领域的过程。微调通常包括两个步骤:将预训练模型的权重加载到新模型中;在少量数据上进行训练,更新模型的权重和参数。微调是一种常用的迁移学习技术,可以大大减少模型训练的时间和资源消耗。
AI 推理芯片:一种专门用于执行模型推理运算的芯片。AI 推理芯片通常是基于通用图形处理器(GPGPU)或专用集成电路(ASIC)的架构设计,并且具有高度优化的算法和软件支持,以实现高效的推理能力。但是,由于芯片优化方向、计算能力等原因,AI 推理芯片无法运行或无法高效运行一些仅在模型训练时才需要的计算,因此不能或不适合在模型训练过程中直接使用。
受限处理单元(RPE,Restricted Processing Element):受限处理单元和通用处理单元是一对相对的概念。受限处理单元是一类特殊的处理单元,它们通常针对专用领域进行优化,但与此同时功能上受到一定限制,例如只能执行特定类型的运算。AI 推理芯片是一种 RPE;通用处理系统,但由于系统设置等原因,但仅允许特定运算(例如推理运算),也是一种RPE。
通用处理单元(GPE,General Processing Element):通用处理单元可以执行各种类型的运算,包括 CPU、(较为高端的)通用图形处理器(GPGPU)等。
Transformer是一种基于自注意力机制的深度学习模型,用于处理序列数据。相比于循环神经网络和卷积神经网络,Transformer 模型具有更好的并行性和更短的训练时间,能够处理更长的序列数据。
LoRA是一种微调大模型的改进方法,其冻结所有预训练参数并插入可训练的秩分解矩阵到 Transformer 架构中的各个层,用非常小的参数更新量实现了比传统微调算法更好的模型表现。
训练大模型(不论预训练、微调还是其他策略)的基本方法是对所有模型参数进行前向和反向计算,并进行梯度更新。但可以采用一些方法来改进这个过程。例如,一些微调的方法冻结所有预训练参数(即不对它们进行修改),仅插入较少的可训练参数作为模型的新的结构或模型的部分预训练参数的增量(这里称为参数更新),然后对这一部分参数进行训练、保存和加载,从而大大减小计算量和计算门槛,但可以达到更好的模型表现。
本申请实施例公开的方法提出一种使用混合计算的模式实现上述改进后的训练过程,使用功能受限的计算单元 RPE(例如 AI 推理芯片等)执行与预训练参数有关的前向推理运算;使用更加通用的计算单元 GPE(例如 CPU、GPGPU 等)执行与参数更新有关的训练运算。
图1示出了本申请实施例提供的一种大型预训练模型的训练方法,所述方法包括:
步骤101:将输入数据分别加载到受限处理单元和通用处理单元的存储器中;
步骤102:所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;
步骤103:所述通用处理单元将标签加载到所述通用处理单元的存储器中并计算损失;
步骤104:所述通用处理单元根据计算的损失执行反向计算,计算梯度并更新所述参数增量;
步骤105:重复执行上述步骤101-104,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。
在一种可能的实施方式中,在步骤102中,所述受限处理单元和所述通用处理单元根据预训练参数和参数增量执行前向计算,包括:
所述通用处理单元根据所述参数增量 计算出参数增量的参数增量;
针对前向计算的每一步,若所述受限处理单元的存储器中存在预训练参数 ,则所述受限处理单元根据所述预训练参数得到这一步前向计算的计算结果;若所述通用处理单元存在所述预训练参数的参数增量,则所述通用处理单元根据所述预训练参数的参数增量得到这一步前向计算的计算结果;将这一步前向计算的计算结果求和,将求和的结果分别发送给所述受限处理单元和所述通用处理单元。
在一种可能的实施方式中,所述方法还包括:
根据所述梯度反方向将初始化后的预训练参数Φ0更新为 Φ0+∆Φ,如下式所示:
其中, Φ 为大型预训练模型的所有参数,Z 为训练数据集,x、y 分别为输入数据和标签;t 为 y 序列中的序号,yt 表示序列的第 t 个元素,y<t 表示序列的前 t-1 个元素,|y| 表示序列的长度。
本申请实施例提供的特殊情形的训练过程为:构造一组参数Θ => 构造一组参数增量∆Φ;GPE先根据Θ计算∆Φ(Θ) => (去掉)并更新Θ => 并更新∆Φ;将Θ从GPE的存储器保存到系统的存储器中 => 将∆Φ从GPE的存储器保存到系统的存储器中。
因此在一种可能的实施方式中,所述更新所述参数增量∆Φ(Θ)按照如下公式:
其中 Θ 为优化变量。
在一种可能的实施方式中,将输入数据分别加载到受限处理单元和通用处理单元的存储器中之后,所述方法还包括:
从系统的存储器中读取大型预训练模型的预训练参数,加载到所述受限处理单元的存储器中;
构造参数增量,加载到所述通用处理单元的存储器中。
在一种可能的实施方式中,所述方法还包括:
训练结束后,将最终的参数增量从所述通用处理单元的存储器保存到系统的存储器中,丢弃所述受限处理单元的存储器中的预训练参数。
由于 RPE 对于模型的前向推理运算在功耗、时延和成本上都有优化,GPE 具有灵活性,本方法使得微调过程的计算整体上更加高效、低成本。
图2示出了本申请实施例提供的方法适用的系统架构。本系统不限于在单台计算机上运行,也可以在多台计算机组成的计算集群上运行。
本系统的处理单元由受限处理单元RPE 和通用处理单元GPE 组成,其中 RPE 相对占多数,负责执行与预训练参数有关的推理运算;GPE 相对占少数,负责执行与参数更新有关的训练运算。
RPE 的典型例包括 AI 推理芯片等,GPE 的典型例包括 CPU、GPGPU 等。但 RPE和 GPE 不局限于计算芯片,也包括能够执行推理运算或训练运算的任意子系统(例如网络推理服务等)。RPE 和 GPE 不限于只有一个,也可以有多个进行并行计算。
在控制上,本系统分别处理预训练参数和参数增量,将预训练参数加载到 RPE 相应的存储器中并调用 RPE 执行运算,将参数增量加载到 GPE 相应的存储器中并调用 GPE执行运算,并在必要时将数据在各个存储器之间移动。当然,RPE 和 GPE 也可以使用同一个存储器。
下面对本申请实施例提供的具体的训练过程进行详细解释。
模型被初始化为预训练参数 Φ0,然后通过梯度下降以最大化语言模型条件概率的方法,被更新为 Φ0+∆Φ,如下式所示:
其中 Φ 为大模型的所有参数,也是这里的优化变量;Z 为训练数据集,x、y 分别为输入数据和标签;t 为 y 序列中的序号,yt 表示序列的第 t 个元素,y<t 表示序列的前t-1 个元素,|y| 表示序列的长度。
需要说明的是,LoRA 是改进方法之一,亦存在其他的插入少量可训练参数的方法,公式会有所不同。
示例性地,在 LoRA 这一改进方法中,∆Φ=∆Φ(Θ) 由另一组参数Θ决定,而Θ 的规模相比 Φ0要小得多,于是任务变为对 Θ 优化,如下式所示:
其中 Θ 决定了大模型的所有参数的增量,也是这里的优化变量;其他变量同上。
图3示出了本申请实施例提供的训练模型的前向计算流程示意图,具体的训练过程如下:
步骤1:从系统的存储器中读取大模型的预训练参数 Φ,将其加载到 RPE 的存储器中。
若 RPE 为 AI 推理芯片,其存储器为相应芯片的内存;若为子系统,则其也应具有相应的存储器;等等。
步骤2:构造一组参数∆Φ,将其加载到 GPE 的存储器中。
若 GPE 为 CPU,其存储器为计算机内存;若为 GPGPU,其存储器为 GPGPU 的内存;若为子系统,则其也应具有相应的存储器;等等。
步骤3:从系统的存储器中读取训练数据,将输入数据 x 分别加载到 RPE 和 GPE的存储器中;RPE 和 GPE 联合执行前向计算(推理运算)。
对于前向计算的每一步,若 RPE 的存储器中存在相应参数 ϕi,则 RPE 计算出该步结果;若 GPE 的存储器中存在相应参数 ∆ϕi,则 GPE 计算出该步结果;然后执行 all-reduce 操作(即对该步结果求和并分发到 RPE 和 GPE)。这里i=1,2,3,…,ϕi和∆ϕi可能同时存在,也可能只存在一个。若只存在一个,则RPE和GPE中的一个计算出该步结果z,另一个没有计算结果或认为计算结果是0,求和则z+0=z,分发到RPE和GPE。
相比 GPE,RPE 执行前向计算(推理运算)功耗更低、速度更快,但精度更低。
步骤4:将标签y加载到 GPE 的存储器中,GPE计算损失。
输入数据 x 和标签 y 是成对的,将 x 传入模型之后希望它的输出与 y 越接近越好。假设模型输出 y’,它就要以某种方式计算 y 与 y’ 的差距,称为损失。
步骤5:GPE 执行反向计算(即使用链式法则计算梯度),并更新∆Φ。
图4示出了本申请实施例提供的训练中的反向计算流程,反向计算需要用到部分预训练参数的值,将它们从 RPE 的存储器复制到 GPE 的存储器中(例如图中的ϕ2)。
步骤6:重复执行:上述步骤3-5,直到模型指标达到预先设定的目标,或训练步数达到预先设定的值。
训练结束,将∆Φ从 GPE 的存储器保存到系统的存储器中,丢弃 RPE 的存储器中的预训练参数Φ。
需要说明的是,此方法不仅限于微调,也可以用于预训练、持续训练等各种训练策略,只要训练过程中冻结了一部分参数。
需要说明的是,预训练参数不必永远保持不变,也可以满足特定条件后进行更新调整。
本申请实施例提供的大模型训练的推理运算由受限处理单元执行,能够享受到其针对模型推理运算的优化,即降低了功耗、时延和成本。增加了 AI 推理芯片的应用场景,使得购置了大量 AI 推理芯片的企业也能够训练大模型。在推广应用后,可以降低对高端进口 GPU 的需求,并扩大国产 GPU 在大模型等领域的应用范围。
综上所述,本申请实施例提供了一种大型预训练模型的训练方法,通过将输入数据分别加载到受限处理单元和通用处理单元的存储器中;所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;将标签加载到所述通用处理单元的存储器中并计算损失;根据计算的损失执行反向计算,计算梯度并更新所述参数增量;重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。可以使用计算能力受限的处理单元与通用处理单元共同实现大模型的训练,从而降低了训练过程对通用处理单元的需求,使得关键的大模型训练技术可以在更多的场景被采用,降低了功耗、时延和成本。
基于相同的技术构思,本申请实施例还提供了一种大型预训练模型的训练系统,如图5所示,所述系统包括:
输入模块501,用于将输入数据分别加载到受限处理单元和通用处理单元的存储器中;
前向计算模块502,用于所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;
损失计算模块503,用于所述通用处理单元将标签加载到所述通用处理单元的存储器中并计算损失;
反向计算模块504,用于所述通用处理单元根据计算的损失执行反向计算,计算梯度并更新所述参数增量;
训练模块505,用于重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束。
在一种可能的实施方式中,所述前向计算模块502,具体用于:
所述通用处理单元根据所述参数增量 计算出参数增量的参数增量 ;
针对前向计算的每一步,若所述受限处理单元的存储器中存在预训练参数,则所述受限处理单元根据所述预训练参数得到这一步前向计算的计算结果;若所述通用处理单元存在所述预训练参数的参数增量,则所述通用处理单元根据所述预训练参数的参数增量得到这一步前向计算的计算结果;将这一步前向计算的计算结果求和,将求和的结果分别发送给所述受限处理单元和所述通用处理单元。
本申请实施方式还提供一种与前述实施方式所提供的方法对应的电子设备。请参考图6,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。所述电子设备20可以包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个物理端口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的方法对应的计算机可读存储介质,请参考图7,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
Claims (6)
1.一种大型预训练模型的训练方法,其特征在于,所述方法包括:
将输入数据分别加载到受限处理单元和通用处理单元的存储器中;
所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;
所述通用处理单元将标签加载到所述通用处理单元的存储器中并计算损失;
所述通用处理单元根据计算的损失执行反向计算,计算梯度并更新所述参数增量;
重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束;
所述受限处理单元和所述通用处理单元根据预训练参数和参数增量执行前向计算,包括:
针对前向计算的每一步,若所述受限处理单元的存储器中存在预训练参数,则所述受限处理单元根据所述预训练参数得到这一步前向计算的计算结果;若所述通用处理单元存在所述预训练参数的参数增量,则所述通用处理单元根据所述预训练参数的参数增量得到这一步前向计算的计算结果;将这一步前向计算的计算结果求和,将求和的结果分别发送给所述受限处理单元和所述通用处理单元;
所述方法还包括:
根据所述梯度将初始化后的预训练参数Φ0更新为Φ0+ΔΦ,如下式所示:
其中,Φ为大型预训练模型的所有参数,Z为训练数据集,x、y分别为输入数据和标签;t为y序列中的序号,yt表示序列的第t个元素,y<t表示序列的前t-1个元素,|y|表示序列的长度。
2.如权利要求1所述的方法,其特征在于,将输入数据分别加载到受限处理单元和通用处理单元的存储器中之后,所述方法还包括:
从系统的存储器中读取大型预训练模型的预训练参数,加载到所述受限处理单元的存储器中;
构造参数增量,加载到所述通用处理单元的存储器中。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
训练结束后,将最终的参数增量从所述通用处理单元的存储器保存到系统的存储器中,丢弃所述受限处理单元的存储器中的预训练参数。
4.一种大型预训练模型的训练系统,其特征在于,所述系统包括:
输入模块,用于将输入数据分别加载到受限处理单元和通用处理单元的存储器中;
前向计算模块,用于所述受限处理单元和所述通用处理单元分别根据预训练参数和参数增量执行前向计算,将计算结果存储;
损失计算模块,用于所述通用处理单元将标签加载到所述通用处理单元的存储器中并计算损失;
反向计算模块,用于所述通用处理单元根据计算的损失执行反向计算,计算梯度并更新所述参数增量;
训练模块,用于重复执行上述步骤,直至指标达到设定目标值或训练步数达到设定步数阈值,训练结束;
所述前向计算模块,具体用于:
针对前向计算的每一步,若所述受限处理单元的存储器中存在预训练参数,则所述受限处理单元根据所述预训练参数得到这一步前向计算的计算结果;若所述通用处理单元存在所述预训练参数的参数增量,则所述通用处理单元根据所述预训练参数的参数增量得到这一步前向计算的计算结果;将这一步前向计算的计算结果求和,将求和的结果分别发送给所述受限处理单元和所述通用处理单元;
所述训练模块,还用于:
根据所述梯度将初始化后的预训练参数Φ0更新为Φ0+ΔΦ,如下式所示:
其中,Φ为大型预训练模型的所有参数,Z为训练数据集,x、y分别为输入数据和标签;t为y序列中的序号,yt表示序列的第t个元素,y<t表示序列的前t-1个元素,|y|表示序列的长度。
5.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行以实现如权利要求1-3任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311020099.7A CN116757260B (zh) | 2023-08-14 | 2023-08-14 | 一种大型预训练模型的训练方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311020099.7A CN116757260B (zh) | 2023-08-14 | 2023-08-14 | 一种大型预训练模型的训练方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116757260A CN116757260A (zh) | 2023-09-15 |
CN116757260B true CN116757260B (zh) | 2024-03-19 |
Family
ID=87959382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311020099.7A Active CN116757260B (zh) | 2023-08-14 | 2023-08-14 | 一种大型预训练模型的训练方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116757260B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117350360A (zh) * | 2023-09-21 | 2024-01-05 | 摩尔线程智能科技(北京)有限责任公司 | 大模型的微调方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851670A (zh) * | 2006-05-31 | 2006-10-25 | 杭州华为三康技术有限公司 | 受限处理器访问存储器的方法、系统及可访问存储器单元 |
CN110414679A (zh) * | 2019-08-02 | 2019-11-05 | 厦门美图之家科技有限公司 | 模型训练方法、装置、电子设备和计算机可读存储介质 |
WO2020041960A1 (zh) * | 2018-08-28 | 2020-03-05 | 深圳鲲云信息科技有限公司 | 芯片适配确定方法及相关产品 |
CN111126555A (zh) * | 2018-10-31 | 2020-05-08 | 浙江宇视科技有限公司 | 神经网络模型训练方法、装置、设备及存储介质 |
CN111310828A (zh) * | 2020-02-14 | 2020-06-19 | 开易(北京)科技有限公司 | 用于adas场景的目标检测模型微调方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11094029B2 (en) * | 2017-04-10 | 2021-08-17 | Intel Corporation | Abstraction layers for scalable distributed machine learning |
DE102018110719A1 (de) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Hardwareimplementierte Punkt-zu-Punkt-Kommunikationsprimitive zum Maschinenlernen |
US11488008B2 (en) * | 2017-05-05 | 2022-11-01 | Intel Corporation | Hardware implemented point to point communication primitives for machine learning |
-
2023
- 2023-08-14 CN CN202311020099.7A patent/CN116757260B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851670A (zh) * | 2006-05-31 | 2006-10-25 | 杭州华为三康技术有限公司 | 受限处理器访问存储器的方法、系统及可访问存储器单元 |
WO2020041960A1 (zh) * | 2018-08-28 | 2020-03-05 | 深圳鲲云信息科技有限公司 | 芯片适配确定方法及相关产品 |
CN111126555A (zh) * | 2018-10-31 | 2020-05-08 | 浙江宇视科技有限公司 | 神经网络模型训练方法、装置、设备及存储介质 |
CN110414679A (zh) * | 2019-08-02 | 2019-11-05 | 厦门美图之家科技有限公司 | 模型训练方法、装置、电子设备和计算机可读存储介质 |
CN111310828A (zh) * | 2020-02-14 | 2020-06-19 | 开易(北京)科技有限公司 | 用于adas场景的目标检测模型微调方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116757260A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308398B2 (en) | Computation method | |
US20180260711A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
US11080049B2 (en) | Apparatus and methods for matrix multiplication | |
KR102175044B1 (ko) | 인공 신경망 역방향 트레이닝 실행용 장치와 방법 | |
KR102331978B1 (ko) | 인공 신경망 정방향 연산 실행용 장치와 방법 | |
US20190065958A1 (en) | Apparatus and Methods for Training in Fully Connected Layers of Convolutional Networks | |
CN110197260B (zh) | 一种数据处理方法及装置 | |
CN116757260B (zh) | 一种大型预训练模型的训练方法和系统 | |
US11775832B2 (en) | Device and method for artificial neural network operation | |
US20190138922A1 (en) | Apparatus and methods for forward propagation in neural networks supporting discrete data | |
US20180293486A1 (en) | Conditional graph execution based on prior simplified graph execution | |
US20210173648A1 (en) | Processor for neural network operation | |
Waidyasooriya et al. | Accelerator architecture for simulated quantum annealing based on resource-utilization-aware scheduling and its implementation using OpenCL | |
US20190130274A1 (en) | Apparatus and methods for backward propagation in neural networks supporting discrete data | |
CN111898752A (zh) | 执行lstm神经网络运算的装置和方法 | |
US20230401420A1 (en) | Compiling asymmetrically-quantized neural network models for deep learning acceleration | |
CN114595641A (zh) | 组合优化问题的求解方法和系统 | |
Ni et al. | Policy iteration for bounded-parameter POMDPs | |
CN114723024A (zh) | 用于存算一体芯片的基于线性规划的神经网络映射方法 | |
CN112508174A (zh) | 面向权重二值型神经网络的预计算逐列卷积计算单元 | |
CN116157807A (zh) | 用于可变卷积运算的弹性瓶颈架构 | |
CN113610211B (zh) | 一种卷积计算方法、系统、计算机设备及可读存储介质 | |
Maliţa et al. | Deep learning in low-power stereo vision accelerator for automotive | |
CN113377546B (zh) | 通信避免方法、装置、电子设备和存储介质 | |
CN116029332B (zh) | 一种基于lstm网络的片上微调方法及装置 |
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 |