KR102268588B1 - 분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법 - Google Patents

분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법 Download PDF

Info

Publication number
KR102268588B1
KR102268588B1 KR1020190111635A KR20190111635A KR102268588B1 KR 102268588 B1 KR102268588 B1 KR 102268588B1 KR 1020190111635 A KR1020190111635 A KR 1020190111635A KR 20190111635 A KR20190111635 A KR 20190111635A KR 102268588 B1 KR102268588 B1 KR 102268588B1
Authority
KR
South Korea
Prior art keywords
gradients
layer
layers
gradient
threshold
Prior art date
Application number
KR1020190111635A
Other languages
English (en)
Other versions
KR20210030103A (ko
Inventor
이재환
정현우
노백현
Original Assignee
한국항공대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국항공대학교산학협력단 filed Critical 한국항공대학교산학협력단
Priority to KR1020190111635A priority Critical patent/KR102268588B1/ko
Publication of KR20210030103A publication Critical patent/KR20210030103A/ko
Application granted granted Critical
Publication of KR102268588B1 publication Critical patent/KR102268588B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

분산 딥러닝 통신 데이터 감소 방법에 관한 것이며, 분산 딥러닝 통신 데이터 감소 방법은 (a) 상기 복수의 워커 중 어느 하나의 워커가, 상기 파라미터 서버로부터 전달 파라미터를 전달받는 단계; (b) 상기 어느 하나의 워커가, 상기 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산하는 단계; 및 (c) 상기 어느 하나의 워커가, 상기 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 상기 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하는 단계를 포함할 수 있다.

Description

분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법 {APPARATUS AND METHOD FOR DECREASING COMMUNICATION DATA FOR IMPROVEMENT OF BOTTLENECK IN DISTRIBUTED DEEP LEARNING}
본원은 분산 딥러닝(Distributed Deep Learning)에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법에 관한 것이다. 특히, 본원은 파라미터 서버 및 복수의 워커를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 장치 및 방법에 관한 것이다.
딥러닝(Deep Learning)은 다 계층 인공신경망(Artificial neural network) 기반의 기계학습 기술로서, 컴퓨터 비전, 음성인식, 자연어 처리 분야에서 인식 성능을 높이는데 중요한 역할을 한다. 딥러닝 기술을 통해 수천만장의 이미지를 학습하여 객체를 인식하고, 수천 시간의 음악 데이터를 학습해서 사람의 말을 알아듣게 처리하는 데에는 분산 환경에서의 딥러닝을 통한 딥러닝 가속화가 필수적이라 할 수 있다.
딥러닝의 연구가 활발히 진행되면서 모델의 크기가 커지고, 학습해야 할 데이터가 많아지면서 요구되는 컴퓨팅 사양이 높아지고 있으며, 이를 위해 딥러닝을 가속화하기 위한 방안으로 분산 딥러닝(Distributed Deep Learning)이 활용되고 있다.
일반적인 딥러닝 환경에서는 단일 머신(machine)을 이용하여 학습이 이루어지나, 분산 환경에서는 파라미터를 저장하고 업데이트하는 파라미터 서버(Parameter Server)와 손실 함수(Loss Function)에 대하여 그래디언트(gradient)를 계산하는 복수의 워커(Worker)로 학습이 이루어진다.
즉, 분산 딥러닝은 파라미터를 저장하고 업데이트하는 파라미터 서버와 손실 함수에 대해서 각 파라미터에 해당하는 그래디언트를 계산하는 복수의 워커로 이루어진다.
이러한 분산 딥러닝에서 데이터 병렬화(Data parallelism)를 이용해 딥러닝을 가속화하기 위하여 워커의 수를 늘리게 되면, 파라미터 서버와 워커 간의 통신 데이터의 총 양이 늘어나게 되어 병목(bottleneck)현상이 일어나게 된다.
병목현상은 통신에 많은 시간을 할애하게 하여 분산환경에서 데이터 병렬화를 통해 딥러닝을 가속화하는데 큰 장애요소가 된다. 즉, 분산 딥러닝에서의 병목현상은 분산 환경을 통한 딥러닝 가속화가 제대로 이루어지지 못하게 하므로, 반드시 해결해야 할 과제로 여겨지고 있다.
다시 말해, 데이터 병렬화를 통해 다수의 컴퓨터를 이용한 분산 딥러닝에서는 파라미터 서버와 워커 간에 많은 데이터(예를들어, 그래디언트, 파라미터)를 통신으로 주고 받아야 하기 때문에, 통신에 의한 병목현상이 생겨 딥러닝을 가속화하는 데에 문제(장애)가 있다.
이를 위해, 그래디언트 압축을 위한 방안들이 종래에 제시된 바 있으나, 현재까지 제시된 종래의 압축 방법들은 계산량이 많음에 따라 반복 계산을 수행하는 트레이닝(training, 훈련)에서 많은 오버헤드(overhead)를 발생시키는 문제가 있다.
본원의 배경이 되는 기술은 [Dean, Jeffrey, et al. "Large scale distributed deep networks." Advances in neural information processing systems. 2012.] 문헌에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 데이터 병렬화를 위한 분산 환경에서의 딥러닝에서 워커의 수가 확장됨에 따라 발생하는 통신 데이터로 인한 병목현상을 개선할 수 있는 분산 딥러닝 통신 데이터 감소 장치 및 방법을 제공하려는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 분산 딥러닝에서 병목현상을 개선하면서 트레이닝(training, 훈련)을 가속화시키고 오버헤드(overhead)를 줄일 수 있는 분산 딥러닝 통신 데이터 감소 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 파라미터 서버 및 복수의 워커를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 방법은, (a) 상기 복수의 워커 중 어느 하나의 워커가, 상기 파라미터 서버로부터 전달 파라미터를 전달받는 단계; (b) 상기 어느 하나의 워커가, 상기 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산하는 단계; 및 (c) 상기 어느 하나의 워커가, 상기 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 상기 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하는 단계를 포함할 수 있다.
또한, 상기 (c) 단계는, 상기 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산하고, 상기 그래디언트 임계 기준에 의해, 상기 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달할 수 있다.
또한, 상기 (c) 단계에서 상기 어느 하나의 워커는, 상기 그래디언트 임계 기준을 불충족하는 레이어가 존재하면, 상기 그래디언트 임계 기준을 불충족하는 레이어를 드랍핑 레이어로서 드랍하고 상기 드랍핑 레이어에 대응하는 그래디언트들을 로컬 캐쉬에 누적하는 형태로 저장하고, 상기 (a) 단계 내지 상기 (c) 단계의 반복 수행을 통해 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 상기 파라미터 서버로 전달할 수 있다.
또한, 상기 (a) 단계 내지 상기 (c) 단계는 복수회 반복 수행될 수 있다.
또한, n번째 반복 수행시 (a) 단계에서 상기 파라미터 서버로부터 전달받는 전달 파라미터는, (n-1)번째 반복 수행시 (c) 단계에서 상기 파라미터 서버로 전달된 레이어에 대응하는 그래디언트들을 기초로 업데이트된 파라미터일 수 있다.
또한, 상기 임계값은, 상기 복수의 레이어에 포함되는 그래디언트들의 개수의 총합을 기준으로 미리 설정된 그래디언트 드랍핑 비율을 고려하여 결정될 수 있다.
또한, 상기 (c) 단계에서 상기 어느 하나의 워커는, 상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 상기 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍으로 저장하고, 상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 크기 순으로 정렬한 다음, 상기 미리 설정된 그래디언트 드랍핑 비율에 대응하는 임계 레이어의 그래디언트들의 평균인 후보 임계값에 기초하여 상기 임계값을 결정할 수 있다.
또한, 상기 후보 임계값은 복수회 반복 수행되는 상기 (c) 단계를 이용하여 미리 설정된 개수만큼 산출되고, 상기 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값에 기초하여 결정될 수 있다.
또한, 상기 임계값은 후보 임계값에 1 내지 1.5의 값을 갖는 상수를 곱하여 결정될 수 있다.
한편, 본원의 일 실시예에 따른 파라미터 서버 및 복수의 워커를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 장치는, 상기 파라미터 서버로부터 전달 파라미터를 전달받는 수신부; 상기 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산하는 계산부; 및 상기 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 상기 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하는 전달부를 포함할 수 있다.
또한, 상기 전달부는, 상기 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산하고, 상기 그래디언트 임계 기준에 의해, 상기 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달할 수 있다.
또한, 상기 전달부는, 상기 그래디언트 임계 기준을 불충족하는 레이어가 존재하면, 상기 그래디언트 임계 기준을 불충족하는 레이어를 드랍핑 레이어로서 드랍하고 상기 드랍핑 레이어에 대응하는 그래디언트들을 로컬 캐쉬에 누적하는 형태로 저장하고, 상기 수신부에 의해 상기 전달 파라미터를 전달받는 과정, 상기 계산부에 의해 상기 그래디언트를 계산하는 과정 및 상기 전달부에 의해 상기 파라미터 서버로 전달하는 과정의 반복 수행을 통해 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 상기 파라미터 서버로 전달할 수 있다.
또한, 상기 수신부에 의해 상기 전달 파라미터를 전달받는 과정, 상기 계산부에 의해 상기 그래디언트를 계산하는 과정 및 상기 전달부에 의해 상기 파라미터 서버로 전달하는 과정은 복수회 반복 수행될 수 있다.
또한, n번째 반복 수행시 수신부에서 상기 파라미터 서버로부터 전달받는 전달 파라미터는, (n-1)번째 반복 수행시 전달부에서 상기 파라미터 서버로 전달된 레이어에 대응하는 그래디언트들을 기초로 업데이트된 파라미터일 수 있다.
또한, 상기 임계값은, 상기 복수의 레이어에 포함되는 그래디언트들의 개수의 총합을 기준으로 미리 설정된 그래디언트 드랍핑 비율을 고려하여 결정될 수 있다.
또한, 상기 전달부는, 상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 상기 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍으로 저장하고, 상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 크기 순으로 정렬한 다음, 상기 미리 설정된 그래디언트 드랍핑 비율에 대응하는 임계 레이어의 그래디언트들의 평균인 후보 임계값에 기초하여 상기 임계값을 결정할 수 있다.
또한, 상기 후보 임계값은 복수회 반복 수행되는 상기 전달부에 의한 상기 파라미터 서버로 전달하는 과정을 이용하여 미리 설정된 개수만큼 산출되고, 상기 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값에 기초하여 결정될 수 있다.
또한, 상기 임계값은 후보 임계값에 1 내지 1.5의 값을 갖는 상수를 곱하여 결정될 수 있다.
또한, 상기 분산 딥러닝 통신 데이터 감소 장치는, 상기 복수의 워커 중 어느 하나의 워커일 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 분산 딥러닝 통신 데이터 감소 장치의 제공을 통해, 분산 딥러닝에서 병목현상을 개선하면서 트레이닝(training, 훈련)을 가속화하고 오버헤드(overhead)를 줄일 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 복수의 레이어 중 드랍핑 레이어에 대응하는 그래디언트들이 파라미터 서버로 전달되지 않도록 함에 따라 워커와 파라미터 서버 간의 통신 데이터를 줄일 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 그래디언트의 축적을 이용(즉, 축적 그래디언트들을 이용)함으로써 드랍핑에 의한 손실을 줄일 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치가 적용되는 분산 딥러닝의 구조를 개략적으로 나타낸 도면이다.
도 2는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치의 개략적인 구성을 나타낸 도면이다.
도 3은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치에서 복수의 레이어 중 드랍핑 레이어에 대한 드랍핑이 수행되기 전(a)과 후(b)의 레이어의 변화 예를 나타낸 도면이다.
도 4는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치와 파라미터 서버 간의 데이터 흐름을 개략적으로 나타낸 도면이다.
도 5는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치에서 임계값을 결정하는 과정을 설명하기 위한 도면이다.
도 6은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 방법에 대한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본원은 분산 딥러닝(Distributed Deep Learning)에서 병목(bottleneck)현상 개선을 위한 통신 데이터 감소 장치 및 방법에 대하여 제안한다. 특히, 본원은 파라미터 서버(Parameter Server) 및 복수의 워커(Worker)를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 장치 및 방법에 대하여 제안한다.
도 1은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10)가 적용되는 분산 딥러닝의 구조를 개략적으로 나타낸 도면이다. 달리 표현해, 도 1은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10)에서 고려되는 파라미터 서버와 복수의 워커의 구조를 개략적으로 나타낸 도면이다. 도 2는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10)의 개략적인 구성을 나타낸 도면이다.
이하에서는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10)를 설명의 편의상 본 장치(10)라 하기로 한다.
도 1 및 도 2를 참조하면, 본 장치(10)가 적용되는 분산 딥러닝(Distributed Deep Learning)은 파라미터를 저장하고 업데이트하는 파라미터 서버(Parameter Server, 100), 및 손실 함수(Loss Function)에 대해서 각 파라미터에 해당하는 그래디언트를 계산하는 복수의 워커(Worker)(10, 20, 30, 40, …)를 포함하는 구조로 이루어질 수 있다.
분산 딥러닝에서 데이터 병렬화(Data parallelism)를 이용해 딥러닝을 가속화함에 있어서, 파라미터 서버(100)는 복수의 레이어를 포함하는 딥러닝 모델을 가질 수 있다. 여기서, 파라미터 서버(100)에 포함된 딥러닝 모델은 원본 딥러닝 모델이라 달리 표현될 수 있다. 파라미터 서버(100)는 원본 딥러닝 모델과 관련하여 복수의 레이어를 포함할 수 있다.
또한, 복수의 워커(10, 20, 30, 40, …) 각각은 파라미터 서버(100)에 포함된 딥러닝 모델(즉, 원본 딥러닝 모델)에 대한 복제된 딥러닝 모델을 포함할 수 있다. 여기서, 각 워커에 포함된 딥러닝 모델은 복제 딥러닝 모델이라 달리 표현될 수 있다. 즉, 각 워커는 복제 딥러닝 모델과 관련하여 복수의 레이어를 포함할 수 있다.
파라미터 서버(100)는 딥러닝 모델(원본 딥러닝 모델)의 파라미터를 저장하고 업데이트할 수 있다. 파라미터 서버(100)는 손실 함수와 관련한 학습 수행시 이용 가능한 파라미터를 생성하고, 생성된 파라미터를 전달 파라미터로서 복수의 워커(10, 20, 30, 40, …) 각각에게 제공(전달)할 수 있다.
복수의 워커(10, 20, 30, 40, …) 각각은 원본 딥러닝 모델을 복제한 복제 딥러닝 모델을 가질 수 있다. 복수의 워커(10, 20, 30, 40, …) 각각은 자신이 갖는 복제 딥러닝 모델과 파라미터 서버(100)로부터 전달받은 전달 파라미터를 기반으로, 기 할당된 학습 데이터(자신에게 할당된 데이터)의 학습을 수행할 수 있으며, 이를 통해 전달 파라미터를 기초로 복제 딥러닝 모델에 포함된 복수의 레이어 각각에 대한 그래디언트를 계산할 수 있다.
복수의 워커(10, 20, 30, 40, …) 각각은 컴퓨팅이 가능한 장치로서, 예시적으로 데스크탑 PC, 노트북, 태블릿, 휴대폰, 스마트폰, 이동통신 단말기, PDA(personal digital assistant) 등일 수 있으며, 이에 한정된 것은 아니다.
복수의 워커(10, 20, 30, 40, …)와 파라미터 서버(100) 간에는 네트워크를 통해 연결될 수 있으며, 네트워크를 통해 서로 통신을 수행할 수 있다.
네트워크의 일예로는 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC(Near Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함될 수 있으며, 이에 한정된 것은 아니다.
본 장치(10)는 파라미터 서버(100) 및 복수의 워커(10, 20, 30, 40, …)를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 장치일 수 있다.
본 장치(10)는 복수의 워커(10, 20, 30, 40, …) 중 어느 하나의 워커일 수 있다. 즉, 본 장치(10)는 워커(10)일 수도 있고, 워커(20)일 수도 있고, 워커(30)일 수도 있다.
복수의 워커(10, 20, 30, 40, …) 각각은 파라미터 서버(100)로부터 전달받은 파라미터에 해당하는 그래디언트(그래디언트들)를 계산하고, 계산된 그래디언트 중 일부의 그래디언트를 파라미터 서버(100)로 전달할 수 있다. 이때, 복수의 워커(10, 20, 30, 40, …) 각각은 후술하는 그래디언트 임계 기준을 고려하여, 계산된 그래디언트 중 일부의 그래디언트를 파라미터 서버(100)로 전달할 수 있다.
복수의 워커(10, 20, 30, 40, …) 각각은 로컬 캐쉬(Local cache)를 가지고 있으며, 계산된 그래디언트 중 파라미터 서버(100)로 전달되지 않은 그래디언트들을 누적하는 형태로 저장할 수 있다. 여기서, 파라미터 서버(100)로 전달되지 않은 그래디언트들은, 계산된 그래디언트 중 파라미터 서버(100)로 전달된 일부의 그래디언트를 제외한 나머지 그래디언트를 의미할 수 있다.
이하에서는 설명의 편의상, 본 장치(10)가 복수의 워커(10, 20, 30, 40, …) 중 어느 하나의 워커로서 워커(10)인 것으로 설명하기로 한다. 따라서, 이하 생략된 내용이라고 하더라도 본 장치(10)에 대하여 설명된 내용은 복수의 워커(10, 20, 30, 40, …) 각각에 대한 설명에도 동일하게 적용될 수 있다. 본 장치(10, 워커)에 대한 보다 구체적인 설명은 다음과 같다.
본 장치(10)는 수신부(11), 계산부(12) 및 전달부(13)를 포함할 수 있다. 또한, 본 장치(100)는 로컬 캐쉬(Local cache, 14)를 포함할 수 있다.
수신부(11)는 파라미터 서버(100)로부터 전달 파라미터를 전달받을 수 있다. 여기서, 전달 파라미터는 파라미터 서버(100)로부터 전달되는 파라미터로서, 손실 함수(Loss Function)에 관한 파라미터를 의미할 수 있다. 파라미터는 가중치(weight)와 편향(bias)을 포함하며, 매개변수라 달리 표현될 수 있다. 다시 말해, 전달 파라미터는 손실 함수를 최소화하기 위한 학습 수행시 이용되는, 파라미터 서버(100)에 의해 생성된 파라미터를 의미할 수 있다.
계산부(12)는 수신부(11)에서 전달받은 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트(gradient)를 계산할 수 있다.
본 장치(10)는 복수의 레이어를 포함하는 딥러닝 모델(복제 딥러닝 모델)을 포함할 수 있다. 계산부(12)는 본 장치(10)에 포함된 딥러닝 모델(복제 딥러닝 모델)에 대응하는 복수의 레이어를 이용하여, 파라미터 서버(100)로부터 전달받은 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산할 수 있다.
또한, 계산부(12)에 의하여 복수의 레이어 각각에 대한 그래디언트가 계산된 경우, 그래디언트가 계산된 레이어는 그래디언트 레이어라 달리 지칭될 수 있다.
전달부(13)는 계산부(12)에서의 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 파라미터 서버(100)로 전달할 수 있다.
전달부(13)는, 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산하고, 그래디언트 임계 기준에 의해, 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 파라미터 서버(100)로 전달할 수 있다. 여기서, 임계값의 결정 과정에 대한 보다 구체적인 설명은 후술하여 설명하기로 한다.
이에 따르면, 그래디언트 임계 기준이라 함은, 복수의 레이어 중 어느 한 레이어에 있어서, 어느 한 레이어에 포함된 그래디언트들의 평균이 임계값을 넘는 조건(임계값 이상인 조건)에 관한 기준을 의미할 수 있다.
전달부(13)는 복수의 레이어 중 어느 한 레이어에 포함된 그래디언트들의 평균이 임계값을 넘는 경우(즉, 임계값 이상인 경우), 그래디언트들의 평균이 임계값을 넘는 어느 한 레이어를 그래디언트 임계 기준을 충족하는 레이어인 것으로 판단할 수 있다. 이후, 전달부(13)는 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달할 수 있다.
본 장치(10)에서, 수신부(11)에 의해 파라미터 서버(100)로부터 전달 파라미터를 전달받는 과정, 계산부(12)에 의해 복수의 레이어 각각에 대한 그래디언트를 계산하는 과정, 및 전달부(13)에 의해 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하는 과정은 복수회 반복 수행될 수 있다.
이하에서는 설명의 편의상, 수신부(11)에 의해 파라미터 서버(100)로부터 전달 파라미터를 전달받는 과정을 제1 과정이라 하기로 한다. 또한, 계산부(12)에 의해 복수의 레이어 각각에 대한 그래디언트를 계산하는 과정을 제2 과정이라 하기로 한다. 또한, 전달부(13)에 의해 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하는 과정을 제3 과정이라 하기로 한다. 이에 따르면, 본 장치(10)는 제1 과정 내지 제3 과정을 복수회 반복 수행할 수 있다.
전달부(13)가 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달한 이후, 파라미터 서버(100)는 전달부(13)로부터 전달받은 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 기반으로 새롭게 신규 전달 파라미터를 생성할 수 있다.
파라미터 서버(100)는 생성된 신규 전달 파라미터를 본 장치(10)로 제공(전달)할 수 있다. 이후, 본 장치(10)의 수신부(11)는 파라미터 서버(100)로부터 제공되는 신규 전달 파라미터를 전달 파라미터(특히, 업데이트된 파라미터, 업데이트된 전달 파라미터)로서 전달받을 수 있다. 이후, 파라미터 서버(100)로부터 제공되는 신규 전달 파라미터에 응답하여, 본 장치(10)는 신규 전달 파라미터를 기초로 상술한 제1 과정 내지 제3 과정을 반복 수행할 수 있다.
달리 표현하면, 본 장치(10)에서 제1 과정 내지 제3 과정이 복수회 반복 수행됨에 있어서, n번째 반복 수행시 수신부(11)에서 파라미터 서버(100)로부터 전달받는 전달 파라미터는, (n-1)번째 반복 수행시 전달부(13)에서 파라미터 서버(100)로 전달된 레이어에 대응하는 그래디언트들을 기초로 업데이트된 파라미터일 수 있다.
한편, 전달부(13)는 복수의 레이어 중 어느 한 레이어에 포함된 그래디언트들의 평균이 임계값을 넘지 않는 경우(즉, 임계값 미만인 경우), 그래디언트들의 평균이 임계값을 넘지 않는 어느 한 레이어를 그래디언트 임계 기준을 충족하지 않는(불충족하는) 레이어인 것으로 판단할 수 있다. 이후, 전달부(13)는 그래디언트 임계 기준을 불충족하는 레이어(즉, 드랍핑 레이어)에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하지 않을 수 있다.
여기서, 복수의 레이어 중 그래디언트 임계 기준을 불충족하는 레이어(즉, 그래디언트들의 평균이 임계값을 넘지 않는 레이어)는 드랍핑(dropping) 레이어라 지칭될 수 있다.
전달부(13)는 복수의 레이어 내에 그래디언트 임계 기준을 불충족하는 레이어가 존재하면, 그래디언트 임계 기준을 불충족하는 레이어를 드랍핑 레이어로서 드랍(drop)하고, 드랍핑 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하는 것이 아니라 로컬 캐쉬(14)에 누적하는 형태로 저장할 수 있다.
즉, 전달부(13)는 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘지 않는 레이어(특히, 임계값을 넘지 않는 레이어에 대응하는 그래디언트들)를 파라미터 서버(100)로 전달하지 않고 로컬 캐쉬(14)에 누적되도록 저장하여 축적시킬 수 있다.
로컬 캐쉬(14)는 그래디언트들의 저장이 가능한 저장부로서, 예시적으로 메모리, 고속 저장매체(일예로 SSD) 등일 수 있으나, 이에 한정되는 것은 아니다.
전달부(13)는 수신부(11)에 의해 전달 파라미터를 전달받는 과정(제1 과정), 계산부(12)에 의해 그래디언트를 계산하는 과정(제2 과정), 및 전달부(13)에 의해 파라미터 서버(100)로 전달하는 과정(제3 과정)의 반복 수행을 통해 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달할 수 있다.
여기서, 전달부(13)가 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달한 이후, 파라미터 서버(100)는 전달부(13)로부터 전달받은 누적된 축적 그래디언트들을 기반으로 새롭게 신규 전달 파라미터를 생성할 수 있다.
파라미터 서버(100)는 생성된 신규 전달 파라미터를 본 장치(10)로 제공(전달)할 수 있다. 이후, 본 장치(10)의 수신부(11)는 파라미터 서버(100)로부터 제공되는 신규 전달 파라미터를 전달 파라미터(특히, 업데이트된 파라미터, 업데이트된 전달 파라미터)로서 전달받을 수 있다. 이후, 파라미터 서버(100)로부터 제공되는 신규 전달 파라미터에 응답하여, 본 장치(10)는 신규 전달 파라미터를 기초로 상술한 제1 과정 내지 제3 과정을 반복 수행할 수 있다.
딥러닝 학습을 수행함에 있어서 크기가 작은 그래디언트들은 파라미터의 변화에 많은 영향을 미치지 않으며, 복수의 레이어 중 어느 한 레이어에 포함된 그래디언트들은 그 크기가 비슷하게 나타난다.
이에 착안하여, 본 장치(10)의 전달부(13)는 복수의 레이어 중 어느 하나의 레이어에 포함된 그래디언트들의 평균이 임계값을 넘지 않으면(즉, 어느 하나의 레이어가 드랍핑 레이어인 것으로 판단되면), 임계값을 넘지 않는 레이어(즉, 드랍핑 레이어)를 드랍핑할 수 있다.
즉, 본 장치(10)는 분산 딥러닝에서 병목현상을 개선하기 위해, 복수의 레이어(10) 중 드랍핑 레이어에 해당하는 레이어(그래디언트 레이어)를 선택적으로 드랍핑할 수 있다.
여기서, 임계값을 넘지 않는 레이어(즉, 드랍핑 레이어)를 드랍핑한다는 것은, 복수의 레이어 중 드랍핑 레이어에 해당하는 레이어(그래디언트 레이어)를 드랍핑시킨다는 것을 의미할 수 있겠으나, 보다 바람직하게는 전달부(13)가 드랍핑 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하지 않는 것을 의미할 수 있다.
도 3은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10)에서 복수의 레이어 중 드랍핑 레이어에 대한 드랍핑이 수행되기 전(a)과 후(b)의 레이어(그래디언트 레이어)의 변화 예를 나타낸 도면이다.
도 3을 참조하면, 계산부(12)는 파라미터 서버(100)로부터 전달받은 전달 파라미터를 기초로, 복수의 레이어(Layer 1, Layer 2, Layer3, Layer 4, … , Layer n-2, Layer n-1, Layer n) 각각에 대한 그래디언트를 계산할 수 있다.
이때, 전달부(13)는 복수의 레이어(Layer 1, Layer 2, Layer3, Layer 4, …, Layer n-2, Layer n-1, Layer n) 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산할 수 있다. 이에 따라, 복수의 레이어(Layer 1, Layer 2, Layer3, Layer 4, …, Layer n-2, Layer n-1, Layer n) 각각마다의 그래디언트들의 평균이 계산(산출)될 수 있다.
이때, 전달부(13)는 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘지 않는 레이어(즉, 그래디언트 임계 기준을 불충족하는 레이어)를 드랍핑 레이어로 판단할 수 있다. 예시적으로, 복수의 레이어(Layer 1, Layer 2, Layer3, Layer 4, …, Layer n-2, Layer n-1, Layer n) 중 드랍핑 레이어는 제3 레이어(Layer3), 제4 레이어(Layer 4) 및 제n-1 레이어(Layer n-1)일 수 있다.
전달부(13)는 복수의 레이어 중 그래디언트 임계 기준을 기반으로 식별된 드랍핑 레이어(Layer3, Layer 4, Layer n-1)에 대하여 드랍핑을 수행할 수 있다. 달리 표현해, 전달부(13)는 드랍핑 레이어에 대한 드랍핑 수행을 통해, 드랍핑 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하지 않을 수 있다.
이때, 본 장치(10)를 설명함에 있어서, 그래디언트 임계 기준을 기반으로 복수의 레이어 중에서 식별된 드랍핑 레이어(즉, 그래디언트들의 평균이 임계값 미만인 레이어)를 처리하는 과정(즉, 파라미터 서버로 전달하지 않고 로컬 캐쉬에 누적하는 형태로 저장하는 과정)은, 그래디언트 필터링(Gradient Filtering) 과정 혹은 레이어 필터링 과정이라 달리 표현될 수 있다.
이러한 드랍핑을 통해, 본 장치(10)는 복수의 레이어 중 드랍핑 레이어에 대응하는 그래디언트들이 파라미터 서버(100)로 전달되지 않도록 함에 따라(즉, 파라미터 서버로 보내지지 않도록 함에 따라), 본 장치(10, 즉 워커)와 파라미터 서버(100) 간의 통신 데이터를 줄일 수 있다.
이때, 전달부(13)는 복수의 레이어 중 파라미터 서버(100)로 보내지지 않은 그래디언트 레이어(달리 표현하여, 파라미터 서버로 전달되지 않은 드랍핑 레이어에 대응하는 그래디언트들)를 버리는 것이 아니라, 이를 본 장치(10, 워커) 내 로컬 캐쉬(14)에 누적하는 형태로 저장하여 축적시킬 수 있다.
여기서, 전달부(13)는 로컬 캐쉬(14)에 축적된 레이어의 그래디언트 평균이 임계값을 넘으면, 임계값을 넘는 축적된 그래디언트들을 파라미터 서버(100)로 전달할 수 있다. 달리 표현하여, 전달부(13)는 제1 과정 내지 제3 과정의 반복 수행을 통해 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘으면, 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달할 수 있다.
다시 말해, 전달부(13)는 복수의 레이어 중 드랍핑 레이어(즉, 그래디언트들의 평균이 임계값을 넘지 않는 파라미터 서버로 그래디언트들이 전달되지 않은 드랍핑 레이어)에 대응하는 그래디언트들을 로컬 캐쉬(14)에 누적하는 형태로 축적시킬 수 있다. 이때, 전달부(13)는 로컬 캐쉬(14)에 누적된 축적 그래디언트들의 평균이 임계값을 넘으면, 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달할 수 있다. 이러한 본 장치(10)는 그래디언트의 축적을 이용(즉, 축적 그래디언트들을 이용)함으로써 드랍핑에 의한 손실을 줄일 수 있다. 이로부터, 본 장치(10)는 분산 딥러닝에서 병목현상을 개선하면서 트레이닝을 가속화할 수 있다.
로컬 캐쉬(14)에 누적되는 축적 그래디언트들에 대한 보다 상세한 설명은 다음과 같다. 즉, 본 장치(10)에서 그래디언트 필터링(Gradient Filtering) 과정의 수행을 통해 구현 가능한 레이어 압축 및 그래디언트 축적 방식은 다음과 같을 수 있다.
복수의 레이어를 이용해 제1 과정 내지 제3 과정이 반복 수행될 때, 복수의 레이어 중 어느 하나의 레이어(예시적으로, 제1 레이어)에 대응하는 그래디언트들의 수가 N개라고 하자. 즉, 복수의 레이어 중 어느 하나의 레이어(예시적으로, 제1 레이어)에 N개의 그래디언트가 포함되어 있다고 하자.
이때, N개의 그래디언트 중 i번째 그래디언트를 gradients(t)i 라 하고, 어느 하나의 레이어(예시적으로, 제1 레이어)에 해당하는 축적된 그래디언트 N개 중 i번째 축적된 그래디언트를 accum(t)i라 하는 경우, i번째 축적된 그래디언트는 하기 식 1을 만족할 수 있다.
[식 1]
Figure 112019092735639-pat00001
구체적인 예로, 제1 과정 내지 제3 과정이 t회 반복 수행되고, 제1 레이어가 드랍핑 레이어라고 하자. 이러한 경우, 전달부(13)는 제1 과정 내지 제3 과정이 t번째 수행될 때, 제1 레이어에 대응하는 그래디언트들(N개의 그래디언트)을 로컬 캐쉬(14)에 누적하는 형태로 저장할 수 있다.
이때, t번째에, 로컬 캐쉬(14)에 누적 형태로 저장되는 N개의 그래디언트 중 i번째 그래디언트를 gradients(t)i 라 하자. 전달부(13)는 i번째 그래디언트인 gradients(t)i 를 로컬 캐쉬(14)에 누적하는 형태로 저장할 수 있으며, 이에 응답하여, t회의 반복 수행 동안 제1 레이어에 대응하여 로컬 캐쉬(14)에 누적 저장되어 있는 그래디언트들에 대한 전체 누적(축적) 그래디언트인 accum(t)I 를 산출할 수 있다.
즉, t회째의 과정에서 i번째 그래디언트 gradients(t)i 가 로컬 캐쉬(14)에 누적 형태로 저장되는 경우, 전달부(13)는 로컬 캐쉬(14) 내에 제1 레이어(드랍핑 레이어)에 대응하여 누적 저장되어 있는 그래디언트들 전체에 대한 축적 그래디언트로서, i 번째 그래디언트까지의 축적 그래디언트 값을 나타내는 accum(t)i를 산출할 수 있다.
이때, t회째에 산출되는 i번째 그래디언트까지의 축적 그래디언트인 accum(t)i는, 상기 식 1과 같이 accum(t-1)igradients(t)i를 더함으로써 산출될 수 있다. 여기서, accum(t-1)i 는 t회째에 i번째 그래디언트인 gradients(t)i가 로컬 캐쉬(14)에 저장되기 이전에, 제1 과정 내지 제3 과정을 (t-1)회째까지 반복 수행함으로써 로컬 캐쉬(14)에 누적 저장되어 있는 그래디언트들의 전체에 대한 축적 그래디언트를 의미할 수 있다.
다시 말해, 제1 레이어(드랍핑 레이어)에 대응하여 로컬 캐쉬(14)에 누적된 축적 그래디언트들은 accum(t)i와 같이 표현될 수 있다. 이때, 전달부(13)는 제1 레이어(드랍핑 레이어)에 대응하는 그래디언트들(N개의 그래디언트)을 로컬 캐쉬(14)에 누적하는 형태로 저장함에 있어서, 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 평균인 축적 평균이 하기 식 2를 만족하면, 드랍핑 레이어에 대응하는 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달할 수 있다.
[식 2]
Figure 112019092735639-pat00002
여기서, 좌변은 드랍핑 레이어에 대응하여 로컬 캐쉬(14)에 누적된 축적 그래디언트들의 평균인 축적 평균(즉, 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균)을 의미할 수 있다. 여기서, 임계값(Threshold)은 상수(constant)일 수 있다.
즉, 전달부(13)는 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것(임계값 이상인 것)으로 판단되면, 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달할 수 있다.
이에 따르면, 전달부(13)는 복수의 레이어 중에서 식별된 복수의 드랍핑 레이어와 관련하여, 로컬 캐쉬(14) 내에 복수의 드랍핑 레이어 각각에 대응하여 누적된 축적 그래디언트들 중 상기 식 2를 만족하는 레이어에 대응하여 누적된 축적 그래디언트들(즉, 식 2를 만족하는 레이어에 대응하는 축적 그래디언트들)만 파라미터 서버(100)로 전달할 수 있다.
이때, 전달부(13)는 복수의 드랍핑 레이어(혹은, 적어도 하나의 드랍핑 레이어) 중 식 2를 만족하는 레이어에 대응하는 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달한 이후에, 해당 레이어의 축적 그래디언트(즉, 파라미터 서버로 전달된 축적 그래디언트들에 대응하는 레이어에 대응하는 축적 그래디언트들)을 0으로 초기화할 수 있다.
도 4는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10, 워커)와 파라미터 서버(100) 간의 데이터 흐름을 개략적으로 나타낸 도면이다.
도 4를 참조하면, 파라미터 서버(100)와 본 장치(10, 워커)를 이용하여 복수의 레이어를 포함하는 신경망(신경망 모델)에 대하여 손실 함수의 값이 최소화되도록 하는 파라미터를 찾는 학습을 수행함에 있어서, 파라미터 서버(100)는 손실 함수에 대하여 학습 수행을 위한 파라미터(즉, 학습시 고려되는 파라미터)로서 초기 파라미터를 생성(Generate Intial Parameter)할 수 있다(S1).
파라미터 서버(100)는 단계S1에서 생성된 파라미터(초기 파라미터)를 본 장치(10)로 제공(전달)할 수 있다. 본 장치(10)의 수신부(11)는 파라미터 서버(100)로부터 제공되는 파라미터(초기 파라미터)를 전달 파라미터로서 전달받을 수 있다.
이후, 본 장치(10)의 계산부(12)는 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산(Compute Gradient)할 수 있다(S2). 이때, 단계S2에서 고려되는 복수의 레이어는 일예로 본 장치(10)에 포함된 복제 딥러닝 모델에 대응하는 복수의 레이어를 의미할 수 있다. 본 장치(10)의 로컬 캐쉬(14)에는 복수의 레이어 각각에 대응하는 축적 그래디언트들이 모두 0값(Accumulated_Grad = zeros)으로 설정되어 있을 수 있다(S3).
이후, 계산부(12)는 복수의 레이어 각각에 대하여(For Each Layer), 각 레이어에 대응하는 합계 그래디언트(new_grad)를 계산할 수 있다(S4).
여기서, 일예로 복수의 레이어 중 제1 레이어에 대응하는 합계 그래디언트(new_grad)는, 단계 S2에서 계산부(12)에 의하여 계산된 제1 레이어에 포함된 그래디언트들(Computed_Gradient)과 제1 레이어에 대응하는 축적 그래디언트(Accumulated_Grad)의 합을 통해 계산될 수 있다. 여기서, 제1 레이어에 대응하는 축적 그래디언트(Accumulated_Grad)라 함은, 로컬 캐쉬(14)에 제1 레이어에 대응하여 누적되어 있는 그래디언트들의 축적(누적) 값을 의미할 수 있다.
일예로, 앞서 단계 S3에서 복수의 레이어 각각에 대응하는 축적 그래디언트들이 모두 0값으로 설정되어 있음에 따라, 단계 S4에서 계산되는 제1 레이어에 대응하는 합계 그래디언트(new_grad)는 단계 S2에서 계산부(12)에 의하여 계산된 제1 레이어에 포함된 그래디언트들(Computed_Gradient)의 합에 대응하는 값으로 산출될 수 있다.
이처럼, 단계S4에서 전달부(13)는 복수의 레이어 각각에 대하여 합계 그래디언트(new_grad)를 계산할 수 있다.
이후, 전달부(13)는 복수의 레이어 각각에 대하여, 단계S4에서 계산된 복수의 레이어 각각에 포함된 그래디언트들(new grad)의 평균인 'Mean(new grad)'를 계산할 수 있다. 즉, 전달부(13)는 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산할 수 있다.
이후, 전달부(13)는 복수의 레이어 각각에 대하여 계산된 그래디언트들의 평균(즉, 'Mean(new grad)')이 임계값(Threshold)을 넘는지(즉, 임계값 이상인지) 여부를 판단할 수 있다(S5).
이때, 전달부(13)는 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대하여, 단계S6의 수행을 통해 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달할 수 있다(S8). 반면, 전달부(13)는 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘지 않는 레이어에 대해서는, 단계 S7을 수행하여 그래디언트들의 평균이 임계값을 넘지 않는 레이어(즉, 드랍핑 레이어)에 대응하는 그래디언트들을 로컬 캐쉬(14)에 누적하는 형태로 저장할 수 있다.
구체적으로, 복수의 레이어 중 제1 레이어를 기준으로 예를 들면 다음과 같다.
단계S5에서 전달부(13)는 제1 레이어에 대하여 계산된 그래디언트들의 평균이 임계값을 넘는지 여부를 판단할 수 있다.
이때, 제1 레이어에 대하여 계산된 그래디언트들의 평균이 임계값을 넘으면, 즉 S5의 조건('Mean(new grad) < Threshold'인 조건)을 만족하지 않으면(S5-No), 전달부(13)는 제1 레이어에 대응하는 그래디언트들(new_grad)을 파라미터 서버(100)로 전달(grad_to send)할 수 있다(grad_to send = new_grad)(S6). 이때 전달부(13)는 단계S6에서 제1 레이어에 대응하는 축적 그래디언트는 0으로 유지(Accumulated_Grad = zeros)할 수 있다.
즉, 단계S6의 수행을 기반으로, 전달부(13)는 제1 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달할 수 있다(S8).
반면, 제1 레이어에 대하여 계산된 그래디언트들의 평균이 임계값을 넘지 않으면, 즉 S5의 조건('Mean(new grad) < Threshold'인 조건)을 만족하면(S5-Yes), 전달부(13)는 단계S5의 조건을 만족하는 제1 레이어를 드랍핑 레이어로 인식할 수 있다.
이에 따라, 전달부(13)는 드랍핑 레이어인 제1 레이어에 대응하는 그래디언트들을 파라미터 서버(100)로 전달하지 않을 수 있다(grad_to send = [0])(S7). 달리 표현하여, 전달부(13)는 단계S7의 수행을 통해, 드랍핑 레이어인 제1 레이어에 대응하는 그래디언트들를 0 값으로 반영(grad_to send = [0])하여 파라미터 서버(100)로 전달(S8)하라 수 있다.
이때, 단계S7에서 전달부(13)는 파라미터 서버(100)로 전달되지 않은 제1 레이어에 대응하는 그래디언트들(new_grad)을 로컬 캐쉬(14)에 누적하는 형태로 저장할 수 있다. 이러한 단계S7에 의하면, 제1 레이어에 대응하는 축적 그래디언트는 초기 0 값에서 제1 레이어에 대응하는 그래디언트들(new_grad)의 값으로 업데이트(Accumulated_Grad = new_grad)될 수 있으며, 이는 단계 S3에 반영될 수 있다.
즉, 단계S5를 기반으로 한 그래디언트 필터링(Gradient Filtering) 과정 혹은 레이어 필터링 과정의 수행을 통해, 전달부(13)는 그래디언트 임계 기준을 충족하는 레이어들(즉, 복수의 레이어 중 그래디언트들의 평균이 임계값 이상인 레이어)에 대응하는 그래디언트들을 파라미터 서버(100)로 전달할 수 있다(S8). 반면, 그래디언트 임계 기준을 충족하지 않는 레이어들(즉, 복수의 레이어 중 그래디언트들의 평균이 임계값 미만인 레이어)에 대응하는 그래디언트들은 로컬 캐쉬(14)에 저장하여 축적시킬 수 있다.
또한, 전달부(13)는 복수의 레이어 중 축적 그래디언트들의 축적 평균이 임계값 이상인 레이어들에 대응하는 그래디언트들(즉, 임계값 이상인 레이어들에 대응하여 누적된 축적 그래디언트들)을 파라미터 서버(100)로 전달할 수 있다(S8).
이후, 파라미터 서버(100)는 단계S8의 수행을 통해 본 장치(10)로부터 전달받은 그래디언트들을 기반으로 새로운 신규 파라미터를 생성할 수 있으며(S13), 생성된 신규 파라미터를 다시 본 장치(10, 워커)로 제공(전달)할 수 있다. 이때, 파라미터 서버(100)에서 새롭게 생성된 신규 파라미터는 업데이트된 파라미터(Updated Parameter)라 달리 지칭될 수 있다.
이후, 본 장치(10, 워커)는 파라미터 서버(100)에서 새롭게 생성된 신규 파라미터를 전달 파라미터(특히, 업데이트된 파라미터, 업데이트된 전달 파라미터)로서 파라미터 서버(100)로부터 전달받을 수 있다. 이후, 본 장치(10)는 업데이트된 파라미터(업데이트된 전달 파라미터)를 기반으로 다시 단계 S2 내지 단계S8의 과정을 수행할 수 있다.
구체적으로, 복수의 레이어 중 제1 레이어를 기준으로 예를 들면 다음과 같다.
파라미터 서버(100)는 단계S8의 수행을 통해 본 장치(100)로부터 제1 레이어에 대응하는 그래디언트들과 관련된 데이터로서 'grad_to send = [0]'를 전달받은 경우(달리 표현해, 본 장치가 제1 레이어에 대응하는 그래디언트들을 파라미터 서버로 전달하지 않은 경우)(S9-Yes), 파라미터 서버(100)에 포함된 복수의 레이어 중 제1 레이어에 대한 그래디언트들을 0 값으로 만들 수 있다(S10). 여기서, 파라미터 서버(100)에 포함된 복수의 레이어라 함은 일예로 원본 딥러닝 모델에 대응하는 복수의 레이어를 의미할 수 있다.
이후, 파라미터 서버(100)는 단계S10에서 변경된 그래디언트들의 값을 파라미터 서버(100)에 포함된 복수의 레이어에 대하여 적용(S11)하고, 이를 기반으로 새로운 신규 파라미터로서 업데이트된 파라미터를 생성할 수 있다(S13).
한편, 파라미터 서버(100)는 단계S8의 수행을 통해 본 장치(100)로부터 제1 레이어에 대응하는 그래디언트들과 관련된 데이터로서 'grad_to send = new_grad'를 전달받은 경우(달리 표현해, 본 장치가 제1 레이어에 대응하는 그래디언트들을 파라미터 서버로 전달한 경우)(S9-No), 본 장치(100)로부터 전달받은 제1 레이어에 대응하는 그래디언트들의 값을 파라미터 서버(100)에 포함된 복수의 레이어에 대하여 적용(S11)할 수 있다. 이를 기반으로, 파라미터 서버(100)는 새로운 신규 파라미터로서 업데이트된 파라미터를 생성할 수 있다(S13).
상술한 설명에서, 단계 S1 내지 S13은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
이하에서는 본 장치(10)에서 고려되는 임계값(Threshold) 결정 과정에 대하여 보다 상세히 설명하기로 한다.
전달부(13)는 그래디언트 임계 기준에 의해, 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 파라미터 서버(100)로 전달할 수 있다. 또한, 전달부(13)는 제1 과정 내지 제3 과정의 반복 수행을 통해 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 파라미터 서버(100)로 전달할 수 있다.
여기서, 임계값은 복수의 레이어에 포함되는 그래디언트들의 개수의 총합을 기준으로 미리 설정된 그래디언트 드랍핑 비율(R)을 고려하여 결정될 수 있다. 임계값 결정 과정에 대한 설명은 도 5를 참조하여 보다 쉽게 이해될 수 있다.
도 5는 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 장치(10)에서 임계값을 결정하는 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 전달부(13)는 임계값 결정 과정의 수행을 위해 후술하는 임계값 산출 과정을 미리 설정된 수에 대응하는 횟수만큼 복수회 수행(loop for x-step)할 수 있다. 이때, 전달부(13)는 복수회의 임계값 산출 과정(loop for x-step)을 통해 산출된 복수개의 임계값(즉, 복수개의 후보 임계값)을 기반으로 임계값을 결정할 수 있다.
특히, 전달부(13)는 산출된 복수개의 임계값(복수개의 후보 임계값) 중 가장 큰 값을 가지는 임계값(후보 임계값)에 기 설정된 상수를 곱할 수 있다. 전달부(13)는 가장 큰 값을 가지는 임계값(후보 임계값)에 기 설정된 상수를 곱하여 산출된 값을 임계값으로 결정할 수 있으며, 이를 통해 임계값을 고정시킬 수 있다.
전달부(13)는 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍(pair)으로 저장할 수 있다. 이후, 전달부(13)는 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 크기(사이즈, size) 순으로 정렬한 다음, 미리 설정된 그래디언트 드랍핑 비율에 대응하는 임계 레이어의 그래디언트들의 평균인 후보 임계값에 기초하여 임계값을 결정할 수 있다.
여기서, 후보 임계값은 복수회 반복 수행되는 전달부(13)에 의한 파라미터 서버(100)로 전달하는 과정(즉, 제3 과정)을 이용하여 미리 설정된 개수만큼 산출될 수 있다. 임계값은, 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값(가장 큰 값을 갖는 후보 임계값)에 기초하여 결정될 수 있다.
이때, 임계값은 후보 임계값에 1 내지 1.5의 값을 갖는 상수(U)를 곱하여 결정될 수 있다. 상수(U)는 1 내지 1.5의 값, 특히 1 내지 1.5 사이의 값 중 어느 하나의 값을 가질 수 있다. 구체적으로, 임계값은 미리 설정된 개수만큼 산출된 복수개의 후보 임계값 중 가장 큰 값을 가지는 후보 임계값에 1 내지 1.5의 값을 갖는 상수(U)를 곱함으로써 결정될 수 있다.
구체적으로, 먼저 임계값 결정을 위한 1회째의 임계값 산출 과정에 대한 상세 설명은 다음과 같다. 먼저, 전달부(13)는 임계값을 초기 임계값으로서 0으로 설정할 수 있다(S21). 이후, 계산부(11)는 복수의 레이어 각각에 대한 그래디언트를 계산할 수 있다(Compute Gradient)(S22). 단계S22에서 전달부(13)는 계산된 그래디언트를 기초로, 복수의 레이어 각각의 그래디언트의 개수((list_of_mean=[])를 산출할 수 있다.
전달부(13)는 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍(pair)으로 저장할 수 있다. 여기서, 쌍으로 저장되는 그래디언트들의 평균은 절대값이 적용된 그래디언트들의 평균(mean)을 의미할 수 있다. 또한, 쌍으로 저장되는 그래디언트들의 개수는 레이어 내 값(value)의 개수로서 레이어의 크기(사이즈, size)를 의미할 수 있다.
즉, 전달부(13)는 복수의 레이어 각각별로(즉, 각 레이어별로)(For each Layer), 각 레이어의 크기(size)와 절대값이 적용된 그래디언트들의 평균(mean)을 계산할 수 있다(S23). 이후, 전달부(13)는 레이어 별로 계산된 크기(size) 값과 평균(mean) 값을 쌍으로 하여 리스트(list)로 생성해 저장할 수 있다(S24).
단계S23에서, 'size_of_layer=size(layer)'는 레이어의 크기 값을 나타내고, 'mean_of_grad=Mean(abs(gradients))'는 절대값이 적용된 그래디언트들의 평균 값을 나타낸다. 또한, 단계S24에서, 'list_of_mean.append((size_of_layer, mean_of_grad))'는 해당 레이어에 대하여 계산된 레이어의 크기 값과 평균 값을 쌍으로 연계해 저장된 리스트의 항목 표시를 나타낸다.
예시적으로, 계산부(12)는 복수의 레이어 중 제1 레이어에 대한 그래디언트를 계산할 수 있다. 계산부(12)에 의한 계산에 기초하여, 전달부(13)는 제1 레이어에 포함된 그래디언트들 각각에 절대값을 적용하고, 제1 레이어에 포함된 절대값이 적용된 그래디언트들을 평균한 평균 값(즉, 제1 레이어에 대한 그래디언트들의 평균)을 계산할 수 있다.
또한, 전달부(13)는 제1 레이어의 크기 값(즉, 제1 레이어에 포함된 그래디언트들의 개수)을 계산할 수 있다. 여기서, 제1 레이어의 크기(size) 값은 제1 레이어 내 값(value)의 개수에 해당하는 값으로서, 달리 표현해 제1 레이어에 포함되는 그래디언트들의 개수에 해당하는 값을 의미할 수 있다.
이후, 전달부(13)는 제1 레이어에 대하여 계산된 크기 값(즉, 제1 레이어에 포함된 그래디언트들의 개수)과 평균 값(즉, 제1 레이어에 대한 그래디언트들의 평균)을 한 쌍(pair)으로 연계하여 리스트로 저장할 수 있다.
이러한 리스트는 '제1 레이어-제1 레이어의 크기 값-제1 레이어의 평균 값', '제2 레이어-제2 레이어의 크기 값-제2 레이어의 평균 값' 등과 같은 항목이 복수개 포함될 수 있다. 리스트에 포함된 복수의 항목의 수는 복수의 레이어의 수와 대응될 수 있다.
전달부(13)는 복수의 레이어 각각에 대하여 계산된 크기 값과 평균 값을 쌍으로 연계하여, 각 레이어에 대해 리스트 형태로 저장할 수 있다(S24). 이때, 쌍으로 연계된 정보의 저장(즉, 리스트 형태를 이루는 정보의 저장)은 일예로 본 장치(10)에 포함된 저장부(미도시)에 저장될 수 있다.
이후, 전달부(13)는 복수의 레이어 각각마다 계산된 그래디언트들의 평균(즉, 평균 값)을 크기 순으로 정렬(sort)할 수 있다(S25). 이때, 크기 순으로의 정렬은 일예로 내림차순으로의 정렬이 적용될 수 있다. 다만, 이에만 한정되는 것은 아니고, 다른 일예로, 크기 순으로의 정렬은 오름차순으로의 정렬이 적용될 수 있다.
달리 말해, 전달부(13)는 레이어별로 계산한 크기 값과 평균 값을 쌍으로 하여 리스트로 저장한 이후, 리스트에 포함된 복수의 항목들을 평균 값(mean 값)을 키(key) 값으로 하여 일예로 내림차순 정렬을 할 수 있다(S25). 이러한 내림차순 정렬에 의해, 복수의 항목을 포함하는 리스트는 복수의 레이어 중 평균 값이 큰 레이어부터 차례대로 정렬될 수 있다.
이후, 전달부(13)는 단계S25에서, 모든 레이어(즉, 복수의 레이어)의 그래디언트의 개수를 더한 값(즉, 복수의 레이어에 포함되는 그래디언트들의 개수의 총합)에 '1-R' 값을 곱함으로써 산출값 r을 획득할 수 있다. 이때, 단계 S25에서, 'sum(list_of_mean[0])'은 모든 레이어의 그래디언트의 개수를 더한 값을 의미한다.
이후, 전달부(13)는 정렬된 리스트에서, 첫번째 항목부터 시작하여 레이어의 크기(사이즈) 값을 순차적으로 더하여 합산하는 연산(S26)을 수행할 수 있다. i는 정렬된 리스트 내 항목의 인덱스를 의미하며, 복수의 레이어의 수 이하에 해당하는 값을 가질 수 있다.
여기서, R은 미리 설정된 그래디언트 드랍핑 비율로서, 고정된 드랍핑 비율이라 달리 표현될 수 있다. 이에 따르면, '1-R'은 모든 레이어의 그래디언트의 개수를 더한 값(즉, 복수의 레이어에 포함되는 그래디언트들의 개수의 총합, 달리 말해 복수의 레이어에 대한 그래디언트들의 총 개수) 대비 본 장치(10)에서 파라미터 서버(100)로 보내지는 그래디언트들의 개수에 관한 비율을 의미할 수 있다. 즉, '1-R'은 본 장치(10)에서 파라미터 서버(100)로 보내는 그래디언트들의 개수에 관한 비율을 의미할 수 있다.
이때, 전달부(13)는 합산된 레이어의 합산 크기 값(not_dropped)이 앞서 획득된 산출값 r을 넘으면(즉, 합산 크기 값이 산출값 r 이상이 되면)(S27-Yes), 합산하는 연산을 중단할 수 있다. 반면, 합산 크기 값이 산출값 r을 넘지 않으면(S27-No), 전달부(13)는 항목의 인덱스를 1 증가시키고(S28), 인덱스가 1 증가된 항목에 포함된 레이어의 크기 값까지 합산된 레이어의 합산 크기 값을 단계S26에서 다시 산출할 수 있다.
이후, 전달부(13)는 합산 크기 값이 산출값 r을 넘기게 하는 해당 항목의 인덱스에 해당하는 평균 값('(list_of_mean[i][1]')을 추출하고, 추출된 평균 값에 상수(U)를 곱함으로써 임계값을 산출할 수 있다(S29). 이때, 산출된 임계값('(list_of_mean[i][1] x U')은 후보 임계값이라 달리 표현될 수 있다. 또한, 이때 드랍핑하는 비율은 정확하게 R이 아니지만, R에 근접할 수 있다.
이때, 단계S29에서 전달부(13)는, 산출된 임계값이 앞서 단계S21에서 설정된 초기 임계값(0)보다 큰지 여부를 확인할 수 있다.
이때, 산출된 임계값이 단계S21에서 설정된 초기 임계값을 초과하면, 전달부(13)는 단계 S21에서 설정된 초기 임계값을 0 에서 단계 S29에서 산출된 임계값으로 업데이트하여 반영할 수 있다(S30). 이에 반해, 산출된 임계값이 단계S21에서 설정된 초기 임계값 이하이면, 전달부(13)는 단계S21에 설정되어있는 초기 임계값을 그대로 유지할 수 있다(S31). 이때, 단계S30 및 단계S31을 통해 업데이트된 단계S21에서의 임계값은, 후보 임계값이라 달리 표현될 수 있다.
이후, 전달부(13)는 2회째의 임계값 산출 과정을 상술한 단계S21 내지 단계 S31과 마찬가지로 반복 수행할 수 있다. 전달부(13)는 이러한 임계값 산출 과정을 미리 설정된 횟수(x-step)만큼 반복 수행할 수 있다. 일예로, 미리 설정된 횟수가 5회인 경우, x-step이라 함은 5-step을 의미할 수 있다.
전달부(13)는 상술한 단계S21 내지 단계S31을 포함하는 임계값 산출 과정을 미리 설정된 횟수만큼 반복 수행함으로써, 미리 설정된 횟수만큼 산출된 복수개의 임계값(후보 임계값) 중 가장 큰 값을 갖는 임계값(후보 임계값)을 산출할 수 있다. 이후 전달부(13)는 산출된 가장 큰 값을 값을 갖는 임계값(후보 임계값)에 상수를 곱한 값을 임계값으로 결정할 수 있다.
상술한 설명에서, 단계 S21 내지 S31은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
예시적으로, 내림차순으로 정렬된 리스트에 복수의 레이어의 수가 30개 임에 따라 30개의 항목이 포함되어 있다고 하자. 이때, 전달부(13)는 정렬된 리스트 내 30개의 항목들에 대하여, 첫번째 항목(제1 항목)부터 순차적으로 각 항목 내 레이어의 크기(사이즈) 값을 합산하여 합산 크기 값을 획득할 수 있다.
이때, 일예로 첫번째 항목(제1 항목)부터 아홉번째 항목(제9 항목) 각각에 포함되어 있는 레이어의 크기 값을 합산한 합산 크기 값은 r(산출값) 미만인 반면, 첫번째 항목(제1 항목)부터 열번째 항목(제10 항목) 각각에 포함되어 있는 레이어의 크기 값을 합산한 합산 크기 값이 r(산출값) 이상이라고 하자.
이러한 경우, 전달부(13)는 합산 크기 값이 r을 넘기게 하는 해당 항목의 인덱스에 해당하는 평균 값으로서, 열번째 항목(제10 항목)에 포함되어 있는 평균 값을 추출할 수 있다. 이후, 전달부(13)는 추출된 평균 값에 1 내지 1.5의 값을 갖는 상수(U)를 곱함으로써 임계값을 산출할 수 있다. 여기서, 산출된 임계값은 후보 임계값이라 달리 표현될 수 있다. 또한, 합산 크기 값이 r을 넘기게 하는 항목(예시적으로, 제10 항목)에 대응하는 레이어는 미리 설정된 그래디언트 드랍핑 비율(R)에 대응하는 임계 레이어라 달리 표현될 수 있다.
이처럼, 각 레이어별 계산된 크기 값과 평균 값을 쌍으로 하여 리스트로 저장하는 과정, 리스트를 정렬시키는 과정 및 정렬된 리스트를 기반으로 임계값(후보 임계값)을 산출하는 과정은 임계값 산출 과정(혹은, 후보 임계값 산출 과정)이라 지칭될 수 있다. 즉, 임계값 산출 과정을 통해 산출되는 임계값은 후보 임계값이라 달리 지칭될 수 있다.
예시적으로, 본 장치(10)가 제1 과정 내지 제3 과정을 복수회로서 50회 반복 수행한다고 가정하자.
이때, 전달부(13)는 제1 과정 내지 제3 과정을 1회째 수행함에 있어서, 임계값 산출 과정을 1회째 수행함으로써 임계값(후보 임계값), 특히 제1 임계값(제1 후보 임계값)을 산출할 수 있다. 또한, 전달부(13)는 제1 과정 내지 제3 과정을 2회째 수행함에 있어서, 임계값 산출 과정을 2회째 수행하므로써 임계값(후보 임계값), 특히 제2 임계값(제2 후보 임계값)을 산출할 수 있다.
이때, 본 장치(10)는 미리 설정된 횟수만큼 임계값 산출 과정을 수행할 수 있다. 예시적으로, 미리 설정된 횟수가 5회인 경우, 전달부(13)는 임계값 산출 과정을 5회 반복 수행함에 따라 5개의 임계값(후보 임계값)으로서, 제1 임계값(제1 후보 임계값) 내지 제5 임계값(제5 후보 임계값)을 산출할 수 있다.
이때, 전달부(13)는 미리 설정된 횟수(예를 들어, 5회)만큼 임계값 산출 과정을 반복 수행함으로써 획득된 복수개의 임계값(예시적으로, 5개의 임계값) 중 가장 큰 값을 갖는 임계값(후보 임계값)을 식별(선택)할 수 있다. 이후, 전달부(13)는 식별(선택)된 가장 큰 값을 갖는 임계값(후보 임계값)에 기 설정된 상수로서 1 내지 1.5의 값을 갖는 상수를 곱할 수 있다. 이를 통해, 전달부(13)는 가장 큰 값을 갖는 임계값(후보 임계값)에 기 설정된 상수를 곱함으로써 산출된 값으로 임계값을 결정할 수 있다.
즉, 전달부(13)는 미리 설정된 횟수(예시적으로 5회)만큼 임계값 산출 과정을 반복 수행함으로써(달리 표현해, 제1 과정 내지 제3 과정을 미리 설정된 회수만큼 반복 수행함으로써), 미리 설정된 횟수에 대응하는 개수만큼 임계값(후보 임계값)을 산출, 즉 5개의 임계값(후보 임계값)을 산출할 수 있다. 이후, 산출된 5개의 임계값(후보 임계값) 중 가장 큰 값에 기 설정된 상수를 곱한 값을 최종 임계값으로 결정할 수 있다.
이렇게 임계값 결정이 이루어지고 나면, 전달부(13)는 임계값 결정 이후에 제1 과정 내지 제3 과정을 복수회 반복 수행함에 있어서 고려되는 임계값으로서 앞서 결정된 임계값을 고정적으로 이용할 수 있다. 즉, 임계값 결정 이후에 반복 이루어지는 제1 과정 내지 제3 과정의 수행시에는 임계값이 앞서 미리 설정된 횟수만큼 임계값 산출 과정을 통해 결정된 임계값으로 고정될 수 있다.
예를 들어, 본 장치(10)가 제1 과정 내지 제3 과정을 50회 수행함에 있어서, 제1 과정 내지 제3 과정을 5회 수행함으로써 임계값이 A 값으로 결정되었다고 하자. 이처럼 임계값이 A 값으로 결정된 이후, 본 장치(10)는 제1 과정 내지 제3 과정이 6회째 수행될 때, 고정된 임계값인 A 값을 파라미터 서버(100)로의 그래디언트들의 선택적 전달을 위해 고려되는 임계값으로서 이용할 수 있다. 마찬가지로, 본 장치(10)는 제1 과정 내지 제3 과정을 7회째 내지 50회째 수행할 때에도 임계값으로서 고정된 임계값인 A 값을 이용할 수 있다.
즉, 본 장치(10)에서, 후보 임계값은 복수회 반복 수행되는 전달부(13)에 의한 제3 과정을 기초로 미리 설정된 개수만큼 산출될 수 있다. 이때, 파라미터 서버(100)로의 그래디언트들의 선택적 전달을 위해 고려되는 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값에 기초하여 결정될 수 있다.
상술한 임계값 산출 과정은, 적정 x회 스텝의 수행 동안에(일예로, 제1 과정 내지 제3 과정에 대한 미리 설정된 횟수만큼의 반복 과정의 수행 동안에), 매 스텝(매 회)마다 고정된 비율(R)로 레이어 혹은 그래디언트들을 드랍핑(dropping)할 수 있는 임계값(즉, 후보 임계값)을 찾기 위한 과정이라 할 수 있다. 이처럼, 본 장치(10)는 미리 설정된 횟수만큼의 임계값 산출 과정의 수행을 통해 산출된 미리 설정된 횟수에 대응하는 개수만큼의 후보 임계값 중 가장 큰 값에 상수를 곱함으로써 산출된 값으로 임계값을 결정하고 고정할 수 있다.
다시 말해, 전달부(13)는 임계값을 결정하기 위해, 고정된 비율(R)을 드랍핑하는 임계값(후보 임계값)을 미리 설정된 횟수만큼 제1 과정 내지 제3 과정을 반복 수행할 때마다 산출할 수 있다. 이때, 전달부(13)는 산출된 복수개의 임계값(후보 임계값) 중 가장 큰 값을 갖는 임계값(후보 임계값)을 선택할 수 있다. 이후, 전달부(13)는 선택된 임계값(후보 임계값)에 상수(1 내지 1.5의 값을 갖는 상수 U)를 곱하여 산출된 값을 임계값(최종 임계값)으로 결정할 수 있다. 전달부(13)는 결정된 임계값을 제1 과정 내지 제3 과정의 복수회 반복 수행시 고려되는 임계값으로 고정시킬 수 있다.
이때, 본 장치(10)에서 임계값을 결정함에 있어서 복수개의 후보 임계값 중 가장 큰 값을 선택하여 상수를 곱하는 이유는, 본 장치(10)가 그래디언트 임계 기준을 충족하지 않는 레이어에 대응하는 그래디언트들을 누적하기 때문(즉, 누적된 축적 그래디언트들에 관한 정보를 이용하기 때문)이라 할 수 있다.
즉, 임계값 결정시 복수개의 후보 임계값 중 가장 큰 값을 선택하여 상수를 곱하는 이유는, 본 장치(10)가 그래디언트를 누적하기 때문에 임계값(Threshold)이 처음부터 고정된 값으로 이용되면, 제1 과정 내지 제3 과정의 반복 수행 횟수가 많아질수록 레이어(혹은 그래디언트들)의 드랍핑이 적게 이루어지기 때문이라 할 수 있다. 다시 말해, 본 장치(10)에서 임계값 결정시 복수개의 후보 임계값 중 가장 큰 값을 선택하여 상수를 곱하는 이유는, 그래디언트 누적하기 때문에 임계값이 고정되면 이후 스텝(단계, 과정)에서 레이어 드랍핑이 적게 되기 때문이라 할 수 있다.
본 장치(10)는 임계값을 결정할 때, 임계값 산출 과정에서 각 레이어 별로 모든 그래디언트를 하나하나 비교하는 것이 아니라, 레이어별 평균(Mean) 값을 이용하여 레이어를 비교하므로, 오버헤드(overhead)를 줄일 수 있는 효과를 제공할 수 있다.
본 장치(10)는 분산 딥러닝에서 병목현상을 개선하기 위해 그래디언트 레이어를 드랍핑하는 방식에 대하여 제시한다. 딥러닝 학습을 하는데 있어서 크기가 작은 그래디언트들은 파라미터의 변화에 많은 영향을 미치지 않으며, 한 레이어 안의 그래디언트들은 그 크기가 비슷하게 나타난다.
이를 기초로, 본 장치(10)는 복수의 레이어 중 어느 한 레이어 안에 있는 그래디언트들의 평균이 정해진 임계값을 넘지 않으면, 임계값을 넘지 않는 레이어(특히, 드랍핑 레이어에 포함된 그래디언트들)을 드랍핑할 수 있다. 이러한 본 장치(10)는 본 장치(10, 워커)에서 파라미터 서버(100)로 드랍핑 레이어에 포함된 그래디언트들이 보내지지 않도록 하여 워커와 파라미터 서버 간의 통신 데이터를 줄일 수 있다.
또한, 본 장치(10)는 이때 파라미터 서버(100)로 보내지 않은 그래디언트 레이어를 버리는 것이 아니라, 본 장치(10, 워커) 내 로컬 캐쉬(14)에 축적시킬 수 있다. 본 장치(10)는 축적된 레이어의 그래디언트 평균(즉, 누적된 축적 그래디언트들)이 임계값을 넘으면, 해당 그래디언트들을 파라미터 서버(100)로 전달할 수 있다. 이러한 본 장치(10)는 그래디언트 축적을 이용(즉, 축적 그래디언트들에 관한 정보를 이용)함으로써 드랍핑에 의한 손실을 줄일 수 있다.
본 장치(10)는 계산량이 적은 레이어 드랍핑 방식을 이용함으로써, 오버헤드를 줄이면서 통신 시간을 감소시킬 수 있다. 이와 동시에, 본 장치(10)는 드랍핑된 그래디언트들을 축적함으로써 드랍핑에 의한 손실을 감소시킬 수 있다. 이러한 본 장치(10)는 분산 딥러닝에서 병목현상을 개선하면서 트레이닝을 효과적으로 가속화할 수 있다.
본 장치(10)는 대용량의 데이터를 데이터 병렬화를 이용해 분산처리하는 딥러닝에서 발생하는 병목현상을 효과적으로 개선할 수 있다. 이에 본 장치(10)는 분산 딥러닝을 통해 많은 데이터를 빠르게 학습하는 것을 가능하게 할 수 있다. 이러한 본 장치(10)는 컴퓨터 비전, 음성인식, 자연어 처리 등의 인식 성능을 높이는 데에 있어서, 종래의 기술들 대비 보다 나은 성능을 제공할 수 있다.
본원에서는 본 장치(10, 워커)에서 계산한 그래디언트를 압축하여 파라미터 서버(100)로 전달할 수 있다. 이때, 본 장치(10)는 레이어 내의 그래디언트들을 드랍핑하여 압축하는 것이 아니라, 레이어의 드랍핑(즉, 레이어에 포함된 그래디언트들 전체에 대한 드랍핑)을 통해 압축을 수행할 수 있다. 본 장치(10)는 레이어 드랍핑을 통해 그래디언트가 포함되어 있는 레이어를 파라미터 서버(100)로 전달하지 않을 수 있다.
미리 설정된 그래디언트 드랍핑 비율(R%)의 압축을 위해 복수회 이루어지는 제1 과정 내지 제3 과정의 반복 수행시마다(매 step마다) 임계값(Threshold)을 계산하는 것은, 많은 오버헤드를 발생시켜 트레이닝(training, 훈련)을 가속화하는 데에 한계가 있다. 이러한 문제를 해소하고자, 본 장치(10)는 초기의 적정 step 동안(미리 설정된 횟수에 대응하는 복수회 동안) 계산된 복수개의 후보 임계값을 이용해 결정된 임계값을 고정된 임계값으로 사용함으로써, 분산 딥러닝에서 병목현상을 개선하면서 트레이닝(training, 훈련)을 가속화시키고 오버헤드(overhead)를 줄일 수 있다.
본 장치(10)는 서버 환경에서의 학습시 적용될 수 있으며, 뿐만 아니라 모바일 디바이스 환경에서의 학습 시에도 적용될 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 6은 본원의 일 실시예에 따른 분산 딥러닝 통신 데이터 감소 방법에 대한 동작 흐름도이다.
도 6에 도시된 분산 딥러닝 통신 데이터 감소 방법은 앞서 설명된 본 장치(10)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 본 장치(10)에 대하여 설명된 내용은 분산 딥러닝 통신 데이터 감소 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 6을 참조하면, 단계S41에서는 복수의 워커 중 어느 하나의 워커가, 파라미터 서버로부터 전달 파라미터를 전달받을 수 있다. 여기서, 어느 하나의 워커는 본 장치(10)를 의미할 수 있다.
다음으로, 단계S42에서는 어느 하나의 워커가, 단계S41에서 전달받은 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산할 수 있다.
다음으로, 단계S43에서는 어느 하나의 워커가, 단계S42에 의한 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 파라미터 서버로 전달할 수 있다.
이때, 단계S43에서 어느 하나의 워커는, 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산하고, 그래디언트 임계 기준에 의해, 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 파라미터 서버로 전달할 수 있다.
또한, 단계S43에서 어느 하나의 워커는, 그래디언트 임계 기준을 불충족하는 레이어가 존재하면, 그래디언트 임계 기준을 불충족하는 레이어를 드랍핑 레이어로서 드랍하고, 드랍핑 레이어에 대응하는 그래디언트들을 로컬 캐쉬에 누적하는 형태로 저장할 수 있다.
이때, 단계S41 내지 단계S43의 반복 수행을 통해 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 단계S43에서 어느 하나의 워커는 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 파라미터 서버로 전달할 수 있다.
단계S41 내지 단계S43은 복수회 반복 수행될 수 있다. 이때, n번째 반복 수행시 단계S41에서 파라미터 서버로부터 전달받는 전달 파라미터는, (n-1)번째 반복 수행시 단계S43에서 파라미터 서버로 전달된 레이어에 대응하는 그래디언트들을 기초로 업데이트된 파라미터일 수 있다.
또한, 단계S43에서 고려되는 임계값은, 복수의 레이어에 포함되는 그래디언트들의 개수의 총합을 기준으로 미리 설정된 그래디언트 드랍핑 비율을 고려하여 결정될 수 있다.
또한, 단계S43에서 어느 하나의 워커는, 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍으로 저장하고, 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 크기 순으로 정렬한 다음, 미리 설정된 그래디언트 드랍핑 비율에 대응하는 임계 레이어의 그래디언트들의 후보 임계값에 기초하여 임계값을 결정할 수 있다.
이때, 후보 임계값은 복수회 반복 수행되는 단계S43을 이용하여 미리 설정된 개수만큼 산출될 수 있다. 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값에 기초하여 결정될 수 있다. 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값을 갖는 후보 임계값에 1 내지 1.5의 값을 갖는 상수를 곱하여 결정될 수 있다.
상술한 설명에서, 단계 S41 내지 S43은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시 예에 따른 분산 딥러닝 통신 데이터 감소 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 분산 딥러닝 통신 데이터 감소 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
100: 파라미터 서버
10: 분산 딥러닝 통신 데이터 감소 장치
11: 수신부
12: 계산부
13: 전달부
14: 로컬 캐쉬

Claims (20)

  1. 파라미터 서버 및 복수의 워커를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 방법으로서,
    (a) 상기 복수의 워커 중 어느 하나의 워커가, 상기 파라미터 서버로부터 전달 파라미터를 전달받는 단계;
    (b) 상기 어느 하나의 워커가, 상기 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산하는 단계; 및
    (c) 상기 어느 하나의 워커가, 상기 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 상기 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하는 단계를 포함하고,
    상기 (c) 단계는, 상기 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산하고, 상기 그래디언트 임계 기준에 의해, 상기 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하고,
    상기 (c) 단계에서 상기 어느 하나의 워커는,
    상기 그래디언트 임계 기준을 불충족하는 레이어가 존재하면, 상기 그래디언트 임계 기준을 불충족하는 레이어를 드랍핑 레이어로서 드랍하고 상기 드랍핑 레이어에 대응하는 그래디언트들을 로컬 캐쉬에 누적하는 형태로 저장하고,
    상기 (a) 단계 내지 상기 (c) 단계의 반복 수행을 통해 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 상기 파라미터 서버로 전달하는 것인, 분산 딥러닝 통신 데이터 감소 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 (a) 단계 내지 상기 (c) 단계는 복수회 반복 수행되는 것인, 분산 딥러닝 통신 데이터 감소 방법.
  5. 제4항에 있어서,
    n번째 반복 수행시 (a) 단계에서 상기 파라미터 서버로부터 전달받는 전달 파라미터는, (n-1)번째 반복 수행시 (c) 단계에서 상기 파라미터 서버로 전달된 레이어에 대응하는 그래디언트들을 기초로 업데이트된 파라미터인 것인, 분산 딥러닝 통신 데이터 감소 방법.
  6. 제4항에 있어서,
    상기 임계값은, 상기 복수의 레이어에 포함되는 그래디언트들의 개수의 총합을 기준으로 미리 설정된 그래디언트 드랍핑 비율을 고려하여 결정되는 것인, 분산 딥러닝 통신 데이터 감소 방법.
  7. 제6항에 있어서,
    상기 (c) 단계에서 상기 어느 하나의 워커는,
    상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 상기 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍으로 저장하고,
    상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 크기 순으로 정렬한 다음,
    상기 미리 설정된 그래디언트 드랍핑 비율에 대응하는 임계 레이어의 그래디언트들의 평균인 후보 임계값에 기초하여 상기 임계값을 결정하는 것인, 분산 딥러닝 통신 데이터 감소 방법.
  8. 제7항에 있어서,
    상기 후보 임계값은 복수회 반복 수행되는 상기 (c) 단계를 이용하여 미리 설정된 개수만큼 산출되고,
    상기 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값에 기초하여 결정되는 것인, 분산 딥러닝 통신 데이터 감소 방법.
  9. 제7항에 있어서,
    상기 임계값은 후보 임계값에 1 내지 1.5의 값을 갖는 상수를 곱하여 결정되는 것인, 분산 딥러닝 통신 데이터 감소 방법.
  10. 파라미터 서버 및 복수의 워커를 이용하여 학습을 진행하는 분산 딥러닝에서 병목현상을 개선하기 위한 분산 딥러닝 통신 데이터 감소 장치로서,
    상기 파라미터 서버로부터 전달 파라미터를 전달받는 수신부;
    상기 전달 파라미터를 기초로 복수의 레이어 각각에 대한 그래디언트를 계산하는 계산부; 및
    상기 복수의 레이어 각각에 대한 그래디언트 계산 결과에 기초하여, 상기 복수의 레이어 중 그래디언트 임계 기준을 충족하는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하는 전달부를 포함하고,
    상기 전달부는, 상기 복수의 레이어 각각에 포함된 그래디언트들의 평균을 각 레이어마다 계산하고, 상기 그래디언트 임계 기준에 의해, 상기 복수의 레이어 중 그래디언트들의 평균이 임계값을 넘는 레이어에 대응하는 그래디언트들을 선택적으로 상기 파라미터 서버로 전달하고,
    상기 전달부는,
    상기 그래디언트 임계 기준을 불충족하는 레이어가 존재하면, 상기 그래디언트 임계 기준을 불충족하는 레이어를 드랍핑 레이어로서 드랍하고 상기 드랍핑 레이어에 대응하는 그래디언트들을 로컬 캐쉬에 누적하는 형태로 저장하고,
    상기 수신부에 의해 상기 전달 파라미터를 전달받는 과정, 상기 계산부에 의해 상기 그래디언트를 계산하는 과정 및 상기 전달부에 의해 상기 파라미터 서버로 전달하는 과정의 반복 수행을 통해 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들의 축적 평균이 임계값을 넘는 것으로 판단되면, 상기 드랍핑 레이어에 대응하여 누적된 축적 그래디언트들을 상기 파라미터 서버로 전달하는 것인, 분산 딥러닝 통신 데이터 감소 장치.
  11. 삭제
  12. 삭제
  13. 제10항에 있어서,
    상기 수신부에 의해 상기 전달 파라미터를 전달받는 과정, 상기 계산부에 의해 상기 그래디언트를 계산하는 과정 및 상기 전달부에 의해 상기 파라미터 서버로 전달하는 과정은 복수회 반복 수행되는 것인, 분산 딥러닝 통신 데이터 감소 장치.
  14. 제13항에 있어서,
    n번째 반복 수행시 수신부에서 상기 파라미터 서버로부터 전달받는 전달 파라미터는, (n-1)번째 반복 수행시 전달부에서 상기 파라미터 서버로 전달된 레이어에 대응하는 그래디언트들을 기초로 업데이트된 파라미터인 것인, 분산 딥러닝 통신 데이터 감소 장치.
  15. 제13항에 있어서,
    상기 임계값은, 상기 복수의 레이어에 포함되는 그래디언트들의 개수의 총합을 기준으로 미리 설정된 그래디언트 드랍핑 비율을 고려하여 결정되는 것인, 분산 딥러닝 통신 데이터 감소 장치.
  16. 제15항에 있어서,
    상기 전달부는,
    상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 상기 복수의 레이어 각각에 포함되는 그래디언트들의 개수와 쌍으로 저장하고,
    상기 복수의 레이어 각각마다 계산된 그래디언트들의 평균을 크기 순으로 정렬한 다음,
    상기 미리 설정된 그래디언트 드랍핑 비율에 대응하는 임계 레이어의 그래디언트들의 평균인 후보 임계값에 기초하여 상기 임계값을 결정하는 것인, 분산 딥러닝 통신 데이터 감소 장치.
  17. 제16항에 있어서,
    상기 후보 임계값은 복수회 반복 수행되는 상기 전달부에 의한 상기 파라미터 서버로 전달하는 과정을 이용하여 미리 설정된 개수만큼 산출되고,
    상기 임계값은 미리 설정된 개수만큼의 후보 임계값 중 가장 큰 값에 기초하여 결정되는 것인, 분산 딥러닝 통신 데이터 감소 장치.
  18. 제16항에 있어서,
    상기 임계값은 후보 임계값에 1 내지 1.5의 값을 갖는 상수를 곱하여 결정되는 것인, 분산 딥러닝 통신 데이터 감소 장치.
  19. 제10항에 있어서,
    상기 분산 딥러닝 통신 데이터 감소 장치는, 상기 복수의 워커 중 어느 하나의 워커인 것인, 분산 딥러닝 통신 데이터 감소 장치.
  20. 제1항, 제4항 내지 제9항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.
KR1020190111635A 2019-09-09 2019-09-09 분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법 KR102268588B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190111635A KR102268588B1 (ko) 2019-09-09 2019-09-09 분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190111635A KR102268588B1 (ko) 2019-09-09 2019-09-09 분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210030103A KR20210030103A (ko) 2021-03-17
KR102268588B1 true KR102268588B1 (ko) 2021-06-22

Family

ID=75245693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190111635A KR102268588B1 (ko) 2019-09-09 2019-09-09 분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102268588B1 (ko)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김영랑 et al., 비동기식 모델 병렬화를 사용한 Multi-GPU기반 딥 러닝*

Also Published As

Publication number Publication date
KR20210030103A (ko) 2021-03-17

Similar Documents

Publication Publication Date Title
US11531932B2 (en) Systems and methods for compression and distribution of machine learning models
KR102302609B1 (ko) 신경망 아키텍처 최적화
CN113515370B (zh) 一种面向大规模深度神经网络的分布式训练方法
EP3035250B1 (en) Large-scale classification in neural networks using hashing
US20200293876A1 (en) Compression of deep neural networks
US11636341B2 (en) Processing sequential interaction data
EP3767549A1 (en) Delivery of compressed neural networks
Ayad et al. Improving the communication and computation efficiency of split learning for iot applications
Lin et al. Feedback delay-tolerant proactive caching scheme based on federated learning at the wireless edge
Jiang et al. SKCompress: compressing sparse and nonuniform gradient in distributed machine learning
CN110598871A (zh) 一种微服务架构下的业务流柔性控制的方法及系统
Pfeiffer et al. CocoFL: Communication-and computation-aware federated learning via partial NN freezing and quantization
CN113382066B (zh) 基于联邦边缘平台的车辆用户选择方法及系统
KR102268588B1 (ko) 분산 딥러닝에서 병목현상 개선을 위한 통신 데이터 감소 장치 및 방법
WO2021111456A1 (en) Moderator for identifying deficient nodes in federated learning
CN114626550A (zh) 分布式模型协同训练方法和系统
CN116470920A (zh) 一种面向联邦学习的双向自适应梯度压缩方法及系统
Li et al. Federated learning communication-efficiency framework via corset construction
US20220292342A1 (en) Communication Efficient Federated/Distributed Learning of Neural Networks
Callegaro et al. Optimal task allocation for time-varying edge computing systems with split DNNs
EP3683733A1 (en) A method, an apparatus and a computer program product for neural networks
EP3767548A1 (en) Delivery of compressed neural networks
CN104883366A (zh) 利用用户实时反馈信息更新Web服务可靠性预测值的方法
Wu et al. ASTC: An adaptive gradient compression scheme for communication-efficient edge computing
US20220261648A1 (en) Gradient pruning for efficient training of machine learning models

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant