KR20220164559A - 희소 어텐션 메커니즘이 있는 어텐션 신경망 - Google Patents

희소 어텐션 메커니즘이 있는 어텐션 신경망 Download PDF

Info

Publication number
KR20220164559A
KR20220164559A KR1020227038621A KR20227038621A KR20220164559A KR 20220164559 A KR20220164559 A KR 20220164559A KR 1020227038621 A KR1020227038621 A KR 1020227038621A KR 20227038621 A KR20227038621 A KR 20227038621A KR 20220164559 A KR20220164559 A KR 20220164559A
Authority
KR
South Korea
Prior art keywords
input
attention
sequence
network
layer
Prior art date
Application number
KR1020227038621A
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 KR20220164559A publication Critical patent/KR20220164559A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Abstract

하나 이상의 희소 어텐션 서브-계층을 갖는 어텐션 신경망을 사용하여 네트워크 입력을 프로세싱하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 장치가 개시된다. 각 희소 어텐션 서브-계층은 서브-계층에 대한 입력의 입력 위치 중 제1 프로퍼 서브세트에 있는 입력 위치에 대해 제1 프로퍼 서브세트에 없는 위치와 다르게 어텐션하는 희소 어텐션 메커니즘을 적용하도록 구성된다.

Description

희소 어텐션 메커니즘이 있는 어텐션 신경망
본 명세서는 신경망을 사용하여 네트워크 입력에 대해 기계 학습 태스크를 수행하는 것과 관련된다.
신경망은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 유닛 계층을 사용하는 기계 학습 모델이다. 일부 신경망에는 출력 계층(출력층) 외에 하나 이상의 은닉 계층(은닉층)이 포함된다. 각 은닉층의 출력은 네트워크의 다음 층, 즉 다음 은닉층 또는 출력층에 대한 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신된 입력으로부터 출력을 생성한다.
본 명세서는 희소 어텐션을 적용하는 어텐션 서브-계층을 포함하는 어텐션 신경망을 사용하여 네트워크 입력에 대해 기계 학습 태스크를 수행하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현된 시스템을 설명한다.
본 명세서에 기술된 주제의 특정 실시예는 다음 이점 중 하나 이상을 실현하도록 구현될 수 있다.
본 명세서에 설명된 기술을 사용하면 신경망 시스템에서 입력 시퀀스를 처리(프로세싱)할 수 있으며, 희소 어텐션 메커니즘을 사용하여 훈련 중과 런타임에 기존 어텐션 기반 네트워크보다 (즉, 계산 리소스(예: 메모리, 컴퓨팅 성능 또는 둘 다) 측면에서) 출력 시퀀스 또는 둘 모두를 더 효율적으로 생성한다.
일부 기존 어텐션 신경망 내의 어텐션 계층은 주어진 모든 쿼리에 대해 모든 키를 사용하여 쿼리의 각 내적을 계산하는 것을 포함하는 내적 어텐션 메커니즘을 사용한다. 네트워크는 일반적으로 순차적일 수 있는 네트워크 입력에서 이러한 키 또는 쿼리를 파생한다. 따라서 상당한 길이의 순차적 데이터에 내적 어텐션 메커니즘을 적용할 때 계산 비용이 상당할 수 있다. 특히, 기존의 셀프-어텐션(self-attention) 계층은 시퀀스 길이에 대한 2차 종속성을 가지고 있어 모델이 더 긴 시퀀스를 작동하거나 생성할 때 많은 양의 계산 리소스를 소비하게 된다. 그러나 설명된 기술은 희소 어텐션 메커니즘을 적용하여 각 어텐션 계층에서 수행되는 어텐션 계산의 수를 효과적으로 제한하면서 기존의 셀프-어텐션 신경망과 유사한 출력 품질을 유지함으로써 이러한 문제를 해결한다. 특히, 대다수의 위치(포지션)가 다른 위치의 희소한 서브세트에만 어텐션하도록 하고 (순서 길이에 비해 크기 O(1)의) 훨씬 더 적은 수의 위치가 모든 위치에 어텐션하도록 함으로써(그리고 모든 위치가 어텐션해야 함), 시스템은 시퀀스가 긴 컨텍스트를 효과적으로 전파하고 매우 긴 시퀀스에 대해서도 계산 효율성을 유지하면서 고품질 출력을 보장할 수 있다. 특정한 예로서, 설명된 희소 어텐션을 사용하여, 어텐션 신경망은 예를 들어 전체 시퀀스에 참여하는 100개 미만의 글로벌 토큰을 갖는 동안 4000개 이상의 토큰에 대한 롱-레인지 종속성(long-range dependencies)을 갖는 시퀀스에 대해 작동해야 하는 태스크에 대해서도 효과적으로 수행할 수 있다. 따라서, 글로벌 토큰을 포함하는 위치의 제1 프로퍼 서브세트는 다른 토큰을 포함하는 제2 프로퍼 서브세트의 3/100 이하의 토큰을 포함할 수 있다.
더 구체적으로, 기술된 기술은 셀프-어텐션 신경망이 메모리 제약 하에서, 즉 기술된 기술이 사용되지 않을 때 요구되는 메모리 공간에 비해 더 제한된 메모리 공간 내에서 배치될 수 있도록 한다. 특정한 예로서, 셀프-어텐션 메커니즘에 필요한 곱셈을 수행하는 최신 하드웨어 칩은 온칩 메모리가 제한되어 있다. 또 다른 예로서, 모바일 폰과 같은 에지 컴퓨팅 장치는 제한된 온-디바이스(on-device) 메모리를 갖는다. 셀프-어텐션 메커니즘을 간소화하여, 설명된 기술을 사용하면 어텐션 신경망이 이 제한된 메모리 공간 내에서 작동하는 동안, 즉 어텐션 신경망이 배포될 때 고품질 출력을 생성할 수 있고, 따라서 어텐션 메커니즘은 제한된 장치 메모리를 갖는 하나 이상의 장치(디바이스)에 의해 적용된다. 특히, 주어진 입력 위치에서 쿼리를 사용하여 입력 위치의 제1 프로퍼 서브세트에 있는 입력 위치에 대해서만 키 시퀀스의 모든 키를 어텐션하는 반면, 입력 위치의 제2 프로퍼 서브세트에 있는 입력 위치에 대해, 입력 위치의 해당 프로퍼 서브세트에 있는 키만 어텐션하도록 입력 위치에 대한 쿼리를 사용함으로써, 설명된 기술은 제2 서브세트의 입력 위치에 대한 어텐션된 입력을 계산하기 위해 제한된 메모리 공간에 로드해야 하는 키의 수를 크게 줄인다. 이는 설명된 셀프-어텐션 메커니즘이 제한된 메모리 공간 내에서 효과적으로 수행되도록 한다. 하지만, 제1 프로퍼 서브세트의 위치에 대해, 위치에 대한 쿼리는 모든 입력 위치의 모든 키를 어텐션하는 데 여전히 사용되며, 제2 프로퍼 서브세트의 입력 위치에 대해 위치에 대한 쿼리는 제1 서브세트의 모든 위치에 대한 모든 키를 어텐션하는 데 사용되므로, 시스템은 여전히 모든 입력 위치에 정보를 전파하고 고품질 출력을 보장할 수 있다. 추가적으로, 제2 서브세트의 주어진 위치에 해당하는 프로퍼 서브세트가 (i) 제1 프로퍼 서브세트 외부에 있는 입력 위치에서 무작위로 선택된 하나 이상의 입력 위치 및 (ii) 제2 프로퍼 서브세트에서 입력 위치의 고정된 수 위치(fixed number positions)의 윈도우 내에 있는 각 입력 위치를 포함하는 경우, 시스템은 해당하는 프로퍼 서브세트의 위치 수가 제2 서브세트의 총 위치 수에 비해 적은 경우에도 고품질 출력을 생성할 수 있으므로 제2 서브세트의 위치에 대한 어텐션 메커니즘을 적용하기 위해 메모리에 로드해야 하는 키의 수를 더욱 줄일 수 있다. 또한, 일반적으로 제1 서브세트보다 제2 서브세트에 더 많은 위치가 있기 때문에, 전체 계층 입력에 대해 셀프-어텐션 메커니즘을 적용하기 위해 메모리에 로드해야 하는 키 수의 전반적인 감소가 상당한(significant) 반면, 여전히 셀프-어텐션 메커니즘에 의해 고품질 출력이 생성되도록 보장한다.
본 명세서의 주제에 대한 하나 이상의 실시예의 세부사항은 첨부 도면 및 아래의 설명에 기재되어 있다. 주제의 다른 특징, 측면 및 이점은 설명, 도면 및 청구범위에서 명백해질 것이다.
도 1은 예시적인 신경망 시스템을 도시한다.
도 2a는 적용되는 희소 어텐션 메커니즘의 예시이다.
도 2b는 쿼리 및 키가 블록으로 분할되는 희소 어텐션(sparse Attention) 방식의 예시이다.
도 3은 희소 어텐션 메커니즘을 적용하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
본 명세서는 기계 학습 태스크를 위한 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현된 시스템을 설명한다.
기계 학습 태스크는 (i) 입력 시퀀스인 네트워크 입력에서 오퍼레이션하거나, (ii) 출력 시퀀스인 네트워크 출력을 생성하거나, (iii) 두 가지 모두를 수행하는 모든 기계 학습 태스크일 수 있다.
시스템이 수행하도록 구성할 수 있는 기계 학습 태스크의 몇 가지 예는 다음과 같다.
일 예로서, 태스크는 신경 기계 번역 태스크일 수 있다. 예를 들어, 신경망에 대한 입력이 하나의 언어로 된 일련의 텍스트(예: 일련의 단어, 구, 문자 또는 워드 피스(word pieces))인 경우, 신경망에 의해 생성된 출력은 텍스트 시퀀스의 다른 언어로의 번역, 즉 텍스트의 입력 시퀀스의 번역인 다른 언어의 텍스트 시퀀스일 수 있다. 특정한 예로서, 태스크는 다국어 기계 번역 태스크일 수 있으며, 여기서 단일 신경망은 여러 개의 서로 다른 소스 언어(대상 언어 쌍) 간에 번역하도록 구성된다. 이 예에서 소스 언어 텍스트는 신경망이 소스 언어 텍스트를 번역해야 하는 대상 언어를 나타내는 식별자로 보강될 수 있다.
다른 예로서, 태스크는 오디오 처리 태스크일 수 있다. 예를 들어, 신경망에 대한 입력이 발화를 나타내는 시퀀스인 경우, 신경망에 의해 생성된 출력은 텍스트 피스의 세트 각각에 대한 점수일 수 있으며, 각 점수는 텍스트 피스가 발화에 대한 올바른 전사일 가능성을 나타내는 추정된 가능성을 나타낸다. 다른 예로서, 신경망에 대한 입력이 발화를 나타내는 시퀀스인 경우, 신경망에 의해 생성된 출력은 특정 단어 또는 구("핫워드")가 발화에서 발화되었는지 여부를 나타낼 수 있다. 또 다른 예로, 신경망에 대한 입력이 발화를 나타내는 시퀀스인 경우 신경망에 의해 생성된 출력은 발화가 말한 자연어를 식별할 수 있다.
또 다른 예로, 태스크는 자연어 처리 또는 이해 태스크(understanding task), 예를 들어 일부 자연어의 텍스트 시퀀스에서 작동하는, 수반 태스크(entailment task), 의역 태스크, 텍스트 유사성 태스크, 감정 태스크, 문장 완성 태스크, 문법 태스크 등일 수 있다.
또 다른 예로, 태스크는 텍스트를 음성으로 변환하는(TTS(text to speech)) 태스크가 될 수 있으며, 입력이 자연어의 텍스트 또는 자연어의 텍스트 특징일 경우 네트워크 출력은 자연어로 말하는 텍스트의 오디오를 정의하는 스펙트로그램, 파형 또는 기타 데이터이다.
또 다른 예로, 태스크는 건강 예측 태스크일 수 있으며, 여기서 입력은 환자에 대한 전자 건강 기록 데이터에서 파생된 시퀀스이고, 출력은 환자의 미래 건강과 관련된 예측(예: 환자에게 처방되어야 하는 예측된 치료, 건강 이벤트가 환자에게 발생하거나 환자에 대한 예측된 진단)이다.
또 다른 예로, 태스크는 텍스트 생성 태스크(text generation task)일 수 있으며, 여기서 입력은 텍스트 시퀀스이고, 출력은 다른 텍스트 시퀀스이다(예: 텍스트 입력 시퀀스의 완성, 입력 시퀀스에 제기된 질문에 대한 응답, 또는 제1 텍스트 시퀀스에 의해 지정된 주제에 대한 텍스트 시퀀스). 다른 예로서, 텍스트 생성 태스크에 대한 입력은 텍스트 이외의 입력, 예를 들어 이미지일 수 있고, 출력 시퀀스는 입력을 설명하는 텍스트일 수 있다.
다른 예로서, 태스크는 이미지 생성 태스크일 수 있으며, 여기서 입력은 컨디셔닝 입력이고 출력은 이미지의 픽셀에 대한 강도 값 입력의 시퀀스이다.
또 다른 예로, 태스크는 에이전트 제어 태스크일 수 있으며, 여기서 입력은 관찰 또는 환경 상태를 특성화하는 기타 데이터의 시퀀스이고, 출력은 시퀀스의 가장 최근 데이터에 대한 응답으로 에이전트가 수행할 태스크를 정의한다. 에이전트는 예를 들어 실제 또는 시뮬레이션된 로봇, 산업 시설의 제어 시스템 또는 다른 종류의 에이전트를 제어하는 제어 시스템일 수 있다.
또 다른 예로, 태스크는 게놈 태스크(genomics task)가 될 수 있으며, 여기서 입력은 DNA 시퀀스 또는 기타 분자 시퀀스의 프래그먼트(fragment)를 나타내는 시퀀스이고, 출력은 예를 들어 DNA 데이터 세트에 대한 비지도된(unsupervised) 학습 기술을 사용하여 다운스트림 태스크에 사용하기 위한 프래그먼트의 임베딩(embedding) 또는 다운스트림 태스크에 대한 출력이다. 다운스트림 태스크의 예로는 프로모터 사이트(promoter site) 예측, 메틸화 분석, 비코딩 변이체(non-coding variants)의 기능적 효과 예측 등이 있다.
일부 경우에, 기계 학습 태스크는 여러 개별 기계 학습 태스크의 조합이며, 즉, 시스템은 여러 개의 서로 다른 개별 기계 학습 태스크, 예를 들어 위에서 언급한 두 개 이상의 기계 학습 태스크를 수행하도록 구성된다. 예를 들어, 시스템은 네트워크 입력에 대해 수행될 개별 자연어 이해 태스크에 대한 식별자를 포함하는 네트워크 입력과 함께, 다수의 개별 자연어 이해 태스크를 수행하도록 구성될 수 있다.
기계 학습 태스크를 수행하기 위해, 시스템에는 여러 어텐션 계층(attention layer)을 포함하는 어텐션 신경망이 포함되어 있다. 각 계층은 하나 이상의 위치 각각에서 입력되는 개별 계층을 포함하는 개별 입력 시퀀스에서 작동한다.
더욱이, 각 계층은 어텐션 서브-계층 및 선택적으로 위치별 피드-포워드(position-wise feed-forward) 서브-계층을 포함한다. 어텐션 서브-계층은 계층에 대한 입력 시퀀스를 수신하고, 계층에 대한 입력 시퀀스에 어텐션 메커니즘을 적용하여 어텐션된(attended) 입력 시퀀스를 생성한다.
어텐션 서브-계층에 의해 적용되는 어텐션 메커니즘은 아래에서 더 자세히 설명하는 것처럼 어텐션 신경망의 구성에 따라 다르지만, 어텐션 서브-계층 중 적어도 하나는 아래에서 설명하는 것처럼 희소 어텐션(sparse attention)을 사용하는 어텐션 메커니즘을 적용한다.
피드-포워드 서브-계층이 포함된 경우 피드-포워드 서브-계층은 어텐션된 입력 시퀀스(attended input sequence)에 대해 작동하여 계층에 대한 출력 시퀀스를 생성한다.
피드-포워드 서브-계층이 포함되지 않은 경우, 어텐션된 입력 시퀀스는 계층에 대한 출력 시퀀스이다.
일반적으로 어텐션 신경망 내의 계층은 다양한 구성으로 배열될 수 있다.
예를 들어, 네트워크 입력이 입력 시퀀스일 때, 어텐션 신경망은 복수의 계층의 서브세트를 포함하고 그리고 입력 시퀀스를 인코딩하여 시퀀스의 각 입력의 각각의 인코딩된 표현을 생성하는 인코더 신경망을 포함한다. 이 예에서 인코더의 계층에 의해 적용된 어텐션 메커니즘은 셀프-어텐션 메커니즘이다. 이 예에서, 인코더의 계층 중 일부 또는 전체는 아래에서 설명할 희소 어텐션 메커니즘을 적용할 수 있다.
또 다른 예로, 어텐션 신경망은 복수의 계층의 상이한 서브세트를 포함하고 그리고 네트워크 입력 또는 네트워크 입력의 인코딩된 표현을 처리(프로세싱)하여 네트워크 출력을 생성하는 디코더 신경망을 포함한다. 이러한 예 중 일부에서, 네트워크 출력이 출력 시퀀스일 때, 디코더 신경망은 자동 회귀적으로 작동하고 디코더의 일부 또는 전체 계층 내의 어텐션 서브-계층은 부분적으로 생성된 출력 시퀀스에 마스크된 셀프-어텐션을 적용한다. 신경망이 인코더와 디코더를 모두 포함하는 경우, 디코더의 일부 계층은 인코딩된 표현에 크로스-어텐션(cross-attention)을 적용하고 다른 계층은 마스킹되거나 마스킹되지 않은 출력 시퀀스에 셀프-어텐션을 적용한다.
어텐션 신경망이 입력 시퀀스에서 직접 작동하는 디코더 신경망을 포함하는 경우, 디코더 내의 어텐션 계층은 입력 시퀀스에 셀프-어텐션 메커니즘을 적용할 수 있다. 이 예에서, 디코더의 일부 또는 모든 계층은 아래에서 설명될 희소 어텐션 메커니즘을 적용할 수 있다.
디코더 신경망 및 인코더 신경망 내 어텐션 계층의 작동에 대한 세부 사항은 "Vaswani, et al, attention Is All You Need, arXiv:1706.03762, and Raffel, et al, Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer, arXiv:1910.10683, and Devlin et al, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, arXiv:1810.04805"에 자세히 개시되어 있으며, 그 전체 내용은 본 명세서에 참고로 포함된다.
도 1은 예시적인 신경망 시스템(100)을 도시한다. 신경망 시스템(100)은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 예이며, 여기에서 아래에 설명된 시스템, 컴포넌트 및 기술이 구현될 수 있다.
신경망 시스템(100)은 입력(102)을 수신하고 입력(102)에 대해 기계 학습 태스크를 수행하여 출력(152)을 생성할 수 있다.
위에서 설명한 바와 같이, 신경망 시스템(100)은 (i) 입력 시퀀스인 입력(102)에 대해 동작하는 것, (ii) 출력 시퀀스인 출력(152)을 생성하는 것, 또는 (iii) 둘 다를 포함하는 다양한 태스크 중 임의의 것을 수행할 수 있다.
신경망 시스템(100)은 다중 어텐션 계층을 포함하는 어텐션 신경망(150)을 포함하며, 그 중 적어도 하나는 희소 어텐션 계층(110)이다.
각 어텐션 계층은 입력 시퀀스(104)에 대해 오퍼레이팅하고 그리고 해당 출력 시퀀스(134)를 생성한다.
하나의 어텐션 계층이 편의를 위해 도 1에 도시되어 있지만, 위에서 설명한 것처럼, 어텐션 신경망(150)은 일반적으로 다른 어텐션 계층 및 예를 들어 임베딩 계층 및 출력 계층을 포함하는 많은 다른 계층을 포함한다.
구체적으로, 입력 시퀀스(104)는 입력 순서의 복수의 위치 각각에서 각각의 입력을 갖고, 출력 시퀀스(134)는 하나 이상의 위치 각각에서 각각의 출력을 갖는다. 즉, 입력 시퀀스(102)는 입력 순서에 따라 배열된 하나 이상의 입력을 갖고, 출력 시퀀스(134)는 출력 순서에 따라 배열된 하나 이상의 출력을 갖는다.
일반적으로, 입력 시퀀스(104)는 입력(102)에 대해 기계 학습 태스크를 수행할 때 어텐션 신경망(150)에 의해 생성된 임의의 중간 순차적 데이터(intermediate sequential data)일 수 있다.
예를 들어, 어텐션 계층(110)이 신경망의 제1 어텐션 계층인 경우, 입력 시퀀스(104)는 임베딩 계층에 의해 생성된 시스템 입력(102)의 임베디드(즉, numeric) 표현이 될 수 있다.
다른 예로서, 입력 시퀀스(104)는 어텐션 신경망(150)의 선행 어텐션 계층 또는 다른 계층에 의해 생성된 출력 시퀀스일 수 있다.
입력 시퀀스(104)로부터 출력 시퀀스(134)를 생성하기 위해, 희소 어텐션 계층(110)는 하나 이상의 어텐션 서브-계층(120)("어텐션 헤드"라고도 함), 및 선택적으로, 하나 이상의 위치별 피드-포워드 서브-계층(들)(130)를 포함한다.
하나 이상의 어텐션 서브-계층(120)은 각각의 입력 위치에서 각각의 최종 어텐션된 입력을 포함하는 입력 시퀀스(104)로부터 최종 어텐션된 입력 시퀀스(124)를 집합적으로(collectively) 생성한다.
각 어텐션 서브-계층(120)은 계층(110)에 대한 입력 시퀀스(104)를 수신하고 그리고 계층에 대한 입력 시퀀스에 어텐션 메커니즘을 적용하여 각각의 어텐션된 입력 시퀀스를 생성한다.
신경망의 어텐션 계층 중 적어도 일부에 대해, 각 서브-계층(120)은 기존 어텐션을 사용하는 대신에 희소 어텐션 메커니즘을 적용한다.
희소 어텐션 메커니즘은 단일-헤드 어텐션 메커니즘이 될 수 있으며, 여기서 어텐션 계층은 입력 시퀀스 또는 다중 헤드 어텐션 메커니즘에 대해 단일 희소 어텐션 메커니즘을 적용하는 단일-헤드, 즉 단일 서브-계층(120)만 포함하며, 여기서 어텐션 계층은 다중 헤드, 즉 다중 어텐션 서브-계층(120)를 포함하고, 다중 어텐션 헤드의 각각은 입력 시퀀스에 대해 각각의 희소 어텐션 메커니즘을 병렬로 적용하여 개별 어텐션된 입력 시퀀스를 생성한다.
그런 다음 어텐션 계층은, 예를 들어, 출력들을 연결하거나, 출력들을 합산하거나, 출력들을 평균화함으로써, 선택적으로, 어텐션 계층(110)에 대한 최종 어텐션된 입력 시퀀스(124)를 생성하는 부분으로서 선형 계층을 통해 연결된 출력들을 프로세싱함으로써, 다중 어텐션 헤드의 출력들을 결합한다.
희소 어텐션 메커니즘을 적용하는 것은 도 2를 참조하여 이하에서 더 상세히 설명될 것이다.
위에서 설명한 것처럼, 신경망은 일반적으로 여러 어텐션 계층을 포함한다. 모든 어텐션 계층은 희소(스파스) 어텐션을 적용하거나 일부 어텐션 계층은 희소 어텐션 어텐션을 적용할 수 있는 반면 다른 어텐션 계층은 기존의 다중 헤드 또는 단일-헤드 어텐션을 적용할 수 있다. 일반적으로,
희소 어텐션을 적용하는 어텐션 계층은 모든 어텐션 신경망 아키텍처, 예를 들어 "Vaswani, et al, Attention Is All You Need, arXiv:1706.03762, Raffel, et al, Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer, arXiv:1910.10683, Devlin et al, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, arXiv:1810.04805, Dai, et al, Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context, arXiv:1901.02860, and Kitaev, et al, Reformer: The Efficient Transformer, arXiv: 2001.04451"에 설명된 모든 신경망에서와 같이 어텐션 신경망 아키텍처에서 셀프-어텐션을 수행하는 기존 어텐션 계층 대신 삽입될 수 있으며, 그 전체 내용은 본 명세서에 참고로 포함된다.
셀프-어텐션 메커니즘은 메커니즘에서 사용하는 쿼리, 키 및 값이 모두 입력 시퀀스에서 어텐션 서브-계층으로 생성되는 어텐션 메커니즘이며, 즉, 메모리 벡터 세트는 계층에 대한 입력 시퀀스와 동일하다.
일부 경우에, 어텐션된 입력 시퀀스(들)로부터 생성된 결합 어텐션된 입력 시퀀스는 어텐션 메커니즘의 최종 출력, 즉 최종 어텐션된 입력 시퀀스(124)이다. 일부 다른 경우에, 어텐션 계층은 시퀀스(124)를 생성하기 위해 결합된 어텐션된 입력 시퀀스에 하나 이상의 다른 오퍼레이션, 예를 들어 잔여 연결, 계층 정규화 또는 둘 다를 적용한다.
포함될 때, 하나 이상의 피드-포워드 서브-계층(들)(130)은 최종 어텐션된 입력 시퀀스(124)에 대해 동작하여 최종 어텐션된 입력 시퀀스의 각 어텐션된 입력에 대해 일련의 오퍼레이션을 병렬로 적용함으로써, 예를 들어 완전 연결된(fully-connected) 신경망을 통해 각 어텐션된 입력을 프로세싱한 다음 선택적으로 계층 정규화, 잔여 연결 또는 둘 다를 완전히 연결된 신경망의 출력에 적용함으로써, 계층(110)에 대한 출력 시퀀스(134)를 생성한다. 특정한 예로서, 완전 연결된 신경망은 각 어텐션된 입력에 병렬로 하나의 선형 변환(linear transformation)을 적용한 다음 활성화 함수(예: ReLU 활성화 함수)와 같은 비선형 요소별 활성화 함수를 적용한 다음 다른 선형 변환을 적용할 수 있다.
피드-포워드 서브-계층(130)이 포함되지 않는 경우, 최종 어텐션된 입력 시퀀스(124)는 계층에 대한 출력 시퀀스(134)이다.
일반적으로, 어텐션 신경망 내의 계층은 다양한 구성으로 배열될 수 있으며 어텐션 서브-계층(120)에 의해 적용되는 어텐션 메커니즘은 어텐션 신경망(150)의 구성에 따라 다르다.
일례로, 네트워크 입력이 입력 시퀀스이고 그리고 어텐션 신경망(150)이 인코더 신경망을 포함하고, 이 인코더 신경망이 시퀀스의 각 입력의 각각의 인코딩된 표현을 생성하기 위해 입력 시퀀스를 인코딩하는 복수의 계층의 서브세트를 포함하는 경우, 어텐션 서브-계층(120)은 인코더의 계층들 중 하나에 포함될 수 있다.
또 다른 예로, 네트워크 입력이 입력 시퀀스이고 그리고 어텐션 신경망(150)이 복수의 계층의 서브세트를 포함하고 그리고 네트워크 입력을 프로세싱하여 네트워크 출력을 생성하는 디코더 신경망을 포함하는 경우, 어텐션 서브-계층(120)은 디코더의 계층들 중 하나에 포함될 수 있다.
본 명세서에서 사용되는 바와 같이, "학습된"이라는 용어는 어텐션 신경망(150)의 훈련 동안 오퍼레이션(연산) 또는 값이 조정되었음을 의미한다.
도 2a는 입력 시퀀스에 적용되는 희소(스파스) 어텐션 메커니즘의 예시(200)이다. 위에서 설명한 바와 같이, 희소(sparse) 어텐션 메커니즘은 어텐션 서브-계층의 다중 어텐션 헤드 중 하나 또는 단일 어텐션 헤드를 갖는 어텐션 서브-계층에 의해 적용될 수 있다. 명확성을 위해, 희소 어텐션 메커니즘은 어텐션 서브-계층에 의해 수행되는 것으로 설명되며, 이는 도 2a의 예에서, 희소 어텐션 계층의 단일 어텐션 헤드 또는 희소 어텐션 계층의 다중 어텐션 헤드 중 하나에 대응할 수 있다.
어텐션 메커니즘을 적용하기 위해, 어텐션 서브-계층은 (i) 희소 어텐션 계층에 대한 입력 시퀀스에서 파생된 쿼리 시퀀스(쿼리들의 시퀀스), (ii) 희소 어텐션 계층에 대한 입력 시퀀스에서 파생된 키 시퀀스(키들의 시퀀스), (iii) 희소 어텐션 계층에 대한 입력 시퀀스에서 파생된 값 입력 시퀀스(값 입력들의 시퀀스)를 획득한다.
예를 들어, 서브-계층은 학습된 서로 다른 선형 변환을 입력 시퀀스에 적용하여 쿼리, 키 및 값을 생성할 수 있다.
다시 말해, 서브-계층은 서브-계층에 대한 쿼리 시퀀스를 생성하기 위해 입력 시퀀스에 각각의 쿼리 선형 변환을 적용할 수 있으며, 희소 어텐션 서브-계층에 대한 키 시퀀스를 생성하기 위해 입력 시퀀스에 개별 키 선형 변환을 적용하고, 희소 어텐션 서브-계층에 대한 값 입력 시퀀스를 생성하기 위해 입력 시퀀스에 값 선형 변환을 적용한다. 각 선형 변환은 시퀀스의 각 입력에 해당 학습된 가중치 매트릭스(행렬)를 곱하고 선택적으로 해당 학습된 바이어스를 더하는 것을 포함할 수 있다.
도 2a의 예에서, 입력 시퀀스는 12개의 입력 위치(input positions)를 포함하고, 입력 위치에 대한 쿼리는 y축(210)에 표시되고 12개의 입력 위치에 대한 키는 x축(220)에 표시된다.
그 다음, 서브-계층은 복수의 입력 위치 각각에서 각각의 어텐션된 입력을 포함하는 어텐션된 입력 시퀀스를 생성한다.
특히, 서브-계층은 입력 위치의 제1 프로퍼 서브세트(proper subset)를 식별한다. 도 2a의 예에서, 제1 프로퍼 서브세트는 12개의 입력 위치 중 처음 두 개를 포함한다. 제1 프로퍼 서브세트의 각 입력 위치에 대해, 서브-계층은 모든 입력 위치에 대한 개별 가중치를 생성하기 위해 키 시퀀스의 모든 키에 어텐션하도록 먼저 입력 위치에서 쿼리를 사용한 다음 각각의 가중치에 따라 모든 입력 위치에서 값 입력의 가중치 합(weighted sum)을 계산함으로써 입력 위치에서 어텐션된 입력을 생성한다. 즉, 가중치 합에서 주어진 값 입력에 대한 가중치는 주어진 값 입력에 해당하는 입력 위치에 대한 가중치와 동일하다.
더 자세하게, 제1 서브세트에서 주어진 입력 위치에 대한 가중치는 (i) 주어진 입력 위치에 대한 쿼리 및 (ii) 입력 시퀀스의 모든 입력 위치에 대한 키 매트릭스의 곱에 적용된 스코어링(scoring) 함수, 예를 들어 소프트맥스(softmax) 또는 하드맥스(hardmax) 함수의 출력과 같을 수 있다. 선택적으로, 시스템은 스코어링 함수를 계산하기 전에 상기 곱에 스케일링 인자(scaling factor)를 적용할 수 있다.
따라서, 제1 프로퍼 서브세트의 각 입력 위치에 대한 어텐션된 입력은 제1 프로퍼 서브세트 외부의 모든 위치를 포함하여, 시퀀스의 모든 입력 위치에 대한 입력 위치 및 키와 값에 대한 쿼리에 따라 달라진다.
서브-계층은 또한 입력 위치의 제2 프로퍼 서브세트를 식별하고, 프로퍼 서브세트의 각 입력 위치에 대해 입력 위치의 해당하는 프로퍼 서브세트를 식별한다. 특히, 서브 계층은 제1 프로퍼 서브세트에 없는 위치를 제2 프로퍼 서브세트으로 식별할 수 있으며, 즉, 입력 위치를 제1 및 제2 프로퍼 서브세트으로 나눌 수 있다. 따라서, 도 2a의 예에서, 제2 프로퍼 서브세트의 위치는 제1 프로퍼 서브세트에 없는 나머지 10개의 위치이다.
제2 서브세트의 임의의 주어진 입력 위치에 대한 해당 프로퍼 서브세트는 입력 위치의 제1 프로퍼 서브세트 및 입력 위치의 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치를 포함한다.
제2 프로퍼 서브세트의 각 입력 위치에 대해, 서브-계층은 입력 위치에서 쿼리를 사용하여 입력 위치의 해당 프로퍼 서브세트에 있는 키에만 어텐션하여 해당 프로퍼 서브세트에서 입력 위치 각각에 대한 각각의 가중치를 생성하고 그리고 입력 위치의 해당 프로퍼 서브세트에 대한 각각의 가중치에 따라 입력 위치의 해당 프로퍼 서브세트에서 값 입력의 가중치 합을 계산함으로써 입력 위치에서 어텐션된 입력을 생성한다. 즉, 가중치 합에서 주어진 값 입력에 대한 가중치는 주어진 값 입력에 해당하는 입력 위치에 대한 가중치와 같다.
더 자세하게, 제2 서브세트에서 주어진 입력 위치에 대한 가중치는 (i) 주어진 입력 위치에 대한 쿼리 및 (ii) 입력 위치의 해당하는 프로퍼 서브세트에 대한 키의 매트릭스의 곱에 적용된 스코어링 함수(예를 들어 softmax 또는 hardmax 함수)의 출력과 같을 수 있다. 선택적으로, 시스템은 스코어링 함수를 계산하기 전에 곱에 스케일링 인자를 적용할 수 있다.
보다 구체적으로, 제2 프로퍼 서브세트의 각 특정 위치에 대해, 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치는 제1 프로퍼 서브세트 외부에 있는 입력 위치로부터 무작위로 선택된 하나 이상의 입력 위치를 포함한다.
일부 경우에, 제2 프로퍼 서브세트의 각 특정 위치에 대해, 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치는 제2 프로퍼 서브세트 내의 특정 입력 위치의 고정된 수의 위치의 윈도우(window) 내에 있는 각각의 입력 위치를 포함한다.
따라서, 제2 서브세트의 위치에 대한 쿼리는 입력 시퀀스의 위치에 대한 모든 키보다 훨씬 적은 양의 키를 사용한다. 특히, 주어진 입력 위치에 대한 쿼리는 제1 서브세트의 위치와 제2 서브세트의 소수 위치에 대한 키에만 어텐션하기 갖기 때문에, 주어진 입력 위치에 대한 쿼리가 어텐션하지 않는 제2 서브세트에 많은 위치가 있다.
이 어텐션 스킴은 도 2a에 도시되어 있다.
도 2a에서, 공백 셀(blank cells)(221)은 해당 쿼리와 키 사이에 어텐션이 발생하지 않음을 나타내고, 글로벌 셀(226)은 제1 서브세트의 위치 중 하나를 포함하는 "글로벌 어텐션"를 나타내고, 랜덤 셀(222)은 제2 서브세트의 위치에 대한 쿼리와 제2 서브세트의 다른 위치에 대한 무작위로 선택된 키 세트 사이의 "랜던 어텐션(random attention)"를 나타내고, 윈도우 셀(224)은 제2 서브세트 내의 위치에 대한 쿼리와 위치의 윈도우 내에 있는 위치에 대한 키 세트 각각 사이의 "윈도우 어텐션"을 나타낸다.
보다 구체적으로, 도 2a에 도시된 바와 같이, 제1 프로퍼 서브세트는 시퀀스의 처음 두 입력 위치를 포함하고 그리고 제2 프로퍼 서브세트는 시퀀스의 나머지 10개 입력 위치를 포함한다. 제2 서브세트의 각 위치에 대해, 위치에 대한 쿼리는 무작위로 선택된 두 개의 키와 위치의 사이즈 3의 윈도우 내에 있는 위치에 대한 모든 키에 어텐션한다.
시스템은 다양한 방식으로 하나 이상의 "글로벌 위치", 즉 제1 서브세트에 있는 하나 이상의 위치를 선택할 수 있다.
일례로, 네트워크 입력이 복수의 입력 위치 각각에 각각의 토큰을 갖는 시퀀스인 경우, 어텐션 신경망은 네트워크 입력을 프로세싱하기 전에(예를 들어 네트워크 입력의 시작 부분에) 미리 결정된 하나 이상의 글로벌 토큰을 추가하여 네트워크 입력을 보강(augment)할 수 있고, 그리고 입력 위치의 제1 프로퍼 서브세트는 하나 이상의 글로벌 토큰이 추가되는 위치에 해당할 수 있다.
다른 예로, 네트워크 입력이 복수의 입력 위치 각각에 각각의 토큰을 갖는 시퀀스인 경우, 어텐션 신경망은 고정된 수의 복수의 입력 위치, 예를 들어, 입력 시퀀스의 고정된 수의 초기 위치 또는 최종 위치 또는 고정된 수의 초기 위치 및 고정된 수의 최종 위치를 추가 토큰으로 네트워크 입력을 보강하지 않고, 입력 위치의 제1 프로퍼 서브세트로 지정하도록 구성된다.
주어진 희소 어텐션 계층에 여러 서브-계층("어텐션 헤드")이 있는 경우, 희소 어텐션 계층은 최종 어텐션된 입력 시퀀스를 생성하기 위해 위에서 설명된 바와 같이 각 서브-계층에 의해 생성된 어텐션된 입력 시퀀스를 결합할 수 있다.
또한, 설명된 어텐션 방식은 하드웨어 가속기, 예를 들어 하드웨어에서 매트릭스 곱셈을 수행하는 그래픽 처리 장치(GPU) 및 텐서 처리 장치(TPU)에서의 실행에 최적화되도록 설계되었다. 특히, 위에서 설명한 바와 같이, 설명된 어텐션은 위치의 스몰(small) 서브세트만이 시퀀스의 모든 위치에 어텐션하고 위치의 나머지 서브세트는 위치의 희소 서브세트에만 어텐션하기 때문에 기존의 어텐션 메커니즘보다 유리하다.
어떤 위치가 위치의 제1 서브세트에 있고 그리고 어떤 위치가 위치의 제2 서브세트에 있는 각 위치에 대한 해당 서브세트에 있는지 적절하게 선택함으로써, 설명된 기술은 예를 들어 한 번에 연속 바이트 블록을 로드하는 병합된(coalesced) 메모리 오퍼레티션을 사용할 때 대기 시간 및 처리량 측면에서, 추가적인 컴퓨팅 이점을 제공하도록 설계된 GPU 및 TPU로 인한 추가 이점을 활용할 수 있다.
도 2b는 입력 쿼리 및 키가 블록으로 분할되는 희소 어텐션 방식의 예시(250)이다.
특히, 도 2b에 도시된 예에서, 12개의 입력 위치가 있으며, 쿼리는 y축(210)에 표시되고 키는 x축(220)에 표시되며, 이 예에서 쿼리가 고정된 사이즈(크기)의 쿼리 블록으로 분할되고 키가 고정된 크기의 블록으로 분할된다. 도 2의 예에서, 고정된 크기는 2와 같다.
그런 다음, 어떤 위치가 제1 프로퍼 서브세트에 있고 그리고 어떤 위치가 제2 서브세트의 각 위치에 대해 해당 프로퍼 서브세트에 있는지의 결정은 쿼리 블록 및 키 블록 할당을 고려한다.
글로벌 어텐션을 위해, 시스템은 쿼리 블록 또는 키 블록 중 하나 이상에 해당하는 위치를 제1 프로퍼 서브세트에 포함된 위치로 선택한다. 도 2b의 예에서, 시스템은 제1 프로퍼 서브세트 내의 위치로서 제1 쿼리 블록에 대응하는 입력 위치를 선택하였다.
랜덤(무작위) 어텐션을 위해, 각 쿼리 블록에 대해, 시스템은 키 블록을 무작위로 선택한 다음 쿼리 블록의 입력 위치에 대한 해당 서브세트에 선택된 키 블록에 해당하는 위치를 포함한다. 도 2b의 예에서, 시스템은 각 쿼리 블록에 대해 하나의 키 블록을 무작위로 선택했다.
유사하게, 윈도우 어텐션의 경우, 각 쿼리 블록 j에 대해, 쿼리 블록 j의 각 위치에 대한 해당 프로퍼 서브세트는 키 블록(j - (w-1)/2 ~ j+(w+1)/2)에 해당하는 입력 위치를 포함하고, 여기서 w는 쿼리 블록 j의 위치에 대한 윈도우 크기를 정의하는 양의 상수이다. 도 2b의 예에서, w는 1과 같다.
도 2a와 같이, 공백 셀(221)은 해당 쿼리와 키 사이에 어텐션이 발생하지 않음을 나타내고, 글로벌 셀(226)은 제1 서브세트의 위치 중 하나를 포함하는 "글로벌 어텐션"를 나타내고, 랜덤 셀(222)은 제2 서브세트의 위치에 대한 쿼리와 제2 서브세트의 다른 위치에 대한 무작위로 선택된 키 세트 사이의 "랜덤 어텐션"을 나트내며, 윈도우 셀(224)은 제2 서브세트 내의 위치에 대한 쿼리와 위치의 윈도우 내에 있는 위치에 대한 키 세트 각각 사이의 "윈도우 어텐션"를 나타낸다. 그러나, 도 2b에 도시된 바와 같이, 공백 셀, 글로벌 셀 및 윈도우 셀은 주어진 쿼리 블록 내의 각 쿼리에 대해 동일하다.
쿼리와 키를 블록(blocks)으로 나누어 각 쿼리에 대한 어텐션을 계산하는 데 사용되는 키를 선택함으로써, 시스템은 하드웨어 가속기(예: GPU 또는 TPU)가 하드웨어의 각 쿼리 위치에 대한 가중치를 생성하는 데 필요한 곱셈을 수행하기 위해 쿼리 및 키를 로드할 때 병합된 메모리 오퍼레이션을 사용할 수 있도록 보장하여(연속 바이트 블록을 한 번에 로드), 하나 이상의 하드웨어 가속기에 배포될 때 어텐션 신경망을 사용하여 추론을 수행하는 대기시간(latency)을 줄일 수 있다.
또한, 프레젠테이션의 용이성을 위해 12개의 위치만이 도 2a 및 2b에 도시되었지만, 일반적으로, 서브-계층에 대한 입력 시퀀스는 더 많은 입력 위치를 가질 수 있으며, 제1 프로퍼 서브세트의 위치 수는 입력 시퀀스의 총 위치 수보다 훨씬 작을 수 있다. 특정한 예로서, 입력 시퀀스는 4000개 이상의 위치를 가질 수 있는 반면 전체 시퀀스에 관련된 제1 서브세트에는 100~500개의 위치가 있다. 따라서, 글로벌 토큰을 포함하는 위치의 제1 프로퍼 서브세트는 다른 토큰을 포함하는 제2 프로퍼 서브세트만큼 많은 토큰을 15/100 이하로 포함할 수 있다.
더욱이, 제2 서브세트의 각 입력 위치에 대한 해당 서브세트의 크기(사이즈)는 제2 서브세트의 전체 크기보다 훨씬 작을 수 있으므로 제2 서브세트에 있는 위치에 대한 어텐션은 매우 희소하다. 위의 예에서, 여기서 입력 시퀀스는 4000개 이상의 위치를 갖고 제2 서브세트는 3500~3900개의 위치를 포함하고, 제2 서브세트의 각 위치에 대한 해당 서브세트는 약 300개의 위치만 가질 수 있으므로, 제2 서브세트의 각 위치에 대한 쿼리는 제2 서브세트의 위치에 대한 키의 10/100 이하로 어텐션한다.
도 3은 희소 어텐션 메커니즘을 적용하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 신경망 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그램된 도 1의 신경망 시스템(100)은 프로세스(300)를 수행할 수 있다.
프로세스(300)는 희소 어텐션 계층의 각각의 서브-계층에 의해 수행되어 서브-계층에 대한 개별 어텐션된 입력 시퀀스를 생성할 수 있다.
시스템은 (i) 희소 어텐션 계층에 대한 입력 시퀀스로부터 파생된 쿼리 시퀀스(쿼리들의 시퀀스) -쿼리 시퀀스는 복수의 입력 위치 각각에서 개별 쿼리를 가짐-, (ii) 희소 어텐션 계층에 대한 입력 시퀀스로부터 파생된 키 시퀀스(키들의 시퀀스) - 키 시퀀스는 복수의 입력 위치 각각에 각각의 키를 가짐-; 그리고 (iii) 희소 어텐션 계층에 대한 입력 시퀀스로부터 파생된 값 입력 시퀀스(값 입력들의 시퀀스)를 수신하며, 값 입력들의 시퀀스는 복수의 입력 위치 각각에서 각각의 값 입력을 가진다(단계 302).
그 다음, 시스템은 복수의 입력 위치 각각에서 각각의 어텐션된 입력(attended input)을 갖는 어텐션된 입력 시퀀스를 생성한다(단계 304).
특히, 입력 위치의 제1 프로퍼 서브세트(proper subset)의 각 입력 위치에 대해, 시스템은 입력 시퀀스의 모든 위치에 대해 어텐션함으로써(attending) 위치에서 어텐션된 입력을 생성한다(단계 306). 더 구체적으로, 제1 프로퍼 서브세트에 있는 주어진 입력 위치에 대해, 시스템은 먼저 모든 입력 위치에 대한 개별 가중치를 생성하기 위해 키 시퀀스의 모든 키에 어텐션하기 위해 입력 위치에서 쿼리를 사용한 다음 각 가중치에 따라 모든 입력 위치에서 값 입력들의 가중치 합(weighted sum)을 계산함으로써 주어진 입력 위치에서 어텐션된 입력을 생성한다.
입력 위치의 제2 프로퍼 서브세트의 각 입력 위치에 대해, 시스템은 입력 시퀀스의 입력 위치의 프로퍼 서브세트, 즉 전체보다 훨씬 적은 수에 어텐션함으로써 입력 위치에서 어텐션된 입력을 생성한다(단계 308).
더 구체적으로, 제2 프로퍼 서브세트에 있는 주어진 입력 위치에 대해, 시스템은 먼저 입력 위치의 쿼리를 사용하여 입력 위치의 해당 프로퍼 서브세트의 키에만 어텐션하여 해당 프로퍼 서브세트의 입력 위치 각각에 대한 각각의 가중치를 생성하고, 그 다음 입력 위치의 해당 프로퍼 서브세트에 대한 각각의 가중치에 따라 입력 위치의 해당 프로퍼 서브세트에서 값 입력들의 가중치 합을 계산함으로써 주어진 입력 위치에서 어텐션된 입력을 생성한다.
위에서 설명한 바와 같이, 제2 프로퍼 서브세트의 각 입력 위치에 대한 입력 위치의 해당 프로퍼 서브세트는 입력 위치의 제1 프로퍼 서브세트; 및 입력 위치의 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치를 포함한다.
주어진 네트워크 입력을 프로세싱하는 동안, 어텐션 신경망의 각 희소 어텐션 계층에 대해, 시스템은 입력 시퀀스를 계층로 업데이트하기 위해 프로세스(300)를 수행할 수 있다. 어텐션 신경망의 모든 어텐션 계층에 대해 이 프로세싱을 반복적으로 수행한 다음 하나 이상의 출력 계층(예를 들어, 선택적으로 소프트맥스 계층 또는 더 일반적으로 다층 퍼셉트론(MLP: multi-layer perceptron)이 뒤따르는 하나 이상의 선형 계층)을 사용하여 어텐션 신경망의 마지막 어텐션 계층에 의해 생성된 출력 시퀀스의 적어도 일부를 프로세싱함으로써, 시스템은 수신된 네트워크 입력에 대해 네트워크 출력을 생성할 수 있다.
즉, 프로세스(300)는 원하는 출력, 즉 입력 시퀀스에 대해 시스템에 의해 생성되어야 하는 출력이 알려지지 않은 입력에 대한 출력을 예측하는 부분으로서 수행될 수 있다.
프로세스(300)는 또한 어텐션 신경망의 파라미터에 대해 훈련된 값을 결정하기 위해 어텐션 신경망을 훈련시키기 위해, 훈련 데이터 세트에서 파생된 입력(예, 시스템에서 생성해야 하는 출력이 알려진 입력 세트에서 파생된 입력)을 프로세싱하는 부분으로서 수행될 수 있다. 시스템은, 어텐션 신경망이 수행하도록 구성된 태스크에 적합한 목적 함수를 최적화하기 위해, 신경망의 어텐션 계층 및 출력 계층(들)을 훈련하기 위해 기존의 기계 학습 훈련 기술의 일부로서(예를 들어, 기존 옵티마이저(optimizer)를 사용하는 역전파 훈련 기법을 사용한 경사 하강법)(예를 들어, 확률적 경사 하강법, RMSprop 또는 Adam 옵티마이저) 훈련 데이터 세트로부터 선택된 입력에 대해 프로세스(300)를 반복적으로 수행할 수 있다. 훈련하는 동안, 시스템은 속도, 효율성 또는 훈련 과정의 두 가지 모두를 개선하기 위해 여러 기술을 통합할 수 있다. 예를 들어, 시스템은 과적합을 줄이기 위해 드롭아웃(dropout), 레이블 평활화(label smoothing) 또는 둘 다를 사용할 수 있다. 또 다른 예로서, 시스템은 어텐션 신경망의 여러 인스턴스를 병렬로 훈련하는 분산 아키텍처를 사용하여 훈련을 수행할 수 있다. 또한, 시스템은 먼저 BERT 손실 또는 기타 비지도된(unsupervised) 손실을 최소화하기 위해 비지도된 학습을 통해 대규모 비지도된 데이터 세트에 대해 신경망을 사전 훈련하고, 그런 다음 태스크별 훈련 데이터에 대해 신경망을 미세 조정하여 태스크의 목적 함수를 최적화한다.
본 명세서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 구성된 시스템이 특정 오퍼레이션 또는 액션을 수행하도록 구성된다는 것은 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 작동 중에 시스템이 오퍼레이션 또는 액션을 수행하도록 하는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 오퍼레이션 또는 액션을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 프로세싱 장치에 의해 실행될 때 장치가 오퍼레이션 또는 액션을 수행하게 하는 명령어를 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 기능적 동작의 실시예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 프로세싱 장치에 의해 실행되거나 데이터 프로세싱 장치의 작동을 제어하기 위해 유형의 비일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능한 저장 장치, 기계 판독 가능한 저장 기판, 랜덤 또는 직렬 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어는 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 프로세싱 장치"라는 용어는 데이터 프로세싱 하드웨어를 말하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 종류의 장치, 장치 및 기계를 포함한다. 장치는 또한 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 논리 회로일 수 있거나 추가로 포함할 수 있다. 장치는, 하드웨어에 추가하여, 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 하거나 설명할 수 있는 컴퓨터 프로그램은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성할 수 있으며; 그리고 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 장치를 포함하여 모든 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부에 저장될 수 있으며, 예를 들어, 마크업 언어 문서, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일, 예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 부분을 저장하는 파일에 저장된 하나 이상의 스크립트일 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 데이터 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서, "데이터베이스"라는 용어는 모든 데이터 모음을 지칭하는 데 광범위하게 사용된다. 데이터는 특정 방식으로 구조화되거나 전혀 구조화될 필요가 없으며 하나 이상의 위치에 있는 저장 장치에 저장할 수 있다. 따라서 예를 들어, 인덱스 데이터베이스는 각각 다르게 구성되고 액세스될 수 있는 여러 데이터 컬렉션을 포함할 수 있다.
본 명세서에서 용어 "엔진"은 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴포넌트로 구현된다. 일부 경우 하나 이상의 컴퓨터가 특정 엔진 전용이며; 다른 경우에는 여러 엔진이 동일한 컴퓨터에 설치되어 실행될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 다, 또는 다른 종류의 중앙 프로세싱 장치를 기반으로 할 수 있다. 일반적으로 중앙 프로세싱 장치는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어와 데이터를 수신한다. 컴퓨터의 필수 요소는 명령어를 수행하거나 실행하기 위한 중앙 프로세싱 장치와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 프로세싱 장치와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 연결된다. 그러나 컴퓨터에는 그러한 장치가 필요하지 않는다. 또한, 컴퓨터는 휴대 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플계층, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 장치(예를 들어 USB(Universal Serial Bus) 플래시 드라이브)와 같은 다른 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함하며, 예를 들어 반도체 메모리 장치, 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치를 포함하고; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크를 포함하고; 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함할 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예들은 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터 및 키보드 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치를 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 장치도 사용자와의 상호작용을 제공하는 데 사용할 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호작용할 수 있으며; 예를 들어 웹 브라우저에서 수신된 요청에 대한 응답으로 사용자 장치의 웹 브라우저에 웹 페이지를 전송한다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 장치(예: 메시징 애플리케이션을 실행하는 스마트폰)에 보내고 사용자로부터 응답 메시지를 수신하여 사용자와 상호작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 프로세싱 장치는 또한 예를 들어 기계 학습 트레이닝 또는 프로덕션, 즉 추론, 워크로드의 공통 및 컴퓨팅 집약적 부분을 프로세싱하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 기계 학습 프레임워크, 예를 들어 텐서플로우(TensorFlow) 프레임워크, MCT(Microsoft Cognitive Toolkit) 프레임워크, AS(Apache Singa) 프레임워크 또는 AM(Apache MXNet) 프레임워크를 사용하여 구현 및 배포할 수 있다.
본 명세서에 기술된 주제의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트, 그래픽 사용자 인터페이스가 있는 클라이언트 컴퓨터, 웹 브라우저 또는 사용자가 본 명세서에 설명된 주제의 구현과 상호작용할 수 있는 앱과 같은 프론트 엔드 컴포넌트, 또는 하나 이상의 백엔드 컴포넌트, 미들웨어 컴포넌트, 프론트 엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 예를 들어 클라이언트로서 작용하는 장치와 상호작용하는 사용자로부터 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예를 들어 HTML 페이지를 사용자 장치에 전송한다. 사용자 장치에서 생성된 데이터, 예를 들어 사용자 상호작용의 결과는 장치로부터 서버에서 수신될 수 있다.
본 명세서는 많은 특정 구현 세부사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징의 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 컨텍스트에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합으로 다중 실시예에서 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그러한 것으로 청구될 수 있지만, 청구된 조합의 하나 이상의 특징은 일부 경우에 조합에서 제거될 수 있으며 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 도면에 도시되어 있고 청구범위에 특정 순서로 인용되어 있지만, 이는 그러한 동작이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하거나 또는 모든 예시된 동작이 원하는 결과를 얻을 수 있다. 특정 상황에서는 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품에 패키징될 수 있음을 이해해야 한다.
주제(요지)의 특정 실시예가 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 예를 들어, 청구범위에 언급된 동작는 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 일례로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지는 않는다. 경우에 따라 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다.

