Attention is all you need - 2017

Alope·2024년 7월 18일

논문 - LLM

목록 보기
5/9
post-thumbnail

2017 - ”Attention is all you need” (Transformer)

https://arxiv.org/abs/1706.03762 - 논문 링크

논문 요약

Abstract

논문 "Attention Is All You Need"에서는 기존의 복잡한 순환 신경망(RNN)이나 합성곱 신경망(CNN) 기반의 시퀀스 변환 모델을 대신할 새로운 간단한 네트워크 아키텍처인 Transformer를 제안합니다. Transformer는 오로지 어텐션 메커니즘에 기반하며, 순환과 합성곱을 완전히 배제합니다. 두 가지 기계 번역 작업에 대한 실험에서 Transformer 모델은 더 우수한 품질을 제공하는 동시에 병렬 처리 가능성이 높아 훈련 시간이 크게 단축됩니다. WMT 2014 영어-독일어 번역 작업에서는 28.4 BLEU 점수를 달성하여 기존 최고 결과를 2 BLEU 이상 개선하였으며, WMT 2014 영어-프랑스어 번역 작업에서는 41.8 BLEU의 새로운 단일 모델 최고 기록을 세웠습니다. 이 모델은 또한 대규모와 제한된 훈련 데이터 모두에서 영어 구문 분석 작업에 성공적으로 적용되었습니다.

1. Introduction

논문의 "Introduction" 부분에서는 순환 신경망(RNN), 장단기 메모리(LSTM), 게이트 순환 유닛(GRU) 등의 모델이 시퀀스 모델링과 변환 문제(예: 언어 모델링, 기계 번역)에서 최고 성능을 보여왔음을 강조합니다. 이러한 모델들은 입력 및 출력 시퀀스의 심볼 위치를 따라 연산을 수행하며, 이전 상태와 현재 위치의 입력을 기반으로 숨겨진 상태를 생성합니다. 그러나 이 순차적인 특성 때문에 훈련 예제 내에서의 병렬화가 어려워지며, 이는 긴 시퀀스를 처리할 때 문제가 됩니다.

최근 연구들은 연산 효율성을 높이기 위해 다양한 기법을 적용해왔지만, 순차적인 연산의 기본적인 제약은 여전히 존재합니다. 반면, 어텐션 메커니즘은 시퀀스의 위치와 관계없이 종속성을 모델링할 수 있게 하여 다양한 작업에서 중요한 역할을 하고 있습니다. 하지만 대부분의 경우 어텐션 메커니즘은 순환 신경망과 함께 사용됩니다.

본 논문에서는 Transformer라는 새로운 모델 아키텍처를 제안합니다. Transformer는 순환 구조를 배제하고 전적으로 어텐션 메커니즘에 의존하여 입력과 출력 간의 전역적 종속성을 모델링합니다. 이를 통해 병렬화가 크게 향상되며, 8개의 P100 GPU에서 12시간만 훈련해도 번역 품질에서 새로운 최고 성능을 달성할 수 있습니다.

2. Background

"Background" 부분에서는 순차적인 계산을 줄이기 위한 다양한 시도와 Transformer 모델의 독창성을 설명합니다. 주요 내용은 다음과 같습니다:

기존 접근 방식

  • Extended Neural GPU, ByteNet, ConvS2S: 이들 모델은 컨볼루션 신경망을 기본 구조로 사용하여 모든 입력 및 출력 위치에 대해 병렬로 숨겨진 표현을 계산합니다. 그러나 이 모델들은 두 입력 또는 출력 위치 간의 신호를 연관시키기 위해 필요한 연산 수가 위치 간의 거리와 함께 증가합니다. ConvS2S는 선형적으로, ByteNet은 로그적으로 증가하여 먼 위치 간의 종속성을 학습하는 것이 더 어려워집니다.
  • Transformer의 개선점: Transformer는 이러한 연산 수를 상수로 줄였지만, 어텐션 가중치가 부여된 위치를 평균화함으로써 해상도가 감소하는 단점이 있습니다. 이를 해결하기 위해 Multi-Head Attention을 도입했습니다.

Self-Attention

  • Self-Attention의 정의: Self-Attention 또는 Intra-Attention은 단일 시퀀스의 서로 다른 위치를 연관시켜 시퀀스의 표현을 계산하는 어텐션 메커니즘입니다. 이는 독해, 추상적 요약, 텍스트적 함의, 독립적인 문장 표현 학습 등의 다양한 작업에서 성공적으로 사용되었습니다.

