Transfomer 논문

이상억·2024년 7월 5일

AI

목록 보기
1/5

Abstract

  • 주요 시퀀스 변환 모델들은 복잡한 순환 신경망이나 컨볼루션 신경망을 기반으로 하며, 인코더와 디코더를 어텐션 메커니즘으로 연결
  • 순환과 컨볼루션을 배제하고 어텐션 메커니즘만을 사용하는 새로운 단순 네트워크 아키텍처인 Transformer를 제안
  • Transformer는 기계 번역 작업에서 뛰어난 성능을 보이며, 병렬 처리 능력이 우수하고 훈련 시간이 적게 듦
    - WMT 2014 영어-독일어 번역 작업에서 28.4 BLEU를 달성
    - 영어-프랑스어 번역 작업에서는 41.8 BLEU로 새로운 최고 점수를 기록

Introduction

  • 순환 신경망(Recurrent Neural Networks), 장단기 메모리(Long Short-Term Memory, LSTM), 게이트드 순환 신경망(Gated Recurrent Neural Networks) 특히 언어 모델링 및 기계 번역과 같은 시퀀스 모델링 및 변환 문제에서 최첨단 접근 방식으로 확고히 자리 잡았음. 이후 수 많은 노력들이 순환 언어 모델과 인코더-디코더 아키텍처의 경계를 확장하고 있음

  • 순환 모델은 이전 은닉 상태 h(t-1)와 위치 t의 입력을 함수로 사용하여 은닉 상태 h(t)의 시퀀스를 생성함
  • 이러한 순차적 특성은 훈련 예제 내에서 병렬 처리를 불가능하게 하며 시퀀스 길이가 길어질수록 메모리 제약으로 인해 예제 간 배치가 제한됨
  • 팩테라이제이션 트릭 및 조건부 계산을 통해 계산 효율성을 크게 향상시켰지만 순차적 계산의 근본적인 제약은 해결 못함

  • 어텐션 메커니즘은 입력 또는 출력 시퀀스의 거리에 관계없이 의존성을 모델링 할 수 있게 한다.
  • 그러나 몇몇 경우를 제외하고 어텐션 메커니즘은 순환신경망과 함께 사용된다.
  • 이 연구는 입력과 출력 간의 전역 의존성을 이끌기 위해 전적으로 어텐션 메커니즘에 의존하는 모델 아키텍처인 Trasnformer를 제안

Background

  • 순차적 계산을 줄이는 목표는 Extended Neural GPU, ByteNet, ConvS2S와 같은 모델들의 기초가 됨. 이들은 컨볼루션 신경망을 사용하여 모든 입력 및 출력 위치에 대해 병렬로 은닉 표현을 계산. 그러나 임의의 두 위치 간 신호를 관련시키기 위한 연산 수는 ConvS2S의 경우 선형적으로, ByteNet의 경우 로그적으로 증가하여 먼 위치 간 의존성 학습이 어렵다. Transformer는 이러한 연산 수를 상수로 줄이지만, 어텐션 가중치의 평균화로 인해 유효 해상도가 감소할 수 있다. 이를 다중 헤드 어텐션으로 해결.

  • self-attention은 단일 시퀀스의 다른 위치를 관련시키는 어텐션 메커니즘으로 시퀀스의 표현을 계산함.

  • Transformer는 시퀀스 정렬 RNN이나 컨볼루션을 사용하지 않고 자기-어텐션만을 사용하여 입력과 출력의 표현을 계산하는 최초의 변환 모델임


Model Architecture



  • 대부분의 경쟁력 있는 신경망 시퀀스 변환 모델들은 인코더-디코더 구조를 가지고 있다.
  • 인코더는 심볼 표현의 입력 시퀀스 (x1,...,xn)(x_1, ..., x_n)를 연속적인 표현 시퀀스 z=(z1,...,zn)z = (z_1, ..., z_n)로 매핑
  • 디코더는 z를 기반으로 심볼의 출력 시퀀스 (y1,...,ym)(y_1, ..., y_m)를 한 번에 하나씩 생성
  • 각 단계에서 모델은 자동 회귀적(auto-regressive)이며, 다음 심볼을 생성할 때 이전에 생성된 심볼을 추가 입력으로 사용