Claims (12)

  1. 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템으로서, 상기 시스템은 하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 어텐션(attention) 신경망을 구현하게 하는 명령어를 저장한 하나 이상의 저장 장치들을 포함하며;
    상기 어텐션 신경망은 상기 기계 학습 태스크를 수행하도록 구성되며, 상기 어텐션 신경망은 하나 이상의 희소 어텐션 계층들을 포함하고, 각 희소 어텐션 계층은 하나 이상의 희소 어텐션 서브-계층들을 포함하고,
    각 희소 어텐션 서브-계층은,
    상기 희소 어텐션 계층에 대한 입력 시퀀스로부터 파생된(derived) 쿼리들의 시퀀스를 수신하고 -상기 쿼리들의 시퀀스는 복수의 입력 위치들 각각에서 각각의 쿼리를 가짐-;
    상기 희소 어텐션 계층에 대한 상기 입력 시퀀스에서 파생된 키들의 시퀀스를 수신하고 -상기 키들의 시퀀스는 상기 복수의 입력 위치들 각각에 각각의 키를 가짐-;
    상기 희소 어텐션 계층에 대한 상기 입력 시퀀스에서 파생된 값 입력들의 시퀀스를 수신하고 -상기 값 입력들의 시퀀스는 상기 복수의 입력 위치들 각각에서 각각의 값 입력을 가짐-; 그리고
    상기 복수의 입력 위치들의 각각의 입력 위치에서 각각의 어텐션된 입력(attended input)을 포함하는 어텐션된 입력 시퀀스를 생성하도록 구성되며,
    상기 어텐션된 입력 시퀀스를 생성하는 것은,
    상기 입력 위치들의 제1 프로퍼 서브세트(proper subset)의 각 입력 위치에 대해,
    상기 입력 위치들 모두에 대한 각각의 가중치를 생성하기 위해 상기 키들의 시퀀스의 모든 키들을 어텐션하도록 상기 입력 위치에서 상기 쿼리를 사용하고 그리고 상기 각각의 가중치에 따라 상기 입력 위치들 모두에서 상기 값 입력들의 가중치 합을 계산함으로써, 상기 입력 위치에서 상기 어텐션된 입력을 생성하는 것과; 그리고
    상기 입력 위치들의 제2 프로퍼 서브세트의 각 입력 위치에 대해,
    해당 프로퍼 서브세트의 상기 입력 위치들 각각에 대한 각각의 가중치를 생성하기 위해 상기 입력 위치들의 상기 해당 프로퍼 서브세트의 상기 키들만을 어텐션하도록 상기 입력 위치에서 상기 쿼리를 사용하고 그리고 상기 입력 위치들의 상기 해당 프로퍼 서브세트에 대한 각각의 가중치에 따라 상기 입력 위치들의 상기 해당 프로퍼 서브세트에서 상기 값 입력들의 가중치 합을 계산함으로써, 상기 입력 위치에서 상기 어텐션된 입력을 생성하는 것을 포함하며;
    상기 제2 프로퍼 서브세트의 각 입력 위치에 대한 입력 위치들의 상기 해당 프로퍼 서브세트는,
    상기 입력 위치들의 제1 프로퍼 서브세트; 그리고
    상기 입력 위치들의 상기 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치들을 포함하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  2. 제1항에 있어서, 상기 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치ㄷ들은,
    상기 제1 프로퍼 서브세트 외부에 있는 상기 입력 위치들에서 무작위로 선택된 하나 이상의 입력 위치들을 포함하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 제1 프로퍼 서브세트 외부의 하나 이상의 입력 위치들은,
    상기 제2 프로퍼 서브세트의 상기 입력 위치의 고정된 수 위치(fixed number position)의 윈도우 내에 있는 각 입력 위치를 포함하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 네트워크 입력은 복수의 입력 위치들 각각에 각각의 토큰을 갖는 시퀀스이고, 그리고 상기 어텐션 신경망은 상기 네트워크 입력을 프로세싱하기 전에 하나 이상의 미리 결정된 글로벌 토큰들을 추가함으로써 상기 네트워크 입력을 증강(augment)하도록 구성되고, 그리고 상기 입력 위치들의 제1 프로퍼 서브세트는 상기 하나 이상의 글로벌 토큰들이 추가되는 위치들에 대응하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 네트워크 입력은 복수의 입력 위치들 각각에 각각의 토큰을 갖는 시퀀스이고, 상기 어텐션 신경망은 상기 복수의 입력 위치들의 고정된 수를 상기 입력 위치들의 제1 프로퍼 서브세트로 지정하도록 구성되는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  6. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 하나 이상의 희소 어텐션 계층들 각각은 각 희소 어텐션 서브-계층에 대해, 상기 입력 시퀀스에 대해 개별 쿼리 선형 변환을 적용하여 상기 서브-계층에 대한 상기 쿼리들의 시퀀스를 생성하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  7. 선행하는 청구항 중 어느 한 항에 있어서, 상기 하나 이상의 희소 어텐션 계층들 각각은 각 희소 어텐션 서브-계층에 대해, 상기 입력 시퀀스에 대해 개별 키 선형 변환을 적용하여 상기 희소 어텐션 서브-계층에 대한 상기 키들의 시퀀스를 생성하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  8. 선행하는 청구항 중 어느 한 항에 있어서, 상기 하나 이상의 희소 어텐션 계층들 각각은, 각 희소 어텐션 서브-계층에 대해, 상기 입력 시퀀스에 대해 개별 값 선형 변환을 적용하여 상기 희소 어텐션 서브-계층에 대한 상기 값 입력들의 시퀀스를 생성하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  9. 선행하는 청구항 중 어느 한 항에 있어서, 각 희소 어텐션 계층은,
    상기 하나 이상의 서브-계층들에 의해 생성된 어텐션된 입력 시퀀스들에서 최종 어텐션된 입력 시퀀스를 생성하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  10. 제9항에 있어서, 각 희소 어텐션 계층은,
    상기 최종 어텐션된 입력 시퀀스로부터 계층에 대한 출력 시퀀스를 생성하도록 구성된 하나 이상의 위치별 피드-포워드 계층들을 더 포함하며, 상기 출력 시퀀스는 상기 복수의 입력 위치들 각각에서의 계층 출력을 포함하고, 그리고
    상기 생성하는 것은, 상기 복수의 입력 위치들 각각에 대해,
    상기 입력 위치에서 어텐션된 계층 입력을 수신하고, 그리고
    상기 입력 위치에 대한 계층 출력을 생성하기 위해 상기 입력 위치에서 어텐션된 계층 입력에 변환 시퀀스를 적용하는 것을 포함하는 것을 특징으로 하는 네트워크 출력을 생성하기 위해 네트워크 입력에 대해 기계 학습 태스크를 수행하는 시스템.
  11. 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 선행하는 청구항 중 어느 한 항의 어텐션 신경망을 구현하게 하는 명령어를 저장한 하나 이상의 컴퓨터 판독가능 저장 매체.
  12. 방법으로서,
    네트워크 입력을 수신하는 단계; 그리고
    선행하는 청구항 중 어느 한 항의 어텐션 신경망을 사용하여 상기 네트워크 입력을 프로세싱하여 상기 네트워크 입력에 대한 네트워크 출력을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020227038621A 2020-06-05 2021-06-07 희소 어텐션 메커니즘이 있는 어텐션 신경망 KR20220164559A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063035632P 2020-06-05 2020-06-05