End-to-End Memory Networks

  • 재발성 어텐션 메커니즘: 이 네트워크는 시퀀스 정렬 RNN 대신 재발성 어텐션 메커니즘을 기반으로 하며, 간단한 언어 질문 응답 및 언어 모델링 작업에서 우수한 성능을 보였습니다.

Transformer의 독창성

  • Transformer의 혁신: Transformer는 시퀀스 정렬 RNN이나 컨볼루션을 사용하지 않고, 전적으로 Self-Attention에 의존하여 입력과 출력의 표현을 계산하는 첫 번째 변환 모델입니다. 다음 섹션에서는 Transformer의 구조를 설명하고, Self-Attention의 동기를 부여하며, 다른 모델들과의 비교를 통해 장점을 논의합니다.

3. Model Architecture

"Model Architecture" 부분에서는 Transformer 모델의 전체 구조를 설명합니다. 주요 내용은 다음과 같습니다:

전체 구조

  • 인코더-디코더 구조: Transformer 모델은 전통적인 인코더-디코더 구조를 따르며, 입력 시퀀스를 연속적인 표현 시퀀스로 매핑한 후, 이를 기반으로 출력 시퀀스를 생성합니다. 각 단계에서 모델은 이전에 생성된 심볼을 추가 입력으로 사용합니다.
  • Transformer의 차별점: Transformer는 순환 신경망(RNN)이나 컨볼루션 신경망(CNN) 대신, 자체 어텐션 메커니즘과 포인트-와이즈 완전 연결 레이어를 사용합니다.

인코더와 디코더 스택

  • 인코더: 인코더는 N=6개의 동일한 레이어로 구성되며, 각 레이어는 다중 헤드 자기 어텐션 메커니즘과 위치-와이즈 완전 연결 피드 포워드 네트워크의 두 서브 레이어로 이루어져 있습니다. 각 서브 레이어는 잔차 연결과 레이어 정규화를 포함합니다.
  • 디코더: 디코더도 N=6개의 동일한 레이어로 구성되며, 인코더 레이어의 두 서브 레이어 외에 인코더 스택의 출력을 통한 다중 헤드 어텐션을 수행하는 세 번째 서브 레이어가 추가됩니다. 또한, 디코더 스택의 자기 어텐션 서브 레이어는 이후 위치에 대한 어텐션을 방지하는 마스킹을 포함합니다.

어텐션 메커니즘

  • Scaled Dot-Product Attention: 입력으로 쿼리, 키, 값을 받아 각 값에 가중합을 계산합니다. 쿼리와 키의 내적을 구하고, 이를 스케일링하여 소프트맥스 함수에 적용한 후 가중치를 계산합니다.
  • Multi-Head Attention: 쿼리, 키, 값의 각 집합에 대해 여러 번의 선형 변환을 수행한 후, 각 변환된 쿼리, 키, 값에 대해 병렬로 어텐션을 수행합니다. 각 병렬 어텐션 결과를 결합하여 최종 출력을 만듭니다. 이는 다양한 표현 하위 공간에서 정보를 함께 주목할 수 있게 합니다.

기타 구성 요소

  • 위치-와이즈 피드 포워드 네트워크: 각 레이어에는 ReLU 활성화 함수를 사용하는 두 개의 선형 변환이 포함됩니다.
  • 임베딩 및 소프트맥스: 입력 토큰과 출력 토큰을 임베딩 벡터로 변환하고, 디코더 출력을 다음 토큰 확률로 변환하기 위해 학습된 임베딩과 소프트맥스 함수를 사용합니다.
  • 위치 인코딩: 시퀀스의 순서를 반영하기 위해 사인 및 코사인 함수의 주기로 구성된 위치 인코딩을 임베딩에 추가합니다.

4. Why Self-Attention

"Why Self-Attention" 부분에서는 자기 어텐션(Self-Attention) 레이어가 순환(Recurrent) 레이어와 컨볼루션(Convolutional) 레이어에 비해 가지는 장점에 대해 설명합니다. 주요 내용은 다음과 같습니다:

자기 어텐션의 장점

