CN110134636B - 模型训练方法、服务器和计算机可读存储介质 - Google Patents

模型训练方法、服务器和计算机可读存储介质 Download PDF

Info

Publication number
CN110134636B
CN110134636B CN201810133203.6A CN201810133203A CN110134636B CN 110134636 B CN110134636 B CN 110134636B CN 201810133203 A CN201810133203 A CN 201810133203A CN 110134636 B CN110134636 B CN 110134636B
Authority
CN
China
Prior art keywords
gpu
gpus
global
model
parameter
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
CN201810133203.6A
Other languages
English (en)
Other versions
CN110134636A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201810133203.6A priority Critical patent/CN110134636B/zh
Publication of CN110134636A publication Critical patent/CN110134636A/zh
Application granted granted Critical
Publication of CN110134636B publication Critical patent/CN110134636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种模型训练方法、服务器和计算机可读存储介质,属于人工智能计算领域。其中,该方法包括:接收到训练作业后,获取作业信息;将模型复制到每个GPU,并同步每个GPU的模型参数的初始值;每次迭代提取一部分样本数据,将提取的样本数据拆分后分发给不同的GPU进行训练,对所有GPU的训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新所述模型参数;完成迭代次数的迭代后,选择任意一个GPU的模型参数保存为模型训练结果。本发明通过充分利用GPU‑GPU高速数据传输带宽,消除计算节点间的带宽瓶颈和计算能力瓶颈,从而提高模型在GPU集群上的同步训练效率和加速比。

Description

