KR20200104734A - 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버 - Google Patents

이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버 Download PDF

Info

Publication number
KR20200104734A
KR20200104734A KR1020190023464A KR20190023464A KR20200104734A KR 20200104734 A KR20200104734 A KR 20200104734A KR 1020190023464 A KR1020190023464 A KR 1020190023464A KR 20190023464 A KR20190023464 A KR 20190023464A KR 20200104734 A KR20200104734 A KR 20200104734A
Authority
KR
South Korea
Prior art keywords
batch
distributed
worker
orchestration
stragler
Prior art date
Application number
KR1020190023464A
Other languages
English (en)
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 KR1020190023464A priority Critical patent/KR20200104734A/ko
Publication of KR20200104734A publication Critical patent/KR20200104734A/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

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

Abstract

본 발명은, 이종 GPU 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버에 관한 것으로, 각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정하는 것을 특징으로 한다.

Description

이종 GPU 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버{An adaptive Batch Orchestration Algorithm for Straggler Mitigation of Synchronous SGD in the Heterogeneous GPU Cluster}
본 발명은, 이종 GPU 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버에 관한 것으로, 각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정한다.
최근 자연어 처리, 이미지 처리 등과 같은 다양한 지능형 응용들에서는 최신 성능을 얻기 위하여 딥 러닝 기법을 많이 사용하고 있다. 딥 러닝은 다양한 경연에서 상위권을 차지하며 지능형 응용의 떠오르는 알고리즘으로 각광받고 있다. 하지만 이러한 딥러닝 모델은 그 모델의 크기가 크고 학습에 사용되는 데이터의 양이 많기 때문에 이를 학습하기 위해서는 단일 GPU 작업자(worker)에서 만족할 만한 성능으로 수렴하기 까지 수일에서 수주가 걸린다.
이를 해결하기 위하여 GPU 클러스터에서 딥러닝 모델을 분산 학습하는 방법이 제안되었다. 분산 처리는 많은 양의 데이터에 대한 연산을 수행할 때 군집의 장비를 활용하여 처리 속도를 가속화하는 방법이다. 딥러닝의 학습은 단순히 데이터를 처리하는 것이 아니라 데이터의 처리를 통하여 모델의 파라미터를 업데이트하는 것이 목적이다. 이를 위해서는 목적함수에 대한 파라미터들의 미분값을 구하는 역전파가 이루어져야 하는데 이러한 연산을 병렬로 가속화하기 위하여 GPU를 활용한다. 그렇기 때문에 딥러닝의 분산 처리는 CPU 보다는 GPU 자원의 분산 활용을 위하여 이루어진다.
딥러닝 모델을 분산 학습하는 대표적인 알고리즘 중 하나인 동기식(synchronous) 통계적 기울기 하강(SGD: stochastic gradient descent)은 높은 확장성으로 인해 대규모 학습 환경에서 많이 사용된다. 동기식 통계적 기울기 하강 학습법은 분산 작업자들이 나누어진 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산한 후, 이를 취합하는 파라미터 서버로 전송하여 파라미터를 업데이트하는 분산 학습 방법을 말한다. 이 때, 각 작업자들이 기울기를 계산하고 업데이트 된 파라미터를 파라미터 서버로부터 받아오기까지의 과정을 한 번의 이터레이션(iteration)으로 정의한다.
도 1은 t번째 이터레이션에서 동기식 통계적 기울기 하강 동작을 보여준다. 각 작업자는 미니 배치(batch) 크기
Figure pat00001
를 사용하여 기울기
Figure pat00002
를 구한 후 파라미터 서버로 전송하는데, 이 때 파라미터 서버는 모든 작업자들로부터 기울기를 전달받은 경우에 한하여 파라미터
Figure pat00003
Figure pat00004
으로 업데이트하며 이를 다시 작업자들에게 반환한다.
이러한 동기식 통계적 기울기 하강(SGD)의 성능을 높이는 데 가장 큰 걸림돌 중의 하나는 스트래글러(straggler) 문제이다. 스트래글러 문제는 각 이터레이션을 동기적으로 수행하는 알고리즘에서 매 이터레이션마다 가장 느린 작업자에 의해 이터레이션의 수행 시간이 지연되는 현상을 말한다. 스트래글러 문제는 전반적인 분산 학습의 속도를 저하시키며, 특히 이종 하드웨어 환경에서 더 심화된다.
종래의 동기식 통계적 기울기 하강 기법들은 이종 환경을 고려하지 않기 때문에 이종 환경에서 심화되는 스트래글러 문제를 해결하지 못하고 있다. 종래의 기법들의 경우 동종 학습 환경을 가정하는데, 동종 학습 환경에서 스트래글러는 일반적으로 실시간 시스템 오류나 자원 경합과 같은 동적인 요인으로 인해 발생한다. 반면에 이종 환경의 경우에는 동적인 요인보다 자원의 정적인 성능 특성에 의해 스트래글러가 결정된다.
스트래글러 문제를 해결하는 종래의 기술들은 각 이터레이션에서 기다리는 작업자의 수를 고정하거나, 기다리는 이터레이션 시간을 고정한다.
도 2는, 각 이터레이션에서 기다리는 작업자의 수를 고정한 스트래글러 해결 방법을 설명한 도면이다. 도 2에서 기다리는 작업자의 수는 “3”으로 설정되어 있다. 전체 작업자의 수는 “4”이며, 전체 작업자에서 기다리는 작업자를 제외한 나머지 하나의 작업자는 백업 작업자가 된다. 도 2에서 화살표의 길이는 작업자의 이터레이션에 소요되는 시간(
Figure pat00005
)을 의미한다. 전체 작업자의 이터레이션 소요 시간(
Figure pat00006
)을 비교하면, 작업자1, 작업자3, 작업자2, 작업자4의 순서대로 오래 소요된 것을 나타낸다. 기다리는 작업자의 수가 “3”으로 설정되어 있으므로, 4순위인 작업자4의 작업결과는 기다리지 않고, 그 결과 작업자 4의 작업결과는 버려지게 된다.
도 3은, 동기 시간을 고정한 방법으로서, 작업자가 기울기를 계산하고 그 결과를 파라미터 서버에 보고하고 업데이트된 파라미터를 받는 시간인 이터레이션에 소요되는 시간(
Figure pat00007
)을 고정한 경우이다. 도 3을 참조하면, t초에서는 작업자1만 제시간에 작업을 완료하였고, 작업자 2, 3, 4는 모두 시간을 경과하였기 때문에 작업자 1의 작업 결과만 반영된다. T+1초에서는 작업자 1, 3의 작업 결과만 반영되고, 나머지 작업자의 작업 결과는 버려지게 된다.
도 2, 3에서 설명한 이러한 스트래글러 문제 해결 방법은, 동적으로 발생하는 스트래글러를 가정하였기 때문에, 이종 환경에서 발생하는 정적 스트래글러에 적용될 경우, 성능이 좋지 않은 작업자가 항상 배제되는 자원의 비효율적 사용을 야기한다. 따라서 이종 환경 특성에서 동기식 통계적 기울기 하강시 발생하는 정적 스트래글러 해결 기법이 요구된다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명은 전술한 문제를 해결하기 위한 것으로, 각 분산 작업자의 성능을 동적으로 파악하여 분산 작업자의 학습에 사용되는 데이터 배치 크기를 조절하여 재 분배하는 배치 오케스트레이션 방법과 이를 구현하기 위한 딥러닝 수행 시스템을 제공하는데 그 목적이 있다.
전술한 과제를 해결하기 위한 수단으로, 본 발명은 다음과 같은 특징이 있는 실시예를 가진다.
본 발명은, 이종 GPU 클러스터 환경에서 딥러닝 모델을 분산 학습하는 딥러닝(deep learning) 수행 시스템에 있어서, 각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정하는 배치 오케스트레이션 서버; 를 포함하는 것을 특징으로 한다.
상기 배치 오케스트레이션 서버는, 학습에 참여하는 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 취합하는 프로파일링 모듈; 을 포함하는 것을 특징으로 한다.
또한, 상기 배치 오케스트레이션 서버는, 상기 프로파일링 모듈이 취합한 이터레이션 수행시간을 분석하여 상기 분산 작업자에 스트래글러(straggler)가 존재하는지 판단하는 스트래글러 판단 모듈; 을 포함하는 것을 특징으로 한다.
상기 스트래글러 판단 모듈은, 전체 분산 작업자들이 스트래글러의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE: straggling effect)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단하는 것을 특징으로 한다.
또한, 상기 스트래글러 판단 모듈은, 스트래글러가 존재하는지 확인하기 위한 지표로 활용되는 상기 평균 유휴시간, SE를 수학식,
Figure pat00008
으로 정의하고,
여기서 C는 GPU 작업자로 구성된 클러스터이고,
Figure pat00009
는 각 분산 작업자에 할당되는 배치 크기이며,
Figure pat00010
는 상기 배치 크기에 대한 학습 이터레이션 시간인 것을 특징으로 한다.
상기 배치 오케스트레이션 서버는, 상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 회귀 모델 수립 모듈; 을 포함하는 것을 특징으로 한다.
상기 회귀 모델 수립 모듈은, 각 분산 작업자에 할당되는 배치 크기
Figure pat00011
에 따른, 상기 분산 작업자의 학습 성능에 해당하는 수행시간
Figure pat00012
을 선형 함수 수학식
Figure pat00013
로 모델링하고, 상기 파라미터
Figure pat00014
,
Figure pat00015
는 통계적 선형 회귀를 통하여 구하는 각 분산작업자 별로 결정되는 성능 파라미터인 것을 특징으로 한다.
상기 배치 오케스트레이션 서버는, 상기 회귀 모델 수립 모듈이 업데이트한 상기 분산 작업자에 대한 선형 회귀 모델에 기초하여 가장 느린 작업자의 수행 시간을 최소화하기 위하여 전체 분산 작업자들에 할당되는 배치 크기를 조절하는 배치 반환 모듈; 을 포함하는 것을 특징으로 한다.
본 발명은, 상기 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하는 단계; 상기 각각의 분산 작업자가 상기 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 배치 오케스트레이션 서버에 보고하는 단계; 상기 배치 오케스트레이션 서버가 상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 하는 단계; 및 상기 배치 오케스트레이션 서버가 상기 각각의 분산 작업자의 배치 크기를 재조정하는 배치 오케스트레이션을 수행하는 단계; 를 포함하는 것을 특징으로 한다.
본 발명은, 각 분산 작업자의 성능을 선형 회귀를 사용하여 도출할 수 있는 효과가 있다.
또한, 본 발명은 각 분산 작업자의 성능을 동적으로 파악하여 작업에 참여하는 모든 분산 작업자의 예상 이터레이션 시간의 최대값을 최소화하기 위한 배치 크기 조합을 찾을 수 있다.
도 1은 각 분산 작업자들이 기울기를 계산하고 업데이트 된 파라미터를 파라미터 서버로부터 받아오기까지의 과정을 설명하는 도면이다.
도 2는, 각 이터레이션에서 기다리는 작업자의 수를 고정한 스트래글러 해결 방법을 설명한 도면이다.
도 3은 동기 시간을 고정한 스트래글러 해결 방법을 설명한 도면이다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 수행 시스템의 블록도이다.
도 5는 본 발명의 일 실시예에 따른 배치 오케스트레이션(BOA) 서버와 분산 작업자들 사이의 동작을 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 배치 오케스트레이션 방법의 순서도이다.
도 7은 본 발명과 비교 기술을 전체 학습 수렴까지 걸리는 시간에 관하여 대비한 표이다.
도 8은 본 발명과 비교 기술을 학습 곡선에 관하여 대비한 결과 그래프이다.
이하, 첨부되는 도면을 참고하여 본 발명의 실시예들에 대해 상세히 설명한다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 수행 시스템의 블록도이다.
본 발명은 이종 학습 환경에서 발생하는 동적/정적 스트래글러를 감지하고 이를 바탕으로 각 분산 작업자(200)의 배치 크기를 조정하기 위하여 기존의 분산 학습에 사용되는 파라미터 서버 외에 배치 오케스트레이션 서버(100)를 추가적으로 배치한다.
상기 배치 오케스트레이션 서버(100)는 프로파일링 모듈(110), 스트래글러 판단 모듈(120), 회귀 모델 수립 모듈(130), 배치 반환 모듈(140)을 포함한다.
배치 오케스트레이션 서버(100)는 학습에 참여하는 모든 분산 작업자(200)가 매 리포트 주기(
Figure pat00016
) 마다 전달하는 이터레이션 수행 시간을 취합하여 스트래글러(straggler)가 존재하는지 확인하고, 스트래글러가 존재한다고 판단될 경우 이를 해결하기위한 배치 오케스트레이션을 수행한다. 배치 오케스트레이션 서버(100)는 작업자(200)로부터 얻은 리포트 정보를 바탕으로 스트래글러 여부를 확인함으로써 효율적인 배치 제어를 수행한다.
상기 프로파일링 모듈(110)은 학습에 참여하는 모든 분산 작업자(200)가 매 리포트 주기(
Figure pat00017
) 마다 전달하는 이터레이션 수행 시간(
Figure pat00018
)을 취합한다.
상기 스트래글러 판단 모듈(120)은 프로파일링 모듈이 취합한 이터레이션 수행시간을 분석하여 상기 분산 작업자에 스트래글러(straggler)가 존재하는지 판단한다.
상기 스트래글러 판단 모듈(120)은 스트래글러가 존재하는지 확인하기 위한 지표로 스트래글링 효과 (SE: Straggling Effect)를 정의하며 이는 수학식 1과 같다.
Figure pat00019
여기서 C는 GPU 작업자로 구성된 클러스터이고,
Figure pat00020
는 각 분산 작업자에 할당되는 배치 크기이며,
Figure pat00021
는 상기 배치 크기에 대한 학습 이터레이션 시간을 말한다.
즉, 스트래글링 효과, SE는 전체 작업자들이 스트래글러의 수행 시간으로 인해 다음 학습을 진행하지 못하는 평균 유휴시간을 의미한다.
상기 스트래글러 판단 모듈(120)은, 전체 분산 작업자(200)들이 스트래글러의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단한다. 이를 수학식으로 나타내면 수학식 2와 같다.
Figure pat00022
스트래글러 판단 모듈(120)은, 스트래글러로 인한 제어가 필요하다고 판단하는 경우 각 작업자(200)의 성능 모델을 업데이트한다. 이 때, 학습 성능은 해당 작업자(200)에서 한 번의 이터레이션을 학습하는 데 걸리는 시간을 의미하며 본 발명에서는 이를 배치 사이즈
Figure pat00023
에 대한 함수
Figure pat00024
로 표기한다. 딥러닝의 분산 처리는 CPU 보다는 GPU를 활용하는 것이 일반적이므로 GPU를 학습 작업자로 가정하여 설명한다.
상기 회귀 모델 수립 모듈(130)은, 상기 분산 작업자(200)의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트한다. 선형 함수는 수학식 3과 같다.
Figure pat00025
상기 파라미터
Figure pat00026
,
Figure pat00027
는 통계적 선형 회귀를 통하여 구해지는 각 GPU 작업자 i별로 결정되는 성능 파라미터이다. 성능 파라미터들은 매 리포트 주기(
Figure pat00028
)마다 보고되는 배치 사이즈(
Figure pat00029
)와 수행 시간 튜플(
Figure pat00030
)은 “선형 회귀 모델 업데이트” 단계에서 각 GPU 작업자의 성능 파라미터를 업데이트하기 위해 사용된다.
상기 회귀 모델 수립 모듈(130)은, 수집된 데이터 셋(
Figure pat00031
,
Figure pat00032
)을 바탕으로 선형 회귀를 수행하며 모든 GPU 작업자에 대한 선형 회귀 모델을 업데이트한다. 각 작업자별 선형 회귀 모델 업데이트는 상기 프로파일링 모듈(110)이 취득한
Figure pat00033
,
Figure pat00034
값을 만족하는 최적의 선형모델(수학식 3)을 찾는 것을 목표로 하며 이를 통해 얻어지는 파라미터는 수학식 4와 같다.
Figure pat00035
여기서
Figure pat00036
는 프로파일 윈도우 내의 j번째 리포트 된 배치 크기를 말하며,
Figure pat00037
는 이때 함께 보고된 수행 시간을 의미한다.
Figure pat00038
Figure pat00039
는 각각
Figure pat00040
Figure pat00041
의 평균을 의미한다.
상기 배치 반환 모듈(140)은, 상기 회귀 모델 수립 모듈(130)이 업데이트한 상기 분산 작업자(200)에 대한 선형 회귀 모델에 기초하여 가장 느린 작업자의 수행 시간을 최소화하기 위하여 전체 분산 작업자들에 할당되는 배치 크기를 조절한다.
GPU 작업자로 구성된 클러스터를 라고 하였을 때, 각 작업자에 할당되는 배치 크기의 집합
Figure pat00042
을 결정하는 문제는 수학식 5와 같이 정의할 수 있다.
Figure pat00043
여기서 지역 배치 크기
Figure pat00044
의 총 합은 전역 배치 크기(
Figure pat00045
)와 같아야 하며, 지역 배치 크기
Figure pat00046
는 각 작업자의 메모리에 의해 결정되는 상한(
Figure pat00047
)에 제한된다. 상기 배치 반환 모듈(140)은 수학식 5를 풀기 위하여 정수 선형 문제 솔버(Integer Linear Programming Solver)를 사용할 수 있다.
도 5는 본 발명의 일 실시예에 따른 배치 오케스트레이션(BOA) 서버와 분산 작업자들 사이의 동작을 설명하는 도면이다.
배치 오케스트레이션 서버와 학습 작업자 i 사이의 동작을 보여준다. 학습 작업자는 개별적으로 할당된 배치 데이터를 사용하여 기울기
Figure pat00048
를 계산하며 매 리포트 주기마다 할당 되어있는 배치 크기 정보 (
Figure pat00049
) 와 이를 사용하여 기울기를 계산하는 데 소요되는 시간 (
Figure pat00050
)을 배치 오케스트레이션 서버로 보고한다. 학습 작업자는 이 때 배치 오케스트레이션 서버에서 비동기적으로 계산 되어있는 배치 사이즈를 반환 받으며 변화가 없는 경우에는 기울기 계산 단계를 동일하게 수행한다. 반면, 배치 오케스트레이션 서버로부터 할당 받은 배치 사이즈가 변경되는 경우에는 기울기 계산에 사용하는 배치 크기를 업데이트하고 이를 위한 메모리 할당 등의 작업을 수행한 후 기울기 계산을 수행한다.
학습 작업자들은 리포트 주기(
Figure pat00051
)마다 배치 오케스트레이션 서버(BOA 서버)에게 에게 해당 이터레이션 시간과 배치 크기를 보고하며 배치 오케스트레이션 서버는 각 학습 작업자들의 최근 보고 데이터들을 정리한다. 이를 바탕으로 모든 학습 작업자들의 프로파일링이 끝났을 때 스트래글러 존재 유무를 확인하며 수학식 2가 성립하는 경우 수학식 4를 통하여 각 학습 작업자의 성능(수학식 3)을 도출한다.
배치 오케스트레이션 서버는 수식 5를 해결하기 위한 정수 성형 프로그래밍 솔버 (Integer Linear Programming Solver)를 사용하여 적절한 배치 배분 크기를 결정하며 이를 학습 작업자들에게 반환한다. 배치 오케스트레이션 서버는 학습 작업자들과 비동기적으로 동작하며, 이에 따라 실제 배분된 배치 크기는 보고 주기가 아닌 그 다음 이터레이션에 수행된다.
도 6은 본 발명의 일 실시예에 따른 배치 오케스트레이션 방법의 순서도이다.
배치 오케스트레이션 방법은, 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하는 단계(S110), 이터레이션 횟수가 리포트 주기의 정수배인지 판단하는 단계(S120), 분산 작업자가 상기 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 배치 오케스트레이션 서버에 보고하는 단계(S130)를 포함한다.
그리고, 배치 오케스트레이션 서버가 이터레이션 시간을 수집하는 단계(S210), 배치 오케스트레이션 서버가 분산 작업자에 스트래글러가 존재하는지 판단하는 단계(S220), 배치 오케스트레이션 서버가 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 하는 단계(S230), 배치 오케스트레이션 서버가 각각의 분산 작업자의 배치 크기를 재조정하는 배치 오케스트레이션을 수행하는 단계(S240), 배치 오케스트레이션 서버가 작업자 별로 재 조정된 배치 사이즈를 반환 하는 단계(S250)를 포함한다.
마지막으로, 작업자가 배치 오케스트레이션 서버로부터 재 조정된 배치 사이즈를 할당 받는 단계(S310), 작업자가 할당 받은 배치 크기(사이즈)가 변경되었는지 여부를 판단하는 단계(S320), 작업자가 할당 받은 배치 크기가 변경된 경우 변경된 배치 크기로 변경하는 단계(S330)를 포함한다.
도 7은 본 발명과 비교 기술을 전체 학습 수렴까지 걸리는 시간에 관하여 대비한 표이고, 도 8은 본 발명과 비교 기술을 학습 곡선에 관하여 대비한 결과 그래프이다.
본 발명은 대규모 이종 GPU 클러스터 환경에서 딥러닝 모델을 동기식 확률적 기울기 하강 기법을 사용하여 학습할 때 학습 시간을 가속화한다. 이는 본 발명에서 하드웨어 효율 (hardware efficiency)을 개선함으로써 발생하는데, 분산 딥러닝 학습에서 하드웨어 효율은 분산 학습 이터레이션을 수행하는 데 걸리는 평균 시간을 의미한다. 본 발명의 효과를 확인하기 위하여 ResNet 모델을 학습하였으며 1개의 QuadroM2000, 1개의 GTX1060, 그리고 2개의 GTX 1080으로 구성된 GPU 클러스터 환경에서 실험을 진행하였다.
본 발명 배치 오케스트레이션 서버를 이용한 딥러닝 수행 시스템은 기존의 비교 기술 대비 유효한 정확도까지 수렴하는데 필요한 이터레이션 수를 유지하면서 평균 이터레이션 시간을 줄이기 때문에 궁극적으로 전체 학습 시간을 줄인다(도7).
도 8은 실제 본 발명을 사용하였을 때 학습 수렴까지 걸리는 시간을 보여준다. 본 실험 결과는 본 발명이 학습 시간을 기존의 backup 작업자를 두는 방식(도 2의 방식) 보다 22%의 학습 시간 개선을 이루었음을 보여준다.
이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 청구범위에 의하여 나타내어지며, 청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 청구범위에 포함되는 것으로 해석되어야 한다.
100: 배치 오케스트레이션 서버
110: 프로파일링 모듈
120: 스트래글러 판단 모듈
130: 회귀 모델 수립 모듈
140: 배치 반환 모듈
200: 작업자