1. 계산 복잡도:

  • 각 레이어 당 총 계산 복잡도가 낮습니다. 자기 어텐션 레이어는 입력과 출력 시퀀스의 모든 위치를 연결하는 데 일정한 수의 순차적 연산이 필요합니다.
  • 순환 레이어는 𝑂(𝑛)의 순차적 연산이 필요합니다. 여기서 𝑛은 시퀀스 길이입니다.

2. 병렬화 가능성:

  • 자기 어텐션 레이어는 더 많은 병렬화가 가능합니다. 이는 특히 최신 기계 번역 모델에서 사용되는 문장 표현에서는 입력 시퀀스의 길이가 표현 차원보다 작을 때 더 빠릅니다.
  • 긴 시퀀스를 다룰 때 자기 어텐션은 입력 시퀀스의 중심에서 크기 𝑟의 이웃만 고려하도록 제한할 수 있으며, 이는 최대 경로 길이를 𝑂(𝑛/𝑟)로 증가시킵니다.

3. 장거리 종속성 학습:

  • 장거리 종속성을 학습하는 능력은 네트워크에서 신호가 전달되는 경로의 길이에 의해 크게 영향을 받습니다. 입력과 출력 시퀀스의 모든 위치 조합 사이의 경로가 짧을수록 장거리 종속성을 학습하기 쉬워집니다.
  • 자기 어텐션 레이어는 모든 위치를 일정한 수의 순차적 연산으로 연결하며, 이는 장거리 종속성을 학습하기 쉽게 만듭니다.

자기 어텐션과 컨볼루션 비교

  • 컨볼루션 레이어:
    - 단일 컨볼루션 레이어는 모든 입력과 출력 위치 쌍을 연결하지 않습니다. 이를 위해 연속적인 커널을 사용하는 경우 𝑂(𝑛/𝑘)의 컨볼루션 레이어 스택이 필요합니다.
    - 컨볼루션 레이어는 일반적으로 순환 레이어보다 비용이 많이 들지만, Separable Convolutions는 복잡도를 크게 줄일 수 있습니다.

모델의 해석 가능성

  • 자기 어텐션은 더 해석 가능한 모델을 제공할 수 있습니다. 다양한 어텐션 헤드가 서로 다른 작업을 수행하는 것을 학습하며, 많은 경우 문장의 구문 및 의미 구조와 관련된 행동을 보입니다.

5. Training

"Training" 부분에서는 Transformer 모델의 훈련 방법에 대해 설명합니다. 주요 내용은 다음과 같습니다:

5.1 Training Data and Batching

- 훈련 데이터: WMT 2014 영어-독일어 데이터셋(약 450만 문장 쌍)과 영어-프랑스어 데이터셋(3600만 문장)을 사용했습니다.
- 인코딩: Byte-Pair Encoding(BPE)을 사용하여 약 37,000개의 공유된 소스-타겟 어휘로 문장을 인코딩했습니다. 영어-프랑스어 데이터셋의 경우 32,000개의 단어 조각으로 어휘를 분할했습니다.
- 배칭: 문장 쌍을 대략적인 시퀀스 길이별로 배치하였으며, 각 배치에는 약 25,000개의 소스 토큰과 25,000개의 타겟 토큰이 포함되었습니다.

5.2 Hardware and Schedule

- 하드웨어: 8개의 NVIDIA P100 GPU를 사용하여 모델을 훈련했습니다.
- 훈련 일정: 기본 모델은 총 100,000단계(12시간) 동안 훈련되었으며, 큰 모델은 300,000단계(3.5일) 동안 훈련되었습니다. 기본 모델의 각 훈련 단계는 약 0.4초, 큰 모델의 각 단계는 1.0초가 소요되었습니다.

5.3 Optimizer

  • Adam 옵티마이저: β1 = 0.9, β2 = 0.98, ε = 10^(-9) 값을 사용했습니다.
  • 학습률 조정: 학습 초기에 학습률을 선형적으로 증가시키고, 이후에는 학습 단계 수의 역제곱근에 비례하여 감소시키는 방식으로 조정했습니다. warmup_steps는 4000으로 설정했습니다.

