본문 바로가기

데이터 사이언스 공부

00. [논문 번역] Attention is All You Need (2)

4. 왜 셀프 어텐션인가

이 섹션에서는 셀프 어텐션 층을 일반적으로 하나의 가변 길이 기호 표현 시퀀스(x₁,..., xₙ)를 동일한 길이의 다른 시퀀스(z₁,..., zₙ)로 매핑하는 데 사용되는 순환 및 컨볼루션 층과 비교합니다. 여기서 xᵢ, zᵢ ∈ ℝᵈ이며, 이는 일반적인 시퀀스 변환 인코더나 디코더의 은닉 층과 같습니다. 셀프 어텐션 사용의 동기를 설명하기 위해 세 가지 요구 사항을 고려합니다.

 

하나는 층당 총 계산 복잡성입니다. 다른 하나는 병렬화할 수 있는 계산량으로, 필요한 최소 순차 연산 수로 측정됩니다.

 

세 번째는 네트워크에서 장거리 의존성 간의 경로 길이입니다. 장거리 의존성 학습은 많은 시퀀스 변환 작업에서 핵심 과제입니다. 이러한 의존성을 학습하는 능력에 영향을 미치는 주요 요소 중 하나는 네트워크에서 신호가 전달되는 경로의 길이입니다. 입력과 출력 시퀀스의 위치 조합 간의 경로가 짧을수록 장거리 의존성을 학습하기가 더 쉽습니다. 따라서 우리는 다양한 층 유형으로 구성된 네트워크에서 임의의 두 입력 및 출력 위치 간의 최대 경로 길이도 비교합니다.

 

표 1에서 볼 수 있듯이, 셀프 어텐션 층은 순차적으로 실행되는 일정한 수의 연산으로 모든 위치를 연결하는 반면, 순환 층은 O(n)의 순차 연산이 필요합니다. 계산 복잡성 측면에서, 시퀀스 길이 n이 표현 차원 d보다 작을 때 셀프 어텐션 층이 순환 층보다 빠른데, 이는 단어 조각이나 바이트 쌍 표현과 같은 기계 번역에서 최첨단 모델이 사용하는 문장 표현에서 대부분의 경우에 해당합니다. 매우 긴 시퀀스를 포함하는 작업의 계산 성능을 향상시키기 위해, 셀프 어텐션은 해당 출력 위치 주변의 입력 시퀀스에서 크기 r의 이웃만 고려하도록 제한될 수 있습니다. 이렇게 하면 최대 경로 길이가 O(n/r)로 증가합니다. 우리는 향후 연구에서 이 접근 방식을 더 조사할 계획입니다.

 

커널 너비가 k < n인 단일 컨볼루션 층은 모든 입력과 출력 위치 쌍을 연결하지 않습니다. 이를 위해서는 연속 커널의 경우 O(n/k) 컨볼루션 층의 스택이 필요하고, 확장된 컨볼루션의 경우 O(logₖ(n))이 필요하며, 이는 네트워크에서 임의의 두 위치 간의 가장 긴 경로의 길이를 증가시킵니다. 컨볼루션 층은 일반적으로 k 배 만큼 순환 층보다 더 비용이 많이 듭니다. 그러나 분리 가능한 컨볼루션은 복잡성을 O(k·n·d + n·d²)로 상당히 감소시킵니다. 그러나 k = n이라도 분리 가능한 컨볼루션의 복잡성은 셀프 어텐션 층과 포인트와이즈 피드포워드 층의 조합과 동일하며, 이는 우리 모델에서 취하는 접근 방식입니다.

 

부수적인 이점으로, 셀프 어텐션은 더 해석 가능한 모델을 제공할 수 있습니다. 우리는 모델의 어텐션 분포를 검사하고 부록에서 예시를 제시하고 논의합니다. 개별 어텐션 헤드가 명확하게 다른 작업을 수행하도록 학습할 뿐만 아니라, 많은 헤드가 문장의 구문 및 의미 구조와 관련된 행동을 보여줍니다.

 

요약

  • Self-attention이 recurrent나 convolutional layer보다 나은 세 가지 이유:
    1. 레이어당 계산 복잡도가 낮다.
    2. 병렬 계산량이 많다.
    3. 장거리 의존성 학습에 더 효과적이다.
  • 특히 장거리 의존성 학습 능력은 네트워크에서 정보가 이동해야 하는 경로의 길이와 관련있다.
  • Self-attention은 이 경로 길이를 상수로 줄여준다.

 

