CN111971694A - 用于深度神经网络的训练数据的协同异构处理 - Google Patents
用于深度神经网络的训练数据的协同异构处理 Download PDFInfo
- Publication number
- CN111971694A CN111971694A CN201980024289.1A CN201980024289A CN111971694A CN 111971694 A CN111971694 A CN 111971694A CN 201980024289 A CN201980024289 A CN 201980024289A CN 111971694 A CN111971694 A CN 111971694A
- Authority
- CN
- China
- Prior art keywords
- work
- samples
- dnn
- server
- servers
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 96
- 238000012545 processing Methods 0.000 title claims abstract description 87
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000012937 correction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/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/04—Architecture, e.g. interconnection topology
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
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)
- Debugging And Monitoring (AREA)
Abstract
用于训练神经网络的系统和方法。一个实施例是一种系统,包括:存储器,其被配置为存储用于深度神经网络(DNN)的训练数据的样本;以及分发器。分发器标识多个工作服务器,该多个工作服务器被配设用于通过经由DNN的模型处理样本来训练DNN,接收指示工作服务器处的图形处理单元(GPU)处理能力的信息,基于信息来确定工作服务器之间的GPU处理能力的差异,以及基于差异来在工作服务器间分配样本。
Description
技术领域
本公开涉及机器学习领域,具体地涉及深度神经网络(DNN)。
背景技术
DNN被用于多种任务,诸如自动语音识别(ASR)、计算机视觉、自然语言处理(NLP)、光学字符识别(OCR)等。DNN经由图形处理单元(GPU)被训练并不少见。例如,当DNN经由监督学习被来训练时,用于DNN的大量参数通过经由GPU迭代地处理大量样本(例如,数百万个样本)来确定。训练过程可能需要一台机器几个月或几年才能完成。因此,设计DNN的那些人员常常利用分布式训练技术,其中驻留在多个机器上的多个GPU并行处理训练。在分布式训练中,GPU可能在训练过程期间变得不同步,这导致训练数据内的不同样本在训练结束前被处理了不同的次数。这在本文中被称为“时期失同步”。时期失同步是不希望的,因为它可能导致为DNN所确定的参数变得不准确。如果参数不正确,则需要附加的处理时间以便重新训练DNN。这增加了训练DNN所涉及的时间和费用两者。
发明内容
本文所描述的实施例增强了由机器进行的处理,该机器执行训练数据的分布式并行处理以用于DNN。具体地,可以基于那些机器的GPU处理能力将训练数据集合内的样本分配给机器,从而在期望数目的时期内处理训练数据。一个技术优势是:训练数据内的样本被处理了相同的次数,这防止DNN被错误训练或以其他方式需要经历重新训练。这些技术还可以帮助提高训练过程的整体速度。
一个实施例是一种系统,其包括:存储器,其被配置为存储用于深度神经网络(DNN)的训练数据的样本;以及分发器。分发器标识多个工作服务器,该多个工作服务器被配设(provision)用于通过经由DNN的模型处理样本来训练DNN,接收指示工作服务器处的图形处理单元(GPU)处理能力的信息,基于信息来确定工作服务器之间的GPU处理能力的差异,以及基于差异来在工作服务器间分配样本。
在另外的实施例中,分发器被配置为确定工作服务器的吞吐量,基于吞吐量来选择用于工作服务器的批量大小,以及报告批量大小。每个批量大小定义了用于工作服务器中的一个工作服务器同时处理的一个批量中的样本的数目。
在另外的实施例中,分发器被配置为动态地确定吞吐量,以及在DNN的训练期间基于吞吐量来调整批量大小。
在另外的实施例中,该系统还包括至少一个修正元件(revision element),该至少一个修正元件被配置为在工作服务器中的一个工作服务器处完成对一批量的样本的处理之后,从工作服务器中的一个工作服务器接收输入,基于输入来确定对DNN的调整,以及向工作服务器报告调整以用于更新DNN的模型。
在另外的实施例中,分发器被配置为确定要在DNN上执行的训练的整数个时期。分发器被配置为在工作服务器间分配样本,使得在训练期间该整数个时期将被完成但不被超过。
在另外的实施例中,样本中的至少一个样本包括图像。
在另外的实施例中,样本中的至少一个样本包括声音文件。
附加实施例是一种方法,该方法包括:标识多个工作服务器,该多个工作服务器被配设用于通过经由深度神经网络(DNN)的模型处理样本来训练DNN,接收指示该工作服务器处的图形处理单元(GPU)处理能力的信息,基于该信息来确定工作服务器之间的GPU处理能力的差异,以及基于差异在工作服务器间分配样本。
另一附加实施例是实施编程指令的非瞬态计算机可读介质,该编程指令在由处理器执行时可操作用于执行一种方法。该方法包括:标识多个工作服务器,该多个工作服务器被配设用于通过经由深度神经网络(DNN)的模型处理样本来训练DNN,接收指示该工作服务器处的图形处理单元(GPU)处理能力的信息,基于该信息来确定工作服务器之间的GPU处理能力的差异,以及基于差异来在工作服务器间分配样本。
另一附加实施例是一种系统,该系统包括用于存储用于深度神经网络(DNN)的训练数据的样本的部件以及用于分发的部件。用于分发的部件标识多个工作服务器,该多个工作服务器被配设用于通过经由DNN的模型处理样本来训练DNN,接收指示工作服务器处的图形处理单元(GPU)处理能力的信息,基于信息来确定工作服务器之间的GPU处理能力之间的差异,以及基于差异来在工作服务器间分配样本。
下面可以描述其他说明性实施例。
附图说明
现在仅通过举例的方式并参考附图来描述一些实施例。在所有附图上,相同的附图标记表示相同的元件或相同类型的元件。
图1是说明性实施例中的神经网络训练系统的框图。
图2是图示出了在说明性实施例中用于训练DNN的方法的流程图。
图3是说明性实施例中的训练数据集合的框图。
图4至图8是图示出了在说明性实施例中用于训练DNN的附加细节的流程图。
图9是图示出了在说明性实施例中在DNN的训练期间在各种计算元件之间的通信的消息图。
图10是说明性实施例中的一组工作服务器的框图。
具体实施方式
附图和以下描述图示出了本发明的特定说明性实施例。因此,应该意识到,本领域技术人员将能够设计出尽管未在本文中明确描述或示出但实施了本发明的原理并且被包括在本发明的范围内的各种布置。此外,本文所描述的任何示例旨在帮助理解本发明的原理,并且应当被解释为不限于这种具体阐述的示例和条件。因此,本发明不限于下面描述的具体实施例或示例,而是由权利要求书及其等同物限制。
图1是说明性实施例中的神经网络训练系统100的框图。神经网络训练系统100可以包括用于基于训练数据集合来训练DNN的计算机的任何合适的组合。可以通过经由DNN来处理训练数据的样本以便做出确定从而来执行DNN的训练。例如,以图像的形式审查样本的DNN可能会尝试为图像指派类别(例如“动物”、“汽车”、“船只”等),或者以声音的形式审查样本的DNN可能会尝试为声音指派类别(例如,“语音”、“音乐”、“自然”等)。然后DNN基于其确定的准确度被修改。作为迭代过程的一部分,DNN在其已被修改后针对新样本做出确定。以这种方式,随时间调整DNN,直到达到所期望的准确度水平为止。例如,训练过程可以涉及处理数百万个样本,并且可以涉及迭代地调整DNN数千次,以便提高DNN所做确定的准确度。
图1图示出了神经网络训练系统100,其包括工作服务器130、参数服务器110和顾问服务器(advisor server)140。工作服务器130是包括用于处理样本并基于DNN针对那些样本做出确定的任何合适的电路系统、硬件或部件的元件。在该实施例中,每个工作服务器130包括控制器132、GPU集群134和存储器136。控制器132包括用于控制处理样本的方式的任何合适的电路系统、硬件或装置。GPU集群134包括用于利用DNN的神经网络模型137以便做出关于样本的确定的任何合适的电路系统、硬件或部件。每个GPU集群134包括一个或多个GPU 135。GPU 135包括任何合适的图形处理单元。GPU集群134可以使用神经网络模型137和GPU 135来对样本进行分类或为样本指派标签。神经网络模型137在存储器中包括合适的信息,该信息描述DNN如何针对样本做出确定。这些样本的属性(例如,它们的实际类别或标签)是先验已知的,因此可以计算出由GPU集群134针对这些样本做出的每个确定的准确度。随着样本正在被处理,工作服务器130在对由神经网络模型137针对DNN做出的确定的准确度进行评分。存储器136包括用于存储用于工作服务器130的操作的指令的任何适当的电路系统、硬件或部件。
尽管在该实施例中示出了三个工作服务器130,但是可以利用任何数目的工作服务器130。此外,工作服务器130在其相应的GPU集群134内可以具有不同数目和类型的GPU135。
顾问服务器140包括用于在工作服务器130之中分发训练数据的样本的任何合适的电路系统、硬件或部件。在该实施例中,顾问服务器140被配置为通过将训练数据的样本分配给个体工作服务器130来管理DNN的训练过程。样本被分配是因为它们仅被保留由特定工作服务器130处理。顾问服务器140在工作服务器130间分配样本,以便每个工作服务器130同时完成其被分配的样本的处理。具体地,顾问服务器140基于那些工作服务器130的GPU处理能力在工作服务器130间分配样本。这防止了时期失同步的发生,如下所述。
顾问服务器140还可以确定用于每个工作服务器130的批量大小。“批量”是为了做出确定和/或计算准确度的目的而已经被分配给工作服务器130的、并且在工作服务器130的GPU集群134处被同时处理的样本集合。“批量大小”是将由给定的工作服务器130在某个时间点被同时处理的分配的样本的数目。例如,具有批量大小为八的工作服务器130可以一次处理八个其被分配的样本。工作服务器130可以继续处理各批量直到其所有的被分配的样本都已被处理,然后可以可选地发起对针对其被分配的样本的另一轮处理。
在该实施例中,顾问服务器140包括分发器142和存储器144。分发器142包括用于管理顾问服务器140的操作并且在工作服务器130间分配样本的任何适当的电路系统、硬件或部件。存储器144包括用于存储用于顾问服务器140的操作的指令的任何适当的电路系统、硬件或部件。
神经网络训练系统100还包括参数服务器110。参数服务器110包括修正元件112和存储器116。修正元件112包括用于基于来自工作服务器130的输入来调整DNN如何做出确定的任何合适的电路系统、硬件或部件。存储器116包括用于存储神经网络参数118的任何合适的电路系统、硬件或部件。参数服务器110经由通信信道120与工作服务器130耦合。参数服务器110可以在与顾问服务器140或工作者服务器130相同或不同的机器/计算机上被实现。
修正元件112通过更改神经网络参数118来调整DNN如何做出确定。神经网络参数118的示例包括DNN中的节点之间的连接权重。参数服务器110还包括存储器116,存储器116存储神经网络参数118以供工作服务器130经由接口(I/F)114来获取。例如,这些神经网络参数118可以被每个工作服务器130用来更新本地存储的神经网络模型137。
训练DNN的一种方法被称为同步训练。在同步训练中,工作服务器130处理多批量的样本以便做出确定。在一个批量完成后,工作服务器130暂停以便等待其他工作服务器130完成其相应的批量。但是,这意味着可能会浪费宝贵的处理周期,并且可能不希望地增加了用于DNN的总体训练时间。
训练DNN的备选方法被称为异步训练。在异步训练中,工作服务器130处理多批量的样本以便做出确定。但是,在继续处理下一批量的样本之前,工作服务器130不会为其他工作服务器130暂停。用于DNN的参数不能保证在异步训练期间收敛。
在现有系统中处理样本将导致与训练过程相关的问题。即使在同步训练中,也可能发生时期失同步。“时期”是指训练集合中的所有样本已被处理一次。通常期望为DNN训练指定的数目的时期。然而,当在训练期间样本被均等地分配或仓存(silo)(或根本没有被分配)给不同的工作服务器130时,那么如果一个工作服务器130比另一个工作服务器130快,则当同步训练被执行时其处理其样本的次数可能比较慢的工作服务器130大。这导致了一个被称为“时期失同步”的问题,其中没有为DNN执行精确数目是时期的训练,因为样本在训练期间没有被处理相同的次数。
使这个问题更加复杂的是,在现有系统中处理样本可能会使某些样本的权重更高。例如,由于某些样本比其他样本处理的次数更多,因此它们可能被更频繁地用来调整神经网络参数118,并且因此在调整DNN方面具有更大的影响力。这也是一个问题,因为这种调整可能是不可逆的。因此,时期失同步可能使DNN需要重新训练,并可能导致需要从头重新开始训练。
神经网络训练系统100有益地克服了与时期失同步相关的上述问题,因为它使用顾问服务器140来基于在每个工作服务器130处的GPU处理能力而将不同数目的样本动态分配给工作服务器130。此外,顾问服务器140可以基于工作者服务器130的GPU处理能力而将不同的批量大小指派给工作者服务器130,以使工作者服务器130大约在同一时间完成它们相应的批量。这允许工作服务器130继续而无暂停,从而有利地提高了针对DNN的训练速度。如上所述,每个批量的大小可以由顾问服务器140静态或动态地确定。在一个实施例中,顾问服务器140分配样本并指派批量大小,使得分配给工作者服务器130的样本数目可以被其批量大小均匀地整除,而没有剩余。
将关于图2讨论神经网络训练系统100的操作的更多细节。对于该实施例,假定DNN已被创建并且等待训练。在该实施例中,DNN包括多层节点,并且神经网络参数118指示DNN处的节点之间的连接权重的数值。为了训练DNN准确地执行处理,在迭代过程中调整权重。
图2是图示出了说明性实施例中的用于训练DNN的方法200的流程图。参考图1的神经网络训练系统100来描述方法200的步骤,但是本领域技术人员将理解,可以在其他系统中执行方法200。本文所描述的流程图的步骤不是全部包括在内,并且可以包括未示出的其他步骤。本文所描述的步骤也可以以备选的顺序来执行。
在步骤202中,分发器142标识已经被配设用于训练DNN的多个工作服务器130。例如,工作服务器130可以由用户选择或在存储器144中被指示。在步骤204中,分发器142接收指示工作服务器130处的GPU处理能力(例如,每个工作服务器130处的GPU集群134内的GPU135的处理能力)的信息。GPU集群的GPU处理能力可以基于个体处理器核心的速度、处理器核心的数目等。GPU处理能力可以以每秒的原始周期等来进行测量。在这种情况下,GPU处理能力是将基于样本做出确定的GPU 135的处理能力。因此,在至少一个实施例中,不考虑用于控制器132的CPU的速度(即,因为控制器132不直接处理样本以做出基于DNN的确定)。GPU处理能力可以对应于用每秒样本数来表示的预期吞吐量或先前测量的吞吐量。顾问服务器140还可以向工作服务器130发送查询,以便确定其规范。
在步骤206中,分发器142基于在步骤204中接收的信息来确定工作服务器130之间的GPU处理能力的差异。例如,一个工作服务器130可能具有比另一个工作服务器130的GPU集群134能够进行更快处理的GPU集群134。在步骤208中,分发器142基于GPU处理能力的差异来在工作服务器130间分配样本。如此执行使得具有不同量的GPU处理能力的工作服务器130被分配不同数目的样本。例如,如果工作服务器130具有两倍于另一工作服务器130的GPU处理能力,则分发器142可以向工作服务器130分配两倍的样本。向工作服务器130分配样本可以包括向工作服务器130传输分配的样本,或向工作服务器130传输标识分配的样本的指令。
分发器142还可以基于每个工作服务器130的GPU处理能力和/或存储器的量来针对其选择批量大小。例如,顾问服务器140可以在确定批量大小时将GPU集群134处的可用存储器(例如,超过百分之九十)视为约束。
工作服务器130处理批量中的样本以便做出确定,计算那些确定的准确度并将准确度信息报告给参数服务器110。参数服务器110接收此准确度信息并更新神经网络参数118。这些神经网络参数118被工作服务器130使用以更新其神经网络模型137,并且下一批量的处理被发起。
因为指派给工作服务器130的批量大小基于GPU处理能力而有所不同,所以工作服务器130也被预期同时完成其批量。如果批量大小相等,则具有更多处理能力的GPU集群134将更快地完成其批量,而具有更少处理能力的GPU集群134将更加缓慢地处理其批量。但是,针对每个工作服务器130的批量大小已经由顾问服务器140确定,以使GPU集群134大致同时完成对批量进行处理。在另外的实施例中,顾问服务器140可以在训练之前和/或动态地确定批量大小。
在每个工作服务器130处完成一个批量的处理并且基于该处理在DNN处更新任何参数被称为迭代。在完成一次迭代时,处理继续到下一次迭代,因为工作服务器130各自都处理下一批量的样本。处理可以以这种方式继续,使得训练数据的样本已经被处理了一次。针对训练数据集合的处理完成(即,使得训练数据中的样本已经被处理了相同的次数)被称为时期。
为了提高DNN的准确度,可以根据需要在多个时期内继续训练。取决于期望的时期的数目、工作服务器130的数目以及被用于训练的样本的数目,本文所描述的步骤可以被迭代多次(例如,数百或者甚至数千次)。最终,顾问服务器140完成整数个时期的训练,使得训练数据中的每个样本已经被处理了整数次(例如,整数次,诸如九十次)。至此,训练已被完成,DNN处的权重已被设置为所期望的值。
图4至图8是图示出了在说明性实施例中用于训练DNN的附加细节的流程图。具体地,图4是图示出了在说明性实施例中基于吞吐量来选择批量大小的流程图。根据方法400,在步骤402中,分发器142确定工作服务器130的吞吐量(例如,用每单位时间的样本数目来表示)。在步骤404中,分发器142还基于吞吐量选择用于工作服务器130的批量大小。例如,具有较高吞吐量的工作服务器130可以相应地被指派更高的批量大小。在步骤406中,分发器142将批量大小报告给工作服务器130。如前所提及,每个批量大小定义了用于由所述工作服务器中的一个工作服务器同时处理的一个批量中的样本数目。
图5是图示出了在说明性实施例中基于吞吐量来动态选择批量大小的流程图。根据方法500,分发器142在步骤502中动态地确定吞吐量。例如,分发器142可以在每次迭代结束时确定工作服务器130的吞吐量。在步骤504中,在DNN训练期间,分发器142基于吞吐量来调整批量大小。因此,在DNN被积极地训练的同时,吞吐量可以由顾问服务器140调整。
图6是图示出了在说明性实施例中由参数服务器110执行的调整的流程图。根据方法600,在步骤602中,在工作服务器中的一个工作服务器处完成对样本批量的样本的处理之后,修正元件112从工作服务器130中的一个工作服务器130接收输入。例如,修正元件112可以在迭代完成时从每个工作服务器130接收梯度。根据步骤604,修正元件112基于输入确定对DNN的调整。例如,修正元件112可以基于输入来调整DNN处的节点之间的加权连接(如神经网络参数118所指示)。在步骤606中,修正元件112经由I/F 114将调整报告给工作服务器130,以用于更新DNN的模型。
图7是图示出了在说明性实施例中的样本分配以便提供期望数目的时期的训练的流程图。根据方法700,分发器142在步骤702中确定要在DNN上执行的训练的整数个时期。在步骤704中,分发器142还在工作服务器130间分配样本,使得在训练期间整数个时期将被完成但不被超过。
图8是图示出了在说明性实施例中选择用于训练DNN的批量大小的流程图。例如,在说明性实施例中,方法800图示出了方法200的步骤204的附加特征。根据方法800,在步骤802中,顾问服务器140确定将被用来训练DNN的样本的总数(也被称为“总批量”大小)N。例如,N可以是数十万或数百万个样本,以便允许大量工作服务器并行训练DNN。在步骤804中,顾问服务器140选择工作服务器130。顾问服务器140继续选择用于该工作服务器130的批量大小。这可以根据以下等式来执行,其中wi是已被选择的工作服务器130的吞吐量(即,在给定时间段内处理的样本数目),bi是针对该批量所确定的样本数目,j是在被用于训练DNN的多个工作服务器130上进行迭代的数目。
换言之,用于工作服务器130的批量大小可以被设置为等于工作服务器130的测量的吞吐量的N倍除以等于针对所有工作服务器的吞吐量之和的量(步骤806)。在步骤808中,如果不是所有的工作服务器130都已经被审查了批量大小,则新的工作服务器130可以被选择。该过程可以针对所有工作服务器130被执行,并且可以在训练开始时被执行。该过程也可以在每次迭代之后被执行、随着时间周期性地被执行等。
图9是图示出了在说明性实施例中在DNN的训练期间在各种计算元件之间的通信的消息图900。如图5中所示,顾问服务器140可以通过从每个工作服务器130请求GPU配置来发起该过程。每个工作服务器130处的控制器132继续向GPU集群134查询描述GPU集群中的每个GPU 135的速度、存储器的量、型号等的数据。在接收到该数据后,工作服务器130将GPU配置数据报告回顾问服务器140。在该时间点处,顾问服务器140基于针对每个样本的存储器大小、GPU处理能力以及其他因素来估计每个GPU集群134的吞吐量。顾问服务器140还基于该工作服务器130的GPU处理能力而将样本分配给每个工作服务器130。
顾问服务器140还可以确定用于每个工作服务器130的批量大小。样本分配和/或批量大小被报告给控制器132,控制器132获取或以其他方式追踪其被分配的样本的位置。参数服务器110继续确定用于DNN的初始参数,并将这些参数报告给控制器132。然后,控制器132对一批量的样本操作GPU集群134,以基于神经网络模型137针对该批量的样本做出确定。控制器132还计算确定的准确度。例如,控制器132可以经由损失函数来确定每个确定(或样本)的值。控制器132还可以基于这些损失函数值确定梯度,并且将梯度报告给参数服务器110,参数服务器110更新其参数。尽管未被图示出,但是控制器132还可以将吞吐量参数(例如,空闲时间、处理批量所花费的持续时间、空闲GPU存储器等)报告给顾问服务器140。顾问服务器140然后可以根据需要更新用于工作服务器130的批量大小。当工作服务器130和任何其他工作服务器130处理针对其吞吐量的量而定制的另一批量的样本时,该过程继续进行另一迭代。
示例
在以下示例中,在训练DNN的系统的上下文中描述了附加过程、系统和方法。
图10是说明性实施例中的一组工作服务器的框图。根据图10,工作服务器10具有一个GTX 1080Ti GPU(“GTX 1012”)。工作服务器1020和1030各自都有两个这样的GPU。此外,工作服务器1040具有八个Tesla P100 GPU(“TESLA 642”)。为了充分利用所有13个GPU,实现各自被指派了单独GPU的13个单独子例程是可能的。但是,这样的实现必然增加开销。在一个机器上实现多个子例程还可能引起子例程不利地影响或以其他方式相互干扰。例如,如果八个子例程独立地在工作服务器640上运行,则在每次迭代时将存在被传送给参数服务器的参数和梯度更新的八个模型(与一个模型相对)。
根据图10的示例,工作服务器1010-1040各自都实现一个工作服务器子例程,并且被异构地被指派样本。例如,工作服务器1010可以使用一个GPU并且具有64的批量大小,工作服务器1020和工作服务器1030可以各自使用两个GPU并且具有128的批量大小,并且工作服务器1040可以使用八个GPU并且具有512的批量大小。与在13个GPU中的每个GPU上的每个子例程均同构地使用相同的64个批量大小的基本情况相比,异构训练过程在完成时间上实现了实质性的改善(例如71%)。
当执行期望在指定数目的时期后终止的训练时,工作服务器一起在一个时期中覆盖一次训练数据的样本(例如,恰好一次)。在同构分布式训练中,数据集可以简单地在工作服务器间被均等地划分。这意味着工作服务器在每个时期都以相同的迭代次数完成其样本。为了保证此属性用于异构分布式训练,对于每个时期,训练数据与工作服务器的批量大小成比例地而在工作服务器间被划分。可以在时期的边界处引入新的工作服务器和/或新的GPU设备,或者可备选地对分区执行动态调整,以反映工作服务器批量大小比率的变化。
附图中所示或本文所描述的各种元件或模块中的任何一个都可以被实现为硬件、软件、固件或这些的某种组合。例如,元件可以被实现为专用硬件。专用硬件元件可以被称为“处理器”、“控制器”或一些类似的术语。当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个个体处理器来提供,其中一些可以被共享。此外,术语“处理器”或“控制器”的明确使用不应被解释为专门指代能够执行软件的硬件,并且可以隐含包括但不限于数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)或其他电路系统、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)、非易失性存储器、逻辑或一些其他物理硬件组件或模块。
而且,元件可以被实现为指令,该指令由处理器或计算机可执行以执行该元件的功能。指令的一些示例是软件、程序代码和固件。指令在由处理器执行时是可操作的,以指引处理器执行元件的功能。指令可以被存储在处理器可读的存储设备上。存储设备的一些示例是数字或固态存储器、磁存储介质(诸如磁盘和磁带)、硬盘驱动器或光学可读数字数据存储介质。
如在本申请中使用的,术语“电路系统”可以是指以下中的一个或多个或全部:
(a)仅硬件电路实现(诸如,仅在模拟和/或数字电路系统中的实现),以及
(b)硬件电路和软件的组合,诸如(如适用):
(i)(多个)模拟和/或数字硬件电路与软件/固件的组合,以及
(ii)具有软件(包括(多个)数字信号处理器)的(多个)硬件处理器、软件和(多个)存储器的任何部分,它们共同工作以使诸如移动电话或服务器的装置执行各种功能,以及(c)(多个)硬件电路和/或(多个)处理器,诸如(多个)微处理器或(多个)微处理器的一部分,其需要软件(例如,固件)才能操作,但是该软件在不需要操作时可以不存在。
电路系统的这种定义适用于该术语在本申请中的所有使用,包括在任何权利要求中。作为另外的示例,如本申请中使用的,术语“电路系统”也仅覆盖硬件电路或处理器(或多个处理器)或硬件电路或处理器及其(或它们的)随附软件和/或固件的一部分的实现。术语电路系统还覆盖(例如并且如果适用于特定权利要求元素)用于移动设备的基带集成电路或处理器集成电路、或者服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。
尽管本文描述了特定实施例,但是本公开的范围不限于那些特定实施例。本公开的范围由以下权利要求及其任何等同物限定。
Claims (20)
1.一种系统,包括:
存储器,被配置为存储用于深度神经网络(DNN)的训练数据的样本;以及
分发器,被配置为标识多个工作服务器,所述多个工作服务器被配设用于通过经由所述DNN的模型处理所述样本来训练所述DNN,接收指示所述工作服务器处的图形处理单元(GPU)处理能力的信息,基于所述信息来确定所述工作服务器之间的所述GPU处理能力的差异,以及基于所述差异来在所述工作服务器间分配所述样本。
2.根据权利要求1所述的系统,其中:
所述分发器被配置为确定所述工作服务器的吞吐量,基于所述吞吐量来选择用于所述工作服务器的批量大小,以及向所述工作服务器报告所述批量大小;并且
每个批量大小定义了用于由所述工作服务器中的一个工作服务器同时处理的一个批量中的所述样本的数目。
3.根据权利要求2所述的系统,其中:
所述分发器被配置为动态地确定所述吞吐量,以及在所述DNN的训练期间基于所述吞吐量来调整所述批量大小。
4.根据权利要求2所述的系统,还包括:
至少一个修正元件,被配置为:在所述工作服务器中的一个工作服务器处完成对一批量的所述样本的处理之后,从所述工作服务器中的所述一个工作服务器接收输入;基于所述输入来确定对所述DNN的调整;以及向所述工作服务器报告所述调整以用于更新所述DNN的所述模型。
5.根据权利要求1所述的系统,其中:
所述分发器被配置为确定要在所述DNN上执行的训练的整数个时期;以及
所述分发器被配置为在所述工作服务器间分配所述样本,使得在训练期间所述整数个所述时期将被完成但不被超过。
6.根据权利要求1所述的系统,其中:
所述样本中的至少一个样本包括图像。
7.根据权利要求1所述的系统,其中:
所述样本中的至少一个样本包括声音文件。
8.一种方法,包括:
标识多个工作服务器,所述多个工作服务器被配设用于通过经由深度神经网络(DNN)的模型处理样本来训练所述DNN;
接收指示所述工作服务器处的图形处理单元(GPU)处理能力的信息;
基于所述信息来确定所述工作服务器之间的所述GPU处理能力的差异;以及
基于所述差异在所述工作服务器间分配所述样本。
9.根据权利要求8所述的方法,还包括:
确定所述工作服务器的吞吐量;以及
基于所述吞吐量来选择用于所述工作服务器的批量大小;以及
向所述工作服务器报告所述批量大小,其中每个批量大小定义了用于由所述工作服务器中的一个工作服务器同时处理的一个批量中的所述样本的数目。
10.根据权利要求9所述的方法,还包括:
动态地确定所述吞吐量;以及
在所述DNN的训练期间基于所述吞吐量来调整所述批量大小。
11.根据权利要求9所述的方法,还包括:
在所述工作服务器中的一个工作服务器处完成对一批量的所述样本的处理之后,从所述工作服务器中的所述一个工作服务器接收输入;
基于所述输入来确定对所述DNN的调整;以及
向所述工作服务器报告所述调整以用于更新所述DNN的所述模型。
12.根据权利要求8所述的方法,还包括:
确定要在所述DNN上执行的训练的整数个时期;以及
在所述工作服务器间分配所述样本,使得在训练期间所述整数个时期将被完成但不被超过。
13.根据权利要求8所述的方法,其中:
所述样本中的至少一个样本包括图像。
14.根据权利要求8所述的方法,其中:
所述样本中的至少一个样本包括声音文件。
15.一种非瞬态计算机可读介质,实施有编程指令,所述编程指令在由处理器执行时可操作用于执行方法,所述方法包括:
标识多个工作服务器,所述多个工作服务器被配设用于通过经由深度神经网络(DNN)的模型处理样本来训练所述DNN;
接收指示所述工作服务器处的图形处理单元(GPU)处理能力的信息;
基于所述信息来确定所述工作服务器之间的所述GPU处理能力的差异;以及
基于所述差异来在所述工作服务器间分配所述样本。
16.根据权利要求15所述的介质,其中所述方法还包括:
确定所述工作服务器的吞吐量;以及
基于所述吞吐量来选择用于所述工作服务器的批量大小;以及
向所述工作报告所述批量大小,其中每个批量大小定义了用于由所述工作服务器中的一个工作服务器同时处理的一个批量中的所述样本的数目。
17.根据权利要求16所述的介质,其中:
动态地确定所述吞吐量;并且
在所述DNN的训练期间基于所述吞吐量来调整所述批量大小。
18.根据权利要求16所述的介质,其中所述方法还包括:
在所述工作服务器中的一个工作服务器处完成对一批量的所述样本的处理之后,从所述工作服务器中的所述一个工作服务器接收输入;
基于所述输入来确定对所述DNN的调整;以及
向工作服务器报告所述调整以用于更新所述DNN的所述模型。
19.根据权利要求15所述的介质,其中所述方法还包括:
确定要在所述DNN上执行的训练的整数个时期;以及
在所述工作服务器间分配所述样本,使得在训练期间所述整数个时期将被完成但不被超过。
20.根据权利要求15所述的介质,其中:
所述样本中的至少一个样本包括图像。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/945,647 | 2018-04-04 | ||
US15/945,647 US11275991B2 (en) | 2018-04-04 | 2018-04-04 | Coordinated heterogeneous processing of training data for deep neural networks |
PCT/EP2019/058441 WO2019193075A1 (en) | 2018-04-04 | 2019-04-03 | Coordinated heterogeneous processing of training data for deep neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111971694A true CN111971694A (zh) | 2020-11-20 |
Family
ID=66092338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980024289.1A Pending CN111971694A (zh) | 2018-04-04 | 2019-04-03 | 用于深度神经网络的训练数据的协同异构处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11275991B2 (zh) |
EP (1) | EP3776371A1 (zh) |
CN (1) | CN111971694A (zh) |
WO (1) | WO2019193075A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113283596A (zh) * | 2021-05-18 | 2021-08-20 | 北京达佳互联信息技术有限公司 | 一种模型参数训练方法、服务器、系统及存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11568207B2 (en) * | 2018-09-27 | 2023-01-31 | Deepmind Technologies Limited | Learning observation representations by predicting the future in latent space |
US11599798B2 (en) * | 2019-03-18 | 2023-03-07 | University Of Notre Dame Du Lac | Methods of operating a graphics processing unit (GPU) to train a deep neural network using a GPU local memory and related articles of manufacture |
US11494237B2 (en) * | 2019-06-26 | 2022-11-08 | Microsoft Technology Licensing, Llc | Managing workloads of a deep neural network processor |
CN111290855B (zh) * | 2020-02-06 | 2021-02-09 | 四川大学 | 分布式环境中多gpu服务器的gpu卡管理方法、系统及存储介质 |
CN111461207B (zh) * | 2020-03-30 | 2023-07-18 | 北京奇艺世纪科技有限公司 | 一种图片识别模型训练系统及方法 |
CN111522837B (zh) * | 2020-04-23 | 2023-06-23 | 北京百度网讯科技有限公司 | 用于确定深度神经网络的耗时的方法和装置 |
WO2021220616A1 (ja) * | 2020-04-30 | 2021-11-04 | ソニーグループ株式会社 | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム |
CN111970718B (zh) * | 2020-07-22 | 2022-03-11 | 西北工业大学 | 能量收集不可信中继网络中基于深度学习的功率分配方法 |
CN112598135A (zh) * | 2020-12-24 | 2021-04-02 | 深圳壹账通智能科技有限公司 | 模型训练处理方法、装置、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN106293942A (zh) * | 2016-08-10 | 2017-01-04 | 中国科学技术大学苏州研究院 | 基于多机多卡的神经网络负载均衡优化方法和系统 |
CN107018184A (zh) * | 2017-03-28 | 2017-08-04 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8869160B2 (en) | 2009-12-24 | 2014-10-21 | International Business Machines Corporation | Goal oriented performance management of workload utilizing accelerators |
US9047129B2 (en) * | 2012-07-23 | 2015-06-02 | Adobe Systems Incorporated | Systems and methods for load balancing of time-based tasks in a distributed computing system |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US10200824B2 (en) * | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US10769533B2 (en) | 2015-09-04 | 2020-09-08 | Baidu Usa Llc | Systems and methods for efficient neural network deployments |
US20170091668A1 (en) * | 2015-09-30 | 2017-03-30 | Nec Laboratories America, Inc. | System and method for network bandwidth aware distributed learning |
US11087234B2 (en) | 2016-01-29 | 2021-08-10 | Verizon Media Inc. | Method and system for distributed deep machine learning |
US20180284735A1 (en) * | 2016-05-09 | 2018-10-04 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for industrial internet of things data collection in a network sensitive upstream oil and gas environment |
US20180349472A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Methods and systems for providing query suggestions |
US20190095794A1 (en) * | 2017-09-26 | 2019-03-28 | Intel Corporation | Methods and apparatus for training a neural network |
US11734545B2 (en) * | 2017-11-14 | 2023-08-22 | Google Llc | Highly efficient convolutional neural networks |
-
2018
- 2018-04-04 US US15/945,647 patent/US11275991B2/en active Active
-
2019
- 2019-04-03 EP EP19716136.7A patent/EP3776371A1/en active Pending
- 2019-04-03 CN CN201980024289.1A patent/CN111971694A/zh active Pending
- 2019-04-03 WO PCT/EP2019/058441 patent/WO2019193075A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN106293942A (zh) * | 2016-08-10 | 2017-01-04 | 中国科学技术大学苏州研究院 | 基于多机多卡的神经网络负载均衡优化方法和系统 |
CN107018184A (zh) * | 2017-03-28 | 2017-08-04 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及系统 |
Non-Patent Citations (1)
Title |
---|
ADITYA DEVARAKONDA 等: "AdaBatch: Adaptive Batch Sizes for Training Deep Neural Networks", ARXIV, 14 February 2018 (2018-02-14), pages 1 - 14 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113283596A (zh) * | 2021-05-18 | 2021-08-20 | 北京达佳互联信息技术有限公司 | 一种模型参数训练方法、服务器、系统及存储介质 |
CN113283596B (zh) * | 2021-05-18 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 一种模型参数训练方法、服务器、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019193075A1 (en) | 2019-10-10 |
EP3776371A1 (en) | 2021-02-17 |
US20190311257A1 (en) | 2019-10-10 |
US11275991B2 (en) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111971694A (zh) | 用于深度神经网络的训练数据的协同异构处理 | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
CN108122027B (zh) | 一种神经网络模型的训练方法、装置及芯片 | |
CN110321222B (zh) | 基于决策树预测的数据并行作业资源分配方法 | |
EP3525139A1 (en) | Automatically scaling neural networks based on load | |
US11966843B2 (en) | Methods and apparatus for distributed training of a neural network | |
CN108027889A (zh) | 一种用于增量式学习云系统的训练、调度方法及相关设备 | |
CN110413412A (zh) | 一种基于gpu集群资源分配的方法和装置 | |
CN110262897B (zh) | 一种基于负载预测的Hadoop计算任务初始分配方法 | |
CN113946431B (zh) | 一种资源调度方法、系统、介质及计算设备 | |
CN111813523A (zh) | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 | |
CN114675975B (zh) | 一种基于强化学习的作业调度方法、装置及设备 | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
EP3885910A1 (en) | Dynamic quality of service management for deep learning training communication | |
CN113485833A (zh) | 资源预测方法和装置 | |
CN113535346B (zh) | 线程数量调整的方法、装置、设备及计算机存储介质 | |
KR102336297B1 (ko) | 공유 gpu 클러스터를 위한 분산 딥러닝 작업 스케줄링 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체 | |
CN113849295A (zh) | 模型训练的方法、装置及计算机可读存储介质 | |
CN108268316A (zh) | 作业调度的方法及装置 | |
CN110837395B (zh) | 多gpu并行训练的归一化处理方法、装置和系统 | |
CN110196879B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
CN115827225A (zh) | 异构运算的分配方法、模型训练方法、装置、芯片、设备及介质 | |
CN105139020A (zh) | 一种用户聚类方法及装置 | |
CN112596879B (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 |