Claims (11)

  1. 이종 GPU 클러스터 환경에서 딥러닝 모델을 분산 학습하는 딥러닝(deep learning) 수행 시스템에 있어서,
    각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정하는 배치 오케스트레이션 서버; 를 포함하는 딥러닝 수행 시스템.
  2. 제1항에 있어서,
    상기 배치 오케스트레이션 서버는,
    학습에 참여하는 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 취합하는 프로파일링 모듈; 을 포함하는 딥러닝 수행 시스템.
  3. 제2항에 있어서,
    상기 배치 오케스트레이션 서버는,
    상기 프로파일링 모듈이 취합한 이터레이션 수행시간을 분석하여 상기 분산 작업자에 스트래글러(straggler)가 존재하는지 판단하는 스트래글러 판단 모듈; 을 포함하는 딥러닝 수행 시스템.
  4. 제3항에 있어서,
    상기 스트래글러 판단 모듈은,
    전체 분산 작업자들이 스트래글러의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE: straggling effect)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단하는 것을 특징으로 하는 딥러닝 수행 시스템.
  5. 제4항에 있어서,
    상기 스트래글러 판단 모듈은,
    스트래글러가 존재하는지 확인하기 위한 지표로 활용되는 상기 평균 유휴시간, SE를 수학식,
    Figure pat00052
    으로 정의하고,
    여기서 C는 GPU 작업자로 구성된 클러스터이고,
    Figure pat00053
    는 각 분산 작업자에 할당되는 배치 크기이며,
    Figure pat00054
    는 상기 배치 크기에 대한 학습 이터레이션 시간인 것을 특징으로 하는 딥러닝 수행 시스템.
  6. 제3항에 있어서,
    상기 배치 오케스트레이션 서버는,
    상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 회귀 모델 수립 모듈; 을 포함하는 딥러닝 수행 시스템.
  7. 제6항에 있어서,
    상기 회귀 모델 수립 모듈은,
    각 분산 작업자에 할당되는 배치 크기
    Figure pat00055
    에 따른, 상기 분산 작업자의 학습 성능에 해당하는 수행시간
    Figure pat00056
    을 선형 함수 수학식
    Figure pat00057
    로 모델링하고,
    상기 파라미터
    Figure pat00058
    ,
    Figure pat00059
    는 통계적 선형 회귀를 통하여 구하는 각 분산작업자 별로 결정되는 성능 파라미터인 것을 특징으로 하는 딥러닝 수행 시스템.
  8. 제6항에 있어서,
    상기 배치 오케스트레이션 서버는,
    상기 회귀 모델 수립 모듈이 업데이트한 상기 분산 작업자에 대한 선형 회귀 모델에 기초하여 가장 느린 작업자의 수행 시간을 최소화하기 위하여 전체 분산 작업자들에 할당되는 배치 크기를 조절하는 배치 반환 모듈; 을 포함하는 딥러닝 수행 시스템.
  9. 이종 GPU 클러스터 환경에서 딥러닝 모델을 분산 학습하는 딥러닝(deep learning) 수행 시스템에 있어서,
    각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정하는 배치 오케스트레이션 방법.
  10. 제9항에 있어서,
    상기 배치 오케스트레이션 방법은,
    상기 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하는 단계;
    상기 각각의 분산 작업자가 상기 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 배치 오케스트레이션 서버에 보고하는 단계;
    상기 배치 오케스트레이션 서버가 상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 하는 단계; 및
    상기 배치 오케스트레이션 서버가 상기 각각의 분산 작업자의 배치 크기를 재조정하는 배치 오케스트레이션을 수행하는 단계; 를 포함하는 배치 오케스트레이션 방법.
  11. 제10항에 있어서,
    상기 배치 오케스트레이션 방법은,
    상기 배치 오케스트레이션 서버가 상기 각각의 분산 작업자가 스트래글러(straggler)의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE: straggling effect)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단하는 스트래글러 판단 단계; 를 포함하는 배치 오케스트레이션 방법.
