Attention is All You Need: Transformer

­강지윤·2025년 6월 3일
post-thumbnail

🧠 Transformer 구조 정리 (Encoder-Decoder 기반)

Transformer는 Attention 메커니즘을 활용한 모델로, 병렬처리가 가능하고 긴 문맥을 잘 반영할 수 있다는 점에서 RNN/LSTM을 대체하는 대표적인 모델입니다. 본 포스트에서는 Encoder-Decoder 구조를 중심으로 Transformer의 핵심 구성 요소를 설명합니다.


🔹 Transformer 전체 구조

Transformer는 크게 두 부분으로 구성됩니다.

  • Encoder: 입력 시퀀스를 인코딩 (예: 문장을 의미 벡터로 변환)
  • Decoder: 인코딩된 벡터를 바탕으로 출력 시퀀스 생성

🔸 Encoder 구성

1. Input Embedding + Positional Encoding

Transformer는 순서를 모르는 구조이기 때문에, 단어 임베딩 + 위치 정보(Positional Encoding)를 더해줍니다.

2. Multi-Head Self-Attention

  • Self-Attention: 입력 시퀀스 내 단어들끼리 서로 얼마나 중요한지 계산합니다.
  • 각 단어는 Query, Key, Value로 변환되고 아래 수식을 따라 Attention Score가 계산됩니다.
Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^T}{\sqrt{d_k}} \right)V

3. Feed Forward Network (FFN)

각 위치에서 독립적으로 작동하는 작은 신경망입니다.

4. Add & Norm (Residual + LayerNorm)

Residual connection을 통해 정보 손실을 막고, Layer Normalization을 통해 학습 안정성을 높입니다.


🔸 Self Attention 더 확대해서 보면 다음과 같다!

▶ Query, Key, Value 생성

입력Q, K, V 생성 방식
임베딩 벡터각기 다른 가중치를 가진 선형변환으로 Q, K, V 생성
  • Query: Embedding vector를 구할 대상 (ex: it)
    • Key: Query와 연관성있는 단어들을 계산할 대상 (ex: 위 그림의 왼쪽 문서 토큰들)
    • Value: Query와 Key를 이용해 찾은 attention weight를 적용해 Attention value를 찾을 대상.
    • Self attention은 Query, Key, Value 모두 입력 Sequence(X)로 부터 생성한다.
      - X에 각각 다른 Weight를 내적하여 만든다.
      - Query=XWqQuery=X\cdot W_q
      - Key=XWkKey=X\cdot W_k
      - Value=XWvValue=X\cdot W_v

▶ Attention Score 계산

  • Q와 K 간의 내적 (유사도)
  • QKTdk\frac{Q \cdot K^T}{\sqrt{d_k}} 계산 → 유사도가 높을수록 더 집중할 수 있음

▶ Attention Weight

  • Score에 Softmax 적용
  • 총합이 1인 확률 분포 생성

▶ Attention Value

  • Attention Weight와 Value를 곱함 → 문맥(Context) 벡터 생성

    Attention Value=Attention WeightValue\text{Attention Value} = \text{Attention Weight}\cdot\text{Value}


🔸 Decoder 구성

Decoder는 두 가지 종류의 Attention을 사용합니다:

1. Masked Multi-Head Self-Attention

  • 왼쪽(과거 단어)만 참고해서 다음 단어 예측
  • 미래 단어 정보가 보이지 않도록 마스킹

2. Encoder-Decoder Attention

  • Encoder에서 생성된 Key/Value를 사용
  • 현재 디코딩 위치의 Query와 연산

3. Feed Forward + Add & Norm

Encoder와 동일한 방식으로 처리됩니다.


🧩 시각적 이해 보충

▶ Masked Attention Matrix

Query →Iamaboy
I
am
a
boy

✔: 사용 가능, ✖: 마스킹됨 (미래 정보 차단)


✅ 핵심 요약

구성 요소역할
Positional Encoding위치 정보 추가
Multi-Head Attention다양한 관점에서의 정보 결합
FFN위치별로 독립적인 피처 추출
Add & Norm학습 안정화, gradient 흐름 유지
MaskingDecoder가 미래 단어를 참고하지 않게 만듦
profile
Proverbs 2:20

0개의 댓글