Transformer는 인코더와 디코더 모두에 대해 스택된 자기-어텐션과 점별 완전 연결 층(point-wise fully connected layer)을 사용하여 이 전체 구조를 따르며, 이는 각각 그림의 왼쪽과 오른쪽 절반에 나타나 있다.


Encoder and Decoder Stack

Encoder

  • N = 6개의 동일한 층으로 구성된 스택

  • 각 층은 두 개의 서브층을 가지고 있음.

  • 첫 번째 서브층은 멀티헤드 자기-어텐션 메커니즘 (Multi-head self-attention mechanism) , 이것은 입력 시퀀스의 다른 위치 간의 관련성을 계산.

  • 두 번째 서브층은 단순 위치별 완전 연결 피드포워드 네트워크 (Position-wise fully connected feed-forward network)

  • 서브층 주위에 잔차 연결(residual connection)을 사용하고, 그 뒤에 층 정규화(layer normalization)를 수행

  • 즉, 각 서브층의 출력은 LayerNorm(x + Sublayer(x))이며, 여기서 Sublayer(x)는 서브층 자체에 의해 구현된 함수

  • 이러한 잔차 연결을 용이하게 하기 위해, 모델의 모든 서브층과 임베딩 층은 d_model = 512의 차원을 가진 출력을 생성.

Decoder

  • N = 6개의 동일한 층으로 구성된 스택
  • 각 인코더 층의 두 서브층 외에도, 디코더는 인코더 스택의 출력을 대상으로 멀티헤드 어텐션을 수행하는 세 번째 서브층을 추가
  • 인코더와 마찬가지로, 우리는 각 서브층 주위에 잔차 연결을 사용하고, 그 뒤에 층 정규화를 수행
  • 자기-어텐션 서브층을 수정하여 각 위치가 이후의 위치에 주의를 기울이지 않도록 마스킹과 출력 임베딩이 한 위치씩 오프셋되는 사실을 결합하여, 위치 i에 대한 예측이 i보다 작은 위치에서 알려진 출력에만 의존할 수 있도록 함

Attention



  • 어텐션 함수는 쿼리(query)와 일련의 키-값(key-value) 쌍을 출력으로 매핑하는 것으로 설명할 수 있음

  • 쿼리, 키, 값, 출력은 모두 벡터, 다차원 공간에서의 위치를 나타내며, 각 차원은 입력 데이터의 특정 특징이나 속성을 반영

  • 어텐션 메커니즘에서 벡터는 다음과 같은 역할을 함:

    • 쿼리 벡터 (Query Vector): 특정 입력에 대해 관련된 정보를 찾기 위해 사용되는 벡터. 예를 들어, 번역 모델에서는 현재 번역할 단어의 벡터가 쿼리 벡터가 될 수 있다.

    • 키 벡터 (Key Vector): 데이터베이스에서 레코드를 식별하는 키와 유사하게, 각 값 벡터와 쌍을 이루어 특정 위치나 단어를 식별하는 데 사용되는 벡터다.

    • 값 벡터 (Value Vector): 실제 정보를 담고 있는 벡터로, 각 키 벡터와 연결되어 있다. 최종 출력은 이 값 벡터들의 가중 합으로 계산.

    • 출력 벡터 (Output Vector): 어텐션 메커니즘의 결과로 얻어진 벡터로, 쿼리 벡터와 가장 관련 있는 값 벡터들의 가중 합으로 구성.

  • 각 값에 할당된 가중치는 해당 키와 쿼리의 호환성 함수(compatibility function)에 의해 계산

Attention- Scaled Dot-Product Attention

  • 우리의 특정 어텐션 메커니즘을 "스케일된 점곱 어텐션(Scaled Dot-Product Attention)"이라고 부름

  • 입력은 차원  dk\textstyle\ d_k 의 쿼리와 키, 그리고 차원  dv\textstyle\ d_v 의 값을 포함

  • 쿼리와 모든 키의 점곱을 계산하고 각 점곱을 dk\textstyle\sqrt d_k 로 나눈 후

  • Softmax 함수를 적용하여 값에 대한 가중치를 얻음

  • 이러한 가중치를 사용하여 값(values)의 가중 합을 계산하여 출력을 생성

가산 어텐션(additive attention), 닷-프로덕트 어텐션(dot-product attention)

  • 가장 많이 사용되는 두 가지 어텐션 함수

  • 닷-프로덕트 어텐션(dot-product attention)은 스케일링 인자 dk\textstyle\sqrt d_k 를 제외하고는 우리의 알고리즘과 동일.

  • 닷-프로덕트 어텐션은 고도로 최적화된 행렬 곱셈 코드를 사용하여 구현할 수 있으므로 실제로는 훨씬 빠르고 공간 효율적입니다.

  • 가산 어텐션은  dk\textstyle\ d_k 차원의 은닉층을 가진 피드포워드 네트워크를 사용하여 호환성 함수를 계산

  • 작은  dk\textstyle\ d_k 값의 경우 두 메커니즘은 유사하게 작동, 큰  dk\textstyle\ d_k 값에서는 가산 어텐션이 스케일링 없는 닷-프로덕트 어텐션보다 성능이 우수

  •  dk\textstyle\ d_k 값의 경우 점곱의 크기가 커져서 소프트맥스 함수가 매우 작은 기울기를 갖는 영역으로 밀려날 수 있음. 이를 방지하기 위해 접곰을 dk\textstyle\sqrt d_k 로 나눠 스케일링


    Attention-Multi-Head Attention


  • dmodeld_{model} 차원의 키(key), 값(value) 및 쿼리(query) 대신, 이들을 h번 선형 투영하여 서로 다른  dk\textstyle\ d_k,  dk\textstyle\ d_k dv\textstyle\ d_v 차원으로 학습

  • 각각의 이러한 투영된 쿼리, 키 및 값 버전에 대해 병렬로 어텐션 함수를 수행

  • 이로부터 dv 차원의 출력 값을 얻음

  • 이것들은 연결(concatenated)되어 다시 한 번 투영되어 최종 값으로 변환

  • 다중 헤드 어텐션은 모델이 서로 다른 표현 부분 공간에서 다른 위치의 정보에 공동으로 어텐션할 수 있게 함

  • 단일 어텐션 헤드에서는 평균화가 이를 억제함

멀티헤드 어텐션은 다음과 같이 수식으로 나타낼 수 있다.
MultiHead(Q,K,V)=Concat(head1,.....,headh)WOMultiHead(Q,K,V) = Concat(head_1,.....,head_h)W^O

여기서 각 헤드(headi)는 다음과 같이 계산
Headi=Attention(QWiQ,KWiK,VWiV)Head_i = Attention(QW_i^Q,KW_i^K,VW_i^V)

  • 여기서 WiQW_i^Q, WiKW_i^K, WiVW_i^V는 학습 가능한 파라미터 행렬로, 각각 dmodel 차원에서  dk\textstyle\ d_k,  dk\textstyle\ d_k dv\textstyle\ d_v 차원으로 투영한다.
  • WOW^O는 최종 출력에 대한 파라미터 행렬이다
  • 이 연구에서는 h = 8 개의 병렬 어텐션 레이어 또는 헤드를 사용. 각각의 헤드에는 dkd_k = dvd_v = dmodeld_{model}/h = 64를 사용. 각 헤드의 차원이 줄어들기 때문에 전체 계산 비용은 전체 차원의 단일 헤드 어텐션과 유사.

Attention-Applications of Attention in our Model


Transformer는 다음 세 가지 방식으로 multi-head attention을 사용
1. Encoder-Decoder Attention
인코더-디코더 어텐션" 레이어에서 쿼리는 이전 디코더 레이어에서 가져오고, 메모리 키(key)와 값(value)은 인코더의 출력에서 가져온다.

  • 이는 디코더의 각 위치가 입력 시퀀스의 모든 위치에 어텐션할 수 있도록 함
  • 이는 일반적인 인코더-디코더 어텐션 메커니즘을 모방하며, 시퀀스 투 시퀀스 모델에서 사용됨.

2. Encoder Self-Attention

  • 인코더에는 자기 어텐션 레이어가 포함되어 있음
  • 자기 어텐션 레이어에서 모든 키, 값 및 쿼리는 같은 위치에서 온 것
  • 이 경우 인코더의 각 위치는 인코더의 이전 레이어의 모든 위치에 어텐션할 수 있다.

3. Decoder Self-Attention

  • 디코더의 자기 어텐션 레이어에서 각 위치는 해당 위치를 포함한 디코더의 모든 위치에 어텐션할 수 있다.
  • 디코더의 자기 어텐션에서는 왼쪽 방향의 정보 흐름을 방지하여 자기회귀적 특성을 유지하기 위해 마스킹을 적용
  • 이를 위해 scaled dot-product attention 내에서 softmax의 입력에서 모든 불법적인 연결에 대해 값들을 -∞로 설정하여 마스킹

Position-wise Feed-Forward Networks

  • 인코더와 디코더의 각 레이어는 어텐션 서브레이어 외에도, 각 위치에 대해 동일하게 적용되는 완전 연결 피드포워드 네트워크를 포함
  • Feed-Forward Networks는 ReLU 활성화 함수를 사용하는 두 개의 선형 변환으로 구성

FFN(x)=max(0,xW1+b1)W2+b2FFN(x) = max(0, xW_1 + b_1)W_2 + b_2
여기서 x는 입력 벡터로 각 위치에서의 입력 신호를 나타냄, W1,b1W_1,b_1는 첫 번째 선형 변환의 가중치 행렬과 편향 벡터, W2,b2W_2,b_2는 두 번째 선형 변환의 가중치 행렬과 편향 벡터. ReLU 함수를 거친 결과에 이 선형 변환을 적용하여 최종 FFN의 출력을 생성

  • 각 위치의 입력에 대해 동일한 변환을 수행하지만, 각 레이어마다 다른 가중치와 편향을 사용하여 각 위치에서의 특성을 다양하게 변환하고, 비선형성을 추가하여 복잡한 패턴을 학습할 수 있음
  • 이는 커널 크기가 1인 두 개의 합성곱(convolution)으로 설명할 수도 있다.

Attention-Embeddings and Softmax


Transformer 모델에서의 임베딩 처리 방식과 출력 예측 과정에 대한 설명

  • 입출력 토근을 dmodeld_{model} 차원의 벡터로 변환하기 위해 임베딩을 사용

  • 디코더의 출력을 다음 토큰의 확률로 변환하기 위해 일반적인 선형 변환과 Softmax() 사용

  • 모델에서 두 임베딩레이어와 Softmax 이전의 선형 변환사이에서 동일한 가중치 행렬을 고유

  • 임베딩 레이어에서는 이 가중치 행렬을 √dmodel만큼 곱하여 사용


Attention-Positional Encoding

  • Transformer는 순환(recurrence)과 컨볼루션(convolution)을 포함하지 않음

  • 시퀀스의 순서를 활용하기 위해 퀀스 내 토큰의 상대적이거나 절대적인 위치에 대한 정보를 주입해야 함

  • 이를 위해 인코더와 디코더 스택의 가장 아래에 "위치 인코딩"을 입력 임베딩에 추가

  • 위치 인코딩은 임베딩과 동일한 차원 dmodel을 가지므로 두 값을 더할 수 있다.

  • 학습 가능한 위치 인코딩과 고정된 위치 인코딩 있음

  • Transformer에서는 주기가 다른 사인과 코사인 함수를 사용한 위치 인코딩을 사용

PE(pos,2i)=sin(pos/100002i/dmodel)P E(pos,2i) = sin(pos/10000^{2i/d_{model}})
PE(pos,2i+1)=cos(pos/100002i/dmodel)P E(pos,2i+1) = cos(pos/10000^{2i/d_{model}})

pos는 위치를, i는 차원

  • 위치 인코딩의 각 차원은 사인 및 코사인 함수의 주기(sinuoid)를 나타내며, 주기의 길이가 위치(pos)와 차원(i)에 따라 결정
  • 이 함수를 선택한 이유는 모델이 상대적 위치에 따라 쉽게 학습할 수 있도록 하기 위함
  • 특정 고정 오프셋 k에 대해 P Epos+k를 P Epos의 선형 함수로 나타낼 수 있기 때문
  • 또한 버전이 거의 동일한 결과를 냈다. 하지만 시퀀스 길이를 넘어서는 긴 시퀀스에 대한 모델의 일반화를 가능하게 할 수 있기 때문에 사인 함수 버전을 선택

Why Self-Attention

  • 주어진 변수 길이의 입력 심볼 시퀀스 (x1,...,xn)를 동일한 길이의 출력 심볼 시퀀스 (z1,...,zn)로 매핑하는 데 사용 되는 자기-어텐션 층과 순환 층 및 컨볼루션 층의 여러 측면을 비교

자기-어텐션 사용 동기

계산 복잡도:

  • 자기-어텐션 층은 모든 위치 간에 일정한 수의 순차 실행 작업만 필요로 하므로 O(1)이다. 이는 순환 층의 O(n) 순차 작업보다 빠르다는 의미

병렬화:

  • 자기-어텐션은 입력 시퀀스의 모든 위치 간에 독립적으로 계산을 수행할 수 있으므로, 병렬로 처리할 수 있는 계산 양이 많다.

의존성 사이의 경로 길이:

  • 자기-어텐션 층은 모든 입력 및 출력 위치를 짧은 경로로 연결할 수 있어서 장거리 의존성을 학습하는 데 유리. 이는 긴 문장 처리에 유리한 특성.

순환 층과 컨볼루션 층과의 비교:

순환 층:

  • 입력 및 출력 위치 간에 경로 길이가 O(n)이며, 이는 긴 시퀀스 처리에 도전적일 수 있다. 그러나 이전 상태에 의존하는 순환성 특성으로 인해 일부 응용 프로그램에서 유용할 수 있다.

컨볼루션 층:

  • 커널의 너비 k<n인 경우 모든 입력 및 출력 위치의 모든 쌍을 연결하지 않는다. 이에 따라 여러 계층이 필요할 수 있으며, 경로 길이가 길어질 수 있다. 하지만 특정 구조적 패턴을 잘 인식하고 계산 비용이 더 높은 편.

자기-어텐션 층은 계산 효율성과 장거리 의존성 학습에 유리한 특성


Training

Training Data and Batching


영어-독일어 데이터셋 (English-German):

  • 데이터셋 크기: 약 450만 개의 문장 쌍으로 구성.
  • 인코딩 방식: 바이트 페어 인코딩(Byte-pair encoding, BPE)을 사용하여 문장을 인코딩. 이 방식은 약 37000개의 공유 소스-타겟 어휘를 사용.

영어-프랑스어 데이터셋 (English-French):

  • 데이터셋 크기: 3600만 개의 문장으로 구성.
  • 인코딩 방식: 워드 피스(word-piece) 인코딩을 사용하여 문장을 인코딩. 이 데이터셋에서는 약 32000개의 워드 피스 어휘를 사용.

데이터 배치화

  • 근사적인 시퀀스 길이에 따라 문장 쌍을 함께 묶어서 구성
  • 각 훈련 배치에는 약 25000개의 소스 토큰과 25000개의 타겟 토큰이 포함
  • 이 방식은 효율적인 배치 처리를 가능하게 하며, 훈련 과정에서 문장의 시퀀스 길이가 다양할 경우에도 적절히 처리할 수 있도록 도와줌

Hardware and Schedule

하드웨어

  • 한 대의 머신에서 8개의 NVIDIA P100 GPU를 이용해 모델을 훈련

훈련 시간

  • 베이스 모델의 경우, 각 훈련 단계는 약 0.4초가 소요
  • 총 100,000 단계 또는 12시간 동안 훈련
  • 대형 모델은 각 훈련 단계에 약 1.0초가 소요
  • 총 300,000 단계 또는 3.5일 동안 훈련

Optimizer

  • Adam 옵티마이저를 사용
  • Adam 옵티마이저는 그래디언트 기반 최적화 방법 , 각 파라미터마다 학습률을 조정하면서 최적화를 수행

옵티마이저의 하이퍼파라미터

  • β1β_1 = 0.9(일차 모멘텀에 대한 지수 감소율을 결정. 이전 그래디언트의 평균이 현재 그래디언트 계산에 얼마나 영향을 주는지를 조절)
  • β2β_2 = 0.98(이차 모멘텀에 대한 지수 감소율을 결정. 이전 그래디언트 제곱의 평균이 현재 그래디언트 계산에 얼마나 영향을 주는지를 조절)
  • ϵ=109ϵ = 10^{-9}로 설정 (수치 안정성을 위한 매우 작은 값을 나타냄)