模型训练方法、服务器和计算机可读存储介质
技术领域
本发明涉及人工智能计算领域,特别涉及一种模型训练方法、服务器和计算机可读存储介质。
背景技术
深度学习模型的训练需要消耗庞大的计算资源,完成一次训练的耗时可达数天乃至数月。为加快模型训练,往往需要使用大规模GPU(Graphic Processing Unit,图形处理器)集群进行并行训练,同时,深度学习训练任务常采用一些并行算法将训练任务分配到多个计算节点上同时运行,其中包括数据并行和模型并行两大类并行算法,以数据并行较为常用。
在数据并行算法中,如图1所示,通常使用PS-Worker(Parameter
Server-Worker,参数服务器-计算节点)架构部署在GPU集群上,其中PS用于存储模型参数,Worker持有CPU、GPU资源并负责模型训练计算任务,PS与Worker间以及各Worker之间常需进行大数据量交互,主要包括:每个深度学习的迭代中,每个Worker与PS间都需要完成一次参数梯度传输和参数的更新。由于交互数据量很大,PS-Worker间带宽和CPU处理能力常因此成为瓶颈,Worker上的GPU的强大并行计算能力无从发挥,导致系统加速比低、可扩展性差,硬件资源浪费。
发明内容
有鉴于此,本发明的目的在于提供一种模型训练方法、装置、服务器和存储介质。以在不增加硬件投资的前提下,消除计算节点间的带宽瓶颈和计算能力瓶颈,从而提高模型训练加速比。
本发明解决上述技术问题所采用的技术方案如下:
根据本发明的一个方面,提供的一种模型训练方法包括:
接收到训练作业后,获取作业信息;其中,所述作业信息包括模型、样本数据和迭代次数;
将所述模型复制到每个GPU,并同步所述每个GPU的模型参数的初始值;
每次迭代提取一部分样本数据,将所述提取的样本数据拆分后分发给不同的GPU进行训练,对所有GPU的训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新所述模型参数;
完成所述迭代次数的迭代后,选择任意一个GPU的模型参数保存为模型训练结果。
根据本发明的另一个方面,提供的一种模型训练服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述模型训练方法的步骤。
根据本发明的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述模型训练方法的步骤。
本发明实施例提供的模型训练方法、服务器和计算机可读存储介质,在不显著增加硬件投资的前提下,通过优化系统部署和算法,充分利用GPU-GPU高速数据传输带宽,减少CPU-GPU间通讯需求,消除计算节点间的带宽瓶颈和计算能力瓶颈,从而提高模型训练加速比。
附图说明
图1为本发明相关技术中PS-Worker分布式系统的架构示意图;
图2为本发明实施例提供的一种无PS的分布式训练系统的架构示意图;
图3为本发明实施例提供的模型训练方法的流程图;
图4为本发明实施例提供的一种聚合优化的全局规约方法的流程图;
图5为本发明实施例提供的一种分组全局规约方法的流程图;
图6为本发明实施例提供的一种分组多级全局规约方法的流程图;
图7为本发明实施例提供的一种GPU加速的全局规约方法的流程图;
图8为本发明优选实施例提供的一种优选的模型训练方法的流程图;
图9为本发明实施例提供的一种模型训练装置的模块结构图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅以解释本发明,并不用于限定本发明。
如图2所示,本发明实施例提供的分布式模型训练系统对图1的PS-Worker架构进行了优化部署。PS-Worker架构部署在GPU集群上,其中PS用于存储模型参数,Worker持有CPU、GPU资源并负责模型训练计算任务,PS与Worker间以及各Worker之间常需进行大数据量交互,主要包括:每个深度学习的迭代中,每个Worker与PS间都需要完成一次参数梯度传输和参数的更新。各个节点间、节点内通讯可能经过NVLink、PCIe((Peripheral ComponentInterconnect-Express,外部设备互连总线)、IB(InfiniBand,无限带宽技术)、ETH(Ethernet网线)等多种传输媒介,NVLink(
Figure BDA0001575526110000031
NVLinkTM,英伟达公司GPU间告诉互联网络)是英伟达公司开发的一种高带宽的互联技术,能够在CPU-GPU和GPU-GPU之间实现超高速的数据传输。这项技术的数据传输速度是传统PCIe3.0速度的5到12倍。由于交互数据量很大,PS-Worker间带宽和CPU处理能力常因此成为瓶颈,Worker上的GPU的强大并行计算能力无从发挥,导致系统加速比低、可扩展性差,硬件资源浪费。优化部署后的无PS分布式模型训练系统,节点内GPU间采用带宽较高媒介(比如NVLink/PCIe),去除了中心化PS,训练初始化时在每一个GPU上复制一个参数副本,各GPU上的模型就近引用模型参数。充分利用了GPU-GPU高速数据传输带宽,避免了PS-Worker之间的进程间通信开销,减少了GPU-CPU之间的数据传输开销,从而提升了并行训练效率。
基于上述分布式训练系统架构,提出本发明方法各个实施例。
实施例一
如图3所示,本发明实施例提供一种模型训练方法,该方法包括:
S301、接收到训练作业后,获取作业信息;其中,作业信息包括模型、样本数据和迭代次数。
具体的,任务管理系统接收到用户提交的训练作业后,从中提取作业信息。作业信息可以包含深度学习的模型、样本数据、资源需求和训练迭代次数等信息。其中,模型一般形式是计算机编程语言写成的程序代码,训练系统是指管理GPU集群和通用训练平台(如矩阵数组Tensorflow、caffe2等)的任务管理系统。
S302、将模型复制到每个GPU,并同步每个GPU的模型参数的初始值。
具体的,训练系统为用户作业分配软硬件资源,主要包括CPU、GPU等计算资源,将模型复制到每个GPU,并开辟单独显存空间保存一套完整的模型参数,使得每块GPU的显存上都保存完整参数集副本。其中,模型可以是保持在GPU集群服务器可以访问到的NFS(网络文件服务器)上,也可以是GPU集群服务器本地硬盘上,由训练管理系统从预设的路径复制到上述NFS或本地硬盘,再由训练任务读取、复制到GPU上。
同步每个GPU的模型参数的初始值可以通过参数同步消息将其中一个GPU的模型参数的初始值同步到其他GPU上。其中,参数同步消息包括但不限于:MPI(Message-Passing-Interface,接口传递)消息、IPC通信进程消息或NVLink消息。如果预设了哪个GPU的模型参数作为初始化值,则将预设的GPU中的模型参数同步到其他GPU,如果没有预设,则可以将第1个GPU的模型参数复制到其他GPU。
S303、每次迭代提取一部分样本数据,将提取的样本数据拆分后分发给不同的GPU进行训练,对所有GPU训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新模型参数。
具体的,训练过程中,每次迭代从样本数据取出一部分样本数据并平均拆分为K份(假设使用K个GPU),分别发送给不同的GPU进行训练,训练获得参数梯度Gradn,Gradn表示第n个GPU计算出的参数梯度数据,每份参数梯度数据又包含N个多维矩阵数组。
每次迭代结束后,对所有GPU计算的参数梯度进行全局规约操作,并将全局规约后的参数梯度分发到所有的GPU上。随后每个GPU根据全局规约后的参数梯度更新模型参数。需要说明的是,全局规约是大规模并行计算经常用到的通用算法,要求将所有进程间的数据集逐个元素进行规约操作,再将操作结果分发到所有进程。深度学习的分布式训练过程中,每个worker计算出的参数梯度或参数就需要经过全局规约操作,以保证训练过程中各个计算节点间的模型同步。全局规约操作包括但不限于:全局求和、全局取最大值、全局取最小值或全局取平均值等。
S304、完成迭代次数的迭代后,选择任意一个GPU的模型参数保存为模型训练结果。
本发明实施例中,通过去除现有技术中常用的中心化PS,训练初始化时将模型复制到每一个GPU上,并在每一个GPU上开辟单独显存空间保存一套完整的模型参数,各GPU上的模型就近引用模型参数,充分利用了GPU-GPU高速数据传输带宽,避免了PS-Worker之间的进程间通信开销,减少了GPU-CPU之间的数据传输开销,从而提升了并行训练效率。
实施例二
上述发明实施例一实施后,GPU间参数梯度全局规约需要在所有GPU之间完成,典型深度学习模型具有百万、千万或上亿数量级的参数,这些参数梯度通常是由大量多维矩阵数组形式组织的,参数梯度多维矩阵数组的全局规约操作都需要逐个在所有GPU间进行,额外开销也很大。为了解决这个问题,本发明实施例二利用各类通讯协议处理长消息开销小的特点,在参数梯度全局规约操作之前和之后各增加聚合和拆分操作,使初始N个小的参数梯度多维矩阵数组合并为M个(1≤M<N)较大的一维矩阵数组,使得在全局规约阶段需要处理的举证数量和通讯消息数量大幅度减少,从而大幅降低全局规约各环节处理开销。如图4所示,本发明实施例二提供一种聚合优化的全局规约方法包括:
S401、所有GPU均按照相同的顺序,将各自的参数梯度多维矩阵数组前后连接为连续存储的至少一个一维矩阵数组,并按顺序保存参数梯度多维矩阵数组的尺寸信息。
具体的,多个计算设备间(包括节点间和节点内的GPU、CPU等任何计算机处理器)全局规约操作开始前,在各个计算设备上按照相同顺序将分散的、小的N个多维矩阵数组,聚合为物理上或逻辑上连续的相对较大的M(1≤M≤N)个连续存储的一维矩阵数组,并按顺序保存N个参数梯度矩阵数组的尺寸信息为集合S。
S402、对合并后的一维矩阵数组逐个进行全局规约操作。
具体的,假设系统分配缓存K字节,聚合前总矩阵数组数为N,聚合后个数为M,第i次聚合的矩阵数组数为Di,即
Figure BDA0001575526110000061
则聚合过程中可动态控制Di大小,使聚合后每个新矩阵数组占用缓存均不大于K字节,即
Figure BDA0001575526110000062
以此控制算法对缓存资源的消耗。
全局规约操作是针对这M个聚合后的矩阵数组进行的,全局规约操作包括但不限于MPI的全局规约操作,也可以是其他等价操作,得到全局规约后的M个一维矩阵数组。
S403、所有GPU各自根据参数梯度多维矩阵数组的尺寸信息,将全局规约后的一维矩阵数组恢复为原始尺寸的多维矩阵数组。
具体的,对M个一维矩阵数组全局规约操作完成后,需要在各计算设备上按照聚合前的大小和顺序拆分、将全局规约后M个一维矩阵数组恢复为原尺寸的N个小的多维矩阵数组。
S404、所有GPU各自根据恢复后的参数梯度多维矩阵数组更新各自的模型参数。
本发明实施例中,参数梯度矩阵数组由多个小矩阵数组合并为若干数量更少的大矩阵数组,减少了全局规约过程中消息发送请求次数,大幅度降低了传输开销,更充分的利用网络带宽,从而在实施例一的基础上进一步提高了训练加速比。
实施例三
在单节点或多节点GPU集群上作参数梯度全局规约操作时,各个节点间、节点内通讯可能经过NVLink/PCIe/IB/ETH等多种传输媒介,一般情况下,节点内GPU间媒介(如NVLink/PCIe)带宽较高,而节点间的带宽较低,直接同步所有节点间和节点内的参数梯度会使带宽较低的媒介(如IB/ETH)成为瓶颈。为了解决这个问题,为了解决这个问题,本发明实施例三将参数梯度全局规约过程拆分为多步进行,将节点内高带宽互联的GPU间划分为逻辑上的全局规约组,首先在全局规约组内GPU做一次全局规约操作,再通过在组内选出的“代表”进行组间同步,使得全局规约降低某些带宽较小连接上的网络负载,优化总体时延。如图5所示,本发明实施例提供分组全局规约方法包括:
S501、根据预设的分组规则将所有GPU划分为多个规约组。
具体的,多计算设备(包括节点间和节点内的GPU、CPU等任何计算机处理器)之间全局规约操作前,根据预设的分组规则将所有GPU在逻辑上划分为多个规约组。本步骤包括但不限于:根据各GPU的邻近关系、互联介质的带宽大小、通讯时延或通讯距离等一种或任意几种组合将所有GPU划分为多个规约组。比如根据带宽划分规约组,将高带宽的GPU划分为一组(一般是节点内GPU间)。
S502、对各GPU在规约组内进行组内的全局规约操作,并从每一个规约组内推选一个GPU作为代表GPU。
S503、对各规约组的代表GPU进行组间的全局规约操作。
其中,全局规约操作包括但不限于:全局求和、全局取最大值、全局取最小值或全局取平均值等。
S504、各代表GPU将组间的全局规约之后的参数梯度向组内其他GPU进行广播。
本发明实施例的方法既充分利用节点内GPU高带宽互联,首先进行组内的全局规约,再采取代表GPU+广播算法减少了低带宽的网络的传输压力,从而降低参数梯度全局规约阶段总时延。
实施例四
图6为本发明实施例提供的一种分组多级全局规约方法的流程图。该方法包括:
S601、根据预设的分组规则将所有GPU划分为多个规约组。
具体的。本步骤包括但不限于:根据各GPU的邻近关系、互联介质的带宽大小、通讯时延或通讯距离等将所有GPU在逻辑上划分为多个规约组。比如根据带宽划分规约组,将高带宽的GPU划分为一组(一般是节点内GPU间)。
S602、对多个规约组按按预设的分级规则进行分级。
具体的,各规约组之间可进一步根据组间临近关系、带宽大小、通讯时延、或通讯距离中的一种或任意几种组合)进行分级。在逻辑上划分高一级的全局规约组。
S603、对各GPU在多个规约组内进行组内的全局规约操作,并从每一个规约组内推选至少一个GPU作为规约组的代表GPU。
具体的,每组均选择K个代表(K≤组内成员数,一般K=1)用于本级的规约组之间的全局规约操作。
S604、对每级内的各规约组的代表GPU进行全局规约操作,并选出至少一个代表GPU作为本级代表GPU参与下一级同步。
S605、按分级级别由高到低逐级对每级的代表GPU进行全局规约操作。
S606、按级别由低向高,每级代表GPU向本级内的规约组代表GPU广播规约结果。
S607、各代表GPU将组间的全局规约之后的参数梯度向组内其他GPU进行广播。
在一些实施例中,适用于多种互联方式下的大规模GPU集群间的多级全局规约。比如:首先按照带宽由高到低逐级作全局规约操作,其次,每级进行全局规约之后均“选出”若干代表参与下一级全局规约操作,最后,反向的,带宽由低向高,逐级代表向本规约组其他GPU广播全局规约结果。
需要说明的是,先按分级级别由高到低逐级进行全局规约操作,然后反向的,按分级级别由低到高低逐级广播规约结果,是一种为了更好的减低总体时延的优选实施例。而在具体实施中,各个级别的代表GPU之间也可以不按级别逐级进行,同样也能达到减低总体时延的效果。
在本实施例中,在上述实施例三的基础上,通过分级全局规约降低某些带宽较小连接上的网络负载,能优化总体时延。
实施例五
全局规约操作在规约数据量较大时,操作时延主要包含:进程间数据传输时间和规约算子执行时间。目前节点间全局规约常使用MPI库完成,而主流MPI实现中,规约算子均使用CPU完成,这导致计算时间较长。为此本发明实施例利用GPU并行计算能力,将规约算子部署于GPU上执行。如图7所示,本发明实施例提供一种GPU加速的全局规约方法包括:
S701、使用全局收集操作,使得每个GPU都收集到其他GPU训练得到的参数梯度。
具体的,全局收集是大规模并行计算经常用到的通用算法,将从所有进程中收集数据,然后再将数据分发给所有进程。
本实施例中,数据全局收集可以采用但不限于MPI全局收集来完成,主流MPI一般能支持GPU显存访问和GDR(GPU Direct RDMA,GPU直接远程显存访问)技术,但未充分利用GPU并行计算能力,导致收集通讯时延不够理想。在同数据量前提下,MPI收集处理时间比MPI全局规约低一个数量级。我们可以通过CUDA改造了MPI计算接口,实现了显存读写+显卡就地计算。在进程或GPU数量较少时,本发明推荐使用点对点通信如:MPI_SENDRECV接口实现。
S702、每个GPU各自对收集到的所有GPU的参数梯度进行全局规约操作,并根据规约后参数梯度更新模型参数。
具体的,使用GPU并行程序进行加速计算,全局规约传输方式包括但不限于MPI。计算设备或进程总数较少时,也可以使用MPI点对点通信完成各节点间的数据收集过程。点对点通信使用MPI标准所定义的MPI_SENDRECV操作,也可以使用其他等价操作,以此可能获得更高加速性能。
本发明实施例中,通过将全局规约算子从CPU转移至各计算节点GPU上,充分利用了GPU并行计算能力,大幅度减少了全局规约总时延,在一些支持GDR技术的系统上,还可减少主存和显存之间的多次Memory copy操作,实测部分集群上可以降低全局规约时延一个数量级。
实施例六
如图8所示,本发明优选实施例提供的一种模型训练方法包括:
S801、接收到训练作业后,获取作业信息。
S802、为训练作业分配软硬件资源。
S803、将模型复制到每个GPU,并同步各GPU的模型参数的初始值。
S804、每次迭代从样本数据取出一部分样本数据并平均拆分后,分别发送给不同的GPU进行训练,获得参数梯度。
S805、将各GPU上的各N个参数梯度的多维矩阵数组聚合为M个一维矩阵数组。
S806、将M个一维矩阵数组在GPU集群内各GPU间进行全局规约操作。
S807、根据尺寸信息将M个一维矩阵数组拆分复原为原始结构的N个多维矩阵数组。
S808、将N个多维矩阵数组用于各个GPU的参数更新,完成一个迭代的训练。
S809、确定是否达到预设的训练次数,如果是,执行步骤S709,否则返回步骤S804。
S810、选任意一个GPU的参数保存为模型最终训练结果,并收回训练任务所占用的软硬件资源。
本发明实施例中,在不显著增加硬件投资的前提下,通过优化的部署方式和算法,大幅提升学习模型在GPU集群上的同步训练效率和系统可扩展性。
实施例七
如图9所示,本发明实施例提供的一种模型训练装置包括:
接收模块10,用于接收到训练作业后,获取作业信息;其中,作业信息包括模型、样本数据和迭代次数。
初始化模块20,用于将模型复制到每个GPU图形处理器,并同步每个GPU的模型参数的初始值。
具体的,初始化模块20,通过参数同步消息将其中一个GPU的参数初始值同步到其他GPU上。参数同步消息包括但不限于:MPI消息传递接口消息、IPC进程间通信消息或NVLink消息。
训练模块30,用于每次迭代提取一部分样本数据,将提取的样本数据拆分后分发给不同的GPU进行训练,对所有GPU的训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新所述模型参数。
存储模块40,用于完成迭代次数的迭代后,选择任意一个GPU的模型参数保存为模型训练结果。
在一些实施例中,训练模块30具体用于:所有GPU均按照相同的顺序,将参数梯度的多维矩阵数组前后连接为连续存储的至少一个一维矩阵数组,并按顺序保存参数梯度多维矩阵数组的尺寸信息;对合并后的所述一维矩阵数组逐个进行全局规约操作;所有GPU各自根据参数梯度多维矩阵数组的尺寸信息,将全局规约后的所述一维矩阵数组恢复为原始尺寸的多维矩阵数组;所有GPU用各自用恢复后的参数梯度多维矩阵数组更新各自的模型参数。
在一些实施例中,训练模块30具体用于:根据预设的分组规则将所有GPU划分为多个规约组;对各GPU在所述规约组内进行组内的全局规约操作,并从每一个所述规约组内分别推选一个GPU作为代表GPU;对各规约组的代表GPU之间进行组间的全局规约操作;各代表GPU将组间的全局规约之后的参数梯度向组内其他GPU进行广播。
其中,所述根据预设的分组规则将所有GPU划分为多个规约组包括:根据各GPU的邻近关系、互联介质的带宽大小、通讯时延或通讯距离中的一种或任意组合将所有GPU划分为多个规约组。
在一些实施例中,训练模块30具体用于:对所述规约组按带宽进行分级;对各GPU在所述规约组内进行组内的全局规约操作,并从每一个所述规约组内分别推选一个GPU作为代表GPU包括:按照带宽由高到低逐级进行本级的组内的全局规约操作;每级全局规约之后均选出至少一个代表参与下一级同步;各代表GPU将组间的全局规约之后的参数梯度向组内其他GPU进行广播包括:按带宽由低向高,逐级代表向本组其他GPU广播全局规约结果。
在一些实施例中,训练模块30具体用于:使用全局收集操作,使得每个GPU都收集到其他GPU的参数梯度;每个GPU各自对收集到的参数梯度进行规约操作,并用规约后的参数梯度更新所述模型参数。
其中,上述全局规约操作包括但不限于:全局求和、全局取最大值、全局取最小值或全局取平均值等。
另外,本发明实施例还提供了一种模型训练服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现上述模型训练方法的步骤。
此外,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现如上述模型训练方法的步骤。
需要说明的是,上述模型训练装置、模型训练服务器和计算机可读存储介质,与模型训练方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在装置实施例中均对应适用,这里不再赘述。
本发明实施例提供的模型训练方法、装置、服务器和存储介质,在不显著增加硬件投资的前提下,通过优化系统部署和算法,充分利用GPU-GPU高速数据传输带宽,减少CPU-GPU间通讯需求,消除计算节点间的带宽瓶颈和计算能力瓶颈,从而提高模型训练加速比。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

