KR20230099543A - 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치 - Google Patents

분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치 Download PDF

Info

Publication number
KR20230099543A
KR20230099543A KR1020210189012A KR20210189012A KR20230099543A KR 20230099543 A KR20230099543 A KR 20230099543A KR 1020210189012 A KR1020210189012 A KR 1020210189012A KR 20210189012 A KR20210189012 A KR 20210189012A KR 20230099543 A KR20230099543 A KR 20230099543A
Authority
KR
South Korea
Prior art keywords
group
worker
learning
workers
stale
Prior art date
Application number
KR1020210189012A
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 KR1020210189012A priority Critical patent/KR20230099543A/ko
Publication of KR20230099543A publication Critical patent/KR20230099543A/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
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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

Abstract

분산 병렬 학습 방법이 개시된다. 본 발명에 따른 분산 병렬 학습 방법은, 분산 병렬 학습을 수행하는 복수의 워커를 복수의 그룹으로 분류하는 단계, 상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하는 단계, 상기 복수의 동기화 시간에 기초하여, 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 단계, 및, 상기 복수의 그룹 내 소속 워커들이, 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계를 포함한다.

Description

분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치{DISTRIBUTED PARALLEL LEARNING METHOD AND DISTRIBUTED PARALLEL LEARNING CONTROL DEVICE}
본 발명은, 다양한 성능을 가지는 워커들을 이용한 분산 병렬 학습에 있어서, 학습 효율성을 극대화시킬 수 있는 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치에 관한 것이다.
최근의 딥 러닝 학습에 필요한 학습 데이터의 크기나 딥 러닝 네크워크 자체의 크기가 점차 증가하면서, 단일 컴퓨팅 노드의 컴퓨팅 성능이나 메모리 만으로 딥 러닝 학습을 수행하는 것이 어려워지고 있다. 예를 들어, 최근에 딥러닝에서 가장 큰 주목을 받고 있는 GPT-3 와 같은 언어모델의 경우, 모델의 크기가 늘어날수록 성능 또한 향상되는 모습을 보이고 있기 때문에, 모델의 성능을 위해서 모델의 크기를 키우는 경향이 계속될 것으로 보인다.
이와 같은 대규모의 딥러닝 학습 모델을 단일 컴퓨팅 노드에서 처리한다면, 막대한 연산 량과 학습데이터의 증가로 인해서 매우 오랜 학습 시간이 소요된다. 따라서 막대한 작업부하를 다수의 컴퓨팅 노드들에 효과적으로 분배하는 분산 병렬 딥러닝 구조가 필수적으로 요구되고 있으며 관련된 많은 연구들이 활발하게 진행되고 있다
도 1은 데이터 병렬 처리 방식의 분산 병렬 학습 방법과 모델 병렬 처리 방식의 분산 병렬 학습 방법을 도시한 도면이다.
일반적으로 대규모 딥러닝 학습 모델의 학습을 가속할 경우 도 1a의 데이터 병렬 처리 방식 또는 도 1b의 모델 병렬 처리 방식을 사용한다. 데이터 병렬 처리 방식은 각 컴퓨팅 노드에 전체 모델을 복사하고, 입력 데이터를 컴퓨팅 노드의 수만큼 분할하여 각 컴퓨팅 노드에 할당하고, 각 컴퓨팅 노드는 할당된 데이터에 대해서 학습을 진행하는 병렬 처리 방식이다. 반면에 모델 병렬 처리 방식은 각 컴퓨팅 노드에 입력 데이터를 동일하게 로딩하고, 학습 모델을 적절하게 분할하여 각 컴퓨팅 노드에 할당한 뒤, 각 컴퓨팅 노드는 자기에게 할당된 학습 모델(이하에서는, 로컬 모델이라 함)에 대한 학습을 진행하는 병렬 처리 방식이다.
이와 같은 병렬 처리 방식이 적용되는 경우, 전체 학습 모델(이하에서는, 글로벌 모델이라 함)의 글로벌 모델 파라미터(global model parameter)(이하 글로벌 파라미터라 함)를 관리하고 저장하는 서버와, 글로벌 파라미터의 사본과 학습 데이터의 일부를 전송 받아서 그래디언트를 계산하는 컴퓨팅 노드들이 필요하다. 여기서 컴퓨팅 노드는, GPU(Graphics Processing Unit) 또는 CPU(Central Processing Unit) 등이 될 수 있다.
각 컴퓨팅 노드의 딥러닝 모델은 서로 다른 데이터를 사용하여 학습을 진행하기 때문에 결과적으로 서로 다른 로컬 모델 파라미터(local model parameter)(이하, 로컬 파라미터라 함)를 가진다. 그리고 컴퓨팅 노드들로부터 계산된 서로 다른 로컬 파라미터들을 통합하여 하나의 글로벌 파라미터를 생성하는 과정이 필요하다.
최근 딥 러닝 기반 분산 병렬 학습 방법에서는 일반적으로 서버를 이용한 중앙 관리형 방식을 사용한다. 이 경우 다수의 컴퓨팅 노드들이 서버에 엑세스 하여 자신이 가진 로컬 모델의 로컬 파라미터를 업데이트 하고, 서버가 가진 글로벌 모델의 글로벌 파라미터를 조회한다. 이 경우, 다수의 컴퓨팅 노드들의 컴퓨팅 성능이 상이하기 때문에, 글로벌 파라미터의 버전 관리를 위한 동기화가 요구된다.
딥 러닝 기반 분산 병렬 학습 방법에 적용할 수 있는 글로벌 파라미터의 버전 관리 방법은, 크게 동기식(synchronous) 학습 방법과 비동기식(asynchronous) 학습 방법으로 구분된다.
동기식 학습 방법은 상대적으로 학습 속도가 빠른 컴퓨팅 노드들이 학습 속도가 느린 컴퓨팅 노드들의 학습 속도에 맞추어 학습을 진행하며, 일정 시점(예를 들어 학습 속도가 가장 느린 컴퓨팅 노드가 반복을 완료한 시점)에 모든 컴퓨팅 노드들의 로컬 파라미터를 조합하여 글로벌 파라미터를 생성한다. 즉, 서버에서는 모든 컴퓨팅 노드들의 로컬 파라미터를 일괄적으로 수집 및 조합하여 글로벌 파라미터를 업데이트한다. 그리고 업데이트된 글로벌 파라미터가 컴퓨팅 노드들에 일괄적으로 배포되면, 컴퓨팅 노드들은 다음 학습을 진행한다. 이와 같은 동기식 학습 방법의 경우, 학습의 정확도가 보장된다는 장점이 있으나, 모든 컴퓨팅 노드들이 학습 진도가 가장 느린 컴퓨팅 노드의 진도에 맞춰지기 때문에, 전체적인 학습 속도가 너무 느려지는 문제가 발생한다.
비동기식 학습 방법은 컴퓨팅 노드들이 서로 독립적으로 학습을 진행한다. 따라서 각 컴퓨팅 노드들은 다른 컴퓨팅 노드의 진도와는 관계 없이, 자신의 반복이 완료된 경우에 로컬 파라미터를 서버에 업데이트 하며, 자신의 파라미터를 이용하여 업데이트된 글로벌 파라미터를 배포 받아 다음 학습을 진행한다. 그리고 비동기식 학습 방법의 경우 학습 속도가 매우 빠르다는 장점이 있으나, 각 컴퓨팅 노드들은 서버로부터 동일하지 않은 글로벌 파라미터를 배포받아 학습을 진행하기 때문에 학습 정확도가 떨어진다는 문제가 발생한다.
동기식 학습 방법의 속도에서의 한계와 비동기식 학습 방법의 정확도에서의 한계를 모두 보완하기 위해, SSP(Stale Synchronous Parallel) 학습 방법이 등장하였다. SSP(Stale Synchronous Parallel) 학습 방법의 가장 큰 특징은, 학습 속도가 가장 느린 컴퓨팅 노드의 학습 진도를 기준으로, 학습 진도의 차이가 임계값(threshold)을 초과하는 컴퓨팅 노드는 학습을 중단하는 방식이다. 그리고 학습 속도가 가장 느린 컴퓨팅 노드가 반복을 완료하면, 서버는 모든 컴퓨팅 노드들의 로컬 파라미터를 조합하여 글로벌 파라미터를 업데이트하고, 업데이트된 글로벌 파라미터를 컴퓨팅 노드들에 다시 배포한다.
SSP 학습방법에서는 컴퓨팅 노드들에게 부분적인 독립성이 부여됨으로써, 동기식 학습 방법과 비동기식 학습 방법의 한계점을 극복한다. 다만 현재의 SSP 학습 방법에서는 고정적인 threshold를 운용하기 때문에 학습에 참여하는 다수 컴퓨팅 노드들간의 성능 차이가 큰 경우에는 각 컴퓨팅 노드들의 성능에 따른 편차를 보정해 주지 못하며, 이 때문에 많은 대기시간이 발생하는 등의 한계를 가진다. 예를 들어 가장 빠른 컴퓨팅 노드가 가장 느린 컴퓨팅 노드보다 10배의 속도를 가지고 임계값(threshold)이 2인 경우를 가정하면, 가장 빠른 컴퓨팅 노드가 3회의 반복을 완료한 경우에도 가장 느린 컴퓨팅 노드는 1회 반복의 30프로를 진행하였을 뿐이다. 따라서 가장 느린 컴퓨팅 노드가 나머지 70프로를 진행할 동안 가장 빠른 컴퓨팅 노드는 더 이상 학습을 진행하지 못하고 대기하여야 하기 때문에, 학습 효율이 떨어지는 문제가 발생한다.
특히 최근 딥러닝 학습에 사용되는 하드웨어(예를 들어 CPU, GPU 등)는 1년에 2~3배 이상의 속도 향상이 이루어질 정도로 빠르게 발전하고 있으며, IPU(Intelligence Processing Unit)나 NPU(Neural Processing Unit)와 같은 다양한 성능을 가지는 새로운 학습 하드웨어도 등장하고 있다. 다만 분산 병렬 학습을 수행할 수 있는 환경(예를 들어 데이터 센터)은 지속적으로 운용 및 업그레이드되는 것이 일반적이기 때문에, 내부에는 최신의 하드웨어로부터 길게는 십수년이 지난 하드웨어까지 운용되고 있는 실정이다. 따라서, 성능의 편차가 심한 하드웨어들을 이용하여 분산 병렬 학습의 효율을 극대화 시킬 필요성이 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은, 다양한 성능을 가지는 워커들을 이용한 분산 병렬 학습에 있어서, 학습 효율성을 극대화시킬 수 있는 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치를 제공하기 위함이다.
본 발명에 따른 분산 병렬 학습 방법은, 분산 병렬 학습을 수행하는 복수의 워커를 복수의 그룹으로 분류하는 단계, 상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하는 단계, 상기 복수의 동기화 시간에 기초하여, 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 단계, 및, 상기 복수의 그룹 내 소속 워커들이, 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계를 포함한다.
이 경우 상기 복수의 워커를 복수의 그룹으로 분류하는 단계는, 상기 복수의 워커의 학습 속도를 획득하고, 성능이 유사한 워커들을 그룹핑하는 단계를 포함할 수 있다.
한편 상기 복수의 동기화 시간은, 해당 그룹 내 소속 워커들이 반복을 시작한 시점으로부터, 해당 그룹에서 학습 속도가 가장 느린 소속 워커가 반복을 중단한 시점까지 소요되는 시간에 비례할 수 있다.
이 경우 상기 복수의 동기화 시간을 산출하는 단계는, 그룹 별로, 소속 워커들이 1회의 반복을 처리하는 평균 시간 및 소속 워커들이 1회의 반복을 처리하는 시간의 표준 편차를 획득하는 단계, 및, 상기 평균 시간 및 상기 표준 편차를 이용하여, 그룹 별 동기화 시간을 산출하는 단계를 포함할 수 있다.
이 경우 상기 그룹 별 동기화 시간은, 해당 그룹의 상기 평균 시간에 비례하고, 해당 그룹의 상기 표준 편차에 반비례 할 수 있다.
한편 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 단계는, 상기 복수의 동기화 시간 중 기준 동기화 시간을 선정하는 단계, 및, 상기 기준 동기화 시간과 해당 그룹의 동기화 시간을 비교하여, 해당 그룹의 워커 스테일 임계 값을 설정하는 단계를 포함할 수 있다.
이 경우, 해당 그룹의 동기화 시간이 상기 기준 동기화 시간보다 큰 경우, 해당 그룹의 워커 스테일 임계값은 상기 기준 동기화 시간을 가지는 그룹의 워커 스테일 임계 값보다 작게 설정될 수 있다.
한편 상기 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계를 더 포함할 수 있다.
이 경우 상기 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계는, 학습 속도가 가장 빠른 그룹과 학습 속도가 가장 느린 그룹 사이의 싸이클 횟수의 차이가 그룹 스테일 임계 값을 초과하는 경우, 상기 가장 빠른 그룹이 학습을 중단하는 단계, 및, 상기 가장 느린 그룹이 현재의 싸이클을 완료하면, 상기 복수의 그룹이 로컬 파라미터를 보고하는 단계를 포함할 수 있다.
이 경우 상기 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계는, 상기 가장 빠른 그룹 내 가장 빠른 소속 워커와 상기 가장 빠른 그룹 내 가장 느린 소속 워커 사이의 반복 횟수의 차이가 워커 스테일 임계 값을 초과하는 경우, 상기 가장 빠른 소속 워커가 반복을 중단하고 대기하는 단계, 및, 상기 가장 느린 그룹이 현재의 싸이클을 완료하면, 상기 가장 빠른 그룹 내 상기 가장 빠른 소속 워커가 로컬 파라미터를 보고하는 단계를 포함할 수 있다.
한편 본 발명에 따른 분산 병렬 학습 시스템은, 분산 병렬 학습을 수행하는 복수의 워커, 및, 상기 복수의 워커를 복수의 그룹으로 분류하고, 상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하고, 상기 복수의 동기화 시간에 기초하여 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 분산 병렬 학습 제어 장치를 포함하고, 상기 복수의 그룹 내 소속 워커들은, 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습한다.
이 경우 상기 분산 병렬 학습 제어 장치는, 상기 복수의 워커의 학습 속도를 획득하고, 성능이 유사한 워커들을 그룹핑할 수 있다.
한편 상기 복수의 동기화 시간은, 해당 그룹 내 소속 워커들이 반복을 시작한 시점으로부터, 해당 그룹에서 학습 속도가 가장 느린 소속 워커가 반복을 중단한 시점까지 소요되는 시간에 비례할 수 있다.
이 경우 상기 분산 병렬 학습 제어 장치는, 그룹 별로, 소속 워커들이 1회의 반복을 처리하는 평균 시간 및 소속 워커들이 1회의 반복을 처리하는 시간의 표준 편차를 획득하고, 상기 평균 시간 및 상기 표준 편차를 이용하여, 그룹 별 동기화 시간을 산출할 수 있다.
이 경우 상기 그룹 별 동기화 시간은, 해당 그룹의 상기 평균 시간에 비례하고, 해당 그룹의 상기 표준 편차에 반비례 할 수 있다.
한편 상기 분산 병렬 학습 제어 장치는, 상기 복수의 동기화 시간 중 기준 동기화 시간을 선정하고, 상기 기준 동기화 시간과 해당 그룹의 동기화 시간을 비교하여, 해당 그룹의 워커 스테일 임계 값을 설정할 수 있다.
이 경우 해당 그룹의 동기화 시간이 상기 기준 동기화 시간보다 큰 경우, 해당 그룹의 워커 스테일 임계값은 상기 기준 동기화 시간을 가지는 그룹의 워커 스테일 임계 값보다 작게 설정될 수 있다.
한편 상기 복수의 그룹 내 소속 워커들은, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습할 수 있다.
이 경우 상기 복수의 그룹 중 학습 속도가 가장 빠른 그룹은, 상기 학습 속도가 가장 빠른 그룹과 학습 속도가 가장 느린 그룹 사이의 싸이클 횟수의 차이가 그룹 스테일 임계 값을 초과하는 경우, 학습을 중단하고, 상기 복수의 그룹은, 상기 가장 느린 그룹이 현재의 싸이클을 완료하면 로컬 파라미터를 보고할 수 있다.
한편 본 발명에 따른 분산 병렬 학습 제어 장치는, 분산 병렬 학습을 수행하는 복수의 워커와 통신하는 통신부, 및, 상기 복수의 워커를 복수의 그룹으로 분류하고, 상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하고, 상기 복수의 동기화 시간에 기초하여, 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하고, 상기 복수의 그룹 내 소속 워커들이 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하도록 제어하는 제어부를 포함한다.
본 발명에 따르면, 워커들의 성능을 기준으로 워커들을 그룹화하여 학습 대기 시간을 줄일 수 있는 장점이 있다.
본 발명에 따르면, 그룹 별로 스테일 임계 값을 다르게 설정하여 지연된 그래디언트 업데이트 문제를 해결할 수 있다.
본 발명에 따르면, 그룹 내 워커들의 SSP 학습과 그룹간 SSP 학습을 병행함으로써 분산 병렬 학습을 수행하는 워커들의 학습 효율을 최적화할 수 있는 장점이 있다.
도 1은 데이터 병렬 처리 방식의 분산 병렬 학습 방법과 모델 병렬 처리 방식의 분산 병렬 학습 방법을 도시한 도면이다.
도 2는 본 발명에 따른 분산 병렬 학습 시스템 및 분산 병렬 학습 제어 장치를 설명하기 위한 도면이다.
도 3은 본 발명에 따른 분산 병렬 학습 방법을 설명하기 위한 순서도이다.
도 4는 본 발명에 따른, 복수의 워커를 복수의 그룹으로 분류하는 방법을 설명하기 위한 도면이다.
도 5는 그룹 내 소속 워커들의 SSP 학습 방법 및 그룹 간 SSP 학습 방법을 설명하기 위한 도면이다.
도 6은 동일한 워커 스테일 임계 값에 기초하여 학습하는 경우 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 7은 본 발명에 따른, 워커 스테일 임계값의 변경 이후를 설명하기 위한 도면이다.
도 8은 각 그룹의 워커 스테일 임계 값이 설정된 이후의 동작을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
도 2는 본 발명에 따른 분산 병렬 학습 시스템 및 분산 병렬 학습 제어 장치를 설명하기 위한 도면이다.
분산 병렬 학습 시스템은 복수의 워커(210) 및 분산 병렬 학습 제어 장치(100)를 포함할 수 있다.
본 명세서에서는 앞서 설명한 컴퓨팅 노드를 “워커(worker)”라 명칭하도록 한다. 그리고 복수의 워커(210)는 분산 병렬 학습을 수행할 수 있다.
복수의 워커(210) 각각은 제어부, 통신부 및 메모리를 포함할 수 있다.
워커(210)의 메모리는 다양한 학습 알고리즘으로 학습될 수 있는, 인공지능 모델의 로컬 모델을 저장할 수 있다. 여기서 로컬 모델은 전체 학습 모델(글로벌 모델)의 일부 또는 전부로써, 해당 워커(210)에 할당된 것일 수 있다. 또한 로컬 모델은, 로컬 모델을 구성하는 로컬 파라미터를 포함할 수 있다. 여기서 로컬 파라미터는 로컬 모델의 가중치, 편향 등을 포함할 수 있다.
워커(210)의 제어부는 워커(210)의 전반적인 동작을 제어할 수 있다.
또한 워커(210)의 제어부는 CPU, GPU, IPU(Intelligence Processing Unit)나 NPU(Neural Processing Unit) 등, 딥 러닝 알고리즘에 기반한 연산을 수행할 수 있는 하나 이상의 프로세서로 구성될 수 있다.
그리고 워커(210)의 제어부는 자신이 보유한 로컬 모델을 학습시킬 수 있다. 학습의 일 예로, 워커(210)는 학습 데이터를 로컬 모델에 제공하고, 로컬 모델이 출력한 예측 데이터 및 정답 데이터 간의 차이에 기반하여 로스 값을 산출하고, 로스 값을 역전파하여 로컬 모델의 로컬 파라미터를 업데이트 하는 방식으로 로컬 모델을 학습시킬 수 있다. 다만 이는 일 예시에 불과한 것으로, 워커(210)의 제어부는 다양한 학습 알고리즘에 기반하여 로컬 모델을 학습시킬 수 있다.
워커(210)의 제어부는 자신의 학습 결과에 기반하여 메모리에 저장된 기존의 로컬 파라미터를 업데이트 할 수 있다. 또한 장치(100)로부터 글로벌 파라미터의 일부 또는 전부가 수신되는 경우, 워커(210)의 제어부는 수신된 글로벌 파라미터(즉, 해당 워커에 할당된 파라미터)를 이용하여 메모리의 로컬 파라미터를 업데이트 할 수 있다.
워커(210)의 통신부는 분산 병렬 학습 제어 장치(100)(이하, 장치(100)라 함)와 통신하기 위한 통신 인터페이스를 제공할 수 있다. 이 경우 워커(210)의 통신부는, 워커(210)의 제어부의 제어 하에, 장치(100)와 데이터, 정보, 각종 명령 등을 송신 및 수신할 수 있다.
또한 워커(210)의 통신부는, 장치(100)로부터, 해당 워커(210)에 할당된 학습 데이터를 수신할 수 있다.
또한 워커(210)의 통신부는 워커(100)의 로컬 파라미터를 분산 병렬 학습 제어 장치(100)에 전송할 수 있다. 한편 분산 병렬 학습 제어 장치(100)는 복수의 워커(210)의 일부 또는 전부로부터 수신된 로컬 파라미터를 조합하여 글로벌 모델의 글로벌 파라미터를 업데이트 할 수 있으며, 업데이트된 글로벌 파라미터의 일부 또는 전부를 각 워커(210)에 전송할 수 있다. 이 경우 워커(210)의 통신부는 해당 워커(210)에 할당된 글로벌 파라미터를 수신할 수 있다.
한편 이하에서는, 글로벌 파라미터의 업데이트를 위하여 워커(210)가 장치(100)에 자신의 로컬 파라미터를 전송하는 것을 “로컬 파라미터를 보고한다”라고 표현한다.
또한 이하에서는, 워커들로부터 로컬 파라미터를 수신하고, 이를 이용하여 글로벌 파라미터를 업데이트하고, 업데이트된 글로벌 파라미터를 다시 할당하여 워커들에 전송하는 동작을 장치(100)가 수행하는 것으로 설명한다. 다만 이에 한정되지 않으며, 워커들은 상호간에 통신하여 로컬 파라미터를 공유하고 이를 통해 다른 워커들에서 업데이트된 로컬 파라미터를 이용하여 자신의 로컬 파라미터를 업데이트할 수 있다. 따라서 워커들 간의 로컬 파라미터의 공유를 위하여 워커(210)가 다른 워커에 자신의 로컬 파라미터를 전송하는 것 역시 “로컬 파라미터를 보고한다”라고 표현한다.
또한 “로컬 파라미터를 보고한다”의 의미는, 로컬 파라미터 자체를 보고하는 것뿐만 아니라, 워커에서의 학습에 기반하여 글로벌 파라미터를 업데이트시킬 수 있는 데이터(예를 들어 그래디언트(Gradient))를 보고하는 것을 포함할 수 있다.
한편 글로벌 모델을 보유한 서버가 장치(100)로써 동작할 수 있다. 다만 이에 한정되지 않으며, 복수의 워커 중 어느 하나, 또는 별도의 기기가 장치(100)의 동작을 수행할 수도 있다.
장치(100)는 통신부(110), 제어부(120) 및 메모리(130)를 포함할 수 있다.
장치(100)의 메모리(130)는 인공지능 모델의 다양한 학습 알고리즘으로 학습될 수 있는 글로벌 모델을 저장할 수 있다. 여기서 글로벌 모델은 전체 학습 모델로써, 글로벌 모델을 구성하는 글로벌 파라미터를 포함할 수 있다. 여기서 글로벌 파라미터는 글로벌 모델의 가중치, 편향 등을 포함할 수 있다.
장치(100)의 제어부(120)는 장치(100)의 전반적인 동작을 제어할 수 있다.
또한 장치(100)의 제어부(120)는 분산 병렬 학습 시스템의 전반적인 동작을 제어할 수 있다. 구체적으로 장치(100)의 제어부(120)는 복수의 워커(210)에 다양한 명령을 전송하여, 복수의 워커(210)의 동작을 제어할 수 있다.
또한 장치(100)의 제어부(120)는 학습 데이터를 미리 설정된 대로 분할하고, 각 워커에 할당된 학습 데이터를 통신부(110)를 통하여 전송할 수 있다.
또한 장치(100)의 제어부(120)는, 통신부(110)를 통하여, 하나 이상의 워커로부터 로컬 파라미터를 수신할 수 있다. 이 경우 장치(100)의 제어부(120)는 하나 이상의 워커로부터 수신된 로컬 파라미터를 조합하여 메모리(130)에 저장된 글로벌 파라미터를 업데이트 할 수 있다. 또한 제어부(120)는 업데이트된 글로벌 파라미터를 분할하여 각 워커에 할당하고, 할당된 글로벌 파라미터를 전송할 수 있다.
장치(100)의 통신부(110)는 복수의 워커(210)와 통신하기 위한 통신 인터페이스를 제공할 수 있다. 이 경우 장치(100)의 통신부(110)는, 제어부(120)의 제어 하에, 복수의 워커(210)와 데이터를 송신 및 수신할 수 있다.
도 3은 본 발명에 따른 분산 병렬 학습 방법을 설명하기 위한 순서도이다.
본 발명에 따른 분산 병렬 학습 방법은, 분산 병렬 학습을 수행하는 복수의 워커를 복수의 그룹으로 분류하는 단계(S310), 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하는 단계(S320), 복수의 동기화 시간에 기초하여, 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 단계(S330), 복수의 그룹 내 소속 워커들이, 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계(S340) 및 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계(S350)를 포함할 수 있다.
도 4는 본 발명에 따른, 복수의 워커를 복수의 그룹으로 분류하는 방법을 설명하기 위한 도면이다.
이하에서는, 워커가 로컬 모델에 학습 데이터를 제공하고, 로컬 모델이 출력한 예측 데이터에 기초하여 로컬 파라미터를 업데이트 하는 과정을 반복(iteration)이라 명칭한다.
도 4a는 제1 워커(Worker 1)와 제2 워커(Worker 2)의 학습 과정이 도시되어 있다. 여기서 화살표(421, 422)는 반복을 의미하고, 화살표(421, 422) 내부에 도시된 숫자는 반복 횟수(몇번째 반복인지)를 의미하며, 화살표(421, 422)의 길이는 1회 반복에 소요되는 시간을 의미한다.
워커들이 SSP 학습 방법(Stale Synchronous Parallel)으로 학습을 진행한다. 구체적으로 워커들은 각자 반복을 수행하되, 학습 속도가 가장 빠른 워커(즉 반복 횟수가 가장 큰 워커)의 반복 횟수와 학습 속도가 가장 느린 워커(즉 반복 횟수가 가장 작은 워커)의 반복 횟수 간의 차이가 임계값(threshold)을 초과하는 경우, 학습 속도가 가장 빠른 워커(즉 반복 횟수가 가장 큰 워커)는 반복을 중단한다. 그리고 학습 속도가 가장 느린 워커가 현재의 반복을 완료하면, 워커들은 자신의 로컬 파라미터를 보고한다. 워커 싱크 베리어(worker synchronization barrier)(410)은 워커들(Worker 1, Worker 2)이 자신의 로컬 파라미터를 보고하는 시점을 의미한다.
한편 도 4a에서의 제1 워커(Worker 1)의 화살표(421)가 제2 워커(Worker 2)의 화살표(422)보다 길다는 것은, 제1 워커(Worker 1)의 1회 반복에 소요되는 시간이 제2 워커(Worker 2)의 1회 반복에 소요되는 시간보다 길다는 것을 의미하기 때문에, 제1 워커(Worker 1)의 성능이 제2 워커(Worker 2)의 성능에 비해 떨어진다는 것을 의미한다.
또한 도 4a에서 제1 워커(Worker 1)의 화살표(421)와 제2 워커(Worker 2)의 화살표(422)의 길이 차가, 도 4b에서 제1 워커(Worker 1)의 화살표(431)와 제2 워커(Worker 2)의 화살표(432)의 길이 차보다 크다. 이것은 도 4a에서의 제1 워커(Worker 1)와 제2 워커(Worker 2) 간의 성능 차가, 도 4b에서의 제1 워커(Worker 1)와 제2 워커(Worker 2) 간의 성능 차보다 크다는 것을 의미한다.
그리고 도 4a에서의 제2 워커(Worker 2)의 대기 시간(a1)은, 도 4b에서의 제2 워커(Worker 2)의 대기 시간(a2)보다 크다. 이것은, 워커들 간의 성능 차이가 클수록 워커의 대기 시간이 증가하게 되어, 더욱 비효율 적인 학습이 진행되는 것을 의미한다. 그리고 성능이 유사한 워커들끼리 묶어 SSP 학습을 수행하게 되면, 워커의 대기 시간이 감소하여 효율적인 학습이 가능하다.
따라서 제어부(120)는 분산 병렬 학습을 수행하는 복수의 워커를 복수의 그룹으로 분류할 수 있다(S310).
구체적으로 제어부(120)는 각 워커의 컴퓨팅 성능 측정을 위한 샘플 학습 데이터를 분산 병렬 학습에 참여하는 복수의 워커에게 전송할 수 있다. 이 경우 각 워커는 샘플 학습 데이터를 이용하여 자신의 학습 속도를 산출하고, 산출된 학습 속도를 장치(100)에 전송할 수 있다.
학습 속도의 일 례로, 각 워커는 샘플 학습 데이터를 이용하여 로컬 모델을 학습시키고, 학습에 소요된 시간에 대한 정보를 장치(100)에 전송할 수 있다. 예를 들어 각 워커는 샘플 학습 데이터를 이용하여 n회 반복을 수행하는데 소요된 시간에 대한 정보를 장치(100)에 전송할 수 있다. 다만 이에 한정되지 않으며, 각 워커의 컴퓨팅 성능을 측정할 수 있는 다양한 방법이 사용될 수 있다.
장치(100)의 제어부(120)는 복수의 워커의 학습 속도를 획득하고, 성능이 유사한 워커들을 그룹핑 할 수 있다. 그룹핑의 일 례로, N개의 워커가 존재하는 경우, 제어부(120)는 학습 처리 속도가 가장 빠른 M개(그룹 내 워커의 수)의 워커를 그룹핑하여 제1 그룹으로 분류하고, 학습 속도가 그 다음으로 빠른 M개의 워커를 그룹핑하여 제2 그룹으로 분류할 수 있다. 그리고 이러한 과정이 반복됨에 따라 K개(N/M)의 그룹이 생성되며, 각 그룹에는 성능이 유사한 워커들이 속하게 된다.
즉 본 발명에서는, 성능이 유사한 워커들끼리 묶고, 그룹 내 워커들이 이하에서 설명하는 SSP 학습을 진행한다. 따라서 하나의 그룹 내 워커들이 하나의 반복을 처리하는 시간이 유사해지기 때문에, 워커의 대기 시간이 감소하여 효율적인 학습이 가능한 장점이 있다.
이하에서는, 그룹핑되어 그룹에 속하게 된 워커를 “소속 워커”라 명칭한다.
도 5는 그룹 내 소속 워커들의 SSP 학습 방법 및 그룹 간 SSP 학습 방법을 설명하기 위한 도면이다.
그룹 내 소속 워커들의 SSP(Stale Synchronous Parallel) 학습은 제어부(120)의 스케쥴링에 기반하여 수행될 수 있다. 예를 들어 제어부(120)는 그룹 내 소속 워커들로부터 반복 시작 정보, 반복 종료 정보, 반복 횟수 정보 등의 상태 정보를 수신하고, 그룹 내 소속 워커들의 반복 시작 명령, 반복 멈춤 명령, 보고 명령 등의 제어 명령을 전송할 수 있다.
또한 그룹 내 소속 워커들은 SSP(Stale Synchronous Parallel) 학습은 그룹 내 소속 워커들의 스케쥴링에 기반하여 수행될 수도 있다. 예를 들어 그룹 내 소속 워커들은 반복 시작 정보, 반복 종료 정보, 반복 횟수 정보 등의 상태 정보를 공유하고, 공유되는 정보에 기반하여 반복 시작, 반복 멈춤, 보고 등의 동작을 수행할 수 있다.
그룹 내 소속 워커들은 SSP 학습 방법(Stale Synchronous Parallel)으로 학습을 수행할 수 있다.
구체적으로 도 5a를 참고하면, 그룹 내 소속 워커들(Worker 1 내지 Worker 4)는 동시에 반복을 시작한다. 그리고 그룹 내 소속 워커들(Worker 1 내지 Worker 4)은 그룹 내 학습 속도가 가장 느린 제1 소속 워커(Worker 1)와의 반복 횟수의 차이를 획득할 수 있다. 그리고 임의의 소속 워커와 제1 소속 워커(Worker 1) 간의 반복 횟수의 차이가 워커 스테일 임계 값(stale threshold)을 초과하는 경우, 그룹 내 소속 워커들(Worker 1 내지 Worker 4)은 반복을 중단할 수 있다. 즉 그룹 내 소속 워커들(Worker 1 내지 Worker 4)은 현재 진행중인 반복의 완료 시 추가적인 반복을 진행하지 않을 수 있다.
도 5a를 참고하면, 그룹의 워커 스테일 임계 값(stale threshold)은 2이다. 그리고 제2 워커(Worker 2)가 3회 반복을 종료한 시점에 제1 워커 (Worker 1)는 1회 반복 중이며, 따라서 제2 워커(Worker 2)가 또 다시 반복을 시작하게 되면 제2 워커(Worker 2)와 제1 워커 (Worker 1) 간의 반복 횟수의 차이는 워커 스테일 임계 값(stale threshold)을 초과하게 된다. 따라서 제2 워커(Worker 2)는 3회 반복을 종료한 시점에 반복을 중단하고, 추가적인 반복을 진행하지 않을 수 있다. 그리고 제2 워커(Worker 2)는 워커 동기화 시점, 즉 워커 싱크 베리어(worker synchronization barrier)(510)까지 대기할 수 있다.
또한 제2 소속 워커(Worker 2)와 제1 소속 워커(Worker 1) 간의 반복 횟수의 차이가 워커 스테일 임계 값(stale threshold)을 초과하므로, 제3 소속 워커(Worker 3)는 현재 진행중인 반복의 완료 시 반복을 중단하고 추가적인 반복을 진행하지 않을 수 있다. 그리고 제3 워커(Worker 3)는 워커 동기화 시점, 즉 워커 싱크 베리어(worker synchronization barrier)(510)까지 대기할 수 있다.
마찬가지로, 제4 소속 워커(Worker 4)는 현재 진행중인 반복의 완료 시 반복을 중단하고 워커 동기화 시점, 즉 워커 싱크 베리어(worker synchronization barrier)(510)까지 대기할 수 있다.
한편 제2 소속 워커(Worker 2)와 제1 소속 워커(Worker 1) 간의 반복 횟수의 차이가 워커 스테일 임계 값(stale threshold)을 초과하므로, 제1 소속 워커(Worker 1)는 현재 진행중인 반복의 완료 시 반복을 중단하고 추가적인 반복을 진행하지 않을 수 있다.
한편 학습 속도가 가장 느린 제1 소속 워커(Worker 1)가 반복을 중단한 시점을 워커 동기화 시점이라 명칭할 수 있으며, 도 5a에서는 워커 싱크 베리어(worker synchronization barrier)(510)로 도시되어 있다.
그리고 워커 동기화 시점에 도달하면, 그룹 내 소속 워커들(Worker 1 내지 Worker 4)은 자신의 로컬 파라미터를 보고할 수 있다. 그리고 나서 그룹 내 소속 워커들(Worker 1 내지 Worker 4)은 해당 소속 워커에 할당된 글로벌 파라미터를 수신하고, 수신된 글로벌 파라미터를 이용하여 해당 소속 워커 내 로컬 파라미터를 업데이트할 수 있다.
이로써 SSP 학습 방법의 하나의 동기화 싸이클이 완료되고, 그룹 내 소속 워커들은 다음 동기화 싸이클을 진행할 수 있다. 다음 싸이클 역시 동일한 방법으로 진행되고, 다음 워커 동기화 시점인 워커 싱크 베리어(worker synchronization barrier)(520)에 도달하면 그룹 내 소속 워커들은 자신의 로컬 파라미터를 보고하고 글로벌 파라미터를 수신하여 자신의 로컬 파라미터를 업데이트할 수 있다. 그리고 그룹 내 소속 워커들은 이와 같은 싸이클을 반복할 수 있다. 또한 다른 그룹들 역시 동일한 과정을 수행할 수 있다.
한편 그룹 내 소속 워커들의 SSP 학습에서는, 그룹 내 소속 워커들이 워커 동기화 시점에 일괄적으로 로컬 파라미터를 보고하고, 그룹 내 소속 워커들이 보고한 로컬 파라미터에 기반하여 업데이트 된 글로벌 파라미터를 수신한다. 즉, 그룹 내 소속 워커들의 SSP 학습에서는 다른 그룹에 속한 워커들이 보고한 로컬 파라미터는 반영되지 않다. 따라서 서로 다른 그룹 간에도 파라미터를 일치시키기 위하여 그룹 간 SSP 학습이 수행된다.
그룹 간 SSP(Stale Synchronous Parallel) 학습 역시, 제어부(120)의 스케쥴링 또는 여러 그룹의 워커들의 스케쥴링에 기반하여 수행될 수 있다.
그룹들은 SSP 학습 방법(Stale Synchronous Parallel)으로 학습을 수행할 수 있다. 그리고 그룹 간 SSP 학습에서는, 그룹의 하나의 동기화 싸이클이 도 5a에서 설명한 워커의 하나의 반복으로 취급될 수 있다.
구체적으로 도 5b를 참고하면, 그룹들(Group 1 내지 Group 2)는 동시에 싸이클을 시작한다. 그리고 그룹들(Group 1 내지 Group 2)은 동기화 시간(즉 하나의 싸이클에 소요되는 시간)이 가장 느린 제2 그룹(Group 2)과의 싸이클 횟수의 차이를 획득할 수 있다. 그리고 임의의 그룹과 제2 그룹(Group 2) 간의 싸이클 횟수의 차이가 그룹 스테일 임계 값(stale threshold)을 초과하는 경우, 그룹들(Group 1 내지 Group 2)은 싸이클을 중단할 수 있다. 즉 그룹들(Group 1 내지 Group 2)은 현재 진행중인 싸이클의 완료 시 추가적인 싸이클을 진행하지 않을 수 있다.
도 5b를 참고하면, 그룹 스테일 임계 값(stale threshold)은 2이다. 그리고 제1 그룹(Group 1)이 3회 싸이클을 종료한 시점에 제2 그룹(Group 2)는 1회 싸이클을 진행 중이며, 따라서 제1 그룹(Group 1)이 또 다시 싸이클을 시작하게 되면 제1 그룹(Group 1)과 제2 그룹(Group 2) 간의 싸이클 횟수의 차이는 그룹 스테일 임계 값(stale threshold)을 초과하게 된다. 따라서 제1 그룹(Group 1)는 3회 싸이클을 종료한 시점에 싸이클을 중단하고, 추가적인 싸이클을 진행하지 않을 수 있다. 그리고 제1 그룹(Group 1)은 그룹 동기화 시점, 즉 그룹 싱크 베리어(group synchronization barrier)(570)까지 대기할 수 있다. 또한 싸이클이 중단된 경우, 제1 그룹(Group 1) 내 소속 워커들은 자신의 로컬 파라미터를 보고하지 않고 대기할 수 있다.
한편 학습 속도가 가장 느린 제2 그룹(Group 2)이 싸이클을 중단한 시점을 그룹 동기화 시점이라 명칭할 수 있으며, 도 5b에서는 그룹 싱크 베리어(group synchronization barrier)(570)로 도시되어 있다.
그리고 그룹 동기화 시점에 도달하면, 제1 그룹(Group 1) 내 소속 워커들과 제2 그룹(Group 2) 내 소속 워커들은 자신의 로컬 파라미터를 보고할 수 있다. 그리고 나서 제1 그룹(Group 1) 내 소속 워커들과 제2 그룹(Group 2) 내 소속 워커들은 해당 소속 워커에 할당된 글로벌 파라미터를 수신하고, 수신된 글로벌 파라미터를 이용하여 해당 소속 워커 내 로컬 파라미터를 업데이트할 수 있다.
즉 그룹 간 SSP 학습에서는 복수의 그룹 내 소속 워커들이 보고한 로컬 파라미터에 기반하여 글로벌 파라미터가 업데이트 되며, 소속 워커들은 다른 그룹에 속하는 소속 워커에서 보고한 로컬 파라미터까지 반영된 글로벌 파라미터를 수신한다. 이에 따라 서로 다른 그룹의 소속 워커들 사이에서도 파라미터가 일치될 수 있다.
도 6은 동일한 워커 스테일 임계 값에 기초하여 학습하는 경우 발생할 수 있는 문제점을 설명하기 위한 도면이다.
제1 소속 워커(Worker 1) 및 제2 소속 워커(Worker 2)를 포함하는 제1 그룹(Group 1)과, 제3 소속 워커(Worker 3) 및 제4 소속 워커(Worker 4)를 포함하는 제2 그룹(Group 2)이 존재한다.
그리고 제1 그룹(Group 1)의 워커 스테일 임계 값(S1)과 제2 그룹(Group 2)의 워커 스테일 임계 값(S2)이 모두 2로 설정된 상태이다. 이 경우 제1 그룹(Group 1)이 첫번째 동기화 시점(610)에 도달하는 시간과, 제2 그룹(Group 2)이 첫번째 동기화 시점(620)에 도달하는 시간 간에는 큰 차이가 발생되게 된다.
이 경우 지연된 그래디언트 업데이트 문제(stale gradient update problem)가 발생할 수 있다. 지연된 그래디언트 업데이트 문제란, 비동기적 학습 방법에서 A 워커가 자신이 학습한 로컬 파라미터의 그래디언트를 구하는 동안, B 워커가 자신이 학습한 로컬 파라미터의 그래디언트를 업데이트하기 때문에, A 워커가 그래디언트를 업데이트하는 시점에는 자신이 처음에 받아온 파라미터와 큰 차이가 나는 파라미터를 받아오게 되는 문제를 의미한다.
따라서 본 발명에서는, 각 그룹의 동기화 시간을 이용하여 각 그룹의 워커 스테일 임계 값을 다르게 함으로써, 지연된 그래디언트 업데이트 문제(stale gradient update problem)를 최소화 시킨다.
구체적으로 제어부(120)는 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출할 수 있다(S320).
여기서 동기화 시간은, 하나의 그룹이 하나의 싸이클을 수행하는데 소요되는 시간을 의미할 수 있다. 예를 들어 제1 그룹(Group 1)의 동기화 시간은, 제1 그룹(Group 1) 내 소속 워커들(Worker 1, Worker 2)이 반복을 시작한 시점(t1)으로부터 워커 동기화 시점(610)(즉, 학습 속도가 가장 느린 제2 워커(Worker 2)가 반복을 중단한 시점)까지 소요되는 시간에 비례할 수 있다.
그리고 그룹 별 동기화 시간을 산출하기 위하여, 제어부(120)는 그룹 별로, 소속 워커들이 1회의 반복을 처리하는 평균 시간 및 1회의 반복을 처리하는 시간의 표준 편차를 획득할 수 있다.
구체적으로, 복수의 그룹의 소속 워커들은 최초에 동일한 워커 스테일 임계 값(초기 값)에 기반하여 SSP 학습을 수행할 수 있으며, 이 경우 제어부(120)는 복수의 그룹의 소속 워커들로부터 학습 속도를 수신할 수 있다. 다른 예로, 앞서 설명한 샘플 학습 데이터에 기반하여 산출된 학습 속도가 사용될 수도 있다.
한편 제어부(120)는 복수의 그룹의 소속 워커들의 학습 속도에 기반하여, 각 소속 워커들이 1회의 반복을 처리하는 시간을 산출할 수 있다. 또한 제어부(120)는 동일한 그룹에 속하는 소속 워커들 각각이 1회의 반복을 처리하는 시간에 기초하여, 해당 그룹의 소속 워커들이 1회의 반복을 처리하는 평균 시간 및 1회의 반복을 처리하는 시간의 표준 편차를 산출할 수 있다.
한편 제어부(120)는 그룹 내 소속 워커들이 1회의 반복을 처리하는 시간의 표준 편차를 이용하여, 해당 그룹의 동기화에 필요한 반복의 횟수를 산출할 수 있다. 모든 그룹의 워커 스테일 임계값이 동일함을 전제로, 소정의 그룹의 동기화에 필요한 반복의 횟수와 해당 그룹의 표준 편차와의 관계는 다음과 같이 표현될 수 있다.
Figure pat00001
(
Figure pat00002
: 그룹의 동기화에 필요한 반복의 횟수,
Figure pat00003
: 표준 편차)
먼저, 해당 그룹에서 반복의 횟수가 많아질수록, 동기화 시간이 길어진다. 또한 표준 편차가 클수록 동일한 그룹 내 소속 워커들의 하나의 반복에 소요되는 시간 차가 크며(즉, 화살표의 길이 차가 크며), 표준 편차가 작을수록 동일한 그룹 내 소속 워커들의 하나의 반복에 소요되는 시간 차가 작아진다(즉, 화살표의 길이 차가 작아진다). 그리고 표준 편차가 클 수록(즉, 화살표의 길이 차가 클 수록), 해당 그룹이 워커 스테일 임계 값을 초과하기까지의 반복의 횟수가 줄어든다. 따라서 수학식 1에서와 같이, 그룹의 동기화에 필요한 횟수와 그룹의 표준 편차 간에는 반비례 관계가 성립할 수 있다.
다음으로, 해당 그룹에서 동기화에 필요한 반복의 횟수(
Figure pat00004
)가 동일하더라도, 해당 그룹에서 1회의 반복을 처리하는 시간이 길어질수록, 동기화에 필요한 시간이 증가한다. 따라서 수학식 1에서 산출된 반복 횟수에 해당 그룹에서 1회의 반복을 처리하는 평균 시간을 추가로 반영하면 다음과 같은 관계가 성립한다.
Figure pat00005
(
Figure pat00006
: 그룹의 동기화 시간,
Figure pat00007
: 표준 편차,
Figure pat00008
: 1회의 반복을 처리하는 평균 시간)
즉, 그룹별 동기화 시간은, 해당 그룹의 평균 시간(
Figure pat00009
)에 비례하고, 해당 그룹의 표준 편차(
Figure pat00010
)에 반비례할 수 있다. 따라서 제어부(120)는 소속 워커들이 1회의 반복을 처리하는 평균 시간(
Figure pat00011
) 및 소속 워커들이 1회의 반복을 처리하는 시간의 표준 편차(
Figure pat00012
)를 이용하여 그룹 별 동기화 시간을 산출할 수 있다.
두 개의 그룹이 있다고 가정할 때, 동기화 시간이 더 작은 그룹의 동기화 시간을
Figure pat00013
로 정의하고, 동기화 시간이 더 큰 그룹의 동기화 시간을
Figure pat00014
라고 정의하면, 제어부(120)는 다음과 같은 수식에 기반하여 그룹의 워커 스테일 임계값을 설정할 수 있다.
Figure pat00015
즉 제어부(120)는 동기화 시간이 더 큰 그룹의 워커 스테일 임계값(
Figure pat00016
)을 더 작게 변경할 수 있다. 정리하면, 제1 그룹과 제2 그룹의 워커 스테일 임계값이 동일한 상태에서, 제1 그룹의 동기화 시간이 제2 그룹의 동기화 시간보다 큰 경우, 제어부(120)는 제1 그룹의 워커 스테일 임계 값을 더 작게 변경할 수 있다. 이 경우 제1 그룹의 워커 스테일 임계 값은 제2 그룹의 워커 스테일 임계 값보다 작아지게 된다.
도 7은 본 발명에 따른, 워커 스테일 임계값의 변경 이후를 설명하기 위한 도면이다. 도 6을 함께 참고하여 설명한다.
도 6에서는 제1 그룹(Group 1)의 워커 스테일 임계 값(S1)과 제2 그룹(Group 2)의 워커 스테일 임계 값(S2)을 모두 2로 설정한 상태이다. 이 경우 제1 그룹(Group 1)이 첫번째 동기화 시점(610)에 도달하는 시간과, 제2 그룹(Group 2)이 첫번째 동기화 시점(620)에 도달하는 시간 간에는 큰 차이가 발생하며, 따라서 지연된 그래디언트 업데이트 문제가 심화되게 된다.
한편 도 6을 참고하면, 제1 그룹(Group 1)의 동기화 시간(t1부터 t2까지의 시간)은 제2 그룹(Group 1)의 동기화 시간보다 크다. 따라서 제어부(120)는 동기화 시간이 더 큰 제1 그룹(Group 1)의 워커 스테일 임계값을 더 작게 변경할 수 있다.
도 7을 참고하면, 제1 그룹(Group 1)의 워커 스테일 임계값이 변경된 상태이다. 즉 제1 그룹(Group 1)의 워커 스테일 임계값은 1로 변경되었으며, 제2 그룹(Group 2)의 워커 스테일 임계값은 변경되는 것 없이 2로 유지되고 있다.
제1 그룹(Group 1)의 워커 스테일 임계값이 더 작게 변경됨에 따라, 도 7에서의 제1 그룹(Group 1)의 동기화 시간(t1부터 t2까지의 시간)은, 도 6에서의 제1 그룹(Group 1)의 동기화 시간(t1부터 t2까지의 시간)에 비해 훨씬 줄어들었다는 것을 알 수 있다.
또한 도 6을 참고하면 제1 그룹(Group 1)의 최초 동기화 시점(610)과 제2 그룹(Group 2)의 최초 동기화 시점(620) 간의 차이(Synchronization difference between groups)가 매우 크다는 것을 알 수 있다. 다만 도 7을 참고하면, 제1 그룹(Group 1)의 워커 스테일 임계값이 더 작게 변경됨에 따라, 제1 그룹(Group 1)의 최초 동기화 시점(710)과 제2 그룹(Group 2)의 최초 동기화 시점(720) 간의 차이(Synchronization difference between groups)가 현격히 줄어들었다는 것을 알 수 있다. 즉, 그룹별 동기화 시간을 반영하여 워커 스테일 임계 값을 동적으로 조절함으로써, 그룹 간 SSP 학습에서 발생할 수 있는 지연된 그래디언트 업데이트 문제가 최소화될 수 있다.
다음은 둘 또는 셋 이상의 그룹이 존재하는 경우, 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 방법에 대하여 설명한다.
제어부(120)는 복수의 동기화 시간에 기초하여, 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출할 수 있다(S330),
구체적으로 제어부(120)는 복수의 그룹에 각각 대응하는 복수의 동기화 시간 중 기준 동기화 시간을 선정할 수 있다. 여기서 기준 동기화 시간은 복수의 동기화 시간 중 가장 작은 시간일 수 있으나 이에 한정되지 않으며, 복수의 동기화 시간 중 중간 값, 가장 큰 값 등 다양한 기준에 의해 선정될 수 있다.
그리고 나서 제어부(120)는 기준 동기화 시간과 해당 그룹의 동기화 시간을 비교하여, 해당 그룹의 워커 스테일 임계 값을 설정할 수 있다.
구체적으로, 해당 그룹의 동기화 시간이 기준 동기화 시간보다 큰 경우, 해당 그룹의 워커 스테일 임계값은 기준 동기화 시간을 가지는 그룹(이하 기준 그룹이라 함)의 워커 스테일 임계값보다 작게 설정될 수 있다. 예를 들어 제1 그룹의 동기화 시간이 기준 동기화 시간으로 선정되었으며, 제2 그룹의 동기화 시간은 제1 그룹의 동기화 시간보다 큰 상황을 가정한다. 이 경우 제2 그룹의 워커 스테일 임계값은 제1 그룹의 워커 스테일 임계값보다 작게 설정될 수 있다. 예를 들어 제2 그룹의 워커 스테일 임계값은 2로, 제1 그룹의 워커 스테일 임계값은 4로 설정될 수 있다.
반대로, 해당 그룹의 동기화 시간이 기준 동기화 시간보다 작은 경우, 해당 그룹의 워커 스테일 임계값은 기준 그룹의 워커 스테일 임계값보다 크게 설정될 수 있다. 예를 들어 제1 그룹의 동기화 시간이 기준 동기화 시간으로 선정되었으며, 제2 그룹의 동기화 시간은 제1 그룹의 동기화 시간보다 작은 상황을 가정한다. 이 경우 제2 그룹의 워커 스테일 임계값은 제1 그룹의 워커 스테일 임계값보다 크게 설정될 수 있다. 예를 들어 제2 그룹의 워커 스테일 임계값은 3으로, 제1 그룹의 워커 스테일 임계값은 1로 설정될 수 있다.
추가적으로, 제어부(120)는 해당 그룹의 동기화 시간과 기준 동기화 시간의 차이의 정도에 기반하여 해당 그룹의 동기화 시간을 설정할 수 있다.
일 실시 예로, 해당 그룹의 동기화 시간이 기준 동기화 시간보다 크고 그 차이가 제1 임계 값(예를 들어 2초)을 초과하는 경우, 제어부(120)는 기준 그룹의 워커 스테일 임계값보다 제1값(예를 들어 1)만큼 작은 값을 해당 그룹의 워커 스테일 임계값으로 설정할 수 있다. 또한 해당 그룹의 동기화 시간이 기준 동기화 시간보다 크고 그 차이가 제2 임계 값(예를 들어 4초)을 초과하는 경우, 제어부(120)는 기준 그룹의 워커 스테일 임계값보다 제2값(예를 들어 2)만큼 작은 값을 해당 그룹의 워커 스테일 임계값으로 설정할 수 있다. 즉 제2 임계값이 제1 임계값보다 큰 경우, 제2값은 제1값보다 클 수 있다.
다른 실시 예로, 해당 그룹의 동기화 시간이 기준 동기화 시간보다 작고 그 차이가 제1 임계 값(예를 들어 2초)을 초과하는 경우, 제어부(120)는 기준 그룹의 워커 스테일 임계값보다 제1값(예를 들어 1)만큼 큰 값을 해당 그룹의 워커 스테일 임계값으로 설정할 수 있다. 또한 해당 그룹의 동기화 시간이 기준 동기화 시간보다 작고 그 차이가 제2 임계 값(예를 들어 4초)을 초과하는 경우, 제어부(120)는 기준 그룹의 워커 스테일 임계값보다 제2값(예를 들어 2)만큼 큰 값을 해당 그룹의 워커 스테일 임계값으로 설정할 수 있다. 즉 제2 임계값이 제1 임계값보다 큰 경우, 제2값은 제1값보다 클 수 있다.
즉 해당 그룹의 동기화 시간과 기준 동기화 시간 간의 차이가 클수록, 해당 그룹의 워커 스테일 임계값과 기준 그룹의 워커 스테일 임계 값의 차이 역시 커지게 된다.
도 8은 각 그룹의 워커 스테일 임계 값이 설정된 이후의 동작을 설명하기 위한 도면이다.
현재 그룹이 2개, 그룹 내 소속 워커가 각각 2개인 것으로 가정하여 설명한다.
제어부(120)의 제어 하에, 복수의 그룹 내 소속 워커들은 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습할 수 있다(S340).
구체적으로 도 8을 참고하면, 제1 그룹(Group 1)의 워커 스테일 임계값은 1이며, 제1 그룹(Group 1) 내 소속 워커들(Worker 1 내지 Worker 2)은 동시에 반복을 시작한다. 그리고 그룹 내 소속 워커들(Worker 1 내지 Worker 2)은 그룹 내 학습 속도가 가장 느린 제2 소속 워커(Worker 2)와의 반복 횟수의 차이를 획득할 수 있다. 그리고 제 1 소속 워커(Worker 1)가 2회 반복을 종료한 시점에 제2 소속 워커(Worker 2)는 1회 반복 중이며, 따라서 제1 소속 워커(Worker 1)가 또 다시 반복을 시작하게 되면 제2 소속 워커(Worker 2)와 제1 소속 워커 (Worker 1) 간의 반복 횟수의 차이는 1을 초과하게 된다. 따라서 제1 소속 워커(Worker 1)은 반복을 중단하고 추가적인 반복을 진행하지 않은 상태에서 대기한다.
한편 제2 소속 워커(Worker 2)가 현재의 반복을 완료하면 워커 동기화 시점(810)에 도달한다. 이 경우 제1 그룹(Group 1) 내 소속 워커들(Worker 1 내지 Worker 2)은 자신의 로컬 파라미터를 보고하고, 글로벌 파라미터를 수신하여 자신의 로컬 파라미터를 업데이트 할 수 있다. 이 경우 제1 그룹(Group 1) 내 소속 워커들의 학습 결과가 서로간에 공유될 수 있다. 이로써 하나의 동기화 싸이클이 완료되고, 제1 그룹(Group 1)은 다음 동기화 싸이클을 진행할 수 있다.
도 8을 참고하면, 제2 그룹(Group 2)의 워커 스테일 임계값은 2로, 제1 그룹(Group 2)의 워커 스테일 임계값과 다르다. 그리고 제2 그룹(Group 2) 내 소속 워커들(Worker 3 내지 Worker 4)은 동시에 반복을 시작한다. 그리고 그룹 내 소속 워커들(Worker 3 내지 Worker 4)은 그룹 내 학습 속도가 가장 느린 제4 소속 워커(Worker 4)와의 반복 횟수의 차이를 획득할 수 있다. 그리고 제 3 소속 워커(Worker 3)가 4회 반복을 종료한 시점에 제4 소속 워커(Worker 4)는 2회 반복 중이며, 따라서 제3 소속 워커(Worker 3)가 또 다시 반복을 시작하게 되면 제4 소속 워커(Worker 4)와 제3 소속 워커 (Worker 3) 간의 반복 횟수의 차이는 2를 초과하게 된다. 따라서 제3 소속 워커(Worker 3)은 반복을 중단하고 추가적인 반복을 진행하지 않은 상태에서 대기한다.
한편 제4 소속 워커(Worker 4)가 현재의 반복을 완료하면 워커 동기화 시점(830)에 도달한다. 이 경우 제2 그룹(Group 2) 내 소속 워커들(Worker 3 내지 Worker 4)은 자신의 로컬 파라미터를 보고하고, 글로벌 파라미터를 수신하여 자신의 로컬 파라미터를 업데이트 할 수 있다. 이 경우 제2 그룹(Group 2) 내 소속 워커들의 학습 결과가 서로간에 공유될 수 있다. 이로써 하나의 동기화 싸이클이 완료되고, 제2 그룹(Group 1)은 다음 동기화 싸이클을 진행할 수 있다.
다음으로, 제어부(120)의 제어 하에, 복수의 그룹은 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습할 수 있다. 그룹 스테일 임계값이 1인 것으로 가정하여 설명한다.
도 8을 참고하면, 그룹들(Group 1 내지 Group 2)는 동시에 싸이클을 시작한다. 그리고 그룹들(Group 1 내지 Group 2)은 학습 속도가 가장 느린(즉, 동기화 시간이 가장 큰) 제1 그룹(Group 1)과의 싸이클 횟수의 차이를 획득할 수 있다. 그리고 학습 속도가 가장 빠른 제2 그룹(Group 2)과 학습 속도가 가장 느린 제1 그룹(Group 1) 사이의 싸이클 횟수의 차이가 그룹 스테일 임계 값(stale threshold)인 1을 초과하는 경우, 가장 빠른 제2 그룹(Group 2)은 학습을 중단할 수 있다. 즉 제 2 그룹(Group 2)이 3회 반복을 싸이클을 종료한 시점에 제1 그룹(Group 1)는 2회 싸이클을 진행 중이며, 따라서 제2 그룹(Group 2)이 또 다시 싸이클을 시작하게 되면 제2 그룹(Group 2)과 제1 그룹(Group 1) 간의 싸이클 횟수의 차이는 1를 초과하게 된다. 따라서 제2 그룹(Group 2)은 추가적인 싸이클을 진행하지 않고 대기한다.
또한 제1 그룹 및 제2 그룹을 제외한 나머지 그룹들도, 현재 진행중인 싸이클을 완료하면 학습을 중단할 수 있다. 이에 따라 다른 그룹들도 추가적인 싸이클을 진행하지 않고 대기한다.
한편 가장 느린 제1 그룹(Group 1)이 현재의 싸이클을 완료하면, 그룹 동기화 시점(860)에 도달한다. 이 경우 복수의 그룹이 로컬 파라미터를 보고할 수 있다. 즉 제1 그룹(Group 1) 내 소속 워커들(Worker 1 내지 Worker 2)과 제2 그룹(Group 2) 내 소속 워커들(Worker 3 내지 Worker 4)은 자신의 로컬 파라미터를 보고하고, 글로벌 파라미터를 수신하여 자신의 로컬 파라미터를 업데이트할 수 있다. 이 경우 제1 그룹(Group 1) 내 소속 워커들의 학습 결과와 제2 그룹(Group 2) 내 소속 워커들의 학습 결과가 서로 공유될 수 있다.
추가적으로, 학습속도가 가장 빠른 제2 그룹(Group 2) 내 학습 속도가 가장 빠른 제3 소속 워커(Worker 3)의 동작을 설명한다.
가장 빠른 제2 그룹(Group 2) 내 가장 빠른 제3 소속 워커(Worker 3)와 가장 빠른 제2 그룹(Group 2) 내 가장 느린 제4 소속 워커(Worker 4) 사이의 반복 횟수의 차이가 제2 그룹(Group 2)의 워커 스테일 임계 값을 초과하는 경우, 가장 빠른 제3 소속 워커(Worker 3)는 반복을 중단하고 대기할 수 있다. 이 경우 가장 빠른 제3 소속 워커(Worker 3)는 가장 느린 제4 소속 워커(Worker 4)가 현재의 반복을 완료할 때까지 대기할 수 있다.
한편 현재 제2 그룹(Group 2)이 3회의 싸이클을 진행하여 제3 동기화 시점(850)에 도달한 것으로 가정한다. 이 경우 제2 그룹(Group 2)은 제1 그룹(Group 1)이 현재의 싸이클을 완료할 때까지 대기할 수 있다. 이에 따라 제4 소속 워커(Worker 4)가 현재의 반복을 완료했음에도 불구하고, 제3 소속 워커(Worker 3)는 제1 그룹(Group 2)이 현재의 싸이클을 완료할 때까지 대기할 수 있다.
한편 가장 느린 제1 그룹(Group 2)이 현재의 싸이클을 완료하면, 그룹 동기화 시점(860)에 도달한다. 이 경우 가장 빠른 제2 그룹(Group 2) 내 가장 빠른 제3 소속 워커(Worker 3)는 자신의 로컬 파라미터를 보고할 수 있다. 또한 제3 소속 워커(Worker 3)뿐만 아니라, 모든 그룹 내 소속 워커들, 즉 분산 병렬 학습을 수행하는 모든 워커들이 자신의 로컬 파라미터를 보고할 수 있다.
이와 같이 본 발명에 따르면, 워커들의 성능을 기준으로 워커들을 그룹화하여 학습 대기 시간을 줄일 수 있는 장점이 있다. 또한 그룹 별로 스테일 임계 값을 다르게 설정하여 지연된 그래디언트 업데이트 문제를 해결할 수 있으며, 그룹 내 워커들의 SSP 학습과 그룹간 SSP 학습을 병행함으로써 분산 병렬 학습을 수행하는 워커들의 학습 효율을 최적화할 수 있는 장점이 있다.
따라서 딥러닝 학습에 사용되는 하드웨어의 성능이 매우 상이하더라도, 성능이 좋은 일부 하드웨어만을 선별하여 학습을 수행할 필요가 없으며, 하드웨어들을 모두 활용하여 효율적인 딥러닝 분산 병렬 학습을 진행할 수 있는 장점이 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 서버의 프로세서(180)를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100: 분산 병렬 학습 제어 장치