5.4 Regularization

  • Residual Dropout: 각 서브 레이어의 출력에 드롭아웃을 적용하고, 서브 레이어 입력에 추가 및 정규화하기 전에 드롭아웃을 적용했습니다. 인코더와 디코더 스택의 임베딩과 위치 인코딩의 합에도 드롭아웃을 적용했습니다. 기본 모델의 드롭아웃 비율은 0.1로 설정했습니다.
  • Label Smoothing: 라벨 스무딩 값을 0.1로 설정하여 훈련했습니다. 이는 퍼플렉서티를 증가시키지만, 모델의 불확실성을 높여 정확도와 BLEU 점수를 향상시켰습니다.

6. Results

"Results" 부분에서는 Transformer 모델의 성능 평가 결과를 제시합니다. 주요 내용은 다음과 같습니다:

6.1 Machine Translation

  • WMT 2014 영어-독일어 번역 작업:
    - Transformer (big) 모델은 BLEU 점수 28.4를 기록하며, 기존 최고 성능 모델들을 2.0 BLEU 이상으로 능가했습니다.
    - 모델 훈련은 8개의 P100 GPU에서 3.5일 동안 진행되었습니다.
    - 기본 모델도 모든 기존 단일 모델과 앙상블 모델을 능가했습니다.

  • WMT 2014 영어-프랑스어 번역 작업:
    - Transformer (big) 모델은 BLEU 점수 41.0을 기록하며, 이전의 모든 단일 모델을 능가했습니다.
    - 훈련 비용은 이전 최고 성능 모델의 1/4 이하였습니다.

6.2 Model Variations

  • 모델 구성 요소의 중요성 평가:
    - 주어진 베이스 모델을 다양한 방식으로 변형하여 성능 변화를 측정했습니다.
    - 어텐션 헤드 수, 키와 값의 차원, 드롭아웃 비율 등 다양한 매개변수를 실험했습니다.
    • 큰 모델일수록 성능이 더 좋았으며, 드롭아웃이 과적합을 피하는 데 도움이 되었습니다.
      - 사인 함수 기반 위치 인코딩과 학습된 위치 임베딩을 비교했을 때, 거의 동일한 결과를 보였습니다.

6.3 English Constituency Parsing

  • 영어 구성 구문 분석 실험:
    - Wall Street Journal (WSJ) 데이터셋을 사용하여 4-layer Transformer를 훈련했습니다.
    - Semi-supervised 설정에서는 약 1700만 문장을 사용했습니다.
    - 모델은 특화된 튜닝 없이도 기존 최고 성능 모델들에 비견되는 성능을 보였습니다.
    - WSJ 데이터셋만으로 훈련된 Transformer 모델도 우수한 성능을 보였습니다.

7. Conclusion

"Conclusion" 부분에서는 Transformer 모델의 주요 성과와 향후 연구 방향에 대해 논의합니다. 주요 내용은 다음과 같습니다:

  • Transformer 소개: Transformer는 전적으로 어텐션 메커니즘에 기반한 최초의 시퀀스 변환 모델로, 인코더-디코더 아키텍처에서 일반적으로 사용되는 순환 레이어를 멀티헤드 자기 어텐션으로 대체했습니다.
  • 훈련 효율성: 번역 작업에서 Transformer는 순환 또는 컨볼루션 레이어 기반 아키텍처보다 훨씬 빠르게 훈련될 수 있습니다.
  • 성능 개선: WMT 2014 영어-독일어 및 영어-프랑스어 번역 작업에서 Transformer는 새로운 최고 성능을 달성했습니다. 특히, 영어-독일어 번역 작업에서는 이전에 보고된 모든 앙상블 모델을 능가했습니다.
  • 미래 연구:
    - 어텐션 기반 모델의 미래 가능성에 대해 기대하고 있으며, 다른 작업에 이를 적용할 계획입니다.
    - 텍스트 이외의 입력 및 출력 모달리티가 포함된 문제로 Transformer를 확장할 계획입니다.
    - 이미지, 오디오, 비디오와 같은 대규모 입력 및 출력을 효율적으로 처리하기 위해 로컬, 제한된 어텐션 메커니즘을 조사할 계획입니다.
    - 생성 과정을 덜 순차적으로 만드는 것도 연구 목표 중 하나입니다.
  • 코드 공개: 모델을 훈련하고 평가하는 데 사용된 코드는 Tensor2Tensor GitHub 저장소에서 확인할 수 있습니다. (https://github.com/ tensorflow/tensor2tensor)
profile
성장하는 컴공생

0개의 댓글