Claims (10)

1.一种模型训练方法,其特征在于,该方法包括:
接收到训练作业后,获取作业信息;其中,所述作业信息包括模型、样本数据和迭代次数;
将所述模型复制到每个图形处理器GPU,并同步所述每个GPU的模型参数的初始值;
每次迭代提取一部分样本数据,将所述提取的样本数据拆分后分发给不同的GPU进行训练,对所有GPU训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新所述模型参数;
完成所述迭代次数的迭代后,选择任意一个GPU的模型参数保存为模型训练结果;
其中,所述对所有GPU训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新所述模型参数包括:
将参数梯度的多维矩阵数组前后连接为至少一个一维矩阵数组;对合并后的所述一维矩阵数组逐个进行全局规约操作;将全局规约后的所述一维矩阵数组恢复为原始尺寸的多维矩阵数组;所有GPU各自根据恢复后的参数梯度多维矩阵数组更新各自的模型参数;
或者,根据预设的分组规则将所有GPU划分为多个规约组;对各GPU在多个所述规约组内进行组内的全局规约操作;对GPU进行组间的全局规约操作。
2.根据权利要求1所述的模型训练方法,其特征在于,所述同步所述每个GPU的模型参数的初始值包括:
通过参数同步消息将其中一个GPU的模型参数的初始值同步到其他GPU上。
3.根据权利要求1所述的模型训练方法,其特征在于,其特征在于,所述将参数梯度的多维矩阵数组前后连接为至少一个一维矩阵数组包括:
所有GPU均按照相同的顺序,将参数梯度的多维矩阵数组前后连接为连续存储的至少一个一维矩阵数组,并按顺序保存参数梯度多维矩阵数组的尺寸信息;
所述将全局规约后的所述一维矩阵数组恢复为原始尺寸的多维矩阵数组包括:所有GPU各自根据参数梯度多维矩阵数组的尺寸信息,将全局规约后的所述一维矩阵数组恢复为原始尺寸的多维矩阵数组。
4.根据权利要求1所述的模型训练方法,其特征在于,所述对GPU进行组间的全局规约操作包括:
从每一个所述规约组内推选至少一个GPU作为规约组的代表GPU;
对各规约组的代表GPU之间进行组间的全局规约操作;
各代表GPU将组间的全局规约之后的参数梯度向组内其他GPU进行广播。
5.根据权利要求4所述的模型训练方法,其特征在于,所述根据预设的分组规则将所有GPU划分为多个规约组包括:
根据各GPU的邻近关系、互联介质的带宽大小、通讯时延或通讯距离中的一种或任意几种组合将所有GPU划分为多个规约组。
6.根据权利要求4所述的模型训练方法,其特征在于,所述根据预设的分组规则将所有GPU划分为多个规约组之后还包括:对所述多个规约组按按预设的分级规则进行分级;
所述对各规约组的代表GPU之间进行组间的全局规约操作包括:
对每级内的各规约组的代表GPU进行全局规约操作,每级全局规约之后均选出至少一个代表GPU作为本级代表GPU参与下一级同步;
按分级级别由高到低逐级对每级的代表GPU进行全局规约操作;
所述各代表GPU将组间的全局规约之后的参数梯度向组内其他GPU进行广播包括:按级别由低向高,每级代表GPU向本级内的规约组代表GPU广播规约结果,各规约组代表GPU向本组其他GPU广播全局规约结果。
7.根据权利要求1所述的模型训练方法,其特征在于,对所有GPU的训练得到的参数梯度进行全局规约操作,并在各GPU上根据规约之后的参数梯度更新所述模型参数包括:
使用全局收集操作,使得每个GPU都收集到其他GPU训练得到的参数梯度;
每个GPU各自对收集到的参数梯度进行全局规约操作,并根据所述规约之后的参数梯度更新所述模型参数。
8.根据权利要求1-7任意一项权利要求所述的模型训练方法,其特征在于,所述全局规约操作包括:全局求和、全局取最大值、全局取最小值或全局取平均值。
9.一种模型训练服务器,其特征在于,该服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的模型训练方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至8中任一项所述的模型训练方法的步骤。
CN201810133203.6A 2018-02-09 2018-02-09 模型训练方法、服务器和计算机可读存储介质 Active CN110134636B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810133203.6A CN110134636B (zh) 2018-02-09 2018-02-09 模型训练方法、服务器和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810133203.6A CN110134636B (zh) 2018-02-09 2018-02-09 模型训练方法、服务器和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110134636A CN110134636A (zh) 2019-08-16
CN110134636B true CN110134636B (zh) 2023-04-18