Claims (20)

  1. 분산 병렬 학습을 수행하는 복수의 워커를 복수의 그룹으로 분류하는 단계;
    상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하는 단계;
    상기 복수의 동기화 시간에 기초하여, 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 단계; 및
    상기 복수의 그룹 내 소속 워커들이, 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계;를 포함하는
    분산 병렬 학습 방법.
  2. 제 1항에 있어서,
    상기 복수의 워커를 복수의 그룹으로 분류하는 단계는,
    상기 복수의 워커의 학습 속도를 획득하고, 성능이 유사한 워커들을 그룹핑하는 단계;를 포함하는
    분산 병렬 학습 방법.
  3. 제 1항에 있어서,
    상기 복수의 동기화 시간은,
    해당 그룹 내 소속 워커들이 반복을 시작한 시점으로부터, 해당 그룹에서 학습 속도가 가장 느린 소속 워커가 반복을 중단한 시점까지 소요되는 시간에 비례하는
    분산 병렬 학습 방법.
  4. 제 3항에 있어서,
    상기 복수의 동기화 시간을 산출하는 단계는,
    그룹 별로, 소속 워커들이 1회의 반복을 처리하는 평균 시간 및 소속 워커들이 1회의 반복을 처리하는 시간의 표준 편차를 획득하는 단계; 및
    상기 평균 시간 및 상기 표준 편차를 이용하여, 그룹 별 동기화 시간을 산출하는 단계;를 포함하는
    분산 병렬 학습 방법.
  5. 제 4항에 있어서,
    상기 그룹 별 동기화 시간은,
    해당 그룹의 상기 평균 시간에 비례하고, 해당 그룹의 상기 표준 편차에 반비례 하는
    분산 병렬 학습 방법.
  6. 제 1항에 있어서,
    상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 단계는,
    상기 복수의 동기화 시간 중 기준 동기화 시간을 선정하는 단계; 및
    상기 기준 동기화 시간과 해당 그룹의 동기화 시간을 비교하여, 해당 그룹의 워커 스테일 임계 값을 설정하는 단계;를 포함하는
    분산 병렬 학습 방법.
  7. 제 6항에 있어서,
    해당 그룹의 동기화 시간이 상기 기준 동기화 시간보다 큰 경우, 해당 그룹의 워커 스테일 임계값은 상기 기준 동기화 시간을 가지는 그룹의 워커 스테일 임계 값보다 작게 설정되는
    분산 병렬 학습 방법.
  8. 제 1항에 있어서,
    상기 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계;를 더 포함하는
    분산 병렬 학습 방법.
  9. 제 8항에 있어서,
    상기 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계는,
    학습 속도가 가장 빠른 그룹과 학습 속도가 가장 느린 그룹 사이의 싸이클 횟수의 차이가 그룹 스테일 임계 값을 초과하는 경우, 상기 가장 빠른 그룹이 학습을 중단하는 단계; 및
    상기 가장 느린 그룹이 현재의 싸이클을 완료하면, 상기 복수의 그룹이 로컬 파라미터를 보고하는 단계;를 포함하는
    분산 병렬 학습 방법.
  10. 제 9항에 있어서,
    상기 복수의 그룹이, 그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는 단계는,
    상기 가장 빠른 그룹 내 가장 빠른 소속 워커와 상기 가장 빠른 그룹 내 가장 느린 소속 워커 사이의 반복 횟수의 차이가 워커 스테일 임계 값을 초과하는 경우, 상기 가장 빠른 소속 워커가 반복을 중단하고 대기하는 단계; 및
    상기 가장 느린 그룹이 현재의 싸이클을 완료하면, 상기 가장 빠른 그룹 내 상기 가장 빠른 소속 워커가 로컬 파라미터를 보고하는 단계;를 포함하는
    분산 병렬 학습 방법.
  11. 분산 병렬 학습을 수행하는 복수의 워커; 및
    상기 복수의 워커를 복수의 그룹으로 분류하고, 상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하고, 상기 복수의 동기화 시간에 기초하여 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하는 분산 병렬 학습 제어 장치;를 포함하고,
    상기 복수의 그룹 내 소속 워커들은, 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는
    분산 병렬 학습 시스템.
  12. 제 11항에 있어서,
    상기 분산 병렬 학습 제어 장치는,
    상기 복수의 워커의 학습 속도를 획득하고, 성능이 유사한 워커들을 그룹핑하는
    분산 병렬 학습 시스템.
  13. 제 11항에 있어서,
    상기 복수의 동기화 시간은,
    해당 그룹 내 소속 워커들이 반복을 시작한 시점으로부터, 해당 그룹에서 학습 속도가 가장 느린 소속 워커가 반복을 중단한 시점까지 소요되는 시간에 비례하는
    분산 병렬 학습 시스템.
  14. 제 13항에 있어서,
    상기 분산 병렬 학습 제어 장치는,
    그룹 별로, 소속 워커들이 1회의 반복을 처리하는 평균 시간 및 소속 워커들이 1회의 반복을 처리하는 시간의 표준 편차를 획득하고,
    상기 평균 시간 및 상기 표준 편차를 이용하여, 그룹 별 동기화 시간을 산출하는
    분산 병렬 학습 시스템.
  15. 제 14항에 있어서,
    상기 그룹 별 동기화 시간은,
    해당 그룹의 상기 평균 시간에 비례하고, 해당 그룹의 상기 표준 편차에 반비례 하는
    분산 병렬 학습 시스템.
  16. 제 1항에 있어서,
    상기 분산 병렬 학습 제어 장치는,
    상기 복수의 동기화 시간 중 기준 동기화 시간을 선정하고,
    상기 기준 동기화 시간과 해당 그룹의 동기화 시간을 비교하여, 해당 그룹의 워커 스테일 임계 값을 설정하는
    분산 병렬 학습 시스템.
  17. 제 16항에 있어서,
    해당 그룹의 동기화 시간이 상기 기준 동기화 시간보다 큰 경우, 해당 그룹의 워커 스테일 임계값은 상기 기준 동기화 시간을 가지는 그룹의 워커 스테일 임계 값보다 작게 설정되는
    분산 병렬 학습 시스템.
  18. 제 11항에 있어서,
    상기 복수의 그룹 내 소속 워커들은,
    그룹 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하는
    분산 병렬 학습 시스템.
  19. 제 18항에 있어서,
    상기 복수의 그룹 중 학습 속도가 가장 빠른 그룹은,
    상기 학습 속도가 가장 빠른 그룹과 학습 속도가 가장 느린 그룹 사이의 싸이클 횟수의 차이가 그룹 스테일 임계 값을 초과하는 경우, 학습을 중단하고,
    상기 복수의 그룹은,
    상기 가장 느린 그룹이 현재의 싸이클을 완료하면 로컬 파라미터를 보고하는
    분산 병렬 학습 시스템.
  20. 분산 병렬 학습을 수행하는 복수의 워커와 통신하는 통신부; 및
    상기 복수의 워커를 복수의 그룹으로 분류하고, 상기 복수의 그룹에 각각 대응하는 복수의 동기화 시간을 산출하고, 상기 복수의 동기화 시간에 기초하여, 상기 복수의 그룹에 각각 대응하는 복수의 워커 스테일 임계 값을 산출하고, 상기 복수의 그룹 내 소속 워커들이 그룹 별 상응하는 워커 스테일 임계 값에 기초하여 SSP 학습 방법으로 학습하도록 제어하는 제어부;를 포함하는
    분산 병렬 학습 제어 장치.
KR1020210189012A 2021-12-27 2021-12-27 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치 KR20230099543A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210189012A KR20230099543A (ko) 2021-12-27 2021-12-27 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210189012A KR20230099543A (ko) 2021-12-27 2021-12-27 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치

Publications (1)

Publication Number Publication Date
KR20230099543A true KR20230099543A (ko) 2023-07-04

Family

ID=87156467

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210189012A KR20230099543A (ko) 2021-12-27 2021-12-27 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치

Country Status (1)

Country Link
KR (1) KR20230099543A (ko)

Similar Documents

Publication Publication Date Title
US20220391771A1 (en) Method, apparatus, and computer device and storage medium for distributed training of machine learning model
CN109993299B (zh) 数据训练方法及装置、存储介质、电子装置
Peng et al. Dl2: A deep learning-driven scheduler for deep learning clusters
US20170185895A1 (en) System and Method for Training Parameter Set in Neural Network
US10754709B2 (en) Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis
ES2738319T3 (es) Sistema informático para entrenar redes neuronales
WO2019018375A1 (en) NEURONAL ARCHITECTURE RESEARCH FOR CONVOLUTION NEURAL NETWORKS
CN113168569A (zh) 去中心化分布式深度学习
US20180253646A1 (en) Hybrid aggregation for deep learning neural networks
CN110889509B (zh) 一种基于梯度动量加速的联合学习方法及装置
US11055139B2 (en) Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
KR20210090122A (ko) 분산형 모델 트레이닝 장치, 방법 및 컴퓨터 프로그램
CN114968559B (zh) 基于lsf的多主机多gpu分布式布置深度学习模型的方法
CN115362447A (zh) 针对执行流水线的划分
CN109445386A (zh) 一种基于onba的云制造任务最短生产时间调度方法
Han et al. Scheduling placement-sensitive BSP jobs with inaccurate execution time estimation
US11941528B2 (en) Neural network training in a distributed system
Li et al. Model-distributed dnn training for memory-constrained edge computing devices
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Chen et al. Hare: Exploiting inter-job and intra-job parallelism of distributed machine learning on heterogeneous gpus
CN117061365B (zh) 一种节点选择方法、装置、设备及可读存储介质
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
KR20230099543A (ko) 분산 병렬 학습 방법 및 분산 병렬 학습 제어 장치
KR20210123110A (ko) 작업의 특성을 고려한 딥 러닝 프레임워크와 실행할 연산 노드 스케줄링과 딥 러닝 프레임워크 간 인터페이스 변환 기법