KR1020190023464A 2019-02-27 2019-02-27 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버 KR20200104734A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190023464A KR20200104734A (ko) 2019-02-27 2019-02-27 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190023464A KR20200104734A (ko) 2019-02-27 2019-02-27 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버

Publications (1)

Publication Number Publication Date
KR20200104734A true KR20200104734A (ko) 2020-09-04

Family

ID=72470647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190023464A KR20200104734A (ko) 2019-02-27 2019-02-27 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버

Country Status (1)

Country Link
KR (1) KR20200104734A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022050466A1 (ko) * 2020-09-07 2022-03-10 엘지전자 주식회사 수신기의 신호 진폭 범위에서 aircomp에 대한 바이어스를 사용하여 그래디언트 기호를 정렬하는 방법
CN114968553A (zh) * 2022-03-23 2022-08-30 武汉大学 面向海量机器学习任务的异构服务器自动调度系统及方法
KR20230030999A (ko) 2021-08-26 2023-03-07 한국전력공사 Gpu 기반 전력 데이터 고속 분산 처리 시스템 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022050466A1 (ko) * 2020-09-07 2022-03-10 엘지전자 주식회사 수신기의 신호 진폭 범위에서 aircomp에 대한 바이어스를 사용하여 그래디언트 기호를 정렬하는 방법
KR20230030999A (ko) 2021-08-26 2023-03-07 한국전력공사 Gpu 기반 전력 데이터 고속 분산 처리 시스템 및 방법
CN114968553A (zh) * 2022-03-23 2022-08-30 武汉大学 面向海量机器学习任务的异构服务器自动调度系统及方法

