KR102403476B1 - Distributed Deep Learning System and Its Operation Method - Google Patents
Distributed Deep Learning System and Its Operation Method Download PDFInfo
- Publication number
- KR102403476B1 KR102403476B1 KR1020190137073A KR20190137073A KR102403476B1 KR 102403476 B1 KR102403476 B1 KR 102403476B1 KR 1020190137073 A KR1020190137073 A KR 1020190137073A KR 20190137073 A KR20190137073 A KR 20190137073A KR 102403476 B1 KR102403476 B1 KR 102403476B1
- Authority
- KR
- South Korea
- Prior art keywords
- parameter server
- worker
- gradient
- workers
- parameter
- Prior art date
Links
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/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
딥러닝 분산 학습 시스템 및 동작 방법을 개시한다.
본 발명의 일 측면에 의하면, 딥러닝 분산 학습 시스템에 있어서, 신경망의 파라미터를 저장하고, 갱신하는 글로벌 파라미터 서버; 및 서로 다른 성능을 가지는 복수의 워커 노드를 포함하되, 각각의 워커 노드는 로컬 파라미터 서버 및 복수의 워커를 포함하고, 상기 로컬 파라미터 서버는 상기 글로벌 파라미터 서버로부터 수신한 상기 파라미터를 각각의 워커에게 전달하고, 상기 복수의 워커로부터 수신하는 그래디언트를 집계하여 상기 글로벌 파라미터 서버에게 집계된 그래디언트를 전송하며, 상기 각각의 워커는 동일한 파라미터를 이용하도록 동기화된 것으로서, 상기 각각의 워커는 상기 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성하며, 상기 글로벌 파라미터 서버는 각각의 로컬 파라미터 서버로부터 상기 집계된 그래디언트를 수신할 때마다 상기 집계된 그래디언트를 이용하여 상기 파라미터를 갱신하며, 상기 복수의 워커 노드에 포함된 각각의 로컬 파라미터 서버는 상기 글로벌 파라미터 서버로부터 갱신된 파라미터를 독립적으로 수신하도록 비동기화된 것을 특징으로 하는 시스템을 제공한다.Disclosed are a deep learning distributed learning system and an operating method.
According to an aspect of the present invention, in a deep learning distributed learning system, a global parameter server for storing and updating parameters of a neural network; and a plurality of worker nodes having different capabilities, wherein each worker node includes a local parameter server and a plurality of workers, wherein the local parameter server transmits the parameter received from the global parameter server to each worker and transmits the aggregated gradient to the global parameter server by aggregating the gradients received from the plurality of workers, wherein each worker is synchronized to use the same parameter, and each worker is trained using the parameter Generates a gradient for data, and the global parameter server updates the parameter using the aggregated gradient whenever it receives the aggregated gradient from each local parameter server, each of the plurality of worker nodes included and the local parameter server of the system is asynchronous to independently receive updated parameters from the global parameter server.
Description
본 발명의 실시예들은 딥러닝 분산 학습 시스템 및 그의 동작 방법으로서, 파라미터 서버와 워커 사이의 프레임워크(framework)에 관한 것이다.Embodiments of the present invention relate to a framework between a parameter server and a worker as a deep learning distributed learning system and an operating method thereof.
이 부분에 기술된 내용은 단순히 본 발명에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The content described in this section merely provides background information on the present invention and does not constitute the prior art.
최근, 딥러닝(deep lenarning) 연산 처리의 가속화를 위해, 학습 모델을 복제한 후 여러 모델을 이용하는 딥러닝 분산 프레임워크가 연구되고 있다. 딥러닝 프레임워크의 종류는 모델 분산과 데이터 분산, 동기 방식과 비동기 방식, 파라미터 서버 방식과 집단 통신 방식으로 나뉠 수 있다.Recently, in order to accelerate deep learning computational processing, a deep learning distributed framework using multiple models after duplicating a learning model is being studied. Deep learning frameworks can be divided into model distribution and data distribution, synchronous method and asynchronous method, parameter server method and group communication method.
모델 분산은 하나의 모델을 여러 개로 나누어 복수의 장치에 보관하는 프레임워크이며, 데이터 분산은 하나의 모델을 여러 개의 동일 모델들로 복제하고, 여러 장치에 보관하는 프레임워크를 의미한다. 일반적으로, 딥러닝 분산 프레임워크는 데이터 분산을 의미한다.Model distribution is a framework that divides one model into several and stores them in multiple devices, and data distribution refers to a framework that replicates one model into several identical models and stores them in multiple devices. In general, deep learning distributed framework refers to data distribution.
동기 방식은 데이터 분산 프레임워크에서 복제된 모델이 포함하는 모델 파라미터들을 함께 갱신하는 방식이다. 비동기 방식은 복제된 여러 모델들이 각자 그래디언트를 생성하고, 그래디언트에 기초하여 각자 파라미터를 갱신하는 방식이다.The synchronous method is a method of updating model parameters included in the replicated model together in the data distribution framework. The asynchronous method is a method in which multiple replicated models each generate gradients and update their parameters based on the gradients.
파라미터 서버 방식은 데이터 분산 프레임워크에서 파라미터를 저장하고 갱신하는 파라미터 서버와, 파라미터를 이용하여 훈련 데이터에 대한 그래디언트(gradient)를 생성하는 복수의 워커로 구성되는 방식을 의미한다. 여기서, 그래디언트는 신경망의 파라미터를 조정하는 데 이용되는 요소이다. 파라미터 서버는 복수의 워커들로부터 수신한 그래디언트들을 이용하여 파라미터를 갱신한 후 각각의 워커에게 전송함으로써 워커들을 업데이트할 수 있다. 반면, 집단 통신 방식은 각각의 워커들이 그래디언트를 생성하고, 서로 그래디언트를 공유하며 파라미터를 동기화하는 방식을 의미한다.The parameter server method refers to a method composed of a parameter server that stores and updates parameters in a data distribution framework, and a plurality of workers that use parameters to generate gradients for training data. Here, the gradient is an element used to adjust the parameters of the neural network. The parameter server may update the workers by using the gradients received from the plurality of workers to update the parameter and then transmit it to each worker. On the other hand, the group communication method refers to a method in which each worker generates a gradient, shares a gradient with each other, and synchronizes parameters.
도 1은 파라미터 서버 방식의 데이터 분산 딥러닝 프레임워크를 설명하기 위한 도면이다.1 is a diagram for explaining a data distribution deep learning framework of a parameter server method.
도 1을 참조하면, 파라미터 서버 방식의 프레임워크는 파라미터 서버(100), 복수의 워커(110, 112, 114, 116)를 포함하며, 미니 배치 사이즈(mini batch size)의 훈련 데이터(120, 122, 124, 126)을 이용하여 훈련할 수 있다.Referring to FIG. 1 , the parameter server type framework includes a
파라미터 서버(100)는 딥러닝 모델의 파라미터를 저장하고, 복수의 워커(110, 112, 114, 116)에게 파라미터(W)를 전송하고, 복수의 워커하나110, 112, 114, 116)로부터 수신하는 그래디언트(dW)를 이용하여 파라미터(W)를 갱신하는 구성요소다. 여기서, 그래디언트(dW)란 파라미터 서버(100)가 모델의 파라미터를 갱신하는 데 필요한 요소를 의미한다.The
복수의 워커(110, 112, 114, 116)는 모델의 파라미터(W)를 이용하여 훈련 데이터(120, 122, 124, 126)에 대한 그래디언트(gradient)를 생성하는 구성요소다. 즉, 복수의 워커 중 제1 워커(110)는 파라미터(W)를 이용하여 미니 배치 사이즈의 훈련 데이터(120)에 대해 그래디언트를 생성하고, 파라미터 서버(100)에게 그래디언트(dW)를 전송한다. The plurality of
파라미터 서버(100)는 복수의 워커(110, 112, 114, 116)로부터 각각 그래디언트를 수신하고, 각각의 그래디언트를 집계(aggregation)한 후 집계된 그래디언트를 이용하여 모델의 파라미터를 갱신(update)한다. 파라미터 서버(100)는 갱신된 파라미터를 복수의 워커(110, 112, 114, 116)에게 전송함으로써, 딥러닝 분산 모델이 훈련된다.The
동기 파라미터 서버 방식은 파라미터 서버(100)가 복수의 워커(110, 112, 114, 116)로부터 그래디언트를 전부 수신한 후에, 모든 그래디언트를 이용하여 모델의 파라미터를 갱신하며, 복수의 워커(110, 112, 114, 116)에게 모두 동일하게 갱신된 파라미터를 전송하는 방식이다. In the synchronous parameter server method, the
동기 파라미터 서버 방식은 복수의 워커(110, 112, 114, 116)가 모두 동일한 파라미터를 이용하므로, 훈련 정확도(training accuracy)가 보장된다는 장점이 있다. 다만, 복수의 워커(110, 112, 114, 116) 각각이 서로 다른 클러스터(heterogeneous cluster) 환경에서 자원 활용률(resource utilization)이 낮다는 단점이 있다. 구체적으로, 복수의 워커(110, 112, 114, 116) 각각이 성능이 다르고, 같은 훈련 데이터에 대해 그래디언트를 생성하는 속도가 다른 경우, 연산 속도가 가장 느린 워커의 그래디언트 생성이 끝날 때까지 연산 속도가 가장 빠른 워커가 대기해야 한다. 따라서, 동기 파라미터 서버 방식은 자원 활용률이 비동기식 파라미터 서버 방식보다 낮다.The synchronization parameter server method has an advantage that training accuracy is guaranteed because the plurality of
비동기 파라미터 서버 방식은 파라미터 서버(100)가 복수의 워커(110, 112, 114, 116)로부터 그래디언트를 수신할 때마다 모델의 파라미터를 갱신하고, 각 워커에게 독립적으로 갱신된 파라미터를 전송한다.In the asynchronous parameter server method, the
비동기 파라미터 서버 방식은 서로 성능이 다른 복수의 워커(110, 112, 114, 116)들을 이용하는 이종 클러스터 환경에서 자원 활용률이 높다는 장점이 있다. 예를 들어, 연산 속도가 빠른 워커는 연산 속도가 느린 워커에 비해 그래디언트를 생성하고 갱신된 파라미터를 수신하는 시간이 빠르다. 즉, 연산 속도가 느린 워커가 훈련 데이터를 훈련하는 중에 연산 속도가 빠른 워커는 다른 훈련 데이터를 훈련할 수 있다. 하지만, 비동기 파라미터 서버 방식은 복수의 워커(110, 112, 114, 116) 각각이 서로 다른 파라미터를 이용하여 훈련하기 때문에 훈련 정확도가 낮다는 단점이 있다. 또한, 비동기 파라미터 방식은 복수의 워커(110, 112, 114, 116) 각각이 파라미터 서버(100)와 통신하므로 입출력(I/O) 병목 현상이 발생하여, 전체적인 딥러닝 연산 속도가 느려지는 단점이 있다.The asynchronous parameter server method has an advantage of high resource utilization in a heterogeneous cluster environment using a plurality of
구체적으로, 연산 속도가 빠른 제1 워커(110)와 연산 속도가 느린 제2 워커(122)가 초기에 같은 파라미터를 이용하여 그래디언트를 각각 생성한다. 파라미터 서버(100)는 제1 워커(110)가 생성한 그래디언트를 이용하여 파라미터를 갱신한 후, 제2 워커(122)가 생성한 그래디언트를 이용하여 파라미터를 다시 갱신한다. 이때, 제1 워커가 생성한 그래디언트를 이용하여 갱신한 파라미터에 대한 정보는 사라지므로, 비동기 파라미터 서버 방식은 훈련 정확도가 낮아진다. Specifically, the
도 2는 동기 집단 통신 구조의 데이터 분산 딥러닝 프레임워크를 설명하기 위한 도면이다.2 is a diagram for explaining a data distribution deep learning framework of a synchronous group communication structure.
도 2를 참조하면, 동기 집단 통신 방식은 복수의 워커(200, 210, 220, 230)을 포함한다. 동기 집단 통신 방식은 파라미터 서버를 이용하지 않고, 복수의 워커(200, 210, 220, 230) 각각이 생성한 그래디언트를 서로 공유함으로써, 복수의 워커(200, 210, 220, 230)에 포함된 파라미터를 동기적으로 갱신한다.Referring to FIG. 2 , the synchronous group communication method includes a plurality of
일반적으로, 동기 집단 통신 방식은 복수의 워커(200, 210, 220, 230)가 링(ring) 구조로 연결되며, 독립적으로 그래디언트를 생성한다. 동기 집단 통신 방식에서 모델 파라미터를 갱신하는 방법으로서 두 가지 방법이 있다. 첫 번째, 하나의 워커가 모든 그래디언트를 수집하고, 파라미터를 갱신한 후 갱신된 파라미터를 다른 워커들에게 전송함으로써 파라미터를 동기화하는 방법이다. 두 번째는, 복수의 워커(200, 210, 220, 230)들이 생성한 그래디언트들을 서로에게 전송한 후, 복수의 워커(200, 210, 220, 230) 각각이 파라미터를 갱신함으로써 동기화하는 방법이다.In general, in the synchronous group communication method, a plurality of
동기 집단 통신 방식은 파라미터 서버를 이용하지 않으므로, 입출력 병목 현상으로 인한 연산 속도 저하가 적다는 장점이 있다. 다만, 동기 집단 통신 방식은 동기 방식의 단점으로서, 복수의 워커(200, 210, 220, 230)에 대한 이종의 클러스터 환경에서 자원 활용률이 낮다는 단점이 있다.Since the synchronous group communication method does not use a parameter server, there is an advantage in that the decrease in operation speed due to an input/output bottleneck is small. However, the synchronous group communication scheme is a disadvantage of the synchronous scheme, in that the resource utilization rate for the plurality of
한편, 다시 도 1을 참조하면, 서브 미니 배치 훈련(sub mini batch training)을 위해, 비동기 파라미터 서버 방식에서 복수의 워커(110, 112, 114, 116)는 서로 다른 성능을 가지는 복수의 GPU를 각각 포함할 수 있다. On the other hand, referring again to Figure 1, for sub mini batch training, a plurality of
예를 들어, 제1 워커(110)는 복수의 GPU를 포함하며, 미니 배치 사이즈의 훈련 데이터(120)를 할당 받는다. 제1 워커(110)는 서로 다른 성능의 GPU를 활용하기 위해 미니 배치 사이즈를 GPU의 개수로 나눈 서브 미니 배치 사이즈를 각 GPU에게 할당한다. 제1 워커(110)에 포함된 복수의 GPU는 서브 미니 배치 사이즈의 훈련 데이터에 대한 그래디언트를 생성한다. For example, the
서브 미니 배치 훈련은 비동기 파라미터 서버 방식의 단점인 훈련 정확도를 개선할 수 있으나, 미니 배치 사이즈를 단순히 GPU의 개수로 나누기 때문에, 훈련 정확도 개선의 한계가 있다. 구체적으로, 훈련 정확도를 개선하기 위해, GPU 개수를 증가시키는 것은 물리적 공간에 의해 제한되고, 서브 미니 배치 사이즈를 증가시키는 것은 각 GPU 메모리에 의해 제한된다.Sub-mini-batch training can improve training accuracy, which is a disadvantage of the asynchronous parameter server method, but there is a limit to improving training accuracy because the mini-batch size is simply divided by the number of GPUs. Specifically, in order to improve training accuracy, increasing the number of GPUs is limited by the physical space, and increasing the sub-mini batch size is limited by each GPU memory.
따라서, 전술한 방식들로부터 훈련 정확도의 저하 없이 자원 활용률을 높일 수 있는 데이터 분산 딥러닝 프레임워크가 필요하다. 또한, GPU 개수 및 서브 미니 배치 사이즈를 증가시키지 않고도 서브 미니 배치 훈련의 연산 성능을 높일 수 있는 방안이 필요하다.Therefore, there is a need for a data distribution deep learning framework capable of increasing the resource utilization rate without degrading the training accuracy from the above-described methods. In addition, there is a need for a method to increase the computational performance of sub-mini-batch training without increasing the number of GPUs and the sub-mini-batch size.
본 발명의 실시예들은, 분산 딥러닝 훈련의 정확도의 감소 없이 자원 활용률을 높이기 위해, 로컬 파라미터 서버를 추가함으로써 비동기 파라미터 서버 방식과 동기 집단 통신 방식을 혼합한 딥러닝 분산 학습 시스템 및 그의 동작 방법을 제공하는 데 주된 목적이 있다.Embodiments of the present invention provide a deep learning distributed learning system that mixes an asynchronous parameter server method and a synchronous group communication method by adding a local parameter server in order to increase the resource utilization rate without reducing the accuracy of distributed deep learning training, and an operating method thereof Its main purpose is to provide
본 발명의 다른 실시예들은, GPU 개수 및 서브 미니 배치 사이즈를 증가시키지 않고서 비동기 파라미터 서버의 훈련 정확도를 개선할 수 있는 서브 미니 배치 훈련 방법을 제공하는 데 일 목적이 있다.Another object of the present invention is to provide a sub-mini-batch training method capable of improving training accuracy of an asynchronous parameter server without increasing the number of GPUs and the sub-mini-batch size.
본 발명의 일 측면에 의하면, 딥러닝 분산 학습 시스템에 있어서, 신경망의 파라미터를 저장하고, 갱신하는 글로벌 파라미터 서버; 및 서로 다른 성능을 가지는 복수의 워커 노드를 포함하되, 각각의 워커 노드는 로컬 파라미터 서버 및 복수의 워커를 포함하고, 상기 로컬 파라미터 서버는 상기 글로벌 파라미터 서버로부터 수신한 상기 파라미터를 각각의 워커에게 전달하고, 상기 복수의 워커로부터 수신하는 그래디언트를 집계하여 상기 글로벌 파라미터 서버에게 집계된 그래디언트를 전송하며, 상기 각각의 워커는 동일한 파라미터를 이용하도록 동기화된 것으로서, 상기 각각의 워커는 상기 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성하며, 상기 글로벌 파라미터 서버는 각각의 로컬 파라미터 서버로부터 상기 집계된 그래디언트를 수신할 때마다 상기 집계된 그래디언트를 이용하여 상기 파라미터를 갱신하며, 상기 복수의 워커 노드에 포함된 각각의 로컬 파라미터 서버는 상기 글로벌 파라미터 서버로부터 갱신된 파라미터를 독립적으로 수신하도록 비동기화된 것을 특징으로 하는 시스템을 제공한다. According to one aspect of the present invention, in a deep learning distributed learning system, a global parameter server for storing and updating parameters of a neural network; and a plurality of worker nodes having different capabilities, wherein each worker node includes a local parameter server and a plurality of workers, wherein the local parameter server transmits the parameter received from the global parameter server to each worker and transmits the aggregated gradient to the global parameter server by aggregating the gradients received from the plurality of workers, wherein each worker is synchronized to use the same parameter, and each worker is trained using the parameter Generates a gradient for data, and the global parameter server updates the parameter using the aggregated gradient whenever it receives the aggregated gradient from each local parameter server, each of the plurality of worker nodes included and the local parameter server of the system is asynchronous to independently receive updated parameters from the global parameter server.
본 실시예의 다른 측면에 의하면, 딥러닝 분산 학습 시스템의 동작 방법으로서, 상기 시스템은 글로벌 파라미터 서버 및 복수의 워커 노드를 포함하고, 각각의 워커 노드는 로컬 파라미터 서버 및 복수의 워커를 포함하며, 상기 동작 방법은, 상기 글로벌 파라미터 서버가 상기 각각의 워커 노드에 포함된 상기 로컬 파라미터 서버에게 신경망의 파라미터를 전송하는 과정; 상기 각각의 워커 노드에 대해: 상기 로컬 파라미터 서버가 상기 복수의 워커 각각에게 상기 파라미터를 전송하는 과정; 각각의 워커는 동일한 파라미터를 이용하도록 동기화된 것으로서, 상기 각각의 워커가 상기 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성하고, 상기 그래디언트를 상기 로컬 파라미터 서버에게 전송하는 과정; 상기 로컬 파라미터 서버가 상기 각각의 워커로부터 수신한 상기 그래디언트를 집계하는 과정; 상기 글로벌 파라미터 서버가 각각의 로컬 파라미터 서버로부터 집계된 그래디언트를 수신하고, 상기 집계된 그래디언트를 수신할 때마다 상기 집계된 그래디언트를 이용하여 상기 파라미터를 갱신하는 과정; 및 상기 글로벌 파라미터 서버가 상기 집계된 그래디언트를 전송한 상기 로컬 파라미터 서버에게 갱신된 파라미터를 전송하는 과정을 포함하는 동작 방법을 제공한다.According to another aspect of this embodiment, there is provided an operating method of a deep learning distributed learning system, wherein the system includes a global parameter server and a plurality of worker nodes, each worker node including a local parameter server and a plurality of workers, wherein the The operating method may include: transmitting, by the global parameter server, a parameter of a neural network to the local parameter server included in each worker node; for each worker node: sending, by the local parameter server, the parameter to each of the plurality of workers; Each worker is synchronized to use the same parameter, and each worker generates a gradient for training data using the parameter, and transmits the gradient to the local parameter server; a process in which the local parameter server aggregates the gradients received from the respective workers; receiving, by the global parameter server, the aggregated gradient from each local parameter server, and updating the parameter by using the aggregated gradient each time the aggregated gradient is received; and transmitting, by the global parameter server, an updated parameter to the local parameter server that has transmitted the aggregated gradient.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 로컬 파라미터 서버를 추가하여 비동기 파라미터 서버 방식과 동기 집단 통신 방식을 혼합함으로써, 분산 딥러닝 훈련의 정확도의 감소 없이 자원 활용률을 높일 수 있다.As described above, according to an embodiment of the present invention, by adding a local parameter server and mixing the asynchronous parameter server method and the synchronous group communication method, it is possible to increase the resource utilization rate without reducing the accuracy of distributed deep learning training.
본 발명의 다른 실시예에 의하면, 이종의 클러스터 환경에서 복수의 워커의 각 성능 및 워커의 개수에 따라 워커마다 서로 다른 반복 훈련 횟수를 할당함으로써, GPU 개수 및 서브 미니 배치 사이즈를 증가시키지 않고서 비동기 파라미터 서버의 훈련 정확도를 개선할 수 있다.According to another embodiment of the present invention, asynchronous parameters without increasing the number of GPUs and sub-mini batch size by allocating a different number of iteration training to each worker according to each performance of a plurality of workers and the number of workers in a heterogeneous cluster environment It can improve the training accuracy of the server.
도 1은 파라미터 서버 방식의 데이터 분산 딥러닝 프레임워크를 설명하기 위한 도면이다.
도 2는 동기 집단 통신 구조의 데이터 분산 딥러닝 프레임워크를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 서브 미니 배치 훈련 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템의 병렬적 동작 과정을 설명하기 위한 도면이다.
도 6은 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템의 동작 과정을 설명하기 위한 순서도다.1 is a diagram for explaining a data distribution deep learning framework of a parameter server method.
2 is a diagram for explaining a data distribution deep learning framework of a synchronous group communication structure.
3 is a block diagram of a deep learning distributed learning system according to an embodiment of the present invention.
4 is a diagram for explaining a sub-mini arrangement training method according to an embodiment of the present invention.
5 is a diagram for explaining a parallel operation process of a deep learning distributed learning system according to an embodiment of the present invention.
6 is a flowchart illustrating an operation process of a deep learning distributed learning system according to an embodiment of the present invention.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '~부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, in describing the components of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the elements from other elements, and the essence, order, or order of the elements are not limited by the terms. Throughout the specification, when a part 'includes' or 'includes' a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated. . In addition, terms such as '~ unit' and 'module' described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software or a combination of hardware and software.
도 3은 본 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템의 구성도이다.3 is a block diagram of a deep learning distributed learning system according to an embodiment of the present invention.
도 3을 참조하면, 본 발명의 일 실시예에 따른 이종 클러스터 환경에서의 딥러닝 분산 학습 시스템(distributed deep learning system)은 글로벌 파라미터 서버(300, Global Parameter Server: GPS), 워커 노드들(310, 340, 370, worker node)을 포함한다. 워커 노드들(310, 340, 370)은 제0 워커 노드(310), 제1 워커 노드(340)를 포함하며, 이 외에 제n 워커 노드(370)를 포함할 수 있다. 제0 워커 노드(310)는 제0 로컬 파라미터 서버(320, Local Parameter Server: LPS)와 복수의 워커(330, 331, 332, 333)을 포함하며, 제1 워커 노드(340)는 제1 로컬 파라미터 서버(350)와 복수의 다른 워커(360, 361, 362, 363)을 포함한다. 즉, 하나의 워커 노드는 하나의 로컬 파라미터 서버와 복수의 워커를 포함한다. Referring to FIG. 3 , a deep learning distributed learning system in a heterogeneous cluster environment according to an embodiment of the present invention includes a global parameter server 300 (Global Parameter Server: GPS),
이하에서, 워커 노드들(310, 340, 370)은 3개로 표현되지만 둘 이상의 워커 노드를 의미한다. 또한, 시스템의 동작에 대해 제0 워커 노드(310) 및 제1 워커 노드(340)를 포함하는 복수의 워커 노드(310, 340)를 중심으로 설명하나, 나머지 워커 노드에도 동일하게 적용될 수 있다. Hereinafter, the
한편, 각 워커는 GPU(Graphic Processing Unit)에 의해 구현될 수 있으며, 워커와 GPU는 혼용하여 지칭될 수 있다. 다만, 워커는 GPU외에 CPU(Central Processing Unit) 등의 다른 데이터 처리 장치에 의해 구현될 수도 있다. On the other hand, each worker may be implemented by a GPU (Graphic Processing Unit), and the worker and the GPU may be used interchangeably. However, the worker may be implemented by other data processing devices such as a CPU (Central Processing Unit) in addition to the GPU.
글로벌 파라미터 서버(300)는 모델(model)의 파라미터(parameter)를 저장하고, 복수의 워커 노드(310, 340)에게 전송하며, 복수의 워커 노드(310, 340)에서 집계된 그래디언트들(aggregated gradients)을 수신하고, 이를 이용하여 모델의 파라미터를 갱신(update)하는 구성요소다.The
구체적으로, 글로벌 파라미터 서버(300)는 초기에는 복수의 로컬 파라미터 서버(320, 350)에게 모델의 파라미터를 전송하고, 이후에는 복수의 로컬 파라미터 서버(320, 350)에게 같은 파라미터를 전송할 수도 있고, 서로 다른 파라미터를 전송할 수도 있다. Specifically, the
글로벌 파라미터 서버(300)는 복수의 로컬 파라미터 서버(320, 350)로부터 집계된 그래디언트(aggregated gradient)를 독립적으로 수신한다. 또한, 글로벌 파라미터 서버(300)는 복수의 로컬 파라미터 서버(320, 350)로부터 집계된 그래디언트를 수신할 때마다 파라미터를 갱신하고 저장할 수 있다. 글로벌 파라미터 서버(300)는 갱신 시점에 따라 복수의 워커 노드(310, 340)에게 서로 다른 파라미터를 전송할 수 있다. 이는, 복수의 워커 노드(310, 340)가 비동기화된 것을 의미하며, 복수의 워커 노드(310, 340)의 자원 활용률을 높이기 위함이다.The
복수의 로컬 파라미터 서버(320, 350)는 각각 비동기화된 서버로서, 글로벌 파라미터 서버(300)에게 받은 파라미터를 워커들에게 전달하고, 워커들에게 받은 그래디언트를 집계하여 파라미터 서버에게 전달하는 구성요소다. The plurality of
구체적으로, 복수의 로컬 파라미터 서버(320, 350) 중 제0 로컬 파라미터 서버(320)는 글로벌 파라미터 서버(300)로부터 수신한 파라미터를 복수의 워커(330, 331, 332, 333)에게 전달한다. 이때, 본 발명의 일 실시예에 따라 제0 로컬 파라미터 서버(320)와 제1 로컬 파라미터 서버(350)는 비동기화되므로, 각각의 집계된 그래디언트를 글로벌 파라미터 서버(300)에게 서로 다른 시점에 전송할 수 있다. 또한, 제0 로컬 파라미터 서버(320)와 제1 로컬 파라미터 서버(350)는 글로벌 파라미터 서버(300)의 파라미터 갱신 시점에 따라 서로 다른 파라미터를 받을 수도 있고, 동일한 파라미터를 받을 수도 있다.Specifically, the zeroth
이후, 제0 로컬 파라미터 서버(320)는 복수의 워커(330, 331, 332, 333)가 생성한 그래디언트들을 수신하고, 그래디언트들을 집계한다. 여기서, 본 발명의 일 실시예에 따른 집계(aggregation)는 그래디언트들의 총합, 그래디언트들의 곱, 그래디언트들 중 최대값, 또는 그래디언트들 중 최소값을 계산한다는 의미일 수 있다.Thereafter, the 0th
제0 로컬 파라미터 서버(320)는 집계된 그래디언트를 글로벌 파라미터 서버(300)에게 전송하고, 글로벌 파라미터 서버(300)로부터 갱신된 파라미터를 수신하며, 갱신된 파라미터를 복수의 워커(330, 331, 332, 333)에게 전달한다.The zeroth
전술한 동작은 제0 로컬 파라미터 서버(320)뿐만 아니라 제1 로컬 파라미터 서버(350) 및 다른 로컬 파라미터 서버들에도 동등하게 적용된다.The above operation equally applies not only to the zeroth
복수의 워커(330, 331, 332, 333)는 각각 동기화된 것으로서, 제0 로컬 파라미터 서버(320)로부터 수신한 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성하고, 제0 로컬 파라미터 서버(320)에게 전송하는 구성요소다. The plurality of
본 발명의 일 실시예에 따른 복수의 워커(330, 331, 332, 333)는 글로벌 파라미터 서버(300)에게 그래디언트를 전달하는 방법으로서, 동기 집단 통신 구조인 올 리듀스(all-reduce)를 이용할 수 있다. 올 리듀스 방식은, 각각의 워커(330, 331, 332, 333)가 생성한 그래디언트를 서로 공유하고, 공유한 그래디언트들을 제0 로컬 파라미터 서버(320)에게 전송하는 방식이다. 구체적으로, 제0 워커(330)는 제1 워커(331)에게 자신이 생성한 그래디언트를 전송하고, 제1 워커(331)는 제3 워커(333)에게, 제3 워커(3330)는 제2 워커(332)에게, 제2 워커(332)는 제0 워커(330)에게 자신이 생성한 그래디언트를 전송한다. 이후, 제0 워커(330)는 제2 워커(332)에게 받은 그래디언트를 제 1 워커(331)에게 전달한다. 이러한 과정을 거쳐 각각의 워커(330, 331, 332, 333)는 4개의 그래디언트를 가진다. 복수의 워커(330, 331, 332, 333) 중 하나가 4개의 그래디언트를 제0 로컬 파라미터 서버 (320)에게 전송함으로써, 제0 로컬 파라미터 서버(320)와 복수의 워커(330, 331, 332, 333) 사이의 통신을 최소화하여 입출력 병목 현상을 줄일 수 있다.The plurality of
본 발명의 다른 실시예에 따른 복수의 워커(330, 331, 332, 333) 각각은 서브 미니 배치 훈련 방법을 이용하여, 제0 로컬 파라미터 서버 (320)에게 개별적으로 그래디언트를 전송할 수 있고, 각각의 그래디언트는 제0 로컬 파라미터 서버 (320)에 의해 집계될 수 있다. 이에 대해서는 도 4에서 자세히 설명한다. Each of the plurality of
한편, 본 발명의 일 실시예에 따른 복수의 워커(330, 331, 332, 333)는 글로벌 파라미터 서버(300)에 의해 갱신된 파라미터를 제0 로컬 파라미터 서버(320)로부터 모두 똑같이 수신함으로써 동기화될 수 있다. 복수의 워커(330, 331, 332, 333)가 그래디언트를 생성하는 시점은 각각 다르더라도, 파라미터를 수신하는 시점은 모두 동일하다. 마찬가지로, 복수의 다른 워커(360, 361, 362, 363)도 동일한 파라미터를 이용하도록 동기화된다. 다만, 복수의 워커(330, 331, 332, 333)와 복수의 다른 워커(360, 361, 362, 363)는 비동기화된다.Meanwhile, the plurality of
본 발명의 일 실시예에 따른 복수의 워커(330, 331, 332, 333)는 서로 다른 클러스터(heterogeneous cluster) 환경 또는 서로 다른 GPU에 의해 구현될 수 있다.The plurality of
서로 다른 성능을 가지는 복수의 워커(330, 331, 332, 333)를 이용하더라도, 비동기 파라미터 서버 방식과 동기 집단 통신 방식을 혼합하여 복수의 워커(330, 331, 332, 333)의 훈련 정확도의 저하 없이 자원 활용률을 높일 수 있다.Even when a plurality of
도 4는 본 발명의 일 실시예에 따른 서브 미니 배치 훈련 방법을 설명하기 위한 도면이다.4 is a diagram for explaining a sub-mini arrangement training method according to an embodiment of the present invention.
도 3 및 도 4를 참조하면, 제0 로컬 파라미터 서버 (320) 및 복수의 워커(330, 331, 332, 333)의 시간에 따른 동작 과정이 나타난다. 3 and 4 , operation processes according to time of the 0th
복수의 워커(330, 331, 332, 333)는 모두 동일한 파라미터를 가지며, 동일한 서브 미니 배치 사이즈의 훈련 데이터를 훈련한다. 다시 말하면, 복수의 워커(330, 331, 332, 333)는 각각 64 배치 사이즈(64 batch)의 훈련 데이터마다 그래디언트를 생성한다.The plurality of
본 발명의 일 실시예에 따른 복수의 워커(330, 331, 332, 333)는 각각 성능이 다른 클러스터 또는 GPU로 구현되므로, 64 배치 사이즈의 훈련 데이터에 대한 그래디언트를 생성하는 시간은 복수의 워커(330, 331, 332, 333)마다 서로 다르다. 제0 워커(330)의 연산 속도가 가장 빠르고, 제3 워커(333)의 연산 속도가 가장 느리다.Since the plurality of
본 발명의 일 실시예에 따른 서브 미니 배치 훈련 방법으로서, 복수의 로컬 파라미터 서버(320, 350)는 모두 동일한 미니 배치 사이즈의 훈련 데이터를 할당 받는다. 제0 로컬 파라미터 서버 (320)는 복수의 워커(330, 331, 332, 333)의 개수 및 성능에 따라 복수의 워커(330, 331, 332, 333)의 반복 훈련 횟수를 결정한다. As a sub-mini-batch training method according to an embodiment of the present invention, the plurality of
복수의 워커(330, 331, 332, 333)는 제0 로컬 파라미터 서버 (320)에 의해 결정된 반복 훈련 횟수만큼 훈련 데이터에 대한 그래디언트를 생성하고, 제0 로컬 파라미터 서버 (320)에게 전송한다.The plurality of
예를 들어, 제0 로컬 파라미터 서버 (320)에게 512 미니 배치 사이즈의 훈련 데이터가 할당되고, 복수의 워커(330, 331, 332, 333)가 64 서브 미니 배치 사이즈 단위로 그래디언트를 생성할 수 있으며, 제0 워커(330) 내지 제3 워커(333)의 연산 속도 비율이 4:2:1.5:1인 것으로 가정한다. For example, training data of 512 mini-batch size is allocated to the 0th
우선, 제0 로컬 파라미터 서버 (320)는 512 미니 배치 사이즈를 64 서브 미니 배치 사이즈로 나눈 값인 8을 도출한다. 복수의 워커(330, 331, 332, 333)는 총 8개의 그래디언트를 생성한다. First, the 0th
복수의 워커(330, 331, 332, 333)의 성능이 서로 다르므로, 제0 로컬 파라미터 서버 (320)는 복수의 워커(330, 331, 332, 333)의 개수 및 성능에 기초하여 각 워커의 반복 훈련 횟수를 결정한다. 제0 로컬 파라미터 서버 (320)는 제0 워커(330) 내지 제3 워커(333)가 4:2:1:1에 따라 그래디언트를 생성하도록 반복 훈련 횟수를 결정한다. 즉, 제0 워커(330)는 64 서브 미니 배치 사이즈의 4개의 훈련 데이터를 훈련하며, 제3 워커(333)는 1개의 훈련 데이터를 훈련한다. 연산 속도가 가장 빠른 제0 워커(330)는 하나의 서브 미니 배치 사이즈 훈련 데이터를 훈련한 후 제3 워커(330)의 연산이 끝날 때까지 기다릴 필요가 없다. 제0 워커(330)는 제3 워커(333)의 연산 중에 다른 훈련 데이터를 훈련함으로써, 동기화로 인한 자원 활용률 저하를 피할 수 있다.Since the performance of the plurality of
복수의 워커(330, 331, 332, 333)는 반복 훈련 횟수에 따라 그래디언트를 생성하며, 그래디언트를 생성할 때마다 제0 로컬 파라미터 서버 (320)에게 전송한다. The plurality of
제0 로컬 파라미터 서버 (320)는 복수의 워커(330, 331, 332, 333)로부터 그래디언트를 수신하며, 그래디언트들을 비동기적으로 집계한다(asynchronously aggregation). 복수의 워커(330, 331, 332, 333) 중 성능이 가장 좋은 제0 워커(330)로부터 그래디언트를 수신한 시점부터 집계가 시작된다.The zeroth
제0 로컬 파라미터 서버 (320)는 복수의 워커(330, 331, 332, 333)로부터 8개의 그래디언트를 모두 수신한 후 글로벌 파라미터 서버(300)에게 집계된 그래디언트를 전송한다. 즉, 제0 로컬 파라미터 서버 (320)는 제0 워커(330)에게 그래디언트를 받더라도 그래디언트를 곧바로 글로벌 파라미터 서버(300)에게 보내지 않는다. 제0 로컬 파라미터 서버 (320)는 복수의 워커(330, 331, 332, 333)가 생성하는 모든 그래디언트를 수신하고 집계한 후에서야 글로벌 파라미터 서버(300)에게 집계된 그래디언트를 전송한다. 이는, 제0 로컬 파라미터 서버 (320)와 글로벌 파라미터 서버(300) 사이의 통신을 효율적으로 수행하기 위함이다.The zeroth
글로벌 파라미터 서버(300)는 집계된 그래디언트를 이용하여 파라미터를 갱신하고, 제0 로컬 파라미터 서버 (320)를 통해 복수의 워커(330, 331, 332, 333)에게 갱신된 파라미터를 같은 시간에 전달할 수 있다(Broadcast updated parameter). 즉, 복수의 워커(330, 331, 332, 333)는 동일한 파라미터를 이용하고, 동시에 파라미터가 갱신되도록 동기화된다.The
도 5는 본 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템의 병렬적 동작 과정을 설명하기 위한 도면이다.5 is a diagram for explaining a parallel operation process of a deep learning distributed learning system according to an embodiment of the present invention.
도 5를 참조하면, 딥러닝 분산 학습 시스템의 글로벌 파라미터 서버, 로컬 파라미터 서버 및 복수의 워커의 동작 순서가 예시된다.Referring to FIG. 5 , an operation sequence of a global parameter server, a local parameter server, and a plurality of workers of the deep learning distributed learning system is illustrated.
기존의 파라미터 서버 방식의 경우, 복수의 워커가 훈련 데이터에 대한 그래디언트를 계산(compute)하고, 그래디언트를 집계하며, 집계된 그래디언트를 리듀스(reduce)한 후 글로벌 파라미터 서버에게 전송한다. 글로벌 파라미터 서버는 복수의 워커로부터 집계된 그래디언트를 수신하고(recv), 집계된 그래디언트를 이용하여 파라미터의 갱신을 적용하며(apply), 갱신된 파라미터를 복수의 워커 각각에게 전송(bcast)한다. In the case of the existing parameter server method, a plurality of workers computes the gradient for the training data, aggregates the gradient, reduces the aggregated gradient, and then transmits it to the global parameter server. The global parameter server receives the aggregated gradient from a plurality of workers (recv), applies the parameter update using the aggregated gradient (apply), and transmits the updated parameter to each of the plurality of workers (bcast).
글로벌 파라미터 서버 및 복수의 워커의 각 동작들이 다른 구성요소에 의해 수행됨에도 불구하고, 하나의 동작이 끝난 후에 다른 동작이 수행되므로, 파라미터를 갱신하는 데 많은 시간이 든다. 또한, 복수의 워커가 동작하는 동안 글로벌 파라미터 서버는 대기하며, 글로벌 파라미터 서버가 동작하는 동안 복수의 워커가 대기하기 때문에 자원의 활용률이 낮다.Although each operation of the global parameter server and the plurality of workers is performed by other components, since another operation is performed after one operation is finished, it takes a lot of time to update parameters. In addition, since the global parameter server waits while the plurality of workers are operating, and the plurality of workers wait while the global parameter server is operating, the resource utilization rate is low.
반면, 본 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템은 로컬 파라미터 서버를 이용하여 글로벌 파라미터 서버 및 복수의 워커의 동작을 병렬화할 수 있다. 다시 말하면, 로컬 파라미터 서버 및 글로벌 파라미터 서버 사이의 통신과, 복수의 워커의 그래디언트 생성이 병렬적으로 수행될 수 있다.On the other hand, the deep learning distributed learning system according to an embodiment of the present invention can parallelize the operations of the global parameter server and the plurality of workers by using the local parameter server. In other words, communication between the local parameter server and the global parameter server and gradient generation of a plurality of workers may be performed in parallel.
구체적으로, 본 발명의 일 실시예는 로컬 파라미터 서버를 이용함으로써 딥러닝 연산과 통신을 병렬적으로 수행할 수 있다. 기존에 글로벌 파라미터 서버와 복수의 워카 사이의 통신이 직접적으로 수행되는 방식과 달리, 본 발명의 일 실시예에 따라 로컬 파라미터 서버가 글로벌 파라미터 서버와 복수의 워커 사이의 통신과 그래디언트 집계를 대신 수행한다. 로컬 파라미터 서버가 통신 및 집계를 수행함으로써, 복수의 워커는 통신에 필요한 오버헤드(overhead) 작업을 줄이고, 그래디언트의 생성을 중점적으로 수행할 수 있다. 또한, 글로벌 파라미터 서버는 복수의 워커 모두와 통신하지 않고, 그래디언트를 집계할 필요도 없으므로, 파라미터의 갱신을 더 빠르게 수행할 수 있다. Specifically, an embodiment of the present invention can perform a deep learning operation and communication in parallel by using a local parameter server. Unlike the conventional method in which communication between the global parameter server and a plurality of workers is directly performed, according to an embodiment of the present invention, the local parameter server performs communication and gradient aggregation between the global parameter server and a plurality of workers instead. . As the local parameter server performs communication and aggregation, a plurality of workers can reduce overhead work required for communication and focus on gradient generation. In addition, since the global parameter server does not communicate with all of the plurality of workers and does not need to aggregate gradients, parameter updates can be performed faster.
따라서, 복수의 워커와 글로벌 파라미터 서버가 동작하는 동안 로컬 파라미터 서버가 병렬적으로 통신을 수행하므로, 복수의 워커 및 글로벌 파라미터 서버의 자원 활용률이 높아진다. 또한, 글로벌 파라미터 서버는 복수의 워커가 아닌 로컬 파라미터 서버와 통신을 하므로, 입출력 병목 현상을 줄일 수 있다.Accordingly, since the local parameter server performs communication in parallel while the plurality of workers and the global parameter server are operating, the resource utilization rate of the plurality of workers and the global parameter server is increased. In addition, since the global parameter server communicates with the local parameter server rather than a plurality of workers, it is possible to reduce the input/output bottleneck.
도 6은 발명의 일 실시예에 따른 딥러닝 분산 학습 시스템의 동작 과정을 설명하기 위한 순서도다.6 is a flowchart illustrating an operation process of a deep learning distributed learning system according to an embodiment of the present invention.
도 6을 참조하면, 본 발명의 일 실시예에 따른 글로벌 파라미터 서버는 로컬 파라미터 서버에게 모델, 즉 신경망의 파라미터를 전송한다(S600). 로컬 파라미터 서버는 복수의 워커를 대신하여 글로벌 파라미터 서버와 통신한다. 이때, 복수의 워커 노드에 포함된 복수의 로컬 파라미터 서버는 서로 동기화되지 않는다.Referring to FIG. 6 , the global parameter server according to an embodiment of the present invention transmits a model, that is, a parameter of a neural network, to the local parameter server ( S600 ). The local parameter server communicates with the global parameter server on behalf of multiple workers. In this case, the plurality of local parameter servers included in the plurality of worker nodes are not synchronized with each other.
각각의 워커 노드에 포함된 각 로컬 파라미터 서버는 복수의 워커에게 파라미터를 전송한다(S602). 복수의 워커는 서로 동기화되어 있으므로, 복수의 워커는 동일한 파라미터를 수신한다.Each local parameter server included in each worker node transmits parameters to a plurality of workers (S602). Since multiple workers are synchronized with each other, multiple workers receive the same parameters.
각각의 워커마다 수신한 파라미터를 이용하여 훈련 데이터에 대한 각각의 그래디언트를 생성하고, 로컬 파라미터 서버에게 전송한다(S604). 본 발명의 일 실시예에 따른 서브 미니 배치 훈련 방법으로서, 로컬 파라미터 서버가 워커으 개수 및 성능에 따라 각각의 워커에 대한 반복 훈련 횟수를 결정하고, 각각의 워커는 반복 훈련 횟수만큼 그래디언트를 생성하여 로컬 파라미터 서버에게 전송한다.Using the parameters received for each worker, each gradient for the training data is generated and transmitted to the local parameter server (S604). As a sub-mini-batch training method according to an embodiment of the present invention, the local parameter server determines the number of repetition training for each worker according to the number and performance of workers, and each worker generates a gradient as many as the number of repetition training. Send to the local parameter server.
로컬 파라미터 서버는 각각의 워커로부터 수신한 각각의 그래디언트를 집계한다(S606). 여기서 집계는 그래디언트를 모두 더하거나, 그래디언트를 각각 곱하거나, 그래디언트들 중 최대값 또는 최소값을 선택하는 동작을 의미한다.The local parameter server aggregates each gradient received from each worker (S606). Here, the aggregation refers to an operation of adding all gradients, multiplying each gradient, or selecting the maximum or minimum value among the gradients.
글로벌 파라미터 서버는 로컬 파라미터 서버에 의해 집계된 그래디언트를 수신하고, 집계된 그래디언트를 이용하여 모델의 파라미터를 갱신한다(S608). 이때, 글로벌 파라미터 서버는 서로 다른 로컬 파라미터 서버로부터 서로 다른 그래디언트를 수신하며, 서로 다른 그래디언트를 수신할 때마다 파라미터를 갱신하고 저장할 수 있다. The global parameter server receives the gradient aggregated by the local parameter server, and updates the parameters of the model using the aggregated gradient (S608). In this case, the global parameter server may receive different gradients from different local parameter servers, and may update and store parameters whenever different gradients are received.
글로벌 파라미터 서버는 갱신된 파라미터를 로컬 파라미터 서버에게 각각 전송한다(S610). 구체적으로, 글로벌 파라미터 서버는 로컬 파라미터 서버에게 같은 갱신 파라미터를 전송할 수도 있고, 서로 다른 갱신 파라미터를 전송할 수도 있다. 이후, 로컬 파라미터 서버는 갱신된 파라미터를 복수의 워커에게 전달하고, 복수의 워커는 갱신된 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성한다.The global parameter server transmits the updated parameters to the local parameter server, respectively (S610). Specifically, the global parameter server may transmit the same update parameter to the local parameter server, or may transmit different update parameters to the local parameter server. Thereafter, the local parameter server transmits the updated parameters to a plurality of workers, and the plurality of workers use the updated parameters to generate gradients for the training data.
도 6에서는 과정 S600 내지 과정 S610을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 6에 기재된 순서를 변경하여 실행하거나 S600 내지 과정 S610 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 6은 시계열적인 순서로 한정되는 것은 아니다.Although it is described that steps S600 to S610 are sequentially executed in FIG. 6 , this is merely illustrative of the technical idea of an embodiment of the present invention. In other words, those of ordinary skill in the art to which an embodiment of the present invention pertain may change the order described in FIG. 6 within a range that does not depart from the essential characteristics of an embodiment of the present invention, or perform one or more of S600 to S610. Since it will be possible to apply various modifications and variations by executing the process in parallel, FIG. 6 is not limited to a time-series order.
한편, 도 6에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등의 비일시적인(non-transitory) 매체일 수 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송) 및 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the processes illustrated in FIG. 6 can be implemented as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data readable by a computer system is stored. That is, the computer-readable recording medium may be a non-transitory medium such as ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device, and also carrier wave (for example, , transmission via the Internet) and may further include a transitory medium such as a data transmission medium. In addition, the computer-readable recording medium is distributed in a network-connected computer system so that the computer-readable code can be stored and executed in a distributed manner.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and a person skilled in the art to which this embodiment belongs may make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present embodiment.
300: 글로벌 파라미터 서버 310: 제0 워커 노드
320: 제0 로컬 파라미터 서버 330: 제0 워커
331: 제1 워커 332: 제2 워커
333: 제3 워커300: global parameter server 310:
320: 0th local parameter server 330: 0th worker
331: first walker 332: second walker
333: third walker
Claims (10)
신경망의 파라미터를 저장하고, 갱신하는 글로벌 파라미터 서버; 및
복수의 워커 노드를 포함하되,
각각의 워커 노드는 로컬 파라미터 서버 및 복수의 워커를 포함하고,
상기 로컬 파라미터 서버는 상기 글로벌 파라미터 서버로부터 수신한 파라미터를 각각의 워커에게 전달하고, 상기 복수의 워커로부터 수신하는 그래디언트를 집계하여 상기 글로벌 파라미터 서버에게 집계된 그래디언트를 전송하며,
상기 각각의 워커는 동일한 파라미터를 이용하도록 동기화된 것으로서, 상기 각각의 워커는 상기 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성하며,
상기 글로벌 파라미터 서버는 상기 집계된 그래디언트를 이용하여 상기 파라미터를 갱신하며,
상기 로컬 파라미터 서버 및 상기 글로벌 파라미터 서버 사이의 통신과, 상기 각각의 워커의 상기 그래디언트 생성이 병렬적으로 수행되고,
상기 로컬 파라미터 서버는 상기 각각의 워커의 개수 및 성능에 따라 상기 각각의 워커마다 반복 훈련 횟수를 결정하며,
상기 각각의 워커는 상기 반복 훈련 횟수만큼 상기 그래디언트를 생성하는 것을 특징으로 하는 시스템.In the deep learning distributed learning system,
a global parameter server that stores and updates parameters of the neural network; and
comprising a plurality of worker nodes;
Each worker node includes a local parameter server and a plurality of workers,
the local parameter server transmits the parameters received from the global parameter server to each worker, aggregates the gradients received from the plurality of workers, and transmits the aggregated gradient to the global parameter server;
Each worker is synchronized to use the same parameter, and each worker uses the parameter to generate a gradient for training data,
The global parameter server updates the parameter using the aggregated gradient,
Communication between the local parameter server and the global parameter server and the gradient generation of each worker are performed in parallel;
The local parameter server determines the number of repetition training for each worker according to the number and performance of each worker,
The system of claim 1, wherein each worker generates the gradient by the number of repetitions of training.
상기 각각의 워커는 서로 다른 클러스터 또는 서로 다른 GPU에 의해 구현되는 것을 특징으로 하는 시스템.According to claim 1,
The system, characterized in that each worker is implemented by different clusters or different GPUs.
상기 집계된 그래디언트는,
상기 로컬 파라미터 서버가 상기 각각의 워커로부터 수신한 상기 그래디언트의 총합, 곱, 최대값, 또는 최소값 중 어느 하나인 것을 특징으로 하는 시스템.According to claim 1,
The aggregated gradient is
The system according to claim 1, wherein the local parameter server is any one of a sum, a product, a maximum value, or a minimum value of the gradients received from the respective workers.
상기 동작 방법은,
상기 글로벌 파라미터 서버가 상기 각각의 워커 노드에 포함된 상기 로컬 파라미터 서버에게 신경망의 파라미터를 전송하는 과정;
상기 각각의 워커 노드에 대해:
상기 로컬 파라미터 서버가 상기 복수의 워커 각각에게 상기 파라미터를 전송하는 과정;
각각의 워커는 동일한 파라미터를 이용하도록 동기화된 것으로서, 상기 각각의 워커가 상기 파라미터를 이용하여 훈련 데이터에 대한 그래디언트를 생성하고, 상기 그래디언트를 상기 로컬 파라미터 서버에게 전송하는 과정;
상기 로컬 파라미터 서버가 상기 각각의 워커로부터 수신한 상기 그래디언트를 집계하는 과정;
상기 글로벌 파라미터 서버가 각각의 로컬 파라미터 서버로부터 집계된 그래디언트를 수신하고, 상기 집계된 그래디언트를 이용하여 상기 파라미터를 갱신하는 과정; 및
상기 글로벌 파라미터 서버가 상기 집계된 그래디언트를 전송한 상기 로컬 파라미터 서버에게 갱신된 파라미터를 전송하는 과정;
을 포함하되,
상기 로컬 파라미터 서버 및 상기 글로벌 파라미터 서버 사이의 통신과, 상기 각각의 워커의 상기 그래디언트 생성이 병렬적으로 수행되고,
상기 로컬 파라미터 서버는 상기 각각의 워커의 개수 및 성능에 따라 상기 각각의 워커마다 반복 훈련 횟수를 결정하며,
상기 각각의 워커는 상기 반복 훈련 횟수만큼 상기 그래디언트를 생성하는 것을 특징으로 하는 동작 방법.A method of operating a deep learning distributed learning system, the system comprising a global parameter server and a plurality of worker nodes, each worker node comprising a local parameter server and a plurality of workers,
The method of operation is
transmitting, by the global parameter server, a parameter of a neural network to the local parameter server included in each worker node;
For each worker node above:
transmitting, by the local parameter server, the parameter to each of the plurality of workers;
Each worker is synchronized to use the same parameter, and each worker generates a gradient for training data using the parameter, and transmits the gradient to the local parameter server;
a process in which the local parameter server aggregates the gradients received from the respective workers;
receiving, by the global parameter server, an aggregated gradient from each local parameter server, and updating the parameter using the aggregated gradient; and
transmitting, by the global parameter server, an updated parameter to the local parameter server that has transmitted the aggregated gradient;
including,
Communication between the local parameter server and the global parameter server and the gradient generation of each worker are performed in parallel;
The local parameter server determines the number of repetition training for each worker according to the number and performance of each worker,
The method of operation, characterized in that each worker generates the gradient by the number of repetitions of training.
상기 각각의 워커는 서로 다른 클러스터 또는 서로 다른 GPU에 의해 구현되는 것을 특징으로 하는 동작 방법.7. The method of claim 6,
The method of operation, characterized in that each worker is implemented by different clusters or different GPUs.
상기 집계된 그래디언트는,
상기 로컬 파라미터 서버가 상기 각각의 워커로부터 수신한 상기 그래디언트의 총합, 곱, 최대값, 또는 최소값 중 어느 하나인 것을 특징으로 하는 동작 방법.7. The method of claim 6,
The aggregated gradient is
The method according to claim 1, wherein the local parameter server is any one of a sum, a product, a maximum value, and a minimum value of the gradients received from the respective workers.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190137073A KR102403476B1 (en) | 2019-10-31 | 2019-10-31 | Distributed Deep Learning System and Its Operation Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190137073A KR102403476B1 (en) | 2019-10-31 | 2019-10-31 | Distributed Deep Learning System and Its Operation Method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210051604A KR20210051604A (en) | 2021-05-10 |
KR102403476B1 true KR102403476B1 (en) | 2022-05-27 |
Family
ID=75917788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190137073A KR102403476B1 (en) | 2019-10-31 | 2019-10-31 | Distributed Deep Learning System and Its Operation Method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102403476B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230012809A (en) | 2021-07-16 | 2023-01-26 | 연세대학교 산학협력단 | Multitask Distributed Learning System and Method Based on Lottery Ticket Neural Network |
CN113824650B (en) * | 2021-08-13 | 2023-10-20 | 上海光华智创网络科技有限公司 | Parameter transmission scheduling algorithm and system in distributed deep learning system |
WO2023120776A1 (en) * | 2021-12-23 | 2023-06-29 | 경희대학교 산학협력단 | Device-to-device knowledge transmission method using proxy dataset in federated learning, and system therefor |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311298A1 (en) * | 2018-04-09 | 2019-10-10 | Here Global B.V. | Asynchronous parameter aggregation for machine learning |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102197247B1 (en) * | 2017-06-01 | 2020-12-31 | 한국전자통신연구원 | Parameter server and method for sharing distributed deep learning parameter using the same |
-
2019
- 2019-10-31 KR KR1020190137073A patent/KR102403476B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311298A1 (en) * | 2018-04-09 | 2019-10-10 | Here Global B.V. | Asynchronous parameter aggregation for machine learning |
Also Published As
Publication number | Publication date |
---|---|
KR20210051604A (en) | 2021-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102403476B1 (en) | Distributed Deep Learning System and Its Operation Method | |
US10476697B2 (en) | Network-on-chip, data transmission method, and first switching node | |
JP6450330B2 (en) | Parallel computing device and parallel computing method | |
US20190188563A1 (en) | System | |
CN114281521B (en) | Method, system, equipment and medium for optimizing deep learning heterogeneous resource communication efficiency | |
TW202147188A (en) | Method of training neural network model and related product | |
CN107172650B (en) | Simulation method and system for large-scale complex wireless communication system | |
US20190044883A1 (en) | NETWORK COMMUNICATION PRIORITIZATION BASED on AWARENESS of CRITICAL PATH of a JOB | |
US20210035027A1 (en) | Distributed training for deep learning models | |
CN105071994B (en) | A kind of mass data monitoring system | |
Sun et al. | Gradientflow: Optimizing network performance for large-scale distributed dnn training | |
CN113193947B (en) | Method, apparatus, medium, and program product for implementing distributed global ordering | |
CN104348913A (en) | Tight-coupling extensible big data interaction method | |
CN109857810A (en) | Data synchronization unit and method based on block chain | |
CN111988345B (en) | Information synchronization method and device | |
Sarkar et al. | A scalable artificial intelligence data pipeline for accelerating time to insight | |
US20230205784A1 (en) | Action ordering | |
CN102790652A (en) | Data communication system and method | |
CN115237597A (en) | Data processing method, device, system, equipment and storage medium | |
CN113283596A (en) | Model parameter training method, server, system and storage medium | |
US20230004787A1 (en) | Distributed Deep Learning System | |
KR101576107B1 (en) | Systems and methods for data synchronization in a network application | |
CN112751789A (en) | Method and system for realizing asymmetric SDN controller cluster | |
JP5239752B2 (en) | Synchronous message issuing system, synchronous message issuing method, and synchronous message issuing program | |
CN112889031A (en) | Synchronization of data processing in a computing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |