콘텐츠로 이동

트랜스포머 아키텍처 (Transformer Architecture)

핵심 요약: Transformer는 어텐션(Attention)만으로 작동하는 모델이다. RNN의 순차 처리 한계를 극복하여 완전한 병렬화(Parallelization)가 가능하고, 멀리 떨어진 토큰 간의 관계도 한 번에 파악한다. GPT, BERT, ViT 등 현대 AI의 거의 모든 주요 모델의 기반 아키텍처이다.

Transformer는 Vaswani et al. (2017)이 “Attention Is All You Need”에서 제안한 아키텍처로, 순환(recurrence) 없이 어텐션 메커니즘만으로 시퀀스를 처리한다. RNN의 순차적 처리 한계를 극복하고 완전한 병렬화를 가능하게 하여, 현재 NLP, 컴퓨터 비전, 오디오 등 거의 모든 도메인에서 지배적인 아키텍처가 되었다.


2017년, Google Brain의 Ashish Vaswani를 비롯한 8명의 연구자가 “Attention Is All You Need”라는 논문을 발표했다. 제목 그대로, 이 논문의 핵심 주장은 충격적이었다: RNN도, CNN도 필요 없이, 어텐션 메커니즘만으로 시퀀스를 처리할 수 있다는 것이었다. 당시 기계번역의 표준이었던 RNN 기반 Seq2Seq + Attention 구조를 완전히 대체하고, 영어-독일어 번역에서 기존 SOTA를 2 BLEU 이상 경신하면서도 학습 시간은 수분의 1로 줄였다.

Transformer가 RNN을 대체할 수 있었던 핵심 통찰은 다음과 같다: RNN은 시퀀스를 한 토큰씩 순차적으로 처리해야 하므로 병렬화가 불가능하고, 멀리 떨어진 토큰 간의 정보 전달에 O(n)O(n) 단계가 필요하다. 반면 Self-Attention은 모든 토큰 쌍을 한 번에 동시 참조하므로 경로 길이가 O(1)O(1)이고, 완전한 병렬 처리가 가능하다. 이 논문은 현재까지 13만 회 이상 인용되며, BERT, GPT, ViT, Stable Diffusion 등 현대 AI의 거의 모든 주요 모델의 기반이 되었다.

비유: RNN은 한 줄로 서서 한 명씩 정보를 전달하는 전화 게임이다. 앞사람의 말을 듣고 뒷사람에게 전달하므로, 줄이 길어지면 정보가 왜곡되고 시간도 오래 걸린다. 반면 Transformer는 모두가 동시에 대화할 수 있는 원탁회의다. 참석자 전원이 서로의 발언을 직접 듣고 반응할 수 있으며, 회의가 한 번에 진행되므로 줄 길이에 관계없이 빠르다.


1. 전체 아키텍처 다이어그램 인코더(Encoder): N개의 동일한 층으로 구성. 각 층은 Self-Attention + FFN
디코더(Decoder): N개의 동일한 층으로 구성. 각 층은 Masked Self-Attention + Cross-Attention + FFN
각 Sub-layer: 잔차 연결(Residual Connection) — 입력을 출력에 직접 더해주는 지름길 — + Layer Normalization

3개 토큰 “나는 고양이를 좋아한다”의 Self-Attention 1단계를 따라가 보자.

각 토큰이 다른 토큰에 “얼마나 주목하는지”를 계산한다.

  1. 각 토큰의 임베딩(Embedding)에서 Q, K, V를 생성 (학습된 행렬로 변환)
  2. 어텐션 점수(Attention Score) 계산 (Q와 K의 내적):
나는고양이를좋아한다
나는0.80.10.1
고양이를0.20.50.3
좋아한다0.30.60.1
  1. “좋아한다”의 출력 = 0.3×V나는+0.6×V고양이를+0.1×V좋아한다0.3 \times V_{\text{나는}} + 0.6 \times V_{\text{고양이를}} + 0.1 \times V_{\text{좋아한다}}

