KR20200104734A - 이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버 - Google Patents
이종 gpu 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버 Download PDFInfo
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
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 클러스터 환경에서 동기식 분산 학습의 스트래글러 해결을 위한 배치 오케스트레이션 서버에 관한 것으로, 각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정한다.
최근 자연어 처리, 이미지 처리 등과 같은 다양한 지능형 응용들에서는 최신 성능을 얻기 위하여 딥 러닝 기법을 많이 사용하고 있다. 딥 러닝은 다양한 경연에서 상위권을 차지하며 지능형 응용의 떠오르는 알고리즘으로 각광받고 있다. 하지만 이러한 딥러닝 모델은 그 모델의 크기가 크고 학습에 사용되는 데이터의 양이 많기 때문에 이를 학습하기 위해서는 단일 GPU 작업자(worker)에서 만족할 만한 성능으로 수렴하기 까지 수일에서 수주가 걸린다.
이를 해결하기 위하여 GPU 클러스터에서 딥러닝 모델을 분산 학습하는 방법이 제안되었다. 분산 처리는 많은 양의 데이터에 대한 연산을 수행할 때 군집의 장비를 활용하여 처리 속도를 가속화하는 방법이다. 딥러닝의 학습은 단순히 데이터를 처리하는 것이 아니라 데이터의 처리를 통하여 모델의 파라미터를 업데이트하는 것이 목적이다. 이를 위해서는 목적함수에 대한 파라미터들의 미분값을 구하는 역전파가 이루어져야 하는데 이러한 연산을 병렬로 가속화하기 위하여 GPU를 활용한다. 그렇기 때문에 딥러닝의 분산 처리는 CPU 보다는 GPU 자원의 분산 활용을 위하여 이루어진다.
딥러닝 모델을 분산 학습하는 대표적인 알고리즘 중 하나인 동기식(synchronous) 통계적 기울기 하강(SGD: stochastic gradient descent)은 높은 확장성으로 인해 대규모 학습 환경에서 많이 사용된다. 동기식 통계적 기울기 하강 학습법은 분산 작업자들이 나누어진 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산한 후, 이를 취합하는 파라미터 서버로 전송하여 파라미터를 업데이트하는 분산 학습 방법을 말한다. 이 때, 각 작업자들이 기울기를 계산하고 업데이트 된 파라미터를 파라미터 서버로부터 받아오기까지의 과정을 한 번의 이터레이션(iteration)으로 정의한다.
도 1은 t번째 이터레이션에서 동기식 통계적 기울기 하강 동작을 보여준다. 각 작업자는 미니 배치(batch) 크기 를 사용하여 기울기 를 구한 후 파라미터 서버로 전송하는데, 이 때 파라미터 서버는 모든 작업자들로부터 기울기를 전달받은 경우에 한하여 파라미터 를 으로 업데이트하며 이를 다시 작업자들에게 반환한다.
이러한 동기식 통계적 기울기 하강(SGD)의 성능을 높이는 데 가장 큰 걸림돌 중의 하나는 스트래글러(straggler) 문제이다. 스트래글러 문제는 각 이터레이션을 동기적으로 수행하는 알고리즘에서 매 이터레이션마다 가장 느린 작업자에 의해 이터레이션의 수행 시간이 지연되는 현상을 말한다. 스트래글러 문제는 전반적인 분산 학습의 속도를 저하시키며, 특히 이종 하드웨어 환경에서 더 심화된다.
종래의 동기식 통계적 기울기 하강 기법들은 이종 환경을 고려하지 않기 때문에 이종 환경에서 심화되는 스트래글러 문제를 해결하지 못하고 있다. 종래의 기법들의 경우 동종 학습 환경을 가정하는데, 동종 학습 환경에서 스트래글러는 일반적으로 실시간 시스템 오류나 자원 경합과 같은 동적인 요인으로 인해 발생한다. 반면에 이종 환경의 경우에는 동적인 요인보다 자원의 정적인 성능 특성에 의해 스트래글러가 결정된다.
스트래글러 문제를 해결하는 종래의 기술들은 각 이터레이션에서 기다리는 작업자의 수를 고정하거나, 기다리는 이터레이션 시간을 고정한다.
도 2는, 각 이터레이션에서 기다리는 작업자의 수를 고정한 스트래글러 해결 방법을 설명한 도면이다. 도 2에서 기다리는 작업자의 수는 “3”으로 설정되어 있다. 전체 작업자의 수는 “4”이며, 전체 작업자에서 기다리는 작업자를 제외한 나머지 하나의 작업자는 백업 작업자가 된다. 도 2에서 화살표의 길이는 작업자의 이터레이션에 소요되는 시간()을 의미한다. 전체 작업자의 이터레이션 소요 시간()을 비교하면, 작업자1, 작업자3, 작업자2, 작업자4의 순서대로 오래 소요된 것을 나타낸다. 기다리는 작업자의 수가 “3”으로 설정되어 있으므로, 4순위인 작업자4의 작업결과는 기다리지 않고, 그 결과 작업자 4의 작업결과는 버려지게 된다.
도 3은, 동기 시간을 고정한 방법으로서, 작업자가 기울기를 계산하고 그 결과를 파라미터 서버에 보고하고 업데이트된 파라미터를 받는 시간인 이터레이션에 소요되는 시간()을 고정한 경우이다. 도 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를 수학식,
상기 배치 오케스트레이션 서버는, 상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 회귀 모델 수립 모듈; 을 포함하는 것을 특징으로 한다.
상기 회귀 모델 수립 모듈은, 각 분산 작업자에 할당되는 배치 크기 에 따른, 상기 분산 작업자의 학습 성능에 해당하는 수행시간 을 선형 함수 수학식 로 모델링하고, 상기 파라미터 , 는 통계적 선형 회귀를 통하여 구하는 각 분산작업자 별로 결정되는 성능 파라미터인 것을 특징으로 한다.
상기 배치 오케스트레이션 서버는, 상기 회귀 모델 수립 모듈이 업데이트한 상기 분산 작업자에 대한 선형 회귀 모델에 기초하여 가장 느린 작업자의 수행 시간을 최소화하기 위하여 전체 분산 작업자들에 할당되는 배치 크기를 조절하는 배치 반환 모듈; 을 포함하는 것을 특징으로 한다.
본 발명은, 상기 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하는 단계; 상기 각각의 분산 작업자가 상기 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 배치 오케스트레이션 서버에 보고하는 단계; 상기 배치 오케스트레이션 서버가 상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 하는 단계; 및 상기 배치 오케스트레이션 서버가 상기 각각의 분산 작업자의 배치 크기를 재조정하는 배치 오케스트레이션을 수행하는 단계; 를 포함하는 것을 특징으로 한다.
본 발명은, 각 분산 작업자의 성능을 선형 회귀를 사용하여 도출할 수 있는 효과가 있다.
또한, 본 발명은 각 분산 작업자의 성능을 동적으로 파악하여 작업에 참여하는 모든 분산 작업자의 예상 이터레이션 시간의 최대값을 최소화하기 위한 배치 크기 조합을 찾을 수 있다.
도 1은 각 분산 작업자들이 기울기를 계산하고 업데이트 된 파라미터를 파라미터 서버로부터 받아오기까지의 과정을 설명하는 도면이다.
도 2는, 각 이터레이션에서 기다리는 작업자의 수를 고정한 스트래글러 해결 방법을 설명한 도면이다.
도 3은 동기 시간을 고정한 스트래글러 해결 방법을 설명한 도면이다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 수행 시스템의 블록도이다.
도 5는 본 발명의 일 실시예에 따른 배치 오케스트레이션(BOA) 서버와 분산 작업자들 사이의 동작을 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 배치 오케스트레이션 방법의 순서도이다.
도 7은 본 발명과 비교 기술을 전체 학습 수렴까지 걸리는 시간에 관하여 대비한 표이다.
도 8은 본 발명과 비교 기술을 학습 곡선에 관하여 대비한 결과 그래프이다.
도 2는, 각 이터레이션에서 기다리는 작업자의 수를 고정한 스트래글러 해결 방법을 설명한 도면이다.
도 3은 동기 시간을 고정한 스트래글러 해결 방법을 설명한 도면이다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 수행 시스템의 블록도이다.
도 5는 본 발명의 일 실시예에 따른 배치 오케스트레이션(BOA) 서버와 분산 작업자들 사이의 동작을 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 배치 오케스트레이션 방법의 순서도이다.
도 7은 본 발명과 비교 기술을 전체 학습 수렴까지 걸리는 시간에 관하여 대비한 표이다.
도 8은 본 발명과 비교 기술을 학습 곡선에 관하여 대비한 결과 그래프이다.
이하, 첨부되는 도면을 참고하여 본 발명의 실시예들에 대해 상세히 설명한다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 수행 시스템의 블록도이다.
본 발명은 이종 학습 환경에서 발생하는 동적/정적 스트래글러를 감지하고 이를 바탕으로 각 분산 작업자(200)의 배치 크기를 조정하기 위하여 기존의 분산 학습에 사용되는 파라미터 서버 외에 배치 오케스트레이션 서버(100)를 추가적으로 배치한다.
상기 배치 오케스트레이션 서버(100)는 프로파일링 모듈(110), 스트래글러 판단 모듈(120), 회귀 모델 수립 모듈(130), 배치 반환 모듈(140)을 포함한다.
배치 오케스트레이션 서버(100)는 학습에 참여하는 모든 분산 작업자(200)가 매 리포트 주기() 마다 전달하는 이터레이션 수행 시간을 취합하여 스트래글러(straggler)가 존재하는지 확인하고, 스트래글러가 존재한다고 판단될 경우 이를 해결하기위한 배치 오케스트레이션을 수행한다. 배치 오케스트레이션 서버(100)는 작업자(200)로부터 얻은 리포트 정보를 바탕으로 스트래글러 여부를 확인함으로써 효율적인 배치 제어를 수행한다.
상기 스트래글러 판단 모듈(120)은 프로파일링 모듈이 취합한 이터레이션 수행시간을 분석하여 상기 분산 작업자에 스트래글러(straggler)가 존재하는지 판단한다.
상기 스트래글러 판단 모듈(120)은 스트래글러가 존재하는지 확인하기 위한 지표로 스트래글링 효과 (SE: Straggling Effect)를 정의하며 이는 수학식 1과 같다.
즉, 스트래글링 효과, SE는 전체 작업자들이 스트래글러의 수행 시간으로 인해 다음 학습을 진행하지 못하는 평균 유휴시간을 의미한다.
상기 스트래글러 판단 모듈(120)은, 전체 분산 작업자(200)들이 스트래글러의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단한다. 이를 수학식으로 나타내면 수학식 2와 같다.
스트래글러 판단 모듈(120)은, 스트래글러로 인한 제어가 필요하다고 판단하는 경우 각 작업자(200)의 성능 모델을 업데이트한다. 이 때, 학습 성능은 해당 작업자(200)에서 한 번의 이터레이션을 학습하는 데 걸리는 시간을 의미하며 본 발명에서는 이를 배치 사이즈 에 대한 함수 로 표기한다. 딥러닝의 분산 처리는 CPU 보다는 GPU를 활용하는 것이 일반적이므로 GPU를 학습 작업자로 가정하여 설명한다.
상기 회귀 모델 수립 모듈(130)은, 상기 분산 작업자(200)의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트한다. 선형 함수는 수학식 3과 같다.
상기 파라미터 , 는 통계적 선형 회귀를 통하여 구해지는 각 GPU 작업자 i별로 결정되는 성능 파라미터이다. 성능 파라미터들은 매 리포트 주기()마다 보고되는 배치 사이즈()와 수행 시간 튜플()은 “선형 회귀 모델 업데이트” 단계에서 각 GPU 작업자의 성능 파라미터를 업데이트하기 위해 사용된다.
상기 회귀 모델 수립 모듈(130)은, 수집된 데이터 셋(,)을 바탕으로 선형 회귀를 수행하며 모든 GPU 작업자에 대한 선형 회귀 모델을 업데이트한다. 각 작업자별 선형 회귀 모델 업데이트는 상기 프로파일링 모듈(110)이 취득한 , 값을 만족하는 최적의 선형모델(수학식 3)을 찾는 것을 목표로 하며 이를 통해 얻어지는 파라미터는 수학식 4와 같다.
상기 배치 반환 모듈(140)은, 상기 회귀 모델 수립 모듈(130)이 업데이트한 상기 분산 작업자(200)에 대한 선형 회귀 모델에 기초하여 가장 느린 작업자의 수행 시간을 최소화하기 위하여 전체 분산 작업자들에 할당되는 배치 크기를 조절한다.
여기서 지역 배치 크기 의 총 합은 전역 배치 크기()와 같아야 하며, 지역 배치 크기 는 각 작업자의 메모리에 의해 결정되는 상한()에 제한된다. 상기 배치 반환 모듈(140)은 수학식 5를 풀기 위하여 정수 선형 문제 솔버(Integer Linear Programming Solver)를 사용할 수 있다.
도 5는 본 발명의 일 실시예에 따른 배치 오케스트레이션(BOA) 서버와 분산 작업자들 사이의 동작을 설명하는 도면이다.
배치 오케스트레이션 서버와 학습 작업자 i 사이의 동작을 보여준다. 학습 작업자는 개별적으로 할당된 배치 데이터를 사용하여 기울기 를 계산하며 매 리포트 주기마다 할당 되어있는 배치 크기 정보 () 와 이를 사용하여 기울기를 계산하는 데 소요되는 시간 ()을 배치 오케스트레이션 서버로 보고한다. 학습 작업자는 이 때 배치 오케스트레이션 서버에서 비동기적으로 계산 되어있는 배치 사이즈를 반환 받으며 변화가 없는 경우에는 기울기 계산 단계를 동일하게 수행한다. 반면, 배치 오케스트레이션 서버로부터 할당 받은 배치 사이즈가 변경되는 경우에는 기울기 계산에 사용하는 배치 크기를 업데이트하고 이를 위한 메모리 할당 등의 작업을 수행한 후 기울기 계산을 수행한다.
학습 작업자들은 리포트 주기()마다 배치 오케스트레이션 서버(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: 작업자
110: 프로파일링 모듈
120: 스트래글러 판단 모듈
130: 회귀 모델 수립 모듈
140: 배치 반환 모듈
200: 작업자
Claims (11)
- 이종 GPU 클러스터 환경에서 딥러닝 모델을 분산 학습하는 딥러닝(deep learning) 수행 시스템에 있어서,
각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정하는 배치 오케스트레이션 서버; 를 포함하는 딥러닝 수행 시스템.
- 제1항에 있어서,
상기 배치 오케스트레이션 서버는,
학습에 참여하는 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 취합하는 프로파일링 모듈; 을 포함하는 딥러닝 수행 시스템.
- 제2항에 있어서,
상기 배치 오케스트레이션 서버는,
상기 프로파일링 모듈이 취합한 이터레이션 수행시간을 분석하여 상기 분산 작업자에 스트래글러(straggler)가 존재하는지 판단하는 스트래글러 판단 모듈; 을 포함하는 딥러닝 수행 시스템. - 제3항에 있어서,
상기 스트래글러 판단 모듈은,
전체 분산 작업자들이 스트래글러의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE: straggling effect)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단하는 것을 특징으로 하는 딥러닝 수행 시스템.
- 제3항에 있어서,
상기 배치 오케스트레이션 서버는,
상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 회귀 모델 수립 모듈; 을 포함하는 딥러닝 수행 시스템.
- 제6항에 있어서,
상기 배치 오케스트레이션 서버는,
상기 회귀 모델 수립 모듈이 업데이트한 상기 분산 작업자에 대한 선형 회귀 모델에 기초하여 가장 느린 작업자의 수행 시간을 최소화하기 위하여 전체 분산 작업자들에 할당되는 배치 크기를 조절하는 배치 반환 모듈; 을 포함하는 딥러닝 수행 시스템.
- 이종 GPU 클러스터 환경에서 딥러닝 모델을 분산 학습하는 딥러닝(deep learning) 수행 시스템에 있어서,
각각의 분산 작업자별 성능을 동적으로 파악하여 상기 분산 작업자의 학습에 사용되는 데이터 배치(batch) 크기를 조절하여 상기 데이터 배치 크기를 재 조정하는 배치 오케스트레이션 방법.
- 제9항에 있어서,
상기 배치 오케스트레이션 방법은,
상기 각각의 분산 작업자가 개별적으로 할당된 배치 데이터를 사용하여 현재 파라미터에 대한 기울기를 계산하는 단계;
상기 각각의 분산 작업자가 상기 기울기를 계산하고 업데이트된 파라미터를 파라미터 서버로부터 받아오는데 소요되는 이터레이션(iteration) 수행시간을 배치 오케스트레이션 서버에 보고하는 단계;
상기 배치 오케스트레이션 서버가 상기 분산 작업자의 학습 성능을 선형 함수로 모델링하고, 상기 선형 함수의 각 파라미터를 통계적 선형 회귀를 통하여 상기 분산 작업자에 대한 선형 회귀 모델을 업데이트하는 하는 단계; 및
상기 배치 오케스트레이션 서버가 상기 각각의 분산 작업자의 배치 크기를 재조정하는 배치 오케스트레이션을 수행하는 단계; 를 포함하는 배치 오케스트레이션 방법.
- 제10항에 있어서,
상기 배치 오케스트레이션 방법은,
상기 배치 오케스트레이션 서버가 상기 각각의 분산 작업자가 스트래글러(straggler)의 수행 시간으로 인하여 다음 학습을 진행하지 못하는 평균 유휴시간(SE: straggling effect)과, 스트래글러의 이터레이션 최대 시간을 민감도 상수 s로 나눈 값(th)을, 비교하여 상기 평균 유휴시간(SE)이 상기 나눈 값(th)보다 큰 경우 스트래글러로 인한 효과가 존재하는 것으로 판단하는 스트래글러 판단 단계; 를 포함하는 배치 오케스트레이션 방법.
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)
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 기반 전력 데이터 고속 분산 처리 시스템 및 방법 |
-
2019
- 2019-02-27 KR KR1020190023464A patent/KR20200104734A/ko unknown
Cited By (3)
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) | 数据库表的区域切分方法、装置及存储介质 |