Family

ID=67567719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810133203.6A Active CN110134636B (zh) 2018-02-09 2018-02-09 模型训练方法、服务器和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110134636B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113272854A (zh) * 2019-10-12 2021-08-17 百度时代网络技术(北京)有限公司 利用高级互连技术加速ai训练的方法和系统
CN111061547B (zh) * 2019-10-24 2023-04-11 中国科学院计算技术研究所 一种异构系统的任务调度方法及系统
CN112884157B (zh) * 2019-11-29 2024-03-26 北京达佳互联信息技术有限公司 一种模型训练方法、模型训练节点及参数服务器
CN111105016B (zh) * 2019-12-06 2023-04-28 浪潮电子信息产业股份有限公司 一种数据处理方法、装置、电子设备及可读存储介质
CN112948105B (zh) * 2019-12-11 2023-10-17 香港理工大学深圳研究院 一种梯度传输方法、梯度传输装置及参数服务器
CN111126621B (zh) * 2019-12-17 2021-02-09 北京九章云极科技有限公司 在线模型训练方法及装置
CN111242282B (zh) * 2020-01-09 2023-03-28 中山大学 基于端边云协同的深度学习模型训练加速方法
US11631030B2 (en) 2020-02-11 2023-04-18 International Business Machines Corporation Learning with moment estimation using different time constants
CN111737179B (zh) * 2020-05-08 2021-08-13 江西山水光电科技股份有限公司 一种插卡式ptn、otn和sdh传输设备板卡管理装置及管理方法
CN111680791B (zh) * 2020-06-16 2023-04-18 北京字节跳动网络技术有限公司 适用于异构环境中的通信方法、装置、系统
CN111898424B (zh) * 2020-06-19 2023-07-21 贝壳技术有限公司 文字识别模型训练方法、装置、电子设备及存储介质
CN111756602B (zh) * 2020-06-29 2022-09-27 上海商汤智能科技有限公司 神经网络模型训练中的通信超时检测方法和相关产品
CN111506434B (zh) * 2020-06-30 2020-10-13 腾讯科技(深圳)有限公司 一种任务处理方法、装置及计算机可读存储介质
CN112261023A (zh) * 2020-10-15 2021-01-22 苏州浪潮智能科技有限公司 一种卷积神经网络的数据传输方法和装置
CN112463056B (zh) * 2020-11-28 2023-06-09 苏州浪潮智能科技有限公司 一种多节点分布式训练方法、装置、设备及可读介质
CN112560936B (zh) * 2020-12-11 2024-06-25 深圳市帮联科技有限公司 模型并行训练方法、装置、设备、存储介质和程序产品
CN112884086B (zh) * 2021-04-06 2022-08-30 北京百度网讯科技有限公司 模型训练方法、装置、设备、存储介质以及程序产品
CN114221871A (zh) * 2021-04-09 2022-03-22 无锡江南计算技术研究所 一种网格化流水的全收集方法
CN114298329A (zh) * 2021-08-05 2022-04-08 腾讯科技(深圳)有限公司 一种模型训练方法、装置、设备及存储介质
CN113946537A (zh) * 2021-10-14 2022-01-18 浪潮商用机器有限公司 一种加速装置及服务器
CN114035937A (zh) * 2021-10-15 2022-02-11 北京潞晨科技有限公司 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质
CN116307347A (zh) * 2021-12-06 2023-06-23 中兴通讯股份有限公司 设备风险预测方法、电子设备和计算机可读存储介质
CN114546905B (zh) * 2022-01-20 2024-05-14 广州广电五舟科技股份有限公司 一种多路cpu的通道同步控制方法及装置
CN115114927A (zh) * 2022-04-22 2022-09-27 腾讯科技(深圳)有限公司 一种模型训练方法和相关装置
CN115310566A (zh) * 2022-10-12 2022-11-08 浪潮电子信息产业股份有限公司 分布式训练系统、方法、装置、设备及可读存储介质
CN115860114B (zh) * 2022-11-07 2023-09-08 北京百度网讯科技有限公司 深度学习模型的训练方法、装置、电子设备及存储介质
CN116187426B (zh) * 2022-11-09 2024-04-19 北京百度网讯科技有限公司 深度学习模型的模型参数多流广播方法及其装置
CN116644803B (zh) * 2023-07-27 2023-11-03 浪潮电子信息产业股份有限公司 分布式协同训练控制方法、系统、装置、设备及存储介质
CN118093480B (zh) * 2024-04-17 2024-08-02 广州尚航信息科技股份有限公司 一种针对智算场景下的网络加速方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819454A (zh) * 2012-07-30 2012-12-12 湖南大学 基于gpu的有限元显式并行求解仿真方法
CN103606180A (zh) * 2013-11-29 2014-02-26 广州菲动软件科技有限公司 3d骨骼动画的渲染方法及装置
CN103970960A (zh) * 2014-05-23 2014-08-06 湘潭大学 基于gpu并行加速的无网格伽辽金法结构拓扑优化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035751B (zh) * 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819454A (zh) * 2012-07-30 2012-12-12 湖南大学 基于gpu的有限元显式并行求解仿真方法
CN103606180A (zh) * 2013-11-29 2014-02-26 广州菲动软件科技有限公司 3d骨骼动画的渲染方法及装置
CN103970960A (zh) * 2014-05-23 2014-08-06 湘潭大学 基于gpu并行加速的无网格伽辽金法结构拓扑优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘少林 ; 李小凡 ; 汪文帅 ; 张美根 ; .最优化广义离散Shannon奇异核交错网格褶积微分算子地震波场模拟.物探与化探.2013,(03),全文. *

