CN116777009B - 基于内存池的智能计算系统架构和并行训练方法 - Google Patents
基于内存池的智能计算系统架构和并行训练方法 Download PDFInfo
- Publication number
- CN116777009B CN116777009B CN202311072311.4A CN202311072311A CN116777009B CN 116777009 B CN116777009 B CN 116777009B CN 202311072311 A CN202311072311 A CN 202311072311A CN 116777009 B CN116777009 B CN 116777009B
- Authority
- CN
- China
- Prior art keywords
- model
- parallel
- memory pool
- training
- trained
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 183
- 238000012549 training Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000004044 response Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013135 deep learning Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 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
- 238000005192 partition Methods 0.000 description 1
- 239000002279 physical standard Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Multi Processors (AREA)
Abstract
本申请涉及一种基于内存池的智能计算系统架构和并行训练方法,其中智能计算系统架构支持高速互联网络协议,包括:访问设备、适配器以及交换机;访问设备包括并行设备和存储设备;适配器用于将访问设备接入交换机,以在访问设备之间构建内存池进行内存共享;并行设备从内存池中读取训练集数据,对待训练模型进行并行训练,并将训练得到的模型梯度写入内存池;在内存池中加载存储设备的训练集数据,并基于模型梯度对待训练模型进行参数更新,通过在并行设备和存储设备之间构建内存池,在内存池中进行数据读取,以及待训练模型的参数更新,无需在每轮训练中对存储设备进行数据访问,解决了在并行训练中频繁的数据读取影响训练效率的问题。
Description
技术领域
本申请涉及深度学习技术领域,特别是涉及一种基于内存池的智能计算系统架构和并行训练方法。
背景技术
近年来人工智能领域快速发展,深度学习训练的计算量逐年大幅增长,同时数据集规模和网络层数的扩增,也导致深度学习的训练过程需要耗费大量的存储和计算资源。为了减少深度学习训练的时间,近年来以分布式计算为主的加速方法被广泛应用在深度学习中,分布式训练包括数据并行、模型并行以及流水线并行等模式。
在数据并行方式下进行并行训练时,将训练数据集分为多份,每个服务器节点上保存完整的模型副本,可以独立且并行地处理多份数据来加速模型训练。但是在数据并行训练中,每一轮训练都需要从存储设备读取不同的数据(比如训练数据集),还需要将读取的数据复制到处理器进行并行训练,其中涉及服务器间的通信,这样频繁的数据读取会影响训练效率。
针对相关技术中并行训练中频繁的数据读取影响训练效率的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种基于内存池的智能计算系统架构和并行训练方法,以解决相关技术中并行训练中频繁的数据读取影响训练效率的问题。
第一个方面,在本实施例中提供了一种基于内存池的智能计算系统架构,支持高速互联网络协议,包括:访问设备、适配器以及交换机;所述访问设备包括并行设备和存储设备;
所述适配器用于将所述访问设备接入所述交换机,以在所述访问设备之间构建内存池进行内存共享;
所述并行设备从所述内存池中读取训练集数据,对待训练模型进行并行训练,并将训练得到的模型梯度写入所述内存池;
在所述内存池中加载所述存储设备的训练集数据,并基于所述模型梯度对所述待训练模型进行参数更新。
在其中的一些实施例中,所述并行设备为中央处理器和/或加速器。
在其中的一些实施例中,所述适配器包括请求适配器和响应适配器;
所述并行设备通过所述请求适配器接入所述交换机;所述存储设备通过所述响应适配器接入所述交换机;
所述并行设备和所述存储设备通过所述交换机进行数据传输。
在其中的一些实施例中,所述请求适配器包括依次连接的桥接器、请求转换器、第一链路层以及第一物理层;
其中,所述并行设备连接所述桥接器,向所述请求转换器发送请求;通过所述第一链路层向所述存储设备发送请求数据包和接收响应数据包;
所述响应适配器包括依次连接的内存控制器、响应转换器、第二链路层以及第二物理层;
其中,所述响应转换器接收所述第二链路层传输的所述请求数据包,并发送到所述内存控制器;所述内存控制器连接所述存储设备,基于所述请求数据包对所述存储设备进行读写,以及将所述响应数据包通过所述第二链路层传输到所述并行设备;
所述第一物理层和所述第二物理层用于为所述第一链路层和所述第二链路层提供物理连接。
在其中的一些实施例中,所述交换机用于在所述第一链路层和所述第二链路层之间进行数据包交换。
第二个方面,在本实施例中提供了一种并行训练方法,应用于第一个方面所述的基于内存池的智能计算系统架构中的并行设备;所述方法包括:
预先获取待训练模型,并从内存池中读取训练集数据;
基于所述训练集数据,训练所述待训练模型得到模型梯度,并将所述模型梯度写入所述内存池;
基于所述内存池中的所述模型梯度,更新所述待训练模型,得到所述待训练模型更新后的模型参数。
在其中的一些实施例中,所述从内存池中读取训练集数据,包括:
基于随机序列,从所述内存池中并行读取经过划分的所述训练集数据。
在其中的一些实施例中,所述基于所述训练集数据,训练所述待训练模型得到模型梯度,并将所述模型梯度写入所述内存池,包括:
输入所述训练集数据,通过前向传播经过所述待训练模型的各层级,得到误差损失;
基于所述误差损失,通过反向传播得到所述模型梯度,并将所述模型梯度并行写入所述内存池。
在其中的一些实施例中,所述基于所述内存池中的所述模型梯度,更新所述待训练模型,得到所述待训练模型更新后的模型参数,包括:
读取所述内存池中将所述模型梯度经过梯度规约处理得到的规约梯度;
基于所述规约梯度对所述待训练模型进行参数更新,得到更新后的模型参数。
第三个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第二个方面所述的并行训练方法。
与相关技术相比,在本实施例中提供的基于内存池的智能计算系统架构和并行训练方法,其中智能计算系统架构支持高速互联网络协议,包括:访问设备、适配器以及交换机;所述访问设备包括并行设备和存储设备;所述适配器用于将所述访问设备接入所述交换机,以在所述访问设备之间构建内存池进行内存共享;所述并行设备从所述内存池中读取训练集数据,对待训练模型进行并行训练,并将训练得到的模型梯度写入所述内存池;在所述内存池中加载所述存储设备的训练集数据,并基于所述模型梯度对所述待训练模型进行参数更新。该智能计算系统架构能够通过高速互联网络协议,在并行设备和存储设备之间构建内存池,通过在内存池进行数据读取,以及在内存池中进行待训练模型的参数更新,实现了在每轮训练中无需对存储设备进行数据访问,并且减少了服务器间的通信的效果,解决了在并行训练中频繁的数据读取影响训练效率的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是一个实施例中基于内存池的智能计算系统架构的示意图;
图2是一个实施例中基于内存池的智能计算系统架构的分层示意图;
图3是一个实施例中并行训练方法的流程图;
图4是一个实施例中每轮训练中更新待训练模型的模型参数的示意图;
图5是一个优选实施例中基于内存池的智能计算系统架构的示意图;
图6是一个优选实施例中并行训练方法的流程图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
近年来人工智能领域快速发展,深度学习训练的计算量逐年大幅增长,同时数据集规模和网络层数的扩增,也导致深度学习的训练过程需要耗费大量的存储和计算资源。由于单台机器的算力有限,导致整体训练时间过长。为了减少深度学习的训练时间,近年来以分布式计算为主的加速方法被广泛应用在深度学习领域,分布式训练系统是将大数据与大型模型相结合的关键。分布式训练有数据并行、模型并行以及流水线并行等模式。
数据并行是深度学习领域最常用的并行方法。数据并行方式下进行并行训练时,将训练数据集分为多份,每个服务器节点上保存完整的模型副本,可以独立且并行地处理多份数据来加速模型训练,并且通过同步机制确保各个服务器节点的模型参数保持一致。但是在数据并行训练中,每一轮训练都需要从存储设备读取不同的数据(比如训练数据集),还需要将读取的数据复制到处理器进行并行训练,其中涉及服务器间的通信,需要将数据通过PCIe(Peripheral Component Interconnect Express,周边设备高速连接标准)传输到处理器中,这样频繁的数据读取会影响训练效率。
为了解决以上问题,在以下实施例中提供了一种基于内存池的智能计算架构和并行训练方法,能够在并行设备和存储设备之间构建内存池,通过在内存池进行数据读取,实现了在每轮训练中无需对存储设备进行数据访问,同时减少了服务器间的通信的效果。
在本实施例中提供了一种基于内存池的智能计算架构,图1是本实施例中基于内存池的智能计算架构的示意图,如图1所示,基于内存池的智能计算架构支持高速互联网络协议,其中包括:访问设备、适配器以及交换机;访问设备包括并行设备和存储设备。
适配器用于将访问设备接入交换机,以在访问设备之间构建内存池进行内存共享。
并行设备从内存池中读取训练集数据,对待训练模型进行并行训练,并将训练得到的模型梯度写入内存池。
在内存池中加载存储设备的训练集数据,并基于模型梯度对待训练模型进行参数更新。
具体的,基于内存池的智能计算架构中包括多种支持高速互联网络协议的设备,包括访问设备、适配器以及交换机。适配器用于将访问设备接入交换机,由适配器和交换机支持在访问设备之间构建内存池,提供了一种智能计算的软硬件架构。
访问设备相对于内存池进行内存共享,其中包括并行设备和存储设备。并行设备是用于进行并行训练的设备,比如处理器和加速器等。存储设备中存储有进行并行训练的训练集数据等全局数据和待训练模型参数,存储设备包括但不限于双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR SDRAM)、低功耗双倍速率同步动态随机存储器(LowPower Double Data Rate SDRAM,LPDDR)以及非易失性存储器(Non-VolatileMemory,NVM)。
适配器用于将访问设备接入内存池,图1中具体包括响应适配器和请求适配器,能够支持访问设备通过高速互联网络协议高带宽且低延迟地访问内存池。其中,一个请求适配器可以接入一个或者多个并行设备,一个响应适配器可以接入一个或者多个存储设备。
交换机可以支持一系列拓扑,一个服务器机架或多个服务器机架可以通过多个交换机联网(比如图1中为4个交换机联网),从而扩大网络规模。
高速互联网络协议支持接入内存池的访问设备互相访问内存空间,并且能够维护接入的访问设备间的数据一致性,从而扩展内存带宽,解决各设备间的存储割裂的问题,能够有效降低内存的分割导致的浪费和性能下降。高速互联网络协议具体可以是CXL(Compute Express Link,计算快速链接)、Gen-Z(总线结构式协议)以及NVLink(通信协议)等网络协议。
在每轮训练开始前,将存储设备中的训练集数据等全局数据加载到内存池中。在每轮训练中,并行设备从内存池中进行训练集数据读取,在并行设备对待训练模型进行并行训练,得到每轮训练的模型梯度并写入内存池,在内存池中基于模型梯度进行待训练模型的参数更新。
本申请实施例可以应用在人工智能中的很多领域,例如,机器翻译、智能控制、智能交通、智能家居、智能医疗以及智能安防等领域。具体地,本申请实施例可以具体应用在自动驾驶、图像分类、图像识别、图像语义分割、图像质量增强、图像超分辨率和自然语言处理等需要使用深度学习训练的领域。针对不同应用领域,本申请实施例中的训练集数据可以是图像数据、文本数据以及用户数据等,相应的,待训练模型可以是图像分类模型、图像识别模型、文本识别模型以及用户行为预测模型等。
针对现有技术中在数据并行方式下部署处理器和加速器的情况,在每轮并行训练中,一方面,处理器需要从存储设备读取不同的数据到处理器内存;另一方面,需要从处理器内存复制数据至加速器内存进行并行训练,这涉及服务器间的通信,需要通过PCIe传输到加速器内存中,而带来通信开销。相比于现有技术,本实施例中提供的基于内存池的智能计算系统架构,能够在并行设备和存储设备之间构建内存池,通过在内存池进行数据读取,以及在内存池中进行待训练模型的参数更新,实现了在每轮训练中无需对存储设备进行数据访问,也无需在服务器之间传递参数,从而减少了服务器间的通信的效果,从软硬件架构层面解决了在并行训练中频繁的数据读取影响训练效率的问题。
进一步地,由于在目前的主流计算机架构中,存储设备的性能远远落后于处理器的计算逻辑性能,在深度学习训练中会将更多的热数据放在距离算力更近、性能更高的内存中,但是内存容量有限且成本高昂。在本实施例中提供的智能计算系统架构,并行设备可以通过内存池访问存储设备的内存,从而实现了内存扩容,使得每台服务器上配置较少的内存(比如配置较少的处理器和加速器的内存),或者可以减少所需服务器的数量,从软硬件架构层面有效降低了智能计算架构的内存成本。
在其中的一些实施例中,并行设备为中央处理器和/或加速器。
具体的,并行设备是用于进行并行训练的设备,并行设备可以是中央处理器(Central Processing Unit,CPU)或者是加速器,也可以是中央处理器和加速器的组合,其中的加速器可以是专门设计用于加速机器学习模型训练和推理的AI(人工智能)加速器,比如图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-networkProcessingUnit,NPU)以及张量处理器(Tensor Processing Unit,TPU)等。
在中央处理器、加速器与存储设备之间构建内存池进行内存共享,中央处理器和/或加速器读取训练集数据,并进行数据并行的分布式计算,训练待训练模型,并将训练得到的模型梯度直接写入内存池,在内存池中进行待训练模型的参数更新,无需在服务器间进行参数传递。例如,在一些常见的场景中并行设备为加速器,可以在服务器的8个GPU(图形处理器)上进行数据并行训练。
本实施例中将中央处理器和/或加速器作为并行设备,并在并行设备上进行数据并行训练,能够在中央处理器、加速器与存储设备之间构建内存池,中央处理器和/或加速器直接在内存池进行数据读写,实现分布式并行计算的同时,有效减少了频繁的数据读取。
在其中的一些实施例中,适配器包括请求适配器和响应适配器;并行设备通过请求适配器接入交换机;存储设备通过响应适配器接入交换机;并行设备和存储设备通过交换机进行数据传输。
具体的,如图1所示,并行设备通过请求适配器接入交换机,存储设备通过响应适配器接入交换机,由适配器和交换机支持在访问设备之间构建内存池进行内存共享。
本实施例中通过提供请求适配器和响应适配器,将并行设备和请求适配器分别接入交换机,能够构建内存池进行内存共享,支持接入内存池的访问设备互相访问内存空间。
在其中的一些实施例中,请求适配器包括依次连接的桥接器、请求转换器、第一链路层以及第一物理层;其中,并行设备连接桥接器,向请求转换器发送请求;通过第一链路层向存储设备发送请求数据包和接收响应数据包。
响应适配器包括依次连接的内存控制器、响应转换器、第二链路层以及第二物理层;其中,响应转换器接收第二链路层传输的请求数据包,并发送到内存控制器;内存控制器连接存储设备,基于请求数据包对存储设备进行读写,以及将响应数据包通过第二链路层传输到并行设备。
第一物理层和第二物理层用于为第一链路层和第二链路层提供物理连接。
具体的,图2是本实施例中基于内存池的智能计算系统架构的分层示意图,图2中给出的响应适配器和请求适配器结构适用于以上实施例的图1中的响应适配器和请求适配器。如图2所示,一个请求适配器可以接入一个或者多个并行设备(图2中仅示出一个),一个响应适配器可以接入一个或者多个存储设备(图2中仅示出一个),其中并行设备为中央处理器和/或加速器。
请求适配器包括依次连接的桥接器、请求转换器、第一链路层以及第一物理层,桥接器用于连接并行设备和请求转换器,它通过网络协议与并行设备通信,同时支持数据传输。请求转换器的作用是将桥接器接收到的请求转为一个请求数据包(即协议包),传输给第一链路层。请求转换器也接收第一链路层传来的信息(比如响应数据包),并将其转发给桥接器,执行数据包重试、响应和CRC(循环冗余校验码)校验。
响应适配器包括依次连接的内存控制器、响应转换器、第二链路层以及第二物理层,响应转换器用于检查从第二链路层收到的请求数据包是否是适合网络协议的包,并且具有根据是否有错误生成ACK(确认)/NAK(未确认)包的功能。经过检查无误的正常请求数据包被传递到内存控制器,内存控制器根据响应转换器接收到的请求数据包对存储设备内存进行读写。另外,从内存控制器接收到的响应数据包被传递到第二链路层,通过第二链路层传输至并行设备。
第一链路层和第二链路层用于在并行设备和存储设备之间交换链路本地数据包(比如请求数据包和响应数据包)。第一物理层和第二物理层支持PCIe等多种物理标准,并支持标准物理层抽象(PLA)接口。
进一步地,上述实施例中的交换机用于在第一链路层和第二链路层之间进行数据包交换。
通过交换机在并行设备和存储设备之间传递数据包,如第一链路层传递给存储设备的请求数据包,和第二链路层传递给并行设备的响应数据包。
通过本实施例中提供的请求适配器和响应适配器结构,能够在并行设备和存储设备之间构建内存池,以及通过内存池进行数据传输和内存共享。
在本实施例中提供了一种并行训练方法,应用于以上实施例中基于内存池的智能计算系统架构中的并行设备,图3是本实施例的并行训练方法的流程图,如图3所示,该方法包括以下步骤:
步骤S310,预先获取待训练模型,并从内存池中读取训练集数据。
具体的,在每轮训练开始前,预先加载训练集数据和待训练模型,将训练所需的训练集数据加载到内存池,以及将待训练模型分别加载到每个并行设备中,其中待训练模型具有默认的模型参数。
并行设备为中央处理器和/或加速器,具体可以是中央处理器或者是加速器,也可以是中央处理器和加速器的组合。将训练集数据根据并行设备数量进行均匀划分,每个并行设备分别从内存池中并行读取划分后的部分训练集数据。假定训练集数据的大小为N,并且在M个并行设备上并行进行加速训练,每个并行设备分别读取到大小为N/M的部分训练集数据。
步骤S320,基于训练集数据,训练待训练模型得到模型梯度,并将模型梯度写入内存池。
具体的,在每个并行设备中,基于训练集数据对待训练模型进行训练,训练过程中包括前向传播和反向传播,训练集数据由前向后逐层计算,再进行反向传播,得到模型梯度,每个并行设备向内存池中并行写入模型梯度。
步骤S330,基于内存池中的模型梯度,更新待训练模型,得到待训练模型更新后的模型参数。
具体的,在内存池中根据写入的模型梯度进行梯度规约处理,每个并行设备读取内存池中处理后的模型梯度,进行参数更新得到更新后的模型参数。
进一步地,还可以在内存池中进行模型梯度数据和训练集数据的分区设计,上述每个并行设备向内存池的并行写入模型梯度数据的区域。
图4是本实施例中每轮训练中更新待训练模型的模型参数的示意图,如图4所示,多个并行设备(图4中仅示出3个并行设备)从内存池中并行读取训练集数据后,分别在每个并行设备训练得到模型梯度,再将更新的模型梯度并行写入内存池。
针对不同应用领域,本申请实施例中的训练集数据可以是图像数据、文本数据以及用户数据等,相应的,待训练模型可以是图像分类模型、图像识别模型、文本识别模型以及用户行为预测模型等。
下面以图像识别中深度学习训练的应用场景进行简单的说明。
当需要批量识别图像中的目标物体(比如汽车和行人等)时,利用本申请实施例的并行训练方法,预先获取图像识别模型的默认参数,并从内存池中读取预先构建的图像数据集,分别在每个并行设备上训练得到模型梯度并写入内存池中,再基于内存池中的模型梯度,更新图像识别模型,能够利用图像识别模型对图像中的目标物体进行识别。
相比于现有技术,本实施例中提供的并行训练方法,应用于以上实施例中的并行设备,通过在内存池直接进行数据读取和写入,能够在每个并行设备上进行并行训练,实现了在每轮训练中无需对存储设备进行数据访问,也无需在服务器之间传递参数,从而减少了服务器间的通信的效果,从软硬件架构层面解决了在并行训练中频繁的数据读取影响训练效率的问题。
进一步地,并行设备可以通过内存池访问存储设备的内存,从而实现了内存扩容,使得每台服务器上配置较少的内存(比如配置较少的处理器和加速器的内存),或者可以减少所需服务器的数量,从软硬件架构层面有效降低了在智能计算架构实现数据并行训练所需的内存成本。
在其中的一些实施例中,上述步骤S310中从内存池中读取训练集数据,包括步骤:基于随机序列,从内存池中并行读取经过划分的训练集数据。
具体的,为避免深度学习训练的过拟合现象,在每轮训练中加载训练集数据时需要对全局数据进行洗牌。因训练集数据在内存池中,只需要计算一个随机序列,即可实现全局洗牌。每个并行设备基于随机序列并行读取划分后的部分训练集数据。
通过本实施例中计算随机序列,并基于随机序列并行读取训练集数据,能够在加载每轮训练集数据时进行洗牌,有效避免深度学习训练中的过拟合现象。
在其中的一些实施例中,上述步骤S320中基于训练集数据,训练待训练模型得到模型梯度,并将模型梯度写入内存池,包括以下步骤:
步骤S321,输入训练集数据,通过前向传播经过待训练模型的各层级,得到误差损失。
具体的,在前向传播过程中,输入训练集数据经过待训练模型的神经网络的各个层级,每一层的输入训练集数据经过线性变换和激活函数的处理,向下传递至下一层,最终输出误差损失。
步骤S322,基于误差损失,通过反向传播得到模型梯度,并将模型梯度并行写入内存池。
具体的,反向传播过程是前向传播的逆过程,即误差的反向传递,目的是计算误差损失对神经网络参数的导数,按照通常的规则更新神经网络的各个参数,实现基于误差损失的梯度下降,得到待训练模型的模型梯度,并由每个并行设备将模型梯度并行写入内存池。
本实施例中通过前向传播,神经网络能够把输入数据转换成输出结果,而通过反向传播,神经网络可以根据每一组输入数据和对应的输出结果更新待训练模型的模型梯度,进而不断提高其预测精度和泛化能力。
在其中的一些实施例中,上述步骤S330中基于内存池中的模型梯度,更新待训练模型,得到待训练模型更新后的模型参数,包括以下步骤:
步骤S331,读取内存池中将模型梯度经过梯度规约处理得到的规约梯度。
具体的,在所有并行设备向内存池完成模型梯度写入后,在内存池中根据并行设备写入的模型梯度进行梯度规约处理,以将每个并行设备计算出的局部模型梯度规约为全局的规约梯度,每个并行设备再从内存池中读取规约梯度。其中,梯度规约处理具体可以采用平均处理、加权平均处理等方法。
步骤S332,基于规约梯度对待训练模型进行参数更新,得到更新后的模型参数。
具体的,每个并行设备在读取全局的规约梯度后,基于规约梯度对待训练模型进行参数更新,这个过程可以迭代多次(即执行多轮并行训练),直到误差损失收敛或者达到预设的迭代次数为止。
本实施例中由并行设备从内存池中读取经过规约处理后的规约梯度,能够基于规约梯度对待训练模型进行参数更新,迭代训练得到待训练模型。
下面通过优选实施例对本实施例进行描述和说明。
图5是本优选实施例的基于内存池的智能计算系统架构的示意图,如图5所示,基于内存池的智能计算架构支持高速互联网络协议,其中包括:中央处理器、加速器、存储设备、适配器以及交换机;中央处理器和加速器作为并行设备,用于进行并行训练。
适配器包括响应适配器和请求适配器,多个中央处理器和多个加速器通过请求适配器接入交换机;多个存储设备通过响应适配器接入交换机,以在中央处理器、加速器与存储设备之间构建内存池进行内存共享。
图6是本优选实施例的并行训练方法的流程图,该并行训练方法应用于以上所有实施例中的并行设备,如图6所示,该并行训练方法包括以下步骤:
步骤S610,预先将训练集数据加载到内存池,以及将待训练模型加载到每个并行设备。
步骤S620,基于随机序列,从内存池中并行读取经过划分的训练集数据。
步骤S630,在每个并行设备中输入训练集数据,基于待训练模型进行前向传播得到误差损失。
步骤S640,基于误差损失,通过反向传播得到模型梯度,并将模型梯度并行写入内存池。
步骤S650,读取内存池中将模型梯度经过梯度规约处理得到的规约梯度。
步骤S660,基于规约梯度对待训练模型进行参数更新。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
通过上述优选实施例中提供的基于内存池的智能计算系统架构和并行训练方法,能够在并行设备和存储设备之间构建内存池,通过在内存池进行数据读取,以及在内存池中进行待训练模型的参数更新,实现了在每轮训练中无需对存储设备进行数据访问,也无需在服务器之间传递参数,从而减少了服务器间的通信,从软硬件架构层面解决了在并行训练中频繁的数据读取影响训练效率的问题。
进一步地,并行设备可以通过内存池访问存储设备的内存,从而实现了内存扩容,使得每台服务器上配置较少的内存,或者可以减少所需服务器的数量,从软硬件架构层面有效降低了智能计算架构的内存成本。
此外,结合上述实施例中提供的并行训练方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种并行训练方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其他实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其他实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于内存池的智能计算系统架构,其特征在于,支持高速互联网络协议,包括:访问设备、适配器以及交换机;所述访问设备包括并行设备和存储设备;
所述适配器用于将所述访问设备接入所述交换机,以在所述访问设备之间构建内存池进行内存共享;
所述并行设备从所述内存池中读取训练集数据,对待训练模型进行并行训练,并将训练得到的模型梯度写入所述内存池;
在所述内存池中加载所述存储设备的训练集数据,并基于所述模型梯度对所述待训练模型进行参数更新。
2.根据权利要求1所述的基于内存池的智能计算系统架构,其特征在于,所述并行设备为中央处理器和/或加速器。
3.根据权利要求1所述的基于内存池的智能计算系统架构,其特征在于,所述适配器包括请求适配器和响应适配器;
所述并行设备通过所述请求适配器接入所述交换机;所述存储设备通过所述响应适配器接入所述交换机;
所述并行设备和所述存储设备通过所述交换机进行数据传输。
4.根据权利要求3所述的基于内存池的智能计算系统架构,其特征在于,所述请求适配器包括依次连接的桥接器、请求转换器、第一链路层以及第一物理层;
其中,所述并行设备连接所述桥接器,向所述请求转换器发送请求;通过所述第一链路层向所述存储设备发送请求数据包和接收响应数据包;
所述响应适配器包括依次连接的内存控制器、响应转换器、第二链路层以及第二物理层;
其中,所述响应转换器接收所述第二链路层传输的所述请求数据包,并发送到所述内存控制器;所述内存控制器连接所述存储设备,基于所述请求数据包对所述存储设备进行读写,以及将所述响应数据包通过所述第二链路层传输到所述并行设备;
所述第一物理层和所述第二物理层用于为所述第一链路层和所述第二链路层提供物理连接。
5.根据权利要求4所述的基于内存池的智能计算系统架构,其特征在于,所述交换机用于在所述第一链路层和所述第二链路层之间进行数据包交换。
6.一种并行训练方法,其特征在于,应用于权利要求1至权利要求5任意一项所述的基于内存池的智能计算系统架构中的并行设备;所述方法包括:
预先获取待训练模型,并从内存池中读取训练集数据;
基于所述训练集数据,训练所述待训练模型得到模型梯度,并将所述模型梯度写入所述内存池;
基于所述内存池中的所述模型梯度,更新所述待训练模型,得到所述待训练模型更新后的模型参数。
7.根据权利要求6所述的并行训练方法,其特征在于,所述从内存池中读取训练集数据,包括:
基于随机序列,从所述内存池中并行读取经过划分的所述训练集数据。
8.根据权利要求6所述的并行训练方法,其特征在于,所述基于所述训练集数据,训练所述待训练模型得到模型梯度,并将所述模型梯度写入所述内存池,包括:
输入所述训练集数据,通过前向传播经过所述待训练模型的各层级,得到误差损失;
基于所述误差损失,通过反向传播得到所述模型梯度,并将所述模型梯度并行写入所述内存池。
9.根据权利要求6所述的并行训练方法,其特征在于,所述基于所述内存池中的所述模型梯度,更新所述待训练模型,得到所述待训练模型更新后的模型参数,包括:
读取所述内存池中将所述模型梯度经过梯度规约处理得到的规约梯度;
基于所述规约梯度对所述待训练模型进行参数更新,得到更新后的模型参数。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求6至权利要求9中任一项所述的并行训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311072311.4A CN116777009B (zh) | 2023-08-24 | 2023-08-24 | 基于内存池的智能计算系统架构和并行训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311072311.4A CN116777009B (zh) | 2023-08-24 | 2023-08-24 | 基于内存池的智能计算系统架构和并行训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116777009A CN116777009A (zh) | 2023-09-19 |
CN116777009B true CN116777009B (zh) | 2023-10-20 |
Family
ID=88013729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311072311.4A Active CN116777009B (zh) | 2023-08-24 | 2023-08-24 | 基于内存池的智能计算系统架构和并行训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116777009B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197979A (zh) * | 2012-01-04 | 2013-07-10 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
CN112712182A (zh) * | 2021-03-29 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 一种基于联邦学习的模型训练方法、装置及存储介质 |
WO2021254330A1 (zh) * | 2020-06-19 | 2021-12-23 | 中兴通讯股份有限公司 | 内存管理方法、系统、客户端、服务器及存储介质 |
CN116302539A (zh) * | 2023-03-22 | 2023-06-23 | 西安电子科技大学 | 一种边缘计算场景下的模型并行方法、系统、设备及介质 |
CN116610607A (zh) * | 2023-05-19 | 2023-08-18 | 广东浪潮智慧计算技术有限公司 | 一种人工智能模型的训练方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
-
2023
- 2023-08-24 CN CN202311072311.4A patent/CN116777009B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197979A (zh) * | 2012-01-04 | 2013-07-10 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
WO2021254330A1 (zh) * | 2020-06-19 | 2021-12-23 | 中兴通讯股份有限公司 | 内存管理方法、系统、客户端、服务器及存储介质 |
CN112712182A (zh) * | 2021-03-29 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 一种基于联邦学习的模型训练方法、装置及存储介质 |
CN116302539A (zh) * | 2023-03-22 | 2023-06-23 | 西安电子科技大学 | 一种边缘计算场景下的模型并行方法、系统、设备及介质 |
CN116610607A (zh) * | 2023-05-19 | 2023-08-18 | 广东浪潮智慧计算技术有限公司 | 一种人工智能模型的训练方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
李抵非 ; 田地 ; 胡雄伟 ; .基于分布式内存计算的深度学习方法.吉林大学学报(工学版).2015,(第03期),246-250. * |
Also Published As
Publication number | Publication date |
---|---|
CN116777009A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10410112B2 (en) | Apparatus and method for performing a forward operation of artificil neural networks | |
US11373084B2 (en) | Apparatus and methods for forward propagation in fully connected layers of convolutional neural networks | |
KR102197247B1 (ko) | 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법 | |
US20210295168A1 (en) | Gradient compression for distributed training | |
CN101311894A (zh) | 多处理器/多内核消息传递机中的推测预取方法和装置 | |
JP2019204492A (ja) | ニューロモルフィック・アクセラレータ・マルチタスキング | |
US11900243B2 (en) | Spiking neural network-based data processing method, computing core circuit, and chip | |
CN113642734A (zh) | 一种深度学习模型的分布式训练方法、装置以及计算设备 | |
CN113826117A (zh) | 来自神经网络的高效二元表示 | |
CN109117415B (zh) | 数据共享系统及其数据共享方法 | |
CN110009048B (zh) | 一种神经网络模型的构建方法以及设备 | |
CN116777009B (zh) | 基于内存池的智能计算系统架构和并行训练方法 | |
US20230403232A1 (en) | Data Transmission System and Method, and Related Device | |
CN116069262B (zh) | 一种分布式存储卸载方法、装置、电子设备及存储介质 | |
CN113535611A (zh) | 数据处理方法及装置、异构系统 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114780460A (zh) | 一种dma控制器和方法 | |
CN116415100A (zh) | 业务处理方法、装置、处理器及计算设备 | |
CN113673476A (zh) | 人脸识别模型训练方法、装置、存储介质与电子设备 | |
CN112639747A (zh) | 处理器的寻址方法、处理器、可移动平台和电子设备 | |
CN113570053A (zh) | 一种神经网络模型的训练方法、装置以及计算设备 | |
CN110826704B (zh) | 一种用于防止神经网络过拟合的处理装置及系统 | |
US20230176932A1 (en) | Processor, information processing apparatus, and information processing method | |
CN115827063B (zh) | 一种基于Fill Constant指令的写存储系统及方法 | |
CN115129233B (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 |