“좋아한다”가 “고양이를”에 가장 많이 주목(0.6)한다는 것은, 모델이 “무엇을 좋아하는지”의 관계를 학습하고 있다는 뜻이다. 이것이 Self-Attention의 핵심이다.

output=LayerNorm(x+SubLayer(x))\text{output} = \text{LayerNorm}(x + \text{SubLayer}(x))

Self-attention은 순서 불변(Permutation Invariant) — 토큰의 순서를 바꿔도 결과가 동일 — 이므로, 위치 정보를 별도로 주입해야 한다.

PE(pos,2i)=sin(pos100002i/dmodel)PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i+1)=cos(pos100002i/dmodel)PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right)

  • 임의 길이로 일반화 가능
  • 상대적 위치 관계를 선형 변환으로 표현 가능
방법핵심 아이디어사용 모델
Learned Positional Embedding위치별 학습 가능 벡터BERT, GPT
Relative Positional Encoding절대 위치 대신 상대 거리T5, Shaw et al.
RoPE (Rotary)회전 행렬 기반, 내적이 상대 위치의 함수LLaMA, Qwen
ALiBiattention score에 거리 기반 bias 추가BLOOM

RoPE는 현재 대부분의 최신 LLM에서 사용되며, 학습 시 본 적 없는 긴 시퀀스에도 비교적 잘 일반화된다.

각 위치에 독립적으로 적용되는 2층 신경망이다.

기본 구조: FFN(x)=W2GELU(W1x+b1)+b2\text{FFN}(x) = W_2 \cdot \text{GELU}(W_1 x + b_1) + b_2

차원: dmodeldff(=4×dmodel)dmodeld_{model} \to d_{ff}(= 4 \times d_{model}) \to d_{model}

GLU 변형 (SwiGLU, LLaMA에서 사용): FFN(x)=(W1xSwish(Wgx))W2\text{FFN}(x) = (W_1 x \odot \text{Swish}(W_g x)) W_2

직관: Attention이 “어디를 볼지” 결정하고, FFN(Feed-Forward Network)이 “무엇을 할지” 결정한다. FFN은 각 토큰 위치에 독립적으로 적용되는 작은 신경망이다.

특성RNNTransformer
병렬화불가 (순차 처리)가능 (전체 동시 처리)
장거리 의존성O(n)O(n) 경로 길이O(1)O(1) 경로 길이
GPU 활용도낮음높음
학습 속도느림빠름
메모리O(n)O(n)O(n2)O(n^2)
귀납적 편향시간적 근접성거의 없음 (더 많은 데이터 필요)

5. Transformer 변형 다이어그램

변형어텐션 방향주요 과제대표 모델
Encoder-only양방향분류, NER, 질의응답BERT, RoBERTa
Decoder-only단방향 (causal)생성, 추론GPT, LLaMA, Claude
Encoder-Decoder양방향 + 단방향번역, 요약T5, BART
Vision이미지 패치이미지 분류, 탐지ViT, DeiT, Swin

Post-LN (원래 Transformer): x=LayerNorm(x+SubLayer(x))x' = \text{LayerNorm}(x + \text{SubLayer}(x))

Pre-LN (현재 표준): x=x+SubLayer(LayerNorm(x))x' = x + \text{SubLayer}(\text{LayerNorm}(x))

Pre-LN이 학습 안정성이 더 좋아, warmup이 짧아도 되고, 더 깊은 모델을 학습할 수 있다.

자기회귀 생성 시, 이미 계산한 Key와 Value를 캐시하여 재계산을 방지한다.

  • 없이: 토큰 tt를 생성할 때 1t11 \sim t-1의 K, V를 매번 재계산 → O(n2)O(n^2)
  • 있으면: 이전 K, V를 저장하고 새 토큰의 K, V만 추가 → O(n)O(n)