정리

Transformer에서 장거리 의존성 처리 능력은 큰 장점으로, 긴 시퀀스에서 효과적으로 작동할 수 있게 함.


5. 훈련

이 섹션에서는 우리 모델의 훈련 방식을 설명합니다.

5.1 훈련 데이터 및 배치

우리는 약 450만 개의 문장 쌍으로 구성된 표준 WMT 2014 영어-독일어 데이터셋에서 훈련했습니다. 문장은 바이트-쌍 인코딩을 사용하여 인코딩되었으며, 이는 약 37,000개의 토큰을 가진 공유 소스-타겟 어휘를 가집니다. 영어-프랑스어의 경우, 우리는 3600만 개의 문장으로 구성된 훨씬 더 큰 WMT 2014 영어-프랑스어 데이터셋을 사용하고 토큰을 32,000개의 단어 조각 어휘로 분할했습니다. 문장 쌍은 대략적인 시퀀스 길이에 따라 함께 배치되었습니다. 각 훈련 배치에는 약 25,000개의 소스 토큰과 25,000개의 타겟 토큰을 포함하는 문장 쌍 세트가 포함되었습니다.

5.2 하드웨어 및 일정

우리는 8개의 NVIDIA P100 GPU가 있는 한 대의 기계에서 모델을 훈련했습니다. 논문 전체에서 설명한 하이퍼파라미터를 사용하는 기본 모델의 경우, 각 훈련 단계는 약 0.4초가 소요되었습니다. 우리는 기본 모델을 총 100,000단계 또는 12시간 동안 훈련했습니다. 우리의 큰 모델(표 3의 마지막 줄에 설명됨)의 경우, 단계 시간은 1.0초였습니다. 큰 모델은 300,000단계(3.5일) 동안 훈련되었습니다.

5.3 최적화 도구

우리는 β₁ = 0.9, β₂ = 0.98 및 ε = 10⁻⁹의 Adam 최적화 도구를 사용했습니다. 우리는 다음 공식에 따라 훈련 과정에서 학습률을 변경했습니다:

$$lrate = d_{model}⁻⁰·⁵ · min(step\_num⁻⁰·⁵, step\_num · warmup\_steps⁻¹·⁵)$$

이는 처음 warmup_steps 훈련 단계 동안 학습률을 선형적으로 증가시키고, 그 후에는 단계 수의 역제곱근에 비례하여 감소시키는 것에 해당합니다. 우리는 warmup_steps = 4000을 사용했습니다.

5.4 정규화

우리는 훈련 중에 세 가지 유형의 정규화를 사용합니다:

잔차 드롭아웃: 우리는 각 서브 층의 출력에 드롭아웃을 적용하고, 이를 서브 층 입력에 더한 후 정규화합니다. 또한 인코더와 디코더 스택 모두에서 임베딩과 위치 인코딩의 합에 드롭아웃을 적용합니다. 기본 모델의 경우, $P_{drop} = 0.1$의 비율을 사용합니다.

레이블 스무딩: 훈련 중에 우리는 값이 $ε_{ls} = 0.1$인 레이블 스무딩을 사용했습니다. 이는 모델이 더 불확실하게 학습하므로 퍼플렉시티를 해치지만, 정확도와 BLEU 점수를 향상시킵니다.

 

표 2: Transformer는 영어-독일어 및 영어-프랑스어의 newstest2014 테스트에서 이전 최첨단(state-of-the-art) 모델들보다 더 나은 BLEU 점수를 훨씬 적은 학습 비용으로 달성했습니다.

 

 

요약

  • 모델은 8개의 P100 GPU로 12시간 학습하여 병렬화 및 SOTA를 달성했다.
  • Regularization을 위해 residual dropout, label smoothing 등의 기법을 사용했다.
  • Adam 최적화 알고리즘과 learning rate 스케줄링을 적용했다.

정리

학습 과정의 세부사항은 재현성과 확장성에 중요. 병렬화를 통한 효율적인 학습은 Transformer의 장점이며, 더 큰 모델과 데이터셋으로의 확장이 가능함을 시사.


6. 결과

6.1 기계 번역

WMT 2014 영어-독일어 번역 작업에서, 큰 트랜스포머 모델(표 2의 Transformer(big))은 이전에 보고된 최고의 모델(앙상블 포함)보다 2.0 BLEU 이상 성능이 뛰어나, 28.4의 새로운 최첨단 BLEU 점수를 확립했습니다. 이 모델의 구성은 표 3의 마지막 줄에 나열되어 있습니다. 훈련은 8개의 P100 GPU에서 3.5일이 소요되었습니다. 우리의 기본 모델조차도 이전에 발표된 모든 모델과 앙상블을 능가하며, 경쟁 모델 중 어느 것보다도 훨씬 적은 훈련 비용으로 달성했습니다.

 

WMT 2014 영어-프랑스어 번역 작업에서, 우리의 큰 모델은 41.0의 BLEU 점수를 달성하여 이전에 발표된 모든 단일 모델을 능가하며, 이전 최첨단 모델의 훈련 비용의 1/4 미만으로 달성했습니다. 영어-프랑스어용으로 훈련된 Transformer(big) 모델은 0.3 대신 Pdrop = 0.1의 드롭아웃 비율을 사용했습니다.

 

기본 모델의 경우, 우리는 10분 간격으로 작성된 마지막 5개 체크포인트를 평균하여 얻은 단일 모델을 사용했습니다. 큰 모델의 경우, 우리는 마지막 20개 체크포인트를 평균했습니다. 우리는 빔 크기가 4이고 길이 페널티 α = 0.6인 빔 검색을 사용했습니다. 이러한 하이퍼파라미터는 개발 세트에서의 실험 후에 선택되었습니다. 우리는 추론 중 최대 출력 길이를 입력 길이 + 50으로 설정했지만, 가능한 경우 일찍 종료합니다.

 

표 2는 우리의 결과를 요약하고 우리의 번역 품질과 훈련 비용을 문헌의 다른 모델 아키텍처와 비교합니다. 우리는 모델 훈련에 사용된 부동 소수점 연산 수를 훈련 시간, 사용된 GPU 수, 각 GPU의 지속적인 단정밀도 부동 소수점 용량 추정치를 곱하여 추정합니다.

6.2 모델 변형

트랜스포머의 다양한 구성 요소의 중요성을 평가하기 위해, 우리는 기본 모델을 다양한 방식으로 변경하고, 개발 세트인 newstest2013에서 영어-독일어 번역 성능의 변화를 측정했습니다. 우리는 이전 섹션에서 설명한 대로 빔 검색을 사용했지만, 체크포인트 평균화는 사용하지 않았습니다. 이 결과들은 표 3에 제시되어 있습니다.

 

표 3의 행 (A)에서, 우리는 3.2.2절에서 설명한 대로 계산량을 일정하게 유지하면서 어텐션 헤드의 수와 어텐션 키 및 값 차원을 변화시켰습니다. 단일 헤드 어텐션은 최적 설정보다 0.9 BLEU 점수가 낮지만, 너무 많은 헤드를 사용할 때도 품질이 떨어집니다.

 

표 3의 행 (B)에서, 우리는 어텐션 키 크기 dk를 줄이면 모델 품질이 저하됨을 관찰했습니다. 이는 호환성을 결정하는 것이 쉽지 않으며, 내적보다 더 정교한 호환성 함수가 유익할 수 있음을 시사합니다. 또한 행 (C)와 (D)에서 예상대로 더 큰 모델이 더 좋으며, 드롭아웃이 과적합을 방지하는 데 매우 유용함을 관찰했습니다. 행 (E)에서는 사인파 위치 인코딩을 학습된 위치 임베딩으로 대체했으며, 기본 모델과 거의 동일한 결과를 관찰했습니다.

 

표 3 : Transformer 아키텍처의 변형들. 명시되지 않은 값들은 기본 모델의 값과 동일합니다. 모든 지표는 영어-독일어 번역 개발 세트인 newstest2013에 대한 것입니다. 나열된 퍼플렉시티(perplexity)는 우리의 바이트-페어 인코딩에 따른 워드피스(wordpiece) 단위이며, 단어 단위 퍼플렉시티와 비교해서는 안 됩니다.

 

6.3 영어 구문 분석

트랜스포머가 다른 작업에도 일반화될 수 있는지 평가하기 위해 영어 구문 분석에 대한 실험을 수행했습니다. 이 작업은 특정 과제를 제시합니다: 출력은 강한 구조적 제약을 받으며 입력보다 상당히 깁니다. 또한, RNN 시퀀스-투-시퀀스 모델은 소규모 데이터 환경에서 최첨단 결과를 달성하지 못했습니다.

 