US63/035,632 2020-06-05
PCT/US2021/036252 WO2021248139A1 (en) 2020-06-05 2021-06-07 Attention neural networks with sparse attention mechanisms

Publications (1)

Publication Number Publication Date
KR20220164559A true KR20220164559A (ko) 2022-12-13

Family

ID=76921298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227038621A KR20220164559A (ko) 2020-06-05 2021-06-07 희소 어텐션 메커니즘이 있는 어텐션 신경망

Country Status (6)

Country Link
US (2) US11238332B2 (ko)
EP (1) EP4121908A1 (ko)
JP (1) JP7502469B2 (ko)
KR (1) KR20220164559A (ko)
CN (1) CN115552417A (ko)
WO (1) WO2021248139A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220164626A1 (en) * 2020-11-20 2022-05-26 Microsoft Technology Licensing, Llc. Automated merge conflict resolution with transformers
CN114417856B (zh) * 2021-12-29 2022-11-04 北京百度网讯科技有限公司 文本的稀疏编码方法、装置及电子设备
CN114640695B (zh) * 2022-04-24 2023-04-07 上海交通大学 一种智能工厂基于长序列双预测和informer的高频时序数据有效传输方法
CN114996431B (zh) * 2022-08-01 2022-11-04 湖南大学 一种基于混合注意力的人机对话生成方法、系统及介质
CN115081752B (zh) * 2022-08-11 2022-11-22 浙江君同智能科技有限责任公司 黑灰产众包流量预测装置及方法
CN115392260B (zh) * 2022-10-31 2023-04-07 暨南大学 一种面向特定目标的社交媒体推文情感分析方法

