KR20220006360A - 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템 - Google Patents

파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템 Download PDF

Info

Publication number
KR20220006360A
KR20220006360A KR1020200084221A KR20200084221A KR20220006360A KR 20220006360 A KR20220006360 A KR 20220006360A KR 1020200084221 A KR1020200084221 A KR 1020200084221A KR 20200084221 A KR20200084221 A KR 20200084221A KR 20220006360 A KR20220006360 A KR 20220006360A
Authority
KR
South Korea
Prior art keywords
mini
virtual
batches
workers
batch
Prior art date
Application number
KR1020200084221A
Other languages
English (en)
Other versions
KR102477243B1 (ko
Inventor
최영리
박재형
윤경찬
이창민
이승민
응우엔 타잉 응우엔
Original Assignee
울산과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 울산과학기술원 filed Critical 울산과학기술원
Priority to KR1020200084221A priority Critical patent/KR102477243B1/ko
Publication of KR20220006360A publication Critical patent/KR20220006360A/ko
Application granted granted Critical
Publication of KR102477243B1 publication Critical patent/KR102477243B1/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
    • G06N20/00Machine learning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

일 실시예에 따른 클러스터 시스템은 클러스터 시스템은 프로세싱 유닛들을 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당하는 자원 할당자, 신경망 모델을 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 대응하는 개수의 파티션들로 분할하는 모델 분할자, 및 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터를 유지하는 파라미터 서버를 포함한다.

Description

파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템{MACHINE LEARNING TRAINING METHOD BASED ON PARAMETRIC SYNCHRONIZATION MODEL AND TRAINING SYSTEM THEREOF}
실시예들은 파이프라인 기반 모델 병렬화 및 데이터 병렬화 통합을 위한 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템에 관한 것이다.
인공 지능(Artificial Intelligence; AI)의 응용 범위가 넓고 다양해짐에 따라 응용들의 성능을 높이기 위해 다양한 방식으로 딥러닝 모델이 진화하고 있으며, 이러한 발전 추세에 따라 딥러닝 모델의 규모 또한 커지고 있다. 딥러닝 모델의 규모가 커진다는 것은 모델을 구성하는 뉴런들이 많아지고 뉴런들을 연결하는 은닉 계층들(Hidden layers)의 깊이가 깊어짐을 의미한다. 이에 따라, 딥러닝의 추론(inference)이나 트레이닝 과정에서 계산량이 많아지고 메모리 요구량이 커져서 하나의 컴퓨터 또는 하나의 계산 디바이스의 한계를 넘는 상황이 종종 발생할 수 있어 적절한 대응이 요구된다.
전술한 배경기술은 발명자가 본원의 개시 내용을 도출하는 과정에서 보유하거나 습득한 것으로서, 반드시 본 출원 전에 일반 공중에 공개된 공지기술이라고 할 수는 없다.
일 실시예에 따르면, 파이프라인 모델 병렬화(Pipeline Model Parallelism; PMP)와 데이터 병렬화(Data Parallelism DP)를 함께 이용하여 거대 심층 신경망 모델을 트레이닝 함으로써 클러스터의 동일 기종 GPU 자원 및/또는 이기종 GPU 자원의 활용도뿐만 아니라 성능 또한 향상시킬 수 있다.
일 실시예에 따르면, 여러 개의 GPU들에 의해 하나의 가상 작업자를 구성하고, 신경망 모델을 분할(partition)하여 각 GPU에 할당된 하나의 미니 배치를 실행하도록 함으로써 가상 작업자들이 하나의 단일 GPU 메모리에 올라가지 않는 거대 심층 신경망 모델을 트레이닝하도록 할 수 있다.
일 실시예에 따르면, 파이프라인 모델 병렬화의 다수의 가상 작업자들이 데이터 병렬화를 통해 병렬화를 극대화함으로써 거대 심층 신경망 모델의 트레이닝 속도를 높일 수 있다.
일 실시예에 따르면, 파라미터를 동기화하기 위해 가상 작업자들 각각이 모델 파라미터의 갱신치를 계산하여 파라미터 서버로 푸시하고, 가상 작업자들 각각이 파라미터 서버로부터 필요한 모델 파라미터의 갱신치를 동기식 또는 비동기식으로 가져옴으로써 데이터 병렬 처리를 가능하게 할 수 있다.
일 실시예에 따르면, 미니 배치들을 파이프라인 모델 병렬화 및 데이터 병렬화를 통합한 파라미터 동기화 모델에 기반하여 처리함으로써 가상 작업자의 GPU 활용도를 향상시킬 수 있다.
일 실시예에 따르면, 이기종 GPU 클러스터에서 성능이 다른 여러 GPU들을 모아 유사한 성능을 가진 가상 작업자들을 구성함으로써 가상 작업자들 간의 데이터 병렬화 시에 발생하는 가장 느린 작업자가 전체 성능을 결정하게 되는 스트래글러(Straggler) 문제를 해결할 수 있다.
일 실시예에 따르면, 하나의 가상 작업자 내에서 발생하는 모델 파라미터를 관리하기 위한 로컬 스테일니스(local staleness)와 다수의 가상 작업자들 간에 발생하는 모델 파라미터를 관리하기 위해 글로벌 스테일니스(global staleness)를 정의함으로써 심층 신경망의 트레이닝 성능을 향상시킬 수 있다.
일 실시예에 따르면, 클러스터 시스템은 프로세싱 유닛들을 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당하는 자원 할당자(Resource Allocator); 상기 신경망 모델을 상기 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 대응하는 개수의 파티션들로 분할하는 모델 분할자(model petitioner); 및 상기 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터를 유지하는 파라미터 서버(Parameter server)를 포함한다.
상기 자원 할당자는 상기 가상 작업자들에 대한 자원 할당 정책에 기초하여 상기 프로세싱 유닛들을 상기 신경망 모델에 대응하는 상기 가상 작업자들 각각에게 할당할 수 있다.
상기 자원 할당 정책은 상기 가상 작업자들의 활성화(activation) 값과 그래디언트(gradient)의 전송 및 상기 가상 작업자들과 상기 파라미터 서버 간의 모델 파라미터의 동기화 시에 발생하는 통신 오버 헤드 및 상기 프로세싱 유닛들 각각의 성능 중 적어도 하나에 기초하여 결정될 수 있다.
상기 자원 할당자는 이기종 또는 동일 기종의 상기 프로세싱 유닛들을 상기 가상 작업자들 각각에게 동일 개수로 균등하게 할당하거나, 상기 이기종 또는 동일 기종의 프로세싱 유닛들을 상기 가상 작업자들 각각에게 상이한 개수로 할당할 수 있다.
상기 자원 할당자가 상기 프로세싱 유닛들을 상기 가상 작업자들 각각에게 동일 개수로 균등하게 할당하고, 상기 가상 작업자들에 대한 데이터 병렬화가 수행되는 경우, 상기 파라미터 서버는 상기 클러스터 시스템의 어느 한 노드에서 실행되는 파티션에 해당하는 레이어를 상기 프로세싱 유닛들에게 분산하여 배치할 수 있다.
상기 모델 분할자는 상기 프로세싱 유닛들이 사용되는 파이프라인의 처리 과정에서 변화되는 메모리 요구 사항 및 상기 파티션들의 실행 시간 중 적어도 하나를 고려하여 상기 신경망 모델을 상기 가상 작업자들에 대응하는 개수의 파티션들로 분할할 수 있다.
상기 가상 작업자들 각각은 상기 가상 작업자들 각각에서 이전의 미니 배치로부터 계산된 모델 파라미터에 대한 갱신없이 동시에 처리되는 미니 배치들을 포함하는 웨이브(Wave)를 기초로, 상기 웨이브에 포함된 미니 배치들에서 집계된 상기 모델 파라미터에 대한 갱신치를 한번에 상기 파라미터 서버로 푸시할 수 있다.
상기 가상 작업자들 각각은 데이터 병렬화를 위해 파이프라인을 구성하는 상기 가상 작업자들 각각에서 동시에 실행되는 미니 배치들을 포함하는 하나의 웨이브의 종료 시점에, 해당 웨이브에 포함된 미니 배치들에서 집계된 갱신치를 상기 파라미터 서버로 푸시(Push)하고, 상기 파라미터 서버에 저장된 갱신치를 풀(Pull) 함으로써 상기 모델 파라미터를 동기화할 수 있다.
상기 글로벌 모델 파라미터는 상기 가상 작업자들 각각에서 동시에 실행되는 미니 배치들을 포함하는 하나의 웨이브의 종료 시점에 대응하는 로컬 클럭(clock) 단위로 정기적으로 갱신된 값에 의해 동기화될 수 있다.
상기 가상 작업자들 각각은 모든 웨이브들에 대한 갱신치를 상기 파라미터 서버로 푸시함으로써 상기 글로벌 모델 파라미터들을 갱신할 수 있다.
상기 가상 작업자들 각각은 상기 미니 배치들 중 제1 미니 배치를 처리함으로써 산출된 상기 제1 미니 배치에 대응하는 갱신치에 의해 로컬 모델 파라미터를 갱신하고, 상기 제1 미니 배치에 연속하는 제2 미니 배치의 처리 시에 다른 미니 배치들에 의한 로컬 모델 파라미터들이 갱신될 때까지 기다리지 않고, 상기 로컬 모델 파라미터의 가장 최근 값을 사용하여 상기 신경망 모델의 트레이닝을 수행할 수 있다.
상기 가상 작업자들 각각에서 동시에 실행되는 최대 미니 배치들의 개수는 상기 신경망 모델의 트레이닝을 위한 메모리 요구 사항에 기초하여 결정될 수 있다.
상기 가상 작업자들 각각에서 실행되는 최대 미니 배치들의 개수는 상기 가상 작업자들 각각에 할당된 프로세싱 유닛들에서 미니 배치의 역방향 패스의 동작을 실행하기 전에 정방향 패스의 동작을 위해 상기 프로세싱 유닛들에서 처리할 수 있는 최대 미니 배치들의 개수에 의해 결정될 수 있다.
상기 최대 미니 배치들의 개수는 상기 정방향 패스의 동작과 상기 역방향 패스의 동작 간의 실행 비율, 및 파이프라인 방식에 의한 상기 미니 배치들의 처리 시에 사용되는 상기 프로세싱 유닛들의 개수에 기초하여 결정될 수 있다.
일 실시예에 따르면, 클러스터 시스템의 동작 방법은 프로세싱 유닛들을, 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당하는 단계; 상기 신경망 모델을 상기 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 대응하는 개수의 파티션들- 상기 파티션들은 상기 복수의 계층들 중 적어도 일부의 계층을 복제한 것임 -로 분할하는 단계; 상기 분할된 파티션들에 대응하는 미니 배치들을 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링하는 단계; 및 상기 가상 작업자들에 할당된 프로세싱 유닛들에 의해 파이프라인 방식으로 상기 미니 배치들을 처리함으로써 상기 신경망 모델을 트레이닝하는 단계를 포함한다.
상기 분할하는 단계는 상기 미니 배치들의 처리에 따른 상기 프로세싱 유닛들의 메모리 요구 사항 및 상기 파티션들의 실행 시간 중 적어도 하나에 기초하여 상기 신경망 모델을 상기 파티션들로 분할하는 단계를 포함할 수 있다.
상기 가상 작업자들 각각에서 동시에 진행되는 미니 배치들의 개수는 상기 가상 작업자들 각각에서 진행되는 미니 배치에 대한 가장 최신의 미니 배치로부터 누락된 갱신치들의 최대 개수에 해당하는 로컬 스테일니스(local staleness)의 임계값에 기초하여 결정될 수 있다.
상기 가상 작업자들 각각에서의 미니 배치의 처리 여부는 상기 클러스터 시스템 내의 다른 모든 가상 작업자들이 전역적으로 계산한 가장 최신의 미니 배치에서 누락된 갱신치들의 최대 개수에 해당하는 글로벌 스테일니스 경계에 기초하여 결정될 수 있다.
상기 스케줄링하는 단계는 상기 미니 배치들에 대한 역방향 패스 작업들에 정방향 패스 작업들보다 높은 우선 순위를 부여하여 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링하는 단계; 및 상기 미니 배치들에 대한 역방향 패스 작업들과 상기 정방향 패스 작업들을 선입 선출(First In First Out; FIFO) 스케줄링 정책에 따라 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링하는 단계 중 적어도 하나를 포함할 수 있다.
상기 신경망 모델은 상기 신경망 모델의 트레이닝에 필요한 메모리 용량이 상기 프로세싱 유닛들 중 어느 하나의 프로세싱 유닛의 메모리를 초과하는 거대 심층 신경망 모델을 포함할 수 있다.
상기 가상 작업자들 각각은 상기 미니 배치들 중 제1 미니 배치를 처리함으로써 산출된 상기 제1 미니 배치에 대응하는 갱신치에 의해 로컬 모델 파라미터를 갱신하고, 상기 제1 미니 배치에 연속하는 제2 미니 배치의 처리 시에 다른 미니 배치들에 의한 로컬 모델 파라미터들이 갱신될 때까지 기다리지 않고, 상기 로컬 모델 파라미터의 가장 최근 값을 사용하여 상기 신경망 모델의 트레이닝을 수행할 수 있다.
상기 가상 작업자들 각각에서 동시에 실행되는 최대 미니 배치들의 개수는 상기 신경망 모델의 트레이닝을 위한 메모리 요구 사항에 기초하여 결정될 수 있다.
상기 프로세싱 유닛들은 이종의 그래픽 프로세싱 유닛들(GPUs)을 포함할 수 있다.
상기 클러스터 시스템의 동작 방법은 상기 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터를 유지하는 단계를 더 포함할 수 있다.
일 측에 따르면, 파이프라인 모델 병렬화(Pipeline Model Parallelism; PMP)와 데이터 병렬화(Data Parallelism DP)를 함께 이용하여 거대 심층 신경망 모델을 트레이닝 함으로써 클러스터의 동일 기종 GPU 자원 및/또는 이기종 GPU 자원의 활용도뿐만 아니라 성능 또한 향상시킬 수 있다.
일 측에 따르면, 여러 개의 GPU들에 의해 하나의 가상 작업자를 구성하고, 신경망 모델을 분할(partition)하여 각 GPU에 할당된 하나의 미니 배치를 실행하도록 함으로써 가상 작업자들이 하나의 단일 GPU 메모리에 올라가지 않는 거대 심층 신경망 모델을 트레이닝하도록 할 수 있다.
일 측에 따르면, 파이프라인 모델 병렬화의 다수의 가상 작업자들이 데이터 병렬화를 통해 병렬화를 극대화함으로써 거대 심층 신경망 모델의 트레이닝 속도를 높일 수 있다.
일 측에 따르면, 파라미터를 동기화하기 위해 가상 작업자들 각각이 모델 파라미터의 갱신치를 계산하여 파라미터 서버로 푸시하고, 가상 작업자들 각각이 파라미터 서버로부터 필요한 모델 파라미터의 갱신치를 동기식 또는 비동기식으로 가져옴으로써 데이터 병렬 처리를 가능하게 할 수 있다.
일 측에 따르면, 미니 배치들을 파이프라인 모델 병렬화 및 데이터 병렬화를 통합한 파라미터 동기화 모델에 기반하여 처리함으로써 가상 작업자의 GPU 활용도를 향상 시킬 수 있다.
일 실시예에 따르면, 이기종 GPU 클러스터에서 성능이 다른 여러 GPU들을 모아 유사한 성능을 가진 가상 작업자들을 구성함으로써 가상 작업자들 간의 데이터 병렬화 시에 발생하는 가장 느린 작업자가 전체 성능을 결정하게 되는 스트래글러(Straggler) 문제를 해결할 수 있다.
일 측에 따르면, 하나의 가상 작업자 내에서 발생하는 모델 파라미터를 관리하기 위한 로컬 스테일니스(local staleness)와 다수의 가상 작업자들 간에 발생하는 모델 파라미터를 관리하기 위해 글로벌 스테일니스(global staleness)를 정의함으로써 심층 신경망의 트레이닝 성능을 향상시킬 수 있다.
도 1은 일 실시예에 따른 다수의 작업자들이 있는 데이터 병렬 처리의 기본 형태를 도시한 도면.
도 2는 일 실시예에 따른 모델 병렬 처리의 기본 형태를 도시한 도면.
도 3은 일 실시예에 따른 클러스터 시스템의 구조를 도시한 도면.
도 4는 일 실시예에 따른 미니 배치들이 파이프라인 방식으로 실행되는 과정을 도시한 도면.
도 5는 일 실시예에 따라 파이프 라인 방식으로 실행되는 여러 가상 작업자들이 데이터 병렬화를 실행하는 방법을 설명하기 위한 도면.
도 6은 일 실시예에 따른 클러스터 시스템의 동작 방법을 나타낸 흐름도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 다수의 작업자들에 의해 데이터 병렬 처리가 수행되는 기본 형태를 도시한 도면이다.
심층 신경망(Deep Neural Network; DNN) 모델은 입력 계층, 은닉 계층들, 및 출력 계층을 포함하는 다수의 계층들로 구성될 수 있다. 심층 신경망 모델에서 노드로 표현되는 뉴런(neuron)은 활성화 함수(activation function)를 의미하며, 입력 데이터가 뉴런을 통해 전달되어 가는 동안 동일한 단계에서 동일한 활성화 함수를 실행하는 뉴런들을 묶어 '계층(layer)'이라 부를 수 있다. 뉴런들을 연결하는 에지(edge)는 입력 계층으로부터 출력 계층으로 나아가는 정방향 패스(forward pass)와 출력 계층으로부터 입력 계층으로 오류가 역전파되는 역방향 패스(backward pass)를 내포하며, 연결된 뉴런들 사이의 모델 파라미터를 포함할 수 있다.
심층 신경망 모델의 트레이닝 과정 및 추론 과정에서 에지는 뉴런들 사이의 데이터를 전달할 수 있다. 에지는 이전 뉴런의 계산 결과에 모델 파라미터를 곱하여 예를 들어, 벡터(vector), 매트릭스(matrix), 또는 텐서(tensor) 등의 형태로 다음 뉴런으로 전달할 수 있다. 예를 들어, 입력 계층의 입력값이 벡터값 I인 경우, I에 입력 계층과 첫번째 은닉 계층 H1사이의 모델 파라미터 매트릭스 W를 곱한 결과가 첫번째 은닉 계층 H1에 입력으로 전달될 수 있다.
심층 신경망 모델의 트레이닝 목표는 트레이닝 샘플 및 트레이닝 샘플에 대응하는 레이블(label)로 구성된 트레이닝 데이터 세트의 손실 함수의 합계를 최소화하는 심층 신경망 모델의 모델 파라미터, 다시 말해, 가중치(weight)를 찾는 것이다. 여기서, '모델 파라미터(model parameter)'는 예를 들어, 신경망의 모델 파라미터, 또는 그래디언트(gradient) 등과 같이 심층 신경망의 각 계층들에서 사용되는 값에 해당할 수 있다.
예를 들어, 널리 사용되는 트레이닝 방법인 확률적 기울기 강하(stochastic gradient descent; SGD)에서는 모델 파라미터 w의 갱신치를 산출하여 모델 파라미터 w를 갱신할 수 있다. 이때, 모델 파라미터의 갱신치는 예를 들어, 미니 배치(mini-batch)라고 하는 트레이닝 샘플의 하위 집합의 기울기에 해당할 수 있다.
심층 신경망 모델의 트레이닝 과정은 예를 들어, 정방향 패스(forward pass)와 역방향 패스(backward pass)를 오가는 반복 동작들을 통해 수행될 수 있으며, 이러한 반복 동작들에 의해 많은 파라미터들이 생성될 수 있다. 심층 신경망 모델은 정방향 패스(forward pass)에서 미니 배치 처리를 통해 각 샘플의 레이블(label)을 예측할 수 있다. 이때, 심층 신경망 모델의 각 계층은 주어진 입력 데이터와 현재 파라미터를 사용하여 다음 계층의 활성화(activation)를 계산할 수 있다. 심층 신경망 모델의 마지막 계층은 역방향 패스(backward pass)에서의 예측 및 실제 레이블을 기반으로 손실(loss)을 계산할 수 있다. 손실은 모델의 모든 계층들에게 역전파(backpropagate)되며, 각 계층들은 상위 계층에 의해 계산된 그래디언트(gradients)와 정방향 패스(forward pass)에서 이전에 계산된 활성화(activations) 값을 사용하여 그래디언트를 갱신할 수 있다.
도 1을 참조하면, 예를 들어, 파라미터 서버(parameter server)(110)와 4 개의 작업자들(Workers; R)(120,130,140,150)이 데이터 병렬 처리(Data Parallelism; DP)를 수행하는 기본 형태가 도시된다.
데이터 병렬 처리는 트레이닝 데이터를 다수의 컴퓨터들에서 분산 처리하는 기법으로서 일 실시예에서는 다수의 작업자들(120,130,140,150)을 이용하여 심층 신경망 모델의 트레이닝 속도를 높일 수 있다. 일 실시예에서는 트레이닝 데이터 세트를 서브 셋들(sub sets)로 나누고 작업자들(120,130,140,150) 각각에게 서로 다른 서브셋을 할당할 수 있다. 작업자들(120,130,140,150) 각각은 예를 들어, 서로 다른 GPU들(G1, G2, G3, 및 G4) 각각에 대응할 수 있다. 이때, 서로 다른 GPU들은 예를 들어, 이기종의 GPU들일 수 있으며, 반드시 이에 한정되지는 않는다.
작업자들(120,130,140,150) 각각은 심층 신경망 모델의 적어도 일부(예를 들어, 서브 셋)를 포함하는 복제본을 포함할 수 있다. 작업자들(120,130,140,150) 각각은 복제본(서브 셋)에 의해 자신에게 할당된 미니 배치를 처리함으로써 파라미터 서버(110)가 여러 작업자들(120,130,140,150) 간에 파라미터를 동기화하는 데 사용되는 (모델 파라미터의) 갱신치를 산출할 수 있다.
예를 들어, 심층 신경망 모델이 거대 심층 신경망 모델(Giant Deep Neural Network Model)의 경우, 작업자들(120,130,140,150)과 파라미터 서버(110) 간의 통신 오버 헤드가 클 수 있다. 일 실시예에서는 파라미터를 동기화하기 위해 작업자들(120,130,140,150) 각각이 모델 파라미터의 갱신치(update value)를 계산하여 파라미터 서버(110)로 푸시(push)하고, 작업자들(120,130,140,150) 각각이 파라미터 서버(110)로부터 필요한 모델 파라미터의 갱신치를 동기식 또는 비동기식으로 가져올 수 있다.
데이터 병렬 처리를 위해 다수의 작업자들(120,130,140,150)에서 분산 처리된 모델 파라미터 갱신치들에 의해 파라미터를 동기화하는 데에는 예를 들어, BSP(Bulk Synchronous Parallel) 모델, ASP(Asynchronous Parallel) 모델, 및 SSP(stale synchronous parallel) 모델 등과 같은 다양한 동기화 모델들이 사용될 수 있으며, 반드시 이에 한정되지는 않는다.
BSP 모델은 예를 들어, 장벽(barrier)에 도달하는 작업자가 다른 모든 작업자들이 장벽에 도달할 때까지 기다림으로써 모든 작업자들에서 동기화가 함께 진행되도록 할 수 있다. 다시 말해, BSP 모델의 경우, 각 작업자가 다음 미니 배치 p+1의 처리를 시작하기 전에 다른 모든 작업자들이 현재 미니 배치 p의 처리를 완료할 때까지 기다려야 갱신된 모델 파라미터를 미니 배치 p + 1에 사용할 수 있다.
ASP 모델은 모델 파라미터 동기화 시에 작업자가 항상 반복할 때마다 클러스터에 포함된 서버 또는 프로세싱 유닛에서 서로 다른 버전의 모델 파라미터를 수신하지 않도록 할 수 있다. 다시 말해, ASP 모델의 경우, 각 작업자는 다른 작업자들이 미니 배치 p의 처리를 완료할 때까지 기다릴 필요가 없다. 따라서, 각 작업자에 의해 미니 배치 p+1에 사용된 파라미터는 다른 작업자의 미니 배치 p에서 갱신된 모델 파라미터를 반영하지 않을 수 있다.
BSP 모델을 사용하면, 특히 다른 GPU를 가진 각 작업자가 서로 다른 트레이닝 성능을 제공하는 이기종 GPU 클러스터에서 시스템의 동기화 오버 헤드가 높아질 수 있다. 반면에 ASP 모델은 수렴을 보장하지 않으며, 동기화 오버 헤드가 없다.
SSP 모델은 동기화를 수행하지만 BSP 모델의 엄격한 동기화 요구 사항을 완화한 것으로서, ASP 모델과 BSP 모델의 중간 접근 방식을 제공한다. SSP 모델은 원칙적으로, 가장 빠른 작업자와 가장 느린 작업자 간의 반복 횟수의 차이를 모니터링하고, 반복 횟수의 차이가 일정 임계값을 초과하면 두 작업자에 대한 동기화를 시행하여 반복 차이가 임계 값 내에 있도록 제한할 수 있다.
SSP모델을 사용하면 각 작업자는 다른 작업자가 계산한 최신의 갱신치를 반영하지 않고 갱신 이전의 모델 파라미터를 사용하여 미니 배치의 트레이닝을 진행할 수 있다. 따라서, 작업자는 미니 배치 처리가 완료될 때마다 다른 작업자와 동기화 할 필요가 없습니다. 따라서, SSP 모델을 사용하는 경우, 파라미터의 스테일니스가 발생할 수 있다. 여기서, '스테일니스(staleness)'는 예를 들어,다른 작업자(130)가 산출한 모델 파라미터의 갱신치 b에 의해 파라미터 서버(110)에 저장된 파라미터가 갱신이 된 후, 작업자(120)는 갱신치 a를 산출하여 자신이 로컬에 가지고 있는 로컬 파라미터에 적용하고, 파라미터 서버(110)의 최신 갱신치를 반영하지 않은 로컬 파라미터를 이용하여 다음의 미니 배치를 트레이닝하는 상태로 이해될 수 있다. '스테일니스'는 '스테일(stale)'이라고도 불릴 수 있다. 그러나 이러한 스테일니스는 사용자가 정의한 대로 제한(bounded)될 수 있으며, 일 실시예에서는 사용자 정의에 의해 제한되는 반복 횟수의 차이를 '스테일니스 임계값(staleness threshold)'이라고 부를 수 있다.
SSP 모델은 작업자의 성능이 다양할 때 유리하므로 특히 이기종 시스템과 관련하여 사용될 수 있다. SSP 모델에서 작업자들(120,130,140,150) 각각은 주기적으로 모델 파라미터의 갱신치를 파라미터 서버(110)에 푸시할 수 있다.
일 실시예에서는 작업자들(120,130,140,150) 각각이 모델 파라미터의 갱신치를 파라미터 서버(110)에 갱신하는 동기화 간격(synchronization interval)을 '클럭(clock)'이라 부를 수 있다.
작업자들(120,130,140,150) 각각은 트레이닝을 반복할 때마다 로컬 클럭(local clock)을 하나씩 증가시킬 수 있으며, 로컬 클럭은 작업자들(120,130,140,150) 각각에서 처리하는 미니 배치의 트레이닝 기간(training period)에 해당할 수 있다.
예를 들어, 스테일니스 임계값 s(s ≥ 0임)가 주어진 경우, 클럭 c를 가진 작업자들(120,130,140,150) 각각은 갱신되기 전의 모델 파라미터들을 사용할 수 있다. 이때, 갱신되기 전의 모델 파라미터들은 예를 들어, 반복 0에서 c-(s-l)까지의 모든 갱신된 모델 파라미터들을 포함할 수 있으며, 반복 c-(s-l) 이후의 최신의 갱신된 모델 파라미터가 포함될 수도 있다. 즉, 작업자는 파라미터들을 사용하여 다음 미니 매치에 대한 트레이닝을 계속할 수 있으며, 이러한 파라미터들의 갱신에서 최신의 미니 배치들 s이 누락될 수도 있다.
도 2는 일 실시예에 따른 모델 병렬 처리의 기본 형태를 도시한 도면이다. 도 2를 참조하면, 일 실시예에 따라 4개의 GPU들에서 모델 병렬 처리가 실행되는 과정이 도시된다.
모델 병렬 처리(Model parallelism; MP)는 예를 들어, 거대 심층 신경망 모델(Giant Deep Neural Network Model)과 같이 딥러닝 네트워크를 하나의 프로세싱 유닛(예를 들어, 단일 GPU 등)의 메모리에 로드하기에는 너무 큰 경우, 딥러닝 네트워크를 분할하여 다수의 프로세싱 유닛들에서 처리하는 기법이다.
다시 말해, 모델 병렬 처리는 예를 들어, 1개의 GPU의 메모리 크기를 초과하는 심층 신경망 모델을 여러 부분으로 나누어 각각 서로 다른 GPU에 배정하는 기법에 해당할 수 있다. 예를 들어, 학습에 필요한 메모리가 60GB인 심층 신경망 모델 A이 있다고 하자. 이때, 메모리 크기가 20GB인 1개의 GPU로는 이 심층 신경망 모델 A를 트레이닝할 수 없다. 따라서, 필요한 메모리가 60GB인 심층 신경망 모델 A를 3개의 GPU들에 각각 20GB씩 나눠서 분산 처리할 수 있다.
여러 계층들로 구성된 거대 심층 신경망 모델은 계층들을 한 계층씩 또는 여러 계층들의 묶음으로 나누어, 예를 들어, k 개의 파티션들(partitions)(예를 들어, k = 4)(P1, P2, P3, P4)로 구분할 수 있다. 이때, 파티션들(P1, P2, P3, P4) 각각은 서로 다른 GPU들(G1, G2, G3, G4)에게 할당될 수 있다. GPU들(G1, G2, G3, G4)은 합쳐져 하나의 가상 작업자 역할을 수행할 수 있다. 일 실시예에서, '가상 작업자'는 여러 GPU들이 자원을 총합(aggregate)하여 하나의 작업자처럼 행동하는 것으로 이해될 수 있다. GPU들(G1, G2, G3, G4) 각각은 자신에게 할당된 파티션의 계층에 대해 정방향 패스 및 역방향 패스를 모두 실행할 수 있다.
일 실시예에서 정방향 패스의 동작 동안 어느 하나의 미니 배치에 해당하는 입력 데이터에 대해 계산된 활성화 값은 어느 하나의 미니 배치의 역방향 패스의 동작이 실행될 때까지 해당 GPU의 메모리에 유지될 수 있다. 이때, 파티션의 정방향 패스 및 역방향 패스는 동일한 GPU에서 실행될 수 있다. 예를 들어, 정방향 패스 동안 미니 배치에 대해 계산된 활성화 값이 미니 배치의 역방향 패스가 실행될 때까지 GPU의 메모리에 유지되지 않는다면, 결과를 유지하기 위한 활성화 값을 재계산하거나, 또는 메모리 관리를 통해 활성화 값을 관리하는 데 상당한 추가 오버 헤드가 발생할 수 있다.
도 2에서 Mp .k은 파티션 k에서 미니 배치 p의 실행을 나타내며, 파티션 k는 GPU k에서 실행될 수 있다. 도 2에 도시된 4개의 작업자들(R1, R2, R3, R4)이 하나의 가상 작업자로 합쳐져 미니 배치를 수행하는 과정은 다음과 같다.
Step 1: 각 미니 배치에 대해 정방향 패스의 실행은 GPU1에서 시작하여 GPUk까지 수행된다. l ≤ i < k 인 각 GPUi 가 할당된 파티션의 순방향 패스 전달을 완료하면, 파티션의 마지막 계층에서 계산된 활성화 값(activations)을 GPUi +1로 전달할 수 있다.
Step 2: GPUk는 파티션의 순방향 패스 전달을 완료한다.
Step 3: 미니 배치의 역방향 패스가 GPUk에서 GPU1 까지 실행된다. 예를 들어, l ≤ i' < k 인 각 GPUi '가 역방향 패스를 마치면, 할당된 파티션에서 첫 번째 계층의 계산된 로컬 그래디언트만을 GPUi '- 1 로 전달할 수 있다.
보다 구체적으로, 도 2에서 하나의 심층 신경망은 4개의 파티션들(P1, P2, P3, P4)로 구분되고, 파티션들(P1, P2, P3, P4) 각각은 서로 다른 작업자들(R1, R2, R3, R4에게 할당될 수 있다. 이때, 작업자들(R1, R2, R3, R4)각각은 GPU들(GPU1 , GPU2 , GPU3, GPU4)에 대응될 수 있다.
예를 들어, 시간 t1에 작업자 R1이 자신에게 할당된 파티션 P1에 의해 미니 배치 M1.1을 처리한 경우, 미니 배치 M1.1의 처리 결과는 정방향 패스에 따라 작업자 R2에게 전달될 수 있다. 작업자 R2는 미니 배치 M1.1의 처리 결과를 기초로, 시간 t2에서 자신에게 할당된 파티션 P2에 의해 미니 배치 M1. 2을 처리할 수 있다. 미니 배치 M1.2의 처리 결과는 정방향 패스에 따라 작업자 R3에게 전달될 수 있다. 작업자 R3는 미니 배치 M1.2의 처리 결과를 기초로, 시간 t3에서 자신에게 할당된 파티션 P3에서 미니 배치 M1.3을 처리할 수 있다. 미니 배치 M1.3의 처리 결과는 정방향 패스에 따라 작업자 R4에게 전달될 수 있다. 이에 따라, 작업자 R4는 미니 배치 M1.3의 처리 결과를 기초로, 시간 t4에서 자신에게 할당된 파티션 P4에 의해 미니 배치 M1. 4을 처리할 수 있다.
이때, 작업자 R4는 미니 배치 M1.4의 처리 결과(즉, 정방향 패스에서의 예측)와 실제 레이블을 기반으로 손실(loss)을 산출할 수 있다. 손실은 역방향 패스를 통해 심층 신경망의 모든 계층들, 다시 말해, 모든 파티션들에게 전달될 수 있다. 이때, 각 파티션들은 이전 파티션에서 계산된 그래디언트(gradients)와 정방향 패스에서 이전에 계산된 활성화(activations) 값을 사용하여 그래디언트를 산출할 수 있다.
다시 말해, 작업자 R4는 작업자 R3, R2, R1에게 역방향 패스를 통해 손실을 전달할 수 있다. 각 작업자들은 전달된 손실을 기초로 시간 t5, 시간 t6 시간 t7 시간 t8에서 각각 미니 배치 M1.4, 미니 배치 M1.3, 미니 배치 M1.2, 미니 배치 M1. 1를 순차적으로 처리할 수 있다. 이때, 각 작업자는 할당된 파티션에서 계산된 로컬 그래디언트를 역방향 패스를 통해 다음 작업자에게 전달할 수 있다. 예를 들어, 단일 GPU에서만 정방향 패스 또는 역방향 패스를 실행하는 경우 GPU 활용도가 낮을 수 있지만, 모델 병렬 처리를 사용하면 단일 GPU에 비해 매우 큰 거대 심층 신경망 모델을 실행할 수 있다.
일 실시예에서는 작업자의 GPU 활용도를 높이기 위해 미니 배치를 예를 들어, 아래의 도 4와 같은 파이프라인 방식으로 처리할 수 있다. 예를 들어, 심층 신경망 모델에 대한 역방향 패스의 실행 시간이 정방향 패스의 실행 시간의 두 배라고 가정하자. 이 경우, GPU1이 이전 미니 배치의 처리를 완료하면, 후속 미니 배치를 하나씩 GPU1에 공급할 수 있다. 이를 통해 여러 GPU들이 서로 다른 미니 배치들에 대해 할당된 계층의 정방향 패스 또는 역방향 패스를 동시에 실행할 수 있다. 미니 배치들을 파이프파인 방식을 통해 처리하는 방법은 아래의 도 4를 참조하여 구체적으로 설명한다.
도 3은 일 실시예에 따른 클러스터 시스템의 아키텍쳐를 도시한 도면이다. 도 3을 참조하면, 일 실시예에 따라 N 개의 노드들로 구성된 클러스터 시스템(300)의 아키텍처가 도시된다. 각 노드는 예를 들어, 동종 또는 이종의 GPU들의 집합으로 구성될 수 있고, 노드들 간의 GPU 및 메모리 또한 서로 동종 또는 이기종일 수 있습니다.
일 실시예에 따른 클러스터 시스템(300)은 계산 능력과 메모리 용량이 다른 다양한 유형의 GPU들로 구성된 이기종 GPU 클러스터를 포함하며, 거대 심층 신경망 모델(305)을 트레이닝할 수 있다. 일 실시예에 따른 클러스터 시스템은 파이프라인 모델 병렬 처리(Pipeline Model Parallelism; PMP)와 데이터 병렬 처리(DP)를 통해 거대 심층 신경망 모델(305)을 트레이닝 함으로써 클러스터의 이기종 GPU 자원의 활용도 뿐만 아니라 클러스터의 성능 또한 향상시킬 수 있다.
일 실시예에 따른 클러스터 시스템(300)은 k개의 이기종의 GPU들로 구성된 가상 작업자를 통해 데이터 병렬 처리(DP)를 수행할 수 있으며, 가상 작업자들에 의해 심층 신경망 모델을 트레이닝할 수 있다.
일 실시예에 따른 클러스터 시스템(300)은 예를 들어, N 개의 노드들(Node 1, .. , Node N-1, Node N)을 포함할 수 있다. N개의 노드들은 예를 들어, N개의 가상 작업자들(Virtual Worker; VW)(VW 1, .. ,VW N-1, VW N)에 1:1로 대응할 수도 있고, 또는 다수:1, 또는 1:다수로 대응할 수도 있다. 하나의 가상 작업자(VW 1)는 예를 들어, 4개의 GPU들(GA, GA, GA, GA)을 포함할 수 있다. 또한, 가상 작업자(VW N-1) 및 가상 작업자(VW N1) 각각은 예를 들어, 4개의 GPU들(GB, GB, GC, GC)을 포함할 수 있다. 이때, 가상 작업자들(VW1, ..VW N-1, VW N) 각각을 구성하는 GPU들의 개수(k)는 각 가상 작업자(VW)마다 다를 수 있다. 일 실시예에서는 설명의 편의를 위하여, GPU들의 개수(k)가 각 가상 작업자(VW)에 대해 일정한 경우를 예로 들어 설명하지만, 반드시 이에 한정되는 것은 아니고, GPU들의 개수(k)는 가상 작업자(VW)마다 달라질 수도 있다. 일 실시예에서는 가상 작업자(VW)가 개별 GPU에 자원 기능이 없는 경우에도 GPU를 집계하여 데이터 병렬 처리를 허용할 수 있다.
또한, 일 실시예에 따른 클러스터 시스템(300)은 거대 심층 신경망 모델(305)을 수용하기 위해 각 가상 작업자(VW)가 모델 병렬 처리를 기반으로 아래의 도 4와 같은 파이프라인 방식에 의해 각 미니 배치들을 처리함으로써 GPU 자원을 완전히 활용할 수 있다.
클러스터 시스템(300)은 이기종 설정(heterogeneous setting)에서의 파이프라인 모델 병렬 처리(Pipelined Model Parallelism)를 수행할 수 있다.
클러스터 시스템(300)은 자원 할당자(Resource Allocator)(310), 모델 분할자(model partitioner)(330), 및 파라미터 서버(Parameter server)(350)를 포함할 수 있다.
가상 작업자의 파이프라인 모델 병렬 처리를 기반으로 DNN 모델을 트레이닝하기 위해, 자원 할당자(310)는 프로세싱 유닛들을 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당한다. 자원 할당자(310)는 예를 들어, 자원 할당 정책에 따라 k 개의 GPU들을 가상 작업자들 각각에게 할당할 수 있다.
일 실시예에 따른 자원 할당 정책은 이기종 GPU들을 가상 작업자들에게 할당하기 위해, 예를 들어, 복수 개의 프로세싱 유닛들 각각의 성능 및 통신 오버 헤드 등과 같은 요소들을 고려하여 결정될 수 있다. 통신 오버 헤드는 예를 들어, 가상 작업자들의 활성화(activation) 값과 그래디언트(gradient)의 전송 및 상기 가상 작업자들과 파라미터 서버 간의 모델 파라미터 동기화 시에 발생할 수 있다.
실시예에 따라서, 자원 할당자(310)는 이기종 및/또는 동일 기종의 프로세싱 유닛들을 가상 작업자들 각각에게 동일 개수로 균등하게 할당할 수도 있고, 또는 이기종 또는 동일 기종의 프로세싱 유닛들을 가상 작업자들 각각에게 상이한 개수로 할당할 수도 있다. 자원 할당자(310)는 예를 들어, 같은 GPU들로 구성된 각 노드의 GPU를 모든 가상 작업자들에게 균등하게 분배할 수 있다. 따라서, 모든 가상 작업자들에게 서로 다른 종류의 GPU들이 할당될 수 있지만 모든 가상 작업자들은 동일한 개수의 리소스를 가질 수 있다. 다시 말해, 4개의 노드들이 각각 A, B, C, D라는 GPU를 4개씩 가지고 있고, 가상 작업자가 4개라고 하면, 자원 할당자(310)는 각 가상 작업자를 A, B, C, D와 같이 4개의 GPU로 구성할 수 있다. 이러한 균등한 자원 할당 방식은 신경망 모델의 파티셔닝에도 동일하게 적용될 수 있고, 자원의 균등 분배에 따라 가상 작업자들 간에 성능이 동일하게 되어 스트래글러(straggler) 문제를 완화할 수 있습니다.
이 밖에도, 자원 할당자(310)가 프로세싱 유닛들을 가상 작업자들 각각에게 동일 개수로 균등하게 할당하고, 가상 작업자들에 대한 데이터 병렬화(DP)를 수행하는 경우, 파라미터 서버(350)는 클러스터 시스템(300)의 어느 한 노드에서 실행되는 파티션에 해당하는 레이어를 GPU 노드들에게 분산하여 배치할 수 있다. 파라미터 서버(350)가 GPU 노드들에게 균등 분배된 경우, 동일한 노드에서 실행되는 파티션의 파라미터(모델의 layer들)는 해당 노드에서 실행되는 파라미터 서버(350)에 배치됨으로써 파라미터 동기화를 위해 실제 네트워크 트래픽을 발생시키지 않을 뿐만 아니라, 각 노드 안에서 파라미터를 주고 받음으로써 파라미터의 업데이트에 따른 통신 오버헤드를 크게 줄일 수 있다. 예를 들어, 노드 A에 할당된 파티션에 해당하는 파라미터를 관리하는 파라미터 서버(의 일부)가 노드 A에 분산 배치되면, 각 가상 작업자가 파라미터 서버에게 파라미터 갱신치를 전송하고, 파라미터 서버로부터 동기화된 파라미터를 수신할 때, 노드 A 안에서만 통신을 하면 되므로 통신 오버헤드를 크게 줄일 수 있다.
클러스터 시스템(300)의 가상 작업자들이 파이프라인 모델 병렬 처리를 수행하는 방법은 아래의 도 4를 참조하여 구체적으로 설명한다.
모델 분할자(model practitioner)(330)는 자원 할당자(310)에 의해 할당된 프로세싱 유닛들을 기초로, 트레이닝하고자 하는 신경망 모델(305)을 가상 작업자들에 대응하는 개수의 파티션들로 분할한다. 모델 분할자(330)는 주어진 심층 신경망 모델(305)과 할당된 k개의 GPU들을 기초로, 심층 신경망 모델을 가상 작업자들에 대응하는 k 개의 파티션들로 분할하여 가상 작업자들에서 실행되는 파이프라인의 성능을 최대화할 수 있다.
파라미터 서버(350)는 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터(global weight)를 유지(maintain)한다. 이때, 가상 작업자들 각각은 예를 들어, 글로벌 모델 파라미터의 로컬 복사본을 포함하고, 전술한 다양한 동기화 정책에 따라 파라미터 서버(350)와 주기적으로 글로벌 모델 파라미터의 갱신치를 동기화할 수 있다.
일 실시예에서는 하나의 가상 작업자 내에서 발생하는 모델 파라미터와 다수의 가상 작업자들 간에 발생하는 모델 파라미터를 관리하기 위해 '로컬 스테일니스(local staleness)'와 '글로벌 스테일니스(global staleness)'이라는 두 가지 유형의 스테일니스를 정의함으로써 심층 신경망의 트레이닝 성능을 향상시킬 수 있다.
로컬 스테일니스는 개별 가상 작업자에서 발생하는 스테일니스를 나타낸다. 각 가상 작업자가 파이프라인 방식으로 복수 개의 미니 배치들을 처리할 때 미니 배치들은 병렬로 처리될 수 있다. 따라서, 가상 작업자가 하나의 미니 배치를 처리하는 경우에 볼 수 있는 모델 파라미터가 이전의 모든 미니 배치들에서의 갱신치를 반영하지 않을 수 있다. 이와 같이 하나의 가상 작업자에서 미니 배치를 처리할 때에 이전의 미니 배치들의 갱신치가 반영되지 않음에 따라 해당 미니 배치의 모델 파라미터가 최신의 값을 가지지 못하게 되는 것을 '로컬 스테일니스'라고 부를 수 있다.
또한, 글로벌 스테일니스는 다수의 가상 작업자들 간에 발생하는 스테일니스를 의미한다.
일 실시예에 따른 클러스터 시스템(300)은 파라미터 서버(350)와 가상 작업자들 간의 통신 오버 헤드를 줄여야 한다. 또한, 클러스터 시스템(300)은 이기종의 프로세싱 유닛들로 구성된 가상 작업자들로 인한 동기화 오버 헤드를 완화해야 한다. 따라서, 글로벌 모델 파라미터의 로컬 복사본이 너무 오래되어 다른 가상 작업자들이 최근에 갱신을 누락한 모델 파라미터들이 너무 많지 않은 한, 각 가상 작업자는 모든 미니 배치들에 대한 전체 모델 파라미터를 쿼리(query)하지 않고 트레이닝을 진행할 수 있다. 이때, 미니 배치들 간의 반복 횟수의 차이를 제한하는 스테일니스 임계치 또는 스테일니스 조건(staleness condition)은 사용자에 의해 설정될 수 있다.
도 4는 일 실시예에 따른 가상 작업자에서 미니 배치들이 파이프라인 방식으로 처리되는 과정을 도시한 도면이다. 도 4를 참조하면, 예를 들어, 4 개의 GPU들을 가진 가상 작업자가 파이프라인 모델 병렬 처리에 의해 미니 배치들을 처리하는 상황이 도시된다.
일 실시예에서는 모델 파라미터의 동기화를 위해 WSP(Wave Synchronous Parallel) 모델을 사용할 수 있다. 여기서, 웨이브(Wave; W)는 가상 작업자들 각각에서 이전의 미니 배치로부터 계산된 모델 파라미터에 대한 갱신없이 동시에 처리되는 일련의 미니 배치들로 이해될 수 있다. 예를 들어, 웨이브에 포함되는 미니 배치들의 개수를 Nm라고 하자. 이 경우, 가상 작업자는 웨이브 내에서 이전 미니 배치 i'의 처리가 완료될 때까지 기다리지 않고, i 번째 미니 배치의 처리를 진행할 수 있다. 여기서 1 < i ≤ Nm 이고, 1 ≤ i' < i 일 수 있다.
가상 작업자는 웨이브의 첫 번째 미니 배치에서의 갱신이 마지막 미니 배치에 의해 사용되는 모델 파라미터에 반영되도록 강제하지 않기 때문에, WSP 모델의 로컬 스테일니스 임계값은 Nm -1이 될 수 있다. 또한, 가상 작업자들 각각은 가상 작업자들 각각에서 동시에 처리되는 미니 배치들을 포함하는 웨이브(Wave)를 기초로, 웨이브에 포함된 미니 배치들에서 집계된 모델 파라미터에 대한 갱신치를 한번에 파라미터 서버로 푸시할 수 있다. 가상 작업자들 각각은 예를 들어, 데이터 병렬화를 위한 파이프라인을 구성하는 가상 작업자들 각각에서 동시에 실행되는 미니 배치들에 해당하는 웨이브를 기초로, 하나의 웨이브가 종료하는 시점에서 해당 웨이브에 포함된 미니 배치들에서 집계된 갱신치를 파라미터 서버로 푸시(Push)하고, 파라미터 서버에 저장된 갱신치를 풀(Pull) 함으로써 모델 파라미터를 동기화할 수 있다.
가상 작업자들 각각은 모든 미니 배치들에 대한 갱신치들을 파라미터 서버로 푸시하는 대신에, 해당 웨이브에 포함된 모든 미니 배치들에서 집계된 갱신치만을 푸시하므로 통신 오버 헤드를 크게 줄일 수 있다.
도 3의 클러스터 시스템에서 각 가상 작업자(VW)는 파이프라인 방식으로 최대 Nm 개의 미니 배치들을 동시에 처리하므로 미니 배치들의 실행이 겹칠 수 있다. 심층 신경망 모델과 k 개의 GPU들을 고려할 때 가상 작업자들에서 동시에 실행되는 최대 미니 배치들의 개수는 기본적으로 심층 신경망 모델의 트레이닝을 위한 메모리 요구 사항에 의해 결정될 수 있다.
예를 들어, 신경망 모델이 출력 활성화(output activations) 및 가중치를 위해 많은 양의 메모리를 필요로 하는 거대 심층 신경망 모델인 경우, 가상 작업자들의 수(Maxm)는 GPU들의 개수(k)보다 작을 수 있다. 이러한 경우 각 GPU의 사용률이 높지 않을 수 있다. 한편, 신경망 모델이 적은 양의 메모리를 필요로 하는 소형 모델의 경우, 가상 작업자의 수(Maxm)는 k 개 이상일 수 있다.
메모리 요구 사항에 제한이 없는 경우, 가상 작업자의 수(Maxm)는 가상 작업자가 GPU1에서 미니 배치 1의 역방향 패스를 실행하기 전에 정방향 패스를 위해 파티션 1을 실행하는 GPU1에 주입할 수 있는 최대 미니 배치들의 개수에 의해 결정될 수 있다. 이때, 최대 미니 배치들의 개수는 예를 들어, 정방향 패스와 역방향 패스 사이의 실행 비율과 파이프라인에 사용된 GPU들의 개수(즉, k개)에 따라 달라질 수 있다. 정방향 패스의 실행에 소요되는 시간이 역방향 패스의 실행에 소요되는 시간보다 짧으므로, 정방향 패스와 역방향 패스 사이의 실행 비율이 작을수록 GPU들의 개수(k)가 커질 수 있다.
파이프라인의 실제 미니 배치의 수(Nm)는 가상 작업자들의 수(Maxm)보다 작거나 같을 수 있다.
신경망 모델을 트레이닝하기 위해, 예를 들어, k 개의 GPU 세트가 자원 할당 정책에 의해 가상 작업자에게 할당될 수 있다. 예를 들어, k 개의 이기종 GPU들 및 파이프라인의 실제 미니 배치 수 Nm 가 주어진다고 가정하자.
클러스터 시스템(300)은 분할 알고리즘(partitioning algorithm)을 사용하여 신경망 모델의 여러 계층들을 k 개의 파티션들(partitions)로 나누고, 이를 k 개의 다른 GPU들에 할당할 수 있다. 분할 알고리즘의 목표는 파이프라인의 성능을 최대화하는 동시에 Nm 개의 미니 배치들을 처리하기 위해 각 파티션의 메모리 요구 사항을 충족시키는 것이다. 특히, 일 실시예에서는 메모리 요구 사항이 GPU가 사용되는 파이프라인의 단계에 따라 달라진다는 점을 고려하여 신경망 모델을 분할할 수 있다.
예를 들어, 도 4의 파이프라인에서 GPU1(G1)과 GPU4(G4)를 비교하자.
파이프라인의 마지막 단계를 처리하는 GPU4(G4)는 한 번에 하나의 미니 배치만 처리하며, 해당 미니 배치는 연속하는 포워드 패스와 백워드 패스의 미니 배치의 쌍(Mi,4)(i = 1, 2, ..인 자연수)에 의해 즉시 수행될 수 있다.
이와 달리, 파이프라인의 첫 단계를 처리하는 GPU1(G1)은 포워드 패스와 백워드 패스의 미니 배치의 쌍(Mi,1)이 서로 멀리 떨어져 있다. 따라서, GPU1(G1)은 정방향 패스의 미니 배치(Mi,1)를 역방향 패스의 미니 배치(Mi , 1)의 실행이 끝날 때까지 메모리에 유지해야 한다. 이와 같이, GPU1(G1)에서는 파이프라인의 모든 단계에서 정방향 패스의 결과를 유지해야 하므로 메모리 요구 사항이 높아질 수 있다.
또한, 신경망 모델의 계층을 분할할 때에는 이러한 메모리 요구 사항의 차이뿐만 아니라, 파티션의 실행 시간 또한 고려되어야 한다. 일 실시예에 따른 클러스터 시스템(300)은 파티션의 실행 시간을 파티션에 있는 모든 계층의 계산 시간과 정방향 패스에서 발생하는 활성화 및 역방향 패스에서 발생하는 로컬 그래디언트를 수신하는 데에 필요한 통신 시간의 합으로 계산할 수 있다. 따라서, 일 실시예에서는 메모리 요구 사항을 충족시키는 범위 내에서 파티션의 최대 실행 시간을 최소화하도록 신경망 모델의 파티셔닝할 수 있다.
신경망 모델의 파티셔닝이 완료되면, 클러스터 시스템(300)은 각 GPU에 대해 파티션들을 스케줄링(scheduling)할 수 있다.
예를 들어, 1 ≤ q <k 인 파티션 q를 담당하는 각 GPUq는 다수의 정방향 패스 작업과 역방향 패스 작업을 한 번에 스케줄링할 수 있다. 클러스터 시스템(300)에서 각 GPU는 다음 조건을 적용하여 작업(task)을 스케줄링할 수 있다.
1. 미니 배치 p에 대한 정방향 패스 작업은 l ≤ p' < p 인 모든 미니 배치 p'에 대한 정방향 패스 작업이 수행된 후에만 실행된다.
2. 유사하게, 미니 배치 p에 대한 역방향 패스 작업은 l ≤ p' < p에서 모든 미니 배치 p'에 대한 역방향 패스 작업이 수행된 후에만 실행된다.
3. 신경망 모델의 종류와 분할된 파티션 개수의 특성에 따라 미니 배치들에 대한 정방향 패스 작업과 역방향 패스 작업 실행 순서에 대한 다양한 스케줄링 정책을 가질 수 있다. 스케줄링 정책의 예시는 다음과 같다.
3-1. 미니 배치들에 대한 역방향 패스 작업과 정방향 패스 작업을 선입선출(First In First Out; FIFO) 스케줄링 정책에 따라 처리할 수 있다.
3-2. 미니 배치들에 대한 역방향 패스 작업들은 정방향 패스 작업들보다 높은 우선순위를 두고 스케줄링할 수 있다.
또한, 일 실시예에 따른 클러스터 시스템(300)은 미니 배치들의 처리 시에 사용되는 모델 파라미터들의 스테일니스를 고려하여 작업을 스케줄링할 수 있다.
미니 배치가 스케줄링되면, 신경망 모델의 계층들은 가장 최신의 모델 파라미터들을 사용하지 않을 수 있다. 예를 들어, 도 4에서 GPU1(G1)에 의해 두 번째 미니 배치인 정방향 패스 M2, 1 가 처리되는 시점에는 아직 첫 번째 미니 배치 M1,1에 대한 역방향 패스의 처리가 완료되지 않았다. 이와 같이, 파이프라인 방식으로 미니 배치들을 스케줄링하는 경우, 첫 번째 미니 배치로 인한 모델 파라미터의 변화가 아직 적절하게 반영되지 않았으며, GPU1(G1)가 미니 배치 M2,1의 처리 시에 가장 최신이 아닌 모델 파라미터, 다시 말해, 스테일 모델 파라미터들(stale weights)을 사용해야 한다. 이는 미니 배치들이 한 번에 하나씩 처리되는 일반적인 처리와 대조적이다.
가상 작업자에서 진행되는 미니 배치에 대해 가장 최신의 미니 배치들로부터 누락된 갱신치들의 최대 개수를 '로컬 스테일니스(local staleness)의 임계값(slocal)'라고 하자.
일 실시예에서는 Nm개의 미니 배치들에 대한 트레이닝이 가상 작업자들에서 동시에 진행될 수 있으므로, 로컬 스테일니스의 임계값(slocal)을 미니 배치들의 개수(Nm) - 1(여기서, 1 ≤ Nm ≤ Maxm 임)로 결정할 수 있다.
일 실시예에서 가상 작업자에게 주어지는 모델 파라미터들의 초기 값을 초기 모델 파라미터(w0)라 하고, 미니 배치 p에 의해 사용되는 모델 파라미터를 wp라고 하자.
첫 번째 (slocal + 1) 개의 미니 배치들이 모델 파라미터 w0 = w1 = ... = w_slocal = w_slocal +1에 의해 파이프라인 방식으로 처리될 수 있다. 일 실시예에서는 클러스터 시스템의 스테일니스를 수용하기 위해 미니 배치p의 처리가 완료되면, 가상 작업자는 로컬 모델 파라미터들(wlocal)을 wlocal = wlocal + up 와 같이 갱신할 수 있다. 여기서 up는 미니 배치 p를 처리함으로써 산출된 갱신치(updated value)에 해당할 수 있다.
가상 작업자가 새 미니 배치를 처리하기 시작하면, 다른 미니 배치들에 의해 모델 파라미터들이 갱신될 때까지 기다리지 않고, 로컬 모델 파라미터(wlocal)의 가장 최근 값을 사용할 수 있다. 예를 들어, 가상 작업자가 미니 배치 1를 처리함으로써 산출된 미니 배치 1에 대응하는 갱신치(u1)에 의해 로컬 모델 파라미터(wlocal)를 갱신했다고 하자. 이 경우, 가상 작업자는 미니 배치 1에 연속하는 미니 배치 2의 처리 시에 다른 미니 배치들에 의한 로컬 모델 파라미터들이 갱신될 때까지 기다리지 않고, 로컬 모델 파라미터의 가장 최근 값을 사용하여 신경망 모델의 트레이닝을 수행할 수 있다. 즉, 가상 작업자는 미니 배치 slocal + 1까지의 작업이 완료될 때까지 기다리지 않고 갱신된 모델 파라미터를 사용하여 미니 배치 slocal + 2의 처리를 시작할 수 있다.
이와 유사하게, 가상 작업자가 미니 배치 slocal + 1의 작업을 완료하고, 갱신치(uslocal+ 1)에 의해 로컬 모델 파라미터(wlocal)를 갱신하면, 가상 작업자는 이전의 가장 최근의 slocal 미니 배치의 처리가 완료되기를 기다리지 않고 미니 배치 2 X (slocal + 1)의 처리를 시작할 수 있다. 따라서, 미니 배치 1에서 slocal + 1까지의 초기 미니 배치들을 제외하고, 미니 배치 p에 대해 가상 작업자는 미니 배치 1에서 미니 배치 p-(slocal + 1)까지의 모든 갱신치들을 반영하는 로컬 모델 파라미터들을 사용할 수 있다. 이때, 미니 배치 p를 처리하는 GPU는 모든 미니 배치 p에 대해, 미니 배치 p의 역방향 패스가 실행될 때까지 미니 배치 p에 대응한 모델 파라미터(wp)를 메모리에 보관해야 한다.
이하에서는 일 실시예에 따른 클러스터 시스템이 다수의 가상 작업자들을 이용하여 데이터 병렬 처리를 수행하는 방법을 설명한다.
일 실시예에 따르면, 이기종의 GPU들로 구성된 가상 작업자들에 의해 데이터 병렬 처리(DP)를 수행할 수 있다.
데이터 병렬 처리가 심층 신경망의 실행을 촉진하는 데 도움이 되는 것으로 잘 알려져 있다. 하지만, 작업자들이 거대의 심층 신경망 모델을 처리하기에 충분한 자원을 가지고 있지 않으므로 일반적인 시스템에서의 데이터 병렬 처리는 개별 GPU들에서는 불가능하다.
일 실시예에서는 자원이 부족한 이기종의 GPU들에 의해 가상 작업자를 구성함으로써, 이기종의 GPU들이 데이터 병렬 처리를 수행하도록 할 수 있다. 또한, 일 실시예에서는 가상 작업자들 각각의 로컬 스테일니스를 고려하여 가상 작업자들에 의한 데이터 병렬 처리를 수행할 수 있다.
이하에서는 전술한 가상 작업자들 각각의 로컬 스테일니스에 더하여, 가상 작업자들 사이에서 데이터 병렬 처리로부터 얻은 결과를 처리하는 방법을 설명한다.
전형적인 데이터 분산 처리로서, 가상 작업자들은 정기적으로 갱신된 값을 파라미터 서버(410)로 보내 글로벌 모델 파라미터들(global model parameters)을 동기화할 수 있다.
일 실시예에서 글로벌 파라미터들의 동기화는 클럭 단위(clock)로 발생한다고 가정할 수 있다. 여기서, '클럭 단위'는 하나의 웨이브(Wave; W)를 완료하는 진행으로 정의될 수 있다. 웨이브는 전술한 것과 같이 가상 작업자에서 동시에 처리되는 일련의 미니 배치들에 해당할 수 있다.
보다 구체적으로, 웨이브(wave)는 가상 작업자가 동일한 웨이브에서 이전의 미니 배치로부터의 갱신없이 해당 웨이브에서 이후의 미니 배치를 처리할 수 *?*있도록 동시에 실행되는 일련의 slocal + 1 개의 미니 배치들일 수 있다.
SSP 모델과 유사하게, 일 실시예에 따른 가상 작업자들 각각은 파라미터 서버(410)가 모든 가상 작업자들의 로컬 클럭 clocal의 최소 값을 가지는 글로벌 클럭 cglobal을 유지하는 동안 로컬 클럭 clocal을 유지할 수 있다.
초기에, 로컬 클럭과 글로벌 클럭은 0으로 설정될 수 있고, 매 클럭 c의 끝에서, 각 가상 작업자는 웨이브 c에서의 모든 미니 배치들의 실행을 완료할 수 있다.
가상 작업자는 모든 미니 배치들의 실행이 완료되는 시점에, 미니 배치 c x (slocal + 1) + 1로부터 미니 배치 (c + 1) x (slocal + 1)까지의 집계된 갱신치
Figure pat00001
를 산출하고, 집계된 갱신치
Figure pat00002
를 파라미터 서버(410)로 푸시할 수 있다. 집계된 갱신치
Figure pat00003
는 클럭 값 c와 동기화될 수 있다.
예를 들어, 로컬 스테일니스의 임계값(slocal) = 3인 경우, 도 4에서 볼 수 있듯이 가상 작업자는 클럭 0의 끝에서 (1에서 4까지의 미니 배치들로 구성된) 웨이브 0의 집계된 갱신치를 파라미터 서버(410)에 푸시할 수 있다. 또한, 가상 작업자는 클럭 1의 끝에서 (5에서 8까지의 미니 배치들로 구성된) 웨이브 1의 집계된 갱신치를 파라미터 서버(410)에 푸시할 수 있다.
일 실시예에 따른 WSP(Wave Synchronous Parallel) 모델에서 가상 작업자는 모든 미니 배치에 대한 갱신치를 푸시하는 대신, 모든 웨이브에 대한 갱신치
Figure pat00004
를 파라미터 서버(410)로 푸시하므로 통신 오버 헤드를 크게 줄일 수 있다.
일 실시예에 따른 파라미터 서버(410)는 가상 작업자로부터 갱신치를 수신하면, 다음과 같이 모델 파라미터들의 글로벌 버전을 갱신할 수 있다.
Wglobal = Wglobal +
Figure pat00005
파라미터 서버(410)는 모든 가상 작업자들이 웨이브 c의 집계된 갱신치들을 푸시한 후에야 글로벌 클럭 Cglobal을 c + 1로 할 수 있다.
WSP(Wave Synchronous Parallel) 모델에서, 각 가상 작업자는 모든 웨이브에 대한 글로벌 모델 파라미터와 동기화하지 않고 트레이닝을 진행할 수 있다. 따라서, 파라미터 서버(410)에 의해 수신된 가장 최신의 갱신치가 로컬 버전의 모델 파라미터에 반영되지 않을 수 있으므로, 글로벌 관점에서 볼 때 가상 작업자는 갱신되지 않은 모델 파라미터를 사용할 수 있다.
이하에서는 일 실시예에서 가상 작업자들 사이에 발생하는 글로벌 스테일니스가 제한되는지를 해결하는 방법을 설명한다.
예를 들어, 일 실시예에 따른 클러스터 시스템에서 두 가상 작업자의 로컬 클럭 clocal 값들 사이의 최대 차이를 '클럭 거리(clock distance; D)'라고 정의할 수 있다. 즉, 클럭 거리는 클러스터 시스템 내의 가장 빠른 가상 작업자와 가장 느린 가상 작업자 간의 로컬 클럭(Clocal)의 차이에 해당할 수 있다.
WSP(Wave Synchronous Parallel) 모델에서 최대 클럭 거리는 최대 D이고, D는 사용자에 의해 설정되는 임계 값일 수 있다.
따라서, c ≥ D + 1 인 로컬 클럭 c을 가진 가상 작업자는 웨이브 0에서 c-D-1까지 또는 그 이상으로부터 모든 (집계된) 갱신치들을 포함하는 모델 파라미터들을 사용해야 한다. 즉, 0에서 c-D-1 사이의 웨이브들로부터의 어떤 갱신치라도 배제된 모델 파라미터를 사용하는 것은 허용되지 않는다. 따라서 가상 작업자는 가장 최근의 웨이브 D 까지의 갱신치가 없이 다음 미니 배치에 대한 트레이닝을 진행할 수 있다.
이러한 클럭 거리를 유지하기 위해, 가상 작업자가 클럭 c의 끝에서 파라미터 서버(410)로부터 글로벌 모델 파라미터들을 풀(pull)하는 경우, 다른 가상 작업자들이 웨이브 c-D의 완료에 의한 갱신치를 파라미터 서버(410)에 푸시할 때까지 기다려야 할 수도 있다.
하지만, 가상 작업자가 다른 가상 작업자들이 클럭 c의 끝에서 따라잡을 때까지 기다리는 동안, 미니 배치가 파이프 라인 방식으로 실행됨에 따라 웨이브 c + 1의 slocal 미니 배치들의 처리가 이미 진행됐을 수 있다.
예를 들어, 도 4에서 D = 0 이라고 가정하자.
이 경우, 미니 배치 4의 처리가 완료되면, 가상 작업자 1은 미니 배치 1~ 4로 구성된 웨이브 0에서 집계된 갱신치
Figure pat00006
를 계산하고, 집계된 갱신치
Figure pat00007
를 파라미터 서버(410)로 푸시할 수 있다. 가상 작업자 1은 웨이브 0의 처리가 완료된 클럭 1에서 미니 배치 8의 처리를 진행하기 전에 다른 가상 작업자가 웨이브 0을 완료할 때까지 기다릴 수 있다. 하지만, 이때에 가상 작업자 1은 웨이브 1에 속하는 미니 배치 5, 6 및 7에 대한 처리를 이미 시작한 상황이다.
마찬가지로, 미니 배치 8의 처리를 완료하면, 가상 작업자 1은 미니 배치 5 ~ 8로 구성된 웨이브 1에서 집계된 갱신치
Figure pat00008
를 계산하고, 집계된 갱신치
Figure pat00009
를 파라미터 서버(410)로 푸시할 수 있다. 그동안 가상 작업자 1은 웨이브 2에 속하는 미니 배치 9, 10 및 11에 대한 처리를 이미 시작한 상황이다.
가상 작업자에서 이러한 로컬 미니 배치들의 처리는 로컬 스테일니스 경계(local staleness bound)를 위반하지 않는다. 또한, D = 0 인 경우, 각 가상 작업자는 모든 클럭의 끝에서 서로를 기다려 모든 웨이브의 모델 파라미터를 동기화하고, 이는 실제로 각 가상 작업자에서 파이프라인 방식에 의해 BSP 모델과 유사한 동작을 보여준다.
일 실시예에 따른 클러스터 시스템은 가상 작업자가 미니 배치의 처리를 진행할 수 있도록, 시스템 내의 다른 모든 가상 작업자들이 전역적으로 계산한 가장 최근의 미니 배치에서 누락된 갱신치들의 최대 개수를 '글로벌 스테일니스 경계(sglobal)'로 정의할 수 있다.
클러스터 시스템의 각 가상 작업자는 글로벌 스테일니스 경계(sglobal)를 통해 현재 미니 배치의 처리를 진행할 수 있는지 여부를 결정할 수 있다.
우선, 클러스터 시스템의 모든 가상 작업자들은 파라미터 서버(410)에 글로벌 모델 파라미터들을 쿼리(query)하지 않고, 첫 번째 (D + 1) 웨이브들의 처리를 시작할 수 있다. 또한, 가상 작업자들은 전술한 최신의 갱신치들을 포함하는 글로벌 모델 파라미터들을 수신하기 전에 다음 웨이브의 로컬 스테일니스(slocal) 미니 배치들을 처리할 수 있다. 따라서, 가상 작업자들은 초기 미니 배치들을 처리하는 경우, 초기 모델 파라미터(w0) 또는 최근 로컬 갱신치들을 포함하는 모델 파라미터를 사용할 수 있다.
이후, p > (D+ 1) x (slocal + 1) + slocal 인 미니 배치 p에 대해, 미니 배치 p는 최소한 미니 배치 1에서 미니 배치 p-(sglobal + 1)까지의 다른 모든 가상 작업자들로부터의 모든 글로벌 갱신치들을 반영하는 모델 파라미터를 사용할 수 있다. 여기서 sglobal = (D + 1) x (slocal + 1) + slocal - 1 일 수 있다.
이 방정식의 첫 번째 텀은 가상 작업자가 다음 (D+1) 웨이브들(즉, (D + 1) x (slocal + 1 )인 미니 배치들로 구성됨)로 진행하도록 허용될 수 있음에 따른 것이고, 두 번째 텀은 추가적인 로컬 미니 배치들 slocal 이 파이프라인 실행으로 인해 시작될 수 있음에 따른 것이다.
또한, 가상 작업자는 미니 배치들 5 ~ 8로 구성된 웨이브 1로부터의 글로벌 갱신치들 및/또는 로컬 갱신치들, 또는 미니 배치들 9와 10으로부터의 2 개의 로컬 갱신치들이 없이 미니 배치 11의 트레이닝을 진행할 수 있다. 하지만, 가상 작업자들은 미니 배치들 1~4로부터의 모든 글로벌 갱신치들은 있어야 트레이닝을 진행할 수 있다.
도 5는 일 실시예에 따라 파이프 라인 방식으로 실행되는 여러 가상 작업자들이 데이터 병렬화를 실행하는 방법을 설명하기 위한 도면이다. 도 5를 참조하면, 일 실시예에 따라 n 개의 가상 작업자들을 포함하는 클러스터 시스템이 도시된다.
일 실시예에 따른 파이프라인 모델은 단일 GPU에서 실행할 수 없는 거대 심층 신경망 모델의 실행을 위한 것이다. 일 실시예에 따른 파이프라인 모델은 이기종의 GPU들로 구성된 n개의 가상 작업자들에 의해 데이터 병렬 처리를 수행하는 한편, 웨이브의 종료 시마다 가상 작업자에 의해 파라미터 서버(510)로 푸시되는 갱신치에 의해 파이프라인 모델이 수렴(convergence)한다는 정확한 결과를 제공할 수 있다.
도 6은 일 실시예에 따른 클러스터 시스템의 동작 방법을 나타낸 흐름도이다. 도 6을 참조하면, 일 실시예에 따른 클러스터 시스템은 프로세싱 유닛들을, 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당한다(610). 신경망 모델은 예를 들어, 신경망 모델의 트레이닝에 필요한 메모리 용량이 프로세싱 유닛들 중 어느 하나의 프로세싱 유닛의 메모리를 초과하는 거대 심층 신경망 모델일 수 있다.
클러스터 시스템은 신경망 모델을 상기 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 대응하는 개수의 파티션들로 분할한다(620). 이때, 파티션들은 복수의 계층들 중 적어도 일부의 계층을 복제한 것이다.
단계(620)에서, 클러스터 시스템은 미니 배치들의 처리에 따른 프로세싱 유닛들의 메모리 요구 사항 및 파티션들의 실행 시간 중 적어도 하나에 기초하여 신경망 모델을 파티션들로 분할할 수 있다. 이때, 프로세싱 유닛들의 메모리 요구 사항은 예를 들어, 파이프라인 방식에서 미니 배치들을 처리하는 단계 별로 달라질 수 있다. 또한, 파티션들의 실행 시간은 예를 들어, 파티션에 포함된 모든 계층의 계산 시간과 정방향 패스에서 발생하는 활성화 값 및 역방향 패스에서 발생하는 로컬 그래디언트를 수신하는 데에 필요한 통신 시간의 합으로 계산될 수 있다.
클러스터 시스템은 단계(620)에서 분할된 파티션들에 대응하는 미니 배치들을 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링한다(630). 단계(630)에서 클러스터 시스템은 예를 들어, 미니 배치들에 대한 역방향 패스 작업들에 정방향 패스 작업들보다 높은 우선 순위를 부여하여 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링할 수 있다. 또는 클러스터 시스템은 미니 배치들에 대한 역방향 패스 작업들과 정방향 패스 작업들을 선입 선출(FIFO) 스케줄링 정책에 따라 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링할 수 있다.
클러스터 시스템은 예를 들어, 미니 배치들의 처리 시에 사용되는 모델 파라미터들의 스테일니스(staleness)를 고려하여 미니 배치들을 프로세싱 유닛들에게 스케줄링할 수 있다. 프로세싱 유닛들은 예를 들어, 이종의 그래픽 프로세싱 유닛들(GPUs)을 포함할 수 있다. 가상 작업자들 각각에서 동시에 실행되는 최대 미니 배치들의 개수는 예를 들어, 신경망 모델의 트레이닝을 위한 메모리 요구 사항에 기초하여 결정될 수 있다.
클러스터 시스템은 가상 작업자들에 할당된 프로세싱 유닛들에 의해 파이프라인 방식으로 단계(630)에서 스케줄링된 미니 배치들을 처리함으로써 신경망 모델을 트레이닝한다(640). 프로세싱 유닛들 각각은 프로세싱 유닛들 각각에게 할당된 파티션의 계층에 대해 정방향 패스의 동작 및 역방향 패스의 동작을 모두 실행할 수 있다.
프로세싱 유닛들 각각은 정방향 패스의 동작 동안 미니 배치들 중 제1 미니 배치에 해당하는 입력 데이터에 대해 계산된 활성화 값을 제1 미니 배치의 역방향 패스의 동작이 실행될 때까지 해당 프로세싱 유닛의 메모리에 유지할 수 있다. 가상 작업자들 각각은 미니 배치들 중 제1 미니 배치를 처리함으로써 산출된 제1 미니 배치에 대응하는 갱신치에 의해 로컬 모델 파라미터를 갱신할 수 있다. 또한, 가상 작업자들 각각은 제1 미니 배치에 연속하는 제2 미니 배치의 처리 시에 다른 미니 배치들에 의한 로컬 모델 파라미터들이 갱신될 때까지 기다리지 않고, 로컬 모델 파라미터의 가장 최근 값을 사용하여 신경망 모델의 트레이닝을 수행할 수 있다. 클러스터 시스템은 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터를 유지할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
300: 클러스터 시스템
305: 심층 신경망 모델
310: 자원 할당자
330: 모델 분할자
350: 파라미터 서버

Claims (25)

  1. 프로세싱 유닛들을 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당하는 자원 할당자(Resource Allocator);
    상기 신경망 모델을 상기 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 대응하는 개수의 파티션들로 분할하는 모델 분할자(model petitioner); 및
    상기 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터를 유지하는 파라미터 서버(Parameter server)
    를 포함하는,
    클러스터 시스템.
  2. 제1항에 있어서,
    상기 자원 할당자는
    상기 가상 작업자들에 대한 자원 할당 정책에 기초하여 상기 프로세싱 유닛들을 상기 신경망 모델에 대응하는 상기 가상 작업자들 각각에게 할당하는,
    클러스터 시스템.
  3. 제2항에 있어서,
    상기 자원 할당 정책은
    상기 가상 작업자들의 활성화(activation) 값과 그래디언트(gradient)의 전송 및 상기 가상 작업자들과 상기 파라미터 서버 간의 모델 파라미터의 동기화 시에 발생하는 통신 오버 헤드 및 상기 프로세싱 유닛들 각각의 성능 중 적어도 하나에 기초하여 결정되는,
    클러스터 시스템.
  4. 제1항에 있어서,
    상기 자원 할당자는
    이기종 또는 동일 기종의 상기 프로세싱 유닛들을 상기 가상 작업자들 각각에게 동일 개수로 균등하게 할당하거나, 또는
    상기 이기종 또는 동일 기종의 프로세싱 유닛들을 상기 가상 작업자들 각각에게 상이한 개수로 할당하는,
    클러스터 시스템.
  5. 제4항에 있어서,
    상기 자원 할당자가 상기 프로세싱 유닛들을 상기 가상 작업자들 각각에게 동일 개수로 균등하게 할당하고, 상기 가상 작업자들에 대한 데이터 병렬화가 수행되는 경우,
    상기 파라미터 서버는
    상기 클러스터 시스템의 어느 한 노드에서 실행되는 파티션에 해당하는 레이어를 상기 프로세싱 유닛들에게 분산하여 배치하는,
    클러스터 시스템.
  6. 제1항에 있어서,
    상기 모델 분할자는
    상기 프로세싱 유닛들이 사용되는 파이프라인의 처리 과정에서 변화되는 메모리 요구 사항 및 상기 파티션들의 실행 시간 중 적어도 하나를 고려하여 상기 신경망 모델을 상기 가상 작업자들에 대응하는 개수의 파티션들로 분할하는,
    클러스터 시스템.
  7. 제1항에 있어서,
    상기 가상 작업자들 각각은
    상기 가상 작업자들 각각에서 이전의 미니 배치로부터 계산된 모델 파라미터에 대한 갱신없이 동시에 처리되는 미니 배치들을 포함하는 웨이브(Wave)를 기초로, 상기 웨이브에 포함된 미니 배치들에서 집계된 상기 모델 파라미터에 대한 갱신치를 한번에 상기 파라미터 서버로 푸시하는,
    클러스터 시스템.
  8. 제1항에 있어서,
    상기 가상 작업자들 각각은
    데이터 병렬화를 위해 파이프라인을 구성하는 상기 가상 작업자들 각각에서 동시에 실행되는 미니 배치들을 포함하는 하나의 웨이브의 종료 시점에, 해당 웨이브에 포함된 미니 배치들에서 집계된 갱신치를 상기 파라미터 서버로 푸시(Push)하고, 상기 파라미터 서버에 저장된 갱신치를 풀(Pull) 함으로써 상기 모델 파라미터를 동기화하는,
    클러스터 시스템.
  9. 제1항에 있어서,
    상기 글로벌 모델 파라미터는
    상기 가상 작업자들 각각에서 동시에 실행되는 미니 배치들을 포함하는 하나의 웨이브의 종료 시점에 대응하는 로컬 클럭(clock) 단위로 정기적으로 갱신된 값에 의해 동기화되는,
    클러스터 시스템.
  10. 제1항에 있어서,
    상기 가상 작업자들 각각은
    모든 웨이브들에 대한 갱신치를 상기 파라미터 서버로 푸시함으로써 상기 글로벌 모델 파라미터들을 갱신하는,
    클러스터 시스템.
  11. 제1항에 있어서,
    상기 가상 작업자들 각각은
    상기 미니 배치들 중 제1 미니 배치를 처리함으로써 산출된 상기 제1 미니 배치에 대응하는 갱신치에 의해 로컬 모델 파라미터를 갱신하고,
    상기 제1 미니 배치에 연속하는 제2 미니 배치의 처리 시에 다른 미니 배치들에 의한 로컬 모델 파라미터들이 갱신될 때까지 기다리지 않고, 상기 로컬 모델 파라미터의 가장 최근 값을 사용하여 상기 신경망 모델의 트레이닝을 수행하는,
    클러스터 시스템.
  12. 제1항에 있어서,
    상기 가상 작업자들 각각에서 동시에 실행되는 최대 미니 배치들의 개수는
    상기 신경망 모델의 트레이닝을 위한 메모리 요구 사항에 기초하여 결정되는,
    클러스터 시스템.
  13. 제1항에 있어서,
    상기 가상 작업자들 각각에서 실행되는 최대 미니 배치들의 개수는
    상기 가상 작업자들 각각에 할당된 프로세싱 유닛들에서 미니 배치의 역방향 패스의 동작을 실행하기 전에 정방향 패스의 동작을 위해 상기 프로세싱 유닛들에서 처리할 수 있는 최대 미니 배치들의 개수에 의해 결정되는,
    클러스터 시스템.
  14. 제13항에 있어서,
    상기 최대 미니 배치들의 개수는
    상기 정방향 패스의 동작과 상기 역방향 패스의 동작 간의 실행 비율, 및 파이프라인 방식에 의한 상기 미니 배치들의 처리 시에 사용되는 상기 프로세싱 유닛들의 개수에 기초하여 결정되는,
    클러스터 시스템.
  15. 프로세싱 유닛들을, 트레이닝하고자 하는 신경망 모델에 대응하는 가상 작업자들 각각에게 할당하는 단계;
    상기 신경망 모델을 상기 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 대응하는 개수의 파티션들- 상기 파티션들은 상기 복수의 계층들 중 적어도 일부의 계층을 복제한 것임 -로 분할하는 단계;
    상기 분할된 파티션들에 대응하는 미니 배치들을 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링하는 단계; 및
    상기 가상 작업자들 각각에게 할당된 프로세싱 유닛들에 의해 파이프라인 방식으로 상기 미니 배치들을 처리함으로써 상기 신경망 모델을 트레이닝하는 단계
    를 포함하는,
    클러스터 시스템의 동작 방법.
  16. 제15항에 있어서,
    상기 분할하는 단계는
    상기 미니 배치들의 처리에 따른 상기 프로세싱 유닛들의 메모리 요구 사항 및 상기 파티션들의 실행 시간 중 적어도 하나에 기초하여 상기 신경망 모델을 상기 파티션들로 분할하는 단계
    를 포함하는,
    클러스터 시스템의 동작 방법.
  17. 제15항에 있어서,
    상기 가상 작업자들 각각에서 동시에 진행되는 미니 배치들의 개수는
    상기 가상 작업자들 각각에서 진행되는 미니 배치에 대한 가장 최신의 미니 배치로부터 누락된 갱신치들의 최대 개수에 해당하는 로컬 스테일니스(local staleness)의 임계값에 기초하여 결정되는,
    클러스터 시스템의 동작 방법.
  18. 제15항에 있어서,
    상기 가상 작업자들 각각에서의 미니 배치의 처리 여부는
    상기 클러스터 시스템 내의 다른 모든 가상 작업자들이 전역적으로 계산한 가장 최신의 미니 배치에서 누락된 갱신치들의 최대 개수에 해당하는 글로벌 스테일니스 경계에 기초하여 결정되는,
    클러스터 시스템의 동작 방법.
  19. 제15항에 있어서,
    상기 스케줄링하는 단계는
    상기 미니 배치들에 대한 역방향 패스 작업들에 정방향 패스 작업들보다 높은 우선 순위를 부여하여 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링하는 단계; 및
    상기 미니 배치들에 대한 역방향 패스 작업들과 상기 정방향 패스 작업들을 선입 선출(First In First Out; FIFO) 스케줄링 정책에 따라 상기 가상 작업자들에 할당된 프로세싱 유닛들 각각에게 스케줄링하는 단계
    중 적어도 하나를 포함하는,
    클러스터 시스템의 동작 방법.
  20. 제15항에 있어서,
    상기 신경망 모델은
    상기 신경망 모델의 트레이닝에 필요한 메모리 용량이 상기 프로세싱 유닛들 중 어느 하나의 프로세싱 유닛의 메모리를 초과하는 거대 심층 신경망 모델을 포함하는,
    클러스터 시스템의 동작 방법.
  21. 제15항에 있어서,
    상기 가상 작업자들 각각은
    상기 미니 배치들 중 제1 미니 배치를 처리함으로써 산출된 상기 제1 미니 배치에 대응하는 갱신치에 의해 로컬 모델 파라미터를 갱신하고,
    상기 제1 미니 배치에 연속하는 제2 미니 배치의 처리 시에 다른 미니 배치들에 의한 로컬 모델 파라미터들이 갱신될 때까지 기다리지 않고, 상기 로컬 모델 파라미터의 가장 최근 값을 사용하여 상기 신경망 모델의 트레이닝을 수행하는,
    클러스터 시스템의 동작 방법.
  22. 제15항에 있어서,
    상기 가상 작업자들 각각에서 동시에 실행되는 최대 미니 배치들의 개수는
    상기 신경망 모델의 트레이닝을 위한 메모리 요구 사항에 기초하여 결정되는,
    클러스터 시스템의 동작 방법.
  23. 제15항에 있어서,
    상기 프로세싱 유닛들은
    이종의 그래픽 프로세싱 유닛들(GPUs)을 포함하는,
    클러스터 시스템의 동작 방법.
  24. 제15항에 있어서,
    상기 가상 작업자들 간의 데이터 병렬 처리를 지원하기 위해 글로벌 모델 파라미터를 유지하는 단계
    를 더 포함하는,
    클러스터 시스템의 동작 방법.
  25. 하드웨어와 결합되어 제15항 내지 제24항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
KR1020200084221A 2020-07-08 2020-07-08 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템 KR102477243B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200084221A KR102477243B1 (ko) 2020-07-08 2020-07-08 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200084221A KR102477243B1 (ko) 2020-07-08 2020-07-08 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템

Publications (2)

Publication Number Publication Date
KR20220006360A true KR20220006360A (ko) 2022-01-17
KR102477243B1 KR102477243B1 (ko) 2022-12-13

Family

ID=80051674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200084221A KR102477243B1 (ko) 2020-07-08 2020-07-08 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템

Country Status (1)

Country Link
KR (1) KR102477243B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024076163A1 (ko) * 2022-10-06 2024-04-11 오픈엣지테크놀로지 주식회사 신경망 연산방법과 이를 위한 npu 및 컴퓨팅 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160321776A1 (en) * 2014-06-20 2016-11-03 Tencent Technology (Shenzhen) Company Limited Model Parallel Processing Method and Apparatus Based on Multiple Graphic Processing Units
KR20190054449A (ko) * 2017-11-13 2019-05-22 한국과학기술원 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160321776A1 (en) * 2014-06-20 2016-11-03 Tencent Technology (Shenzhen) Company Limited Model Parallel Processing Method and Apparatus Based on Multiple Graphic Processing Units
KR20190054449A (ko) * 2017-11-13 2019-05-22 한국과학기술원 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"PipeDream: Generalized Pipeline Parallelism for DNN Training", SOSP '19: Proceedings of the 27th ACM Symposium on Operating Systems Principles(pp. 1-15), 2019.10.30.* *
"Pipe-torch: Pipeline-Based Distributed Deep Learning in a GPU Cluster with Heterogeneous Networking", 2019 Seventh International Conference on Advanced Cloud and Big Data(CBD)(pp. 55-60), 2019.09.22. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024076163A1 (ko) * 2022-10-06 2024-04-11 오픈엣지테크놀로지 주식회사 신경망 연산방법과 이를 위한 npu 및 컴퓨팅 장치

Also Published As

Publication number Publication date
KR102477243B1 (ko) 2022-12-13

Similar Documents

Publication Publication Date Title
CN110533183B (zh) 流水线分布式深度学习中异构网络感知的任务放置方法
Pal et al. Optimizing multi-GPU parallelization strategies for deep learning training
US9563470B2 (en) Backfill scheduling for embarrassingly parallel jobs
Yu et al. Gillis: Serving large neural networks in serverless functions with automatic model partitioning
WO2012151054A1 (en) Scheduling in mapreduce-like systems for fast completion time
Wang et al. Scalable distributed dl training: Batching communication and computation
KR20130090147A (ko) 신경망 컴퓨팅 장치 및 시스템과 그 방법
CN110609736B (zh) 一种云环境下截止期约束的科学工作流调度方法
CN115994567B (zh) 一种深度神经网络模型并行计算任务异步调度方法
Kim et al. Deepspark: A spark-based distributed deep learning framework for commodity clusters
CN115362447A (zh) 针对执行流水线的划分
Patsis et al. SIMD parallel discrete-event dynamic system simulation
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
KR102477243B1 (ko) 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템
CN112862083B (zh) 一种边缘环境下的深度神经网络推断方法及装置
Chen et al. Hare: Exploiting inter-job and intra-job parallelism of distributed machine learning on heterogeneous gpus
Liu et al. Funcpipe: A pipelined serverless framework for fast and cost-efficient training of deep learning models
Zhang et al. Accelerating large-scale distributed neural network training with SPMD parallelism
Gong et al. Chic: experience-driven scheduling in machine learning clusters
KR102336297B1 (ko) 공유 gpu 클러스터를 위한 분산 딥러닝 작업 스케줄링 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체
Tsai et al. Communication scheduling optimization for distributed deep learning systems
KR101844914B1 (ko) 기계 학습을 위한 데이터관리장치 및 그 동작 방법
CN115756789A (zh) 一种针对深度学习推理服务系统的gpu调度优化方法
CN113342313B (zh) 一种基于参数服务器异步更新Spark MLlib中线性分类模型参数的方法
Qin et al. Dependent task scheduling algorithm in distributed system

Legal Events

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