KR20220098949A - 딥러닝 모델 분산 학습 시스템 및 방법 - Google Patents

딥러닝 모델 분산 학습 시스템 및 방법 Download PDF

Info

Publication number
KR20220098949A
KR20220098949A KR1020210000865A KR20210000865A KR20220098949A KR 20220098949 A KR20220098949 A KR 20220098949A KR 1020210000865 A KR1020210000865 A KR 1020210000865A KR 20210000865 A KR20210000865 A KR 20210000865A KR 20220098949 A KR20220098949 A KR 20220098949A
Authority
KR
South Korea
Prior art keywords
learning
model
sub
deep learning
distributed
Prior art date
Application number
KR1020210000865A
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 KR1020210000865A priority Critical patent/KR20220098949A/ko
Publication of KR20220098949A publication Critical patent/KR20220098949A/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

복수 개의 컴퓨트 노드를 이용하여 딥러닝 모델을 분산 학습하는 딥러닝 모델 분산 학습 시스템에 있어서, 상기 딥러닝 모델의 학습 레이어를 기초로 상기 딥러닝 모델을 적어도 하나의 서브 모델로 분할하는 모델 분할 모듈; 상기 복수 개의 컴퓨터 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성하는 그룹 생성 모듈; 및 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 학습 모듈을 포함할 수 있다.

Description