Also Published As

Publication number Publication date
CN110134636A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110134636B (zh) 模型训练方法、服务器和计算机可读存储介质
Shi et al. A distributed synchronous SGD algorithm with global top-k sparsification for low bandwidth networks
US11487698B2 (en) Parameter server and method for sharing distributed deep learning parameter using the same
Shi et al. Performance modeling and evaluation of distributed deep learning frameworks on gpus
US10728091B2 (en) Topology-aware provisioning of hardware accelerator resources in a distributed environment
Li et al. Scaling distributed machine learning with the parameter server
US9607355B2 (en) Model parallel processing method and apparatus based on multiple graphic processing units
US10282809B2 (en) Data parallel processing method and apparatus based on multiple graphic processing units
US20190325302A1 (en) Implementing parameter server in networking infrastructure for high-performance computing
US20170091668A1 (en) System and method for network bandwidth aware distributed learning
CN114861911B (zh) 深度学习模型的训练方法、装置、系统、设备和介质
CN110413776B (zh) 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法
CN113298222A (zh) 一种基于神经网络的参数更新方法、分布式训练平台系统
CN113342525A (zh) 分布式数据处理系统及其方法
CN116962176B (zh) 一种分布式集群的数据处理方法、装置、系统及存储介质
CN117785490B (zh) 一种图神经网络模型的训练架构、方法、系统及服务器
Blanas et al. Topology-aware parallel data processing: Models, algorithms and systems at scale
KR20230024418A (ko) 빠른 분산 훈련을 위한 축소 서버
CN111680791B (zh) 适用于异构环境中的通信方法、装置、系统
Ovalle et al. Distributed Cache Strategies for Machine Learning Classification Tasks over Cluster Computing Resources
Kadav et al. ASAP: asynchronous approximate data-parallel computation
Shen et al. Distributed sparse bundle adjustment algorithm based on three-dimensional point partition and asynchronous communication
CN116452951B (zh) 基于中央数据池的遥感信息提取模型分布式训练方法
CN114358859B (zh) 用于点击率预测的基于图的大规模embedding模型训练方法及系统
WO2023151216A1 (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