대규모 배치나 긴 시퀀스에서 KV-Cache는 메모리 병목이 될 수 있다. 이를 위해 GQA(Grouped-Query Attention), MQA(Multi-Query Attention) 등이 제안되었다.

이미지를 고정 크기 패치로 분할하여 “토큰”으로 취급한다.

  1. 이미지를 P×PP \times P 패치로 분할
  2. 각 패치를 선형 투영으로 임베딩
  3. 위치 인코딩 추가
  4. 표준 Transformer 인코더 적용
  5. [CLS] 토큰 또는 GAP으로 분류

대규모 데이터(JFT-300M 등)에서 학습하면 CNN을 능가하지만, 적은 데이터에서는 CNN의 귀납적 편향(이동 등변성, 지역성)이 유리하다.


과제추천 변형비고
텍스트 분류, NEREncoder-only (BERT)양방향 문맥이 중요
텍스트 생성Decoder-only (GPT)자기회귀 생성
번역, 요약Encoder-Decoder (T5)입출력이 다른 시퀀스
이미지 분류ViT 또는 CNN데이터 양에 따라 선택
멀티모달Cross-Attention 활용텍스트-이미지 등

Transformer는 기계번역을 위해 탄생했지만, 그 영향력은 NLP를 넘어 거의 모든 AI 분야로 확산되었다.

NLP (2018-2019): BERT(2018)는 Transformer 인코더를 양방향 사전학습에 활용하여 11개 NLP 벤치마크에서 동시에 SOTA를 달성했다. GPT-2(2019)는 Transformer 디코더만으로 놀라운 텍스트 생성 능력을 보여주었고, “너무 위험해서 공개하지 않겠다”는 OpenAI의 발표가 큰 화제가 되었다.

컴퓨터 비전 (2020-2021): Vision Transformer(ViT, 2020)는 이미지를 패치로 분할하여 토큰처럼 처리하는 간단한 아이디어로, 대규모 데이터에서 CNN을 능가하는 성능을 달성했다. 이후 Swin Transformer, DeiT 등이 등장하며, 컴퓨터 비전에서도 Transformer가 주류 아키텍처로 자리 잡았다.

오디오 및 멀티모달 (2021-2022): Whisper(2022)는 Transformer 기반 음성인식 모델로 다국어 음성을 높은 정확도로 인식한다. DALL-E, Stable Diffusion 등 텍스트-이미지 생성 모델에서도 Transformer의 Cross-Attention이 핵심 역할을 한다.

과학 및 범용 AI (2022-현재): AlphaFold2는 Transformer를 활용하여 단백질 구조 예측 문제를 사실상 해결했다. GPT-4, Claude 등 대규모 언어 모델은 Transformer 디코더 기반으로, 범용 추론 능력을 보여주고 있다. Transformer는 단일 아키텍처가 NLP, Vision, Audio, Science 전 분야를 통합하는 전례 없는 현상을 만들어냈다.


  1. “Transformer는 항상 RNN보다 좋다”: Transformer는 데이터가 충분하고 시퀀스가 매우 길지 않을 때 우수하다. 매우 제한된 데이터나 실시간 스트리밍에서는 RNN이 적합할 수 있다.

  2. Attention mask 설정 오류: 가장 흔한 버그. Padding mask(패딩 토큰 무시)와 Causal mask(미래 토큰 방지)를 정확히 설정해야 한다. 두 mask를 올바르게 결합하는 것도 중요하다.

  3. Warmup 없이 학습: Transformer는 학습 초기에 attention weight가 불안정하므로, learning rate warmup이 사실상 필수적이다. 특히 Post-LN에서는 더욱 중요하다.

  4. 위치 인코딩 누락: Self-attention은 순서를 모르므로, 위치 인코딩 없이는 “bag of tokens”처럼 동작한다.

  5. O(n2)O(n^2) 메모리를 무시: 시퀀스 길이가 늘어나면 attention 행렬의 메모리가 이차적으로 증가한다. Flash Attention이나 sparse attention을 고려해야 한다.