KR20200119279A - 즉시 업데이트를 통해 분산 파라미터 서버를 사용하는 신경망의 최적화된 비동기식 트레이닝 - Google Patents

즉시 업데이트를 통해 분산 파라미터 서버를 사용하는 신경망의 최적화된 비동기식 트레이닝 Download PDF

Info

Publication number
KR20200119279A
KR20200119279A KR1020207025668A KR20207025668A KR20200119279A KR 20200119279 A KR20200119279 A KR 20200119279A KR 1020207025668 A KR1020207025668 A KR 1020207025668A KR 20207025668 A KR20207025668 A KR 20207025668A KR 20200119279 A KR20200119279 A KR 20200119279A
Authority
KR
South Korea
Prior art keywords
neural network
remote
parameter
parameters
updated
Prior art date
Application number
KR1020207025668A
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 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20200119279A publication Critical patent/KR20200119279A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

신경망을 트레이닝하는 방법은, 로컬 컴퓨팅 노드에서, 하나 이상의 원격 컴퓨팅 노드의 세트로부터 원격 파라미터를 수신하는 단계, 원격 파라미터에 기초하여 최종 출력을 결정하기 위해 로컬 컴퓨팅 노드의 로컬 신경망에서 순방향 패스의 실행을 개시하는 단계, 로컬 신경망에 대한 업데이트된 파라미터를 결정하기 위해 로컬 신경망에서 역방향 패스의 실행을 개시하는 단계, 및 역방향 패스의 완료 이전에 업데이트된 파라미터의 서브세트를 원격 컴퓨팅 노드의 세트로 송신하는 단계를 포함한다.

Description

