KR102208989B1 - 강화 학습을 통한 디바이스 배치 최적화 - Google Patents

강화 학습을 통한 디바이스 배치 최적화 Download PDF

Info

Publication number
KR102208989B1
KR102208989B1 KR1020197026115A KR20197026115A KR102208989B1 KR 102208989 B1 KR102208989 B1 KR 102208989B1 KR 1020197026115 A KR1020197026115 A KR 1020197026115A KR 20197026115 A KR20197026115 A KR 20197026115A KR 102208989 B1 KR102208989 B1 KR 102208989B1
Authority
KR
South Korea
Prior art keywords
motion
embedding
embeddings
sequence
neural network
Prior art date
Application number
KR1020197026115A
Other languages
English (en)
Other versions
KR20190113928A (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 KR20190113928A publication Critical patent/KR20190113928A/ko
Application granted granted Critical
Publication of KR102208989B1 publication Critical patent/KR102208989B1/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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • 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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Machine Translation (AREA)
  • Image Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

다수의 하드웨어 디바이스에 대한 기계 학습 모델 연산용 배치를 결정하는 방법이 기술된다. 이 방법은 다수의 하드웨어 디바이스상에서 분산 처리를 위해 배치될 기계 학습 모델을 특정하는 데이터를 수신하는 단계와; 데이터로부터, 연산 임베딩의 시퀀스를 생성하는 단계로서, 그 시퀀스내의 각 연산 임베딩은 기계 학습 모델의 처리를 수행하는데 필요한 하나 이상의 개별 연산을 특징화하고; 배치 순환 신경망의 복수의 네트워크 파라미터의 복수의 네트워크 파라미터의 제1 값에 따라 배치 순환 신경망을 사용하여 연산 임베딩 시퀀스를 처리하여, 복수의 디바이스에 대한 시퀀스내의 연산 임베딩에 의해 특징화된 연산들의 배치를 정의하는 네트워크 출력을 생성하는 단계와; 네트워크 출력에 의해 정의된 배치에 따라 다수의 디바이스상에 연산들을 배치함으로써 다수의 하드웨어 디바이스에 의해 처리하기 위한 기계 학습 모델을 스케줄링하는 단계를 포함한다.

Description

강화 학습을 통한 디바이스 배치 최적화
본 출원은 2017년 3월 24자로 출원된 미국 가출원 번호 62/476,618에 대한 우선권으로 주장한다. 선행 출원의 개시 내용은 본 출원의 개시 내용의 일부로 간주되고 참조로 포함된다.
본 명세서는 다수의 디바이스에 대한 기계 학습 모델 연산의 배치를 결정하는 것에 관한 것이다.
신경망은 수신 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 단위 계층을 사용하는 기계 학습 모델이다. 일부 신경망은 출력 계층이외에 하나 이상의 은닉 계층을 포함한다. 각 은닉 계층의 출력은 네트워크의 다음 계층, 즉 다음 은닉 계층 또는 출력 계층의 입력으로 사용된다. 네트워크의 각 계층은 개별 파라미터 세트의 현재 값에 따라 수신 입력으로부터 출력을 생성한다.
일부 신경망은 순환 신경망이다. 순환 신경망은 입력 시퀀스를 수신하여 그 입력 시퀀스로부터 출력 시퀀스를 생성하는 신경망이다. 특히, 순환 신경망은 현재 타임 스텝에서 출력을 계산할 때 이전 타임 스텝으로부터 네트워크의 내부 상태의 일부 또는 전부를 사용할 수 있다. 순환 신경망의 예는 하나 이상의 장단기(LSTM) 메모리 블록을 포함하는 LSTM 신경망이다. 각 LSTM 메모리 블록은 예를 들어, 현재 활성화를 생성하거나 LSTM 신경망의 다른 컴포넌트들에 제공하기 위해, 셀이 그 셀에 대한 이전 상태를 저장할 수 있도록 하는 입력 게이트, forget 게이트 및 출력 게이트를 각각 포함하는 하나 이상의 셀을 포함할 수 있다.
본 명세서는 다수의 하드웨어 디바이스에 대한 기계 학습 모델 연산(동작)을 위한 배치(placement)를 결정하는 하나 이상의 위치의 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템을 기술한다.
본 명세서에 기술된 주제는 다음의 장점들 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 순환 신경망을 사용하여 다수의 디바이스에 대한기계 학습 모델 작업의 배치를 결정하면, 그 디바이스들을 사용하여 기계 학습 모델의 연산을 수행하는 효율성이 향상된다. 특히, 처리에 이용 가능한 하드웨어 구성에 적응되고 모델 처리에 대한 실행 시간을 더 단축시키는 배치들이 생성될 수 있다. 실행 시간들에서 얻은 보상을 이용한 강화 학습을 사용하여 신경망을 트레이닝함으로써, 순환 신경망은 하드웨어에서 연산과 전달(communication) 사이의 복잡한 트레이드 오프를 포함하는 현재 하드웨어 환경의 특성을 학습하여 그 트레이닝된 신경망이 가용 자원을 보다 효율적으로 활용하는 더 나은 성능의 배치를 생성할 수 있도록 한다. 즉, 시스템은 현재의 하드웨어 환경에 배치를 효과적으로 적용하여, 환경에서 디바이스들의 연산 용량을 설명하고 디바이스 간의 전달로 인한 지연을 최소화하고 연산의 성능을 최대화할 수 있다.
본 명세서는 기계 학습 연산의 배치를 설명하지만, 본 명세서에서 설명된 기술은 다수의 하드웨어 디바이스에 걸쳐 연산 그래프에 의해 기술될 수 있는 임의의 연산의 모음을 배치하는데 사용될 수 있다.
본 명세서의 주제의 하나 이상의 실시예의 세부 사항은 첨부 도면 및 이하의 설명에 기재되어있다. 본 주제의 다른 특징, 양태 및 이점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 기계 학습 모델 연산을 위한 배치를 결정하는 예시적인 디바이스 배치 시스템을 도시한다.
도 2는 배치 순환 신경망의 예시적인 아키텍처를 도시한다.
도 3은 트레이닝 동안 배치 순환 신경망의 네트워크 파라미터의 값을 업데이트하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 예시적인 연산 그래프 및 다수의 디바이스상의 그래프의 연산 그래프 연산의 예시적인 배치를 도시한다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
도 1은 다수의 하드웨어 디바이스에 대한 기계 학습 모델의 연산 (operations, 동작)을 위한 배치)를 결정하는 디바이스 배치 시스템(100)을 도시한다. 디바이스 배치 시스템(100)은 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로서 구현될 수 있다.
배치되는 기계 학습 모델은 임의의 종류의 디지털 데이터 입력을 수신하고, 그 입력에 기초하여 임의의 종류의 스코어, 분류 또는 회귀 출력을 생성하도록 구성될 수 있다.
예를 들어, 기계 학습 모델에 대한 입력이 이미지로부터 추출된 이미지 또는 특징인 경우, 주어진 이미지에 대해 기계 학습 모델에 의해 생성된 출력은 각 객체 카테고리 세트에 대한 스코어일 수 있고, 각 스코어는 이미지가 카테고리에 속하는 객체의 이미지를 포함하는 것으로 추정된 가능성(likelihood, 우도)을 나타낸다.
다른 예로서, 기계 학습 모델에 대한 입력이 인터넷 리소스(예를 들어, 웹 페이지), 문서, 또는 그 인터넷 리소스, 문서 또는 문서의 일부에서 추출된 문서 또는 특징의 일부인 경우, 주어진 인터넷 리소스, 문서 또는 문서의 일부에 대한 기계 학습 모델에 의해 생성된 출력은 각 토픽 세트에 대한 스코어일 수 있으며, 각 스코어는 인터넷 리소스, 문서 또는 문서 일부가 토픽에 관한 것으로 추정된 가능성을 나타낸다
다른 예로서, 기계 학습 모델에 대한 입력이 사용자에 대한 개인화된 추천의 특징, 예를 들어, 추천에 대한 컨텍스트를 특징화하는 특징, 예를 들어, 사용자에 의해 취해진 이전 액션을 특징화하는 특징인 경우, 기계 학습 모델에 의해 생성된 출력은 각 컨텐츠 아이템 세트에 대한 스코어일 수 있고, 각 스코어는 사용자가 컨텐츠 아이템을 추천하는 것에 호의적으로 응답할 것으로 추정되는 가능성을 나타낸다.
다른 예로서, 기계 학습 모델에 대한 입력이 한 언어의 텍스트 시퀀스인 경우, 기계 학습 모델에 의해 생성된 출력은 다른 언어로된 각 텍스트 조각 세트에 대한 스코어일 수 있고, 각 스코어는 다른 언어로된 텍스트 조각이 입력 텍스트를 다른 언어로 올바르게 번역한 것으로 추정되는 가능성을 나타낸다.
다른 예로서, 기계 학습 모델에 대한 입력이 발화된 발언을 나타내는 시퀀스 인 경우, 기계 학습 모델에 의해 생성된 출력은 각 텍스트 조각 세트에 대한 스코어일 수 있고, 각 스코어는 텍스트 조각이 발언에 대한 올바른 전사일 것으로 추정되는 가능성을 나타낸다.
특히, 디바이스 배치 시스템(100)은 복수의 하드웨어 디바이스에서 분산 처리를 위해 배치될 기계 학습 모델을 특정하는 입력 데이터(110)를 수신한다. 하드웨어 디바이스는 일반적으로 이기종이며, 임의의 적절한 하드웨어 디바이스, 예를 들어 CPU, GPU, ASIC 또는 기타 특수 목적 하드웨어, FPGA 등의 조합을 포함할 수 있다.
기계 학습 모델을 특정하는 입력 데이터(110)는 연산 그래프를 나타내는 데이터를 포함할 수 있다. 연산 그래프는 연산을 나타내는 정점과 연산들간에 전달되는 데이터를 나타내는 에지를 가진다.
예를 들어, 입력 데이터(110)는 M개의 연산{o1, o2,… oM}을 나타내는 정점을 갖는 연산 그래프(G)를 나타내는 데이터를 포함한다. M개의 연산은 기계 학습 모델을 트레이닝시키는 연산이거나 기계 학습 모델이 이미 트레이닝되면 그 기계 학습 모델을 사용하여 수신 입력으로부터 출력을 생성하는 연산일 수 있다. M개의 연산이 주어지면, 디바이스 배치 시스템(100)은 배치 = {p1, p2,...,pM}을 결정하는 것을 목표로 한다. 배치(P)는 각 연산(oi∈ G)를 D개의 이용 가능한 하드웨어 디바이스 세트, 즉 pi∈ {1,...,D}에 속하는 디바이스(pi)에 할당한 것이다.
다수의 하드웨어 디바이스상의 예시적인 연산 그래프 및 그 그래프의 예시적인 연산 그래프 연산의 배치를 도 4를 참조하여 상세히 설명한다.
배치를 결정하기 위해, 시스템(100)은 디바이스에 대한 연산들의 배치를 정의하는 출력을 생성하는 배치 순환 신경망(102)을 트레이닝시킨다. 배치 순환 신경망(102)이 일단 트레이닝되면 시스템(100)은 최종 배치를 생성할 수 있다. 예로서, 시스템(100)은 트레이닝된 배치 순환 신경망(102)을 실행하여, 트레이닝된 배치 순환 신경망(102)의 출력을 사용하여 최종 배치를 결정할 수 있다. 다른 예에서, 시스템(100)은 트레이닝 중에 보여지는 최상의 배치를 최종 배치로 사용할 수 있다.
그런 다음 시스템(100)은 복수의 하드웨어 디바이스에 의한 처리를 위해, 즉 최종 배치에 따라 기계 학습 모델의 연산들이 실행되도록 기계 학습 모델을 스케줄링할 수 있다. 일부 다른 경우에, 시스템(100)은 기계 학습 모델의 실행을 관리하는 다른 시스템에게 최종 배치를 식별하는 데이터를 제공하여, 다른 시스템이 최종 배치에 따라 디바이스들에 대해 연산을 배치할 수 있다.
배치 순환 신경망을 트레이닝시키는 것의 일부로서, 시스템(100)은 입력 데이터(110)로부터 연산 임베딩(108)의 시퀀스를 생성한다. 시퀀스(108)내의 각 연산 임베딩은 기계 학습 모델의 처리를 수행하는데 필요한 하나 이상의 개별 연산을 특징화한다. 임베딩은 수치값, 예를 들어, 벡터 또는 부동 소수점 값 또는 양자화된 부동 소수점 값의 행렬의 순서화된 모음(collection)이다.
일부 경우에, 시스템은 다수의 상이한 임베딩을 결합하여 시퀀스내의 각 연산에 대한 단일 연산 임베딩을 생성한다.
보다 구체적으로, 특정 연산을 특징화하는 연산 임베딩을 생성하기 위해, 시스템(100)은 특정 연산의 연산 타입인 타입 임베딩을 생성한다. 예를 들어, 연산 타입은 연산의 기본 연산(예를 들어, 행렬 곱셈 또는 2차원 컨볼루션 또는 1차원 컨볼루션 또는 비선형 활성화 함수)을 기술할 수 있고, 타입 임베딩은 연산 타입의 조정 가능한 임베딩 벡터일 수 있으며, 즉, 동일한 타입의 각 연산이 동일한 타입 임베딩을 공유하도록 한다.
시스템(100)은 특정 연산에 의해 생성된 출력의 사이즈를 특징화하는 출력 사이즈 임베딩을 생성한다. 예를 들어, 시스템(100)은 특정 연산에 의해 생성된 각 출력(예를 들어, 출력 텐서)의 크기를 기록하고, 기록된 크기를 연결하여 출력 형태(shape)(예를 들어, 고정-사이즈 제로 패딩된 리스트)로 생성할 수 있다. 출력 형태는 특정 연산의 출력 사이즈 임베딩이다.
시스템(100)은 특정 연산에 입력을 제공하고 그 특정 연산에 의해 생성된 출력을 수신하는 연산들을 식별하는 인접 임베딩(예를 들어, 원-핫(one-hot) 인코딩 벡터)을 생성한다.
시스템(100)은 임베딩의 조합으로부터 특정 연산들을 특징화하는 연산 임베딩을 생성한다. 시스템(100)에 의해 사용되는 임베딩의 조합은 다양할 수 있다. 예를 들어, 일부 경우에, 시스템(100)은 상술된 3가지 종류의 임베딩, 예를 들어 타입 임베딩, 출력 사이즈 임베딩 및 인접 임베딩을 조합하여, 특정 연산을 특징화하는 연산 임베딩을 생성할 수 있다. 예를 들어, 시스템(100)은 타입 임베딩, 출력 사이즈 임베딩 및 인접 임베딩을 연결하여 연산 임베딩을 생성할 수 있다. 일부 다른 경우에, 시스템(100)은 상술한 3가지 종류의 임베딩 중 2가지를 조합하여 연산 임베딩을 생성할 수 있다. 일부 다른 경우에, 시스템(100)은 상술한 3가지 종류의 임베딩 중 하나 이상을 새로운 종류의 임베딩과 조합하여 연산 임베딩을 생성할 수 있다.
일부 구현예에서, 연산 임베딩의 시퀀스를 생성하는 것의 일부로서, 시스템 (100)은 연산 그래프에서 정점들로 표현된 둘 이상의 연산이 동일한 디바이스 상에 공존할 것으로 결정하고, 이에 응답하여, 시스템(100)은 그 둘 이상의 연산을 특징화하는 단일 연산 임베딩을 생성한다.
배치 순환 신경망(102)의 트레이닝의 각 반복 동안, 시스템(100)은 배치 순환 신경망(102)의 네트워크 파라미터의 현재 값에 따라 배치 순환 신경망(102)을 사용하여 연산 임베딩(108)의 시퀀스를 처리한다. 배치 순환 신경망(102)은 현재 값에 따라 연산 임베딩(108)의 시퀀스를 처리하여 네트워크 출력(112)을 생성하도록 구성된다. 네트워크 출력(112)은 복수의 디바이스에 대한 시퀀스내의 연산 임베딩에 의해 특징화된 연산들의 배치를 정의한다.
특히, 배치 순환 신경망(102)은 시퀀스내의 각각의 연산 임베딩(108)에 대해, 가용 하드웨어 디바이스 세트 내의 각 하드웨어 디바이스에 대한 개별 스코어를 포함하는 스코어 세트를 생성하도록 구성된다. 각 하드웨어 디바이스에 대한 개별 스코어는 하드웨어 디바이스가 연산 임베딩에 의해 특징화되는 연산을 할당하기에 가장 적합한 디바이스일 개연성을 나타내는 가능성이다. 그런 다음 신경망(102)은 연산 임베딩에 대한 스코어 세트를 사용하여 각각의 연산을 위한(연산용) 디바이스를 선택하도록 구성된다. 일부 경우에, 신경망(102)은 연산 임베딩에 대한 스코어 세트에 따라 최고 스코어를 갖는 디바이스를 선택할 수 있다. 일부 다른 경우에, 신경망(102)은 연산을 특징화하는 연산 임베딩에 대한 스코어 세트에 의해 정의된 확률에 따라 복수의 디바이스로부터 디바이스를 샘플링할 수 있다.
일단 각 연산에 대해 디바이스가 선택되면, 신경망(102)은 복수의 하드웨어 디바이스에 대한 연산들의 배치를 정의하는 네트워크 출력(112)을 출력한다.
시스템(100)은 네트워크 출력(112)에 의해 정의된 배치에 따라 복수의 디바이스에 연산을 배치함으로써 복수의 하드웨어 디바이스에 의한 처리를 위해 기계 학습 모델을 스케줄링할 수 있다.
일반적으로, 배치 순환 신경망(102)은 LSTM(Long Short-Term Memory) 신경망 계층 및 컨텐츠-기반 어텐션 메커니즘을 포함하는 시퀀스-대-시퀀스 모델을 포함하는 순환 신경망일 수 있다. 시퀀스-투-시퀀스 모델의 예는 2014년, 신경정보 처리 시스템 학회에서 수츠케버(Sutskever)의 "신경망을 이용한 시퀀스-튜-시퀀스"기술되어 있다. 컨텐츠-기반 어텐션 메커니즘의 예는 2015년, 표현 학습 국제 학회에서 바다나우 드미트리(Bahdanau, Dzmitry)의 "공동 학습에 의한 조정 및 번역을 위한신경 기계 번역"에 기술되어 있다.
배치 순환 신경망(102)의 아키텍처는 2개의 파트, 즉 인코더 순환 신경망(104) 및 디코더 신경망(106)으로 분할될 수 있다.
인코더 순환 신경망(104)은 입력으로서 연산 임베딩의 시퀀스를 수신하도록 구성된다. 인코더 순환 신경망(104)은 그 연산 임베딩의 시퀀스를 처리하여 각각의 연산 임베딩에 대한 개별 인코더 은닉 상태를 생성한다.
각각의 연산 임베딩에 대해, 디코더 신경망(106)은 디코더 입력을 수신하고, 그 디코더 입력과 인코더 은닉 상태를 처리하여 연산 임베딩들에 대한 스코어 세트를 생성하도록 구성된다. 시퀀스내의 제1 연산 임베딩 이후의 각각의 연산 임베딩에 대한 디코더 입력은 그 시퀀스에서 선행하는 연산 임베딩에 의해 표현된 하나 이상의 연산을 위해 선택된 디바이스를 식별한다. 제1 연산 임베딩에 대해, 디코더 신경망(106)은 인코더 은닉 상태만을 처리하여 제1 연산 임베딩에 대한 스코어 세트를 생성할 수 있다.
배치 순환 신경망(102)의 예시적인 아키텍처는 도 2를 참조하여 아래에서 더 상세히 설명된다.
시스템(100)은 도 3을 참조하여 아래에 상세히 설명되는 프로세스를 사용하여 실행 시간에 기초하여 배치 순환 신경망(102)의 네트워크 파라미터들의 값을 업데이트할 수 있다.
도 2는 배치 순환 신경망의 예시적인 아키텍처를 도시한다. 배치 순환 신경망은 인코더(292) 및 디코더(294)를 포함한다.
인코더 순환 신경망(292)은 이력으로서 연산 임베딩의 시퀀스(예를 들어, 임베딩 211, 212,...,220))을 수신하도록 구성된다. 연산 임베딩의 시퀀스는 복수의 하드웨어 디바이스상에서 기계 학습 모델의 처리를 수행하는데 필요한 연산들을 특징화한다. 인코더 순환 신경망(292)은 연산 임베딩의 시퀀스를 처리하여 각각의 연산 임베딩에 대한 개별 인코더 은닉 상태를 생성한다. 예를 들어, 도 2에 도시된 바와 같이, 인코더 순환 신경망(292)은 연산 임베딩(x1, x2,....,xM)에 대한 인코더 은닉 상태(e1, e2,...,eM)의 리스트를 생성하는데, 여기서 M은 기계 학습 모델을 처리하는데 필요한 연산의 수이다.
디코더 신경망(294)은 LSTM 은닉 상태(d1, d2,...,dM)을 유지하고, 각 디코딩 타임 스텝에서 개별 연산 임베딩을 위한 디바이스를 출력하도록 구성된다. 각 디코딩 타입 스텝은 하나의 연산 임베딩에 대응한다.
특히, 각 연산 임베딩에 대해, 디코더 신경망(294)은 디코더 입력을 수신하고, 그 디코더 입력과 적절한 인코더 은닉 상태 세트를 처리하여 연산 임베딩에 대한 스코어 세트를 생성하도록 구성된다. 디코더 신경망(294)은 소프트맥스 신경망 계층을 사용하여 연산 임베딩에 대한 스코어 세트를 생성할 수 있다. 연산 임베딩에 대한 스코어 세트는 복수의 하드웨어 디바이스의 각 하드웨어 디바이스에 대한 개별 스코어를 포함한다. 각 하드웨어 디바이스에 대한 개별 스코어는 그 하드웨어 디바이스가 연산 임베딩에 의해 특징화되는 연산을 할당하기에 가장 적합한 디바이스일 가능성을 나타내는 가능성(우도)이다. 그런 다음 디코더 신경망(294)은 연산 임베딩에 대한 스코어 세트를 사용하여 각각의 연산을 위한 디바이스를 선택하도록 구성된다. 일부 경우에, 디코더(294)는 연산 임베딩에 대한 스코어 세트에 따라 최고 스코어를 갖는 디바이스를 선택할 수 있다. 일부 다른 경우에, 디코더(294)는 연산을 특징화하는 연산 임베딩에 대한 스코어 세트에 의해 정의된 확률에 따라 복수의 디바이스로부터 디바이스를 샘플링할 수 있다.
디코더 신경망(294)은 어텐션 메커니즘을 사용하여, 각 디코딩 타임 스텝에서 사용될 적절한 인코더 은닉 상태의 세트를 결정할 수 있다. 시퀀스내의 제1 연산 임베딩 이후의 각각의 연산 임베딩에 대한 디코더 입력은 그 시퀀스내의 선행하는 연산 임베딩에 의해 표현된 하나 이상의 연산에 대해 선택된 디바이스를 식별한다. 예를 들어, 시퀀스내의 제2 연산 임베딩을 위한 디코더 입력(262)은 제1 연산 임베딩을 위해 선택된 디바이스(251)를 식별하는 디바이스 임베딩이다. 제1 연산 임베딩에 대해, 디코더 신경망(106)은 적절한 인코더 은닉 상태만을 처리하여, 제1 연산 임베딩을 위한 스코어 세트를 생성할 수 있다.
도 3은 배치 순환 신경망의 네트워크 파라미터들의 값을 업데이트하기 위해 배치 순환 신경망(예를 들어, 도 1의 배치 순환 신경망(102))을 트레이닝시키기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 디바이스 배치 시스템은, 예를 들어, 본 명세서에 따라 적절히 프로그래밍된 도 1의 디바이스 배치 시스템은 프로세스(300)를 수행할 수 있다.
일반적으로, 복수의 하드웨어 디바이스상에서 기계 학습 모델의 처리(또는 트레이닝)를 수행하는데 필요한 M개의 연산{o1, o2,… oM}을 나타내는 정점들을 갖는 연산 그래프 (G)가 주어지면, 트레이닝된 배치 순환 신경망은 그 배치 하에서 기계 학습 모델을 처리하는데 최소 시간이 필요한 배치를 결정하는 것이 바람직하다. 배치(P) = {p1, p2,…, pM}는 D개의 하드웨어 디바이스의 세트, 즉 pi∈ {1,...,D}에 속하는 디바이스(pi)에 연산(oi∈ G)를 할당한 것이다. r(P)는 배치 P(이하, 실행 시간이라고 함)하에서 연산 그래프 (G)내의 M개의 연산이 완전한 실행되는데 걸리는 시간을 나타낸다고 하자. 시스템은 배치 순환 신경망을 트레이닝시켜, 실행 시간 r(P)가 최소화되도록 P를 찾는다.
배치 순환 신경망의 네트워크 파라미터의 값을 업데이트하기 위해(예를 들어, 네트워크 파라미터의 초기 값 또는 현재 값으로부터), 시스템은 다음과 같이 단계(302-306)을 반복적으로 수행한다.
시스템은 복수의 디바이스에 걸친 연산들의 하나 이상의 배치(예를 들어, K개의 배치)를 선택하기 위해 배치 순환 신경망의 네트워크 파라미터의 현재 값에 따라 배치 순환 신경망을 사용하여 현재의 연산 임베딩의 시퀀스를 처리한다(단계 302).
예를 들어, K개의 배치를 선택하기 위해, 시스템은 배치 순환 신경망을 K번 실행하여, 배치 순환 신경망에 의해 정의된 배치들의 확률 분포로부터 K개의 배치를 가져온다. 즉, 시스템은 배치 순환 신경망에 K개의 동일한 입력 예들의 묶음 (batch)을 제공한다. 그 묶음의 각 입력 예는 동일한 현재의 연산 임베딩의 시퀀스이다. 그 묶음의 각 입력 예에 대해, 배치 순환 신경망은 도 1을 참조하여 상술한 방식으로 배치 순환 신경망에 의해 정의된(즉 배치 순환 신경망의 소프트맥스 신경망 계층에 의해 정의된) 배치의 확률 분포에 따라 배치를 생성하기 위해 인코더 순환 신경망 및 디코더 신경망을 통해 현재의 연산 임베딩의 시퀀스를 처리하도록 구성된다.
시스템은 선택된 각각의 배치에 대해 단계(304)를 수행한다. 특히, 시스템은 배치에 따라 복수의 디바이스에 대한 연산을 이용하여 기계 학습 모델의 처리를 수행한 다음, 그 처리가 완료되는데 필요한 시간을 결정한다. 즉, 선택된 각 배치에 대해, 시스템은 그 선택된 배치에 따라 배치된 연산들로 기계 학습 모델의 처리를 모니터링하고 처리 완료에 필요한 시간을 식별할 수 있다.
시스템은 선택된 각각의 배치에 대해 처리를 완료하는데 필요한 시간으로부터 도출된 보상을 사용하는 강화 학습 기술을 사용하여 파라미터들의 현재 값을 조정한다(단계 306). 일반적으로, 보상은 배치 신경망이 더 짧은 실행 시간을 갖는 배치를 생성하도록 실행 시간이 더 짧은 경우 더 높다.
특히, 시스템은 순환 신경망을 트레이닝하여 보상의 네거티브를 정의하는 다음과 같은 목적 함수를 최소화함으로써 보상을 최대화한다.
Figure 112019091524016-pct00001
여기서 θ는 배치 순환 신경망의 네트워크 파라미터를 나타내고,
Figure 112019091524016-pct00002
는 배치 순환 신경망에 의해 정의된 배치들의 확률 분포를 나타내고, R(P)는 실행 시간(r(P)의 제곱근이다. 목적 함수는 연산 그래프(
Figure 112019091524016-pct00003
)가 주어진 경우 (예를 들어, 배치들의 확률 분포(
Figure 112019091524016-pct00004
)로부터 K개의 배치를 가져오기 위해 배치 순환 신경망을 K번 실행함으로써) 시스템에 의해 선택된 K개의 배치에 대한 K 실행 시간의 제곱근의 예상 값을 계산한다.
시스템은 강화 학습 기술, 예를 들어 REINFORCE 기술을 사용하여 목적 함수의 기울기(gradient)를 결정한다. REINFOCE 기술을 사용하여, 목적 함수의 기울기는 다음과 같이 표현될 수 있다.
Figure 112019091524016-pct00005
여기서 p는 배치 순환 신경망에 의해 배치에 할당된 확률, 즉 개별 배치에 대해 배치 순환 신경망에 의해 생성된 스코어들의 적(product)이다.
기울기의 분산을 감소시키기 위해, 시스템은 다음과 같이 기울기를 근사화하기 위해, K 실행 시간의 이동 평균인 기준 항(B)를 사용할 수 있다 :
Figure 112019091524016-pct00006
시스템은 배치 순환 신경망의 네트워크 파라미터 각각에 대한 개별 업데이트된 값을 결정하기 위해 목적 함수의 기울기를 역 전파할 수 있다.
네트워크 파라미터들의 현재 값을 조정하는 동안, 시스템은 선택적으로 강화 학습 기술의 일부로서, 즉, 기울기를 연산 임베딩들로 역 전파함으로써 현재 시퀀스내의 연산 임베딩들을 조정할 수 있다.
도 4는 시스템(454)의 다수의 디바이스상의 예시적인 연산 그래프(452) 및 그 그래프(452)의 연산 그래프 연산의 예시적인 배치를 도시한다. 연산 그래프 (450)는 연산(402~416)을 나타내는 정점들을 포함한다. 연산 그래프(450)는 연산(402-406) 사이에서 전달되는 데이터를 나타내는 에지(432-450)를 더 포함한다. 예를 들어, 연산 그래프(450)는 정점들이 연산을 나타내고, 에지는 그 연산들간에 전달되는 다차원 데이터 어레이(텐서)를 나타내는 텐서 플로우 연산 그래프일 수 있다.
각각의 연산들(402-416)은 특정 배치, 예를 들어 배치 순환 신경망(예를 들어, 도 1의 배치 순환 신경망(102))을 사용하여 디바이스 배치 시스템(예를 들어, 도 1의 디바이스 배치 시스템(100))에 의해 결정된 배치에 따라 시스템(454)의 디바이스(418-424) 중 하나에 할당될 수 있다. 도 4는 연산(402 및 410)은 디바이스(418)에 할당되고, 연산(404, 406 및 412)은 디바이스(420)에 할당되고, 연산(408)은 디바이스(422)에 할당되며, 연산(414 및 416)은 디바이스(424)에 할당되는 예시적인 배치를 도시한다.
디바이스(418-424)는 일반적으로 이종이며, 임의의 적절한 하드웨어 디바이스, 예를 들어 CPU, GPU, ASIC 또는 다른 특수 목적 하드웨어(FPGA) 등의 임의의 조합을 포함할 수 있다. 예를 들어, 일부 구현예에서, 시스템(454)은 하나 이상의 CPU와 하나 이상의 GPU를 갖는 단일 머신일 수 있고, 각각의 연산(402-416)은 특정 배치에 따라 CPU와 GPU 중 하나에 할당될 수 있다. 일부 다른 구현예에서, 시스템(454)은 GPU 및 ASIC 또는 FPGA의 혼합을 갖는 다수의 머신을 포함할 수 있고, 각각의 연산(402~416)은 특정 배치에 따라 머신들 중 하나의 디바이스에 할당될 수 있다.
하나 이상의 컴퓨터의 시스템이 특정 동작들 또는 액션들을 수행하도록 구성되는 것은, 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 설치되어 작동시 그 시스템으로 하여금 연산들 또는 액션들을 수행하도록 하는 것을 의미한다. 하나 이상의 프로그램이 특정 동작들 또는 액션들을 수행하도록 구성되는 것은, 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 그 장치로 하여금 연산들 또는 액션들을 수행하게 하는 명령을 포함한다는 것을 의미한다.
본 명세서에서 설명된 주제 및 기능적 동작들의 실시예는 본 명세서에 개시된 구조 및 그 구조적 등가물 또는 그들의 하나 이상의 조합을 포함하여, 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어로 구현될 수 있다. 본 명세서에서 설명된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위한 유형의 비-일시적 저장 매체상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 부가적으로, 프로그램 명령은 인공적으로 생성된 전파 신호, 예를 들어, 기계-생성의 전기, 광학 또는 전자기 신호에 인코딩될 수 있으며, 이는 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위하여 생성된다. 컴퓨터 저장 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. 그러나 컴퓨터 저장 매체는 전파된 신호가 아니다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터를 포함하여, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 이 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)를 포함할 수 있다. 이 장치는 또한 하드웨어 이외에도, 당해 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 이들의 조합을 구성하는 코드를 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 기술될 수 있는 컴퓨터 프로그램은 컴파일된 또는 해석된 언어, 또는 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 이것은 독립 실행형 프로그램 또는 모듈, 구성 요소, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 임의의 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부, 예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트, 당해 프로그램 전용의 단일 파일, 또는 다수의 조정 파일(예컨대, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 데이터 통신 네트워크로 상호 연결된 다수의 컴퓨터상에서 실행되도록 배포될 수 있다.
본 명세서에서 사용되는 바와같이, "엔진" 또는 "소프트웨어 엔진"은 입력과 상이한 출력을 제공하는 소프트웨어 구현 입력/출력 시스템을 지칭한다. 엔진은 라이브러리, 플랫폼, 소프트웨어 개발 키트("SDK") 또는 객체와 같은 인코딩된 기능 블록일 수 있다. 각 엔진은 하나 이상의 프로세서 및 컴퓨터 판독 가능 매체를 포함하는, 서버, 휴대 전화, 태블릿 컴퓨터, 노트북 컴퓨터, 음악 재생기, 전자책 리더, 랩톱 또는 데스크탑 컴퓨터, PDA, 스마트폰 또는 다른 고정식 또는 휴대용 디바이스와 같은 임의의 적절한 타입의 컴퓨팅 디바이스상에서 구현될 수 있다. 부가적으로, 둘 이상의 엔진이 동일한 컴퓨팅 디바이스 또는 상이한 컴퓨팅 디바이스에서 구현될 수 있다.
본 명세서에서 기술된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어 FPGA 또는 ASIC에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다. 예를 들어, 프로세스 및 로직 흐름은 그래픽 처리 회로(GPU)에 의해 수행될 수 있고, 장치는 또한 그래픽 처리 회로(GPU)로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 예를 들어 범용 또는 특수 목적의 마이크로 프로세서 또는 둘 다 또는 임의의 다른 종류의 중앙 처리 장치에 기초할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령을 수행 또는 실행하는 중앙 처리 장치와 명령 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 예를 들어 자기, 자기 광 디스크 또는 광 디스크와 같이 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스와 데이터를 송수신하도록 또는 그 둘 모두와 데이터를 송수신하도록 동작적으로 연결될 것이다. 그러나 컴퓨터에는 이러한 디바이스가 필요하지 않다. 게다가, 컴퓨터는 다른 디바이스, 예를 들어 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 디바이스(예를 들어, USB(범용 직렬 버스) 플래시 드라이브)에 내장될 수 있다.
컴퓨터 프로그램 명령과 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 반도체 메모리 디바이스(예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여, 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적 논리 회로에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 기술된 주제의 실시예는 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display)) 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백 일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 더욱이, 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고 받음으로써, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에서 기술된 주제의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트, 또는 그래픽 사용자 인터페이스 또는 사용자가 본 명세서에 기술된 주제의 구현예와 상호 작용할 수 있는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트, 또는 하나 이상의 이러한 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예는 LAN(local area network) 및 WAN(wide area network) 예를 들어, 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다.
본 명세서는 많은 특정 구현 세부 내용을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되지 않아야 하며, 오히려 특정한 발명의 특정한 실시예에 특정될 수 있는 구성들에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에서 기술되는 일정 구성들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예와 관련하여 기술된 다양한 구성들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 게다가, 구성들이 일정 조합으로 동작하고 심지어 초기에 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성은 일부 경우, 그 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 특정 순서로 도면에 도시되고 청구항들에 인용되어 있지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 순서 또는 시계열적 순서로 수행되거나 모든 도시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 환경에서, 멀티태스킹과 병렬 처리가 유리할 수 있다. 게다가, 상술된 실시예에서 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키징될 수 있음을 이해해야 한다.
주제의 특정 실시예들이 설명되었다. 다른 실시예도 다음의 청구항들의 범위 내에 있다. 예를 들면, 청구항에 인용된 동작은 서로 다른 순서로 수행될 수 있으며 여전히 원하는 결과를 달성할 수 있다. 일 예로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지는 않는다. 일부 경우에는, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    하나 이상의 컴퓨터에 의해, 복수의 하드웨어 디바이스상의 분산 처리를 위해 배치될 기계 학습 모델을 특정하는 데이터를 수신하는 단계와;
    하나 이상의 컴퓨터에 의해, 상기 기계 학습 모델을 특정하는 데이터로부터, 동작(operation) 임베딩의 시퀀스를 생성하는 단계와, 상기 시퀀스의 각 동작 임베딩은 기계 학습 모델의 처리 수행의 일부인 하나 이상의 개별 동작을 특징화하고;
    하나 이상의 컴퓨터에 의해, 배치 순환 신경망의 복수의 네트워크 파라미터의 제1 값들에 따라 배치 순환 신경망을 사용하여 동작 임베딩의 시퀀스를 처리하는 단계와,
    상기 배치 순환 신경망은 제1 값들에 따라 동작 임베딩의 시퀀스를 처리하여 복수의 디바이스에 대한 상기 시퀀스의 동작 임베딩에 의해 특징화되는 동작들의 배치를 정의하는 네트워크 출력을 생성하도록 구성되고; 그리고
    하나 이상의 컴퓨터에 의해, 상기 네트워크 출력에 의해 정의된 배치에 따라 복수의 디바이스상에 동작들을 배치함으로써 복수의 하드웨어 디바이스에 의해 처리하기 위한 기계 학습 모델을 스케줄링하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 동작 임베딩에 의해 특징화되는 동작은 기계 학습 모델 트레이닝의 일부인 동작인 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 동작 임베딩에 의해 특징화되는 동작은 기계 학습 모델을 사용한 추론 수행의 일부인 동작인 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 기계 학습 모델을 특정하는 데이터는,
    상기 동작들을 나타내는 정점들 및 그 동작들 사이에서 전달되는 데이터를 나타내는 에지들을 갖는 동작 그래프를 나타내는 데이터인 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 컴퓨터에 의해, 동작 임베딩의 시퀀스를 생성하는 단계는,
    상기 동작 그래프에서 정점들로 표현된 둘 이상의 동작이 동일한 디바이스에 공존할 것으로 결정하는 단계; 및
    이에 응답하여, 상기 둘 이상의 동작을 특징화하는 단일 동작 임베딩을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 컴퓨터에 의해, 특정 동작을 특징화하는 동작 임베딩을 생성하는 단계는,
    특정 동작의 동작 타입에 대한 타입 임베딩을 생성하는 단계;
    특정 동작에 의해 생성된 출력의 사이즈를 특징화하는 출력 사이즈 임베딩을 생성하는 단계;
    특정 동작에 입력을 제공하고 특정 동작에 의해 생성된 출력을 수신하는 동작들을 식별하는 인접(adjacency) 임베딩을 생성하는 단계; 및
    특정 동작을 특징화하는 동작 임베딩을 생성하도록 타입 임베딩, 출력 사이즈 임베딩 및 인접 임베딩을 결합하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 순환 신경망은 시퀀스의 각각의 동작 임베딩에 대해, 복수의 디바이스 각각에 대한 개별 스코어를 포함하는 스코어 세트를 생성하도록 구성되고, 그리고
    상기 하나 이상의 컴퓨터에 의해, 동작 임베딩의 시퀀스를 처리하는 단계는 동작을 특징화하는 동작 임베딩에 대한 스코어 세트를 사용하여 동작 각각에 대한 디바이스를 선택하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 하나 이상의 컴퓨터에 의해, 동작 각각에 대한 디바이스를 선택하는 단계는,
    상기 동작을 특징화하는 동작 임베딩에 대한 스코어 세트에 따라 최고 스코어를 갖는 디바이스를 선택하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제7항에 있어서,
    상기 하나 이상의 컴퓨터에 의해, 동작 각각에 대한 디바이스를 선택하는 단계는,
    상기 동작을 특징화하는 동작 임베딩에 대한 스코어 세트에 의해 정의된 확률에 따라 복수의 디바이스로부터 디바이스를 샘플링하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제7항에 있어서,
    상기 순환 신경망은,
    상기 동작 임베딩의 시퀀스를 처리하여 각각의 동작 임베딩에 대한 개별 인코더 은닉 상태를 생성하도록 구성되는 인코더 순환 신경망; 및
    각각의 동작 임베딩에 대해:
    디코더 입력을 수신하고; 그리고
    상기 동작 임베딩에 대한 스코어 세트를 생성하기 위해 상기 디코더 입력 및 상기 인코더 은닉 상태를 처리하도록 구성된 디코더 신경망을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 시퀀스의 제1 동작 임베딩 이후에 각각의 동작 임베딩에 대한 상기 디코더 입력은 상기 시퀀스의 선행하는 동작 임베딩에 의해 표현된 하나 이상의 동작에 대해 선택된 디바이스를 식별하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제1항에 있어서,
    상기 하나 이상의 컴퓨터에 의해, 다음을 반복적으로 수행함으로써 네트워크 파라미터들의 초기 값들로부터 네트워크 파라미터들의 제1 값들을 결정하는 단계를 더 포함하고, 상기 다음은,
    복수의 디바이스에 대한 동작들의 하나 이상의 배치를 선택하기 위해 배치 순환 신경망의 복수의 네트워크 파라미터의 현재 값들에 따라 배치 순환 신경망을 사용하여 현재의 동작 임베딩의 시퀀스를 처리하는 단계와;
    각각의 선택된 배치에 대해:
    배치에 따라 복수의 디바이스에 대한 동작들을 이용하여 기계 학습 모델의 처리를 수행하는 단계, 및
    처리가 완료되는데 필요한 시간을 결정하는 단계와;
    각각의 선택된 배치에 대해 상기 처리가 완료되는데 필요한 시간으로부터 도출된 보상을 사용하는 강화 학습 기술을 사용하여 파라미터들의 현재 값을 조정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 강화 학습 기술은 REINFORCE 기술인 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제12항에 있어서,
    상기 강화 학습 기술은 필요한 시간들의 이동 평균인 베이스라인을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제12항에 있어서,
    상기 파라미터들의 현재 값을 조정하는 단계는,
    상기 강화 학습 기술의 일부로서 현재 시퀀스의 동작 임베딩을 조정하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  16. 하나 이상의 컴퓨터 및 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 동작들을 수행하게 하는 명령어를 저장하는 하나 이상의 저장 디바이스를 포함하는 시스템으로서, 상기 동작들은,
    복수의 하드웨어 디바이스상의 분산 처리를 위해 배치될 기계 학습 모델을 특정하는 데이터를 수신하는 단계와;
    상기 기계 학습 모델을 특정하는 데이터로부터, 동작 임베딩의 시퀀스를 생성하는 단계와, 상기 시퀀스의 각 동작 임베딩은 기계 학습 모델의 처리 수행의 일부인 하나 이상의 개별 동작을 특징화하고;
    배치 순환 신경망의 복수의 네트워크 파라미터의 제1 값들에 따라 배치 순환 신경망을 사용하여 동작 임베딩의 시퀀스를 처리하는 단계와,
    상기 배치 순환 신경망은 제1 값들에 따라 동작 임베딩의 시퀀스를 처리하여 복수의 디바이스에 대한 상기 시퀀스의 동작 임베딩에 의해 특징화되는 동작들의 배치를 정의하는 네트워크 출력을 생성하도록 구성되고; 그리고
    상기 네트워크 출력에 의해 정의된 배치에 따라 복수의 디바이스상에 동작들을 배치함으로써 복수의 하드웨어 디바이스에 의해 처리하기 위한 기계 학습 모델을 스케줄링하는 단계를 포함하는 것을 특징으로 하는 시스템.
  17. 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 동작들을 수행하게 하는 명령어를 저장하는 하나 이상의 비-일시적 컴퓨터 저장 매체로서, 상기 동작들은,
    복수의 하드웨어 디바이스상의 분산 처리를 위해 배치될 기계 학습 모델을 특정하는 데이터를 수신하는 단계와;
    상기 기계 학습 모델을 특정하는 데이터로부터, 동작 임베딩의 시퀀스를 생성하는 단계와, 상기 시퀀스의 각 동작 임베딩은 기계 학습 모델의 처리 수행의 일부인 하나 이상의 개별 동작을 특징화하고;
    배치 순환 신경망의 복수의 네트워크 파라미터의 제1 값들에 따라 배치 순환 신경망을 사용하여 동작 임베딩의 시퀀스를 처리하는 단계와,
    상기 배치 순환 신경망은 제1 값들에 따라 동작 임베딩의 시퀀스를 처리하여 복수의 디바이스에 대한 상기 시퀀스의 동작 임베딩에 의해 특징화되는 동작들의 배치를 정의하는 네트워크 출력을 생성하도록 구성되고; 그리고
    상기 네트워크 출력에 의해 정의된 배치에 따라 복수의 디바이스상에 동작들을 배치함으로써 복수의 하드웨어 디바이스에 의해 처리하기 위한 기계 학습 모델을 스케줄링하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  18. 제17항에 있어서,
    특정 동작을 특징화하는 동작 임베딩을 생성하는 단계는,
    특정 동작의 동작 타입에 대한 타입 임베딩을 생성하는 단계;
    특정 동작에 의해 생성된 출력의 사이즈를 특징화하는 출력 사이즈 임베딩을 생성하는 단계;
    특정 동작에 입력을 제공하고 특정 동작에 의해 생성된 출력을 수신하는 동작들을 식별하는 인접 임베딩을 생성하는 단계; 및
    특정 동작을 특징화하는 동작 임베딩을 생성하도록 타입 임베딩, 출력 사이즈 임베딩 및 인접 임베딩을 결합하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  19. 제17항에 있어서,
    상기 순환 신경망은 시퀀스의 각각의 동작 임베딩에 대해, 복수의 디바이스 각각에 대한 개별 스코어를 포함하는 스코어 세트를 생성하도록 구성되고, 그리고
    상기 동작 임베딩의 시퀀스를 처리하는 단계는 동작을 특징화하는 동작 임베딩에 대한 스코어 세트를 사용하여 동작 각각에 대한 디바이스를 선택하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  20. 제19항에 있어서,
    상기 동작 각각에 대한 디바이스를 선택하는 단계는,
    상기 동작을 특징화하는 동작 임베딩에 대한 스코어 세트에 따라 최고 스코어를 갖는 디바이스를 선택하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.