Also Published As

Publication number Publication date
WO2021248139A1 (en) 2021-12-09
US11238332B2 (en) 2022-02-01
JP2023529801A (ja) 2023-07-12
EP4121908A1 (en) 2023-01-25
US20220156553A1 (en) 2022-05-19
CN115552417A (zh) 2022-12-30
US20210383191A1 (en) 2021-12-09
JP7502469B2 (ja) 2024-06-18

Similar Documents

Publication Publication Date Title
JP7502469B2 (ja) スパースアテンションメカニズムを備えたアテンションニューラルネットワーク
EP3745394B1 (en) End-to-end text-to-speech conversion
US20200251099A1 (en) Generating Target Sequences From Input Sequences Using Partial Conditioning
US10083169B1 (en) Topic-based sequence modeling neural networks
US11080589B2 (en) Sequence processing using online attention
US20210279576A1 (en) Attention neural networks with talking heads attention
US10789942B2 (en) Word embedding system
US20210248473A1 (en) Attention neural networks with linear units
US20230222318A1 (en) Attention neural networks with conditional computation
EP3602417A1 (en) Selecting answer spans from electronic documents using machine learning
US11481609B2 (en) Computationally efficient expressive output layers for neural networks
CN114467096A (zh) 增强基于注意力的神经网络以选择性地关注过去的输入
US20230107409A1 (en) Ensembling mixture-of-experts neural networks
US11625572B2 (en) Recurrent neural networks for online sequence generation
US20230316055A1 (en) Attention neural networks with parallel attention and feed-forward layers
US20240013769A1 (en) Vocabulary selection for text processing tasks using power indices
WO2023059831A1 (en) Using memory to augment self-attention in neural networks
US20240078379A1 (en) Attention neural networks with n-grammer layers
US20230351188A1 (en) Neural networks with switch layers
US20220367052A1 (en) Neural networks with feedforward spatial transformation units
US20230177309A1 (en) Training conditional computation neural networks using reinforcement learning
WO2023147144A1 (en) Attention neural networks with gated attention units
EP4396729A1 (en) Using memory to augment self-attention in neural networks