즉시 업데이트를 통해 분산 파라미터 서버를 사용하는 신경망의 최적화된 비동기식 트레이닝
정부의 권리
본 발명은 로렌스 리버모어 국가 안보(Lawrence Livermore National Security)에 따른 패스포워드 프로젝트(PathForward Project)(DOE에 의해 지급된 원 계약 제DE-AC52-07NA27344호, 하도급 계약 제B620717호) 하에서 정부의 지원을 받아 완성되었다. 정부는 본 발명에서 특정 권리를 갖는다.
최근 몇 년 동안, 심층 신경망과 같은 학습 아키텍처는 컴퓨터 비전, 음성 인식, 자연어 프로세싱, 번역, 및 많은 다른 것의 분야를 진전시켜서, 많은 경우에서 컴퓨터가 동등하게 수행하거나 일부 경우에서 이들 작업을 수행하는데 인간의 능력을 심지어 능가하는 것을 허용한다. 신경망의 기본 구축 블록은 뉴런이고, 단일 신경망은 계층으로 연결된 임의의 수(예로서, 수천 또는 수백만)의 뉴런을 포함할 수 있으며, 여기서 각각의 계층의 뉴런은 이전 계층으로부터 그들의 입력을 수신하고 후속 계층에 그들의 출력을 제공한다. 각각의 뉴런은 이들의 입력에 대한 함수(예로서, 합계)의 수행에 기초하여 출력을 생성하고, 여기서 조정가능한 가중치가 입력에 적용된다. 출력에 부가된 바이어스 값이 또한 조정될 수 있다.
역전파는 신경망의 최종 출력과 특정한 입력에 대해 원하는 출력을 비교하는 것에 기초하여 각각의 뉴런의 오차 기여가 산출되는 신경망에서 기계 학습을 수행하기 위한 하나의 기술이다. 오차에 기여하는 개별 뉴런의 가중치 및 바이어스가 그 다음, 조정되어 신경망이 원하는 출력을 성취하게 한다. 오차는 출력에서 산출되고 가중치 조정은 최종 계층으로부터 신경망의 초기 계층을 향해 역방향으로 전파된다.
본 발명은 첨부된 도면의 수치로 제한이 아닌 예로서 도시된다.
도 1은 신경망을 트레이닝하기 위한 중앙집중식 파라미터 서버를 포함하는 컴퓨팅 노드 클러스터의 일 실시형태를 도시한 도면.
도 2는 일 실시형태에 따른, 신경망을 트레이닝하기 위한 컴퓨팅 노드 클러스터를 포함하는 컴퓨팅 시스템을 도시한 도면.
도 3은 일 실시형태에 따른, 신경망을 트레이닝하기 위한 컴퓨팅 노드 클러스터를 도시한 도면.
도 4는 일 실시형태에 따른, 파라미터 서버를 포함하는 컴퓨팅 노드의 구성요소를 도시한 도면.
도 5는 일 실시형태에 따른, 컴퓨팅 노드 클러스터의 분산 파라미터 서버를 도시한 도면.
도 6은 일 실시형태에 따른, 신경망을 트레이닝하기 위한 프로세스를 도시하는 흐름도.
다음의 설명은 실시형태의 양호한 이해를 제공하기 위해 특정 시스템, 구성요소, 방법, 등의 예와 같은 많은 특정 상세를 제시한다. 그러나, 적어도 일부 실시형태가 이들 특정 상세 없이 실행될 수 있다는 것이 당업자에게 명백할 것이다. 다른 사례에서, 잘 알려진 구성요소 또는 방법은 실시형태를 불필요하게 모호하게 하는 것을 회피하기 위해 상세하게 설명되지 않거나 간단한 블록도 포맷으로 제공된다. 따라서, 제시된 특정 상세는 단지 예시적이다. 특정한 구현은 이들 예시적인 상세로부터 달라지고 여전히 실시형태의 범위 내에 있는 것으로 고려될 수 있다.
역전파 기술은 신경망에서 다수의 사례 학습을 수행할 때 사용할 수 있으며, 여기서 신경망의 파라미터는 트레이닝 세트의 다수의 사례에 대한 신경망의 동작에 기초하여 조정된다. 각각의 사례는 신경망에 의해 생성된 실제 출력이 비교되는 원하는 출력 및 입력의 세트를 표현한다. 더 작은 신경망을 위해 이들 방법에 따라 동작하는 트레이닝 프레임워크는 단일 컴퓨팅 노드의 제한된 리소스에서 구현될 수 있으나; 훨씬 더 큰 신경망을 수용하기 위해 트레이닝 프레임워크를 확장하는 것은, 각각이 신경망의 대응하는 부분(즉, 뉴런의 서브세트)에 대해 각각 역전파 프로세스를 수행하고/하거나 트레이닝 세트의 대응하는 부분을 사용하는 다수의 컴퓨팅 노드(예로서, 다수의 그래픽 처리 장치(GPU) 노드)를 통해 계산을 분산하는 것을 수반할 수 있다.
다수의 컴퓨팅 노드를 통해 신경망 트레이닝 프레임워크를 확장하기 위한 하나의 방법은 비동기식 확률적 경사 하강법(Stochastic Gradient Descent: SGD) 프로세스를 구현하기 위해 중앙집중식 파라미터 서버를 사용한다. 도 1은 이러한 중앙집중식 파라미터 서버(101)가 계층 파라미터(L1 내지 LN)를 포함하는 신경망을 트레이닝하기 위해 사용되는 컴퓨팅 노드 클러스터(100)의 일 실시형태에 대한 블록도를 도시하고, 여기서 LX는 신경망의 계층(X)에 대한 로컬 파라미터를 표현한다. 트레이닝 프로세스 동안, 중앙집중식 파라미터 서버(101)는 이들 계층(L1 내지 LN)에서 계층 파라미터(예로서, 가중치 및 바이어스)를 업데이트하고 계산할 뿐만 아니라, 파라미터를 컴퓨팅 노드(102 내지 104)로 전달할 책임이 있다.
역전파 프로세스에 따른 신경망의 트레이닝은 순방향 패스 및 역방향 패스를 포함한다. 순방향 패스 동안, 신경망은 트레이닝 사례 중 하나에 대한 최종 출력(즉, 최종 계층으로부터의 출력)을 산출하기 위해 사용된다. 역방향 패스 동안, 순방향 패스에 의해 산출된 출력과 원하는 출력 사이의 오차가 결정되고, 오차는 네트워크에서 뉴런에 대한 조정된 가중치를 산출하기 위해 신경망의 각각의 계층을 통해 역방향으로 전파된다. 도 1에서, 역방향 패스(112)는 컴퓨팅 노드(102)에서 수행되고 순방향 패스(113 및 114)는 컴퓨팅 노드(103 및 104) 각각에서 수행된다.
완전한 역방향 패스는 신경망의 뉴런의 일부 또는 전부에 대한 업데이트된 가중치 및/또는 바이어스 값을 포함하는, 신경망의 계층의 전부에 대한 업데이트된 파라미터의 배취(batch)를 생성한다. 역방향 패스(112)의 끝에서, 역방향 패스(112)로부터 산출된 업데이트된 파라미터의 배취는 지점 대 지점 통신을 사용하여 중앙집중식 파라미터 서버(101)로 송신된다. 중앙집중식 파라미터 서버(101)는 업데이트된 파라미터를 컴퓨팅 노드(103 및 104)로 송신함으로써 다른 컴퓨팅 노드(103 및 104)의 파라미터를 업데이트한다. 컴퓨팅 노드(102 내지 104)는 병렬로 동작하고 임의의 주어진 시간에 트레이닝 루프의 상이한 반복을 수행할 수 있으나; 그러나, 이 구현에서, 파라미터는 역방향 패스의 완료와 관련하여 파라미터 서버(101)로 및 그로부터 송신된다.
중앙화된 파라미터 서버(101)는 다수의 컴퓨팅 노드(102 내지 104) 사이의 업데이트된 파라미터의 전달을 용이하게 하고, 따라서 신경망 트레이닝 프레임워크가 단일 노드로 제한되는 것이 아니라 컴퓨팅 노드(102 내지 104)에 걸쳐 확장되는 것을 허용한다. 그러나, 또 다른 확장성은 중앙집중식 파라미터 서버(101)의 대역폭 및 계산 제한에 따라 제한될 수 있다. 컴퓨팅 노드(102 내지 104)는 파라미터의 후속 배취를 산출하기 위한 순방향 패스의 계산을 개시하기 전에 그들의 파라미터를 업데이트하고, 역방향 패스의 끝에서 중앙집중식 파라미터 서버(101)로 새로운 파라미터를 기록한다. 그에 따라, 컴퓨팅 노드(102 내지 104)와 중앙집중식 파라미터 서버(101) 사이의 업데이트된 파라미터의 전달은 배취 입도(batch granularity)로 수행되고(즉, 업데이트된 파라미터가 송신되기 전에 모든 계층에 대해 역방향 패스가 완료됨) 트레이닝 프로세스의 중요한 경로에 있다. 노드(102 내지 104)와 파라미터 서버(101) 사이의 통신은 지점 대 지점이고 따라서, 반복 당 2개의 중요한 경로 통신을 포함하며, 이는 성능에 부정적인 영향을 미칠 수 있다. 또한, 파라미터 서버(101)의 중앙집중식 본질을 사용하는 것은 네트워크 경합을 증가시키는 경향이 있다. 게다가, 컴퓨팅 노드에서 중앙집중식 파라미터 서버(101)의 구현은 파라미터 서버가 구현되는 컴퓨팅 노드가 신경망을 트레이닝하기 위해 사용되지 않기 때문에 계산 리소스의 비효율적인 사용을 야기할 수 있다.
또한, 중앙집중식 파라미터 서버(101)를 사용하는 트레이닝 프레임워크에서, 컴퓨팅 노드(102 내지 104)는 오래된 파라미터 데이터를 사용하여 때때로 동작할 수 있다. 예를 들면, 컴퓨팅 노드(102)는 계층(LN 내지 L2)에 대한 업데이트된 파라미터를 이미 산출했을 수 있으나; 노드(103)는 역방향 패스(112)가 완료된 후까지 LN 내지 L2에 대한 업데이트된 파라미터를 수신하지 않는다. 한편, 순방향 패스(113)는 이의 출력을 산출하기 위해 LN 내지 L2에 대한 이전의 오래된 값을 계속 사용한다. 이 업데이트 레이턴시는 다수의 컴퓨팅 노드에 걸친 트레이닝 차이(training divergence)을 야기할 수 있다.
신경망 트레이닝 프레임워크의 하나의 실시형태에서, 각각의 컴퓨팅 노드는 일방적(지점 대 지점이 아닌) 집합 통신 의미론을 사용하여 다른 컴퓨팅 노드에 비동기식 파라미터 업데이트를 제공하는 그 자체의 파라미터 서버를 구현하고, 그에 의해 업데이트된 파라미터는 클러스터의 다른 모든 컴퓨팅 노드 전부에 브로드캐스팅된다. 하나의 실시형태에서, 컴퓨팅 노드에 대한 로컬 파라미터 서버는 컴퓨팅 노드에서 역방향 패스에 의해 계층 또는 계층의 서브세트에 대한 업데이트된 파라미터의 산출을 완료하는 것에 응답하여 업데이트된 파라미터를 다른 노드에 비동기적으로 송신한다. 결과적으로, 특정한 계층에 대한 업데이트된 파라미터의 전달 및 하나 이상의 후속 계층에 대한 업데이트된 파라미터의 계산이 동시에 수행될 수 있다. 이 접근법은 노드 사이의 업데이트의 전달이 단일 중앙집중식 파라미터 서버의 계산 및 통신 처리량에 의해 제한되지 않고, 오래된 데이터 사용으로부터 발생하는 차이를 또한 감소시키기 때문에 트레이닝 프레임워크의 확장성을 개선한다.
도 2는 상기 설명된 바와 같이, 신경망 트레이닝 프레임워크를 위해 다수의 컴퓨팅 노드에 걸쳐 분산된 파라미터 서버를 구현하는 컴퓨팅 시스템(200)의 일 실시형태를 도시한다. 일반적으로, 컴퓨팅 시스템(200)은 랩탑 또는 데스크탑 컴퓨터, 모바일 폰, 서버 등을 포함하지만 이들로 제한되지 않는 다수의 상이한 유형의 디바이스 중 임의의 것으로서 구현될 수 있다. 컴퓨팅 시스템(200)은 버스(201)를 통해 서로 통신하는 다수의 구성요소(202 내지 208)를 포함한다. 컴퓨팅 시스템(200)에서, 구성요소(202 내지 208)의 각각은 직접적으로 버스(201)를 통해, 또는 다른 구성요소(202 내지 208) 중 하나 이상을 통해 다른 구성요소(202 내지 208) 중 임의의 것과 통신할 수 있다. 컴퓨팅 시스템(200)의 구성요소(201 내지 208)는 랩탑 또는 데스크탑 섀시, 또는 휴대폰 케이스와 같은, 단일 물리적 케이스 내에 포함된다. 대안적인 실시형태에서, 컴퓨팅 시스템(200)의 구성요소 중 일부는 전체 컴퓨팅 시스템(200)이 단일 물리적 케이싱 내에 상주하지 않도록 주변 디바이스로서 구현된다.
컴퓨팅 시스템(200)은 사용자로부터 정보를 수신하거나 사용자에게 정보를 제공하기 위한 사용자 인터페이스 디바이스를 또한 포함한다. 구체적으로, 컴퓨팅 시스템(200)은 키보드, 마우스, 터치 스크린, 또는 사용자로부터 정보를 수신하기 위한 다른 디바이스와 같은, 입력 디바이스(202)를 포함한다. 컴퓨팅 시스템(200)은 모니터, 발광 다이오드(LED) 디스플레이, 액정 디스플레이, 또는 다른 출력 디바이스와 같은, 디스플레이(205)를 통해 사용자에게 정보를 디스플레이한다.
컴퓨팅 시스템(200)은 부가적으로, 유선 또는 무선 네트워크를 통해 데이터를 송신하고 수신하기 위한 네트워크 어댑터(207)를 포함한다. 컴퓨팅 시스템(200)은 하나 이상의 주변 디바이스(208)를 또한 포함한다. 주변 디바이스(208)는 대용량 저장 디바이스, 위치 검출 디바이스, 센서, 입력 디바이스, 또는 컴퓨팅 시스템(200)에 의해 사용된 다른 유형의 디바이스를 포함할 수 있다.
컴퓨팅 시스템(200)은 메모리 서브시스템(206)에 저장되는 명령어(206a)를 수신하고 실행하도록 구성되는 프로세서(204)를 포함한다. 메모리 서브시스템(206)은 랜덤 액세스 메모리(RAM) 모듈, 판독 전용 메모리(ROM) 모듈, 하드 디스크, 및 다른 비 일시적 컴퓨터 판독가능한 매체와 같은, 컴퓨팅 시스템(200)에 의해 사용된 메모리 디바이스를 포함한다. 하나의 실시형태에서, 메모리 서브시스템(206)은 각각이 메모리 서브시스템(206)의 메모리 영역에 대응하는 하나 이상의 메모리 보유 제어기를 구현하는 로직을 포함한다.
컴퓨팅 시스템(200)의 일부 실시형태는 도 2에 도시된 바와 같은 실시형태보다 적거나 많은 구성요소를 포함할 수 있다. 예를 들면, 특정 실시형태는 임의의 디스플레이(205) 또는 입력 디바이스(202) 없이 구현된다. 다른 실시형태는 하나보다 많은 특정한 구성요소를 갖고; 예를 들면, 컴퓨팅 시스템(200)의 일 실시형태는 다수의 프로세서(204), 네트워크 어댑터(207), 등을 가질 수 있다.
컴퓨팅 시스템(200)은 신경망 트레이닝 프레임워크가 구현되는 컴퓨팅 노드의 세트를 포함하는 컴퓨팅 노드 클러스터(209)를 또한 포함한다. 하나의 실시형태에서, 컴퓨팅 노드 클러스터(209)에서 수행되는 계산은 명령어(206a)에 의해 정의된 프로그램에 따라 동작하는 프로세서(204)에 의해 지시된다.
도 3은 컴퓨팅 노드 클러스터(209)의 일 실시형태를 도시한다. 컴퓨팅 노드 클러스터(209)는 통신 네트워크(310)를 통해 서로 연결되는 다수의 컴퓨팅 노드(301 내지 304)를 포함한다. 통신 네트워크(310)는 컴퓨팅 노드(301 내지 304)의 각각과 다른 컴퓨팅 노드(301 내지 304) 중 임의의 것 사이의 통신을 허용한다. 하나의 실시형태에서, 통신 네트워크(310)는 컴퓨팅 노드(301 내지 304)의 각각이 연결되는 단일 컴퓨터 시스템 섀시 또는 케이스 내의 내부 버스이다. 대안적으로, 컴퓨팅 노드(301 내지 304)가 동일한 섀시 또는 케이스 내에 위치되지 않는 실시형태에서, 통신 네트워크(310 내지 304)는 근거리 통신망(LAN) 또는 광역 통신망(WAN)과 같은 더 큰 네트워크로서 구현된다. 통신 네트워크는 본 명세서에서 설명된 바와 같이 컴퓨팅 노드(301 내지 304) 사이의 통신을 허용하는 다양한 통신 프로토콜 및 토폴로지의 임의의 조합을 사용하여 구현될 수 있다.
하나의 실시형태에서, 컴퓨팅 노드 클러스터(209)는 임의의 수의 컴퓨팅 노드(301 내지 304)를 포함할 수 있다. 클러스터(209)의 컴퓨팅 노드(301 내지 304)의 각각은 신경망의 그 자체의 사본(copy)을 유지하고 신경망의 상이한 서브세트의 뉴런에 대한 업데이트된 파라미터를 결정한다. 하나의 실시형태에서, 트레이닝 사례의 큰 세트는 컴퓨팅 노드(301 내지 304) 사이에서 또한 분할되어, 컴퓨팅 노드(301 내지 304)의 각각이 신경망의 그의 로컬 사본 또는 그의 로컬 사본의 뉴런의 서브세트를 트레이닝하기 위해 상이한 서브세트의 트레이닝 사례를 사용한다.
도 4는 컴퓨팅 노드 클러스터(209)의 컴퓨팅 노드(301)의 일 실시형태를 도시한다. 하나의 실시형태에서, 컴퓨팅 노드(301)는 단일 컴퓨터 케이스 또는 섀시 내에 유사한 컴퓨팅 노드(예로서, 노드(302 내지 304))와 함께 설치되는 캐리어 보드 또는 메인보드에 장착된 CPU 또는 GPU와 같은, 프로세싱 유닛(402)을 포함한다. 일 대안적인 실시형태에서, 컴퓨팅 노드(301)는 그 자체의 케이스 또는 섀시에 포함되고 LAN 또는 WAN을 통해 유사한 컴퓨팅 노드(예로서, 노드(302 내지 304))에 연결된다. 하나의 실시형태에서, 컴퓨팅 노드(301)의 프로세싱 유닛(402) 및 다른 구성요소(401 및 403 내지 405)는 버스(406)를 통해 서로 통신한다.
컴퓨팅 노드(301)는 데이터를 저장하는 메모리(403)를 또한 포함한다. 메모리(403)는 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 플래시 메모리, 등과 같은 다양한 메모리 기술 중 임의의 것을 사용하여 구현된 휘발성 및/또는 비 휘발성 메모리를 포함할 수 있다. 하나의 실시형태에서, 신경망(404)을 정의하기 위해 사용된 데이터(예로서, 변수 및 데이터 구조)는 메모리(403)에 저장된다. 메모리(403)의 이 데이터는 신경망(404)에 대한 뉴런, 뉴런 사이의 연결, 뉴런의 가중치 및 바이어스, 등을 정의한다.
컴퓨팅 노드(301)는 컴퓨팅 노드(301)가 통신 네트워크(310)를 통해 메시지를 송신하고 수신하는 것을 허용하는 통신 네트워크 인터페이스(401)를 또한 포함한다. 특히, 통신 네트워크 인터페이스(401)는 로컬 신경망(404)을 업데이트하기 위해 원격 컴퓨팅 노드(302 내지 304) 중 하나 이상으로부터 원격 파라미터를 수신한다. 하나의 실시형태에서, 원격 직접 메모리 액세스(RDMA) 또는 유사한 의미론을 가지는 프로토콜은 원격 노드(302 내지 304)가 컴퓨팅 노드(301)의 메모리(403)의 로컬 신경망 모델(404)에 업데이트된 파라미터를 직접적으로 기록하는 것을 가능하게 하기 위해 사용된다. 원격 컴퓨팅 노드로부터의 업데이트된 파라미터의 수신 시에, 통신 네트워크 인터페이스(401)는 컴퓨팅 노드(301) 또는 그의 프로세서(402)의 운영 체제를 수반하지 않고 수신된 파라미터를 메모리(403)의 신경망(404)에 직접적으로 기록한다. 컴퓨팅 노드(301)로부터 다른 컴퓨팅 노드(302 내지 304)로의 업데이트된 파라미터의 송신은 원격 직접 메모리 액세스 또는 유사한 메커니즘을 통해 운영 체제 및 프로세서(402)를 수반하지 않고 또한 달성된다.
신경망 트레이닝 프로세스 동안, 파라미터 서버(405)는 신경망(404)에 대한 업데이트된 파라미터가 원격 컴퓨팅 노드(예로서, 302 내지 304)로 송신되어야 하는지의 여부를 결정하고, 통신 네트워크 인터페이스(401)를 통해 적절하게 업데이트된 파라미터를 송신한다. 파라미터 서버(405)는 컴퓨팅 노드(301 내지 304)의 각각에서 복제되고 각각의 사례에서 유사하게 기능한다. 하나의 실시형태에서, 파라미터 서버(405)는 하드웨어 회로 모듈로서 구현되고; 대안적인 실시형태에서, 파라미터 서버(405)는 펌웨어, 소프트웨어(예로서, 프로세싱 유닛(402)에 의해 실행된 메모리(403)의 명령어에 의해 정의됨), 또는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합으로 구현된다. 하나의 실시형태에서, 파라미터 서버(405)는 리소스 활용을 최소화하도록 조정되는 컴퓨팅 노드(301 내지 304)의 각각에서 실행되는 커널로서 구현된다.
도 5는 일 실시형태에 따른, 하나의 컴퓨팅 노드로부터 클러스터의 다른 컴퓨팅 노드로의 신경망에 대한 업데이트된 파라미터의 일방적 집합 비동기식 송신을 도시하는 블록도이다. 컴퓨팅 노드(301 내지 304)는 순방향 및 역방향 패스 계산을 포함하는 역전파 기술을 사용하여 신경망을 트레이닝시킨다. 컴퓨팅 노드(301)에서, 프로세싱 유닛(402)은 트레이닝 사례에 의해 제공된 입력의 세트에 기초하여 그리고 신경망(404)에서 뉴런에 대해서 이전에 확립된 파라미터(예로서, 가중치 및 바이어스)에 기초하여 신경망에 대한 최종 출력을 산출하기 위해 신경망(404)에서 순방향 패스를 실행한다. 이전에 확립된 파라미터는 초기 세트의 파라미터, 또는 다른 컴퓨팅 노드로부터 수신된 원격 파라미터일 수 있다. 프로세싱 유닛(402)은 트레이닝 사례에 의해 제공된 입력의 세트에 기초하여 제1 계층에 대한 중간 출력을 산출하기 위해 신경망의 뉴런의 제1 계층에서 초기 또는 원격 파라미터를 사용한다. 로컬 신경망의 뉴런의 각각의 후속 계층에 대해, 프로세싱 유닛(402)은 로컬 신경망에서 적어도 하나의 선행 계층의 중간 출력에 기초하여 계층에 대한 중간 출력을 산출한다. 각각의 계층의 출력은 하나 이상의 출력 신호를 포함한다. 최종 계층의 출력은 신경망에 대한 최종 출력이다.
하나의 실시형태에서, 컴퓨팅 노드(301)는 클러스터(209)의 또 다른 컴퓨팅 노드로부터 업데이트된 원격 파라미터를 수신하는 것에 응답하여 신경망(404)의 파라미터를 비동기적으로 업데이트한다. 그에 따라, 파라미터는 순방향 패스의 실행 동안 업데이트된다. 즉, 프로세싱 유닛(402)은 원격 파라미터를 수신하기 이전에 순방향 패스의 실행을 개시하고, 신경망이 원격 파라미터로 업데이트된 후에, 새롭게 업데이트된 원격 파라미터에 기초하여 출력을 산출하기 위해 순방향 패스의 실행을 완료한다.
원격 파라미터는 컴퓨팅 노드(301)의 통신 네트워크 인터페이스(401)에서 클러스터(209)의 다른 컴퓨팅 노드(302 내지 304)로부터 수신된다. 통신 네트워크 인터페이스(401)는 원격 파라미터를 수신하는 것에 응답하여 원격 파라미터로 신경망을 비동기적으로 업데이트하고; 즉, 파라미터 업데이트의 타이밍은 수신 노드가 순방향 패스를 완료했는지 또는 송신 노드 또는 노드가 그들의 각각의 역방향 패스를 완료했는지의 여부와 무관하다. 하나의 실시형태에서, 원격 파라미터를 수신하는 것은 신경망의 업데이트로 하여금 발생하게 하기 위해 충분하다.
하나의 실시형태에서, 클러스터의 다른 컴퓨팅 노드(302 내지 304)의 각각은 유사한 방식으로 신경망의 그들의 각각의 사례에서 파라미터를 업데이트한다. 그에 따라, 각각의 컴퓨팅 노드(302 내지 304)에서, 컴퓨팅 노드의 통신 네트워크 인터페이스는 순방향 패스의 실행 동안(즉, 순방향 패스의 개시 후에 및 순방향 패스의 완료 이전에) 수신된 원격 파라미터로 신경망을 업데이트하여, 순방향 패스의 출력이 가장 최신의 파라미터를 사용하여 산출되게 한다.
하나의 실시형태에서, 컴퓨팅 노드(301)의 통신 네트워크 인터페이스(401)는 직접 메모리 기록 메커니즘을 지원하며, 이는 원격 디바이스가 컴퓨팅 노드(301)의 운영 체제 및 프로세싱 유닛(402)의 참여 없이 통신 네트워크 인터페이스(401)를 통해 로컬 메모리(403)에 직접적으로 기록하는 것을 허용한다. 통신 네트워크 인터페이스(401)는 따라서, 원격 파라미터로 신경망(404)의 그의 로컬 사본을 비동기적으로 업데이트함으로써 원격 컴퓨팅 노드로부터 업데이트된 파라미터를 수신하는 것에 응답한다. 이것은 신경망(404) 파라미터가 저장되는 로컬 메모리(403)의 위치에 원격 파라미터를 저장하기 위해 직접 메모리 기록을 수행하는 것을 수반한다.
컴퓨팅 노드(301)에서 순방향 패스를 계산한 후에, 프로세싱 유닛(402)은 신경망에 대한 업데이트된 파라미터(501)를 결정하기 위해 로컬 신경망(404)에서 역방향 패스를 실행한다. 프로세싱 유닛(402)은 로컬 신경망(404)의 각각의 계층에 대해, 순방향 패스로부터 결정된 최종 출력과 순방향 패스를 통해 최종 출력을 생성하기 위해 사용된 트레이닝 사례에 대한 원하는 출력 사이의 오차에 기초하여 계층에 대한 업데이트된 파라미터의 세트를 산출함으로써 역방향 패스를 실행한다. 역방향 패스의 실행 동안, 컴퓨팅 노드(301)는 임의의 중간 디바이스(예로서, 중앙집중식 파라미터 서버)를 통해 업데이트된 파라미터를 송신하기보다, 다른 컴퓨팅 노드(302 내지 304)로의 직접적으로 업데이트된 파라미터(501)의 세분화된 전달을 수행한다.
하나의 실시형태에서, 업데이트된 파라미터(501)는 전체 역방향 패스의 완료 이전에, 각각의 계층에 대한 파라미터가 역방향 패스에 의해 산출되기 때문에 파라미터 서버(405)에 의해 다른 컴퓨팅 노드(302 내지 304)의 파라미터 서버(415 내지 425)로 송신된다. 예를 들면, 업데이트된 파라미터(501)의 송신은 역방향 패스의 계층 또는 계층의 서브세트의 완료에 응답하여 역방향 패스의 실행 동안 수행될 수 있다. 전체 역방향 패스가 완료되기 전에 업데이트된 파라미터(501)가 송신되기 때문에, 파라미터(501)는 전체 역방향 패스에 의해 산출된 파라미터(예로서, 하나의 계층의 뉴런 또는 계층의 서브세트의 뉴런에 대한 파라미터)의 서브세트를 표현한다.
프로세싱 유닛(402)은 신경망(404)에서 계층의 서브세트(계층(LN' 내지 L2')을 포함함)에 대한 계산을 포함하는 역방향 패스의 세그먼트(502)를 실행하는 것으로부터 업데이트된 파라미터(501)의 서브세트를 생성한다. 하나의 실시형태에서, 세그먼트(502)는 도 5에 도시된 바와 같이, 신경망(404)의 다수의 계층을 포함한다. 대안적인 실시형태에서, 세그먼트(502)는 단일 계층만 포함한다. 그에 따라, 업데이트된 파라미터(501)는 다수의 계층의 또는 단일 계층의 뉴런에 대한 파라미터를 포함할 수 있다.
하나의 실시형태에서, 파라미터 서버(405)는 역방향 패스의 실행 시에 매 n번째 계층의 완료에 응답하여 업데이트된 파라미터의 서브세트를 송신한다. 예를 들면, 역방향 패스의 세그먼트(502)는 n개의 계층을 포함하고, 업데이트된 파라미터(501)의 서브세트는 세그먼트(502)의 완료 후에 송신되며 n개의 계층의 뉴런에 대한 파라미터를 포함한다. 파라미터 서버(405)는 네트워크 조건, 컴퓨팅 리소스 활용, 또는 다른 인자에 응답하여 역방향 패스의 실행 동안 n을 또한 조정할 수 있다. 하나의 실시형태에서, 파라미터 서버(405)는 업데이트된 파라미터(501)가 계층에 대한 대응하는 이전 파라미터(즉, 역방향 패스의 이전 반복으로부터 산출됨)와 상이한지의 여부를 결정하고 파라미터가 변경되지 않은 경우 임의의 업데이트된 파라미터(501)를 송신하지 않는다.
업데이트된 파라미터의 송신은 프로세싱 유닛(402)이 신경망의 n개의 계층에서 뉴런에 대한 업데이트된 파라미터를 결정하는 것에 응답하여 역방향 패스의 실행 동안 비동기적으로 파라미터 서버(405)에 의해 수행된다. 즉, 송신의 타이밍은 컴퓨팅 노드(301)에서 임의의 특정한 역방향 패스 또는 순방향 패스가 시작되었거나 완료되었는지 여부와 무관하다. 이 파라미터 업데이트 메커니즘은 이전 세그먼트(502)로부터 산출된 업데이트된 파라미터(501)가 송신되고 있는 동안 프로세싱 유닛(402)이 역방향 패스의 다음 세그먼트(505)를 계속 실행하는 것을 또한 허용한다.
게다가, 업데이트된 파라미터(501)를 수신하는 컴퓨팅 노드(302 내지 304)는 업데이트된 파라미터(501)가 수신된 후에 실행가능한 한 신경망의 그들의 각각의 사본의 즉시 업데이트(eager update)를 수행한다. 하나의 실시형태에서, 이것은 업데이트된 파라미터(501)를 노드(302 내지 304)의 메모리에 직접 메모리 기록함으로써 달성된다. 컴퓨팅 노드(302 및 304)에서 각각 실행되는 순방향 패스 세그먼트(503 및 504)는 노드(301)에서 완료하기 위해 전체 역방향 패스를 기다리지 않고 역방향 패스 세그먼트(502)에 의해 산출된 가장 최근의 파라미터(예로서, 뉴런 가중치 및 바이어스)에 기초하여 출력을 산출할 수 있다. 예를 들면, 역방향 패스 세그먼트(502)에 의해 결정된 바와 같은 계층(L2)에 대한 업데이트된 가중치는 심지어 노드(301)에서 역방향 패스가 완료되기 전에 순방향 패스 세그먼트(503 및 504)에 의해 사용된다.
비동기식 파라미터 업데이트는 상이한 컴퓨팅 노드가 상이한 트레이닝 사례를 동시에 프로세싱하는 것을 허용한다. 예를 들면, 컴퓨팅 노드(301 내지 304)가 각각의 노드에서 동일한 세트의 트레이닝 사례를 사용하여 신경망을 트레이닝하기 위해 사용될 때, 노드(301 내지 304)의 각각은 동일하거나 상이한 트레이닝 사례에 대해 임의의 주어진 시간에 순방향 패스 또는 역방향 패스를 수행할 수 있다. 도 5에 도시된 바와 같이, 컴퓨팅 노드(301)는 컴퓨팅 노드(302 및 304)가 순방향 패스(세그먼트(503 및 504)를 각각 포함함)를 실행하는 동안 역방향 패스(세그먼트(502) 포함함)를 실행한다. 컴퓨팅 노드(301)에서의 순방향 패스는 컴퓨팅 노드(302 내지 304) 중 하나 이상에 대한 역방향 패스의 실행과 동시에 또한 실행될 수 있다.
도 6은 일 실시형태에 따른, 신경망을 트레이닝하기 위한 프로세스(600)를 도시하는 흐름도이다. 트레이닝 프로세스(600)는 컴퓨팅 노드 클러스터(209)의 컴퓨팅 노드(301 내지 304)의 각각에서 유사하게 수행된다. 도 6에서, 프로세스를 수행하는 컴퓨팅 노드(예로서, 컴퓨팅 노드(301))는 로컬 컴퓨팅 노드로서 언급되는 반면, 클러스터(209)의 다른 노드(예로서, 컴퓨팅 노드(302 내지 304))는 원격 컴퓨팅 노드로서 언급된다. 로컬 컴퓨팅 노드 및 원격 컴퓨팅 노드의 각각은 프로세스(600)의 특정한 부분을 동시에 또는 상이한 시간에 수행할 수 있다.
프로세스(600)는 블록(601)에서 시작한다. 블록(601)에서, 프로세싱 로직(402)은 컴퓨팅 노드(301)의 로컬 신경망(404)에 대한 순방향 패스의 실행을 개시한다. 순방향 패스는 트레이닝 사례에 의해 제공된 바와 같은 입력을 수용하고 제공된 입력에 기초하여 출력을 생성하기 위해 신경망(404)을 사용한다.
블록(603)에서, 컴퓨팅 노드(301)는 원격 파라미터가 원격 컴퓨팅 노드(302 내지 304) 중 하나 이상으로부터 수신되었는지의 여부를 결정한다. 원격 파라미터는 원격 컴퓨팅 노드에서 역방향 패스의 실행으로부터 생성된 업데이트된 파라미터이고 통신 네트워크(310)를 통해 로컬 컴퓨팅 노드(301)로 송신된다. 원격 파라미터는 통신 네트워크 인터페이스(401)에서 로컬 컴퓨팅 노드(301)에 의해 수신된다. 블록(603)에서, 원격 파라미터가 수신되지 않았다면, 프로세스(600)는 블록(607)에서 계속되며, 프로세싱 유닛(402)은 신경망에 대한 기존의 파라미터를 사용하여 순방향 패스의 실행을 계속한다. 블록(603)에서, 원격 파라미터가 수신되었다면, 프로세스(600)은 블록(605)에서 계속된다.
블록(605)에서, 원격 파라미터를 수신하는 것에 응답하여, 컴퓨팅 노드(301)는 원격 파라미터로 신경망의 그의 사본을 업데이트한다. 하나의 실시형태에서, 통신 네트워크 인터페이스(401)는 신경망(404) 파라미터가 저장되는 로컬 메모리(403)에 원격 파라미터의 직접 메모리 기록을 수행하기 위한 논리 회로를 포함한다. 그에 따라, 통신 네트워크 인터페이스(401)는 수신된 원격 파라미터를 대응하는 신경망 파라미터가 저장되는 메모리(403)의 메모리 위치에 직접적으로 기록함으로써 로컬 신경망(404)을 업데이트한다. 하나의 실시형태에서, 신경망(404)은 원격 파라미터를 수신하는 것에 응답하여 수신된 원격 파라미터로 비동기적으로 업데이트되어, 진행중인 순방향 패스가 업데이트된 파라미터를 사용하게 한다. 그에 따라, 컴퓨팅 노드(301)는 다른 컴퓨팅 노드(302 내지 304)로부터 원격 파라미터를 수신하고 그에 따라 순방향 패스의 실행 동안 임의의 시간에 로컬 신경망(404)의 파라미터를 업데이트한다.
블록(607)에서, 원격 파라미터로 신경망(404)을 업데이트한 후에, 프로세싱 유닛(402)은 원격 파라미터에 기초하여 트레이닝 사례에 대한 출력을 산출하기 위해 순방향 패스의 실행을 계속한다. 예를 들면, 원격 파라미터는 신경망의 뉴런에서 가중치 및/또는 바이어스로서 사용될 수 있으며, 여기서 가중치 및/또는 바이어스는 순방향 패스로부터 생성된 출력에 영향을 준다.
블록(609)에서, 순방향 패스가 완료되지 않으면(즉, 신경망의 모든 계층에 대해 계산이 수행되지 않음), 프로세스(600)은 블록(603)으로 리턴한다. 그에 따라, 프로세싱 유닛(402)은 순방향 패스가 블록(609)에서 완료될 때까지 임의의 수신된 원격 파라미터(블록(603 내지 605)에서 제공된 바와 같은)에 따라 신경망에서 파라미터를 업데이트하면서 순방향 패스를 실행한다(블록(607)에서 제공됨). 순방향 패스가 완료될 때, 프로세스(600)는 블록(611)에서 계속된다.
블록(611)에서, 프로세싱 유닛(402)은 컴퓨팅 노드(301)에서 역방향 패스의 실행을 개시한다. 역방향 패스 동안, 프로세싱 유닛(402)은 트레이닝 사례에 대한 원하는 출력과 순방향 패스에 의해 생성된 최종 출력 사이의 차를 결정하고 그 다음, 오차에 대한 각각의 뉴런의 기여를 결정하기 위해 이 오차를 신경망의 계층을 통해 역방향 시퀀스로 전파한다. 각각의 뉴런에 대한 파라미터는 그들의 각각의 기여에 기초하여 오차를 감소하기 위해 조정된다. 역방향 패스 계산은 따라서, 신경망에 대한 업데이트된 파라미터의 세트를 결정한다.
블록(613)에서, 역방향 패스의 세그먼트(502)가 신경망(404)의 뉴런의 계층의 서브세트에 대해 수행되고; 그에 따라, 업데이트된 파라미터의 대응하는 서브세트가 결정된다. 하나의 실시형태에서, 계층의 서브세트는 단지 하나의 계층을 포함하고; 대안적으로, 계층의 서브세트는 (예로서, 도 5에 도시된 바와 같이) 신경망(404)에서 하나보다 많은 계층 및 모든 계층보다 적은 계층을 포함한다.
블록(615)에서, 파라미터 서버(405)는 블록(613)으로부터 결정된 업데이트된 파라미터의 서브세트를 원격 컴퓨팅 노드(302 내지 304)로 송신한다. 하나의 실시형태에서, 파라미터 서버(405)는 역방향 패스에 의해 변경되지 않는 파라미터를 송신하는 것을 회피한다. 그에 따라, 파라미터 서버(405)는 하나 이상의 계층의 서브세트에 대한 업데이트된 파라미터의 서브세트가 서브세트에 대한 대응하는 이전 파라미터의 세트와 상이하다고 결정하는 것에 응답하여 업데이트된 파라미터(501)를 송신한다. 하나의 실시형태에서, 파라미터 서버(405)는 대응하는 이전 파라미터와 관련하여 변경된 파라미터를 단지 송신하고, 여기서 대응하는 이전 파라미터는 진행중인 역방향 패스 이전에 가장 최근의 순방향 패스 동안 동일한 뉴런에 대해 사용된 가장 최근에 사용된 파라미터 값이다.
업데이트된 파라미터(501)의 서브세트의 송신은 역방향 패스의 세그먼트(502)에서 계층의 서브세트에 대한 업데이트된 파라미터(501)를 결정하는 것에 응답하여 역방향 패스의 실행 동안 비동기적으로 수행된다. 하나의 실시형태에서, 세그먼트(502)는 세그먼트(502)의 마지막 계층의 완료에 응답하여 업데이트된 파라미터(501)가 비동기적으로 송신되도록 다수의 계층(LN' 내지 L2')을 포함한다. 일 대안적인 실시형태에서, 역방향 패스의 세그먼트(502)는 업데이트된 파라미터(501)의 서브세트가 단일 계층에 대한 업데이트된 파라미터(501)를 결정하는 것에 응답하여 역방향 패스의 실행 동안 비동기적으로 송신되도록, 단지 단일 계층을 포함한다.
블록(617)에서, 역방향 패스가 완료되지 않으면(즉, 역방향 패스가 아직 신경망의 모든 계층을 횡단하지 않음), 프로세스(600)은 블록(613)으로 리턴한다. 블록(613)에서, 프로세싱 유닛(402)은 아직 프로세싱되지 않은 계층에 대한 역방향 패스의 실행을 계속한다. 하나의 실시형태에서, 블록(615)에서 제공된 바와 같이, 업데이트된 파라미터(501)의 서브세트를 송신하는 것은 블록(613)에서 제공된 바와 같이 로컬 신경망에서 하나 이상의 후속 계층에 대한 역방향 패스의 계속 실행과 동시에 수행된다.
블록(613 내지 617)은 따라서, 역방향 패스가 완료될 때까지 반복된다. 하나의 실시형태에서, 역방향 패스는 각각이 신경망에서 계층의 상이한 서브세트를 횡단하는 다수의 세그먼트를 포함한다. 그에 따라, 업데이트된 파라미터(501)의 서브세트는 역방향 패스의 실행 시에 각각의 세그먼트의 완료에 응답하여 송신된 파라미터의 다수의 서브세트 중 하나이다. 하나의 실시형태에서, 각각의 세그먼트는 n개의 계층을 횡단하고 업데이트된 파라미터의 각각의 서브세트는 그에 따라, n개의 계층에 대한 파라미터를 포함한다. 일부 실시형태에서, n의 값은 네트워크 조건, 컴퓨팅 리소스 활용, 또는 다른 인자에 응답하여 역방향 패스의 실행 동안 동적으로 조정된다. 블록(617)에서, 역방향 패스가 완료되면, 프로세스(600)는 다음 후속 순방향 패스를 개시하기 위해 블록(601)으로 리턴한다.
하나의 실시형태에서, 역방향 패스의 실행 동안 다른 노드(302 내지 304)로부터 수신된 원격 파라미터 업데이트는 순방향 패스가 시작될 때까지 큐잉(queuing)된다. 따라서, 블록(601)에서 순방향 패스를 개시하기 이전에, 신경망(404)은 큐잉된 원격 파라미터로 업데이트된다. 대안적으로, 역방향 패스의 실행 동안 수신된 원격 파라미터는 역방향 패스의 실행 동안(즉, 역방향 패스가 완료되기 전에) 신경망을 업데이트하기 위해 사용될 수 있다. 하나의 실시형태에서, 신경망(404)은 임의의 원격 파라미터가 블록(603 및 605)에서 제공되는 것과 유사한 프로세스에 의해 로컬 메모리(403)에 직접 메모리 기록을 통해 수신될 때 역방향 패스(블록(611 내지 617)에서)의 실행 동안 수신된 임의의 원격 파라미터로 업데이트된다.
다른 컴퓨팅 노드(302 내지 304)의 각각은 컴퓨팅 노드(301)와 유사한 구성요소를 포함하고; 그에 따라, 이들 노드의 각각은 프로세스(600)와 유사한 프로세스를 또한 수행한다. 하나의 실시형태에서, 컴퓨팅 노드(301 내지 304)의 각각은 동일한 신경망의 상이한 부분에 대한 파라미터를 산출하기 위해, 순방향 패스 및 역방향 패스를 포함하는 유사한 역전파 프로세스를 수행한다. 특히, 컴퓨팅 노드(301 내지 304)의 각각은 신경망의 그 자체의 사본을 저장하고 신경망의 뉴런의 상이한 서브세트에 대한 파라미터를 계산한다. 하나의 실시형태에서, 신경망의 각각의 뉴런은 뉴런의 이들 서브세트 중 단지 하나에 포함된다. 예를 들면, 노드(301)는 노드(302)가 뉴런의 제2 서브세트에 대한 파라미터를 산출하는 동안, 뉴런의 제1 서브세트에 대한 파라미터를 산출할 수 있고, 여기서 뉴런의 제1 서브세트와 뉴런의 제2 서브세트는 상호 배타적인 세트이다. 일 대안적인 실시형태에서, 신경망의 각각의 뉴런은 뉴런의 서브세트 중 하나보다 많은 서브세트에 포함된다. 각각의 컴퓨팅 노드(301 내지 304)는 그 자체의 계산에 기초하고 다른 컴퓨팅 노드로부터 수신된 업데이트된 파라미터에 기초하여 신경망의 그 자체의 사본의 파라미터를 업데이트한다.
컴퓨팅 노드(301)를 로컬 컴퓨팅 노드로서 고려하면, 원격 컴퓨팅 노드(302 내지 304)는 뉴런의 상이한 서브세트에 대한 파라미터를 산출하기 위해 프로세스(600)를 각각 또한 수행한다. 노드(301 내지 304) 중 임의의 것에서 역방향 패스 및 순방향 패스가 실행되는 시간은 다른 노드에서 역방향 및 순방향 패스의 실행 시간과 무관하다.
그에 따라, 로컬 컴퓨팅 노드(301)의 역방향 패스는 원격 컴퓨팅 노드(302 내지 304) 중 하나 이상에서 순방향 패스와 동시에 실행될 수 있어서 로컬 역방향 패스 동안 로컬 컴퓨팅 노드(301)에 의해 송신된 업데이트된 파라미터가 그들의 각각의 순방향 패스 동안 원격 컴퓨팅 노드(302 내지 304)에서 신경망의 원격 사본을 업데이트하기 위해 사용되게 한다. 원격 컴퓨팅 노드(302 내지 304)의 각각은 그 자체의 버전의 블록(603)을 실행하고, 로컬 컴퓨팅 노드(301)로부터 업데이트된 파라미터(501)의 서브세트를 수신하는 것에 응답하여, 블록(605)에서 유사하게 제공된 바와 같이, 수신된 파라미터(501)로 신경망의 그의 사본을 업데이트한다. 하나의 실시형태에서, 각각의 원격 컴퓨팅 노드에서 수신된 파라미터(501)는 파라미터가 원격 컴퓨팅 노드에서 산출되는 뉴런의 세트와 상호 배타적인 뉴런의 서브세트에 대한 것이다. 각각의 원격 컴퓨팅 노드(302 내지 304)는 원격 컴퓨팅 노드에 저장된 신경망의 그들의 각각의 사본에서 업데이트된 바와 같이 업데이트된 파라미터(501)에 기초하여 그 자신의 원격 순방향 패스를 완료한다.
원격 컴퓨팅 노드(302 내지 304)(블록(611 내지 617)과 유사함) 중 하나 이상에서의 역방향 패스는 로컬 컴퓨팅 노드(301)의 로컬 신경망(404)에서 순방향 패스의 실행과 동시에 실행될 수 있다. 이 경우에, 원격 역방향 패스로부터 결정된 업데이트된 파라미터는 로컬 컴퓨팅 노드(301)로 송신되고 로컬 순방향 패스의 실행 동안 로컬 신경망(404)을 업데이트하기 위해 사용된다. 원격 컴퓨팅 노드(302 내지 304)의 각각은 뉴런의 그의 할당된 서브세트에 대한 업데이트된 파라미터를 결정하기 위해 신경망의 그 자체의 사본에서 원격 역방향 패스를 실행한다.
컴퓨팅 노드(301 내지 304)의 각각에서 트레이닝 프로세스(600)의 동작에 의해, 각각의 컴퓨팅 노드는 업데이트된 파라미터가 그들이 결정될 때 미세한 입도로 비동기적으로 송신되는 역방향 패스를 수행하고, 신경망의 파라미터가 그들이 수신될 때 순방향 패스의 실행 동안 비동기적으로 업데이트되는 순방향 패스를 수행한다. 이 접근법을 사용하면, 하나의 컴퓨팅 노드에서 업데이트된 파라미터를 결정하는 것과 또 다른 컴퓨팅 노드에서 파라미터를 업데이트하는 것 사이의 지연이 최소화된다. 업데이트의 미세한 입도 및 업데이트 메시지의 결과적인 더 작은 크기는 네트워크 부하가 시간에 걸쳐 더 균등하게 분산될 수 있기 때문에 네트워크 정체의 가능성을 감소시킨다. 게다가, 메시지 및 업데이트의 비동기식 본성으로 인해, 업데이트 메시지의 성공적인 전송 및 수신은 트레이닝 프로세스에 대해 중요한 경로에 있지 않다. 전체적으로, 이것은 이용가능한 네트워크 및 컴퓨팅 리소스를 더 효율적으로 활용하면서, 트레이닝 프로세스에서 더 빠른 수렴을 야기한다.
신경망(404)을 트레이닝하는 방법(600)은 로컬 컴퓨팅 노드(301)에서, 하나 이상의 원격 컴퓨팅 노드(302 내지 304)의 세트로부터 원격 파라미터를 수신하는 단계, 원격 파라미터에 기초하여 출력을 결정하기 위해 로컬 컴퓨팅 노드(301)의 로컬 신경망(404)에서 순방향 패스의 실행을 개시하는 단계, 로컬 신경망(404)에 대한 업데이트된 파라미터(501)를 결정하기 위해 로컬 신경망(404)에서 역방향 패스의 실행을 개시하는 단계, 및 역방향 패스의 완료 이전에, 업데이트된 파라미터(501)를 원격 컴퓨팅 노드(302 내지 304)의 세트로 송신하는 단계를 포함한다.
방법(600)에서, 역방향 패스의 실행은 로컬 신경망(404)의 제1 계층에 대한 업데이트된 파라미터(501)의 서브세트를 산출하는 단계를 포함하고, 업데이트된 파라미터(501)의 서브세트를 송신하는 단계는 계층에 대한 업데이트된 파라미터(501)의 서브세트가 계층에 대한 대응하는 이전 파라미터의 세트와 상이하다고 결정하는 것에 응답하여 수행된다.
방법(600)에서, 역방향 패스의 실행은 로컬 신경망(404)의 제1 계층에 대한 업데이트된 파라미터(501)의 서브세트를 산출하는 단계를 포함하고, 여기서 업데이트된 파라미터(501)의 서브세트를 송신하는 단계는 로컬 신경망(404)의 하나 이상의 후속 계층에 대해 역방향 패스를 실행하는 것과 동시에 수행된다.
방법(600)에서, 업데이트된 파라미터(501)의 서브세트는 역방향 패스의 실행 시에 매 n번째 계층의 완료에 응답하여 송신된 업데이트된 파라미터(501)의 복수의 서브세트 중 하나이고, 여기서 방법(600)은 역방향 패스의 실행 동안 n의 값을 동적으로 조정하는 단계를 더 포함한다.
방법(600)에서, 순방향 패스의 실행을 개시하는 단계는 원격 파라미터의 수신 이전에 발생하고, 방법(600)은 원격 파라미터로 로컬 신경망(404)을 업데이트하는 단계, 및 원격 파라미터에 기초한 출력을 산출하기 위해 순방향 패스의 실행을 완료하는 단계를 더 포함한다.
방법(600)은 원격 파라미터를 수신하는 것에 응답하여 원격 파라미터로 로컬 신경망(404)을 비동기적으로 업데이트하는 단계를 더 포함하고, 여기서 업데이트된 파라미터(501)의 서브세트를 송신하는 단계는 신경망(404)의 복수의 계층 중 하나에 대한 업데이트된 파라미터(501)를 결정하는 것에 응답하여 역방향 패스의 실행 동안 비동기적으로 수행된다.
방법(600)은 원격 파라미터를 수신하는 것에 응답하여, 로컬 컴퓨팅 노드(301)의 로컬 메모리(403)에 원격 파라미터의 직접 메모리 기록을 수행함으로써 원격 파라미터로 로컬 신경망(404)을 업데이트하는 단계를 더 포함한다.
방법(600)에서, 업데이트된 파라미터(501)는 로컬 신경망(404)의 뉴런의 제1 서브세트에 대해 결정되고, 방법(600)은 원격 파라미터로 로컬 신경망(404)의 뉴런의 제2 서브세트를 업데이트하는 단계를 더 포함하며, 여기서 뉴런의 제1 서브세트와 뉴런의 제2 서브세트는 상호 배타적이다.
방법(600)은 원격 컴퓨팅 노드(302 내지 304)의 세트의 각각의 원격 컴퓨팅 노드에 대해, 원격 컴퓨팅 노드에서, 업데이트된 파라미터(501)에 기초하여 로컬 컴퓨팅 노드(301)로부터 업데이트된 파라미터(501)의 서브세트를 수신하는 단계, 원격 컴퓨팅 노드에 저장된 로컬 신경망(404)의 사본에서 원격 순방향 패스를 실행하는 단계, 로컬 신경망(404)의 사본에서 원격 역방향 패스의 실행 동안 원격 파라미터를 결정하는 단계, 및 원격 역방향 패스를 완료하기 이전에, 원격 컴퓨팅 노드로부터 로컬 컴퓨팅 노드(301)로 원격 파라미터를 송신하는 단계를 더 포함한다.
방법(600)은 한 세트의 원격 컴퓨팅 노드(302 내지 304) 중 적어도 하나에서 원격 역방향 패스를 실행하는 것과 동시에 로컬 신경망(404)에서 순방향 패스를 실행하는 단계를 더 포함한다.
컴퓨팅 노드(301)는 하나 이상의 원격 컴퓨팅 노드(302 내지 304)의 세트로부터 원격 파라미터를 수신하도록 구성된 통신 네트워크 인터페이스(401), 원격 파라미터에 기초하여 출력을 산출하기 위해 신경망(404)에서 순방향 패스를 실행하고 신경망(404)에 대한 업데이트된 파라미터(501)를 결정하기 위해 신경망(404)에서 역방향 패스를 실행하도록 구성된 프로세싱 유닛(402), 및 프로세싱 유닛(402)과 결합되고 역방향 패스의 완료 이전에, 원격 컴퓨팅 노드(302 내지 304)의 세트로 업데이트된 파라미터(501)의 서브세트를 송신하도록 구성된 파라미터 서버(405)를 포함한다.
컴퓨팅 노드(301)에서, 프로세싱 유닛(402)은 신경망(404)의 계층에 대해 업데이트된 파라미터(501)의 서브세트를 산출함으로써 역방향 패스를 실행하도록 더 구성되고, 파라미터 서버(405)는 업데이트된 파라미터(501)의 서브세트가 계층에 대한 대응하는 이전 파라미터의 세트와 상이하다고 결정하는 것에 응답하여 업데이트된 파라미터(501)의 서브세트를 송신하도록 더 구성된다.
컴퓨팅 노드(301)에서, 파라미터 서버(405)는 역방향 패스의 실행 시에 매 n번째 계층의 완료에 응답하여 업데이트된 파라미터(501)의 복수의 서브세트 중 하나 이상을 송신하도록 구성되고, 프로세싱 유닛(402)은 역방향 패스의 실행 동안 n의 값을 동적으로 조정하도록 더 구성된다.
컴퓨팅 노드(301)는 통신 네트워크 인터페이스(401)와 결합된 메모리(403)를 더 포함하고, 여기서 통신 네트워크 인터페이스(401)는 직접 메모리 기록을 통해 메모리(403)에 원격 파라미터를 저장함으로써 신경망(404)을 업데이트하도록 더 구성되며, 여기서 프로세싱 유닛(402)은 원격 파라미터의 수신 이전에 순방향 패스의 실행을 개시하고, 원격 파라미터로 신경망(404)을 업데이트한 후에 원격 파라미터에 기초하여 출력을 산출하기 위해 순방향 패스의 실행을 완료하도록 더 구성된다.
컴퓨팅 노드(301)에서, 통신 네트워크 인터페이스(401)는 원격 파라미터를 수신하는 것에 응답하여 원격 파라미터로 신경망(404)을 비동기적으로 업데이트하도록 더 구성되고, 파라미터 서버(405)는 신경망(404)의 복수의 계층 중 하나에 대한 업데이트된 파라미터(501)를 결정하는 것에 응답하여 역방향 패스의 실행 동안 업데이트된 파라미터(501)의 서브세트를 비동기적으로 송신하도록 더 구성된다.
컴퓨팅 시스템(200)은 통신 네트워크(310), 및 통신 네트워크(310)와 결합된 복수의 컴퓨팅 노드(301 내지 304)를 포함하고, 여기서 복수의 컴퓨팅 노드(301 내지 304)의 각각의 컴퓨팅 노드는 복수의 컴퓨팅 노드(301 내지 304) 중 다른 컴퓨팅 노드로부터 원격 파라미터를 수신하도록 구성된 통신 네트워크 인터페이스(401), 원격 파라미터에 기초하여 출력을 산출하기 위해 신경망(404)에서 순방향 패스를 실행하고 신경망(404)에 대한 업데이트된 파라미터(501)를 결정하기 위해 신경망(404)에서 역방향 패스를 실행하도록 구성된 프로세싱 유닛(402), 및 프로세싱 유닛(402)과 결합되고 역방향 패스의 완료 이전에, 업데이트된 파라미터(501)의 서브세트를 다른 컴퓨팅 노드로 송신하도록 구성된 파라미터 서버(405)를 포함한다.
컴퓨팅 시스템(200)에서, 복수의 컴퓨팅 노드(301 내지 304) 중 제1 컴퓨팅 노드에 대한 순방향 패스는 복수의 컴퓨팅 노드(301 내지 304) 중 제2 컴퓨팅 노드에 대한 역방향 패스의 실행과 동시에 실행된다.
컴퓨팅 시스템(200)에서, 복수의 컴퓨팅 노드(301 내지 304)의 각각의 컴퓨팅 노드는 신경망(404)의 뉴런의 상이한 서브세트에 대한 업데이트된 파라미터(501)를 결정하도록 구성된다.
컴퓨팅 시스템(200)에서, 복수의 컴퓨팅 노드(301 내지 304)의 각각의 컴퓨팅 노드에 대해, 컴퓨팅 노드의 통신 네트워크 인터페이스(401)는 순방향 패스의 개시 후에 및 순방향 패스의 완료 이전에 원격 파라미터로 신경망(404)을 업데이트하도록 더 구성된다.
컴퓨팅 시스템(200)에서, 복수의 컴퓨팅 노드(301 내지 304)의 각각의 컴퓨팅 노드에 대해, 컴퓨팅 노드의 통신 네트워크 인터페이스(401)는 원격 파라미터를 수신하는 것에 응답하여, 로컬 컴퓨팅 노드(301)의 로컬 메모리(403)에 원격 파라미터의 직접 메모리 기록을 수행함으로써 원격 파라미터로 신경망(404)을 비동기적으로 업데이트하도록 더 구성되고, 컴퓨팅 노드의 파라미터 서버(405)는 역방향 패스의 실행 동안, 프로세싱 유닛(402)이 신경망(404)의 복수의 계층 중 하나에 대한 업데이트된 파라미터(501)를 결정하는 것에 응답하여 업데이트된 파라미터(501)의 서브세트를 비동기적으로 송신하도록 더 구성된다.
본 명세서에서 사용된 바와 같이, 용어 "~에 결합된"은 하나 이상의 개재 구성요소를 통해 직접적으로 또는 간접적으로 결합됨을 의미할 수 있다. 본 명세서에서 설명된 다양한 버스를 통해 제공된 신호 중 임의의 것은 다른 신호와 시간 다중화되고 하나 이상의 공통 버스를 통해 제공될 수 있다. 부가적으로, 회로 구성요소 또는 블록 사이의 상호연결은 버스로서 또는 단일 신호 라인으로서 도시될 수 있다. 버스의 각각은 대안적으로, 하나 이상의 단일 신호 라인일 수 있고 단일 신호 라인의 각각은 대안적으로 버스일 수 있다.
특정 실시형태는 비 일시적 컴퓨터 판독가능한 매체에 저장된 명령어를 포함할 수 있는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 이들 명령어는 설명된 동작을 수행하기 위해 범용 또는 특수 목적 프로세서를 프로그래밍하기 위해 사용될 수 있다. 컴퓨터 판독가능한 매체는 기계(예로서, 컴퓨터)에 의해 판독가능한 형태(예로서, 소프트웨어, 프로세싱 애플리케이션)로 정보를 저장하거나 송신하기 위한 임의의 메커니즘을 포함한다. 비 일시적 컴퓨터 판독가능한 저장 매체는 자기 저장 매체(예로서, 플로피 디스켓); 광학 저장 매체(예로서, CD-ROM); 광 자기 저장 매체; 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 소거가능한 프로그래밍가능한 메모리(예로서, EPROM 및 EEPROM); 플래시 메모리, 또는 전자 명령어를 저장하기 위해 적합한 또 다른 유형의 매체를 포함할 수 있지만, 이들로 제한되지 않는다.
부가적으로, 일부 실시형태는 컴퓨터 판독가능한 매체가 하나보다 많은 컴퓨터 시스템에 저장하고/하거나 그에 의해 실행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 게다가, 컴퓨터 시스템 사이에 전송된 정보는 컴퓨터 시스템을 연결하는 송신 매체에 걸쳐 검색되거나 밀어 넣어질 수 있다.
일반적으로, 컴퓨터 판독가능한 저장 매체에 운반된 컴퓨팅 시스템(200) 및/또는 그의 부분을 표현하는 데이터 구조는 프로그램에 의해 판독되고 컴퓨팅 시스템(200)을 포함하는 하드웨어를 제작하기 위해 직접적으로 또는 간접적으로 사용될 수 있는 데이터베이스 또는 다른 데이터 구조일 수 있다. 예를 들면, 데이터 구조는 베릴로그(Verilog) 또는 VHDL과 같은 고 레벨 설계 언어(HDL)로 기록된 하드웨어 기능의 거동 레벨 설명 또는 레지스터 전송 레벨(RTL) 설명일 수 있다. 설명은 통합 라이브러리로부터의 게이트의 목록을 포함하는 넷리스트를 생성하기 위해 설명을 통합할 수 있는 통합 도구에 의해 판독될 수 있다. 넷리스트는 컴퓨팅 시스템(200)을 포함하는 하드웨어의 기능을 또한 표현하는 게이트의 세트를 포함한다. 넷리스트는 그 다음, 마스크에 적용될 기하학적 형상을 설명하는 데이터 세트를 생성하기 위해 배치되고 라우팅될 수 있다. 마스크는 그 다음, 컴퓨팅 시스템(200)에 대응하는 반도체 회로 또는 회로들을 생성하기 위해 다양한 반도체 제작 단계에서 사용될 수 있다. 대안적으로, 컴퓨터 판독가능한 저장 매체의 데이터베이스는 (통합 라이브러리를 갖는 또는 갖지 않는) 넷리스트 또는 원하는 대로 데이터 세트, 또는 그래픽 데이터 시스템(GDS) II 데이터일 수 있다.
본 명세서에서의 방법(들)의 동작이 특정한 순서로 도시되고 설명될지라도, 각각의 방법의 동작의 순서가 변경될 수 있어서 특정 동작이 역순으로 수행될 수 있게 하거나 특정 동작이 적어도 부분적으로, 다른 동작과 동시에 수행될 수 있게 한다. 또 다른 실시형태에서, 별개의 동작의 명령어 또는 서브 동작은 간헐적 및/또는 교번 방식일 수 있다.
상기 명세서에서, 실시형태는 그의 특정 예시적인 실시형태와 관련하여 설명되었다. 그러나, 첨부된 청구항에 제시된 바와 같이 실시형태의 더 넓은 범위를 벗어나지 않고 그에 대한 다양한 수정 및 변경이 이루어질 수 있음이 명백할 것이다. 명세서 및 도면은 그에 따라, 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (23)

  1. 방법으로서,
    로컬 컴퓨팅 노드에서, 하나 이상의 원격 컴퓨팅 노드의 세트로부터 원격 파라미터를 수신하는 단계;
    상기 원격 파라미터에 기초하여 최종 출력을 결정하기 위해 상기 로컬 컴퓨팅 노드의 로컬 신경망에서 순방향 패스의 실행을 개시하는 단계;
    상기 로컬 신경망에 대한 업데이트된 파라미터를 결정하기 위해 상기 로컬 신경망에서 역방향 패스의 실행을 개시하는 단계; 및
    상기 역방향 패스의 완료 이전에, 상기 업데이트된 파라미터의 서브세트를 상기 원격 컴퓨팅 노드의 세트로 송신하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 역방향 패스의 실행은 상기 로컬 신경망의 제1 계층에 대한 상기 업데이트된 파라미터의 서브세트를 산출하는 것을 포함하고, 그리고
    상기 업데이트된 파라미터의 서브세트를 송신하는 단계는 상기 계층에 대한 상기 업데이트된 파라미터의 서브세트가 상기 계층에 대한 대응하는 이전 파라미터의 세트와 상이하다고 결정하는 것에 응답하여 수행되는, 방법.
  3. 제1항에 있어서, 상기 역방향 패스의 실행은 상기 로컬 신경망의 제1 계층에 대한 상기 업데이트된 파라미터의 서브세트를 산출하는 것을 포함하고, 상기 업데이트된 파라미터의 서브세트를 송신하는 단계는 상기 로컬 신경망의 하나 이상의 후속 계층에 대해 상기 역방향 패스를 실행하는 것과 동시에 수행되는, 방법.
  4. 제1항에 있어서, 상기 업데이트된 파라미터의 서브세트는 상기 역방향 패스의 실행 시에 매 n번째 계층의 완료에 응답하여 송신된 상기 업데이트된 파라미터의 복수의 서브세트 중 하나이고, 상기 방법은 상기 역방향 패스의 실행 동안 n의 값을 동적으로 조정하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서,
    상기 순방향 패스의 실행을 개시하는 단계는 상기 원격 파라미터의 수신 이전에 발생하고; 그리고
    상기 방법은,
    상기 원격 파라미터로 상기 로컬 신경망을 업데이트하는 단계, 및
    상기 원격 파라미터에 기초하여 상기 최종 출력을 산출하기 위해 상기 순방향 패스의 실행을 완료하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 원격 파라미터를 수신하는 것에 응답하여 상기 원격 파라미터로 상기 로컬 신경망을 비동기적으로 업데이트하는 단계를 더 포함하고, 상기 업데이트된 파라미터의 서브세트를 송신하는 단계는 상기 신경망의 복수의 계층 중 하나에 대한 상기 업데이트된 파라미터를 결정하는 것에 응답하여 상기 역방향 패스의 실행 동안 비동기적으로 수행되는, 방법.
  7. 제1항에 있어서,
    상기 원격 파라미터의 수신에 응답하여, 상기 로컬 컴퓨팅 노드의 로컬 메모리에 상기 원격 파라미터의 직접 메모리 기록을 수행함으로써 상기 원격 파라미터로 상기 로컬 신경망을 업데이트하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서,
    상기 업데이트된 파라미터는 상기 로컬 신경망의 뉴런의 제1 서브세트에 대해 결정되고; 그리고
    상기 방법은 상기 원격 파라미터로 상기 로컬 신경망의 뉴런의 제2 서브세트를 업데이트하는 단계를 더 포함하며, 상기 뉴런의 제1 서브세트와 상기 뉴런의 제2 서브세트는 상호 배타적인, 방법.
  9. 제1항에 있어서, 상기 원격 컴퓨팅 노드의 세트의 각각의 원격 컴퓨팅 노드에 대해,
    상기 원격 컴퓨팅 노드에서, 상기 로컬 컴퓨팅 노드로부터 상기 업데이트된 파라미터의 서브세트를 수신하는 단계;
    상기 업데이트된 파라미터에 기초하여, 상기 원격 컴퓨팅 노드에 저장된 상기 로컬 신경망의 사본(copy)에서 원격 순방향 패스를 실행하는 단계;
    상기 로컬 신경망의 사본에서 원격 역방향 패스의 실행 동안 상기 원격 파라미터를 결정하는 단계; 및
    상기 원격 역방향 패스를 완료하기 이전에, 상기 원격 컴퓨팅 노드로부터 상기 로컬 컴퓨팅 노드로 상기 원격 파라미터를 송신하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서,
    상기 세트의 원격 컴퓨팅 노드 중 적어도 하나에서 상기 원격 역방향 패스를 실행하는 것과 동시에 상기 로컬 신경망에서 상기 순방향 패스를 실행하는 단계를 더 포함하는, 방법.
  11. 제1항에 있어서,
    상기 로컬 신경망의 복수의 계층의 각각의 계층에 대해,
    트레이닝 사례에 의해 제공된 입력의 세트, 및
    상기 로컬 신경망의 선행 계층의 중간 출력
    중 적어도 하나에 기초하여 상기 계층에 대한 중간 출력을 산출함으로써 상기 순방향 패스를 실행하는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 로컬 신경망의 복수의 계층의 각각의 계층에 대해, 상기 순방향 패스로부터 결정된 상기 최종 출력과 상기 트레이닝 사례를 위한 원하는 출력 사이의 오차에 기초하여 상기 계층에 대한 상기 업데이트된 파라미터의 서브세트를 산출함으로써 상기 역방향 패스를 실행하는 단계를 더 포함하는, 방법.
  13. 컴퓨팅 노드로서,
    하나 이상의 원격 컴퓨팅 노드의 세트로부터 원격 파라미터를 수신하도록 구성된 통신 네트워크 인터페이스;
    프로세싱 유닛으로서,
    상기 원격 파라미터에 기초하여 최종 출력을 산출하기 위해 신경망에서 순방향 패스를 실행하고, 그리고
    상기 신경망에 대한 업데이트된 파라미터를 결정하기 위해 상기 신경망에서 역방향 패스를 실행하도록 구성되는, 상기 프로세싱 유닛; 및
    상기 프로세싱 유닛과 결합되고 상기 역방향 패스의 완료 이전에, 상기 업데이트된 파라미터의 서브세트를 상기 원격 컴퓨팅 노드의 세트로 송신하도록 구성된 파라미터 서버를 포함하는, 컴퓨팅 노드.
  14. 제13항에 있어서,
    상기 프로세싱 유닛은 상기 신경망의 계층에 대한 상기 업데이트된 파라미터의 서브세트를 산출함으로써 상기 역방향 패스를 실행하도록 더 구성되고, 그리고
    상기 파라미터 서버는 상기 업데이트된 파라미터의 서브세트가 상기 계층에 대한 대응하는 이전 파라미터의 세트와 상이하다고 결정하는 것에 응답하여 상기 업데이트된 파라미터의 서브세트를 송신하도록 더 구성되는, 컴퓨팅 노드.
  15. 제13항에 있어서,
    상기 파라미터 서버는 상기 역방향 패스의 실행 시에 매 n번째 계층의 완료에 응답하여 상기 업데이트된 파라미터의 복수의 서브세트 중 하나 이상을 송신하도록 구성되고, 그리고
    상기 프로세싱 유닛은 상기 역방향 패스의 실행 동안 n의 값을 동적으로 조정하도록 더 구성되는, 컴퓨팅 노드.
  16. 제13항에 있어서,
    상기 통신 네트워크 인터페이스와 결합된 메모리를 더 포함하되, 상기 통신 네트워크 인터페이스는 직접 메모리 기록을 통해 상기 메모리에 상기 원격 파라미터를 저장함으로써 상기 신경망을 업데이트하도록 더 구성되고, 상기 프로세싱 유닛은,
    상기 원격 파라미터의 수신 이전에 상기 순방향 패스의 실행을 개시하고; 그리고
    상기 원격 파라미터를 통한 상기 신경망의 업데이트 후에, 상기 원격 파라미터에 기초하여 상기 최종 출력을 산출하기 위해 상기 순방향 패스의 실행을 완료하도록 더 구성되는, 컴퓨팅 노드.
  17. 제13항에 있어서,
    상기 통신 네트워크 인터페이스는 상기 원격 파라미터를 수신하는 것에 응답하여 상기 원격 파라미터로 상기 신경망을 비동기적으로 업데이트하도록 더 구성되고,
    상기 파라미터 서버는 상기 신경망의 복수의 계층 중 하나에 대한 상기 업데이트된 파라미터를 결정하는 것에 응답하여 상기 역방향 패스의 실행 동안 상기 업데이트된 파라미터의 서브세트를 비동기적으로 송신하도록 더 구성되는, 컴퓨팅 노드.
  18. 제13항에 있어서, 상기 프로세싱 유닛은,
    상기 로컬 신경망의 복수의 계층의 각각의 계층에 대해,
    트레이닝 사례에 의해 제공된 입력의 세트, 및
    상기 로컬 신경망의 선행 계층의 중간 출력
    중 적어도 하나에 기초하여 상기 계층에 대한 중간 출력을 산출함으로써 상기 순방향 패스를 실행하고, 그리고
    상기 로컬 신경망의 복수의 계층의 각각의 계층에 대해, 상기 순방향 패스로부터 결정된 상기 최종 출력과 상기 트레이닝 사례를 위한 원하는 출력 사이의 오차에 기초하여 상기 계층에 대한 상기 업데이트된 파라미터의 서브세트를 산출함으로써 상기 역방향 패스를 실행하도록 더 구성되는, 컴퓨팅 노드.
  19. 컴퓨팅 시스템으로서,
    통신 네트워크; 및
    상기 통신 네트워크와 결합된 복수의 컴퓨팅 노드를 포함하되, 상기 복수의 컴퓨팅 노드의 각각의 컴퓨팅 노드는,
    상기 복수의 컴퓨팅 노드 중 다른 컴퓨팅 노드로부터 원격 파라미터를 수신하도록 구성된 통신 네트워크 인터페이스;
    프로세싱 유닛으로서,
    상기 원격 파라미터에 기초하여 최종 출력을 산출하기 위해 신경망에서 순방향 패스를 실행하고, 그리고
    상기 신경망에 대한 업데이트된 파라미터를 결정하기 위해 상기 신경망에서 역방향 패스를 실행하도록 구성되는, 상기 프로세싱 유닛; 및
    상기 프로세싱 유닛과 결합되고 상기 역방향 패스의 완료 이전에, 상기 업데이트된 파라미터의 서브세트를 상기 다른 컴퓨팅 노드로 송신하도록 구성된 파라미터 서버를 포함하는, 컴퓨팅 시스템.
  20. 제19항에 있어서, 상기 복수의 컴퓨팅 노드 중 제1 컴퓨팅 노드에 대한 상기 순방향 패스는 상기 복수의 컴퓨팅 노드 중 제2 컴퓨팅 노드에 대한 상기 역방향 패스의 실행과 동시에 실행되는, 컴퓨팅 시스템.
  21. 제19항에 있어서, 상기 복수의 컴퓨팅 노드의 각각의 컴퓨팅 노드는 상기 신경망의 뉴런의 상이한 서브세트에 대한 상기 업데이트된 파라미터를 결정하도록 구성되는, 컴퓨팅 시스템.
  22. 제19항에 있어서, 상기 복수의 컴퓨팅 노드의 각각의 컴퓨팅 노드에 대해, 상기 컴퓨팅 노드의 통신 네트워크 인터페이스는 상기 순방향 패스의 개시 후에 및 상기 순방향 패스의 완료 이전에 상기 원격 파라미터로 상기 신경망을 업데이트하도록 더 구성되는, 컴퓨팅 시스템.
  23. 제19항에 있어서, 상기 복수의 컴퓨팅 노드의 각각의 컴퓨팅 노드에 대해,
    상기 컴퓨팅 노드의 통신 네트워크 인터페이스는 상기 원격 파라미터를 수신하는 것에 응답하여, 상기 로컬 컴퓨팅 노드의 로컬 메모리에 상기 원격 파라미터의 직접 메모리 기록을 수행함으로써 상기 원격 파라미터로 상기 신경망을 비동기적으로 업데이트하도록 더 구성되고; 그리고
    상기 컴퓨팅 노드의 파라미터 서버는 상기 역방향 패스의 실행 동안, 상기 프로세싱 유닛이 상기 신경망의 복수의 계층 중 하나에 대한 상기 업데이트된 파라미터를 결정하는 것에 응답하여 상기 업데이트된 파라미터의 서브세트를 비동기적으로 송신하도록 더 구성되는, 컴퓨팅 시스템.