Similar Documents

Publication Publication Date Title
CN108089921B (zh) 用于云端大数据运算架构的服务器及其运算资源最佳化方法
KR20200104734A (ko) 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버
Zhao et al. Dynamic stale synchronous parallel distributed training for deep learning
EP3734475A1 (en) Method and device for training data, storage medium, and electronic device
CN108052394B (zh) 基于sql语句运行时间的资源分配的方法及计算机设备
US20200090073A1 (en) Method and apparatus for generating machine learning model
US8224845B2 (en) Transaction prediction modeling method
US20210019189A1 (en) Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment
CN111512283B (zh) 数据库中的基数估算
WO2018144534A1 (en) Hardware-based machine learning acceleration
US10169411B2 (en) Forecasting query access plan obsolescence
KR101852610B1 (ko) Ai 학습 기반 실시간 분석 시스템을 이용한 자원 사용 방법 및 이를 사용한 매니지먼트 서버
CN112101674B (zh) 基于群智能算法资源配置匹配方法、装置、设备及介质
CN115756812A (zh) 一种资源调整方法及装置、存储介质
CN114443716A (zh) 基于事件时间窗口的Gaia平台水位线动态调整方法及装置
CN104573127B (zh) 评估数据差异性的方法和系统
WO2020211529A1 (zh) 一种服务端的派工方法、装置、计算机设备及存储介质
CN116501828B (zh) 基于非结构化数据集的服务器无感知向量查询方法和系统
GB2610969A (en) Optimized deployment of analytic models in an edge topology
CN108537322A (zh) 神经网络层间激活值量化方法及装置
CN104537224B (zh) 基于自适应学习算法的多状态系统可靠性分析方法及系统
CN113254190B (zh) 基于负载能力的动态流调度方法、系统和计算机存储介质
CN105512184B (zh) 一种提高应用系统在关系数据库的空间与时间效率的方法
CN112488319B (zh) 一种具有自适应配置生成器的调参方法和系统
CN111104569B (zh) 数据库表的区域切分方法、装置及存储介质