딥러닝 모델 분산 학습 시스템 및 방법{SYSTEM AND METHOD FOR DISTRIBUTED TRAINING OF DEEP LEARNING MODEL}
본 발명은 딥러닝 모델 분산 학습 시스템 및 방법에 관한 것이다.
딥러닝(DNN: Deep Neural Network)은 인공신경망(ANN: Artificial Neural Network)을 기반으로 하여 학습 데이터 속에서 패턴을 발견하여 학습하는 기술로서, 최근 딥러닝 학습되는 딥러닝 학습 모델은 높은 정확도를 얻기 위해 심층적으로 학습됨에 따라 딥러닝 학습 모델에 사용되는 학습 데이터(또는 데이터 셋)의 크기가 커지고 있다.
이때, 대규모 딥러닝 학습 모델을 학습하기 위해서는 많은 양의 메모리와 컴퓨팅 능력을 필요로 하기 때문에 다수의 컴퓨트 노드로 구성된 고성능 컴퓨팅(HPC: High Performance Computing) 환경에서 딥러닝 학습 모델을 분산 학습하는 기술이 제시되었다.
구체적으로, 분산 학습을 통해 딥러닝 학습 모델을 학습하는 방법은 데이터 병렬화 방법과 모델 병렬화 방법이 있다.
데이터 병렬화 방법은 딥러닝 학습 모델에 사용되는 학습 데이터(또는 데이터 셋)를 분배하여 학습하는 방법으로서, 대표적으로 동기 확률적 경사 하강 (S-SGD: Synchronous Stochastic Gradient Descent) 기법이 존재한다.
모델 병렬화 방법은 딥러닝 학습 모델을 여러 개의 서브 모델로 나누고, 전체 워커 프로세서에 분배하여 학습하는 방식이다. 이때, 모델 병렬화 방법은 딥러닝 학습 모델을 동기화시키지 않아도 되며, 대규모 딥러닝 학습 모델을 학습할 때 발생하는 워커 프로세서의 메모리 문제를 해결해 주지만, 모델 병렬화가 적용되었을 경우 워커 프로세서간 활성화 데이터(activation data)를 전달하는 통신 시간이 학습 시간의 병목이 되어, 확장성이 낮은 문제점이 존재한다.
한편, 데이터 병렬화 및 모델 병렬화의 방법을 통해 대규모 딥러닝 학습 모델을 분산 학습하기 위해서는 전체 딥러닝 학습 모델을 어떻게 나누고 작업자를 할당한 것인지를 먼저 정해야 하는데, 다수의 파라미터를 갖는 대규모 딥러닝 학습 모델을 학습시키기 위해 학습 모델을 다수의 서브 모델로 분할해야만 하였다.
하지만, 대규모 딥러닝 학습 모델의 레이어 개수가 많을수록 모델 분할의 경우의 수가 많아 모델을 분할하기 쉽지 않고, 학습 데이터(또는 데이터 셋)를 분배하는 효율적인 방법을 찾는 것이 어렵다는 문제점이 존재하고 있다.
한국공개특허공보, 10-2019-0110519호 (2019.09.30. 공개)
본 발명의 해결하고자 하는 과제는, 딥러닝 모델 분산 학습 시스템 및 방법을 제공하는 것이다.
또한, 이러한 딥러닝 모델 분산 학습 시스템 및 방법을 통해 데이터 병렬화 및 모델 병렬화를 이용하여 딥러닝 모델을 학습시켜, 대용량의 학습 데이터(또는 데이터 셋)와 딥러닝 모델을 빠르게 분산 학습시키는 것 등이 본 발명의 해결하고자 하는 과제에 포함될 수 있다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 딥러닝 모델 분산 학습 시스템은, 복수 개의 컴퓨트 노드를 이용하여 딥러닝 모델을 분산 학습하는 딥러닝 모델 분산 학습 시스템에 있어서, 상기 딥러닝 모델의 학습 레이어를 기초로 상기 딥러닝 모델을 적어도 하나의 서브 모델로 분할하는 모델 분할 모듈; 상기 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성하는 그룹 생성 모듈; 및 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 학습 모듈을 포함할 수 있다.
또한, 상기 학습 모듈은, 상기 딥러닝 모델을 학습하는데 사용되는 학습 데이터를 상기 그룹에 포함된 하나 이상의 워커 프로세서에 동일하게 분배하고, 상기 학습 데이터를 분배 받은 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습할 수 있다.
또한, 상기 학습 모듈은, 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 학습된 서브 모델의 출력 데이터를 상기 학습된 서브 모델에 입력하여 상기 학습된 서브모델을 더 학습시킬 수 있다.
또한, 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 그룹에서 산출된 학습 파라미터를 취합하는 파라미터 모듈을 더 포함할 수 있다.
또한, 상기 학습 파라미터는, 상기 워커 프로세서가 상기 서브 모델을 학습할 때 발생하는 학습 시간, 상기 서브 모델을 역전파 학습할 때 발생하는 학습 시간, 상기 워커 프로세서가 상기 서브 모델을 학습한 결과 데이터의 크기 및 상기 딥러닝 모델 파라미터 크기 중 적어도 하나를 포함할 수 있다.
또한, 상기 파라미터 모듈에서 취합된 상기 학습 파라미터를 기초로, 상기 딥러닝 모델을 학습하는데 발생되는 예측 학습시간을 계산하는 학습시간 예측 모듈을 더 포함할 수 있다.
또한, 상기 취합된 학습 파라미터를 기초로 상기 예측 학습시간을 계산한 후, 상기 서브 모델 또는 상기 그룹 개수를 순차적으로 증가시켰을 때의 예측 학습시간을 각각 계산하고, 계산된 예측 학습시간 중 가장 적은 예측 학습시간을 가지는 최종 서브 모델 개수 또는 최종 그룹 개수를 산출하는 학습 최적화 모듈을 더 포함할 수 있다.
일 실시예에 따른 딥러닝 모델 분산 학습 방법은, 복수 개의 컴퓨트 노드를 이용하여 딥러닝 모델을 분산 학습하는 딥러닝 모델 분산 학습 방법에 있어서, 상기 딥러닝 모델의 학습 레이어를 기초로 상기 딥러닝 모델을 적어도 하나의 서브 모델로 분할하는 단계와, 상기 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성하는 단계와, 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 단계를 포함할 수 있다.
또한, 상기 학습하는 단계는, 상기 딥러닝 모델을 학습하는데 사용되는 학습 데이터를 상기 그룹에 포함된 하나 이상의 워커 프로세서에 동일하게 분배하는 단계와, 상기 학습 데이터를 분배 받은 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 단계를 포함할 수 있다.
또한, 상기 학습하는 단계는, 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 학습된 서브 모델의 출력 데이터를 상기 학습된 서브 모델에 입력하여 상기 학습된 서브모델을 더 학습시키는 단계를 더 포함할 수 있다.
또한, 상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 그룹에서 산출된 학습 파라미터를 취합하는 단계를 더 포함할 수 있다.
또한, 상기 학습 파라미터는, 상기 워커 프로세서가 상기 서브 모델을 학습할 때 발생하는 학습 시간, 상기 서브 모델을 역전파 학습할 때 발생하는 학습 시간, 상기 워커 프로세서가 상기 서브 모델을 학습한 결과 데이터의 크기 및 상기 딥러닝 모델 파라미터 크기 중 적어도 하나를 포함할 수 있다.
또한, 학습 파라미터를 취합하는 단계에서 취합된 학습 파라미터를 기초로, 상기 딥러닝 모델을 학습하는데 발생되는 예측 학습시간을 계산하는 단계를 더 포함할 수 있다.
또한, 상기 취합된 학습 파라미터를 기초로 상기 예측 학습시간을 계산한 후, 상기 서브 모델 또는 상기 그룹 개수를 순차적으로 증가시켰을 때의 예측 학습시간을 각각 계산하고, 계산된 예측 학습시간 중 가장 적은 예측 학습시간을 가지는 최종 서브 모델 개수 또는 최종 그룹 개수를 산출하는 단계를 더 포함할 수 있다.
일 실시예에 따른 컴퓨터 판독 가능한 기록매체는, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서, 상기 컴퓨터 프로그램은, 일 실시예에 따른 딥러닝 모델 분산 학습 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.
일 실시예에 따른 컴퓨터 프로그램은, 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 일 실시예에 따른 딥러닝 모델 분산 학습 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.
본 발명의 실시예에 의하면, 복수 개의 컴퓨트 노드를 포함하는 HPC(High Performance Computing) 환경에서, 각 컴퓨트 노드에 포함된 복수 개의 워커 프로세서를 그룹화하고, 딥러닝 모델을 적어도 하나의 서브 모델로 분할하여 그룹에 포함된 하나 이상의 워커 프로세서가 분할된 서브 모델을 학습함에 따라 워커 프로세서의 학습에 사용되는 메모리 공간이 줄어들고, 딥러닝 모델의 학습 시간이 단축될 수 있다.
또한, 그룹에 포함된 하나 이상의 워커 프로세서가 분할된 서브 모델을 학습한 후, 각 그룹에 포함된 하나 이상의 워커 프로세서가 분할된 서브 모델을 학습함에 따라 산출되는 학습 파라미터를 동기화 시키기 때문에, 딥러닝 모델의 학습 정확도가 향상될 수 있다.
또한, 딥러닝 모델의 학습 시간을 최소화 하는 배열(configuration, 예를 들어 서브 모델의 개수 또는 그룹의 개수 등)을 산출하여, 최소의 학습시간으로 딥러닝 모델을 학습시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 시스템의 동작 과정을 나타낸 도면이다.
도 3은 데이터 병렬화, 모델 병렬화 및 본 발명의 실시예에 따른 분산 학습 방법이 적용되었을 때의 시스템 구성과 간트 차트를 통한 학습 과정을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 딥러닝 모델 분산 학습 시스템을 통한 딥러닝 모델 분산 학습과정을 간트 차트 형태로 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 워커 프로세서의 개수와 동기화 통신 간의 관계를 나타낸 그래프이다.
도 6은 본 발명의 일 실시예에 따른 학습 최적화 모듈에서 최종 그룹개수를 산출하기 위한 순서도를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 방법의 절차에 대한 예시적인 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 시스템의 구성도이고, 도 2는 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 시스템의 동작 과정을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 시스템(100)은 모델 분할 모듈(110), 그룹 생성 모듈(120), 학습 모듈(130), 파라미터 모듈(140), 학습시간 예측 모듈(150) 및 학습 최적화 모듈(160)을 포함할 수 있으나, 이에 한정되는 것은 아니다. 아울러, 이러한 딥러닝 모델 분산 학습 시스템(100)에 포함된 구성 각각은 소프트웨어 모듈이나 하드웨어 모듈 형태로 구현되거나 또는 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태, 예컨대 컴퓨터나 스마트 기기 등에서 구현될 수 있고, 각각의 구성들은 전기적으로 연결될 수 있다.
일 실시예로서, 딥러닝 모델 분산 학습 시스템(100)은 다수의 컴퓨트 노드로 구성된 고성능 컴퓨팅(HPC: High Performance Computing) 환경에서 딥러닝 학습 모델을 분산 학습하는 시스템일 수 있다.
이하, 본 발명의 이해를 돕기 위하여 일 실시예에 따른 딥러닝 모델 분산 학습 시스템(100)이 딥러닝 학습 모델을 분산 학습하는 다수의 컴퓨트 노드로 구성된 고성능 컴퓨팅(HPC: High Performance Computing) 환경의 가정조건에 대하여 설명하도록 한다.
고성능 컴퓨팅(HPC: High Performance Computing) 환경은 N개의 컴퓨트 노드를 포함하며, 각 컴퓨트 노드는 P개의 워커 프로세서를 포함하고, 각 워커 프로세서는 m의 메모리 크기를 가지고 있다고 가정한다.
이때, 각 컴퓨트 노드 간의 대역폭은
Figure pat00001
, 동일 컴퓨트 노드 내 워커 프로세서간 대역폭은
Figure pat00002
로 가정한다.
또한, 딥러닝 모델 분산 학습 시스템(100)에서 학습하는 딥러닝 모델(
Figure pat00003
은 M개의 학습 레이어를 포함하고 있다고 가정한다.
모델 분할 모듈(110)은 딥러닝 모델의 학습 레이어를 기초로 딥러닝 모델을 적어도 하나의 서브 모델로 분할할 수 있다.
예를 들어, 도 2에 도시된 바와 같이 모델 분할 모듈(110)은 딥러닝 모델에 포함된 전체 학습 레이어를 분할하여 K개의 연속된 학습 레이어를 포함하는 서브 모델(
Figure pat00004
)로 분할할 수 있다.
즉, 모델 분할 모듈(110)은 딥러닝 모델을 학습 레이어 단위로 나누어, 서브 모델 집합을 형성할 수 있으며, 이때 서브 모델은 하나 이상의 연속된 레이어의 집합일 수 있다.
한편, 서브 모델 각각은 딥러닝 모델의 파라미터 크기를 결정하기 때문에 서브 모델의 학습 파라미터 동기화 통신 시간을 결정하는 데 중요한 영향을 미칠 수 있으며, 인접한 서브 모델 간에는 활성화 데이터(activation data)를 주고받기 때문에 활성화 데이터(activation data)를 주고받는 통신 시간을 결정하는 데에도 영향을 미칠 수 있다.
일 실시예로서, 모델 분할 모듈(110)은 딥러닝 모델을 하나의(K=1) 서브 모델로 분할할 수 있다. 이때, 서브 모델이 전체 딥러닝 모델이 되기 때문에, 딥러닝 모델에 사용되는 학습 데이터(또는 데이터 셋)를 분배하여 학습하는 방식인 데이터 병렬화 방법으로 딥러닝 모델이 학습될 수 있다. 이러한 경우는 딥러닝 모델의 파라미터 크기가 작거나 워커 프로세서의 개수가 적은 경우에 유용하게 학습할 수 있다.
다른 실시 예로서, 모델 분할 모듈(110)은 딥러닝 모델을 두 개 이상의(K>=2) 서브 모델로 분할할 수 있다. 이 경우, 데이터 병렬화 방법과 모델 병렬화 방법이 함께 고려되게 되며, 서브 모델의 학습 파라미터를 동기화하는데 발생되는 통신시간과 서브 모델간 활성화 데이터(activation data)가 전달되는 통신시간이 모두 발생될 수 있다.
이에 따라, 모델 분할 모듈(110)이 딥러닝 모델을 두 개 이상의 서브 모델로 분할하면, 각각의 서브 모델은 독립적으로 학습 파라미터 동기화를 수행하기 때문에 가장 동기화가 늦게 끝나는 하나의 서브 모델만 학습시간에 포함되어 서브 모델 각각의 동기화 시간이 구분되는 효과를 가질 수 있다.
하지만, 모델 분할 모듈(110)이 딥러닝 모델을 두 개 이상의 서브 모델로 분할하면, 인접한 서브 모델간의 활성화 데이터(activation data)가 전달되는 통신시간이 발생하게 되기 때문에 워커 프로세서의 학습 효율성이 낮아지는 문제점이 발생할 수 있다.
따라서, 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 시스템(100)은 그룹 생성 모듈(120)을 통하여, 복수 개의 워커 프로세서를 그룹화 하고, 학습 모듈(130)에서 각각의 그룹에 포함된 하나 이상의 워커 프로세서를 모델 분할 모듈(110)에서 분할된 서브 모델에 할당하고, 각각의 그룹에 포함된 하나 이상의 워커 프로세서 각각이 할당된 서브 모델을 학습하도록 할 수 있으며, 이하 그룹 생성 모듈(120) 및 학습 모듈(130)에 대하여 상세히 설명하도록 한다.
그룹 생성 모듈(120)은 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성할 수 있다.
여기서, 워커 프로세서는 운영 체제 또는 응용 프로그램을 구동하여 워커 프로세서에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 워커 프로세서는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
이를 위해, 워커 프로세서는 해당 동작을 수행하기 위한 전용 프로세서(예를 들어, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예를 들어, GPU(Graphics Processing Unit) 또는 CPU(Central Processing Unit) 또는 application processor 또는 MCU(Mircro controller unit) 등)로 구현될 수 있다.
일 실시예로서, 그룹 생성 모듈(120)은 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여
Figure pat00005
개의 그룹을 생성할 수 있으며, 각 그룹은
Figure pat00006
개의 워커 프로세서를 포함할 수 있다(여기서, NP는 전체 워커 프로세서의 개수임).
한편, 모델 분할 모듈(110)에서 분할된 서브모델의 개수(K개)와 그룹 생성 모듈(120)에서 생성된 그룹의 개수(R개)가 동일할 수 있으나, 이에 한정되지 않고 모델 분할 모듈(110)에서 분할된 서브모델의 개수(K개)와 그룹 생성 모듈(120)에서 생성된 그룹의 개수(R개)는 상이할 수도 있다.
학습 모듈(130)은 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 서브 모델을 학습할 수 있다.
보다 상세하게, 학습 모듈(130)은 그룹 생성 모듈(120)에서 생성된 각각의 그룹에 포함되어 있는 복수 개의 워커 프로세서를 이용하여 모델 분할 모듈(110)에서 분할된 서브 모델을 학습할 수 있다.
예를 들어, 학습 모듈(130)는 그룹 생성 모듈(120)에서 생성된 각각의 그룹에 포함되어 있는 복수 개의 워커 프로세서 각각을 모델 분할 모듈(110)에서 분할된 서브 모델에 할당하고, 그룹 생성 모듈(120)에서 생성된 각각의 그룹에 포함되어 있는 복수 개의 워커 프로세서 각각이 할당된 서브 모델을 학습하도록 할 수 있다.
보다 상세히, 학습 모듈(130)은 딥러닝 모델을 학습하는데 사용되는 학습 데이터(또는 데이터 셋)를 그룹에 포함된 하나 이상의 워커 프로세서에 동일하게 분배하고, 학습 데이터를 분배 받은 하나 이상의 워커 프로세서를 이용하여 서브 모델을 학습할 수 있다.
일 실시예로서, 학습 모듈(130)은 서브 모델
Figure pat00007
에 워커 프로세서를
Figure pat00008
개 배치한다고 가정하면 하기 수학식 1이 성립될 수 있다.
Figure pat00009
여기서,
Figure pat00010
은 각 그룹에 포함되는 워커 프로세서의 개수이다.
한편, 서브 모델
Figure pat00011
의 학습에 필요한 메모리 양을
Figure pat00012
라고 가정하면 하기 수학식 2가 성립될 수 있다.
Figure pat00013
이때, 서브 모델
Figure pat00014
를 학습하는 각 워커 프로세서에 할당되는 배치 크기는 전체 학습 배치
Figure pat00015
Figure pat00016
개의 그룹으로 균등하게 나눈 후,
Figure pat00017
개의 워커 프로세서에게 균등하게 나눈
Figure pat00018
로 표현할 수 있다.
각 워커 프로세서의 최소의 배치 크기를 b라고 정의하면, 하기 수학식 3이 성립될 수 있다.
Figure pat00019
한편, 그룹에 포함된 복수 개의 워커 프로세서는 서브 모델을 학습하여 연산하여 얻은 결과를 모아 활성화 데이터(activation data)를 생성하고, 그룹에 포함된 복수 개의 워커 프로세서에서 생성한 활성화 데이터(activation data)는 다음 서브 모델로 전달되면서, 모든 서브 모델이 피드 포워드(feed forward) 학습될 수 있다.
이후, 학습 모듈(130)은 그룹 각각에 포함된 하나 이상의 워커 프로세서를 이용하여 서브 모델을 학습한 후, 학습된 서브 모델의 출력 데이터를 학습된 서브 모델에 입력하여 학습된 서브 모델을 더 학습시킬 수 있다.
즉, 학습 모듈(130)은 그룹 각각에 포함된 하나 이상의 워커 프로세서를 이용하여 서브 모델을 학습한 후, 하나 이상의 워커 프로세서를 이용하여 학습된 서브 모델을 역전파 학습시킬 수 있다.
파라미터 모듈(140)은 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 서브 모델을 학습한 후에, 그룹에서 산출된 학습 파라미터를 취합할 수 있다.
보다 상세히, 그룹에 포함된 복수 개의 워커 프로세서 각각은 모델 분할 모듈(110)에서 분할된 서브 모델에 할당되고, 복수 개의 워커 프로세서 각각이 할당된 서브 모델의 학습을 수행한 후, 각 그룹에서는 학습 파라미터(local gradient update)가 생성되는데, 파라미터 모듈(140)은 그룹 생성 모듈(120)에서 생성된 모든 그룹 각각에 포함된 복수 개의 워커 프로세서가 생성하는 학습 파라미터(local gradient update)를 취합하여 전체 학습 파라미터(global gradient update)를 생성할 수 있다.
따라서, 동일한 서브 모델에 할당된 복수 개의 워커 프로세서 각각은 그룹에 상관없이 항상 일정한 학습 파라미터를 가질 수 있다.
이때, 파라미터 모듈(140)은 그룹 생성 모듈(120)에서 생성된 모든 그룹 각각에 포함된 복수 개의 워커 프로세서가 생성하는 학습 파라미터(local gradient update)를 취합하여 전체 학습 파라미터(global gradient update)를 생성함에 따라, 각 그룹에 포함된 복수 개의 워커 프로세서 각각에서 생성하는 학습 파라미터는 동기화 되기 때문에 딥러닝 모델을 학습하는데 있어 학습 정확도가 높아질 수 있는 효과를 도출할 수 있다.
여기서, 학습 파라미터는 워커 프로세서가 서브 모델의 학습 레이어(
Figure pat00020
)를 학습할 때 발생하는 학습 시간(
Figure pat00021
), 워커 프로세서가 서브 모델의 학습 레이어(
Figure pat00022
)를 역전파 학습할 때 발생하는 학습 시간(
Figure pat00023
), 워커 프로세서가 서브 모델을 학습한 연산 결과를 모은 활성화 데이터(activation data)의 크기(
Figure pat00024
) 및 딥러닝 모델 파라미터(
Figure pat00025
) 크기 중 적어도 하나를 포함할 수 있다.
이때, 각 워크 프로세서에서 서브 모델을 학습함에 따라 생성된 학습 파라미터는 서브 모델에 포함되는 학습 레이어들의 피드 포워드(feed forward) 학습 및 역전파 학습 시간을 누적시키고, 서브 모델의 마지막 레이어의 활성화 데이터(activation data)의 크기를 통하여 각 워커 프로세서가 서브 모델
Figure pat00026
을 학습할 때 발생하는 학습 시간
Figure pat00027
, 각 워커 프로세서가 서브 모델
Figure pat00028
을 역전파 학습할 때 발생하는 학습 시간
Figure pat00029
, 워커 프로세서가 서브 모델을 학습한 연산 결과를 모은 활성화 데이터(activation data)의 크기
Figure pat00030
일 수 있다.
한편, 서브 모델
Figure pat00031
은 각 워커 프로세서가 서브 모델을 학습하는 과정에서 활성화 데이터
Figure pat00032
를 형성하며, 각 워커 프로세서가 서브 모델을 역전파 학습 과정에서 에러
Figure pat00033
를 형성할 수 있는데, 이때, 각 워커 프로세서가 서브 모델을 학습하는 과정에서의 활성화 데이터
Figure pat00034
와 각 워커 프로세서가 서브 모델을 역전파 학습하는 과정에서 발생한 에러 데이터
Figure pat00035
은 하기 수학식 4가 성립될 수 있다.
Figure pat00036
학습시간 예측 모듈(150)은 파라미터 모듈에서 취합된 학습 파라미터를 기초로, 딥러닝 모델을 학습하는데 발생되는 예측 학습시간을 계산할 수 있다.
보다 상세히, 학습시간 예측 모듈(150)에서 예측 학습시간을 계산하는 것에 대하여 도 3 내지 도 5을 참조하여 설명하도록 한다.
도 3은 데이터 병렬화, 모델 병렬화 및 본 발명의 실시예에 따른 분산 학습 방법이 적용되었을 때의 시스템 구성과 간트 차트를 통한 학습 과정을 나타낸 도면이다. 도 4는 본 발명의 실시예에 따른 딥러닝 모델 분산 학습 시스템을 통한 딥러닝 모델 분산 학습과정을 간트 차트 형태로 나타낸 도면이다. 도 5는 본 발명의 실시예에 따른 워커 프로세서의 개수와 동기화 통신 간의 관계를 나타낸 그래프이다.
도 3을 참조하면, 딥러닝 모델의 학습 시간은 서브 모델을 학습하는 시간, 서브 모델 간 활성화 데이터(activation data)의 통신 시간, 학습 파라미터의 동기화 시간을 포함할 수 있다.
여기서, 딥러닝 모델의 학습 시간 중, 서브 모델(
Figure pat00037
)을 학습하는 시간은 복수 개의 워커 프로세서 각각에서의 서브 모델 학습 시간(
Figure pat00038
)과, 복수 개의 워커 프로세서 각각에서의 서브 모델 역전파 학습 시간(
Figure pat00039
)을 각 그룹 내에서 k번째 서브 모델에 할당되는 워커 프로세서의 개수(
Figure pat00040
)로 나누어 준 것으로 계산할 수 있다.
서브 모델 간 활성화 데이터(activation data)의 통신 시간은 서브 모델(
Figure pat00041
)이 주고 받는 데이터(
Figure pat00042
)를 대역폭으로 나눈 값으로 계산할 수 있다.
즉, 서브 모델 간 활성화 데이터(activation data)의 통신 시간은 워커 프로세서가 학습 데이터를 입력 받고(MPI_Scatter), 서브 모델 간 활성화 데이터(activation data)를 생성(MPI_Gather)하는 과정에서 발생한 통신 시간을 의미한다.
학습 파라미터의 동기화 시간은 모든 그룹에서 서브 모델 각각을 역전파 학습함에 따라 각 그룹에 포함된 복수 개의 워커 프로세서에서 생성된 학습 파라미터를 반영하는 시간으로, 각 그룹이 생성하는 학습 파라미터(Local gradient update)들을 취합(MPI_AllReduce)함에 따라 전체 학습 파라미터(Global gradient update)가 생성되는 과정에서 발생되는 시간을 의미한다.
이때, 도 4에 도시된 바와 같이, 모든 서브 모델 중, 가장 학습이 늦게 수행되는 하나의 서브 모델(이하, 동기화 서브 모델(
Figure pat00043
)이라고 칭함)의 동기화 통신 시간만이 학습 시간에 반영될 수 있다.
이 경우, 학습 파라미터 동기화 통신 시간(
Figure pat00044
)은 동기화 서브 모델에 사용된 워커 프로세서의 개수(
Figure pat00045
)에 대해 주기 P를 가지는 계단 함수 형태로 표현될 수 있으며, 동기화 서브 모델에 사용된 워커 프로세서의 개수(
Figure pat00046
)의 영역이 정해지면 상수로 취급할 수 있다.
보다 상세히, 도 5에 도시된 바와 같이, 학습 파라미터 동기화 통신 시간(
Figure pat00047
)은 워커 프로세서의 전체 개수(
Figure pat00048
)에 비례하여 증가하는 것을 확인할 수 있다.
따라서, 학습시간 예측 모듈(150)은 딥러닝 모델의 예측 학습 시간을 하기 수학식 5를 통해 계산할 수 있다.
Figure pat00049
Figure pat00050
여기서, T는 예측 학습 시간이고, yk는 매개 변수이다.
학습 최적화 모듈(160)은 파라미터 모듈(140)에서 취합된 학습 파라미터를 기초로 예측 학습시간을 계산한 후, 서브 모델 또는 그룹 개수를 순차적으로 증가시켰을 때의 예측 학습시간을 각각 계산하고, 계산된 예측 학습시간 중 가장 적은 예측 학습시간을 가지는 최종 서브 모델 개수 또는 최종 그룹개수를 산출할 수 있다.
즉, 학습 최적화 모듈(160)은 배치 크기와 딥러닝 모델, 워커 프로세서의 개수를 알고 있을 때, 딥러닝 모델의 학습 시간을 최소화 하는 하드웨어 배치(그룹의 개수(R), 서브 모델의 집합(G) 및 서브 모델에 할당된 워커 프로세서의 개수(W))를 찾을 수 있다.
이때, 학습 최적화 모듈(160)은 상기 수학식 5를 통해 산출된 예측 학습 시간을 만족하는 조건으로서, 상기 수학식 1 내지 3을 만족하는 조건을 찾아야 하며, 이때 학습 최적화 모듈(160)은 선형 계획법(Linear Programming)에 기초하여 예측 학습 시간을 구해야 하는데, 이 경우 해집합이 너무 넓기 때문에 휴리스틱 알고리즘(heuristic Algorithm)을 사용하여, 최종 서브 모델 개수 또는 최종 그룹개수를 산출할 수 있다.
일 실시예로서, 학습 최적화 모듈(160)은 서브 모델의 개수(K)를 1부터 기 설정된 서브 모델 최소 개수
Figure pat00051
까지 증가시키면서, 서브 모델의 개수에 따른 모든 예측 학습시간을 계산하여 확인할 수 있다.
보다 상세하게, 학습 최적화 모듈(160)은 서브 모델의 개수를 증가시키면서 정해진 서브 모델의 개수에서의 최소 예측 학습 시간의 추세를 파악하면서, 최소 예측학습 시간이 K가 증가했을 때 증가하는 포인트가 생기면 예측학습 시간 K가 증가할 때까지 산출한 서브 모델의 개수 중 가장 낮은 예측 학습시간을 보인 서브 모델 개수를 산출할 수 있다.
이는, 딥러닝 모델을 서브 모델로 분할하는 것은 학습 파라미터의 동기화 시간과 통신 시간을 결정하는 데 중요한 역할을 하기 때문에 모든 경우를 고려하는 것이다.
이때, 딥러닝 모델을 서브 모델로 분할하는 것의 시간 복잡도는
Figure pat00052
로 표현될 수 있다.
다른 실시예로서, 학습 최적화 모듈(160)은 서브 모델 G가 주어졌을 때, 학습 시간을 최소화하는 그룹의 개수 R과 단일 그룹의 워커 배치 w를 반환할 수 있다.
이때, 학습 최적화 모듈(160)은 서브 모델 G가 주어졌을 때 상기 수학식 1 내지 수학식 3의 조건을 만족하면서, 상기 수학식 5를 최소화하는 선형계획법 문제에 대한 해를 찾을 수 있다.
단, 모델 분할 모듈이 적용되어 있어 서브 모델 집합 G가 이미 정해져 있다고 가정하고, 학습 최적화 모듈(160)은 그룹의 개수를 변화시켜가면서 작업자 할당 모듈을 여러 번 실행하고 가장 좋은 솔루션을 선택할 수 있다. 따라서 학습 최적화 모듈(160)은 그룹의 워커 프로세서 배치를 매개변수로 가질 수 있다.
일 실시예로서, 학습 최적화 모듈(160)은 4단계를 통하여 상기 수학식 1 내지 수학식 3의 조건을 만족하면서 상기 수학식 5를 최소화하는 값을 구할 수 있다.
보다 상세히, 학습 최적화 모듈(160)에서 수행하는 가장 적은 예측 학습시간을 가지는 최종 그룹개수를 산출하는 방법에 대하여 도 6을 참조하여, 상세히 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 학습 최적화 모듈에서 최종 그룹개수를 산출하기 위한 순서도를 나타낸 도면이다.
(단계 1)
도 6을 참조하면,
Figure pat00053
인 경우에 대한 솔루션은 제외할 수 있다.
보다 상세히,
Figure pat00054
인 항이 있으면
Figure pat00055
가 증가할수록 학습 시간이 길어져 함수의 그래프가 볼록(convex)하지 않는다.
Figure pat00056
의 의미는 작업자가 증가함에 줄어드는 연산 시간의 효과보다 증가하는 통신 시간이 커서 학습 시간이 증가하는 경우로, 이 경우 최소한의 워커 프로세서를 배치하는 것이 좋기 때문에 하기 수학식 6가 성립될 수 있으며, 이후
Figure pat00057
인 경우는 배제할 수 있다.
Figure pat00058
(단계 2)
동기-서브 모델
Figure pat00059
결정할 수 있다.
학습 파라미터의 동기화 시간은 동기 서브 모델의 범위가 정해지면 상수 취급할 수 있기 때문에, 단계 2에서는 동기 서브 모델의 값을 지정하고 동기화 시간을 상수 취급할 수 있다. 이후, 동기-서브 모델에 할당된 워커 프로세서를 변화시켜 가면서 단계 3과 단계 4를 통해 나머지 워커 프로세서의 수를 정하고, 최종적으로 예측 학습 시간이 가장 빠른 경우의 워커 프로세서 개수를 최종적으로 산출할 수 있다.
(단계 3)
상기 수학식 5의 단순화를 통하여 근사 솔루션(Approximated solution)을 계산할 수 있다.
보다 상세히, 상기 수학식 5에 표현한 학습 시간을 전체 워커 프로세서의 개수(
Figure pat00060
) 에 대해 그래프가 볼록(convex)한 함수로 만들기 위해서 상기 수학식 5에 정의된
Figure pat00061
를 하기 수학식 7과 같이 단순화 하여 계산할 수 있다.
Figure pat00062
이후, 학습 최적화 모듈(160)은 단계 1 및 단계 2가 수행된 후 수학식 5의
Figure pat00063
대신 수학식 7의
Figure pat00064
을 넣어 근사하면 하기 수학식 8과 같이 표현될 수 있다.
Figure pat00065
이때, 상기 수학식 8의 함수는 전체 워커 프로세서의 개수(
Figure pat00066
)에 대해 함수의 그래프가 볼록(convex)하다. 따라서 수학식 1-3의 조건을 덧붙여 최적화 이론을 적용해 최적의 워커 프로세서 개수의 값을 찾을 수 있다.
이때, 최적의 워커 프로세서의 개수의 근사화 값(
Figure pat00067
)과 최적의 워커 프로세서의 개수의 근사화 값의 컴퓨트 노드 수(
Figure pat00068
)는 하기 수학식 9와 같이 나타낼 수 있다.
Figure pat00069
Figure pat00070
(단계 4)
단계 3에서 구한 솔루션은 상기 수학식 5에서 최적의 워커 프로세서의 개수의 근사화 값이다((
Figure pat00071
)).
따라서, 최적의 워커 프로세서의 개수의 근사화 값(
Figure pat00072
)과, 실제의 최적의 워커 프로세서의 개수 값(
Figure pat00073
) 사이에는 작은 차이가 존재할 수 있으나, 컴퓨트 노드의 수는 동일한 특성을 가지게 되므로, 이러한 특성을 활용하여
Figure pat00074
Figure pat00075
항을 상수화시켜 계산하면, 하기 수학식 10과 같이 계산될 수 있다.
Figure pat00076
Figure pat00077
따라서, 학습 최적화 모듈(160)은 상기 수학식 10을 통해 학습 시간을 최소화하는 워커 프로세서의 개수를 계산할 수 있으며, 이를 기초로 학습 시간을 최소화하는 서브 모델과 그룹의 개수를 산출할 수 있다.
도 7은 본 발명의 일 실시예에 따른 딥러닝 모델 분산 학습 방법의 절차에 대한 예시적인 순서도이다. 도 9의 딥러닝 모델 분산 학습 방법은 도 1에 도시된 딥러닝 모델 분산 학습 장치(100)에 의해 수행 가능하다. 아울러, 도 7에 도시된 딥러닝 모델 분산 학습 방법은 예시적인 것에 불과하다.
도 7을 참조하면, 모델 분할 모듈(110)은 딥러닝 모델의 학습 레이어를 기초로 딥러닝 모델을 적어도 하나의 서브 모델로 분할할 수 있다(단계 S100).
그룹 생성 모듈(120)은 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성할 수 있다(단계 S200).
학습 모듈(130)은 그룹 생성 모듈(120)에서 생성된 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 서브 모델을 학습할 수 있다(단계 S300).
이후, 그룹에 포함되어 있는 하나 이상의 워커 프로세서는 각각의 서브 모델을 학습함에 따라 학습 파라미터가 산출되고, 파라미터 모듈(140)은 그룹 별 산출된 학습 파라미터를 취합하여 전체 학습 파라미터를 생성할 수 있다.
이후, 학습시간 예측 모듈(150)은 파라미터 모듈에서 취합된 전체 학습 파라미터를 기초로, 딥러닝 모델을 학습하는데 발생되는 예측 학습시간을 계산할 수 있다.
이후, 학습 최적화 모듈(160)은 학습시간 예측 모듈(150)을 이용하여 취합된 전체 학습 파라미터를 기초로 예측 학습시간을 계산한 후, 서브 모델 또는 그룹 개수를 순차적으로 증가시켰을 때의 예측 학습시간을 각각 계산하고, 계산된 예측 학습시간 중 가장 적은 예측 학습시간을 가지는 최종 서브 모델 개수 또는 최종 그룹 개수를 산출할 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 의하면, 복수 개의 컴퓨트 노드를 포함하는 HPC(High Performance Computing) 환경에서, 각 컴퓨트 노드에 포함된 복수 개의 워커 프로세서를 그룹화하고, 딥러닝 모델을 적어도 하나의 서브 모델로 분할하여 그룹에 포함된 하나 이상의 워커 프로세서가 분할된 서브 모델 을 학습함에 따라 워커 프로세서의 학습에 사용되는 메모리 공간이 줄어들고, 딥러닝 모델의 학습 시간이 단축될 수 있다.
또한, 그룹에 포함된 하나 이상의 워커 프로세서가 분할된 서브 모델을 학습한 후, 각 그룹 포함된 하나 이상의 워커 프로세서가 분할된 서브 모델을 학습함에 따라 산출되는 학습 파라미터를 동기화 시키기 때문에, 딥러닝 모델의 학습 정확도가 향상될 수 있다.
또한, 딥러닝 모델의 학습 시간을 최소화 하는 배열(configuration, 예를 들어 서브 모델의 개수 또는 그룹의 개수 등)을 산출하여, 최소의 학습시간으로 딥러닝 모델을 학습시킬 수 있다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 딥러닝 모델 분산 학습 시스템
110: 모델 분할 모듈
120: 그룹 생성 모듈
130: 학습 모듈
140: 파라미터 모듈
150: 학습시간 예측 모듈
160: 학습 최적화 모듈

Claims (16)

  1. 복수 개의 컴퓨트 노드를 이용하여 딥러닝 모델을 분산 학습하는 딥러닝 모델 분산 학습 시스템에 있어서,
    상기 딥러닝 모델의 학습 레이어를 기초로 상기 딥러닝 모델을 적어도 하나의 서브 모델로 분할하는 모델 분할 모듈;
    상기 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성하는 그룹 생성 모듈; 및
    상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 학습 모듈을 포함하는
    딥러닝 모델 분산 학습 시스템.
  2. 제 1 항에 있어서,
    상기 학습 모듈은,
    상기 딥러닝 모델을 학습하는데 사용되는 학습 데이터를 상기 그룹에 포함된 하나 이상의 워커 프로세서에 동일하게 분배하고, 상기 학습 데이터를 분배 받은 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는
    딥러닝 모델 분산 학습 시스템.
  3. 제 2 항에 있어서,
    상기 학습 모듈은,
    상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 학습된 서브 모델의 출력 데이터를 상기 학습된 서브 모델에 입력하여 상기 학습된 서브모델을 더 학습시키는
    딥러닝 모델 분산 학습 시스템.
  4. 제 1 항에 있어서,
    상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 그룹에서 산출된 학습 파라미터를 취합하는 파라미터 모듈을 더 포함하는
    딥러닝 모델 분산 학습 시스템.
  5. 제 4 항에 있어서,
    상기 학습 파라미터는,
    상기 워커 프로세서가 상기 서브 모델을 학습할 때 발생하는 학습 시간, 상기 서브 모델을 역전파 학습할 때 발생하는 학습 시간, 상기 워커 프로세서가 상기 서브 모델을 학습한 결과 데이터의 크기 및 상기 딥러닝 모델 파라미터 크기 중 적어도 하나를 포함하는
    딥러닝 모델 분산 학습 시스템.
  6. 제 4 항에 있어서,
    상기 파라미터 모듈에서 취합된 상기 학습 파라미터를 기초로, 상기 딥러닝 모델을 학습하는데 발생되는 예측 학습시간을 계산하는 학습시간 예측 모듈을 더 포함하는
    딥러닝 모델 분산 학습 시스템.
  7. 제 6 항에 있어서,
    상기 취합된 학습 파라미터를 기초로 상기 예측 학습시간을 계산한 후, 상기 서브 모델 또는 상기 그룹 개수를 순차적으로 증가시켰을 때의 예측 학습시간을 각각 계산하고, 계산된 예측 학습시간 중 가장 적은 예측 학습시간을 가지는 최종 서브 모델 개수 또는 최종 그룹 개수를 산출하는 학습 최적화 모듈을 더 포함하는
    딥러닝 모델 분산 학습 시스템.
  8. 복수 개의 컴퓨트 노드를 이용하여 딥러닝 모델을 분산 학습하는 딥러닝 모델 분산 학습 방법에 있어서,
    상기 딥러닝 모델의 학습 레이어를 기초로 상기 딥러닝 모델을 적어도 하나의 서브 모델로 분할하는 단계와,
    상기 복수 개의 컴퓨트 노드 각각에 포함된 복수 개의 워커 프로세서를 클러스터링하여 적어도 하나의 그룹을 생성하는 단계와,
    상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 단계를 포함하는
    딥러닝 모델 분산 학습 방법.
  9. 제 8 항에 있어서,
    상기 학습하는 단계는,
    상기 딥러닝 모델을 학습하는데 사용되는 학습 데이터를 상기 그룹에 포함된 하나 이상의 워커 프로세서에 동일하게 분배하는 단계와,
    상기 학습 데이터를 분배 받은 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습하는 단계를 포함하는
    딥러닝 모델 분산 학습 방법.
  10. 제 9 항에 있어서,
    상기 학습하는 단계는,
    상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 학습된 서브 모델의 출력 데이터를 상기 학습된 서브 모델에 입력하여 상기 학습된 서브모델을 더 학습시키는 단계를 더 포함하는
    딥러닝 모델 분산 학습 방법.
  11. 제 8 항에 있어서,
    상기 그룹에 포함된 하나 이상의 워커 프로세서를 이용하여 상기 서브 모델을 학습한 후, 상기 그룹에서 산출된 학습 파라미터를 취합하는 단계를 더 포함하는
    딥러닝 모델 분산 학습 방법.
  12. 제 11 항에 있어서,
    상기 학습 파라미터는,
    상기 워커 프로세서가 상기 서브 모델을 학습할 때 발생하는 학습 시간, 상기 서브 모델을 역전파 학습할 때 발생하는 학습 시간, 상기 워커 프로세서가 상기 서브 모델을 학습한 결과 데이터의 크기 및 상기 딥러닝 모델 파라미터 크기 중 적어도 하나를 포함하는
    딥러닝 모델 분산 학습 방법.
  13. 제 12 항에 있어서,
    학습 파라미터를 취합하는 단계에서 취합된 학습 파라미터를 기초로, 상기 딥러닝 모델을 학습하는데 발생되는 예측 학습시간을 계산하는 단계를 더 포함하는
    딥러닝 모델 분산 학습 방법.
  14. 제 13 항에 있어서,
    상기 취합된 학습 파라미터를 기초로 상기 예측 학습시간을 계산한 후, 상기 서브 모델 또는 상기 그룹 개수를 순차적으로 증가시켰을 때의 예측 학습시간을 각각 계산하고, 계산된 예측 학습시간 중 가장 적은 예측 학습시간을 가지는 최종 서브 모델 개수 또는 최종 그룹 개수를 산출하는 단계를 더 포함하는
    딥러닝 모델 분산 학습 방법.
  15. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    제 8 항 내지 제 14 항 중 어느 한 항에 따른 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 판독 가능한 기록매체.
  16. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은,
    제 8 항 내지 제 14 항 중 어느 한 항에 따른 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 프로그램.
KR1020210000865A 2021-01-05 2021-01-05 딥러닝 모델 분산 학습 시스템 및 방법 KR20220098949A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210000865A KR20220098949A (ko) 2021-01-05 2021-01-05 딥러닝 모델 분산 학습 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210000865A KR20220098949A (ko) 2021-01-05 2021-01-05 딥러닝 모델 분산 학습 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20220098949A true KR20220098949A (ko) 2022-07-12

Family

ID=82419891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210000865A KR20220098949A (ko) 2021-01-05 2021-01-05 딥러닝 모델 분산 학습 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20220098949A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102530115B1 (ko) * 2022-01-20 2023-05-08 가천대학교 산학협력단 엣지서버에서 수행되는 데이터 분포 정보 기반 연합학습 데이터 샘플링 기술의 구현방법
KR20240020025A (ko) * 2022-08-05 2024-02-14 주식회사 노타 분할된 딥러닝 모델을 이용한 서비스 제공 방법 및 시스템
KR20240075240A (ko) 2022-11-22 2024-05-29 한국전자통신연구원 분산 학습 고가용성 제공 시스템 및 방법
KR20240079749A (ko) 2022-11-29 2024-06-05 한국전자통신연구원 채널 공유 네트워크 환경에서의 인공지능 모델 분산 학습 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190110519A (ko) 2016-08-19 2019-09-30 모비디어스 리미티드 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190110519A (ko) 2016-08-19 2019-09-30 모비디어스 리미티드 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102530115B1 (ko) * 2022-01-20 2023-05-08 가천대학교 산학협력단 엣지서버에서 수행되는 데이터 분포 정보 기반 연합학습 데이터 샘플링 기술의 구현방법
KR20240020025A (ko) * 2022-08-05 2024-02-14 주식회사 노타 분할된 딥러닝 모델을 이용한 서비스 제공 방법 및 시스템
KR20240075240A (ko) 2022-11-22 2024-05-29 한국전자통신연구원 분산 학습 고가용성 제공 시스템 및 방법
KR20240079749A (ko) 2022-11-29 2024-06-05 한국전자통신연구원 채널 공유 네트워크 환경에서의 인공지능 모델 분산 학습 방법 및 장치

Similar Documents

Publication Publication Date Title
KR20220098949A (ko) 딥러닝 모델 분산 학습 시스템 및 방법
CN109993299B (zh) 数据训练方法及装置、存储介质、电子装置
US11989647B2 (en) Self-learning scheduler for application orchestration on shared compute cluster
CN107888669B (zh) 一种基于深度学习神经网络的大规模资源调度系统及方法
EP3399426B1 (en) Method and device for training model in distributed system
US20220129302A1 (en) Data processing system and method for heterogeneous architecture
US10783436B2 (en) Deep learning application distribution
US20140130059A1 (en) Lattice Computing
US20220129408A1 (en) Data actor and data processing method thereof
KR20190054449A (ko) 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법
CN105975342A (zh) 基于改进布谷鸟搜索算法的云计算任务调度方法及系统
CN104636204A (zh) 一种任务调度方法与装置
CN113742089B (zh) 异构资源中神经网络计算任务的分配方法、装置和设备
CN113472597B (zh) 分布式卷积神经网络细粒度的参数传输调度方法及装置
CN113037800B (zh) 作业调度方法以及作业调度装置
KR102308105B1 (ko) 분산 병렬 기반 인공지능 예측 모델 관제 장치 및 방법
CN112862083B (zh) 一种边缘环境下的深度神经网络推断方法及装置
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
KR102463147B1 (ko) 초병렬 심층 학습 방법 및 장치
CN113590281A (zh) 基于动态集中式调度的分布式并行模糊测试方法及系统
Obaida et al. Simulation of HPC job scheduling and large-scale parallel workloads
CN108737130B (zh) 基于神经网络的网络流量预测装置及方法
CN115794385A (zh) 一种面向深度学习模型分布式训练的容器自动编排方法
Al Maruf et al. Optimizing DNNs Model Partitioning for Enhanced Performance on Edge Devices.
Mithila et al. Latency-based vector scheduling of many-task applications for a hybrid cloud

Legal Events

Date Code Title Description
E902 Notification of reason for refusal