KR1020207025668A 2018-02-17 2019-01-07 즉시 업데이트를 통해 분산 파라미터 서버를 사용하는 신경망의 최적화된 비동기식 트레이닝 KR20200119279A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/898,433 US11630994B2 (en) 2018-02-17 2018-02-17 Optimized asynchronous training of neural networks using a distributed parameter server with eager updates
US15/898,433 2018-02-17
PCT/US2019/012525 WO2019160619A1 (en) 2018-02-17 2019-01-07 Optimized asynchronous training of neural networks using a distributed parameter server with eager updates

Publications (1)

Publication Number Publication Date
KR20200119279A true KR20200119279A (ko) 2020-10-19

Family

ID=65433731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207025668A KR20200119279A (ko) 2018-02-17 2019-01-07 즉시 업데이트를 통해 분산 파라미터 서버를 사용하는 신경망의 최적화된 비동기식 트레이닝

Country Status (6)

Country Link
US (1) US11630994B2 (ko)
EP (1) EP3752963A1 (ko)
JP (1) JP7344888B2 (ko)
KR (1) KR20200119279A (ko)
CN (1) CN111819578A (ko)
WO (1) WO2019160619A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200151575A1 (en) * 2018-11-13 2020-05-14 Teradata Us, Inc. Methods and techniques for deep learning at scale over very large distributed datasets
KR20210066623A (ko) * 2019-11-28 2021-06-07 삼성전자주식회사 서버 및 이의 제어 방법
CN113298223B (zh) * 2020-02-24 2023-12-26 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN113469206A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 获取人工智能模型的方法、装置、设备及存储介质
CN111723933B (zh) * 2020-06-03 2024-04-16 上海商汤智能科技有限公司 神经网络模型的训练方法和相关产品
CN112861991B (zh) * 2021-03-09 2023-04-14 中山大学 一种面向神经网络异步训练的学习率调整方法
CN113627519B (zh) * 2021-08-07 2022-09-09 中国人民解放军国防科技大学 具有压缩和延迟补偿的分布式随机梯度下降方法
CN113626652B (zh) * 2021-10-11 2021-12-17 北京一流科技有限公司 数据处理网络系统、数据处理网络部署系统及其方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7782851B2 (en) * 2007-06-26 2010-08-24 At&T Intellectual Property I, L.P. System and method of detecting lost video data packets
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
CN104063344B (zh) * 2014-06-20 2018-06-26 华为技术有限公司 一种存储数据的方法及网络接口卡
CN104036451B (zh) 2014-06-20 2018-12-11 深圳市腾讯计算机系统有限公司 基于多图形处理器的模型并行处理方法及装置
ES2738319T3 (es) * 2014-09-12 2020-01-21 Microsoft Technology Licensing Llc Sistema informático para entrenar redes neuronales
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
US10951683B2 (en) * 2015-07-13 2021-03-16 Projector.Is, Inc. Systems and methods for remote interaction
US10474951B2 (en) * 2015-10-23 2019-11-12 Nec Corporation Memory efficient scalable deep learning with model parallelization
US20180322386A1 (en) * 2017-05-05 2018-11-08 Intel Corporation Fine-grain compute communication execution for deep learning frameworks
CN107578094A (zh) * 2017-10-25 2018-01-12 济南浪潮高新科技投资发展有限公司 基于参数服务器和fpga实现神经网络分布式训练的方法
US20190156214A1 (en) * 2017-11-18 2019-05-23 Neuralmagic Inc. Systems and methods for exchange of data in distributed training of machine learning algorithms