KR1020197026115A 2017-03-24 2018-03-23 강화 학습을 통한 디바이스 배치 최적화 KR102208989B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762476618P 2017-03-24 2017-03-24
US62/476,618 2017-03-24
PCT/US2018/024155 WO2018175972A1 (en) 2017-03-24 2018-03-23 Device placement optimization with reinforcement learning

Publications (2)

Publication Number Publication Date
KR20190113928A KR20190113928A (ko) 2019-10-08
KR102208989B1 true KR102208989B1 (ko) 2021-01-28

Family

ID=61913686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197026115A KR102208989B1 (ko) 2017-03-24 2018-03-23 강화 학습을 통한 디바이스 배치 최적화

Country Status (6)

Country Link
US (3) US10692003B2 (ko)
EP (1) EP3559868A1 (ko)
JP (1) JP6790286B2 (ko)
KR (1) KR102208989B1 (ko)
CN (2) CN117648971A (ko)
WO (1) WO2018175972A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102603130B1 (ko) 2022-12-27 2023-11-17 주식회사 애자일소다 강화학습 기반의 면적 및 매크로 배치 최적화를 위한 설계 시스템 및 방법
KR102634706B1 (ko) 2023-05-31 2024-02-13 주식회사 애자일소다 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법
KR102645072B1 (ko) 2023-05-31 2024-03-08 주식회사 애자일소다 매크로의 핀 방향 최적화를 위한 후처리 장치 및 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354301B2 (en) 2017-11-13 2022-06-07 LendingClub Bank, National Association Multi-system operation audit log
US10114857B1 (en) 2017-11-13 2018-10-30 Lendingclub Corporation Techniques for performing multi-system computer operations
SG11202105629SA (en) * 2018-12-04 2021-06-29 Google Llc Generating integrated circuit floorplans using neural networks
JP7050023B2 (ja) * 2019-03-22 2022-04-07 Kddi株式会社 ネットワーク障害復旧システム、コンピュータプログラム及びネットワーク障害復旧方法
KR102371927B1 (ko) * 2019-10-17 2022-03-11 (주)유밥 학습 콘텐츠 추천 방법 및 장치
KR102272501B1 (ko) 2020-04-24 2021-07-01 연세대학교 산학협력단 분산 강화 학습 장치 및 방법
US11288097B2 (en) 2020-06-12 2022-03-29 Disney Enterprises, Inc. Automated hardware resource optimization
CN111753973A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种神经网络芯片的优化方法、系统、设备和存储介质
US20200327392A1 (en) * 2020-06-26 2020-10-15 Intel Corporation Methods, systems, articles of manufacture, and apparatus to optimize layers of a machine learning model for a target hardware platform
US20220083824A1 (en) * 2020-09-11 2022-03-17 Actapio, Inc. Execution control apparatus, execution control method, and a non-transitory computer-readable storage medium
KR102257028B1 (ko) * 2020-10-06 2021-05-27 주식회사 딥이티 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
KR20220045800A (ko) * 2020-10-06 2022-04-13 삼성전자주식회사 인공지능 모델을 분산 처리하는 시스템 및 그 동작 방법
KR20220064665A (ko) * 2020-11-12 2022-05-19 삼성전자주식회사 인공지능 모델을 분산 처리하는 전자 장치 및 그 동작 방법
JP2023020264A (ja) * 2021-07-30 2023-02-09 株式会社Screenホールディングス スケジュール作成方法、スケジュール作成装置、基板処理装置、基板処理システム、記録媒体、及びスケジュール作成プログラム
KR102573644B1 (ko) * 2021-08-24 2023-09-01 주식회사 에너자이 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
US11509836B1 (en) 2021-12-29 2022-11-22 Insight Direct Usa, Inc. Dynamically configured processing of a region of interest dependent upon published video data selected by a runtime configuration file
US11704891B1 (en) 2021-12-29 2023-07-18 Insight Direct Usa, Inc. Dynamically configured extraction, preprocessing, and publishing of a region of interest that is a subset of streaming video data
WO2023163453A1 (ko) * 2022-02-23 2023-08-31 주식회사 에너자이 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
WO2023243896A1 (ko) * 2022-06-17 2023-12-21 삼성전자 주식회사 인공신경망의 추론 분산 비율 결정 전자 장치 및 그 동작 방법
US11778167B1 (en) 2022-07-26 2023-10-03 Insight Direct Usa, Inc. Method and system for preprocessing optimization of streaming video data
WO2024053910A1 (ko) * 2022-09-08 2024-03-14 삼성전자주식회사 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법
CN117058491B (zh) * 2023-10-12 2024-04-02 深圳大学 基于递归神经网络的结构化网格布局生成方法及设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108595A (ja) * 1991-10-17 1993-04-30 Hitachi Ltd ニユーラルネツトワークの分散学習装置
KR100676863B1 (ko) 2004-08-31 2007-02-02 주식회사 코난테크놀로지 음악 검색 서비스 제공 시스템 및 방법
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
KR20100067174A (ko) 2008-12-11 2010-06-21 한국전자통신연구원 음성 인식을 이용한 메타데이터 검색기, 검색 방법, iptv 수신 장치
KR20120034378A (ko) 2010-10-01 2012-04-12 엔에이치엔(주) 사운드 인식을 통한 광고 정보 제공 시스템 및 방법
US9189730B1 (en) * 2012-09-20 2015-11-17 Brain Corporation Modulated stochasticity spiking neuron network controller apparatus and methods
US9767419B2 (en) * 2014-01-24 2017-09-19 Microsoft Technology Licensing, Llc Crowdsourcing system with community learning
US10102480B2 (en) * 2014-06-30 2018-10-16 Amazon Technologies, Inc. Machine learning service
CN106462801A (zh) * 2014-10-07 2017-02-22 谷歌公司 在分区训练数据上训练神经网络
WO2016077797A1 (en) * 2014-11-14 2016-05-19 Google Inc. Generating natural language descriptions of images
US11080587B2 (en) * 2015-02-06 2021-08-03 Deepmind Technologies Limited Recurrent neural networks for data item generation
US10373054B2 (en) * 2015-04-19 2019-08-06 International Business Machines Corporation Annealed dropout training of neural networks
US10515307B2 (en) * 2015-06-05 2019-12-24 Google Llc Compressed recurrent neural network models
US9652712B2 (en) * 2015-07-27 2017-05-16 Google Inc. Analyzing health events using recurrent neural networks
US11151446B2 (en) * 2015-10-28 2021-10-19 Google Llc Stream-based accelerator processing of computational graphs

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Azalia Mirhoseini et al. Device Placement Optimization with Reinforcement Learning. arXiv:1706.04972v2 [cs.LG] 25 Jun 2017.
Bello et al. Neural Combinatorial Optimization with Reinforcement Learning. arXiv:1611.09940v3. 2017.1.12. XP055499145
Mao et al. Resource Management with Deep Reinforcement Learning. MIT&MicroSoft. 2016.11.10.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102603130B1 (ko) 2022-12-27 2023-11-17 주식회사 애자일소다 강화학습 기반의 면적 및 매크로 배치 최적화를 위한 설계 시스템 및 방법
KR102634706B1 (ko) 2023-05-31 2024-02-13 주식회사 애자일소다 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법
KR102645072B1 (ko) 2023-05-31 2024-03-08 주식회사 애자일소다 매크로의 핀 방향 최적화를 위한 후처리 장치 및 방법

