2017년 Google Brain 팀이 발표한 논문 Attention Is All You Need는 자연어 처리의 판도를 바꿨다. 이 논문이 제안한 Transformer는 순환 신경망과 합성곱 신경망을 완전히 배제하고, 오직 어텐션attention 메커니즘만으로 시퀀스 변환 문제를 해결한다. 오늘날 GPT, BERT, T5 등 대형 언어 모델의 근간이 되는 이 아키텍처가 어떻게 동작하는지, 어텐션의 직관에서 시작해 인코더·디코더 블록의 구성, 위치 인코딩, 복잡도 비교, 학습 설정까지 차례로 살펴본다.
RNN의 한계와 Transformer의 등장
순환 신경망 (RNN)은 시퀀스 데이터를 처리하는 데 오랫동안 표준으로 쓰였다. 입력 토큰을 순서대로 처리하면서 은닉 상태hidden state를 다음 스텝으로 전달하는 방식이다. 그러나 이 구조에는 두 가지 근본적인 문제가 있다.
첫째, 순차적 계산sequential computation 때문에 병렬화가 불가능하다. 토큰 의 은닉 상태를 계산하려면 반드시 토큰 의 결과가 먼저 있어야 한다. 시퀀스 길이가 이면 번의 순차 연산이 필요하다.
둘째, 장거리 의존성long-range dependency 문제다. 문장 앞부분의 정보가 뒷부분까지 전달되려면 은닉 상태를 통해 여러 스텝을 거쳐야 한다. 이 과정에서 기울기 소실 문제가 발생하고, 멀리 떨어진 토큰 간의 관계를 포착하기 어려워진다.1
Transformer는 이 두 문제를 어텐션 메커니즘으로 정면 돌파한다. 모든 토큰 쌍의 관계를 단 한 번의 연산으로 직접 계산하기 때문에, 거리에 무관하게 의존성을 포착하고 연산을 완전히 병렬화할 수 있다.
어텐션 메커니즘
직관적 이해
어텐션의 핵심 아이디어는 간단하다. 어떤 토큰을 처리할 때, 시퀀스 내 다른 모든 토큰 중 "얼마나 주목해야 하는가"를 동적으로 계산한다.
예를 들어 "The animal didn't cross the street because it was too tired"라는 문장에서 "it"이 무엇을 가리키는지 파악하려면, 모델은 "animal"에 높은 어텐션 가중치를 부여해야 한다. RNN은 이 관계를 여러 스텝을 거쳐 간접적으로 포착하지만, Transformer는 "it"과 "animal" 사이의 관계를 직접 계산한다.
Scaled Dot-Product Attention
Transformer의 어텐션은 세 가지 벡터를 사용한다. 쿼리Query, Q는 "무엇을 찾고 있는가"를, 키Key, K는 "나는 어떤 정보를 가지고 있는가"를, 값Value, V은 "실제로 전달할 정보"를 담는다. 각 입력 토큰의 임베딩 벡터를 행 단위로 쌓은 행렬 에 학습 가능한 가중치 행렬 와 를 곱해 Q, K, V를 생성한다.
어텐션 출력은 다음 수식으로 계산된다.
은 모든 Query-Key 쌍의 내적dot product을 한 번에 계산한 행렬이다. 내적 값이 클수록 두 토큰이 서로 관련성이 높다는 의미다. 로 나누는 이유는 차원 가 커질수록 내적 값의 분산이 커져 소프트맥스가 극단적으로 작은 기울기를 갖는 영역으로 밀려나는 것을 방지하기 위해서다.2 소프트맥스를 통해 가중치의 합이 1이 되도록 정규화한 뒤, Value 벡터들의 가중 합을 구한다.
의사코드로 정리하면 다음과 같다.
mask는 인과적 마스킹이나 패딩 마스킹에 사용된다. 마스크된 위치에 를 더하면 소프트맥스 이후 해당 가중치가 0이 되어 그 토큰이 무시된다.3
Multi-Head Attention
단일 어텐션 헤드는 하나의 관점에서만 토큰 간 관계를 포착한다. Multi-Head Attention은 개의 어텐션 헤드를 병렬로 실행해 다양한 관점에서 관계를 동시에 학습한다.
각 헤드는 독립적인 가중치 행렬 , 를 가진다. 어떤 헤드는 문법적 관계를, 다른 헤드는 의미적 관계를 학습하는 식으로 역할이 분화된다. 모든 헤드의 출력을 이어 붙인 뒤 로 선형 변환해 최종 출력을 만든다. 원 논문에서는 , 를 사용해 전체 연산량을 단일 헤드와 동일하게 유지했다.
루프로 표기했지만 실제 구현은 개의 헤드를 하나의 텐서 차원으로 쌓아 단일 배치 행렬 곱으로 처리한다. 즉 를 형태로 reshape해 GPU에서 완전히 병렬화한다.
Transformer 아키텍처
Transformer는 인코더(Encoder)와 디코더(Decoder)로 구성된다. 기계 번역을 예로 들면, 인코더는 소스 언어 문장을 처리하고 디코더는 타깃 언어 문장을 생성한다.
인코더 블록
인코더는 동일한 구조의 블록 개를 쌓아 만든다(원 논문에서 ). 각 블록은 두 개의 서브레이어로 구성된다.
- Multi-Head Self-Attention: 입력 시퀀스 내 모든 토큰이 서로를 참조한다. Q, K, V 모두 같은 입력에서 나온다.
- Position-wise Feed-Forward Network (FFN): 각 위치의 표현을 독립적으로 변환하는 2층 완전 연결 신경망이다. 활성화 함수로 ReLU를 사용한다.
각 서브레이어에는 잔차 연결residual connection과 레이어 정규화layer normalization가 적용된다.4
이 "Add & Norm" 패턴은 신경망 깊이가 늘어도 기울기가 안정적으로 흐르도록 보장하며, Transformer를 수백 층까지 쌓을 수 있게 만든 핵심 장치다.
디코더 블록
디코더도 개의 블록으로 구성되며, 인코더 블록에 한 가지 서브레이어가 추가된다.
- Masked Multi-Head Self-Attention: 자기 자신보다 앞에 있는 토큰만 참조할 수 있도록 미래 위치를 마스킹한다. 학습 시 정답 시퀀스를 한꺼번에 입력하더라도 미래 정보가 누설되지 않게 한다.3
- Cross-Attention: Q는 디코더의 이전 서브레이어 출력에서, K와 V는 인코더의 최종 출력에서 가져온다. 디코더가 인코더의 표현을 참조하는 통로다.
- Feed-Forward Network: 인코더와 동일한 구조.
위치 인코딩
어텐션 연산 자체는 순서 정보를 갖지 않는다. 는 입력 토큰을 임의로 섞어도 동일한 출력 집합을 내놓는 순열 동변permutation-equivariant 연산이다. 따라서 토큰의 위치를 모델에 명시적으로 알려주기 위해 입력 임베딩에 위치 인코딩positional encoding을 더한다.
원 논문은 사인sine과 코사인cosine 함수를 사용한 고정 위치 인코딩을 제안했다.
는 시퀀스 내 위치, 는 임베딩 차원의 인덱스다. 주파수가 차원마다 다르기 때문에 각 위치는 고유한 패턴을 갖는다. 또한 삼각함수의 덧셈 공식 덕분에 를 의 선형 함수로 표현할 수 있어, 모델이 상대적 위치 관계를 학습하기 용이하다.5
복잡도 비교
Transformer가 RNN 대비 갖는 계산 복잡도 상의 이점을 정리하면 다음과 같다.
| 레이어 유형 | 레이어당 복잡도 | 순차 연산 수 | 최대 경로 길이 |
|---|---|---|---|
| Self-Attention | |||
| RNN | |||
| CNN (커널 크기 ) |
은 시퀀스 길이, 는 표현 차원이다. Self-Attention은 임의의 두 토큰 사이의 경로 길이가 이므로 장거리 의존성을 가장 효율적으로 학습할 수 있다. 단, 시퀀스 길이 에 대해 복잡도를 가지므로 매우 긴 시퀀스에서는 메모리 병목이 생긴다.6
학습과 정규화
원 논문의 학습 설정에서 주목할 만한 요소들이 있다.
드롭아웃(Dropout): 각 서브레이어의 출력, 임베딩과 위치 인코딩의 합, 어텐션 가중치에 드롭아웃을 적용한다(비율 ).
레이블 스무딩(Label Smoothing): 정답 레이블의 확률을 1 대신 로, 나머지 어휘에 을 분배한다(). 모델이 지나치게 확신하는 것을 방지해 일반화 성능을 높인다.
학습률 스케줄링: 워밍업(warmup) 단계 이후 학습률을 점진적으로 감소시킨다.
성능과 영향
원 논문은 WMT 2014 영어-독일어 번역에서 BLEU 28.4, 영어-프랑스어 번역에서 BLEU 41.0을 달성해 당시 최고 성능을 경신했다. 특히 8개의 P100 GPU로 3.5일 만에 학습을 완료했는데, 이는 기존 최고 성능 모델 대비 훨씬 짧은 시간이었다.
Transformer의 등장 이후 자연어 처리 분야는 빠르게 재편됐다. BERT는 인코더만 사용해 양방향 문맥을 학습하고, GPT 시리즈는 디코더만 사용해 자기회귀적 언어 모델을 구현했다. 오늘날 대형 언어 모델Large Language Model, LLM의 사실상 모든 아키텍처가 Transformer를 기반으로 한다.
출처
- Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A.N., Kaiser, Ł. and Polosukhin, I. (2017) 'Attention is all you need', Advances in Neural Information Processing Systems, 30. Available at: https://arxiv.org/abs/1706.03762 (Accessed: 27 April 2026).
- Tunstall, L., von Werra, L. and Wolf, T. (2022) Natural Language Processing with Transformers. Sebastopol, CA: O'Reilly Media.
- Manning, C.D. and Socher, R. (2025) CS224N: Natural Language Processing with Deep Learning, Lecture 8: Transformers. Stanford University. Available at: https://web.stanford.edu/class/cs224n/ (Accessed: 27 April 2026).
Footnotes
-
RNN의 은닉 상태는 고정된 크기의 벡터로 시퀀스 전체의 정보를 압축해야 한다. 시퀀스가 길어질수록 초기 토큰의 정보가 희석되는 정보 병목(information bottleneck) 현상이 발생한다. LSTM과 GRU가 이를 완화하지만 근본적으로 해결하지는 못한다. ↩
-
차원의 벡터에서 각 성분이 평균 0, 분산 1의 분포를 따른다고 가정하면, 내적의 분산은 가 된다. 로 나누면 분산이 1로 정규화되어 소프트맥스 함수가 기울기가 충분한 영역에서 동작한다. ↩
-
이 마스킹을 인과적 마스킹(causal masking) 또는 자기회귀적 마스킹(autoregressive masking)이라 한다. 어텐션 점수 행렬에서 미래 위치에 해당하는 값을 로 설정하면 소프트맥스 이후 해당 위치의 가중치가 0이 된다. ↩ ↩2
-
잔차 연결(residual connection)은 He et al. (2016)의 ResNet에서 제안된 기법으로, 서브레이어의 입력을 출력에 직접 더한다. 깊은 네트워크에서 기울기 소실 문제를 완화하고 학습을 안정화한다. ↩
-
삼각함수 덧셈 공식 에 의해 는 의 선형 변환으로 표현된다. 이는 모델이 절대 위치뿐 아니라 상대적 거리 를 학습하는 데 도움을 준다. ↩
-
시퀀스 길이 에 대한 메모리 복잡도는 긴 문서 처리의 병목이 된다. 이를 해결하기 위해 Longformer, BigBird, FlashAttention 등 다양한 효율적 어텐션 변형이 제안됐다. ↩