Also Published As

Publication number Publication date
US11630994B2 (en) 2023-04-18
JP7344888B2 (ja) 2023-09-14
US20190258924A1 (en) 2019-08-22
WO2019160619A1 (en) 2019-08-22
CN111819578A (zh) 2020-10-23
JP2021514084A (ja) 2021-06-03
EP3752963A1 (en) 2020-12-23

Similar Documents

Publication Publication Date Title
JP7344888B2 (ja) 活発な更新を伴う分散パラメータサーバを使用したニューラルネットワークの最適化された非同期トレーニング
KR102197247B1 (ko) 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법
Cui et al. Geeps: Scalable deep learning on distributed gpus with a gpu-specialized parameter server
US10540587B2 (en) Parallelizing the training of convolutional neural networks
US20210142178A1 (en) Tensor-based optimization method for memory management of a deep-learning gpu and system thereof
US10482392B2 (en) Robust large-scale machine learning in the cloud
US20150324690A1 (en) Deep Learning Training System
US20170091668A1 (en) System and method for network bandwidth aware distributed learning
US11651226B2 (en) System having multiple processing unit sets for training neural networks
Fang et al. RedSync: reducing synchronization bandwidth for distributed deep learning training system
Zayid et al. Predicting the performance measures of a message-passing multiprocessor architecture using artificial neural networks
CN113452546A (zh) 深度学习训练通信的动态服务质量管理
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
Cui et al. Scalable deep learning on distributed GPUs with a GPU-specialized parameter server
KR20230068992A (ko) 가속을 통한 신경망 훈련
Granat et al. Parallel eigenvalue reordering in real Schur forms
US20220230092A1 (en) Fast converging gradient compressor for federated learning
US11921813B2 (en) Methods for utilizing solver hardware for solving partial differential equations
CN116348890A (zh) 神经网络处理
Chatterjee et al. Brief announcement: A probabilistic performance model and tuning framework for eventually consistent distributed storage systems
Wang et al. BlockLite: a lightweight emulator for public blockchains
Li et al. Parallel optimization and application of unstructured sparse triangular solver on new generation of sunway architecture
Severinson et al. DSAG: A mixed synchronous-asynchronous iterative method for straggler-resilient learning
US20220413721A1 (en) Control of machine-learning systems
CN113377546B (zh) 通信避免方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination