attention is all you need transformer

Transformer 논문 리뷰(2017년)

Transformer의 시작, Attention만으로 자연어를 이해하다

논문
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin,
Attention Is All You Need (NIPS 2017)

link:https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf


1. 연구 배경 (Background)

2017년 이전의 자연어 처리와 기계 번역 분야에서는 RNN(Recurrent Neural Network), LSTM, GRU와 같은 순환 신경망이 주로 사용되었습니다.

이러한 모델은 문장을 앞에서부터 순차적으로 처리합니다.

예를 들어,

나는 → 오늘 → 사과를 → 먹었다

라는 문장이 있다면 이전 단어의 정보를 다음 단어로 계속 전달하면서 문장을 이해합니다.

하지만 이러한 순차적 구조에는 큰 문제가 있었습니다.

첫 번째는 병렬 연산이 어렵다는 점입니다. 이전 단어의 계산이 끝나야 다음 단어를 처리할 수 있기 때문에 GPU를 이용하더라도 문장의 모든 단어를 동시에 처리하기 어렵습니다.

두 번째는 문장이 길어질수록 멀리 떨어진 단어 사이의 관계를 학습하기 어려워진다는 점입니다.

Attention 기법은 이미 존재하고 있었지만, 당시에는 대부분 RNN이나 CNN과 함께 사용되는 보조적인 구조였습니다. Vaswani 등은 여기서 한 단계 더 나아가 RNN과 CNN을 완전히 제거하고 Attention만으로 문장을 처리할 수 있지 않을까? 라는 아이디어를 제안했습니다.


2. 연구 목적 (Objective)

이 논문의 핵심 목표는 매우 명확합니다.

RNN과 CNN 없이 Attention Mechanism만을 이용하여 Sequence-to-Sequence 문제를 해결하는 새로운 모델을 만드는 것

연구진은 이를 위해 새로운 신경망 구조인 Transformer를 제안했습니다.

Transformer의 목표는 기존 RNN 기반 모델보다

  • 병렬 연산을 효율적으로 수행하고
  • 멀리 떨어진 단어 사이의 관계를 효과적으로 학습하며
  • 학습 시간을 단축하고
  • 동시에 더 높은 번역 성능을 달성하는 것

이었습니다.

즉, 기존의

RNN + Attention

구조에서 RNN 자체를 제거하고,

Attention 중심의 새로운 구조

를 만드는 것이 이 논문의 가장 중요한 아이디어입니다. 실제로 논문에서는 Transformer를 recurrence와 convolution 없이 Attention만으로 입력과 출력 사이의 전역적인 의존 관계를 학습하는 구조로 제안했습니다.


3. 연구 방법 (Method)

Transformer는 크게 Encoder와 Decoder로 구성됩니다.

논문의 기본 Transformer 모델에서는 Encoder와 Decoder가 각각 6개의 Layer로 구성되어 있습니다. 기본 모델의 hidden dimension은 d_model = 512이며, Multi-Head Attention에서는 8개의 Attention Head를 사용합니다.

Transformer에서 제안한 핵심 기술은 다음과 같습니다.

  • Self-Attention
  • Query, Key, Value
  • Scaled Dot-Product Attention
  • Multi-Head Attention
  • Positional Encoding
  • Position-wise Feed Forward Network
  • Residual Connection
  • Layer Normalization
  • Masked Self-Attention

이 중에서도 가장 중요한 개념은 Self-Attention입니다.

3.1 Self-Attention

Self-Attention은 문장 안에 있는 각각의 단어가 다른 단어들과 얼마나 관련이 있는지 계산하는 방법입니다.

예를 들어 다음과 같은 문장이 있다고 가정해 보겠습니다.

나는 오늘 사과를 먹었다.

나는이라는 단어를 기준으로 문장을 바라보면 모델은

나는 ↔ 오늘
나는 ↔ 사과를
나는 ↔ 먹었다

와 같이 다른 단어들과의 관계를 계산합니다.

이번에는 Query를 오늘로 바꾸면,

오늘 ↔ 나는
오늘 ↔ 사과를
오늘 ↔ 먹었다

와 같은 관계를 다시 계산합니다.

즉, Self-Attention에서는 문장의 모든 단어가 서로를 참고하면서 각 단어의 의미를 새롭게 표현합니다.


3.2 Query, Key, Value

Attention을 이해하기 위해서는 Query, Key, Value를 이해해야 합니다.

논문에서는 Attention을 하나의 Query와 여러 Key-Value 쌍을 이용하여 결과를 계산하는 함수로 설명합니다. Query와 Key의 관계를 이용해 중요도를 계산하고, 그 중요도를 Value에 적용하여 최종 결과를 만듭니다.

쉽게 생각하면 다음과 같습니다.

  • Query(Q) : 내가 찾고 싶은 정보
  • Key(K) : 어떤 정보가 있는지를 나타내는 기준
  • Value(V) : 실제로 가져올 정보

