CN116862019B - 基于数据并行范式的模型训练方法及装置 - Google Patents

基于数据并行范式的模型训练方法及装置 Download PDF

Info

Publication number
CN116862019B
CN116862019B CN202310826122.5A CN202310826122A CN116862019B CN 116862019 B CN116862019 B CN 116862019B CN 202310826122 A CN202310826122 A CN 202310826122A CN 116862019 B CN116862019 B CN 116862019B
Authority
CN
China
Prior art keywords
reconstruction
tensors
strategy
layer
preset
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
CN202310826122.5A
Other languages
English (en)
Other versions
CN116862019A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202310826122.5A priority Critical patent/CN116862019B/zh
Publication of CN116862019A publication Critical patent/CN116862019A/zh
Application granted granted Critical
Publication of CN116862019B publication Critical patent/CN116862019B/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
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请涉及一种基于数据并行范式的模型训练方法及装置,其中,方法包括:对目标深度学习模型的计算图进行逐层算子划分和切割,并对计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到每一层的不同类型的张量的重构策略;遍历计算图的每一层的不同类型的张量的重构策略得到最佳重构策略,并基于最佳重构策略生成整个计算图的内存复用策略;构造分布式的运行时后端,基于内存复用策略对计算图的每一个算子进行调度,以达到目标深度学习模型的训练过程的加速目的。由此,解决了相关技术中,受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题。

Description

基于数据并行范式的模型训练方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种基于数据并行范式的模型训练方法及装置。
背景技术
深度学习技术是一种提炼大数据隐含信息的重要手段,逐渐改变人类的信息化进程。深度学习模型需要大量的计算和数据进行调整,从而达到对特定问题的精准建模。通常来说,深度学习模型越复杂(参数量大),其对信息的提取能力就越强,与之对应的,模型的训练也就越复杂,因此,分布式训练成为当今大模型训练的基本方法。
相关技术中,大模型训练有多种方式,按照对模型和数据的切分方式,可以分为数据并行、模型并行和流水线并行以及上述多种方式的组合,其中,数据并行是最常用也是最成熟的深度学习分布式训练方法。
然而,数据并行的深度学习模型训练方式受限于单个设备的容量,即数据并行的模型训练方法要求每个设备需要对整个计算图进行遍历,也需要为计算图的每个算子和张量分配内存,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练,有待改进。
发明内容
本申请提供一种基于数据并行范式的模型训练方法及装置,以解决相关技术中,数据并行的深度学习模型训练方式受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题。
本申请第一方面实施例提供一种基于数据并行范式的模型训练方法,包括以下步骤:对目标深度学习模型的计算图进行逐层算子划分和切割,并对所述计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到所述每一层的不同类型的张量的重构策略;遍历所述计算图的所述每一层的不同类型的张量的重构策略得到最佳重构策略,并基于所述最佳重构策略生成整个所述计算图的内存复用策略;以及构造分布式的运行时后端,基于所述内存复用策略对所述计算图的每一个所述算子进行调度,以达到所述目标深度学习模型的训练过程的加速目的。
可选地,在本申请的一个实施例中,所述张量的类型包括持久型类型和临时型类型。
可选地,在本申请的一个实施例中,所述对所述计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到所述每一层的不同类型的张量的重构策略,包括:如果所述张量的类型为所述持久型类型,则所述张量的重构策略包括复制策略、切分策略和交换策略;如果所述张量的类型为所述临时型类型,则所述张量的重构策略包括复制策略、交换策略和重算策略。
可选地,在本申请的一个实施例中,所述遍历所述计算图的所述每一层的不同类型的张量的重构策略得到最佳重构方式,包括:从所述每一层的不同类型的张量的重构策略中任选一个重构策略;基于任选的所述重构策略,尝试将全部持久型类型的张量切分至每个预设设备中。
可选地,在本申请的一个实施例中,所述基于任选的所述重构策略,尝试将全部持久型类型的张量切分至每个预设设备中,包括:在每个所述预设设备可以存放所述全部持久型张量时,将全部的所述持久型类型的张量交换至CPU(Central Processing Unit,中央处理器)内存中,否则将全部的临时型类型的张量交换至所述CPU内存中;将所有临时型类型的张量进行重算,并判断所述预设设备的内存容量是否满足预设限制条件;在所述预设设备满足所述预设限制条件时,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估所述重构策略的代价。
可选地,在本申请的一个实施例中,所述按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估所述重构策略的代价,包括:如果所述代价满足预设内存约束,则继续下一层的探索,否侧停止当前计算子图的探索;和/或,获取所述当前计算子图的探索时长,并判断所述探索时长是否超过预设时间阈值,其中,如果超过所述预设时间阈值,则停止所述当前计算子图的探索。
本申请第二方面实施例提供一种基于数据并行范式的模型训练装置,包括:建模模块,用于对目标深度学习模型的计算图进行逐层算子划分和切割,并对所述计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到所述每一层的不同类型的张量的重构策略;生成模块,用于遍历所述计算图的所述每一层的不同类型的张量的重构策略得到最佳重构策略,并基于所述最佳重构策略生成整个所述计算图的内存复用策略;以及调度模块,用于构造分布式的运行时后端,基于所述内存复用策略对所述计算图的每一个所述算子进行调度,以达到所述目标深度学习模型的训练过程的加速目的。
可选地,在本申请的一个实施例中,所述张量的类型包括持久型类型和临时型类型。
可选地,在本申请的一个实施例中,所述建模模块进一步用于在所述张量的类型为所述持久型类型时,所述张量的重构策略包括复制策略、切分策略和交换策略;在所述张量的类型为所述临时型类型时,所述张量的重构策略包括复制策略、交换策略和重算策略。
可选地,在本申请的一个实施例中,所述生成模块包括:选取单元,用于从所述每一层的不同类型的张量的重构策略中任选一个重构策略;切分单元,用于基于任选的所述重构策略,尝试将全部持久型类型的张量切分至每个预设设备中。
可选地,在本申请的一个实施例中,所述切分单元包括:交换子单元,用于在每个所述预设设备可以存放所述全部持久型张量时,将全部的所述持久型类型的张量交换至CPU内存中,否则将全部的临时型类型的张量交换至所述CPU内存中;判断子单元,用于将所有临时型类型的张量进行重算,并判断所述预设设备的内存容量是否满足预设限制条件;评估子单元,用于在所述预设设备满足所述预设限制条件时,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估所述重构策略的代价。
可选地,在本申请的一个实施例中,所述评估子单元进一步用于在所述代价满足预设内存约束时,继续下一层的探索,否侧停止当前计算子图的探索;和/或,获取所述当前计算子图的探索时长,并判断所述探索时长是否超过预设时间阈值,其中,如果超过所述预设时间阈值,则停止所述当前计算子图的探索。
本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的基于数据并行范式的模型训练方法。
本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的基于数据并行范式的模型训练方法。
本申请实施例可以根据计算图不同算子和张量的重构代价进行建模,并确定每个张量当前最为恰当的重构方式,形成整个计算图的内存复用策略,通过构造分布式的运行时后端,根据量化的内存复用策略,对计算图的每一个算子进行调度,实现大模型训练过程中的内存复用,能够突破模型在数据并行范式下训练受限于单个设备内存容量的限制,从而实现参数量较大的模型的高效训练。由此,解决了相关技术中,数据并行的深度学习模型训练方式受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请实施例提供的一种基于数据并行范式的模型训练方法的流程图;
图2为根据本申请一个实施例的计算图的层次化划分和数据依赖示意图;
图3为根据本申请一个实施例的层次化流水线调度示意图;
图4为根据本申请一个实施例的基于数据并行范式的模型训练方法原理示意图;
图5为根据本申请一个实施例的基于数据并行范式的模型训练方法的流程图;
图6为根据本申请实施例提供的一种基于数据并行范式的模型训练装置的结构示意图;
图7为根据本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的基于数据并行范式的模型训练方法、及装置。针对上述背景技术中提到的相关技术中,数据并行的深度学习模型训练方式受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题,本申请提供了一种基于数据并行范式的模型训练方法,在该方法中,可以根据计算图不同算子和张量的重构代价进行建模,并确定每个张量当前最为恰当的重构方式,形成整个计算图的内存复用策略,通过构造分布式的运行时后端,根据量化的内存复用策略,对计算图的每一个算子进行调度,实现大模型训练过程中的内存复用,能够突破模型在数据并行范式下训练受限于单个设备内存容量的限制,从而实现参数量较大的模型的高效训练。由此,解决了相关技术中,数据并行的深度学习模型训练方式受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题。
具体而言,图1为本申请实施例所提供的一种基于数据并行范式的模型训练方法的流程示意图。
如图1所示,该基于数据并行范式的模型训练方法包括以下步骤:
在步骤S101中,对目标深度学习模型的计算图进行逐层算子划分和切割,并对计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到每一层的不同类型的张量的重构策略。
在实际执行过程中,如图2所示,本申请实施例可以对目标深度学习模型,如参数量大的模型的计算图按层进行划分,形成多个计算子图,并对每一层的张量的产生方式进行量化建模,其中,每一层的不同张量的不同重构方式具有不同的代价(包括对带宽的消耗以及计算量的增加),这些代价最终决定了整个计算图的迭代时间和内存消耗。
可选地,在本申请的一个实施例中,张量的类型包括持久型类型和临时型类型。
其中,每一层计算子图的张量可以分为持久型类型和临时型类型。
持久型类型的张量包括参数、梯度、优化器状态三种;临时型类型的张量包括输入和输出的激活值。
可选地,在本申请的一个实施例中,对计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到每一层的不同类型的张量的重构策略,包括:如果张量的类型为持久型类型,则张量的重构策略包括复制策略、切分策略和交换策略;如果张量的类型为临时型类型,则张量的重构策略包括复制策略、交换策略和重算策略。
进一步地,持久型类型的张量可能的重构策略包括复制策略、切分策略(包括节点内多设备切分和全局切分两种)和交换策略(指GPU(Graphics Processing Unit,图形处理器)内存和CPU内存之间交换)三种;临时型类型的张量可能的重构策略包括复制(长存于GPU内存中)、交换和重算三种。
在步骤S102中,遍历计算图的每一层的不同类型的张量的重构策略得到最佳重构策略,并基于最佳重构策略生成整个计算图的内存复用策略。
进一步地,本申请实施例可以以最小化迭代时间为目标,搜索每一层所有张量的重构策略,得到最佳重构策略,从而构成整个计算图的内存复用策略,即根据不同张量的重构代价,实现对整个计算图的内存复用进行规划。
可以理解的是,每一层的张量具有不同的重构方式,也会伴随着不同的重构代价,这些张量的重构方式共同决定了整个计算图的内存复用策略,且一旦每一个张量的重构方案确定,对应的整个计算图的迭代时间和内存消耗也随之确定。
需要说明的是,必然存在许多的张量重构组合,导致最终运行时的内存消耗超过设备的物理内存容量。因此,本申请实施例可以消除掉其中无法满足内存约束的张量重构组合。
然而,遍历整个计算图的每一层的时间开销巨大,简单的进行策略树的遍历无法在实际中运行,因此,本申请实施例可以提出一个两层的搜索方式,既要找到能够满足内存约束的可行解,也要在此基础上进行迭代,找到能够降低整个计算迭代时间的解,具体的搜索方式会在下文进行阐述。
可选地,在本申请的一个实施例中,遍历计算图的每一层的不同类型的张量的重构策略得到最佳重构方式,包括:从每一层的不同类型的张量的重构策略中任选一个重构策略;基于任选的重构策略,尝试将全部持久型类型的张量切分至每个预设设备中。
在此,对搜索方式进行阐述。
在第一阶段,本申请实施例可以选择一个重构策略,具体来说,可以优先将每一个持久型类型的张量切分到全部的预设设备上。
可选地,在本申请的一个实施例中,基于任选的重构策略,尝试将全部持久型类型的张量切分至每个预设设备中,包括:在每个预设设备可以存放全部持久型张量时,将全部的持久型类型的张量交换至CPU内存中,否则将全部的临时型类型的张量交换至CPU内存中;将所有临时型类型的张量进行重算,并判断预设设备的内存容量是否满足预设限制条件;在预设设备满足预设限制条件时,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估重构策略的代价。
进一步地,在每个预设设备可以存放全部持久型张量时,本申请实施例可以将所有的持久型类型的张量交换到CPU内存中,否则,将所有的临时型类型的张量交换到CPU内存中,进而将所有的临时型类型的张量进行重算。
上述策略可以按照优先级从高到低依次执行,如果满足当前的预设设备内存容量限制则进入第二阶段的最后策略探索。
可选地,在本申请的一个实施例中,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估重构策略的代价,包括:如果代价满足预设内存约束,则继续下一层的探索,否侧停止当前计算子图的探索;和/或,获取当前计算子图的探索时长,并判断探索时长是否超过预设时间阈值,其中,如果超过预设时间阈值,则停止当前计算子图的探索。
在第二阶段,本申请实施例可以按照深度学习模型的层次化关系,从后往前遍历,尝试当前层的所有可行张量重构方法,评估其带来的代价。
如果满足预设内存约束,则继续下一层的探索;如果不满足预设内存约束或者当前的时间开销已经超过目前发现的最有解的代价,则停止当前分支的探索。
需要说明的是,第二阶段的探索十分耗时,为了不影响训练的正常执行,该阶段的探索可以设置为一种离线的方式,伴随着线上训练策略同时进行,一旦找到一个能压缩训练迭代的策略,则将该策略加载到运行时系统,进行新策略的部署。
其中,预设内存约束可以由本领域技术人员根据实际情况进行相应设置,在此不做具体限制。
在步骤S103中,构造分布式的运行时后端,基于内存复用策略对计算图的每一个算子进行调度,以达到目标深度学习模型的训练过程的加速目的。
可以理解的是,步骤S102中的内存搜索可能会导致不同张量的重构中产生不同类型的流量,包括从网卡到GPU的流量以及从CPU到GPU的流量。为消除多条流量共享链路而产生竞争损耗,运行时后端可以设计一个分层的通信流水线,能够感知服务器内设备互联拓扑,主动调度不同的流量,避免多流竞争而导致链路利用率下降。
在此基础上,本申请实施例还可以对计算图的张量重构顺序根据依赖关系和消息优先级进行了重排。如图3所示,本申请实施例能够保证高优先级的张量能够优先被重构,从而避免计算被阻塞,进一步降低迭代的时间,使得运行时后端的实际性能能够逼近搜索策略的预期迭代时间评估。
结合图2至图5所示,以一个实施例对本申请实施例的基于数据并行范式的模型训练方法的工作原理进行详细阐述。
举例而言,本申请实施例在实际执行过程中的架构可以如图4所示。
基于如图4所示架构,结合图5所示,本申请实施例可以包括以下步骤:
步骤S501:对目标深度学习模型的计算图按层进行划分,形成多个计算子图,并对每一层的张量的产生方式进行量化建模。如图2所示,本申请实施例可以对目标深度学习模型,如参数量大的模型的计算图按层进行划分,形成多个计算子图,并对每一层的张量的产生方式进行量化建模。
其中,每一层计算子图的张量可以分为持久型类型和临时型类型。
持久型类型的张量包括参数、梯度、优化器状态三种;临时型类型的张量包括输入和输出的激活值。
进一步地,持久型类型的张量可能的重构策略包括复制策略、切分策略(包括节点内多设备切分和全局切分两种)和交换策略(指GPU(Graphics Processing Unit,图形处理器)内存和CPU内存之间交换)三种;临时型类型的张量可能的重构策略包括复制(长存于GPU内存中)、交换和重算三种。
每一层的不同张量的不同重构方式具有不同的代价(包括对带宽的消耗以及计算量的增加),这些代价最终决定了整个计算图的迭代时间和内存消耗。
步骤S502:遍历计算图的每一层算子和张量,根据不同张量的重构代价,实现对整个计算图的内存复用进行规划。本申请实施例可以以最小化迭代时间为目标,搜索每一层所有张量的重构策略,得到最佳重构策略,从而构成整个计算图的内存复用策略,即根据不同张量的重构代价,实现对整个计算图的内存复用进行规划。
可以理解的是,每一层的张量具有不同的重构方式,也会伴随着不同的重构代价,这些张量的重构方式共同决定了整个计算图的内存复用策略,且一旦每一个张量的重构方案确定,对应的整个计算图的迭代时间和内存消耗也随之确定。
需要说明的是,必然存在许多的张量重构组合,导致最终运行时的内存消耗超过设备的物理内存容量。因此,本申请实施例可以消除掉其中无法满足内存约束的张量重构组合。
然而,遍历整个计算图的每一层的时间开销巨大,简单的进行策略树的遍历无法在实际中运行,因此,本申请实施例可以提出一个两层的搜索方式,既要找到能够满足内存约束的可行解,也要在此基础上进行迭代,找到能够降低整个计算迭代时间的解。
在第一阶段,本申请实施例可以选择一个重构策略,具体来说,可以优先将每一个持久型类型的张量切分到全部的预设设备上。在每个预设设备可以存放全部持久型张量时,本申请实施例可以将所有的持久型类型的张量交换到CPU内存中,否则,将所有的临时型类型的张量交换到CPU内存中,进而将所有的临时型类型的张量进行重算。上述策略可以按照优先级从高到低依次执行,如果满足当前的预设设备内存容量限制则进入第二阶段的最后策略探索。
在第二阶段,本申请实施例可以按照深度学习模型的层次化关系,从后往前遍历,尝试当前层的所有可行张量重构方法,评估其带来的代价。如果满足预设内存约束,则继续下一层的探索;如果不满足预设内存约束或者当前的时间开销已经超过目前发现的最有解的代价,则停止当前分支的探索。需要说明的是,第二阶段的探索十分耗时,为了不影响训练的正常执行,该阶段的探索可以设置为一种离线的方式,伴随着线上训练策略同时进行,一旦找到一个能压缩训练迭代的策略,则将该策略加载到运行时系统,进行新策略的部署。其中,预设内存约束可以由本领域技术人员根据实际情况进行相应设置,在此不做具体限制。
步骤S503:构造一个运行时后端,根据内存复用策略以及计算图的依赖关系,进行算子调度。可以理解的是,步骤S502中的内存搜索可能会导致不同张量的重构中产生不同类型的流量,包括从网卡到GPU的流量以及从CPU到GPU的流量。为消除多条流量共享链路而产生竞争损耗,运行时后端可以设计一个分层的通信流水线,能够感知服务器内设备互联拓扑,主动调度不同的流量,避免多流竞争而导致链路利用率下降。
在此基础上,本申请实施例还可以对计算图的张量重构顺序根据依赖关系和消息优先级进行了重排。如图3所示,本申请实施例能够保证高优先级的张量能够优先被重构,从而避免计算被阻塞,进一步降低迭代的时间,使得运行时后端的实际性能能够逼近搜索策略的预期迭代时间评估。
根据本申请实施例提出的基于数据并行范式的模型训练方法,可以根据计算图不同算子和张量的重构代价进行建模,并确定每个张量当前最为恰当的重构方式,形成整个计算图的内存复用策略,通过构造分布式的运行时后端,根据量化的内存复用策略,对计算图的每一个算子进行调度,实现大模型训练过程中的内存复用,能够突破模型在数据并行范式下训练受限于单个设备内存容量的限制,从而实现参数量较大的模型的高效训练。由此,解决了相关技术中,数据并行的深度学习模型训练方式受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题。
其次参照附图描述根据本申请实施例提出的基于数据并行范式的模型训练装置。
图6是本申请实施例的基于数据并行范式的模型训练装置的方框示意图。
如图6所示,该基于数据并行范式的模型训练装置10包括:建模模块100、生成模块200和调度模块300。
具体地,建模模块100,用于对目标深度学习模型的计算图进行逐层算子划分和切割,并对计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到每一层的不同类型的张量的重构策略。
生成模块200,用于遍历计算图的每一层的不同类型的张量的重构策略得到最佳重构策略,并基于最佳重构策略生成整个计算图的内存复用策略。
调度模块300,用于构造分布式的运行时后端,基于内存复用策略对计算图的每一个算子进行调度,以达到目标深度学习模型的训练过程的加速目的。
可选地,在本申请的一个实施例中,张量的类型包括持久型类型和临时型类型。
可选地,在本申请的一个实施例中,建模模块100进一步用于在张量的类型为持久型类型时,张量的重构策略包括复制策略、切分策略和交换策略;在张量的类型为临时型类型时,张量的重构策略包括复制策略、交换策略和重算策略。
可选地,在本申请的一个实施例中,生成模块200包括:选取单元和切分单元。
其中,选取单元,用于从每一层的不同类型的张量的重构策略中任选一个重构策略。
切分单元,用于基于任选的重构策略,尝试将全部持久型类型的张量切分至每个预设设备中。
可选地,在本申请的一个实施例中,切分单元包括:交换子单元、判断子单元和评估子单元。
其中,交换子单元,用于在每个预设设备可以存放全部持久型张量时,将全部的持久型类型的张量交换至CPU内存中,否则将全部的临时型类型的张量交换至CPU内存中。
判断子单元,用于将所有临时型类型的张量进行重算,并判断预设设备的内存容量是否满足预设限制条件。
评估子单元,用于在预设设备满足预设限制条件时,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估重构策略的代价。
可选地,在本申请的一个实施例中,评估子单元进一步用于在代价满足预设内存约束时,继续下一层的探索,否侧停止当前计算子图的探索;和/或,获取当前计算子图的探索时长,并判断探索时长是否超过预设时间阈值,其中,如果超过预设时间阈值,则停止当前计算子图的探索。需要说明的是,前述对基于数据并行范式的模型训练方法实施例的解释说明也适用于该实施例的基于数据并行范式的模型训练装置,此处不再赘述。
根据本申请实施例提出的基于数据并行范式的模型训练装置,可以根据计算图不同算子和张量的重构代价进行建模,并确定每个张量当前最为恰当的重构方式,形成整个计算图的内存复用策略,通过构造分布式的运行时后端,根据量化的内存复用策略,对计算图的每一个算子进行调度,实现大模型训练过程中的内存复用,能够突破模型在数据并行范式下训练受限于单个设备内存容量的限制,从而实现参数量较大的模型的高效训练。由此,解决了相关技术中,数据并行的深度学习模型训练方式受限于单个设备的容量,随着模型的参数量增大,设备的物理内存容量无法满足训练的需求,无法支持更大的模型训练的技术问题。
图7为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序。
处理器702执行程序时实现上述实施例中提供的基于数据并行范式的模型训练方法。
进一步地,电子设备还包括:
通信接口703,用于存储器701和处理器702之间的通信。
存储器701,用于存放可在处理器702上运行的计算机程序。
存储器701可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器701、处理器702和通信接口703独立实现,则通信接口703、存储器701和处理器702可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选地,在具体实现上,如果存储器701、处理器702及通信接口703,集成在一块芯片上实现,则存储器701、处理器702及通信接口703可以通过内部接口完成相互间的通信。
处理器702可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的基于数据并行范式的模型训练方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (6)