학습률

  • 학습률은 다음과 같은 공식에 따라 훈련 과정 중에 변화
    lrate=dmodel0.5min(stepnum0.5,stepnumwarmupsteps1.5)lrate = d^{-0.5}_{model} min(step_-num^{-0.5},step_num⋅warmup_-steps^{-1.5})

  • step_num은 현재 훈련 단계

  • warmup_steps는 초기에 학습률을 선형적으로 증가시키는 단계 수. 학습 초기에는 큰 학습률을 사용하고, 일정 단계 이후에는 학습률을 감소시키는 전략을 사용할 때 쓰는 매개변수

처음 몇 번의 학습 스텝 동안, 즉 warmup_steps 이전에는 학습률이 비교적 크게 증가. 이는 초기 학습 과정에서 빠르게 최적점을 탐색하기 위함. 이후 warmup_steps 이후부터는 step_num의 제곱근에 비례하여 학습률이 감소. 이는 학습 과정 중에 점진적으로 더 안정적인 학습을 도모하고, 최적화 과정을 섬세하게 조정하는 데 도움을 줌.

Regularization


Transformer 모델의 학습 과정에서 사용된 정규화 기법

Residual Dropout

  • 각 서브-레이어의 출력에 대해 dropout을 적용
  • dropout은 해당 서브-레이어의 입력에 더해지기 전에 적용되며, 이후 정규화
  • 인코더와 디코더 스택에서 임베딩과 positional encodings의 합에도 dropout을 적용
  • 기본 모델에서는 dropout 비율 Pdrop = 0.1

Label Smoothing

  • 훈련 과정에서 라벨 스무딩(label smoothing) 기법을 사용
  • 실제 라벨 대신에 매끄러운 분포로 훈련 데이터의 라벨을 부드럽게 만드는 방법
  • 일반적으로 사용되는 라벨 스무딩 값은 ϵls = 0.1
  • 모델이 훈련 데이터에 너무 과도하게 적합되는 것을 방지하고, 일반화 성능을 향상시키는 데 도움

Results

Machine Translation

영어-독일어 번역 작업

  • "Transformer (big)" 모델이 기존의 최고 모델들을 2.0 BLEU 이상 능가하여 새로운 최고 성능을 달성하였습니다. BLEU 점수는 28.4로 기록
  • 이 모델은 8개의 NVIDIA P100 GPU에서 3.5일 동안 훈련
  • "Transformer (base)" 모델도 모든 이전 발표된 모델 및 앙상블을 능가하였으며, 이를 훨씬 적은 비용으로 달성

영어-프랑스 번역 작업

  • "Transformer (big)" 모델은 41.0의 BLEU 점수를 기록. 이는 이전에 발표된 단일 모델들을 모두 능가하는 성과
  • 특히 이 모델은 이전 최고 성능 모델의 1/4 이하의 훈련 비용으로 이루어졌다.

모델 훈련 방법

  • Transformer (big)" 모델의 특성으로는 dropout rate Pdrop = 0.1을 사용했으며, 이는 이전 모델의 0.3보다 낮은 값

  • 훈련 시에는 마지막 20개 체크포인트의 평균을 사용하였고, 추론 시에는 beam search를 사용하며 beam size는 4이고, length penalty α는 0.6으로 설정

  • 하이퍼파라미터들은 개발 세트에서 실험 후 선택

  • 추론 중 최대 출력 길이를 입력 길이 + 50으로 설정하였으며, 가능한 경우 조기 종료

모델을 훈련하는 데 사용된 부동 소수점 연산의 양을 계산하기 위해 훈련 시간, 사용된 GPU 수, 각 GPU의 지속되는 단일 정밀도 부동 소수점 용량을 곱하여 추정

Model Variations

어텐션 헤드와 키/값 차원 변화 (A)

  • Attention Heads 개수: Multi-head attention 메커니즘에서 사용할 head의 수를 변화시킴.
  • Key/Value Dimension (dk/dv): 각 head에서 사용하는 Key와 Value의 차원을 변화시킴.
  • 결과: Single-head attention을 사용할 때는 BLEU 점수가 향상하지만, 너무 많은 head를 사용할 때도 성능이 저하됨을 보여줌.