Also Published As

Publication number Publication date
JP6790286B2 (ja) 2020-11-25
US20190303761A1 (en) 2019-10-03
US20200279163A1 (en) 2020-09-03
KR20190113928A (ko) 2019-10-08
EP3559868A1 (en) 2019-10-30
WO2018175972A1 (en) 2018-09-27
CN110268422B (zh) 2023-12-01
US11803747B2 (en) 2023-10-31
CN110268422A (zh) 2019-09-20
US10692003B2 (en) 2020-06-23
US20240062062A1 (en) 2024-02-22
JP2020512639A (ja) 2020-04-23
CN117648971A (zh) 2024-03-05

Similar Documents

Publication Publication Date Title
KR102208989B1 (ko) 강화 학습을 통한 디바이스 배치 최적화
JP7157154B2 (ja) 性能予測ニューラルネットワークを使用したニューラルアーキテクチャ探索
KR102170199B1 (ko) 비교 세트를 사용한 입력 예시들 분류
CN111602148B (zh) 正则化神经网络架构搜索
JP6758406B2 (ja) ワイドアンドディープマシンラーニングモデル
US9990558B2 (en) Generating image features based on robust feature-learning
US20210004677A1 (en) Data compression using jointly trained encoder, decoder, and prior neural networks
CN110766142A (zh) 模型生成方法和装置
EP3596663B1 (en) Neural network system
CN110476173B (zh) 利用强化学习的分层设备放置
CN110663049B (zh) 神经网络优化器搜索
WO2021248140A1 (en) Hyperparameter neural network ensembles
WO2024138177A1 (en) Recurrent interface networks
CN118043818A (zh) 用于处理来自多个模态的网络指标的基于自注意力的神经网络
CN116644793A (zh) 场景模型训练方法、装置、介质及设备
CN115335831A (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