1.一种基于数据并行范式的模型训练方法,其特征在于,包括以下步骤:
对目标深度学习模型的计算图进行逐层算子划分和切割,并对所述计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到所述每一层的不同类型的张量的重构策略;
遍历所述计算图的所述每一层的不同类型的张量的重构策略得到最佳重构策略,并基于所述最佳重构策略生成整个所述计算图的内存复用策略;以及
构造分布式的运行时后端,基于所述内存复用策略对所述计算图的每一个所述算子进行调度,以达到所述目标深度学习模型的训练过程的加速目的
其中,所述张量的类型包括持久型类型和临时型类型;
其中,所述对所述计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到所述每一层的不同类型的张量的重构策略,包括:如果所述张量的类型为所述持久型类型,则所述张量的重构策略包括复制策略、切分策略和交换策略;如果所述张量的类型为所述临时型类型,则所述张量的重构策略包括复制策略、交换策略和重算策略;
其中,所述遍历所述计算图的所述每一层的不同类型的张量的重构策略得到最佳重构方式,包括:从所述每一层的不同类型的张量的重构策略中任选一个重构策略;基于任选的所述重构策略,尝试将全部持久型类型的张量切分至每个预设设备中;
其中,所述基于任选的所述重构策略,尝试将全部持久型类型的张量切分至每个预设设备中,包括:在每个所述预设设备存放所述全部持久型张量时,将全部的所述持久型类型的张量交换至CPU内存中,否则将全部的临时型类型的张量交换至所述CPU内存中;将所有临时型类型的张量进行重算,并判断所述预设设备的内存容量是否满足预设限制条件;在所述预设设备满足所述预设限制条件时,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估所述重构策略的代价。
2.根据权利要求1所述的方法,其特征在于,所述按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估所述重构策略的代价,包括:
如果所述代价满足预设内存约束,则继续下一层的探索,否侧停止当前计算子图的探索;
和/或,获取所述当前计算子图的探索时长,并判断所述探索时长是否超过预设时间阈值,其中,如果超过所述预设时间阈值,则停止所述当前计算子图的探索。
3.一种基于数据并行范式的模型训练装置,其特征在于,包括:
建模模块,用于对目标深度学习模型的计算图进行逐层算子划分和切割,并对所述计算图的每一层的不同类型的张量的重构代价进行量化建模,以得到所述每一层的不同类型的张量的重构策略;
生成模块,用于遍历所述计算图的所述每一层的不同类型的张量的重构策略得到最佳重构策略,并基于所述最佳重构策略生成整个所述计算图的内存复用策略;以及
调度模块,用于构造分布式的运行时后端,基于所述内存复用策略对所述计算图的每一个所述算子进行调度,以达到所述目标深度学习模型的训练过程的加速目的
其中,所述张量的类型包括持久型类型和临时型类型;
其中,所述建模模块进一步用于在所述张量的类型为所述持久型类型时,所述张量的重构策略包括复制策略、切分策略和交换策略;在所述张量的类型为所述临时型类型时,所述张量的重构策略包括复制策略、交换策略和重算策略;
其中,所述生成模块包括:选取单元,用于从所述每一层的不同类型的张量的重构策略中任选一个重构策略;切分单元,用于基于任选的所述重构策略,尝试将全部持久型类型的张量切分至每个预设设备中;
其中,所述切分单元包括:交换子单元,用于在每个所述预设设备存放所述全部持久型张量时,将全部的所述持久型类型的张量交换至CPU内存中,否则将全部的临时型类型的张量交换至所述CPU内存中;判断子单元,用于将所有临时型类型的张量进行重算,并判断所述预设设备的内存容量是否满足预设限制条件;评估子单元,用于在所述预设设备满足所述预设限制条件时,按照预设深度学习模型的层次化关系,从后往前遍历每一层的所有张量的重构策略,并评估所述重构策略的代价。
4.根据权利要求3所述的装置,其特征在于,所述评估子单元进一步用于在所述代价满足预设内存约束时,继续下一层的探索,否侧停止当前计算子图的探索;和/或,获取所述当前计算子图的探索时长,并判断所述探索时长是否超过预设时间阈值,其中,如果超过所述预设时间阈值,则停止所述当前计算子图的探索。
5.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1或2所述的基于数据并行范式的模型训练方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1或2所述的基于数据并行范式的模型训练方法。
CN202310826122.5A 2023-07-06 2023-07-06 基于数据并行范式的模型训练方法及装置 Active CN116862019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310826122.5A CN116862019B (zh) 2023-07-06 2023-07-06 基于数据并行范式的模型训练方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310826122.5A CN116862019B (zh) 2023-07-06 2023-07-06 基于数据并行范式的模型训练方法及装置

Publications (2)

Publication Number Publication Date
CN116862019A CN116862019A (zh) 2023-10-10
CN116862019B true CN116862019B (zh) 2024-03-19

Family

ID=88235390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310826122.5A Active CN116862019B (zh) 2023-07-06 2023-07-06 基于数据并行范式的模型训练方法及装置

Country Status (1)

Country Link
CN (1) CN116862019B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130693B (zh) * 2023-10-26 2024-02-13 之江实验室 张量卸载方法、装置、计算机设备及存储介质

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106408524A (zh) * 2016-08-17 2017-02-15 南京理工大学 基于二维图像辅助的深度图像增强方法
CN106708800A (zh) * 2016-11-22 2017-05-24 彭炜明 一种基于句本位语法构建汉语树库的形式化方案
CN107450903A (zh) * 2017-05-31 2017-12-08 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN107566383A (zh) * 2017-09-12 2018-01-09 南京师范大学 一种有限网络带宽约束下的高维时空场数据实时传输方法
CN111488987A (zh) * 2020-04-16 2020-08-04 苏州浪潮智能科技有限公司 一种深度学习大模型训练的方法、系统、设备及介质
US10909728B1 (en) * 2019-05-01 2021-02-02 Amazon Technologies, Inc. Learned lossy image compression codec
CN113128702A (zh) * 2021-04-15 2021-07-16 杭州电子科技大学 一种基于强化学习的神经网络自适应分布式并行训练方法
CN113961351A (zh) * 2021-10-28 2022-01-21 北京百度网讯科技有限公司 深度学习模型的分布式训练方法、装置、设备及存储介质
CN114186633A (zh) * 2021-12-10 2022-03-15 北京百度网讯科技有限公司 模型的分布式训练方法、装置、设备以及存储介质
CN114611675A (zh) * 2022-03-22 2022-06-10 浙江大学 数据处理方法、装置、电子装置和存储介质
CN114781632A (zh) * 2022-05-20 2022-07-22 重庆科技学院 基于动态可重构脉动张量运算引擎的深度神经网络加速器
CN114841327A (zh) * 2022-05-27 2022-08-02 北京字节跳动网络技术有限公司 计算图的处理方法、装置、可读介质及电子设备
CN114880130A (zh) * 2022-07-11 2022-08-09 中国科学技术大学 并行训练中突破内存限制的方法、系统、设备及存储介质
CN115587922A (zh) * 2021-07-06 2023-01-10 华为技术有限公司 张量分块方法、装置和存储介质
CN115858173A (zh) * 2022-12-27 2023-03-28 安徽深图科技有限公司 一种大型深度学习模型训练的gpu内存瓶颈改进方法
CN115994787A (zh) * 2023-02-22 2023-04-21 同济大学 一种基于神经网络的拼车需求预测匹配方法
CN116050512A (zh) * 2022-12-31 2023-05-02 北京潞晨科技有限公司 自动激活值检查点搜索和自动张量并行搜索的融合系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593632B2 (en) * 2016-12-15 2023-02-28 WaveOne Inc. Deep learning based on image encoding and decoding
US20220385907A1 (en) * 2021-05-21 2022-12-01 Qualcomm Incorporated Implicit image and video compression using machine learning systems

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106408524A (zh) * 2016-08-17 2017-02-15 南京理工大学 基于二维图像辅助的深度图像增强方法
CN106708800A (zh) * 2016-11-22 2017-05-24 彭炜明 一种基于句本位语法构建汉语树库的形式化方案
CN107450903A (zh) * 2017-05-31 2017-12-08 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN107566383A (zh) * 2017-09-12 2018-01-09 南京师范大学 一种有限网络带宽约束下的高维时空场数据实时传输方法
US10909728B1 (en) * 2019-05-01 2021-02-02 Amazon Technologies, Inc. Learned lossy image compression codec
CN111488987A (zh) * 2020-04-16 2020-08-04 苏州浪潮智能科技有限公司 一种深度学习大模型训练的方法、系统、设备及介质
CN113128702A (zh) * 2021-04-15 2021-07-16 杭州电子科技大学 一种基于强化学习的神经网络自适应分布式并行训练方法
CN115587922A (zh) * 2021-07-06 2023-01-10 华为技术有限公司 张量分块方法、装置和存储介质
CN113961351A (zh) * 2021-10-28 2022-01-21 北京百度网讯科技有限公司 深度学习模型的分布式训练方法、装置、设备及存储介质
CN114186633A (zh) * 2021-12-10 2022-03-15 北京百度网讯科技有限公司 模型的分布式训练方法、装置、设备以及存储介质
CN114611675A (zh) * 2022-03-22 2022-06-10 浙江大学 数据处理方法、装置、电子装置和存储介质
CN114781632A (zh) * 2022-05-20 2022-07-22 重庆科技学院 基于动态可重构脉动张量运算引擎的深度神经网络加速器
CN114841327A (zh) * 2022-05-27 2022-08-02 北京字节跳动网络技术有限公司 计算图的处理方法、装置、可读介质及电子设备
CN114880130A (zh) * 2022-07-11 2022-08-09 中国科学技术大学 并行训练中突破内存限制的方法、系统、设备及存储介质
CN115858173A (zh) * 2022-12-27 2023-03-28 安徽深图科技有限公司 一种大型深度学习模型训练的gpu内存瓶颈改进方法
CN116050512A (zh) * 2022-12-31 2023-05-02 北京潞晨科技有限公司 自动激活值检查点搜索和自动张量并行搜索的融合系统
CN115994787A (zh) * 2023-02-22 2023-04-21 同济大学 一种基于神经网络的拼车需求预测匹配方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Accelerating End-to-End Deep Learning Workflow With Codesign of Data Preprocessing and Scheduling;Yang Cheng 等;《IEEE Transactions on Parallel and Distributed Systems》;20210701;1802-1814 *
BGL: GPU-Efficient GNN Training by Optimizing Graph Data I/O and Preprocessing;Tianfeng Liu 等;《Symposium on Networked Systems Design and Implementation》;20211216;1-17 *
Reconstructing Training Data from Model Gradient, Provably;Zihan Wang 等;《arXiv:2212.03714》;20230610;1-26 *
分布式机器学习系统网络性能优化研究进展;王帅 等;《计算机学报》;20220715;1384-1411 *
基于异构平台的图像识别加速算法研究与实现;胡绍齐;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210215;I138-1022 *
复杂应用场景下的海量数据处理技术研究;董振;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160215;I138-1048 *
通用平台高性能可扩展网络地址转换系统;李峻峰 等;《北京邮电大学学报》;20210309;14-19 *

