KR102300984B1 - 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련 - Google Patents

작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련 Download PDF

Info

Publication number
KR102300984B1
KR102300984B1 KR1020197032039A KR20197032039A KR102300984B1 KR 102300984 B1 KR102300984 B1 KR 102300984B1 KR 1020197032039 A KR1020197032039 A KR 1020197032039A KR 20197032039 A KR20197032039 A KR 20197032039A KR 102300984 B1 KR102300984 B1 KR 102300984B1
Authority
KR
South Korea
Prior art keywords
training
job
computing
group
computing nodes
Prior art date
Application number
KR1020197032039A
Other languages
English (en)
Other versions
KR20190132475A (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 미디어 그룹 코 엘티디
Publication of KR20190132475A publication Critical patent/KR20190132475A/ko
Application granted granted Critical
Publication of KR102300984B1 publication Critical patent/KR102300984B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Abstract

기계 학습 모델을 훈련시키기 위한 컴퓨터 시스템에 관한 것으로 작업 서버와 복수의 컴퓨팅 노드를 포함한다. 작업 서버는 기계 학습 모델을 훈련시키기 위한 작업을 수신하며, 이러한 훈련 작업을 하나 이상의 컴퓨팅 노드로 구성된 그룹에 할당한다. 상기 할당은 훈련 작업의 현재 요구 사항과 컴퓨팅 노드의 현재 상태에 기반한다. 훈련 작업에는 기계 학습 모델의 가중치, 편차 등 파라미터의 값을 업데이트하는 것을 포함한다. 바람직하게는, 훈련 그룹 중의 컴퓨팅 노드에서 파라미터의 업데이트된 값을 교환하여, 훈련 작업을 완성한다.

Description

작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련
본 발명은 전체적으로 기계 학습을 관한 것이며, 더욱 구체적으로, 기계 학습 모델을 훈련시키기 위한 분산형 아키텍처에 관한 것이다.
대규모 데이터 세트 훈련에 의해 최신 딥 러닝 아키텍처는 음성과 이미지 인식, 이미지 분할, 이미지/비디오 이해 및 분석, 자연 언어 처리 및 사기 탐지, 의료 시스템과 추천 시스템 등과 같은 다양한 응용이 포함된 광범위한 분야에서 인상적인 성능을 얻을 수 있다. 하지만, 이러한 기계 학습 모델의 훈련은 컴퓨팅에 대한 요구 사항이 높다. 단일 기계에서의 훈련의 시간이 너무 길어서 실용적이 아니다.
따라서, 기계 학습 모델을 훈련시키는 태스크는 복수의 기계를 포함하는 분산형 시스템에 의해 실행된다. 하지만, 이러한 방법은 자체 문제를 야기시킨다. 훈련에는 많은 데이터가 포함된다. 트레이닝 세트는 일반적으로 많은 훈련 샘플을 포함한다. 이미지, 비디오, 텍스트 또는 오디오와 같은 각각의 훈련 샘플은 모두 상당이 클 수 있다. 기계 학습 모델 자체도 상당히 클 수 있다. 가중치, 편차 등과 같은 다수의 파라미터 및 다수의 계층은 모두 훈련이 필요하다. 현재 훈련 방법에 있어서, 일반적으로 기계 학습 모델의 각 파라미터의 마스터 버전을 저장하도록 단일 기계(파라미터 서버)에 할당되며, 이러한 파라미터는 전체 훈련 작업 태스크를 위해 동기화 및 업데이트된다. 따라서, 다수의 데이터는 파라미터 서버와 다른 기계 사이에서 교환된다. 대규모 분산형 시스템에서 대규모 모델을 훈련시킬 경우, 거대한 통신 대역폭이 필요하다.
대규모 분산형 시스템에서의 복수의 기계에서 한 모델을 훈련시키거나 또는 복수의 기계 학습 모델을 훈련시키며, 더 많은 통신 대역폭이 필요하며, 파라미터 서버가 빠르게 병목이 된다. 따라서, 통신 대역폭에 막대한 투자가 존재하지 않으면, 통신 대역폭이 제한된 상황에서 전체적인 훈련 용량이 제한 받게 된다.
따라서, 대규모 분산형 시스템에서의 훈련 기계 학습 모델의 방법을 개선할 필요가 있다.
본 개시는 작업 서버와 복수의 컴퓨팅 노드를 포함하는 대규모 분산형 컴퓨터 시스템을 사용하여 현행 기술의 한계를 극복하였다. 작업 서버는 기계 학습 모델을 훈련시키는 작업을 하나 이상의 컴퓨팅 노드로 구성된 그룹에 할당하는데 사용된다. 이러한 훈련 그룹은 훈련 작업을 실행한다. 하지만, 모델의 파라미터의 값의 업데이트 및 업데이트된 값의 교환은 훈련 그룹의 컴퓨팅 노드 내(훈련 그룹과 작업 서버 사이가 아님)에서 완성되는 것이 바람직하다. 이로써 작업 서버의 통신 요구 사항을 줄인다.
일 실시 형태에 있어서, 작업 서버는 상이한 기계 학습 모델을 훈련시키기 위한 복수의 작업을 수신한다. 작업 서버는 훈련 작업의 현재 요구 사항과 컴퓨팅 노드의 현재 상태에 기반하여, 하나 이상의 컴퓨팅 노드로 구성된 훈련 그룹에 훈련 작업을 할당한다. 훈련 요구 사항에 예로서, 컴퓨팅 성능, 데이터 저장, 통신 대역폭 및 전용 기능 중 적어도 하나에 대한 요구가 포함된다. 노드 상태는 일반적으로 노드 능력 및 노드 가용성이 포함된다. 상기 훈련 그룹에 할당된 훈련 작업을 훈련 그룹이 실행한다. 훈련이 수행됨에 따라, 상기 실행은 일반적으로 모델의 가중치, 편차 등과 같은 파라미터의 값의 업데이트를 포함한다. 훈련 그룹은 둘 이상의 컴퓨팅 노드를 포함하는 것이 바람직하다. 상기 업데이트 및 업데이트된 값의 교환은 훈련 그룹 내의 컴퓨팅 노드에서 완성됨으로써, 그룹 외부와의 통신을 감소시킨다.
각 훈련 그룹 내의 아키텍처는 그룹에 따라 다를 수 있으며, 설명된 방법은 계층적일 수 있다. 예를 들어, 컴퓨팅 노드 중 하나는 훈련 그룹의 로컬 작업 서버 및 파라미터 서버 중의 하나로 작동할 수 있으며, 나머지 컴퓨팅 노드는 그룹에 의해 서브 그룹으로 편성된다. 훈련이 수행됨에 따라, 훈련 작업의 예약 또는 완성함에 따라, 및 컴퓨팅 노드가 사용 가능 또는 사용 불가능으로 변함에 따라, 훈련 작업의 훈련 그룹 사이에서의 훈련 작업의 할당 및 훈련 그룹의 구성도 동적으로 변화될 수 있다.
작업량이 감소된 후, 작업 서버(및 다른 서버)는 기계 학습 모델 및 이의 훈련의 시각화 또는 시스템 중 컴퓨팅 노드의 상태 보고 등과 같은 부가 태스크를 실행할 수 있다.
다른 양상은 컴포넌트, 장치, 시스템, 개선, 방법, 프로세스, 응용, 컴퓨터 판독 가능 매체 및 상기와 관련된 임의의 다른 기술을 포함한다.
도 1은 본 발명에 따른 작업(job) 서버를 포함하는 대규모 분산형 컴퓨터 시스템의 블록도이다.
도 2a 내지 도 2c는 본 발명에 따른 상이한 아키텍처를 구비한 훈련 그룹의 블록도이다.
도 3은 본 발명에 따른 작업 서버의 동작을 예시한 것이다.
도 4는 본 발명에 따른 작업 서버를 포함하는 다른 컴퓨터 시스템의 블록도이다.
도 5는 본 발명에 따른 작업 서버의 블록도이다.
도 6은 본 발명에 따른 컴퓨팅 노드의 블록도이다.
아래 도면을 결합하여, 아래 구체적인 실시 형태와 청구 범위로부터 본 개시의 실시예들의 다른 유리한 효과와 특징을 더 용이하게 이해할 수 있게 될 것이다.
도면은 다만 예시의 목적으로 다양한 실시예를 설명한다. 아래 논의로부터 당업자들은 본 명세서의 원리를 벗어나지 않는 상황에서 대안적인 실시예를 이용하여 본 명세서에서 예시한 구조와 방법을 대체할 수 있음을 용이하게 인식할 것이다.
도면 및 아래 설명은 다만 예시로서, 바람직한 실시예에 관한 것이다. 아래 논의로부터 보호 청구된 원리를 벗어나지 않는 상황에서의 실행 가능한 대안으로서, 본 명세서에 개시된 구조와 방법의 대안적인 실시예임을 쉽게 인식할 것임을 유의해야 한다.
도 1은 본 발명에 따른 작업 서버(110)를 포함하는 대규모 분산형 컴퓨터 시스템(100)의 블록도이다. 컴퓨터 시스템(100)은 또한 컴퓨팅 노드(130) 및 상이한 컴포넌트를 연결하는 네트워크(120)를 더 포함한다. 일반적인 대규모 분산형 컴퓨터 시스템은 작업 서버(110)와 컴퓨팅 노드(130) 사이에 분포된 1000 개 이상의 프로세서 유닛(예를 들어, CPU 및 GPU)을 갖는 것이 바람직하지만, 실제 수는 상황과 사용된 기술에 따라 다를 수 있다. 아래 구체적으로 설명된 바와 같이, 훈련 작업을 상이한 그룹(140)의 컴퓨팅 노드에 할당하여, 컴퓨터 시스템(100)이 동시에 복수의 기계 학습 모델을 훈련시킬 수 있다. 도 1은 컴퓨팅 노드(130)가 4 개의 훈련 그룹(140A-140D)으로 구성된 것을 도시한다. 훈련 그룹(140A)은 컴퓨팅 노드(130A1-130AN)를 포함한다. 훈련 그룹(140B, 140C 및 140D)은 유사한 번호를 사용한다. 그룹(140D)은 단일 컴퓨팅 노드(130D1)만을 포함함에 유의해야 한다. 이하, 컴퓨팅 노드(130)를 훈련 그룹(140)으로 할당하여 더욱 구체적으로 설명하도록 한다. 미사용한 컴퓨팅 노드(130P)는 사용 가능한 컴퓨팅 노드의 풀(142)을 형성한다.
컴퓨터 시스템(100)은 기계 학습 모델을 훈련시키기 위한 것이다. 기계 학습 모델의 예로서, 합성 곱 신경망(convolutional neural networks, CNN), 순환 신경망 네트워크(recurrent neural networks, RNN), 신경 네트워크 및 서포트 벡터 머신이 포함된다.
일반적인 훈련 작업에 있어서, 기계 학습 모델은 일정 수의 계층 및 노드를 갖도록 설계되었으며, 노드 간 가중치 연결이 구성된다. 훈련 기계 학습 모델은 일반적으로 훈련 샘플의 세트에 의해 모델의 파라미터(예를 들어, 가중치 및 편차)의 값을 결정하는 것을 포함한다. 지도 학습에서, 훈련 샘플은 입력과 알려진 양호한 출력(즉, 기본 사실)이 이루는 쌍이다. 입력이 기계 학습 모델에 제시되면, 기계 학습 모델은, 입력이 목표 속성을 나타내는지 또는 입력이 목표 속성을 나타내는 신뢰 레벨과 같은 출력을 생성한다. 기계 학습 모델의 출력과 알려진 양호한 출력 사이의 차이는 모델의 값을 조정하는 데 사용된다. 많은 상이한 훈련 샘플에 대하여 기계 학습 모델의 성능이 만족스러울 때까지 이 프로세스를 반복한다. 기계 학습 모델이 충분히 훈련되었는지를 결정하는 프로세스를 검증이라고 한다. 일단 훈련이 완료되고, 새로운 입력이 나타날 때, 기계 학습 모델은 만족스러운 올바른 출력을 예측할 수 있다. 활성 작동에 사용될 경우에도, 기계 학습 모델은 훈련을 계속할 수 있으며. 다른 유형의 기계 학습 방법에는 준지도 학습, 비지도 학습 및 강화 학습이 있다.
전체 시스템에서, 작업 서버(110)는 더 많이는 훈련 작업의 컴퓨팅 노드(130)로의 할당에 대한 관리 및 모니터링 역할에 더 가까우며, 컴퓨팅 노드(130)는 더 많이는 훈련 태스크의 실행의 역할에 더 가깝다. 이러한 컴포넌트(110, 130)는 (가능하게 공유된)데이터 저장 및 어느 처리 능력을 포함하지만, 실제 실시 형태는 크게 다를 수 있다. 예를 들어, 처리 능력은 일반의 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 전용 프로세서, 주문형 ASIC, 다중 프로세서 구성 및 훈련과 추론을 위해 설계된 칩에 의해 제공될 수 있다. 이러한 컴포넌트는 블레이드 서버와 같은 실제 물리적 컴포넌트로 구현되거나, 또는 가상화를 통해 구현된다. 컴포넌트(110, 130)도 완전하게 같은 것을 요구하지 않는다. 예를 들어, 상이한 컴퓨팅 노드(130)는 상이한 능력을 갖거나, 또는 특성 태스크에 전용될 수 있다.
네트워크(120)는 상이한 컴포넌트 사이의 연결을 제공한다. 용어“네트워크”는 광범위하게 해석되어야 한다. 이는 이더넷, 인피니밴드(InfiniBand) 등과 같은 표준 정의 프로토콜을 갖는 공식 네트워크를 포함할 수 있다. 또한 서버 랙의 백 플레인 연결, 원격 직접 기억 장치 접근(remote direct memory access, RDMA) 및 고성능 컴퓨팅 패브릭과 같은 컴포넌트 사이의 다른 유형의 연결을 포함할 수도 있다. 네트워크(120)는 또한 상이한 유형의 연결을 조합할 수 있다. 유선 링크 및 무선 링크 중 적어도 하나를 사용하는 근거리 통신망 및 광역 통신망 중 적어도 하나의 조합을 포함할 수 있다. 컴포넌트(110, 130) 사이에서 교환되는 데이터는 임의의 적절한 포맷을 사용하여 표시될 수 있다. 일부 실시예에서, 전부 또는 일부 데이터와 통신을 암호화될 수 있다.
따라서, 전체 컴퓨터 시스템(110)은 상이한 방식으로 구현될 수 있다. 예를 들어, 개인 시스템으로 완전히 구현할 수 있다. 또는, 제3자 서비스 또는 클라우드 서비스를 기반으로 구축할 수 있다.
도 1에서의 점선 화살표는 컴퓨터 시스템(100)의 동작을 예시한다. 상기 예시에 있어서, 컴퓨터 시스템(100)은 작업 서버(110)가 각 훈련 그룹(140)의 마스터로 동작하고, 각 훈련 그룹은 작업 서버의 워커로 동작하는 마스터-워커(master-worker) 아키텍처를 갖는다. 작업 서버(110)는 작업을 수신하여(115) 기계 학습 모델을 훈련시킨다. 작업(125A-125D)을 컴퓨팅 노드(130)의 그룹에 할당하며, 이러한 그룹을 훈련 그룹(140A-140D)으로 지칭한다. 훈련 작업(125A)은 훈련 그룹(140A) 중의 컴퓨팅 노드(130Ax)에 할당되고, 훈련 작업(125B)은 훈련 그룹(140B) 중의 컴퓨팅 노드(130Bx)에 할당되는 등 이러한 방식으로 유추할 수 있다. 바람직하게는, 작업 서버(110)는 훈련 그룹(140)에 포함된 컴퓨팅 노드(130)를 또한 결정한다.
작업 서버(110)는 훈련 작업의 현재 요구 사항과 컴퓨팅 노드(130)의 현재 상태에 기반하여 훈련 작업을 할당한다. 일 실시예에 있어서, 일단 작업이 훈련 그룹에 할당되면, 작업 서버(110)는 모델의 초기 파라미터 세트(및 또는 훈련 작업의 다른 측면)를 훈련 그룹으로 송신한다. 또는, 작업 서버(110)는 물리적 방식으로 파라미터를 훈련 그룹에 송신하지 않고, 대신에 파라미터를 향한 포인터를 제공하거나 또는 다른 방식으로 훈련 그룹에 초기값을 교환할 수 있다. 훈련이 완성되면, 파라미터의 최종값을 작업 서버(110)에 송신할 수 있으며, 작업 서버에 송신하지 않을 수도 있다. 파라미터의 중간값(interim value)은 바람직하게 작업 서버(110)에 송신하지 않는다. 작업 서버(110)는 훈련 컴퓨팅을 수행하지 않는 것이 바람직하다. 하지만, 작업 서버(110)는 일반적으로 각 훈련 그룹의 진도를 모니터링하며, 표시 또는 모니터링의 목적으로 파라미터의 중간값에 액세스할 수 있다.
상기 예에서, 각각의 훈련 태스크는, 모델의 파라미터에 대한 조정을 포함한, 상이한 기계 학습 모델을 훈련시키는 것이다. 따라서, 훈련 그룹(140A)은 기계 학습 모델A를 훈련시키며, 훈련 그룹(140B)은 다른 기계 학습 모델B를 훈련시키는 것 등 이러한 방식으로 유추할 수 있다. 훈련 작업(115)은 상이한 시간에 예약될 수 있다. 따라서, 언제든지 훈련 작업(125A-125D)을 할당할 수 있다.
각 훈련 그룹(140)에서의 컴퓨팅 노드(130)는, 상기 훈련 그룹에 할당한 훈련 작업을 실행(143)하기 위해 공동으로 작동한다. 이는 훈련 작업 실행(143)에 의해 모델의 파라미터의 업데이트된 값을 계산하는 것을 포함하며, 이들 사이에서 업데이트된 파라미터를 교환(147)한다. 훈련 그룹(140A)을 예로 하면, 훈련 그룹 중의 컴퓨팅 노드(130A1-130AN)가 훈련 작업을 실행하여 기계 학습 모델A를 훈련시킨다. 상기 작업의 일부로서, 트레이닝 세트의 상이한 부분은 상이한 컴퓨팅 노드(130Ax)에 할당될 수 있으며, 이 중에서 각각의 컴퓨팅 노드는 훈련 샘플을 사용하여 훈련(143)시킨다. 컴퓨팅 노드(130Ax)는 이들의 훈련에 의해, 파라미터의 업데이트된 값을 생성한다. 이러한 값은, 모든 컴퓨팅 노드(130Ax)로부터의 훈련을 집계하기 위해, 컴퓨팅 노드 사이에서 교환(147)된다. 파라미터의 중간값 및 최종값은 바람직하게는 훈련 그룹 중의 컴퓨팅 노드(130)로 컴퓨팅한다. 하나 이상의 컴퓨팅 노드(130)는 훈련 그룹에 대해 훈련 작업의 진행을 로컬 제어 및 모니터링을 수행할 수 있다.
작업 서버(110)는 훈련 작업의 현재 요구 사항 및 컴퓨팅 노드(130)의 현재 상태에 기반하여, 하나 이상의 컴퓨팅 노드(130)의 훈련 그룹에 훈련 작업을 할당한다. 훈련 요구 사항의 예로서, 컴퓨팅 성능, 데이터 저장, 통신 대역폭 및 전용 기능 중 적어도 하나에 대한 요구 사항이 포함된다. 훈련 작업의 크기는 훈련 샘플의 수 및 훈련 샘플의 크기, 기계 학습 모델의 크기 및 모델 중 파라미터의 수 및 훈련 알고리즘의 유효성과 같은 요인에 따라 결정된다.
컴퓨팅 노드의 상태는 노드의 능력 및 노드의 가용성을 포함할 수 있다. 이들은 컴퓨팅 성능, 데이터 저장, 통신 대역폭 및 전용 기능 중 적어도 하나의 척도일 수 있다. 컴퓨팅 성능의 지수는, 프로세서 코어 또는 프로세서의 수, 프로세서의 유형 및 처리 능력, 소수점 연산 속도(flops rate, 초당 부동 소수점 연산 속도) 등과 같은 처리량, 클럭 속도를 포함한다. 데이터 저장 지수는, 데이터 저장 유형 및 수, 읽기/쓰기 대역폭, 액세스 시간, 사전 로드 용량, 메모리 부족 경고 수 및 마지막 메모리 부족 경고 이후의 경과 시간이 포함된다. 버스 인터페이스 PCI express와 같은 다른 연결 대역폭 및 NUMA 및 SMP와 같은 마더 보드 토폴로지와 같은 요인도 데이터 전송에 영향을 줄 수 있다. 통신 대역폭의 지수에는, 네트워크 연결 유형 및 수, 최근 데이터 전송 속도의 평균값 등과 같은 데이터 전송 속도, 최근 연결된 네트워크 연결 가용성에 의한 확률 등과 같은 네트워크 연결 신뢰성 및 데이터 전송 대기 시간이 포함된다.
일 실시예에 있어서, 작업 서버(110)는 컴퓨팅 노드(130)의 능력에 의해, 이들을 상이한 카테고리로 분류한다. 예를 들어, 다른 컴퓨팅 노드(130)에 비해, 일부 컴퓨팅 노드(130)는 보다 많은 처리 능력 또는 보다 큰 메모리 또는 전용 기능을 가질 수 있다. 이들은 "전용” 컴퓨팅 노드로 분류될 수 있으며, 나머지는 "일반” 컴퓨팅 노드로 분류된다. 각각의 카테고리는 추가 규정 사항이 존재할 수 있다. 예를 들어, "일반” 컴퓨팅 노드는 처리 능력 및 메모리 용량을 나타내는 숫자를 포함할 수 있다.
일부 실시예에서, 컴퓨팅 노드(130)의 가용성은 "사용 가능”, "일부 사용 가능” 및 "사용 불가능”으로 분류된다. 예를 들어, 어떠한 훈련 작업도 실행하지 않는 컴퓨팅 노드는 사용 가능하며, 훈련 작업을 실행하지만 100 % 용량으로 실행하지 않는 컴퓨팅 노드는 일부 사용 가능하고, 전부 용량으로 훈련 작업을 실행하는 컴퓨팅 노드는 사용 불가능이다. 다른 방법에 있어서, 가용성은, 0부터 1까지, 또는 0부터 100까지의 범위 내의 숫자로 나타낸다. 작업 서버(110)는 상이한 카테고리를 사용하여 각각의 훈련 작업에 할당된 컴퓨팅 노드의 수 및 할당된 구체적인 컴퓨팅 노드를 결정할 수 있다.
도 1은 상이한 훈련 그룹(140)에 할당된 상이한 컴퓨팅 노드(130)를 도시하지만, 각 훈련 그룹의 내부 아키텍처는 도시하지 않는다. 상이한 훈련 그룹(140)은 상이한 아키텍처를 사용할 수 있다. 동일한 아키텍처를 모두 사용할 필요는 없다. 작업 서버(110)는 훈련 그룹의 아키텍처를 지정할 수 있거나, 또는 훈련 그룹이 아키텍처에 따라 이미 편성될 수 있거나, 또는 훈련 그룹에서 훈련 작업을 일단 수신하면, 아키텍처는 선택될 수 있다. 도 2a-2C는 각각 마스터-워커 아키텍처, 피어 투 피어 아키텍처 및 클라이언트-서버 아키텍처를 구비한 훈련 그룹의 블록도이다.
도 2a는 마스터-워커 아키텍처를 구비한 훈련 그룹(210)의 블록도이다. 훈련 그룹(210)은 4 개의 컴퓨팅 노드(210M 및 210W1-210W3)를 갖는다. 컴퓨팅 노드(210M)는 마스터로서 작용하고, 컴퓨팅 노드(210W1-210W3)는 워커로 작용한다. 마스터(210M)는 일반적으로 워커(210W)로부터의 워크 플로우를 제어한다. 상기 예에서, 마스터(210M)는 훈련 작업을 수신하여, 훈련 작업을 각각의 워커(210W)로부터 완성될 작은 태스크로 분할하며, 기계 학습 모델의 파라미터의 값을 업데이트한다. 마스터(210M)는 파라미터의 초기값을 저장한 후, 워커(210W)로부터 중간 훈련 결과를 수신하면 이러한 값을 업데이트할 수 있다. 일 방법에서, 마스터(210M)는 파라미터를 그의 로컬 메모리에 저장하고, 이 값들을 워커(210W)에 전송한다. 또는, 파라미터는 컴퓨팅 노드(210M 및 210W)에 의해 공유되는 메모리에 저장될 수 있다.
일 실시예에 있어서, 훈련 작업은 훈련 샘플의 세트를 포함한다. 마스터(210M)는 훈련 샘플 서브 세트를 상이한 워커(210W)에 할당함으로써, 훈련 작업을 더 작은 태스크로 분할한다. 예를 들어, 훈련 작업이 300, 000 개의 훈련 샘플을 포함하면, 마스터(210M)는 각각의 워커(210W)에 대해 100,000 개의 훈련 샘플을 할당할 수 있다. 마스터(210M)는 각각의 워커에 같은 수의 훈련 샘플을 할당하지 않을 수 있다. 마스터는 워커의 상태에 따라 훈련 샘플을 워커(210W)에 할당할 수 있다. 예를 들어, 마스터는 훈련 작업을 10 개 블록으로 나누고, 각각의 블록에는 30,000 개의 훈련 샘플을 포함할 수 있다. 이 후, 마스터는 30,000 개 훈련 샘플을 포함한 처음 3 개의 블록을 워커(210W1-210W3)에 할당하여, 워커(210W)가 사용 가능으로 변할 시, 다시 나머지 블록에 나눌 수 있다. 마스터(210M) 자체도 일부 훈련을 실행할 수 있다.
대안적인 분할에 있어서, 기계 학습 모델은 상이한 컴포넌트로 세분화될 수 있다. 마스터(210M)는 상이한 모델 컴포넌트를 상이한 워커(210W)에 할당함으로써 훈련 작업을 분할한다. 예를 들어, 모델이 분리 가능한 경우, 일부 워커(210W)는 모델 중의 이전 계층을 훈련할 수 있으며, 다른 워커는 모델 중의 이후 계층을 훈련할 수 있다. 또는, 일부 모델 컴포넌트는 일부 특징을 감지할 수 있도록 설계될 수 있지만 이는 개별적으로 훈련될 수 있다.
도 2b는 피어 투 피어 아키텍처로 배열된 4 개의 컴퓨팅 노드(220P1-220P4)의 훈련 그룹(220)의 블록도이다. 훈련 그룹(220)은 분산형 알고리즘을 사용하여 훈련 작업을 피어(peers)(220P)에 의해 실행되는 작은 태스크들로 분할한다. 피어(220P)는 태스크를 실행하고 기계 학습 모델의 파라미터를 업데이트하기 위해 서로 협력한다. 예를 들어, 훈련 작업이 10 개의 태스크로 분할될 경우, 각각의 피어(220P)는 현재 태스크를 완성한 후, 공유된 파라미터 마스터 세트를 업데이트하며, 다음 공통 큐에 들어가서 다음 사용 가능 태스크를 얻을 수 있다.
하이브리드 방식도 사용할 수 있다. 예를 들어, 하나의 컴퓨팅 노드(220P1)는 작업 서버(110)와 연락하는 단일 연락점으로 작용할 수 있다. 상기 컴퓨팅 노드(220P1)는 작업 서버로부터 훈련 작업을 수신하며, 훈련 작업을 초기에 작은 태스크로 분할한다. 상기 컴퓨팅 노드는 초기 태스크를 다른 컴퓨팅 노드(220P)에 할당할 수 있다. 그 후, 컴퓨팅 노드(220P)는 태스크를 실행하고 기계 학습 모델의 파라미터를 업데이트하기 위한 피어로 작용한다. 마스터 컴퓨팅 노드(220P1)는 파라미터 마스터 세트 및 결정 대기 중인 태스크 큐를 유지할 수 있다.
도 2c는 클라이언트-서버 아키텍처를 구비한 훈련 그룹(230)의 블록도이다. 컴퓨팅 노드(230S)는 서버로 작용하고, 컴퓨팅 노드(230C1-230C3)는 클라이언트로 작용한다. 서버(230S)는 훈련 샘플을 제공한다. 클라이언트(230C)는 서버(230S)로부터 훈련 샘플을 획득하고 이들의 훈련 태스크를 실행한다. 서버(230S)는 또한 클라이언트(230C)에 파라미터의 값을 제공하기 위한 것일 수 있으며, 클라이언트(230C)로부터의 훈련 결과에 의해, 파라미터의 값을 업데이트할 수 있다.
전술한 바와 같이, 작업 서버(110)는 훈련 작업을 컴퓨팅 노드 그룹에 할당한다. 편의상, 이러한 그룹을 훈련 그룹이라고 지칭한다. 바람직하게, 작업 서버(110)는 어느 컴퓨팅 노드가 어느 훈련 그룹에 포함되었는지를 확인한다. 일부 실시예에서, 이러한 포함 관계가 훈련 작업의 현재 요구 사항 및 컴퓨팅 노드의 현재 상태 중 적어도 하나의 변화에 응답하여 시간에 따라 변화될 수 있다.
도 3은 작업 서버가 훈련 작업을 컴퓨팅 노드에 할당하는 예를 도시한다. 상기 예에서, 12 개의 일반의 컴퓨팅 노드(130R1-130R12) 및 3 개의 전용 컴퓨팅 노드(130S1-130S3)를 포함하여 최대 15 개의 컴퓨팅 노드가 있다. 작업 서버(110)는 컴퓨팅 노드에 의해 실행될 4 개의 훈련 작업(A-D)을 수신한다. 표 300은 각각의 훈련 작업의 요구 사항을 나타낸다. 훈련 작업(A)은 1 개의 일반의 컴퓨팅 노드(130R) 및 1 개의 전용 컴퓨팅 노드(130S)가 요구되는 것 등 이러한 방식으로 유추할 수 있다. 상기 예에서, 이러한 요구 사항은 최소 요구 사항이다. 이보다 많은 수의 컴퓨팅 노드를 사용할 수 있지만, 이보다 작은 수의 컴퓨팅 노드를 사용할 수 없다. 작업 요구도 최소값 및 최대값, 권장값, 허용치 등과 같은 다른 방식으로 지정할 수 있다.
훈련 작업은 상이한 시간에 예약된다. 작업 서버(110)가 훈련 작업을 수신하면, 작업 서버(110)는 훈련 작업의 현재 요구 사항 및 컴퓨팅 노드(130)의 현재 상태에 기반하여, 훈련 작업을 컴퓨팅 노드(130)에 할당한다. 표 350은 훈련 작업을 컴퓨팅 노드에 할당하는 시간 로그이다. 표 350에서, 작업을 할당 받은 컴퓨팅 노드(130)는 작업 문자로 표기되고, 온라인 및 사용 가능한 컴퓨팅 노드는 빈 셀로 표시되고, 오프라인 컴퓨팅 노드는 대각선 줄무늬 패턴으로 표시된다. 상기 예에서, 컴퓨터 시스템이 어느 정도의 동적 재할당이 가능하다고 가정한다. 즉, 훈련 작업 실행 시에 훈련 작업에 할당된 컴퓨팅 노드를 변경할 수 있다. 하지만, 작업 서버의 사용은 정적 상황에도 적용할 수 있으며, 즉, 훈련 그룹이 고정되어, 작업의 시작부터 완료까지 동일하게 유지되어야 한다. 이 경우, 상기 추가 약속에 의해 할당 전략을 수정한다.
시간 t0에서, 5 개의 일반 노드(R1-R5) 및 3 개의 전용 노드(S1-S3)는 온라인 상태이며 사용 가능하지만, 훈련 작업이 수신되지 않았다. 노드(R6-R12)는 오프라인 상태이며, 대각선 줄무늬 패턴으로 표시된 바와 같다. 시간 t1에서, 훈련 작업A이 예약되고 시작된다. 작업A는 하나의 일반 노드R 및 하나의 전용 노드S가 필요로 하지만, 작업 서버(110)는 상기 훈련 작업을 2 개의 일반 노드(R1-R2) 및 2 개의 전용 노드(S1-S2)에 할당한다. 나머지 컴퓨팅 노드(R3-R5 및 S3)는 향후 작업에 사용될 수 있으며, 다른 2 개의 컴퓨팅 노드(R6-R7)은 이미 온라인 상태이다.
시간 t1에서 많은 양의 사용 가능한 컴퓨팅 리소스가 있기 때문에, 훈련 작업A에 할당된 컴퓨팅 노드(130)는 상기 훈련 작업보다 많이 요구 사항이 많다. 따라서, 훈련 작업을 완성하는데 시간이 덜 걸린다. 동시에, 가까운 기간 내에 다른 훈련 작업이 있을 것으로 예상되므로, 모든 사용 가능한 컴퓨팅 리소스가 모두 훈련 작업A에 할당되는 것은 아니다. 예를 들어, 사전에 작업을 스케쥴링하거나, 또는 과거 이력에 의해 미래 작업에 대한 수요를 예측할 수 있다. 다른 방법에 있어서, 작업A를 요구 사항이 가장 적은 컴퓨팅 노드에 할당한다. 작업 중, 컴퓨팅 노드를 전환하기 어렵거나, 또는 현재 작업이 완성되기 전에 많은 양의 작업이 있음을 예상될 경우, 이러한 방법이 적합하다. 반대로, 작업A를 모든 사용 가능한 컴퓨팅 노드에 할당하고, 새로운 작업의 예약에 따라 동적 재할당을 수행할 수 있다.
시간 t2에서, 작업A가 여전히 실행될 때, 훈련 작업B가 시작된다. 작업 서버(110)는 훈련 작업B를 요구 사항이 가장 적은 5 개의 일반 노드(R3-R7) 및 하나의 전용 노드(S3)에 할당한다. 이러한 방식으로 훈련 그룹의 컴퓨팅 리소스가 작업 요구 사항과 동일하다. 동시에, 일반 노드(R1-R2) 및 전용 노드(S1-S2)는 훈련 태스크A를 계속 실행한다. 시간 t2에서, 자유 컴퓨팅 노드가 없다.
시간 t3에서, 추가 노드(R8-R12)는 온라인 상태이다. 이러한 노드를 기존의 예전 그대로 실행되는 작업A 또는 B에 할당하지 않는다. 시간 t4에서, 훈련 작업C를 예약한다. 하지만, 훈련 작업C에서는 6 개의 일반 노드(130R) 및 하나의 전용 노드(130S)를 요구하지만, 5 개의 일반 노드(R8-R12)만 있고 사용 가능한 전용 노드가 없다. 현재 사용 가능한 컴퓨팅 노드는 작업C의 요구 사항을 충족하지 못한다. 작업 서버(110)는, 시간 t3 및 t4의 행 사이의 화살표로 표시된 바와 같이, 동적으로 노드(R2 및 S2)를 작업A로부터 작업C에 재할당한다. 이는 여전히 작업A의 최소 요구 사항을 충족한다. 동시에 작업C의 최소 요구 사항을 충족시키기 위해 리소스를 방출한다. 훈련 작업B의 훈련 그룹에 여분의 컴퓨팅 노드가 없기 때문에 훈련 작업B는 여전히 동일한 컴퓨팅 노드에 의해 실행된다. 현재, 사용 가능한 풀에는 이미 컴퓨팅 노드가 없다.
시간 t5에서, 훈련 태스크D는 예약된다. 하지만, 사용 가능한 컴퓨팅 노드가 없어, 작업D는 실행 시작하지 않는다. 이는 다른 작업 중 하나가 반드시 완성될 때까지 기다려야 한다. 시간 t6에서, 작업B가 완성되며, 노드(R3-R7 및 S3)를 방출한다. 작업 서버는 작업D를 노드(R3-R5)에 할당한다. 이는 기본적으로 선착순이다.
대안적인 실시예에 있어서, 컴퓨터 시스템이 초과 부하(oversubscribed)되면, 작업 서버(110)는 우선 순위에 의해 훈련 작업에 자원을 할당한다. 작업D의 우선 순위가 작업C보다 빠른 경우, 시간 t5에서, 작업 서버는 동적으로 컴퓨팅 노드를 작업C로부터 작업D로 재할당한다. 훈련 작업의 우선 순위는 훈련 작업의 긴급성, 훈련 작업의 중요성, 훈련 작업의 실행에 있어서의 요구되는 기간을 포함한 다양한 요인에 의해 결정될 수 있다. 다른 방법에 있어서, 할당은 비례적으로 이루어질 수 있다.
시간 t7에서, 컴퓨팅 노드(R8-R9)는 우연히 오프라인이다. 따라서, 작업C는 더 이상 필요한 수의 컴퓨팅 노드를 갖지 않는다. 하지만, 컴퓨팅 노드(R6-R7)는 사용 가능하므로, 작업C에 할당될 수 있다. 상기 예에서, 작업C는 노드(R3-R7)에 재할당될 때, 작업D는 노드(R10-R12)에 이동된다. 예를 들어, 노드(R3-R7)가 하나의 데이터 센터에 있고, 노드(R8-R12)는 다른 데이터 센터에 있으면, 이러한 방식을 이용할 수 있지만, 작업을 할당한 모든 일반 노드는 모두 동일한 데이터 센터에 있다.
상기 예에서, 작업 서버(110)는 주로 훈련 작업의 실행에 있어서의 관리를 담당하지만, 컴퓨팅 노드(130)는 주로 훈련 작업에 필요한 컴퓨팅, 및 기계 학습 모델의 파라미터의 업데이트 및 교환을 담당한다. 일부 실시예에서, 작업 서버(110)는 다른 기능을 완성한다. 예를 들어, 작업 서버는 상기 훈련 그룹에 할당된 훈련 작업에 대한 훈련 그룹의 실행 및 컴퓨팅 노드(130)의 상태 중 적어도 하나를 모니터링할 수 있다. 작업 서버(110)는 또한 훈련 작업의 파라미터 및 컴퓨팅 노드(130) 중 적어도 하나의 상태를 시각적으로 표시할 수 있다.
일 실시 형태에 있어서, 작업 서버(110)는 사용 가능한 컴퓨팅 노드는 녹색 아이콘으로 표시되며, 사용 불가능한 컴퓨팅 노드는 적색 아이콘으로 표시되고, 일부 사용 가능한 컴퓨팅 노드는 황색 아이콘으로 표시될 수 있는 시각적 표시를 제공한다. 시각적 표시는 또한 훈련 그룹의 내부 아키텍처 및 활동 레벨 중 적어도 하나를 표시할 수 있다. 컴퓨터 시스템(100)의 사용자는 시각적 표시를 사용하여 훈련 작업의 진도를 제어하며, 작업 서버(110)에 새로운 훈련 작업을 전송할지 여부를 결정할 수 있다.
도 4는 본 발명에 따른 다른 컴퓨터 시스템(400)의 블록도이다. 도 1에 도시된 컴포넌트들 외에도, 컴퓨터 시스템(400)은 또한 표시 노드(440) 및 버퍼 노드(450)를 포함한다. 상술한 바와 같이, 작업 서버는 훈련 작업의 모니터링, 훈련 중의 파라미터의 예시, 전체 컴퓨터 시스템의 용량의 표시 등과 같은 다양한 시각적 표시를 제공할 수 있다. 도 4에 있어서, 이러한 기능은 표시 노드(440)에 의해 완성된다.
버퍼 노드(450)는 컴퓨팅 노드(130)에 의해 실행된 다음 훈련 작업에서 사용될 데이터를 버퍼링한다. 예를 들어, 작업 서버(410)는 훈련 샘플, 모델의 파라미터의 초기값 등과 같은 데이터를 버퍼 노드(450)에 프리 로딩한다. 컴퓨팅 노드(130)는 버퍼 노드(450)로부터 데이터에 액세스한다. 버퍼 노드(450)는 전체 시스템에 캐싱 기능을 제공하여, 전체 시스템 성능을 향상시킨다.
도 5 및 도 6은 각각 작업 서버 및 컴퓨팅 노드의 예의 블록도이다. 도시된 컴포넌트는 지정된 기능의 컴퓨터 프로그램 명령 및 다른 로직을 제공하기 위한 것이다. 이러한 컴포넌트는 하드웨어, 펌웨어 및 소프트웨어 중 적어도 하나로 구현될 수 있다. 일 실시예에 있어서, 이들은 저장 장치에 저장되며, 메모리에 로딩되고, 프로세서에 의해 실행되는 실행 가능한 컴퓨터 프로그램 명령으로서 구현된다.
도 5에서, 작업 서버(500)는 인터페이스 모듈(510), 시스템 모니터(520), 할당 엔진(530), 컴퓨팅 노드 관리자(540), 작업 모니터(550) 및 표시 모듈(560)을 포함한다. 작업 서버는 또한 컴퓨터 시스템 및 훈련 작업과 관련된 정보(기계 학습 모델 및 훈련 샘플의 파라미터)를 저장하기 위한 데이터 저장소를 포함할 수 있다.
인터페이스 모듈(510)은 다른 장치 및 사용자 중 적어도 하나와의 통신을 용이하게 한다. 훈련 작업은 인터페이스 모듈(510)을 통해 훈련 작업을 수신하며, 컴퓨팅 노드의 명령은 인터페이스 모듈(510)을 통해 발송된다. 데이터는 또한 인터페이스 모듈(510)을 통해 전송된다. 인터페이스 모듈(510)은 사용자 인터페이스를 포함할 수 있다.
시스템 모니터(520)는 컴퓨팅 노드의 상태(능력 및 가용성 중의 적어도 하나)를 모니터링한다. 시스템 모니터(520)는 컴퓨팅 성능, 저장 및 통신 등과 같은 컴퓨팅 노드 능력을 자동적으로 발견할 수 있다. 시스템 모니터(520)는 또한 어느 컴퓨팅 노드가 온라인인지를 결정하고, 온라인 컴퓨팅 노드는 사용 가능인지, 일부 사용 가능인지 아니면 사용 불가능인지를 결정한다.
할당 엔진(530)은 훈련 작업의 요구 사항을 결정하며, 훈련 작업의 요구 사항과 컴퓨팅 노드의 상태에 의해, 훈련 작업을 컴퓨팅 노드에 할당한다. 일 실시예에 있어서, 할당 엔진(530)은 각각의 훈련 작업에 필요한 컴퓨팅 노드 수를 결정하고, 또한 얼마나 많은 수의 컴퓨팅 노드가 사용 가능인지 또는 일부 사용 가능인지를 살펴본다. 할당 엔진은 상응되게 훈련 작업을 컴퓨팅 노드에 할당한다. 훈련 작업의 할당, 재할당을 포함한 훈련 작업의 할당은 동적으로 완성될 수 있다.
컴퓨팅 노드 관리자(540)는 컴퓨팅 노드의 로직을 제어 및 지시하기 위한 로직을 제공한다. 컴퓨팅 노드 관리자는 훈련 작업이 실행되도록 계산 노드에 대한 명령을 생성한다. 상기 명령은 훈련 작업의 기계 학습 모델(예를 들어, ID, 목적, 수학 알고리즘 및 파라미터의 초기값), 훈련 작업의 훈련 샘플의 위치 및 훈련 그룹 내의 다른 컴퓨팅 노드와 관련된 정보를 설명할 수 있다.
컴퓨팅 노드 관리자(540)는 작업 서버가 컴퓨팅 노드에 대한 제어량에 따라 다른 양상을 관리할 수 있다. 예를 들어, 명령은 훈련 그룹 중의 마스터 컴퓨팅 노드 및 워커 컴퓨팅 노드를 식별하는 것 등 훈련 그룹의 아키텍처를 추가로 정의할 수 있다. 또한, 명령은 훈련 그룹 중의 컴퓨팅 노드 사이의 훈련 작업의 분할을 지정할 수 있다. 일부 실시예에서, 명령은 업데이트된 파라미터의 값이 컴퓨팅 노드 사이에 교환되도록 지정한다. 예를 들어, 명령은 특정 컴퓨팅 노드가 훈련 그룹 중의 다른 컴퓨팅 노드로부터 업데이트된 값을 수신하도록 지정할 수 있고, 상기 컴퓨팅 노드는 훈련 결과를 조정하고 업데이트된 파라미터 세트를 생성한 다음, 업데이트된 값을 다른 컴퓨팅 노드로 다시 전송하여 추가적인 훈련에 사용된다.
작업 모니터(550)는 다양한 훈련 작업의 진도를 모니터링한다. 작업 모니터는 진도 보고서를 검색하거나, 또는 훈련 그룹이 적극적으로 자체 진도를 보고할 수 있다.
표시 모듈(560)은 훈련 작업의 실행 및 컴퓨터 시스템의 상태 중 적어도 하나와 관련된 정보를 표시한다. 일 실시예에 있어서, 표시 모듈(560)은 컴퓨팅 노드의 상태를 표시한다. 사용자는 표시된 상태에 의해, 더 많은 훈련 작업을 컴퓨터 시스템 또는 특정 노드로 전송할지 여부를 결정한다. 다른 실시예에 있어서, 표시 모듈(560)은 기계 학습 모델의 파라미터의 값을 표시한다. 예를 들어, 표시 모듈(560)은 기계 학습 모델의 파라미터의 초기값 및 최종값을 표시한다. 표시 모듈(560)은 훈련의 진행에 따라 파라미터의 업데이트된 값을 표시할 수 있다.
도 6에서, 컴퓨팅 노드(600)는 인터페이스 모듈(610), 제어 모듈(620), 훈련 모듈(630) 및 파라미터 일관성 모듈(640)을 포함한다. 컴퓨팅 노드는 또한 모델을 저장하기 위한 파라미터, 트레이닝 세트의 통계 파라미터, 모델 훈련의 진도 및 다른 정도와 같은 데이터 저장소를 포함할 수 있다. 인터페이스 모듈(610)은 다른 장치 및 사용자 통신 중 적어도 하나와의 통신을 용이하게 한다. 예를 들어, 인터페이스 모듈(610)을 통해 작업 서버로부터의 훈련 작업 및 명령이 수신된다. 훈련 중 사용되는 파라미터의 교환을 포함하여, 인터페이스 모듈을 통해 다른 컴퓨팅 노드와 통신한다.
제어 모듈(620)은 작업 서버 및 다른 컴퓨팅 노드와의 상호 작용을 포함하여 컴퓨팅 노드의 로직을 제어한다. 제어 모듈은 부분적으로 작업 서버 중의 컴퓨팅 노드 관리자(540)에 대응된다.
훈련 모듈(630)은 훈련 작업을 실행한다. 상기 예에서, 훈련 모듈(630)은 적응 엔진(632) 및 검증 엔진(634)을 포함한다. 훈련 모듈(630)은 훈련 샘플을 사용하여 기계 학습 모델을 훈련시킨다. 일 방법에 있어서, 훈련 모듈(630)은 관심 대상 속성을 갖는 훈련 샘플의 양성 트레이닝 세트 및 관심 대상 속성이 부족한 훈련 샘플의 음성 트레이닝 세트를 형성한다. 적응 엔진(632)은, 양성 트레이닝 세트 및 음성 트레이닝 세트에 적용시키기 위해 기계 학습 모델의 파라미터의 값을 업데이트한다. 상이한 실시예에서 선형 서포트 벡터 머신(선형 SVM), AdaBoost 등과 같은 다른 알고리즘에 대한 개선, 신경 네트워크, 로지스틱 회귀, 나이브 베이즈(na
Figure 112019110587635-pct00001
ve Bayes), 메모리 기반 학습, 랜덤 포레스트, 포장 트리, 의사 결정 트리, 부스트 트리 또는 부스트 스텀프(boosted stumps) 등과 같은 상이한 기계 학습 기술을 사용할 수 있다.
검증 엔진(634)은 추가 샘플에 의한 훈련된 기계 학습 모델을 검증한다. 검증 엔진(634)은 훈련된 모델의 정확성을 정량화하기 위해 훈련된 모델을 검증 샘플에 적용한다. 정확도 메트릭 중의 공통 메트릭 기준에는 정밀도 = TP / (TP + FP) 및 리콜(recall) = TP /(TP + FN)이 포함되며, TP는 진짜 양수(number of true positive)이고, FP는 가짜 양수(number of false positive)이며, FN은 가짜 음수(number of false negative)이다. 정밀도는 훈련된 모델에 의해 예측된 대상 속성을 갖는(TP + FP) 총수 중에서, 훈련된 모델에 의해 정확하게 예측된 대상 속성을 갖는(TP)의 결과의 수이다. 리콜은 확실하게 대상 속성을 갖는(TP + FN) 검증 샘플의 총수 중에서, 훈련된 모델에 의해 정확하게 예측된 속성을 갖는(TP) 결과의 수이다. F 점수(F 점수 = 2 Х 정밀도 × 리콜 / (정밀도 + 리콜))는 정밀도와 리콜을 단일 메트릭으로 통합한다. 정확도 메트릭에서 적용된 공통 메트릭 기준에는 또한 상위 1위 정확도와 상위 5위 정확도를 포함한다. 상위 1위 정확도에서, 훈련된 모델에 의해 예측된 상위 1위의 예측(즉, 가장 가능한 예측)이 정확할 경우, 상기 훈련된 모델은 정확하다. 상위 5위 정확도에서, 현재 5위 예측(예를 들어, 가장 가능한 5 개의 예측) 중 하나가 정확할 경우, 훈련된 모델은 정확하다. 검증 엔진(634)은 다른 유형의 메트릭 기준을 사용하여 훈련된 모델의 정확도를 정량화할 수 있다. 일 실시예에 있어서, 훈련 모듈(630)은, 모델이 충분히 정확함을 나타내는 정확도 메트릭 지시 또는 여러 라운드의 훈련이 이미 수행되었음을 나타내는 것과 같은 정지 조건이 발생할 때까지 기계 학습 모델을 반복적으로 재훈련시킨다.
파라미터 일관성 모듈(640)은 상이한 컴퓨팅 노드로부터의 훈련 결과를 집계한다. 예를 들어, 한 컴퓨팅 노드에서의 훈련은 파라미터가 업데이트된 값의 세트를 구축하는 것이고, 다른 컴퓨팅 노드에서의 훈련은 다른 업데이트된 값의 세트를 구축하는 것일 수 있다. 파라미터 일관성 모듈(640)은 이러한 결과를 단일 세트의 업데이트된 값으로 조합한다.
본 발명을 실시하기 위한 구체적인 내용에는 많은 세부 사항들이 포함되어 있으나, 본 발명의 범위를 제한하려는 것이 아니라, 본 발명의 다양한 예 및 측면을 예시하기 위한 것으로 해석되어야 한다. 본 발명의 범위는 상기에서 구체적으로 논의되지 않은 다른 실시예들을 포함한다는 것이 이해될 것이다. 예를 들어, 복수의 작업 서버를 컴퓨팅 노드의 세트에 사용할 수 있다. 본 명세서에 개시된 본 발명의 방법 및 장치의 배열, 동작 및 세부 사항은 첨부된 청구 범위에 의해 정의된 본 발명의 사상 및 범위를 벗어나지 않는 상황에서, 당업자에게 있어서 자명한 여러 가지 다른 수정, 변경 및 변형을 진행할 수 있다. 따라서, 본 발명의 범위는 첨부된 청구 범위 및 그와 동등한 법적 등가물에 의해 결정되어야 한다.
대안적인 실시예는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및 이들의 조합 중 적어도 하나로 구현된다. 실시 형태는 프로그램 가능 프로세서에 의한 실행을 위해, 기계 판독 가능 저장 장치에 유형적으로 구현된 컴퓨터 프로그램 제품으로 구현될 수 있다. 방법 단계들은 입력 데이터를 동작시키고 출력을 생성하는 것을 통해 기능을 완성하기 위해, 명령 프로그램을 실행하는 프로그램 가능 프로세서에 의해 수행될 수 있다. 실시예는 프로그램 가능한 시스템에서 실행 가능한 하나 이상의 컴퓨터 프로그램으로 유리하게 구현될 수 있으며, 상기 프로그램 가능한 시스템은, 데이터 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치와 데이터 및 명령을 송수신하는, 결합된 적어도 하나의 프로그램 가능한 시스템 프로세서를 포함한다. 각각의 컴퓨터 프로그램은 높은 수준의 프로세스 또는 객체 지향 프로그래밍 언어로 구현될 수 있으며, 또는 원하는 경우, 어셈블리언어 또는 기계 언어로 구현될 수 있다. 상기 언어는 컴파일된 언어 또는 해석된 언어일 수 있다. 예를 들어, 적합한 프로세서는 범용 및 특수 목적의 마이크로 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 및 랜덤 액세스 메모리 중 적어도 하나로부터 명령 및 데이터를 수신한다. 일반적으로, 컴퓨터는 데이터 파일을 저장하기 위한 하나 이상의 대용량 저장 장치를 포함한다. 이러한 장치는 내부 하드 디스크 및 이동식 디스크와 같은 디스크, 광 자기 디스크 및 광 디스크를 포함한다. 컴퓨터 프로그램 명령 및 데이터를 유형적으로 구현하기에 적합한 저장 장치는 예를 들어, EPROM, EEPROM, 플래시 메모리 장치 등과 같은 반도체 메모리 장치, 내부 하드 디스크 및 이동식 디스크와 같은 디스크, 광 자기 디스크, 광 디스크 등을 포함하는 모든 형태의 비 휘발성 메모리를 포함한다. 상기의 임의의 하나는 모두 (또는 통합) ASIC(application-specific integrated circuits, 주문형 집적 회로) 및 다른 형태의 하드웨어로 보완될 수 있다.

Claims (20)

  1. 작업 서버를 포함하는 컴퓨터 시스템에서 복수의 기계 학습 모델을 훈련시키기 위한 방법으로서, 상기 작업 서버는 네트워크를 통해 복수의 컴퓨팅 노드와 통신하고, 각각의 기계 학습 모델은 파라미터 세트를 포함하며, 상기 방법은,
    상기 작업 서버는 상기 기계 학습 모델을 훈련시키기 위한 복수의 훈련 작업을 수신하며;
    상기 작업 서버는, 상기 훈련 작업의 현재 요구 사항과 상기 컴퓨팅 노드의 현재 상태에 기반하여, 상기 훈련 작업을 하나 이상의 컴퓨팅 노드로 구성된 훈련 그룹에 할당하고, 상기 작업 서버가 어느 컴퓨팅 노드가 어느 트레이닝 그룹에 포함되는지를 결정하며;
    상기 훈련 그룹은 상기 훈련 그룹에 할당된 훈련 작업을 실행하고, 상기 실행에는,
    상기 기계 학습 모델의 상기 파라미터의 값을 업데이트하며; 및
    둘 이상의 컴퓨팅 노드를 포함한 적어도 하나의 훈련 그룹에 대해, 훈련 그룹의 컴퓨팅 노드 사이에서 상기 파라미터의 업데이트된 값을 교환하고, 교환된 업데이트된 값을 이용해 상기 훈련 작업을 추진하는 것을 포함하고,
    상기 훈련 그룹에서 상기 작업 서버는 컴퓨팅 노드 사이에 상기 업데이트된 값이 교환되도록 지정하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 컴퓨터 시스템은 마스터-워커 아키텍처를 구비하며, 여기서, 상기 작업 서버는 각 훈련 그룹의 마스터로 작동하고, 각 훈련 그룹은 상기 작업 서버의 워커로 작동되는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    둘 이상의 컴퓨팅 노드를 갖는 적어도 하나의 훈련 그룹 내에도 마스터-워커 아키텍처를 구비하며, 상기 훈련 그룹 중 하나의 컴퓨팅 노드는 상기 훈련 그룹 중 나머지 컴퓨팅 노드의 마스터로서 작동되고, 상기 나머지 컴퓨팅 노드는 상기 하나의 컴퓨팅 노드의 워커로서 작동하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    둘 이상의 컴퓨팅 노드를 갖는 적어도 하나의 훈련 그룹 내에는 피어 투 피어 아키텍처를 갖는 것을 특징으로 하는 방법.
  5. 제2항에 있어서,
    둘 이상의 컴퓨팅 노드를 갖는 적어도 하나의 훈련 그룹에 있어서, 상기 훈련 작업은 상기 파라미터의 초기값으로부터 시작되어, 상기 파라미터의 최종값으로 종료되며, 상기 훈련 그룹 중의 하나의 컴퓨팅 노드는 상기 파라미터를 상기 초기값으로부터 상기 최종값으로 업데이트하여 저장하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 작업 서버는, 상기 훈련 작업의 현재 요구 사항과 상기 컴퓨팅 노드의 현재 상태에 기반하여, 훈련 그룹에 포함된 컴퓨팅 노드를 변경하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 컴퓨팅 노드의 현재 상태에 기반하여, 상기 훈련 작업을 훈련 그룹에 할당하는 것은, 상기 컴퓨팅 노드의 현재 능력과 상기 컴퓨팅 노드의 현재 가용성에 기반하여 상기 훈련 작업을 훈련 그룹에 할당하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 작업 서버는 상기 컴퓨팅 노드의 컴퓨팅 성능 및 가용성 중의 적어도 하나, 상기 컴퓨팅 노드의 데이터 저장 능력 및 가용성 중의 적어도 하나, 및 상기 컴퓨팅 노드 간의 통신 능력 및 가용성 중의 적어도 하나 중의 적어도 하나에 따라, 상기 훈련 작업을 훈련 그룹에 할당하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 훈련 작업은, 상기 파라미터의 초기값으로부터 시작하여, 상기 파라미터의 중간값(interim value)을 통해 수행하며, 상기 파라미터의 최종값으로 종료되고, 상기 파라미터의 중간값과 최종값은 상기 작업 서버가 아닌 상기 훈련 그룹 중의 컴퓨팅 노드에 의해 결정되는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 훈련 작업 중의 적어도 하나의 훈련 작업에 대해, 상기 작업 서버는 상기 최종값에 액세스하지 않는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 작업 서버가 상기 훈련 그룹에 할당된 훈련 작업을 상기 훈련 그룹이 실행하는 것을 감시하는 것을 더 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 작업 서버가 상기 훈련 작업 중의 적어도 하나의 훈련 작업의 파라미터를 시각적으로 표시하는 것을 더 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 작업 서버가 상기 컴퓨팅 노드의 현재 상태 및 상기 컴퓨팅 노드의 현재 가용성 중의 적어도 하나를 시각적으로 표시하는 것을 더 포함하는 것을 특징으로 하는 방법.
  14. 복수의 기계 학습 모델을 훈련시키기 위한 실행 가능한 컴퓨터 프로그램 명령을 저장하는 비 일시적인 컴퓨터 판독 가능한 기억 매체로서, 각각의 기계 학습 모델은 파라미터 세트를 포함하며, 상기 명령은 프로세서에 의해 실행되어 상기 프로세서로 하여금 방법을 실행하도록 하고, 상기 방법은,
    상기 기계 학습 모델을 훈련시키기 위한 복수의 훈련 작업을 수신하며;
    상기 훈련 작업의 현재 요구 사항과 컴퓨팅 노드의 현재 상태에 기반하여, 하나 이상의 컴퓨팅 노드로 구성된 훈련 그룹에 상기 훈련 작업을 할당하고,
    상기 훈련 그룹에 할당된 훈련 작업을 훈련 그룹이 실행하며, 상기 실행은,
    상기 기계 학습 모델의 상기 파라미터의 값을 업데이트하고; 및
    둘 이상의 컴퓨팅 노드를 포함하는 적어도 하나의 훈련 그룹에 대해, 훈련 그룹의 컴퓨팅 노드 사이에서 상기 파라미터의 업데이트된 값을 교환하며, 교환된 업데이트된 값을 이용하여 상기 훈련 작업을 진행시키는 단계를 포함하고,
    상기 훈련 그룹에서 컴퓨팅 노드 사이에 상기 업데이트된 값이 교환되도록 지정되는 것을 특징으로 하는 비 일시적인 컴퓨터 판독 가능한 기억 매체.
  15. 복수의 기계 학습 모델을 훈련시키기 위한 컴퓨터 시스템으로서, 각각의 기계 학습 모델은 파라미터 세트를 포함하며, 상기 컴퓨터 시스템은,
    작업 서버; 및
    작업 서버와 통신하는 복수의 컴퓨팅 노드를 포함하되,
    상기 작업 서버는, 상기 기계 학습 모델을 훈련시키기 위한 복수의 훈련 작업을 수신하며; 상기 작업 서버는 상기 훈련 작업의 현재 요구 사항과 상기 컴퓨팅 노드의 현재 상태에 기반하여, 하나 이상의 컴퓨팅 노드로 구성된 훈련 그룹에 상기 훈련 작업을 할당하고; 또한, 상기 작업 서버는 훈련 그룹에 포함된 컴퓨팅 노드를 결정하며,
    상기 훈련 그룹에 할당된 훈련 작업을 상기 훈련 그룹이 실행하고, 상기 실행은, 상기 기계 학습 모델의 상기 파라미터의 값을 업데이트하며; 및 둘 이상의 컴퓨팅 노드를 포함하는 적어도 하나의 훈련 그룹에 대해, 훈련 그룹의 컴퓨팅 노드 사이에서 상기 파라미터의 업데이트된 값을 교환하고, 교환된 업데이트된 값을 이용하여 상기 훈련 작업을 진행하는 것을 포함하고,
    상기 훈련 그룹에서 상기 작업 서버는 컴퓨팅 노드 사이에 상기 업데이트된 값이 교환되도록 지정하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제15항에 있어서,
    상기 작업 서버와 상기 복수의 컴퓨팅 노드는 적어도 총 1000개의 프로세서 유닛을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제15항에 있어서,
    표시 노드를 더 포함하며,
    상기 표시 노드는 상기 작업 서버와 통신하여, 상기 훈련 작업 중의 적어도 하나의 훈련 작업의 파라미터를 시각적으로 표시하는 것을 특징으로 하는 컴퓨터 시스템.
  18. 제15항에 있어서,
    버퍼 노드를 더 포함하며,
    상기 버퍼 노드는 상기 컴퓨팅 노드와 통신하여, 상기 컴퓨팅 노드에 의해 실행되는 다음 훈련 작업에서 사용될 데이터를 버퍼링하는 것을 특징으로 하는 컴퓨터 시스템.
  19. 제15항에 있어서,
    상기 훈련 그룹 중의 상기 둘 이상의 컴퓨팅 노드는 상기 컴퓨팅 노드에 의해 공유하는 메모리를 포함하며, 상기 컴퓨팅 노드는 상기 공유되는 메모리에서의 상기 업데이트된 값의 위치를 교환하는 것을 통해 상기 파라미터의 상기 업데이트된 값을 교환하는 것을 특징으로 하는 컴퓨터 시스템.
  20. 삭제
KR1020197032039A 2017-04-26 2018-04-13 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련 KR102300984B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/497,749 2017-04-26
US15/497,749 US20180314971A1 (en) 2017-04-26 2017-04-26 Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server
PCT/CN2018/082970 WO2018196631A1 (en) 2017-04-26 2018-04-13 Training machine learning models on a large-scale distributed system using a job server

Publications (2)

Publication Number Publication Date
KR20190132475A KR20190132475A (ko) 2019-11-27
KR102300984B1 true KR102300984B1 (ko) 2021-09-09

Family

ID=63916703

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032039A KR102300984B1 (ko) 2017-04-26 2018-04-13 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련

Country Status (6)

Country Link
US (1) US20180314971A1 (ko)
EP (1) EP3593247B1 (ko)
JP (1) JP6894532B2 (ko)
KR (1) KR102300984B1 (ko)
CN (1) CN110462591A (ko)
WO (1) WO2018196631A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288575B2 (en) * 2017-05-18 2022-03-29 Microsoft Technology Licensing, Llc Asynchronous neural network training
US10235625B1 (en) * 2018-02-09 2019-03-19 Capital One Services, Llc Automatically scaling neural networks based on load
CN110389816B (zh) * 2018-04-20 2023-05-23 伊姆西Ip控股有限责任公司 用于资源调度的方法、装置以及计算机可读介质
CN110554912B (zh) * 2018-05-31 2022-05-20 杭州海康威视数字技术股份有限公司 调度设备执行任务的方法和装置
US20200090000A1 (en) * 2018-09-18 2020-03-19 Microsoft Technology Licensing, Llc Progress Portal for Synthetic Data Tasks
EP3895009A4 (en) * 2018-12-13 2022-06-22 Telefonaktiebolaget Lm Ericsson (Publ) METHOD AND MACHINE LEARNING AGENT FOR PERFORMING MACHINE LEARNING IN AN EDGE CLOUD
US11941493B2 (en) 2019-02-27 2024-03-26 International Business Machines Corporation Discovering and resolving training conflicts in machine learning systems
KR102096737B1 (ko) * 2019-03-28 2020-04-02 한국과학기술원 저밀도 패리티 검사 부호를 활용한 고장 방지 능력을 갖춘 분산 기계 학습 방법 및 그 장치
KR102648599B1 (ko) * 2019-04-09 2024-03-15 에이에스엠엘 네델란즈 비.브이. 설비 위치들 사이에서 예측 모델을 조절하기 위한 시스템 및 방법
US11886960B2 (en) 2019-05-07 2024-01-30 International Business Machines Corporation Elastic training of machine learning models via re-partitioning based on feedback from the training algorithm
US11573803B2 (en) 2019-05-07 2023-02-07 International Business Machines Corporation Parallel training of machine learning models
CN110728317A (zh) * 2019-09-30 2020-01-24 腾讯科技(深圳)有限公司 决策树模型的训练方法、系统、存储介质及预测方法
US20210097429A1 (en) * 2019-09-30 2021-04-01 Facebook, Inc. Machine learning training resource management
WO2021101945A1 (en) * 2019-11-19 2021-05-27 Captiv8, Inc. Systems and methods for identifying, tracking, and managing a plurality of social network users having predefined characteristcs
US11710068B2 (en) * 2019-11-24 2023-07-25 International Business Machines Corporation Labeling a dataset
CN112884157B (zh) * 2019-11-29 2024-03-26 北京达佳互联信息技术有限公司 一种模型训练方法、模型训练节点及参数服务器
US11379718B2 (en) 2019-12-10 2022-07-05 International Business Machines Corporation Ground truth quality for machine learning models
CN111027713B (zh) * 2019-12-10 2022-09-02 支付宝(杭州)信息技术有限公司 共享机器学习系统及方法
CN111143308B (zh) * 2019-12-26 2023-04-28 许昌中科森尼瑞技术有限公司 基于联邦学习的高低压电动机数据处理方法、系统及装置
CN111241745A (zh) * 2020-01-09 2020-06-05 深圳前海微众银行股份有限公司 逐步模型选择方法、设备及可读存储介质
CN111241746B (zh) * 2020-01-09 2024-01-26 深圳前海微众银行股份有限公司 向前模型选择方法、设备和可读存储介质
US11249861B2 (en) 2020-02-06 2022-02-15 Bank Of America Corporation Multi-layered disaster recovery manager
WO2021220616A1 (ja) * 2020-04-30 2021-11-04 ソニーグループ株式会社 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム
US11593714B2 (en) * 2020-05-06 2023-02-28 Citrix Systems, Inc. Adaptive anomaly detector
CN111722923A (zh) * 2020-05-29 2020-09-29 浪潮电子信息产业股份有限公司 一种异构资源的调用方法、装置和计算机可读存储介质
US11456917B2 (en) * 2020-06-01 2022-09-27 Cisco Technology, Inc. Analyzing deployed networks with respect to network solutions
KR102163402B1 (ko) 2020-06-15 2020-10-08 주식회사 딥노이드 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법
US11651293B2 (en) 2020-07-22 2023-05-16 International Business Machines Corporation Hierarchical decentralized distributed deep learning training
CN111917579A (zh) * 2020-07-30 2020-11-10 云知声智能科技股份有限公司 分布式训练方法、装置、设备和存储介质
US20220287104A1 (en) * 2021-03-05 2022-09-08 Samsung Electronics Co., Ltd. Method and apparatus for support of machine learning or artificial intelligence techniques in communication systems
CN112966601A (zh) * 2021-03-05 2021-06-15 上海深硅信息科技有限公司 一种人工智能师徒半监督学习的方法
CN113032117A (zh) * 2021-03-10 2021-06-25 北京百度网讯科技有限公司 深度学习框架的训练方法、装置及存储介质
US20220374327A1 (en) * 2021-04-29 2022-11-24 International Business Machines Corporation Fair simultaneous comparison of parallel machine learning models
JPWO2023276382A1 (ko) * 2021-07-01 2023-01-05
CN113961351B (zh) * 2021-10-28 2022-12-30 北京百度网讯科技有限公司 深度学习模型的分布式训练方法、装置、设备及存储介质
CN114139723A (zh) * 2021-11-30 2022-03-04 支付宝(杭州)信息技术有限公司 用于深度学习模型训练的方法、装置及系统
US20230214837A1 (en) * 2022-01-04 2023-07-06 Fidelity Information Services, Llc. Methods, systems, and devices for machine learning-based contextual engagement decision engine
CN115063647A (zh) * 2022-05-18 2022-09-16 浙江工商大学 基于深度学习的分布式异构数据处理方法、装置和设备
KR20240003537A (ko) * 2022-07-01 2024-01-09 몬드리안에이아이 주식회사 공유자원 기반 원격 분산 학습 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007533034A (ja) 2004-04-15 2007-11-15 レイセオン カンパニー Hpcクラスタを管理するためのグラフィカル・ユーザ・インタフェース
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
JP2013228859A (ja) 2012-04-25 2013-11-07 Toyota Motor Corp プラント制御装置
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596788B1 (en) * 2004-05-11 2009-09-29 Platform Computing Corporation Support of non-trivial scheduling policies along with topological properties
CN102073546B (zh) * 2010-12-13 2013-07-10 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN102523249A (zh) * 2011-11-24 2012-06-27 哈尔滨工业大学 基于Web的分布式远程仿真系统及仿真方法
CN104714852B (zh) * 2015-03-17 2018-05-22 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统
CN106156810B (zh) * 2015-04-26 2019-12-03 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN105069703B (zh) * 2015-08-10 2018-08-28 国家电网公司 一种电网海量数据管理方法
CN105575119B (zh) * 2015-12-29 2018-06-19 大连楼兰科技股份有限公司 路况气候深度学习及识别方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007533034A (ja) 2004-04-15 2007-11-15 レイセオン カンパニー Hpcクラスタを管理するためのグラフィカル・ユーザ・インタフェース
JP2013228859A (ja) 2012-04-25 2013-11-07 Toyota Motor Corp プラント制御装置
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service

Also Published As

Publication number Publication date
JP2020518065A (ja) 2020-06-18
EP3593247B1 (en) 2022-11-16
EP3593247A4 (en) 2020-05-13
EP3593247A1 (en) 2020-01-15
KR20190132475A (ko) 2019-11-27
CN110462591A (zh) 2019-11-15
JP6894532B2 (ja) 2021-06-30
US20180314971A1 (en) 2018-11-01
WO2018196631A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
KR102300984B1 (ko) 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련
US11507430B2 (en) Accelerated resource allocation techniques
US20220179560A1 (en) Distributed storage system and data processing method
US20200174844A1 (en) System and method for resource partitioning in distributed computing
US20220083389A1 (en) Ai inference hardware resource scheduling
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US9934071B2 (en) Job scheduler for distributed systems using pervasive state estimation with modeling of capabilities of compute nodes
US20180246765A1 (en) System and method for scheduling jobs in distributed datacenters
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
KR102199275B1 (ko) 분산 컴퓨팅 시스템에서의 적응적 리소스 관리
US10810143B2 (en) Distributed storage system and method for managing storage access bandwidth for multiple clients
CN111143039B (zh) 一种虚拟机的调度方法、装置及计算机存储介质
CN112764893B (zh) 数据处理方法和数据处理系统
CN113037800B (zh) 作业调度方法以及作业调度装置
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
US20230136661A1 (en) Task scheduling for machine-learning workloads
WO2018097058A1 (ja) 解析ノード、リソース管理方法およびプログラム記録媒体
WO2021115082A1 (zh) 作业调度方法以及作业调度装置
CN115658311A (zh) 一种资源的调度方法、装置、设备和介质
CN110928649A (zh) 资源调度的方法和装置
CN114896070A (zh) 一种用于深度学习任务的gpu资源分配方法
CN110427217B (zh) 基于内容的发布订阅系统匹配算法轻量级并行方法和系统
Janardhanan et al. Analysis and modeling of resource management overhead in Hadoop YARN Clusters
Sidhanta et al. Infra: SLO Aware Elastic Auto-scaling in the Cloud for Cost Reduction
WO2022151951A1 (zh) 任务调度方法及管理系统

Legal Events

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