우리는 Penn Treebank의 Wall Street Journal(WSJ) 부분에서 $d_{model}=1024$인 4층 트랜스포머를 훈련시켰으며, 약 40K 훈련 문장이 있습니다. 또한 약 17M 문장이 있는 더 큰 고신뢰도 및 Berkeley Parser 코퍼스를 사용하여 준지도 환경에서도 훈련했습니다. WSJ만 사용한 환경에서는 16K 토큰의 어휘를, 준지도 환경에서는 32K 토큰의 어휘를 사용했습니다.

우리는 섹션 22 개발 세트에서 드롭아웃(어텐션 및 잔차, 5.4절), 학습률 및 빔 크기를 선택하기 위해 소수의 실험만 수행했으며, 다른 모든 매개변수는 영어-독일어 기본 번역 모델과 동일하게 유지했습니다. 추론 중에는 최대 출력 길이를 입력 길이 + 300으로 증가시켰습니다. WSJ만 사용한 환경과 준지도 환경 모두에서 빔 크기 21과 α = 0.3을 사용했습니다.

표 4의 결과는 작업별 튜닝이 없음에도 불구하고 우리 모델이 놀랍게도 잘 수행되어, 순환 신경망 문법을 제외한 이전에 보고된 모든 모델보다 더 나은 결과를 얻었음을 보여줍니다.

 

RNN 시퀀스-투-시퀀스 모델과 달리, 트랜스포머는 WSJ 훈련 세트 40K 문장만으로 훈련할 때도 Berkeley Parser보다 성능이 뛰어납니다.

 

표 4: 트랜스포머는 영어 구성성분 구문 분석을 잘 일반화합니다 (결과는 WSJ의 섹션 23에 있습니다)

 

요약

  • 영어-독일어, 영어-프랑스어 번역 작업에서 SOTA 성능을 달성했다.
  • 학습 속도와 모델 품질 사이의 트레이드오프를 보여준다.
  • Attention heads의 역할을 시각화하고 분석했다.

 

정리

실험 결과가 Transformer의 효과성을 입증.


7. 결론

이 연구에서 우리는 트랜스포머를 제시했습니다. 이는 전적으로 어텐션에 기반한 최초의 시퀀스 변환 모델로, 인코더-디코더 아키텍처에서 가장 일반적으로 사용되는 순환 층을 멀티헤드 셀프 어텐션으로 대체했습니다.

 

번역 작업에서 트랜스포머는 순환 또는 컨볼루션 층에 기반한 아키텍처보다 훨씬 더 빠르게 훈련될 수 있습니다. WMT 2014 영어-독일어 및 WMT 2014 영어-프랑스어 번역 작업 모두에서 우리는 새로운 최첨단 성능을 달성했습니다. 전자의 작업에서 우리의 최고 모델은 이전에 보고된 모든 앙상블보다도 성능이 뛰어납니다.

 

우리는 어텐션 기반 모델의 미래에 대해 기대하고 있으며 이를 다른 작업에 적용할 계획입니다. 우리는 트랜스포머를 텍스트 이외의 입력 및 출력 양식을 포함하는 문제로 확장하고, 이미지, 오디오 및 비디오와 같은 대규모 입력 및 출력을 효율적으로 처리하기 위한 지역적, 제한적 어텐션 메커니즘을 조사할 계획입니다. 생성을 덜 순차적으로 만드는 것도 우리의 또 다른 연구 목표입니다.

 

우리가 모델을 훈련하고 평가하는 데 사용한 코드는 https://github.com/tensorflow/tensor2tensor에서 이용할 수 있습니다.

 

요약

  • Transformer는 recurrence와 convolution을 완전히 배제하고 attention만을 사용한 최초의 모델이다.
  • 번역 작업에서 SOTA 성능을 달성했으며, 다른 작업에도 적용 가능하다.
  • 이후 다양한 NLP 작업과 비전 분야까지 확장되는 기반이 되었다.

 

 


 

종합 정리

  • Transformer 아키텍처는 NLP에 혁신적인 변화를 가져옴.
  • 복잡한 모델 설계보다 핵심 아이디어인 attention에 집중하는 것의 중요성을 보임.
  • BERT, GPT 시리즈 등 현대 NLP 핵심 모델의 기반이 되었으며, 컴퓨터 비전 등 다른 분야로도 아키텍처가 확장되고 있음.