어텐션 키 사이즈 변화 (B)

  • dkd_k의 크기를 다양하게 설정하여 모델의 성능 변화를 평가
  • 결과: Key 크기를 줄이면 모델의 성능이 저하되는 경향을 보임

Layer 수 및 모델 크기 (C,D)

  • Layer 수: Transformer의 층 수를 변화.
  • 모델 크기: 임베딩 차원과 Feed-forward 네트워크의 크기를 다양하게 설정하여 성능에 미치는 영향을 평가.
  • 결과: 일반적으로 모델 크기와 층 수가 클수록 성능이 향상되는 경향.
  • Dropout은 과적합을 방지하고 성능을 개선하는 데 도움이 되는 것으로 나타남

학습된 위치 인코딩 대신 학습된 위치 임베딩 사용

  • 초기 위치 인코딩(positional encoding) 대신 학습된 위치 임베딩(learned positional embeddings)을 사용
  • 위치 인코딩 방법이 모델의 학습 능력에 큰 차이를 만들지 않는다는 것을 의미

English Constituency Parsing

transformer 모델이 영어 구성 구문 분석(English constituency parsing) 과제에서 어떻게 일반화되는지를 평가하였다. 이 과제는 구조적 제약이 강하고 입력보다 출력이 길어지는 독특한 특성을 가지고 있다. 또한 또한 RNN 기반의 시퀀스-투-시퀀스 모델들이 작은 데이터 환경에서 최고의 결과를 내지 못했음이 잘 알려져 있다.

데이터

  • Penn Treebank의 Wall Street Journal(WSJ) 부분을 포함한 약 40,000개의 학습 문장을 사용하여 4층으로 구성된 Transformer 모델을 학습
  • 또한 더 큰 데이터 셋인 high-confidence와 BerkleyParser 코퍼스를 포함한 약 1700만 문장을 사용한 반지도 학습(semi-supervised learning) 설정에서도 모델을 학습
  • WSJ만을 대상으로 한 설정에서는 16,000개의 토큰으로 구성된 어휘를 사용하였고, 반지도 학습 설정에서는 32,000개의 토큰으로 구성된 어휘를 사용

실험과정

  • Transformer 모델의 드롭아웃, 어텐션 메커니즘, 잔여 연결에 대한 최적의 설정을 결정하기 위해, 소수의 실험을 Section 22 개발 세트에서 실행
  • 추론 과정에서는 최대 출력 길이를 입력 길이 + 300으로 설정하였으며, 빔 크기는 21이었고 길이 패널티 α는 0.3으로 설정

결과

  • Transformer 모델은 과제별 튜닝 없이도 놀라울 만큼 잘 수행되어 이전에 보고된 모든 모델들보다 우수한 결과를 달성
  • RNN 기반의 seq2seq 모델을 작은 데이터 환경에서도 능가
  • 반복 신경망 문법(RNN Grammar)을 제외하고는 모든 기존 모델보다 우수한 성능을 보였음.

Conclusion

이 연구에서는 Transformer를 제시. 이는 완전히 어텐션 기반의 첫 번째 시퀀스 변환 모델로, 일반적으로 인코더-디코더 구조에서 사용되는 순환층을 멀티 헤드 셀프 어텐션으로 대체.

번역 작업에서 Transformer는 순환 또는 합성곱 층 기반의 아키텍처보다 훨씬 빠르게 훈련될 수 있음. WMT 2014 영어-독일어 및 영어-프랑스 번역 작업 모두에서 우리는 새로운 최고 성능을 달성하였다. 특히 전자의 경우, 우리의 최고 모델은 이전에 보고된 앙상블 모델들을 모두 능가.

저희는 어텐션 기반 모델의 미래에 대해 기대하며, 텍스트 이외의 입력 및 출력 모달리티를 다루는 문제에 Transformer를 확장하고자 함. 또한 이미지, 오디오, 비디오와 같은 대규모 입력과 출력을 효율적으로 처리하기 위해 지역화된 제한된 어텐션 메커니즘을 연구할 계획. 또한 생성 과정을 더 순차적이지 않게 만드는 것도 저희의 연구 목표 중 하나.

사용한 모델을 훈련하고 평가한 코드는
(https://github.com/tensorflow/tensor2tensor) 에서 제공

profile
이상억

0개의 댓글