Also Published As

Publication number Publication date
CN116862019A (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
Schneider The vehicle-routing problem with time windows and driver-specific times
JP5425541B2 (ja) マルチプロセッサ・システム上でデータ・セットを区分化およびソートするための方法および装置
CN111626430A (zh) 一种数据处理方法及相关产品
CN116862019B (zh) 基于数据并行范式的模型训练方法及装置
KR102184280B1 (ko) 동적 파티셔닝을 이용한 데이터 프로세싱
CN105164638A (zh) 控制由计算系统执行的任务
KR20110071097A (ko) 소스 코드 처리 방법, 시스템, 및 프로그램
CN112041859A (zh) 使用分层存储在计算机上仿真量子电路
CN113037800B (zh) 作业调度方法以及作业调度装置
US20190139181A1 (en) Combined rendering and computing resource allocation management system
CN112015765B (zh) 基于缓存价值的Spark缓存淘汰方法及系统
Bock Solving the traveling repairman problem on a line with general processing times and deadlines
GB2580348A (en) Compilation method
US8768680B2 (en) Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
CN113806930A (zh) 白盒与黑盒离散事件系统协同仿真的时序推进方法及装置
Osama et al. GPU acceleration of bounded model checking with ParaFROST
Mesquita et al. Branching approaches for integrated vehicle and crew scheduling
Torralba et al. Transition trees for cost-optimal symbolic planning
Dagdelen et al. Parallel enumeration of shortest lattice vectors
KR102326586B1 (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
Aparicio et al. A scalable parallel approach for subgraph census computation
CN111158901B (zh) 计算图的优化方法、装置、计算机设备和存储介质
CN115374914B (zh) 分布式训练方法、并行深度学习框架及电子设备
JP2008171153A (ja) タスク管理装置
Reger et al. Cooperating proof attempts

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