예를 들어,

나는 오늘 사과를 먹었다.

라는 문장에서 나는이라는 단어가 Query라면, 나는과 다른 단어들의 Key를 비교합니다.

그 결과 먹었다와의 관련성이 높다고 판단되면 먹었다의 Value를 더 많이 가져오게 됩니다.

즉,

Query = 무엇을 찾을 것인가
Key = 어떤 정보와 관련 있는가
Value = 실제로 가져올 정보

라고 이해할 수 있습니다.


3.3 Scaled Dot-Product Attention

Transformer에서 사용하는 기본 Attention은 Scaled Dot-Product Attention입니다.

수식은 다음과 같습니다. Attention(Q,K,V)=softmax(dk​​QKT​)V

먼저 Query와 Key의 내적을 계산하여 두 정보가 얼마나 관련되어 있는지를 구합니다.

그다음 √d_k로 나누어 값의 크기를 조절하고 Softmax를 적용하여 각 단어의 Attention Score를 계산합니다.

마지막으로 이 Score를 Value에 적용합니다.

논문에서는 차원이 커질수록 Query와 Key의 내적 값이 지나치게 커져 Softmax의 gradient가 매우 작아질 수 있기 때문에 √d_k로 나누는 Scaling 과정을 사용했습니다.


3.4 Multi-Head Attention

Transformer는 Attention을 한 번만 수행하지 않습니다.

여러 개의 Attention을 동시에 수행하는 Multi-Head Attention을 사용합니다.

기본 Transformer에서는 총 8개의 Attention Head를 사용하며, 각각의 Head가 서로 다른 관점에서 단어 사이의 관계를 학습할 수 있도록 설계되어 있습니다.

예를 들어,

나는 오늘 사과를 먹었다.

라는 문장에서 하나의 Head는

나는 ↔ 먹었다

와 같은 주어와 동사의 관계를 학습할 수 있고,

다른 Head는

사과를 ↔ 먹었다

와 같은 목적어와 동사의 관계에 집중할 수 있습니다.

또 다른 Head는 문장 내 위치나 다른 의미적 관계를 학습할 수도 있습니다.

즉, Multi-Head Attention은 한 문장을 여러 관점에서 동시에 바라보는 것이라고 이해할 수 있습니다.


3.5 Positional Encoding

Transformer에는 RNN이 존재하지 않기 때문에 단어를 순서대로 처리하지 않습니다.

따라서 단순히 단어 Embedding만 입력하면 모델은

나는 오늘 사과를 먹었다

먹었다 사과를 오늘 나는

의 단어 순서를 명확하게 구분하기 어렵습니다.

이를 해결하기 위해 논문에서는 각 단어의 위치 정보를 표현하는 Positional Encoding을 Embedding에 추가했습니다.

즉,

Word Embedding + Positional Encoding

을 Transformer의 입력으로 사용하여 모델이 단어의 의미뿐만 아니라 문장 안에서의 위치 정보까지 함께 학습하도록 합니다.


3.6 Encoder와 Decoder

Transformer의 Encoder에서는 크게

Multi-Head Self-Attention → Feed Forward Network

과정을 반복합니다.

Decoder에서는 여기에 추가적으로 Encoder의 정보를 참고하는 Attention Layer가 존재합니다.

또한 Decoder의 Self-Attention에서는 Masking을 적용합니다.

예를 들어 모델이

나는 오늘 사과를 ___

까지 생성했다고 한다면, 아직 생성되지 않은 미래의 단어를 미리 참고해서는 안 됩니다.

따라서 Masked Self-Attention을 이용하여 현재 위치보다 뒤에 있는 정보를 보지 못하도록 제한합니다.


4. 실험 (Experiment)

논문에서는 Transformer의 성능을 검증하기 위해 대표적인 기계 번역 데이터셋을 사용했습니다.

주요 실험은 다음 두 가지 번역 Task를 중심으로 진행되었습니다.

  • WMT 2014 English → German
  • WMT 2014 English → French

모델의 번역 성능을 평가하기 위해 BLEU Score를 사용했습니다.

또한 기존의 RNN 기반 모델과 CNN 기반 Sequence-to-Sequence 모델을 Transformer와 비교하여 번역 성능뿐만 아니라 학습 비용과 계산 효율성까지 함께 비교했습니다.


5. 실험 결과 (Result)

Transformer는 당시 기존의 대표적인 기계 번역 모델보다 매우 뛰어난 성능을 기록했습니다.

주요 결과는 다음과 같습니다.

  • WMT 2014 English → German : 28.4 BLEU
  • WMT 2014 English → French : 41.0 BLEU
  • 기존 RNN 및 CNN 기반 모델보다 높은 번역 성능
  • 병렬 연산을 통한 효율적인 학습
  • 기존 모델에 비해 낮은 학습 비용

특히 English → German 번역에서 Transformer Big 모델은 기존에 보고된 최고 모델보다 2 BLEU 이상 높은 28.4 BLEU를 기록했습니다.

Transformer Big 모델의 학습에는 8개의 NVIDIA P100 GPU를 사용했으며 약 3.5일이 소요되었습니다. English → French에서는 41.0 BLEU를 기록하며 당시 기존 단일 모델보다 높은 성능을 달성했습니다.

기본 Transformer 모델은 약 6,500만 개의 파라미터, Transformer Big 모델은 약 2억 1,300만 개의 파라미터를 사용했습니다.


6. 장점과 한계 (Pros & Cons)

장점

  • RNN과 CNN을 제거하고 Attention만으로 Sequence Modeling이 가능함을 입증
  • 문장의 모든 단어를 동시에 처리할 수 있어 병렬 연산에 유리
  • 멀리 떨어진 단어 사이의 관계를 직접 계산할 수 있음
  • Self-Attention을 통해 문맥 정보를 효과적으로 학습
  • Multi-Head Attention을 이용해 다양한 관계를 동시에 학습
  • 기존 RNN 기반 모델보다 학습 시간을 크게 단축
  • Encoder-Decoder 구조를 유지하면서도 계산 효율성을 크게 개선

특히 RNN에서는 멀리 떨어진 두 단어의 정보가 여러 단계의 hidden state를 거쳐 전달되어야 했지만, Self-Attention에서는 서로 다른 위치에 있는 두 단어 사이의 관계를 직접 계산할 수 있다는 점이 매우 큰 장점입니다. 논문에서도 이러한 짧은 정보 전달 경로와 병렬 처리 가능성을 Transformer의 핵심 장점으로 설명합니다.

한계

  • Self-Attention의 계산량이 Sequence Length에 대해 O(n²)으로 증가
  • 문장이 매우 길어지면 Attention Matrix의 크기도 급격하게 증가하여 메모리 사용량이 커짐
  • RNN을 제거했기 때문에 별도의 Positional Encoding이 필요
  • Decoder의 문장 생성 과정은 Autoregressive 방식이므로 추론 단계에서는 여전히 순차적인 계산이 필요
  • 기본 Transformer 구조 자체도 수천만 개 이상의 파라미터를 사용하기 때문에 일정 수준 이상의 연산 자원이 필요

즉, Transformer는 학습 과정에서는 매우 뛰어난 병렬성을 제공하지만, 긴 Sequence를 처리할 때 Attention 계산량이 증가하고 문장을 생성하는 Decoder의 추론 과정은 완전히 병렬화할 수 없다는 한계가 있습니다. 논문에서도 향후 과제로 긴 입력을 효율적으로 처리하기 위한 제한적 Attention과 생성 과정의 순차성을 줄이는 연구를 언급했습니다.

7. 개인적인 평가 (Comment)

Attention Is All You Need는 단순히 새로운 자연어 처리 모델을 제안한 논문이 아니라, 오늘날 대규모 언어 모델(LLM)의 발전을 가능하게 한 핵심 기반을 제시한 연구​라고 생각합니다.

이 논문에서 제안된 Transformer 구조는 기존 자연어 처리의 중심이었던 RNN과 LSTM의 순차적 처리 방식을 벗어나, Self-Attention을 통해 문장 전체의 단어 관계를 직접 계산하는 새로운 패러다임을 제시했습니다.

이후 등장한 GPT, BERT, T5를 비롯한 대부분의 현대 LLM은 Transformer 구조를 기반으로 발전​하였으며, 현재의 ChatGPT와 같은 생성형 AI 역시 그 연장선상에 있습니다.

즉, Transformer의 등장은 단순히 기계 번역 성능을 향상시킨 하나의 모델 개발에 그친 것이 아니라, 자연어 처리의 연구 방향 자체를 바꾸고 오늘날 LLM과 생성형 AI 시대를 가능하게 한 출발점이라고 볼 수 있습니다.

특히 Transformer에서 제안된

Query, Key, Value → Self-Attention → Multi-Head Attention

구조는 이후 수많은 언어 모델의 핵심 연산 방식으로 자리 잡았습니다.

개인적으로 이 논문을 공부하면서 가장 중요하다고 느낀 부분은 Transformer의 복잡한 구조를 단순히 외우는 것이 아니라,

“현재 단어(Query)가 다른 단어(Key)와 얼마나 관련되어 있는지를 계산하고, 그 결과에 따라 필요한 정보(Value)를 가져온다.”

라는 Attention의 기본 원리를 이해하는 것입니다.

Attention Is All You Need는 현대 자연어 처리의 패러다임을 바꾼 논문이자, 현재의 LLM과 생성형 AI 발전의 기술적 토대를 마련한 역사적인 연구라고 생각합니다. Transformer와 LLM을 공부한다면 반드시 먼저 이해해야 할 논문 중 하나입니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다