WO2021220616A1 - 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム - Google Patents
情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム Download PDFInfo
- Publication number
- WO2021220616A1 WO2021220616A1 PCT/JP2021/008843 JP2021008843W WO2021220616A1 WO 2021220616 A1 WO2021220616 A1 WO 2021220616A1 JP 2021008843 W JP2021008843 W JP 2021008843W WO 2021220616 A1 WO2021220616 A1 WO 2021220616A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- worker
- learning
- workers
- task
- parameter server
- Prior art date
Links
Images
Classifications
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Definitions
- the technology disclosed in the present specification (hereinafter referred to as "the present disclosure") relates to an information processing device and an information processing method for performing distributed learning of a neural model, a computer program, and a distributed learning system.
- DNN learning deep neural network learning
- recognition processing such as image recognition, voice recognition, and character recognition
- control of autonomously operating devices such as voice agents, robots, and drones.
- Research and development are progressing rapidly.
- DNN learning the number of parameters (gradient data of weighting coefficients) to be handled is enormous, and it takes a lot of time. Therefore, distributed learning in which parallel processing is distributed to a plurality of calculation nodes is often adopted.
- gradient synchronization of DNN model parameters is required between calculation nodes, and the DNN model is updated after waiting for the completion of gradient calculation for all calculation nodes.
- the method of gradient synchronization differs depending on the mechanism of distributed learning.
- distributed learning with a parameter server learning with PS, Centralized DNN Training
- a parameter server collects gradient information from each calculation node and updates the DNN model.
- Learning without a parameter server that updates the DNN model by directly communicating gradient information between calculation nodes without the intervention of a parameter server learning without PS, Decentralized Disturbed DNN Training
- Non-Patent Document 1 There are two.
- An object of the present disclosure is to provide an information processing device and an information processing method, a computer program, and a distributed learning system that perform processing for distributed learning using a parameter server.
- the first aspect of the disclosure is A management department that manages workers that can be used for distributed learning of models, A parameter server unit that distributes tasks to workers managed by the management unit, collects gradient data obtained by learning by the workers, and updates the model. It is an information processing device provided with.
- the management unit manages a worker list including available worker resources and addresses. Then, the parameter server unit acquires the worker list from the management unit for each iteration of the distributed learning, and distributes the task to the workers based on the worker list.
- the parameter server unit creates and distributes a task specialized for each worker based on the information of available resources of each worker for each iteration.
- the management department adds the added worker information to the worker list at any time in the iteration.
- the management unit receives a worker stop request at an arbitrary timing in the iteration, stops the worker requested to be stopped in the next iteration, and sends a worker list excluding the information of the stopped worker to the parameter server unit. offer.
- the second aspect of the present disclosure is Management steps to manage the workers available for distributed learning of the model, The step of distributing the task to the workers managed in the management step, and Steps to collect gradient data obtained by learning by workers, Steps to update the model based on the collected gradient data, It is an information processing method having.
- the third aspect of the present disclosure is Management department that manages workers available for distributed learning of models, A parameter server unit that distributes tasks to workers managed by the management unit, collects gradient data obtained by learning by the workers, and updates the model.
- the computer program according to the third aspect of the present disclosure defines a computer program written in a computer-readable format so as to realize a predetermined process on the computer.
- a collaborative action is exerted on the computer, and the same action as the information processing device according to the first aspect of the present disclosure. The effect can be obtained.
- connection manager that manages workers and A parameter server that distributes tasks to workers based on the worker list obtained from the connection manager, collects the gradient data obtained by the workers learning, and updates the model. It is a distributed learning system equipped with.
- system here means a logical assembly of a plurality of devices (or functional modules that realize a specific function), and each device or functional module is in a single housing. It does not matter whether or not it is.
- an information processing device and an information processing method, a computer program, and a distributed learning system that perform processing for distributed learning while changing the number of workers by using a parameter server.
- FIG. 1 is a diagram showing a configuration example of a distributed learning system 100 that performs learning with PS.
- FIG. 2 is a diagram showing an operation chart of DNN learning in the distributed learning system 100 shown in FIG.
- FIG. 3 is a diagram showing a parameter distribution (distribute) phase from the parameter server to each worker in the distributed learning system 100 shown in FIG.
- FIG. 4 is a diagram showing a model learning (train) phase by each worker in the distributed learning system 100 shown in FIG.
- FIG. 5 is a diagram showing a parameter collection (gather) phase from each worker by the parameter server in the distributed learning system 100 shown in FIG.
- FIG. 6 is a diagram showing an update phase of the DNN model by the parameter server in the distributed learning system 100 shown in FIG.
- FIG. 1 is a diagram showing a configuration example of a distributed learning system 100 that performs learning with PS.
- FIG. 2 is a diagram showing an operation chart of DNN learning in the distributed learning system 100 shown in FIG.
- FIG. 3 is a
- FIG. 7 is a diagram showing a configuration example of a distributed learning system 700 that performs learning without PS.
- FIG. 8 is a diagram showing an operation chart of DNN learning in the distributed learning system 700 shown in FIG. 7.
- FIG. 9 is a diagram showing a training (train) and DNN model update (update) phase in the distributed learning system 700 shown in FIG.
- FIG. 10 is a diagram showing a gradient synchronization (sync) phase in the distributed learning system 700 shown in FIG. 7.
- FIG. 11 is a diagram for explaining a procedure for managing the tasks executed by the scheduler using the priority queue on the cluster computers.
- FIG. 12 is a diagram for explaining a procedure for managing the tasks executed by the scheduler using the priority queue on the cluster computers.
- FIG. 13 is a diagram illustrating load fluctuations in a cluster computer that is executing an important task.
- FIG. 14 is a diagram showing the load required for the DNN learning task according to the period of low load during execution of the important task.
- FIG. 15 is a diagram showing the load of the DNN learning task superimposed on the load that fluctuates while the cluster computer is executing the important task and the time of the low load.
- FIG. 16 is a diagram showing a state in which learning with PS is performed in a heterogeneous environment.
- FIG. 17 is a diagram showing how PS-less learning is performed in a heterogeneous environment.
- FIG. 18 is a diagram showing a configuration example of a distributed learning system 1800 that performs learning with PS in a heterogeneous environment.
- FIG. 19 is a diagram showing an operation chart of DNN learning in the distributed learning system 1800 shown in FIG.
- FIG. 20 is a diagram showing an operation sequence example (an example including worker registration) in which a distributed learning system performs learning with PS using a connection manager.
- FIG. 21 is a diagram showing an example of an operation sequence (an example including addition of a worker) in which a distributed learning system performs learning with PS using a connection manager.
- FIG. 22 is a diagram showing an operation sequence example (an example including removal of a worker by Direct Termination) in which a distributed learning system performs learning with PS using a connection manager.
- FIG. 20 is a diagram showing an operation sequence example (an example including worker registration) in which a distributed learning system performs learning with PS using a connection manager.
- FIG. 21 is a diagram showing an example of an operation sequence (an example including addition of a worker) in which a distributed learning system performs learning with PS using a connection manager.
- FIG. 22 is a diagram showing an operation sequence example (an example
- FIG. 23 is a diagram showing an operation sequence example (an example including removal of a worker by Connection-manager-initiated Termination) in which a distributed learning system performs learning with PS using a connection manager.
- FIG. 24 is a diagram showing a functional configuration for updating the calculated rainfall of each worker in the parameter server.
- FIG. 25 is a diagram showing an operation example when an important task enters the task queue while executing the DNN learning task on the cluster computer.
- FIG. 26 is a diagram showing an operation example when an important task enters the task queue while executing the DNN learning task on the cluster computer.
- FIG. 27 is a diagram showing an operation example when an important task enters the task queue while executing the DNN learning task on the cluster computer.
- FIG. 28 is a diagram illustrating load fluctuations in a cluster computer that is executing an important task.
- FIG. 29 is a diagram illustrating load fluctuations in which free resources are allocated to DNN distributed learning according to load fluctuations in a cluster computer.
- FIG. 30 is a diagram illustrating load fluctuations of the entire cluster computer when important tasks and DNN distributed learning are executed in parallel at the same time.
- A. Distributed learning system DNN learning is realized by an iterative process (Iterative Process).
- the training data set and the DNN model in the initial state are input, and the parameters (gradient data of the weighting coefficient) of the trained DNN model are output through an iterative process.
- One learning iteration is divided into a learning step (Train) and a parameter update step (update).
- the learning data set is divided into mini-batch of appropriate size and assigned to each worker, and the same DNN model is assigned to each worker.
- each worker has a different parameter (gradient data) in one learning iteration. Therefore, for each learning iteration, in addition to the learning and updating steps, gradient synchronization of the parameters of the DNN model is required between the compute nodes.
- the gradient synchronization method includes learning with PS and learning without PS.
- A-1. Learning with PS PS learning is a distributed learning mechanism that uses a parameter server.
- One of the plurality of calculation nodes is a parameter server that performs parameter update processing, and the rest is a worker that calculates the parameter update amount.
- FIG. 1 shows a configuration example of a distributed learning system 100 that performs learning with PS.
- the distributed learning system 100 consisting of only four calculation nodes is shown for simplification, but it is assumed that the distributed learning system is actually composed of a large number of five or more calculation nodes.
- the calculation nodes 101 to 104 are interconnected via a network (N / W).
- a wideband network such as InfiniBand is assumed.
- Each calculation node 101 to 104 is composed of one CPU (Central Processing Unit) or a combination of a CPU and one or more GPUs (Graphic Processing Unit). Of these, the calculation node 101 operates as a parameter server, and the remaining calculation nodes 102 to 104 operate as workers.
- CPU Central Processing Unit
- GPU Graphic Processing Unit
- the parameter server distributes parameters to each worker (distribute) before the learning step. Then, when the learning (Train) of all the workers is completed, the parameter server collects the parameters from each worker (gather) and updates the model (update).
- FIG. 2 shows an operation chart of DNN learning in the distributed learning system 100 shown in FIG.
- the horizontal axis is the time axis.
- the parameter server (calculation node 101) inputs the training data set and the DNN model in the initial state
- the training data set is divided into mini-batch of an appropriate size, and the training data is distributed to each worker (distribute) for each mini-batch. ), Collecting learned parameters from each worker (gather), and updating the DNN model (update) are repeated, and the parameters of the learned DNN model are output.
- each of the calculation nodes 102 to 104 operating as a worker repeats an iteration consisting of distribution of parameters from the parameter server (distribute), training (train), and collection of learned parameters by the parameter server (gather).
- 3 to 6 show the distribution of learning data (mini-batch) from the parameter server to each worker in the distributed learning system 100 shown in FIG. 1, and the DNN model using the learning data distributed by each worker.
- learning data mini-batch
- grade data collection of learned parameters
- gather update of the DNN model by the parameter server
- FIG. 7 shows a configuration example of a distributed learning system 700 that performs learning without PS.
- the calculation nodes 701 to 704 are interconnected via a network (N / W).
- Each calculation node 701 to 704 is configured by a combination of one CPU and one or more GPUs (Graphic Processing Units), and all of them operate as workers.
- FIG. 8 shows an operation chart of DNN learning in the distributed learning system 700 shown in FIG.
- the horizontal axis is the time axis.
- FIG. 9 illustrates the learning (train) and DNN model update (update) phases in the distributed learning system 700 shown in FIG. 7.
- the training and the update of the DNN model are performed in units of mini-batch by dividing the training data set into appropriate mini-batch.
- FIG. 10 illustrates the gradient synchronization (sync) phase in the distributed learning system 700 shown in FIG. 7.
- Gradient synchronization is the process of exchanging gradient data among all workers and adding them element by element.
- A. Task management in a cluster computer In distributed DNN learning, a cluster computer in which a plurality of computers (nodes) are grouped is used. In a cluster computer, the scheduler manages the deployment of tasks to each node, that is, the schedule of tasks for each worker.
- the scheduler manages tasks in the task queue (Task Queue).
- the task queue has a data structure called a priority queue in which tasks are read out in descending order of priority.
- 11 and 12 show an example in which the scheduler manages tasks of a cluster computer using a task queue.
- the cluster computer 1100 is performing distributed DNN learning.
- the cluster computer 1100 is composed of six calculation nodes # 1 to # 6, and DNN learning is performed using four calculation nodes # 1 to # 4.
- Each of the calculation nodes # 1 to # 6 is composed of a combination of one CPU and one or more GPUs.
- a higher priority "Important Task” occurs in the task queue 1101 and is detected by the scheduler 1102 (SEQ1101).
- the scheduler 1102 must reclaim the resources of the cluster computer from DNN learning in order to perform important tasks (SEQ 1102). In neither the learning with PS nor the learning without PS, the number of nodes used for the task cannot be changed in the middle of the learning session. The only way to regain resources is to suspend DNN learning at compute nodes # 1 to # 4 of the cluster computers 1100 and put them back into task queue 1101 (SEQ 1103). When the resource is regained by interrupting the DNN learning, the scheduler 1102 retrieves the most important task having the highest priority from the task queue 1101 and launches it on the cluster computer 1100 (SEQ1104).
- FIG. 12 shows how the cluster computer 1100 is performing an important task.
- important tasks are performed using all six compute nodes # 1 to # 6 that make up the cluster computer 1100.
- the DNN learning task interrupted to execute the important task with priority is restarted after waiting until the resources of the cluster computer 1100 are sufficient.
- FIG. 13 illustrates load fluctuations in the cluster computer 1100 that is executing an important task.
- the horizontal axis in the figure is the time axis
- the vertical axis is the load.
- the load of the cluster computer 1100 is not uniform during the execution of the important task, and it fluctuates with the passage of time, and the high load period in which the other tasks cannot be executed and the DNN learning task are executed. There is a time when the load drops to as low as possible.
- FIG. 14 shows the load required for the DNN learning task according to the period of low load during the execution of the important task.
- FIG. 15 shows a load that fluctuates while the cluster computer 1100 is executing an important task (see FIG. 13) and a load of a DNN learning task (see FIG. 14) during a low load period. It is shown superimposed.
- neither learning with PS nor learning without PS can respond to changes in resources during the session. For example, even if a node included in a cloud computer is added and the available resources increase, it cannot be used from the middle of the session.
- the resources of each node are not uniform.
- all the workers have no choice but to learn according to the number of devices (such as the number of GPUs) and the worker with the least resources.
- FIG. 16 shows a state in which learning with PS is performed in a heterogeneous environment.
- a worker 1602 having two GPUs and workers 1603 and 1604 having three GPUs are mixed, but all the workers 1602 to 1604 have two GPUs. Since distributed learning is performed according to the number of GPUs, unused GPUs are generated in the workers 1603 and 1604 having three GPUs.
- the CPU and GPU in use are shown by a box filled with gray, and the unused GPU is shown by a white box.
- FIG. 17 shows how PS-less learning is performed in a heterogeneous environment.
- a worker 1702 having two GPUs and workers 1701, 1703, and 1704 having three GPUs are mixed, but all the workers 1701 to 1704 have the number of GPUs. Since distributed learning is performed in combination with two, unused GPUs are generated in the workers 1701, 1703, and 1704 having three GPUs.
- the CPU and GPU in use are shown by a box filled with gray, and the unused GPU is shown by a white box.
- FIG. 18 shows a configuration example of a distributed learning system 1800 that performs learning with PS in a heterogeneous environment.
- the distributed learning system 1800 consisting of only four calculation nodes 1801 to 1804 is shown for simplification, but it is assumed that the distributed learning system is actually composed of a large number of five or more calculation nodes. Will be done.
- the calculation nodes 1801 to 1804 are interconnected via a network (N / W). Of these, the compute node 1801 operates as a parameter server (and connection manager), and the remaining compute nodes 1802 to 1804 operate as workers.
- the CPU and GPU in use are shown by a box filled with gray, but there is no unused GPU.
- FIG. 19 shows an operation chart of DNN learning in the distributed learning system 1800 shown in FIG.
- the horizontal axis is the time axis.
- the parameter server (calculation node 1801) inputs the training data set and the DNN model in the initial state, distributes the divided training data to each worker of the parameters (distribution), and collects the trained parameters from each worker (gather). ), And the iteration consisting of updating the DNN model is repeated, and the parameters of the learned DNN model are output. Further, each of the calculation nodes 1802 to 1804 operating as a worker repeats an iteration consisting of distribution of parameters from the parameter server (distribute), training (train), and collection of learned parameters by the parameter server (gather).
- Each calculation node 1801 to 1804 is composed of one CPU or a combination of one CPU and one or more GPUs.
- the GPU models of the calculation nodes 1802 to 1804 operating as workers are not uniform, and the number of devices (GPUs) and the calculation speed are different for each node. That is, the distributed learning system 1800 is a heterogeneous environment.
- the connection manager manages each worker in order to use the GPU of all the workers.
- the connection manager also operates on the calculation node 1801 that operates as a parameter server.
- the connection manager may operate on a calculation node different from the parameter server.
- FIG. 20 shows an example of an operation sequence in which a distributed learning system performs learning with PS using a connection manager.
- the operation sequence example shown in FIG. 20 includes a sequence for registering a new worker (Register).
- the horizontal axis is the time axis.
- the parameter server starts the connection manager (Spawn), and the connection manager manages the workers who can use the parameter server.
- the worker When a worker is launched, first, the worker is registered in the connection manager (Register) (SEQ 2001). At the time of launch, the worker sends the information of its available resource (Available Resource) (for example, the number of GPUs mounted on the worker) to the connection manager with its own IP address (Worker IP). By registering with the connection manager.
- Available Resource for example, the number of GPUs mounted on the worker
- connection manager When the connection manager receives a registration request including information on the IP address and available resources from the worker, the connection manager updates the pooled worker information (hereinafter, also referred to as "worker list") (Update pool). In addition, the connection manager returns the DNN model definition (DNN Model Definition) to the worker (SEQ2002). The worker initializes the DNN model (Init model) based on the DNN model definition passed from the connection manager, and then waits for the task to arrive from the parameter server.
- worker list also referred to as "worker list”
- DNN Model Definition DNN Model Definition
- the parameter server first initializes the input DNN model (Init model) (SEQ2003). Then, the parameter server acquires the worker list registered from the connection manager (Get Workers) for each iteration (SEQ 2004). The parameter server uses the acquired worker list only for that one iteration. That is, the parameter server can change the number of workers (for each iteration) during learning by checking the worker list for each iteration.
- the parameter server creates a task (Task specific for each worker) specialized for each worker based on the information of available resources of each worker described in the worker list (Create Task). (SEQ2005), and distribute (Distribute) the task to the IP address of each worker (SEQ2006).
- Each worker executes learning (Train) of the DNN model based on the task distributed from the parameter server for each iteration (SEQ 2007). Then, when the parameter server collects (Gater) the gradient data of the DNN model obtained by learning by each worker (SEQ 2008), the parameter server updates the DNN model (Update) using the gradient data of the previous worker (SEQ 2009). , End the iteration.
- connection manager By using the connection manager, it is possible to add a worker (Add) to distribute a task (Distribute) and remove a worker (Remov) independently of the iteration. That is, the parameter server can add (add) and remove (remove) workers who distribute tasks (distribute) for each iteration by acquiring a worker list (Get workers) from the connection manager for each iteration. .. The operations for adding and removing workers will be described below.
- FIG. 21 shows an example of another operation sequence in which the distributed learning system performs learning with PS using the connection manager.
- a sequence for adding a worker (Add) in the middle of distributed learning is included.
- the horizontal axis is the time axis.
- the parameter server acquires the worker list registered from the connection manager (Get Workers) for each iteration, and creates a task (Task specific for each worker) specialized for each worker (Create Task). , Distribute the task to the IP address of each worker (Distribute).
- the parameter server is a task whose batch size is 32 in worker 1 according to the worker list, that is, the resource of each worker.
- Distribute 1 and task 2 having a batch size of 32 to worker 2, respectively.
- the worker 1 and the worker 2 execute the learning (Train) of the DNN model based on the task 1 and the task 2 distributed from the parameter server (Distribution), respectively.
- the scheduler spawns worker 3 independently of this iteration (SEQ2101). Then, the worker 3 registers with the connection manager (Register) (SEQ2102). In this registration process, the worker 3 sends information on his / her IP address (Worker IP) and his / her available resource (Available Resource) to the connection manager, and the connection manager sends the DNN model definition (DNN Model Definition) to the worker 3. return.
- the connection manager (Register)
- the parameter server collects the gradient data obtained by learning by the worker 1 and the worker 2, respectively, updates the DNN model (Update), and ends this iteration.
- the parameter server can acquire a worker list to which the information of the worker 3 is added (Get workers) from the connection manager and pick up a new worker 3. Then, the parameter server creates a task (Create Task) for each worker including the task to the worker 3 (Create Task), and distributes the task to the IP address of each worker (Distribution) (SEQ2103). .. In this iteration, the parameter server assigns task 1 of batch size 21 to worker 1, task 2 of batch size 21 to worker 2, and task 3 of batch size 22 to worker 3, depending on the resources of each worker. , Distribute each. Workers 1 to 3 execute training (Train) of the DNN model based on the tasks distributed from the parameter server. After that, the parameter server collects the gradient data obtained by learning by the workers 1 to 3 (Gather), updates the DNN model (Update), and ends this iteration.
- the parameter server collects the gradient data obtained by learning by the workers 1 to 3 (Gather), updates the DNN model (Update), and ends this iteration.
- FIG. 22 shows an example of yet another operation sequence in which the distributed learning system performs learning with PS using the connection manager.
- a sequence for removing a worker in the middle of distributed learning by Direct Termination is included.
- Direct Termination means that the scheduler terminates the worker immediately at any time independently of the iteration.
- the horizontal axis is the time axis.
- the parameter server acquires the worker list registered from the connection manager (Get Workers) for each iteration, and creates a task (Task specific for each worker) specialized for each worker (Create Task). , Distribute the task to the IP address of each worker (Distribute).
- workers 1 to 3 are pre-registered in the connection manager, and the parameter server assigns task 1 having a batch size of 21 to worker 1 according to the worker list, that is, the resource of each worker, and worker 2. Attempts to distribute (Distribute) task 2 having a batch size of 21 and task 3 having a batch size of 22 to the worker 3 (SEQ2202).
- the scheduler terminates the worker 3 before the task 3 is distributed from the parameter server, independent of this iteration.
- the scheduler further terminates the worker 2 during learning (Train) after the task 2 is distributed from the parameter server to the worker 2 (SEQ2201). Therefore, the parameter server fails to distribute the task 3 to the worker 3 in SEQ2202. Further, the parameter server tries to collect the gradient data (Gather) obtained by learning by each worker, but fails to collect the gradient data (Gather) from the worker 2 which is stopped (Terminate) (SEQ2203). If the parameter server fails to distribute the task (Distribution) or collect the gradient data (Gather), the parameter server cancels the iteration without updating the DNN model (Cancel iteration / no update). Rerun training for the same training data in the next iteration.
- the parameter server acquires the worker list from which the information of the worker 2 and the worker 3 has been deleted (Get workers), creates a task of the worker 1 (Tack specific for each worker), and creates a task (Create Task). Distribute task 1 with a batch size of 64 to the IP address of worker 1. Worker 1 executes training (Train) of the DNN model based on the task distributed from the parameter server. After that, the parameter server collects the gradient data obtained by learning by the worker 1 (Gather), updates the DNN model (Update), and ends this iteration.
- FIG. 23 shows an example of yet another operation sequence in which the distributed learning system performs learning with PS using the connection manager.
- the operation sequence example shown in FIG. 23 includes a sequence in which a worker is removed (Removed) in the middle of distributed learning by Connection-manager-initiated Termination.
- Connection-manager-initiated Termination means to terminate the operation of the worker independently of the iteration by the intervention of the connection manager.
- the horizontal axis is the time axis.
- the parameter server acquires the worker list registered from the connection manager (Get Workers) for each iteration, and creates a task (Task specific for each worker) specialized for each worker (Create Task). , Distribute the task to the IP address of each worker (Distribute).
- workers 1 to 3 are pre-registered in the connection manager, and the parameter server assigns task 1 having a batch size of 21 to worker 1 according to the worker list, that is, the resource of each worker, and worker 2.
- the task 2 having a batch size of 21 is distributed to the worker 3
- the task 3 having a batch size of 22 is distributed to the worker 3.
- the scheduler requests the connection manager to stop the worker 2 and the worker 3 (Termination Request) or remove the worker 3 (Remove Request). Is sent (SEQ2301).
- the connection manager receives the above request from the scheduler, it does nothing within this iteration. Therefore, the workers 1 to 3 execute the learning (Train) of the DNN model based on the tasks 1 to 3 distributed from the parameter server (Distribution). After that, the parameter server collects the gradient data obtained by learning by the workers 1 to 3 (Gather), updates the DNN model (Update), and ends this iteration.
- the parameter server acquires the worker list from which the information of the worker 2 and the worker 3 requested to be stopped or removed from the scheduler has been deleted from the connection manager (Get workers). Further, the connection manager transmits a stop signal (Termination Signal) to each of the worker 2 and the worker 3 whose stop or removal is requested by the scheduler (SEQ2302). Then, the worker 2 and the worker 3 receive a stop signal (Termination Signal) from the connection manager and stop in this iteration.
- a stop signal (Termination Signal)
- the parameter server acquires a worker list from which the information of the worker 2 and the worker 3 has been deleted by this iteration (Get workers), and creates a task (Task specific for each worker) of the worker 1 (Create Task). , Distribute task 1 having a batch size of 64 to the IP address of worker 1. Worker 1 executes training (Train) of the DNN model based on the task distributed from the parameter server. After that, the parameter server collects the gradient data obtained by learning by the worker 1 (Gather), updates the DNN model (Update), and ends this iteration.
- the distributed learning parameter server that enables automatic rebalancing divides tasks according to the number of workers used in the iteration and the computing power (Computation Capacity) of each worker, and distributes them to each worker. That is, in the distributed DNN learning, the batch size (per-worker batch size) for each worker is adjusted according to the processing performance of each worker (however, the total of all per-worker batch sizes is minibatch-size).
- the Computation Capacity of each worker is automatically and sequentially updated, for example, for each iteration, based on the result of monitoring the calculation time of the previous task.
- FIG. 24 schematically shows a functional configuration for updating the computing power of each worker in the parameter server.
- the illustrated parameter server 2400 includes each functional module of a trainer 2401, a task splitter 2402, a dispatcher 2403, and a task monitor 2404.
- the following processing is performed for each iteration.
- the trainer 2401 fetches the training data and acquires the worker list from the connection manager.
- the trainer 2402 sends the training data and the worker list to the task splitter 2402.
- the task splitter 2402 acquires the [average iteration time / per-worker batch size] of each worker from the task monitor 2404, divides the mini-batch size of the training data into per-worker batch sizes, and divides the training data into per-worker batch sizes. Let it be a per-worker task. That is, the size of the learning data (per-worker batch size) distributed to each worker is updated for each iteration based on the result of monitoring the calculation time of the task of each worker.
- the task splitter 2402 sends tasks to all workers to the dispatcher 2403.
- the dispatcher 2403 records (Log) the iteration start time (Start Time) of each worker in association with each per-worker batch size.
- the dispatcher 2403 distributes the task to each worker. Each worker executes a learning process when the task is distributed. Then, each worker returns the calculated gradient data to the dispatcher 2403 (Return).
- the dispatcher 2403 records (Log) the end time (End Time) of each worker's iteration in association with each per-worker batch size.
- the task monitor 2404 monitors the computing power of each worker by dividing the average iteration time of the worker (the average of the difference between the end time of the iteration and the start time of the iteration) by the batch size of the tasks distributed to the worker.
- the task splitter 2402 determines the batch size of the task to be distributed to each worker based on the monitoring result of the computing power of each worker, and distributes the learning data.
- the dispatcher 2403 sends the gradient data collected from each worker to the trainer 2401.
- the trainer 2401 synthesizes the gradient data collected from each worker (Combine) and updates the DNN model.
- the parameter server creates tasks according to the resources of each worker based on the worker list passed from the connection manager, so that the free resources of each worker can be effectively used.
- FIGS. 25 to 27 show an operation example when an important task enters the task queue while executing the DNN learning task in the cluster computer. According to the present disclosure, it is not necessary to stop the DNN learning task to start the important task.
- the cluster computer 2500 is composed of eight calculation nodes # 1 to # 8, and all the calculation nodes # 1 to # 8 are used as workers for the DNN distributed learning task. It is assumed that an important task enters the task queue 2501 while executing this DNN distributed learning task (SEQ2501).
- the task queue 2501 is a priority queue having a data structure in which tasks are read out in descending order of priority.
- the scheduler 2502 removes the workers of the DNN distributed learning task until the important task can be launched (SEQ2502). Since the specific processing procedure for removing the worker of the DNN distributed learning task has already been described in C-3 above, the details will be omitted here. For example, as shown in FIG. 26, 6 out of 8 workers are removed (remove), important tasks are started (Lanch) on the 6 compute nodes, and DNN distribution is performed on the remaining 2 workers. The learning task is continuously executed (SEQ2503). According to the present disclosure, since it is possible to add and remove workers used for DNN distributed learning for each iteration, unlike the cases shown in FIGS. 11 to 12, DNN distributed learning is completely performed in the cluster computer. It is possible to start an important task without stopping at, and execute the important task and DNN distributed learning in parallel at the same time.
- the scheduler 2502 releases the resource used for the important task, that is, the six calculation nodes # 3 to # 8, and the worker of the DNN distributed learning task.
- FIG. 28 illustrates load fluctuations in the cluster computer 2500 that is executing an important task.
- the horizontal axis in the figure is the time axis
- the vertical axis is the load.
- the load of the cluster computer 2500 is not uniform during the execution of the important task, fluctuates with the passage of time, and the DNN learning task is executed during the high load period when the other tasks cannot be executed. There is a time when the load drops to as low as possible.
- the parameter server can create tasks according to the resources of each worker based on the worker list passed from the connection manager, and can effectively use the free resources of each worker.
- FIG. 29 illustrates the load fluctuation of the cluster computer 2500 spent on the DNN distributed learning when the DNN distributed learning is advanced using the free resources in the cluster computer 2500 in response to the load fluctuation of the cluster computer 2500 during the execution of the important task.
- FIG. 30 illustrates the load fluctuation of the entire cluster computer 2500 when the important task and the DNN distributed learning are executed in parallel at the same time. As can be seen from FIG. 30, by applying the present disclosure, it can be seen that in the cluster computer 2500, important tasks and DNN distributed learning can be executed in parallel at the same time, and the resources of each worker can be fully used. ..
- the connection server manages the workers who can use the parameter server. Therefore, the parameter server can distribute tasks according to the computing power of each worker based on the worker list obtained from the connection manager.
- all worker devices GPU and the like
- the CPU and GPU in use are shown by a box filled with gray, but there is no unused GPU.
- the present specification has mainly described embodiments in which the present disclosure is applied to distributed learning of DNN, the gist of the present disclosure is not limited to this, and is used for distributed learning of various types of machine learning models. Can be applied.
- a management department that manages workers that can be used for distributed learning of models
- a parameter server unit that distributes tasks to workers managed by the management unit, collects gradient data obtained by learning by the workers, and updates the model.
- Information processing device equipped with is
- the management unit manages a worker list including available worker resources and addresses.
- the parameter server unit distributes tasks to workers based on the worker list acquired from the management unit.
- the parameter server unit acquires the worker list from the management unit for each iteration of the distributed learning.
- the information processing device according to (2) above.
- the parameter server unit creates and distributes a task specialized for each worker based on the information of available resources of each worker for each iteration.
- the information processing device according to any one of (1) to (3) above.
- the management unit provides the definition information of the model to the worker who has acquired the resource and the address.
- the information processing device according to any one of (1) to (4) above.
- the management unit adds the added worker information to the worker list at any time in the iteration.
- the information processing device according to any one of (2) and (3) above.
- the management unit receives a worker stop request at an arbitrary timing in the iteration, stops the worker requested to be stopped in the next iteration, and displays a worker list excluding the information of the stopped worker in the parameter server unit.
- the parameter server unit determines the batch size of the task to be distributed to the worker based on the monitoring result of the computing power of the worker for each iteration.
- the information processing device according to any one of (1) to (7) above.
- Management department that manages workers that can be used for distributed learning of models
- a parameter server unit that distributes tasks to workers managed by the management unit, collects gradient data obtained by learning by the workers, and updates the model.
- Workers that can be used for distributed learning of models A connection manager that manages workers and A parameter server that distributes tasks to workers based on the worker list obtained from the connection manager, collects the gradient data obtained by the workers learning, and updates the model.
- Distributed learning system equipped with.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
分散学習のための処理を行う情報処理装置を提供する。 情報処理装置は、モデルの分散学習に利用可能なワーカーを管理する管理部と、前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部を具備する。前記管理部は、利用可能なワーカーのリソース及びアドレスを含むワーカーリストを管理する。そして、前記パラメータサーバ部は、前記分散学習のイテレーション毎に前記管理部から前記ワーカーリストを取得して、前記ワーカーリストに基づいてワーカーにタスクを配布する。
Description
本明細書で開示する技術(以下、「本開示」とする)は、ニューラルモデルの分散学習のための処理を行う情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システムに関する。
昨今、ディープニューラルネットワーク学習(DNN学習)は、画像認識、音声認識、文字認識といった認識処理や、音声エージェント、ロボットやドローンといった自律動作する装置の制御など、さまざまな分野への応用が期待されており、研究開発が急速に進められている。DNN学習においては取り扱うパラメータ(重み係数の勾配データ)の数が厖大であり、多大な時間を要することから、複数の計算ノードに分散して並列処理する分散学習が採用されることが多い。
分散学習では、計算ノード間でDNNモデルのパラメータの勾配同期(Gradient Synchronization)が必要であり、すべての計算ノードの勾配計算完了を待ってからDNNモデルの更新を行う。分散学習の仕組みによって勾配同期をする方法が異なる。勾配同期方法として、パラメータサーバが各計算ノードから勾配情報を収集してDNNモデルを更新するパラメータサーバありの分散学習(PS有り学習、Centralized DNN Training)(例えば、特許文献1を参照のこと)と、パラメータサーバが介在せず計算ノード間で直接勾配情報を通信してDNNモデルを更新するパラメータサーバ無しの学習(PS無し学習、Decentralized Distrubuted DNN Training)(例えば、非特許文献1を参照のこと)の2つが挙げられる。
P.Goyal et al.,"Accurate,Large Minibatch SGD:Training ImageNet in 1 Hour,"arXiv:1706.02677 [cs],Apr.2018.
本開示の目的は、パラメータサーバを利用した分散学習のための処理を行う情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システムを提供することにある。
本開示の第1の側面は、
モデルの分散学習に利用可能なワーカーを管理する管理部と、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部と、
を具備する情報処理装置である。
モデルの分散学習に利用可能なワーカーを管理する管理部と、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部と、
を具備する情報処理装置である。
前記管理部は、利用可能なワーカーのリソース及びアドレスを含むワーカーリストを管理する。そして、前記パラメータサーバ部は、前記分散学習のイテレーション毎に前記管理部から前記ワーカーリストを取得して、前記ワーカーリストに基づいてワーカーにタスクを配布する。
前記パラメータサーバ部は、イテレーション毎に、各ワーカーの利用可能なリソースの情報に基づいて、ワーカー毎に特化したタスクを作成して配布する。
前記管理部は、イテレーション内の任意のタイミングで、追加されたワーカーの情報をワーカーリストに加える。また、前記管理部は、イテレーション内の任意のタイミングでワーカーの停止要求を受け取り、次のイテレーションで停止要求されたワーカーを停止させるとともに停止したワーカーの情報を除いたワーカーリストを前記パラメータサーバ部に提供する。
また、本開示の第2の側面は、
モデルの分散学習に利用可能なワーカーを管理する管理ステップと、
前記管理ステップで管理されるワーカーにタスクを配布するステップと、
ワーカーが学習して得た勾配データを収集するステップと、
収集した勾配データに基づいて前記モデルを更新するステップと、
を有する情報処理方法である。
モデルの分散学習に利用可能なワーカーを管理する管理ステップと、
前記管理ステップで管理されるワーカーにタスクを配布するステップと、
ワーカーが学習して得た勾配データを収集するステップと、
収集した勾配データに基づいて前記モデルを更新するステップと、
を有する情報処理方法である。
また、本開示の第3の側面は、
モデルの分散学習に利用可能なワーカーを管理する管理部、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部、
としてコンピュータを機能させるようにコンピュータ可読形式で記述されたコンピュータプログラムである。
モデルの分散学習に利用可能なワーカーを管理する管理部、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部、
としてコンピュータを機能させるようにコンピュータ可読形式で記述されたコンピュータプログラムである。
本開示の第3の側面に係るコンピュータプログラムは、コンピュータ上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータプログラムを定義したものである。換言すれば、本開示の第3の側面に係るコンピュータプログラムをコンピュータにインストールすることによって、コンピュータ上では協働的作用が発揮され、本開示の第1の側面に係る情報処理装置と同様の作用効果を得ることができる。
また、本開示の第4の側面は、
モデルの分散学習に利用可能なワーカーと、
ワーカーを管理するコネクションマネージャと、
コネクションマネージャから取得したワーカーリストに基づいてワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバと、
を具備する分散学習システムである。
モデルの分散学習に利用可能なワーカーと、
ワーカーを管理するコネクションマネージャと、
コネクションマネージャから取得したワーカーリストに基づいてワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバと、
を具備する分散学習システムである。
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
本開示によれば、パラメータサーバを利用し、ワーカー数を変更しながら分散学習するための処理を行う情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システムを提供することができる。
なお、本明細書に記載された効果は、あくまでも例示であり、本開示によりもたらされる効果はこれに限定されるものではない。また、本開示が、上記の効果以外に、さらに付加的な効果を奏する場合もある。
本開示のさらに他の目的、特徴や利点は、後述する実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
以下、図面を参照しながら本開示に係る技術について、以下の順に従って説明する。
A.分散学習システム
A-1.PS有り学習
A-2.PS無し学習
B.クラスタコンピュータにおけるタスク管理
C.ヘテロな環境におけるPS有り学習
C-1.コネクションマネージャを利用したPS有り学習
C-2.ワーカーの追加
C-3.ワーカーの除去
D.自動Rebalancingを可能にする分散学習
E.効果
A.分散学習システム
A-1.PS有り学習
A-2.PS無し学習
B.クラスタコンピュータにおけるタスク管理
C.ヘテロな環境におけるPS有り学習
C-1.コネクションマネージャを利用したPS有り学習
C-2.ワーカーの追加
C-3.ワーカーの除去
D.自動Rebalancingを可能にする分散学習
E.効果
A.分散学習システム
DNN学習は反復プロセス(Iterative Process)により実現される。学習データセットと初期状態のDNNモデルが入力され、反復プロセスを経て、学習されたDNNモデルのパラメータ(重み係数の勾配データ)が出力される。1つの学習イテレーションは、学習ステップ(Train)とパラメータ更新ステップ(update)に分かれている。
DNN学習は反復プロセス(Iterative Process)により実現される。学習データセットと初期状態のDNNモデルが入力され、反復プロセスを経て、学習されたDNNモデルのパラメータ(重み係数の勾配データ)が出力される。1つの学習イテレーションは、学習ステップ(Train)とパラメータ更新ステップ(update)に分かれている。
分散学習では、学習データセットを適度なサイズのミニバッチに分割して各ワーカーに割り振るデータパラレル方式が採用され、DNNモデルは各ワーカーで同じものが割り振られる。この場合、各ワーカーに割り振られる学習データセットは異なることから、1回の学習イテレーションでは各ワーカーが異なるパラメータ(勾配データ)を持つことになる。このため、学習イテレーション毎に、学習ステップと更新ステップに加えて、計算ノード間でDNNモデルのパラメータの勾配同期が必要である。既に述べたように、勾配同期方法には、PS有り学習とPS無し学習がある。
A-1.PS有り学習
PS有り学習は、パラメータサーバを利用する分散学習の仕組みである。複数の計算ノードのうち1つはパラメータの更新処理を行うパラメータサーバであり、残りはパラメータの更新量を計算するワーカーである。
PS有り学習は、パラメータサーバを利用する分散学習の仕組みである。複数の計算ノードのうち1つはパラメータの更新処理を行うパラメータサーバであり、残りはパラメータの更新量を計算するワーカーである。
図1には、PS有り学習を行う分散学習システム100の構成例を示している。同図では、簡素化のため4つの計算ノードのみからなる分散学習システム100を示しているが、実際には5つ以上の多数の計算ノードで分散学習システムが構成されることが想定される。各計算ノード101~104は、ネットワーク(N/W)経由で相互接続されている。計算ノード間を接続するネットワークとして、例えばInfiniBandのような広帯域ネットワークを想定している。
各計算ノード101~104は、1つのCPU(Central Processing Unit)、又はCPUと1以上のGPU(Graphic Processing Unit)の組み合わせでそれぞれ構成される。このうち計算ノード101がパラメータサーバとして動作し、残りの計算ノード102~104がワーカーとして動作する。
PS有り学習では、学習ステップの前に、パラメータサーバが各ワーカーにパラメータを配布(distribute)する。そして、すべてのワーカーの学習(Train)が完了すると、パラメータサーバが各ワーカーからパラメータを収集(gather)してモデルを更新(update)する。
図2には、図1に示す分散学習システム100におけるDNN学習の動作チャートを示している。但し、横軸を時間軸とする。
パラメータサーバ(計算ノード101)は、学習データセットと初期状態のDNNモデルを入力すると、学習データセットを適度なサイズのミニバッチに分割して、ミニバッチ毎に、各ワーカーへの学習データの配布(distribute)、各ワーカーからの学習済みパラメータの収集(gather)、及びDNNモデルの更新(update)からなるイテレーションを繰り返し、学習されたDNNモデルのパラメータを出力する。また、ワーカーとして動作する各計算ノード102~104は、パラメータサーバからのパラメータの配布(distribe)、学習(train)、及びパラメータサーバによる学習済みパラメータの収集(gather)からなるイテレーションをそれぞれ繰り返す。図3~図6には、図1に示す分散学習システム100における、パラメータサーバから各ワーカーへの学習データ(ミニバッチ)の配布(distribute)、各ワーカーによる配布された学習データを用いたDNNモデルの学習(train)、パラメータサーバによる各ワーカーからの学習済みパラメータ(勾配データ)の収集(gather)、パラメータサーバによるDNNモデルの更新(update)の各フェーズを図解している。
A-2.PS無し学習
一方、PS無し学習では、パラメータサーバを必要とせず、ワーカーとして動作する計算ノード間で勾配同期が行われる。図7には、PS無し学習を行う分散学習システム700の構成例を示している。同図では、簡素化のため4つの計算ノードしか描いていないが、実際には5つ以上の多数の計算ノードで分散学習システムが構成されることが想定される。各計算ノード701~704は、ネットワーク(N/W)経由で相互接続されている。各計算ノード701~704は、1つのCPUと1以上のGPU(Graphic Processing Unit)の組み合わせでそれぞれ構成され、これらすべてがワーカーとして動作する。
一方、PS無し学習では、パラメータサーバを必要とせず、ワーカーとして動作する計算ノード間で勾配同期が行われる。図7には、PS無し学習を行う分散学習システム700の構成例を示している。同図では、簡素化のため4つの計算ノードしか描いていないが、実際には5つ以上の多数の計算ノードで分散学習システムが構成されることが想定される。各計算ノード701~704は、ネットワーク(N/W)経由で相互接続されている。各計算ノード701~704は、1つのCPUと1以上のGPU(Graphic Processing Unit)の組み合わせでそれぞれ構成され、これらすべてがワーカーとして動作する。
図8には、図7に示す分散学習システム700におけるDNN学習の動作チャートを示している。但し、横軸を時間軸とする。ワーカーとして動作する各計算ノード701~704は、学習データセットと初期状態のDNNモデルが入力されると、学習(train)、勾配同期(sync)、及びDNNモデルの更新(update)からなるイテレーションをそれぞれ繰り返す。
図9には、図7に示す分散学習システム700における、学習(train)及びDNNモデルの更新(update)のフェーズを図解している。学習とDNNモデルの更新は、学習データセットを適度なミニバッチに分割して、ミニバッチ単位で行われる。また、図10には、図7に示す分散学習システム700における勾配同期(sync)のフェーズを図解している。勾配同期は、すべてのワーカー間で勾配データを交換して要素毎に足し合わせる処理である。
B.クラスタコンピュータにおけるタスク管理
分散DNN学習では、複数のコンピュータ(ノード)をひとかたまりにしたクラスタコンピュータを利用する。クラスタコンピュータでは、スケジューラが各ノードへのタスクの配置(deployment)、すなわち各ワーカーのタスクのスケジュールを管理する。
分散DNN学習では、複数のコンピュータ(ノード)をひとかたまりにしたクラスタコンピュータを利用する。クラスタコンピュータでは、スケジューラが各ノードへのタスクの配置(deployment)、すなわち各ワーカーのタスクのスケジュールを管理する。
スケジューラは、タスクをタスクキュー(Task Queue)で管理する。タスクキューは、プライオリティキューと呼ばれる、プライオリティの高い順にタスクが読み出されるデータ構造を持つ。図11及び図12には、スケジューラがタスクキューを使ってクラスタコンピュータのタスク管理を行う例を示している。
図11に示すように、クラスタコンピュータ1100で分散DNN学習を行っていることを想定する。図11に示す例では、クラスタコンピュータ1100は6つの計算ノード#1~#6からなり、このうち4つの計算ノード#1~#4を使ってDNN学習が実施されている。なお、各計算ノード#1~#6は、それぞれ1つのCPUと1以上のGPUの組み合わせで構成される。
ここで、より優先度の高い「重要タスク(Important Task)」がタスクキュー1101に発生し、スケジューラ1102が検出する(SEQ1101)。スケジューラ1102は、重要タスクの実行のために、クラスタコンピュータのリソースをDNN学習から取り戻さなければならない(SEQ1102)。PS有り学習及びPS無し学習のいずれも、学習セッションの途中でタスクに使用するノード数を変更することができない。リソースを取り戻すには、クラスタコンピュータ1100の計算ノード#1~#4におけるDNN学習を中断して(suspend)、タスクキュー1101に入れ戻すしかない(SEQ1103)。DNN学習を中断したことによりリソースを取り戻すと、スケジューラ1102は、タスクキュー1101から最もプライオリティが高い重要タスクを取り出して、クラスタコンピュータ1100で開始(Launch)させる(SEQ1104)。図12には、クラスタコンピュータ1100で重要タスクを実施している様子を示している。図示の例では、クラスタコンピュータ1100を構成する6つの計算ノード#1~#6をすべて使って重要タスクが実施される。重要タスクを優先して実行するために中断されたDNN学習タスクは、クラスタコンピュータ1100のリソースが足りるまで待機してから再開される。
図13には、重要タスクを実行中のクラスタコンピュータ1100における負荷変動を例示している。但し、同図の横軸を時間軸とし、縦軸を負荷とする。図13に示す例では、重要タスクを実行中にクラスタコンピュータ1100の負荷は均一ではなく、時間の経過とともに変動し、他のタスクを実行する余裕がない高負荷の時期と、DNN学習タスクを実行できる程度に低負荷に落ち込む時期がある。参考のため、図14には、DNN学習タスクに必要な負荷を、重要タスク実行中の低負荷の時期に合わせて示している。また、図15には、クラスタコンピュータ1100が重要タスクを実行中に変動する負荷(図13を参照のこと)と、低負荷の時期にDNN学習タスクの負荷(図14を参照のこと)とを重畳して示している。
図15から分かるように、クラスタコンピュータが重要タスクの実行中であっても、負荷が低下した時期の未使用のリソースはDNN学習タスクを実行するのに十分である。しかしながら、PS有り学習及びPS無し学習のいずれであっても、セッションの途中でタスクに使用するノードの数を変更できないので、図15に示すように、重要タスクを実行している間に、未使用リソースを使ってDNN学習を進めることはできない。したがって、クラスタコンピュータにおいて未使用のリソースは多い。
また、PS有り学習及びPS無し学習のいずれも、セッションの途中でのリソースの変更に対応することはできない。例えばクラウドコンピュータに含まれるノードが追加され、利用可能なリソースが増えても、セッションの途中から利用することはできない。
ヘテロな環境(Heterogeneous Environment)のクラウドコンピュータにおいては、各ノードのリソースが均一でない。学習データを分割して各ワーカーに割り振るデータパラレル方式の場合、すべてのワーカーが最もリソースが少ないワーカーと利用するデバイスの数(GPUの個数など)と合わせて学習するしかない。
図16には、ヘテロな環境においてPS有り学習を行う様子を示している。図16に示すクラウドコンピュータ1600では、GPUの個数が2個のワーカー1602と、GPUの個数が3個のワーカー1603及び1604が混在しているが、すべてのワーカー1602~1604がGPUの個数を2個に合わせて分散学習を行うことから、3個のGPUを持つワーカー1603及び1604では未使用のGPUが生じる。図16中、使用中のCPU及びGPUをグレーで塗り潰した箱で示し、未使用のGPUを白い箱で示している。
図17には、ヘテロな環境においてPS無し学習を行う様子を示している。図17に示すクラウドコンピュータ1700では、GPUの個数が2個のワーカー1702と、GPUの個数が3個のワーカー1701、1703、1704が混在しているが、すべてのワーカー1701~1704がGPUの個数を2個に合わせて分散学習を行うことから、3個のGPUを持つワーカー1701、1703、1704では未使用のGPUが生じる。図17中、使用中のCPU及びGPUをグレーで塗り潰した箱で示し、未使用のGPUを白い箱で示している。
要するに、ヘテロな環境で分散学習を行うと、PS有り学習及びPS無し学習いずれにおいても未使用のリソースが発生し易く、無駄が多い。
また、図16及び図17では、説明の簡素化のため各GPUが持つリソースが均一であることを前提としているが、現実には、GPU間でコア数や計算速度、メモリ容量に相違があり、すべてのGPUにおいてリソースが均一であるとは限らない。
C.ヘテロな環境におけるPS有り学習
この項では、ヘテロな環境においてパラメータサーバを利用してDNNモデルの分散学習を実現する方法について説明する。
この項では、ヘテロな環境においてパラメータサーバを利用してDNNモデルの分散学習を実現する方法について説明する。
C-1.コネクションマネージャを利用したPS有り学習
図18には、ヘテロな環境においてPS有り学習を行う分散学習システム1800の構成例を示している。同図では、簡素化のため4つの計算ノード1801~1804のみからなる分散学習システム1800を示しているが、実際には5つ以上の多数の計算ノードで分散学習システムが構成されることが想定される。各計算ノード1801~1804は、ネットワーク(N/W)経由で相互接続されている。このうち計算ノード1801がパラメータサーバ(及びコネクションマネージャ)として動作し、残りの計算ノード1802~1804がワーカーとして動作する。図18中、使用中のCPU及びGPUをグレーで塗り潰した箱で示しているが、未使用のGPUはない。
図18には、ヘテロな環境においてPS有り学習を行う分散学習システム1800の構成例を示している。同図では、簡素化のため4つの計算ノード1801~1804のみからなる分散学習システム1800を示しているが、実際には5つ以上の多数の計算ノードで分散学習システムが構成されることが想定される。各計算ノード1801~1804は、ネットワーク(N/W)経由で相互接続されている。このうち計算ノード1801がパラメータサーバ(及びコネクションマネージャ)として動作し、残りの計算ノード1802~1804がワーカーとして動作する。図18中、使用中のCPU及びGPUをグレーで塗り潰した箱で示しているが、未使用のGPUはない。
図19には、図18に示す分散学習システム1800におけるDNN学習の動作チャートを示している。但し、横軸を時間軸とする。パラメータサーバ(計算ノード1801)は、学習データセットと初期状態のDNNモデルを入力して、パラメータの各ワーカーへの分割した学習データの配布(distribute)、各ワーカーからの学習済みパラメータの収集(gather)、及びDNNモデルの更新(update)からなるイテレーションを繰り返し、学習されたDNNモデルのパラメータを出力する。また、ワーカーとして動作する各計算ノード1802~1804は、パラメータサーバからのパラメータの配布(distribe)、学習(train)、及びパラメータサーバによる学習済みパラメータの収集(gather)からなるイテレーションをそれぞれ繰り返す。但し、後述するように、学習の途中でイテレーション毎にワーカーの追加及び除去が可能であり、各イテレーションで動作するワーカー数が異なることが想定される。図19に示す例では、最初のイテレーションでは計算ノード1802のみがワーカーとして動作している。
各計算ノード1801~1804は、1つのCPU、又は1つのCPUと1以上のGPUの組み合わせでそれぞれ構成される。ワーカーとして動作する計算ノード1802~1804は、それぞれのGPUモデルが均一ではなく、ノード毎にデバイス(GPU)の個数や計算速度が相違する。すなわち、分散学習システム1800は、ヘテロな環境である。ワーカー毎にGPUモデルが相違する分散学習システム1800において、すべてのワーカーのGPUを利用するために、コネクションマネージャが各ワーカーを管理する仕組みを導入する。図18に示すシステム構成例では、パラメータサーバとして動作する計算ノード1801上で、コネクションマネージャも動作する。もちろん、パラメータサーバとは異なる計算ノードでコネクションマネージャが動作してもよい。
まず、コネクションマネージャを利用した分散学習システムにおけるDNN学習の動作について説明する。
図20には、コネクションマネージャを利用して分散学習システムがPS有り学習を行う動作シーケンス例を示している。図20に示す動作シーケンス例では、新規のワーカーを登録(Register)するシーケンスが含まれる。但し、図20において、横軸を時間軸とする。
パラメータサーバがコネクションマネージャを起動(Spawn)し、コネクションマネージャはパラメータサーバを利用できるワーカーを管理する。ワーカーが起動(Launch)されたとき、まず、ワーカーのコネクションマネージャへの登録(Register)が行われる(SEQ2001)。ワーカーは、起動(Launch)時に、コネクションマネージャに自分の利用可能なリソース(Available Resource)の情報(例えば、ワーカーに搭載されたGPUの個数)を、自分のIPアドレス(Worker IP)を付けて送ることによって、コネクションマネージャに登録する。
コネクションマネージャは、ワーカーからIPアドレス及び利用可能なリソースの情報を含んだ登録要求を受け付けると、プールしているワーカーの情報(以下、「ワーカーリスト」ともいう)を更新(Update pool)する。また、コネクションマネージャは、DNNモデル定義(DNN Model Definition)をそのワーカーに返す(SEQ2002)。ワーカーは、コネクションマネージャから受け渡されたDNNモデル定義に基づいてDNNモデルの初期化(Init model)を行い、その後パラメータサーバからタスクが届くのを待つ。
パラメータサーバは、まず、入力されたDNNモデルの初期化(Init model)を行う(SEQ2003)。そして、パラメータサーバは、イテレーション毎に、コネクションマネージャから登録されたワーカーリストを取得(Get Workers)する(SEQ2004)。パラメータサーバは、取得したワーカーリストを、その1回のイテレーションだけ使用する。すなわち、パラメータサーバは、イテレーション毎にワーカーリストをチェックすることによって、学習の途中で(イテレーション毎に)ワーカー数を変更することができる。
パラメータサーバは、イテレーション毎に、ワーカーリストに記載されている各ワーカーの利用可能なリソースの情報などに基づいて、ワーカー毎に特化したタスク(Task specific for each worker)を作成(Create Task)して(SEQ2005)、各ワーカーのIPアドレス宛てにタスクを配布(Distribute)する(SEQ2006)。
各ワーカーは、イテレーション毎に、パラメータサーバから配布されたタスクに基づいてDNNモデルの学習(Train)を実行する(SEQ2007)。そして、パラメータサーバは、各ワーカーが学習して得たDNNモデルの勾配データを収集(Gather)すると(SEQ2008)、前ワーカーの勾配データを利用してDNNモデルの更新(Update)を行い(SEQ2009)、イテレーションを終了する。
そして、このようなイテレーションが、DNN学習が終了するまで(例えば、すべての学習データセットについて学習を行うまで)、繰り返される。
コネクションマネージャを利用することで、イテレーションとは独立して、タスクを配布(Distribute)するワーカーの追加(Add)とワーカーの除去(Remove)を行うことができる。すなわち、パラメータサーバは、イテレーション毎にコネクションマネージャからワーカーリストを取得(Get workers)することで、イテレーション毎にタスクを配布(Distribute)するワーカーの追加(Add)及び除去(Remove)を行うことができる。以下では、ワーカーの追加及び除去を行うための動作についてそれぞれ説明する。
C-2.ワーカーの追加
続いて、コネクションマネージャを利用した分散学習システムにおいて、DNN学習の途中でワーカーを追加(Add)する動作について説明する。
続いて、コネクションマネージャを利用した分散学習システムにおいて、DNN学習の途中でワーカーを追加(Add)する動作について説明する。
図21には、コネクションマネージャを利用して分散学習システムがPS有り学習を行う他の動作シーケンス例を示している。図21に示す動作シーケンス例では、分散学習の途中でワーカーを追加(Add)するシーケンスが含まれている。但し、図21において、横軸を時間軸とする。
イテレーション毎に、パラメータサーバは、イテレーション毎に、コネクションマネージャから登録されたワーカーリストを取得(Get Workers)して、ワーカー毎に特化したタスク(Task specific for each worker)を作成(Create Task)し、各ワーカーのIPアドレスにタスクを配布(Distribute)する。図21に示す例では、ワーカー1及びワーカー2の2つのワーカーがコネクションマネージャに事前登録されており、パラメータサーバは、ワーカーリストすなわち各ワーカーのリソースに応じて、ワーカー1にバッチサイズが32のタスク1を、ワーカー2にバッチサイズが32のタスク2を、それぞれ配布(Distribute)する。ワーカー1とワーカー2は、パラメータサーバから配布(Distribute)されたタスク1及びタスク2に基づいてDNNモデルの学習(Train)をそれぞれ実行する。
一方、スケジューラは、このイテレーションから独立して、ワーカー3を起動(Spawn)する(SEQ2101)。そして、ワーカー3は、コネクションマネージャへの登録(Register)を行う(SEQ2102)。この登録処理では、ワーカー3は自分のIPアドレス(Worker IP)と自分の利用可能なリソース(Available Resource)の情報をコネクションマネージャに送り、コネクションマネージャはDNNモデル定義(DNN Model Definition)をワーカー3に返す。
その後、パラメータサーバは、ワーカー1及びワーカー2がそれぞれ学習して得た勾配データを収集(Gather)して、DNNモデルの更新(Update)を行い、このイテレーションを終了する。
次のイテレーションでは、パラメータサーバは、コネクションマネージャから、ワーカー3の情報が追加されたワーカーリストを取得(Get workers)して、新規のワーカー3をピックアップすることができる。そして、パラメータサーバは、ワーカー3へのタスクを含んだワーカー毎のタスク(Task specific for each worker)を作成(Create Task)し、各ワーカーのIPアドレス宛てにタスクを配布(Distribute)する(SEQ2103)。このイテレーションでは、パラメータサーバは、各ワーカーのリソースに応じて、ワーカー1にバッチサイズが21のタスク1を、ワーカー2にバッチサイズが21のタスク2を、ワーカー3にバッチサイズ22のタスク3を、それぞれ配布する。ワーカー1~3は、パラメータサーバから配布されたタスクに基づいてDNNモデルの学習(Train)をそれぞれ実行する。その後、パラメータサーバは、ワーカー1~3がそれぞれ学習して得た勾配データを収集(Gather)して、DNNモデルの更新(Update)を行い、このイテレーションを終了する。
C-3.ワーカーの除去
続いて、コネクションマネージャを利用した分散学習システムにおいて、DNN学習の途中でワーカーを除去(Remove)する動作について説明する。ワーカーを除去(Remove)するには、Direct TerminationとConnection-manager-initiated Terminationの2つの方法がある。
続いて、コネクションマネージャを利用した分散学習システムにおいて、DNN学習の途中でワーカーを除去(Remove)する動作について説明する。ワーカーを除去(Remove)するには、Direct TerminationとConnection-manager-initiated Terminationの2つの方法がある。
図22には、コネクションマネージャを利用して分散学習システムがPS有り学習を行うさらに他の動作シーケンス例を示している。図22に示す動作シーケンス例では、Direct Terminationによって分散学習の途中でワーカーを除去(Remove)するシーケンスが含まれている。Direct Terminationは、スケジューラがイテレーションから独立していつでもすぐにワーカーの動作を停止(Terminate)することを意味する。但し、図22において、横軸を時間軸とする。
イテレーション毎に、パラメータサーバは、イテレーション毎に、コネクションマネージャから登録されたワーカーリストを取得(Get Workers)して、ワーカー毎に特化したタスク(Task specific for each worker)を作成(Create Task)し、各ワーカーのIPアドレスにタスクを配布(Distribute)する。図22に示す例では、ワーカー1~3がコネクションマネージャに事前登録されており、パラメータサーバは、ワーカーリストすなわち各ワーカーのリソースに応じて、ワーカー1にバッチサイズが21のタスク1を、ワーカー2にバッチサイズが21のタスク2を、ワーカー3にバッチサイズ22のタスク3を、それぞれ配布(Distribute)しようと試みる(SEQ2202)。
一方、スケジューラは、このイテレーションから独立して、パラメータサーバからタスク3が配布される前にワーカー3を停止(Terminate)する。スケジューラは、さらに、パラメータサーバからワーカー2にタスク2が配布された後、学習(Train)を行っている最中にワーカー2を停止(Terminate)する(SEQ2201)。このため、パラメータサーバは、SEQ2202において、ワーカー3へのタスク3の配布(Distribute)に失敗する。また、パラメータサーバは、各ワーカーが学習して得た勾配データの収集(Gather)を試みるが、停止(Terminate)しているワーカー2からの勾配データの収集(Gather)に失敗する(SEQ2203)。パラメータサーバは、タスクの配布(Distribute)や勾配データの収集(Gather)に失敗してしまった場合には、DNNモデルの更新を行うことなくそのイテレーションをキャンセルして(Cancel iteration/no update)、次のイテレーションで同じ学習データについての学習を再実行する。
次のイテレーションでは、パラメータサーバは、ワーカー2及びワーカー3の情報が削除されたワーカーリストを取得(Get workers)して、ワーカー1のタスク(Task specific for each worker)を作成(Create Task)し、ワーカー1のIPアドレス宛にバッチサイズが64のタスク1を配布(Distribute)する。ワーカー1は、パラメータサーバから配布されたタスクに基づいてDNNモデルの学習(Train)を実行する。その後、パラメータサーバは、ワーカー1が学習して得た勾配データを収集(Gather)して、DNNモデルの更新(Update)を行い、このイテレーションを終了する。
Direct Terminationによりワーカーを除去(Remove)する方法では、分散学習するワーカー数が不安定(unstable)な場合にはイテレーションのキャンセルの繰り返し(Repeated cancellation)、すなわちイテレーションのキャンセルが頻発して分散学習が進まない現象の危険性がある。
図23には、コネクションマネージャを利用して分散学習システムがPS有り学習を行うさらに他の動作シーケンス例を示している。図23に示す動作シーケンス例では、Connection-manager-initiated Terminationによって分散学習の途中でワーカーを除去(Remove)するシーケンスが含まれている。Connection-manager-initiated Terminationは、コネクションマネージャの介在により、イテレーションから独立してワーカーの動作を停止(Terminate)することを意味する。但し、図23において、横軸を時間軸とする。
イテレーション毎に、パラメータサーバは、イテレーション毎に、コネクションマネージャから登録されたワーカーリストを取得(Get Workers)して、ワーカー毎に特化したタスク(Task specific for each worker)を作成(Create Task)し、各ワーカーのIPアドレスにタスクを配布(Distribute)する。図23に示す例では、ワーカー1~3がコネクションマネージャに事前登録されており、パラメータサーバは、ワーカーリストすなわち各ワーカーのリソースに応じて、ワーカー1にバッチサイズが21のタスク1を、ワーカー2にバッチサイズが21のタスク2を、ワーカー3にバッチサイズ22のタスク3を、それぞれ配布(Distribute)する。
一方、スケジューラは、このイテレーションから独立して、ワーカー2及びワーカー3を停止(Terminate)するために、コネクションマネージャに対してワーカー2及びワーカー3の停止要求(Termination Request)又は除去要求(Remove Request)を送る(SEQ2301)。コネクションマネージャは、スケジューラから上記要求を受け取っても、このイテレーション内では何もしない。したがって、ワーカー1~3は、パラメータサーバから配布(Distribute)されたタスク1~3に基づいてDNNモデルの学習(Train)をそれぞれ実行する。その後、パラメータサーバは、ワーカー1~3がそれぞれ学習して得た勾配データを収集(Gather)して、DNNモデルの更新(Update)を行い、このイテレーションを終了する。
次のイテレーションでは、パラメータサーバは、コネクションマネージャから、スケジューラから停止又は除去を要求されたワーカー2及びワーカー3の情報が削除されたワーカーリストを取得(Get workers)する。また、コネクションマネージャは、スケジューラから停止又は除去を要求されたワーカー2及びワーカー3の各々に停止信号(Termination Signal)を送信する(SEQ2302)。そして、ワーカー2及びワーカー3は、コネクションマネージャからの停止信号(Termination Signal)を受信して、このイテレーション内で停止する。
パラメータサーバは、このイテレーションでワーカー2及びワーカー3の情報が削除されたワーカーリストをコネクションマネージャから取得(Get workers)して、ワーカー1のタスク(Task specific for each worker)を作成(Create Task)し、ワーカー1のIPアドレス宛にバッチサイズが64のタスク1を配布(Distribute)する。ワーカー1は、パラメータサーバから配布されたタスクに基づいてDNNモデルの学習(Train)を実行する。その後、パラメータサーバは、ワーカー1が学習して得た勾配データを収集(Gather)して、DNNモデルの更新(Update)を行い、このイテレーションを終了する。
図23に示したConnection-manager-initiated Terminationによれば、図22に示したDirect Terminationとは相違して、イテレーションはキャンセルされないので、イテレーションのキャンセルの繰り返し(Repeated cancellation)の危険性が少ない。
また、このC項で説明したコネクションマネージャを利用したPS有り学習についてまとめると、イテレーション毎に学習に使用するワーカーの追加及び削除が可能である。パラメータサーバは、コネクションマネージャから受け渡されたワーカーリストによって、各ワーカーのリソースに応じたタスクを作成するので、各ワーカーの空きリソースを有効に使用することができる。
D.自動Rebalancingを可能にする分散学習
パラメータサーバは、イテレーションで使用するワーカー数と各ワーカーの計算能力(Computation Capacity)に応じてタスクを分割して、各ワーカーに配布する。すなわち、分散DNN学習では、各ワーカーの処理性能に応じてワーカー毎のバッチサイズ(per-worker batch size)を調整する(但し、すべてのper-worker batch sizeの合計がminibatch-size)。各ワーカーの計算能力(Computation Capacity)は、以前のタスクの計算時間をモニタリングした結果に基づいて、例えばイテレーション毎に自動で逐次更新される。
パラメータサーバは、イテレーションで使用するワーカー数と各ワーカーの計算能力(Computation Capacity)に応じてタスクを分割して、各ワーカーに配布する。すなわち、分散DNN学習では、各ワーカーの処理性能に応じてワーカー毎のバッチサイズ(per-worker batch size)を調整する(但し、すべてのper-worker batch sizeの合計がminibatch-size)。各ワーカーの計算能力(Computation Capacity)は、以前のタスクの計算時間をモニタリングした結果に基づいて、例えばイテレーション毎に自動で逐次更新される。
図24には、パラメータサーバにおいて各ワーカーの計算能力の更新を行うための機能的構成を模式的に示している。図示のパラメータサーバ2400は、トレーナー(Trainer)2401と、タスクスプリッター(Task Splitter)2402と、ディスパッチャー(Dispatcher)2403と、タスクモニター(Task Monitor)2404の各機能モジュールを備えている。パラメータサーバ240内では、イテレーション毎に以下の処理を実施する。
(処理1)トレーナー2401は、学習データをフェッチするとともに、コネクションマネージャからワーカーリストを取得する。
(処理2)トレーナー2402は、学習データとワーカーリストを、タスクスプリッター2402に送る。
(処理3)タスクスプリッター2402は、タスクモニター2404から、各ワーカーの[平均イテレーション時間/per-worker batch size]を取得して、学習データのミニバッチサイズをper-worker batch sizeに分割して、per-workerタスクとする。すなわち、各ワーカーのタスクの計算時間をモニタリングした結果に基づいて、各ワーカーに分配される学習データのサイズ(per-worker batch size)が、イテレーション毎に更新される。
(処理4)タスクスプリッター2402は、全ワーカーへのタスクをディスパッチャー2403に送る。
(処理5)ディスパッチャー2403は、各ワーカーのイテレーションの開始時間(Start Time)を、それぞれのper-worker batch sizeと対応付けて記録(Log)する。
(処理6)ディスパッチャー2403は、各ワーカーにタスクを配布する。各ワーカーは、タスクが配布されると学習処理を実行する。そして、各ワーカーは、計算した勾配データをディスパッチャー2403に返す(Return)。
(処理7)ディスパッチャー2403は、各ワーカーのイテレーションの終了時間(End Time)を、それぞれのper-worker batch sizeと対応付けて記録(Log)する。
タスクモニター2404は、ワーカーの平均イテレーション時間(イテレーションの終了時間とイテレーションの開始時間の差分の平均)をそのワーカーに配布したタスクのバッチサイズで割って、ワーカー毎の計算能力をモニタリングする。タスクスプリッター2402は、上記の(処理3)で、ワーカー毎の計算能力のモニタリング結果に基づいて、各ワーカーに配布するタスクのバッチサイズを決定して学習データを配布する。
(処理8)ディスパッチャー2403は、各ワーカーから収集した勾配データを、トレーナー2401に送る。
(処理9)トレーナー2401は、各ワーカーから収集した勾配データを合成(Combine)して、DNNモデルの更新を行う。
E.効果
この項では、クラスタコンピュータに本開示を適用することによる効果について説明する。
この項では、クラスタコンピュータに本開示を適用することによる効果について説明する。
本開示を適用したPS有りの分散学習システムによれば、イテレーション毎に学習に使用するワーカーを追加及び削除することが可能である。また、パラメータサーバは、コネクションマネージャから受け渡されたワーカーリストによって、各ワーカーのリソースに応じたタスクを作成するので、各ワーカーの空きリソースを有効に使用することができる。
図25~図27には、クラスタコンピュータにおいて、DNN学習タスクを実行している途中で重要タスクがタスクキューに入ってきたときの動作例を示している。本開示によれば、重要タスクを開始するためにDNN学習タスクを停止する必要はない。
図25に示す例では、クラスタコンピュータ2500は8つの計算ノード#1~#8で構成されるが、すべての計算ノード#1~#8をDNN分散学習タスクのワーカーとして利用している。このDNN分散学習タスクを実行している途中で重要タスクがタスクキュー2501に入ってきたとする(SEQ2501)。タスクキュー2501は、プライオリティの高い順にタスクが読み出されるデータ構造を持つプライオリティキューとする。
このとき、スケジューラ2502は、重要タスクを開始(launch)できるまで、DNN分散学習タスクのワーカーを除去(Remove)する(SEQ2502)。DNN分散学習タスクのワーカーを除去(Remove)する具体的な処理手順については上記C-3で既に説明したので、ここでは詳細を省略する。例えば図26に示すように、8個のうち6個のワーカーを除去(Remove)して、その6個の計算ノードで重要タスクを開始(Launch)するとともに、残りの2個のワーカーでDNN分散学習タスクを継続して実行する(SEQ2503)。本開示によれば、イテレーション毎にDNN分散学習に使用するワーカーを追加及び削除することが可能であるから、図11~図12に示したケースとは相違し、クラスタコンピュータにおいてDNN分散学習を完全に停止させずに重要タスクを開始して、重要タスクとDNN分散学習を同時に並行して実行することができる。
その後、重要タスクの実行(Execution)が終了(Terminate)すると、スケジューラ2502は、重要タスクに利用していたリソースすなわち6個の計算ノード#3~#8を解放して、DNN分散学習タスクのワーカーとして追加(Add)する。DNN分散学習タスクのワーカーを追加(Add)する具体的な処理手順については上記C-3で既に説明したので、ここでは詳細を省略する。この結果、図27に示すように、クラスタコンピュータ2500を構成する8つの計算ノード#1~#8をすべてDNN分散学習タスクのワーカーとして利用する状態に戻る。
図28には、重要タスクを実行中のクラスタコンピュータ2500における負荷変動を例示している。但し、同図の横軸を時間軸とし、縦軸を負荷とする。図28に示す例では、重要タスクを実行中にクラスタコンピュータ2500の負荷は均一ではなく、時間の経過とともに変動し、他のタスクを実行する余裕がない高負荷の時期と、DNN学習タスクを実行できる程度に低負荷に落ち込む時期がある。
本開示を適用したPS有りの分散学習システムによれば、イテレーション毎にDNN分散学習に使用するワーカーを追加及び削除することが可能である。また、パラメータサーバは、コネクションマネージャから受け渡されたワーカーリストによって、各ワーカーのリソースに応じたタスクを作成して、各ワーカーの空きリソースを有効に使用することができる。
図29には、重要タスクを実行中のクラスタコンピュータ2500の負荷変動に応じて、における空きリソースを使ってDNN分散学習を進める場合の、DNN分散学習に費やされるクラスタコンピュータ2500の負荷変動を例示している。また、図30には、重要タスクとDNN分散学習を同時に並行して実行する場合のクラスタコンピュータ2500全体の負荷変動を例示している。図30から分かるように、本開示を適用することにより、クラスタコンピュータ2500では、重要タスクとDNN分散学習を同時に並行して実行することができ、且つ、各ワーカーのリソースをフルに使用できることが分かる。
各ワーカーのリソースが均一でないヘテロな環境では、一般に、すべてのワーカーが最もリソースが少ないワーカーと利用するデバイスの数(GPUの個数など)と合わせて学習するしかない。これに対し、本開示を適用したクラスタコンピュータでは、コネクションサーバがパラメータサーバを利用できるワーカーを管理している。したがって、パラメータサーバは、コネクションマネージャから取得したワーカーリストリストに基づいて、各ワーカーの計算能力に応じたタスクを配布することができる。この場合、図18に示したようにすべてのワーカーのデバイス(GPUなど)を余剰が生じないように有効に活用することができる。図18中、使用中のCPU及びGPUをグレーで塗り潰した箱で示しているが、未使用のGPUはない。
以上、特定の実施形態を参照しながら、本開示について詳細に説明してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
本明細書では、本開示をDNNの分散学習に適用した実施形態を中心に説明してきたが、本開示の要旨はこれに限定されるものではなく、さまざまなタイプの機械学習モデルの分散学習に適用することができる。
要するに、例示という形態により本開示について説明してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本開示の要旨を判断するためには、特許請求の範囲を参酌すべきである。
なお、本開示は、以下のような構成をとることも可能である。
(1)モデルの分散学習に利用可能なワーカーを管理する管理部と、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部と、
を具備する情報処理装置。
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部と、
を具備する情報処理装置。
(2)前記管理部は、利用可能なワーカーのリソース及びアドレスを含むワーカーリストを管理し、
前記パラメータサーバ部は、前記管理部から取得した前記ワーカーリストに基づいて、ワーカーにタスクを配布する、
上記(1)に記載の情報処理装置。
前記パラメータサーバ部は、前記管理部から取得した前記ワーカーリストに基づいて、ワーカーにタスクを配布する、
上記(1)に記載の情報処理装置。
(3)前記パラメータサーバ部は、前記分散学習のイテレーション毎に前記管理部から前記ワーカーリストを取得する、
上記(2)に記載の情報処理装置。
上記(2)に記載の情報処理装置。
(4)前記パラメータサーバ部は、イテレーション毎に、各ワーカーの利用可能なリソースの情報に基づいて、ワーカー毎に特化したタスクを作成して配布する、
上記(1)乃至(3)のいずれかに記載の情報処理装置。
上記(1)乃至(3)のいずれかに記載の情報処理装置。
(5)前記管理部は、リソース及びアドレスを取得したワーカーに対して前記モデルの定義情報を提供する、
上記(1)乃至(4)のいずれかに記載の情報処理装置。
上記(1)乃至(4)のいずれかに記載の情報処理装置。
(6)前記管理部は、イテレーション内の任意のタイミングで、追加されたワーカーの情報をワーカーリストに加える、
上記(2)又は(3)のいずれかに記載の情報処理装置。
上記(2)又は(3)のいずれかに記載の情報処理装置。
(7)前記管理部は、イテレーション内の任意のタイミングでワーカーの停止要求を受け取り、次のイテレーションで停止要求されたワーカーを停止させるとともに停止したワーカーの情報を除いたワーカーリストを前記パラメータサーバ部に提供する、
上記(2)、(3)、又は(6)のいずれかに記載の情報処理装置。
上記(2)、(3)、又は(6)のいずれかに記載の情報処理装置。
(8)前記パラメータサーバ部は、イテレーション毎のワーカーの計算能力のモニタリング結果に基づいて、ワーカーに配布するタスクのバッチサイズを決定する、
上記(1)乃至(7)のいずれかに記載の情報処理装置。
上記(1)乃至(7)のいずれかに記載の情報処理装置。
(9)モデルの分散学習に利用可能なワーカーを管理する管理ステップと、
前記管理ステップで管理されるワーカーにタスクを配布するステップと、
ワーカーが学習して得た勾配データを収集するステップと、
収集した勾配データに基づいて前記モデルを更新するステップと、
を有する情報処理方法。
前記管理ステップで管理されるワーカーにタスクを配布するステップと、
ワーカーが学習して得た勾配データを収集するステップと、
収集した勾配データに基づいて前記モデルを更新するステップと、
を有する情報処理方法。
(10)モデルの分散学習に利用可能なワーカーを管理する管理部、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部、
としてコンピュータを機能させるようにコンピュータ可読形式で記述されたコンピュータプログラム。
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部、
としてコンピュータを機能させるようにコンピュータ可読形式で記述されたコンピュータプログラム。
(11)モデルの分散学習に利用可能なワーカーと、
ワーカーを管理するコネクションマネージャと、
コネクションマネージャから取得したワーカーリストに基づいてワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバと、
を具備する分散学習システム。
ワーカーを管理するコネクションマネージャと、
コネクションマネージャから取得したワーカーリストに基づいてワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバと、
を具備する分散学習システム。
100…分散学習システム、101…計算ノード(パラメータサーバ)
102~104…計算ノード(ワーカー)
700…分散学習システム、701~704…計算ノード(ワーカー)
1100…クラスタコンピュータ
1101…タスクキュー(プライオリティキュー)
1102…スケジューラ
1600…クラウドコンピュータ
1601…計算ノード(パラメータサーバ)
1602~1604…計算ノード(ワーカー)
1700…分散学習システム
1701~1704…計算ノード(ワーカー)
1800…クラウドコンピュータ
1801…計算ノード(パラメータサーバ)
1802~1804…計算ノード(ワーカー)
2400…パラメータサーバ、2401…トレーナー
2402…タスクスプリッター、2403…ディスパッチャー
2404…タスクモニター
2500…クラスタコンピュータ
2501…タスクキュー(プライオリティキュー)
2502…スケジューラ
102~104…計算ノード(ワーカー)
700…分散学習システム、701~704…計算ノード(ワーカー)
1100…クラスタコンピュータ
1101…タスクキュー(プライオリティキュー)
1102…スケジューラ
1600…クラウドコンピュータ
1601…計算ノード(パラメータサーバ)
1602~1604…計算ノード(ワーカー)
1700…分散学習システム
1701~1704…計算ノード(ワーカー)
1800…クラウドコンピュータ
1801…計算ノード(パラメータサーバ)
1802~1804…計算ノード(ワーカー)
2400…パラメータサーバ、2401…トレーナー
2402…タスクスプリッター、2403…ディスパッチャー
2404…タスクモニター
2500…クラスタコンピュータ
2501…タスクキュー(プライオリティキュー)
2502…スケジューラ
Claims (11)
- モデルの分散学習に利用可能なワーカーを管理する管理部と、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部と、
を具備する情報処理装置。 - 前記管理部は、利用可能なワーカーのリソース及びアドレスを含むワーカーリストを管理し、
前記パラメータサーバ部は、前記管理部から取得した前記ワーカーリストに基づいて、ワーカーにタスクを配布する、
請求項1に記載の情報処理装置。 - 前記パラメータサーバ部は、前記分散学習のイテレーション毎に前記管理部から前記ワーカーリストを取得する、
請求項2に記載の情報処理装置。 - 前記パラメータサーバ部は、イテレーション毎に、各ワーカーの利用可能なリソースの情報に基づいて、ワーカー毎に特化したタスクを作成して配布する、
請求項1に記載の情報処理装置。 - 前記管理部は、リソース及びアドレスを取得したワーカーに対して前記モデルの定義情報を提供する、
請求項1に記載の情報処理装置。 - 前記管理部は、イテレーション内の任意のタイミングで、追加されたワーカーの情報をワーカーリストに加える、
請求項2に記載の情報処理装置。 - 前記管理部は、イテレーション内の任意のタイミングでワーカーの停止要求を受け取り、次のイテレーションで停止要求されたワーカーを停止させるとともに停止したワーカーの情報を除いたワーカーリストを前記パラメータサーバ部に提供する、
請求項2に記載の情報処理装置。 - 前記パラメータサーバ部は、イテレーション毎のワーカーの計算能力のモニタリング結果に基づいて、ワーカーに配布するタスクのバッチサイズを決定する、
請求項1に記載の情報処理装置。 - モデルの分散学習に利用可能なワーカーを管理する管理ステップと、
前記管理ステップで管理されるワーカーにタスクを配布するステップと、
ワーカーが学習して得た勾配データを収集するステップと、
収集した勾配データに基づいて前記モデルを更新するステップと、
を有する情報処理方法。 - モデルの分散学習に利用可能なワーカーを管理する管理部、
前記管理部が管理するワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバ部、
としてコンピュータを機能させるようにコンピュータ可読形式で記述されたコンピュータプログラム。 - モデルの分散学習に利用可能なワーカーと、
ワーカーを管理するコネクションマネージャと、
コネクションマネージャから取得したワーカーリストに基づいてワーカーにタスクを配布し、ワーカーが学習して得た勾配データを収集して前記モデルを更新するパラメータサーバと、
を具備する分散学習システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022517526A JPWO2021220616A1 (ja) | 2020-04-30 | 2021-03-05 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-080834 | 2020-04-30 | ||
JP2020080834 | 2020-04-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021220616A1 true WO2021220616A1 (ja) | 2021-11-04 |
Family
ID=78373610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/008843 WO2021220616A1 (ja) | 2020-04-30 | 2021-03-05 | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2021220616A1 (ja) |
WO (1) | WO2021220616A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023171248A (ja) * | 2022-05-18 | 2023-12-01 | 浙江工商大学 | ディープラーニングに基づく分散式異種データの処理方法、装置及び設備 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018196631A1 (en) * | 2017-04-26 | 2018-11-01 | Midea Group Co., Ltd. | Training machine learning models on a large-scale distributed system using a job server |
US20190311257A1 (en) * | 2018-04-04 | 2019-10-10 | Nokia Technologies Oy | Coordinated heterogeneous processing of training data for deep neural networks |
US20200042362A1 (en) * | 2018-08-03 | 2020-02-06 | EMC IP Holding Company LLC | Self-adaptive batch dataset partitioning for distributed deep learning using hybrid set of accelerators |
-
2021
- 2021-03-05 WO PCT/JP2021/008843 patent/WO2021220616A1/ja active Application Filing
- 2021-03-05 JP JP2022517526A patent/JPWO2021220616A1/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018196631A1 (en) * | 2017-04-26 | 2018-11-01 | Midea Group Co., Ltd. | Training machine learning models on a large-scale distributed system using a job server |
US20190311257A1 (en) * | 2018-04-04 | 2019-10-10 | Nokia Technologies Oy | Coordinated heterogeneous processing of training data for deep neural networks |
US20200042362A1 (en) * | 2018-08-03 | 2020-02-06 | EMC IP Holding Company LLC | Self-adaptive batch dataset partitioning for distributed deep learning using hybrid set of accelerators |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023171248A (ja) * | 2022-05-18 | 2023-12-01 | 浙江工商大学 | ディープラーニングに基づく分散式異種データの処理方法、装置及び設備 |
JP7408042B2 (ja) | 2022-05-18 | 2024-01-05 | 浙江工商大学 | ディープラーニングに基づく分散式異種データの処理方法、装置及び設備 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021220616A1 (ja) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034396B (zh) | 用于处理分布式集群中的深度学习作业的方法和装置 | |
CN107025205B (zh) | 一种分布式系统中的训练模型的方法及设备 | |
CN104866374B (zh) | 基于多任务的离散事件并行仿真及时间同步方法 | |
CN111444019B (zh) | 云端协同的深度学习模型分布式训练方法及系统 | |
US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
US20060218551A1 (en) | Jobstream planner considering network contention & resource availability | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN102012840A (zh) | 一种数据的批量调度方法和系统 | |
CN108564164A (zh) | 一种基于spark平台的并行化深度学习方法 | |
CN107370796A (zh) | 一种基于Hyper TF的智能学习系统 | |
CN112905297A (zh) | 容器集群资源调度方法和装置 | |
CN105553732B (zh) | 一种分布式网络模拟方法及系统 | |
CN111353609A (zh) | 一种机器学习系统 | |
WO2021220616A1 (ja) | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム | |
CN104346220B (zh) | 一种任务调度方法与系统 | |
CN115080207A (zh) | 基于容器集群的任务处理方法及装置 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
US8788601B2 (en) | Rapid notification system | |
CN109344059B (zh) | 一种服务器压力测试方法及装置 | |
CN111522637A (zh) | 一种基于成本效益的storm任务调度方法 | |
CN109446641A (zh) | 一种云计算服务系统的多阶段可靠性建模分析方法 | |
CN112350842B (zh) | 一种重置分布式训练任务训练过程中数据传输网络的方法 | |
Sun et al. | Autoscale: Adaptive qos-aware container-based cloud applications scheduling framework | |
Liu | A Programming Model for the Cloud Platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21797318 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022517526 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21797318 Country of ref document: EP Kind code of ref document: A1 |