[LLM 해석가능성] Transformer 아키텍처 이해하기
#ML#LLM Interpretability

[LLM 해석가능성] Transformer 아키텍처 이해하기

0. Introduction

LLM Interpretability를 향한 첫 걸음

이 글은 LLM Interpretability 스터디 Week 1 준비를 위해, Transformer의 내부 아키텍처를 수학적 직관과 함께 정리한 노트입니다.

Transformer는 본질적으로 다음 토큰 예측기입니다. 입력 공간 XX는 토큰 시퀀스이고, 출력 공간 YY는 어휘(vocabulary) 위의 확률분포입니다. 이 글에서는 입력부터 출력까지 데이터가 흐르는 과정을 하나하나 따라가 보겠습니다.

이 글의 여정
토큰과 임베딩텍스트를 벡터로 변환하기
Self-Attention토큰 간 정보 교환 메커니즘
Multi-Head Attention여러 관점에서 동시에 바라보기
Transformer 블록 구조Residual stream과 정보 흐름
최종 출력과 Logit Lens중간 layer의 예측 상태 관찰

1. 토큰과 임베딩

텍스트에서 벡터로

텍스트가 Transformer에 들어가려면 두 단계를 거칩니다: 토큰화 임베딩.

토큰화(Tokenization)는 텍스트를 단어 또는 부분 단어(subword) 단위로 쪼개어 각각에 정수 ID를 부여하는 과정입니다. 예를 들어, "안녕하세요"는 ["안녕", "하세요"]처럼 분리될 수 있습니다.

임베딩(Embedding)은 각 토큰 ID를 고차원 벡터로 변환합니다. 핵심은 의미적으로 비슷한 단어들이 벡터 공간에서 가까이 위치한다는 것입니다.

마지막으로 Positional Encoding이 필요합니다. Transformer의 attention은 본질적으로 순서를 모릅니다 — 내적은 순서와 무관하기 때문입니다. 따라서 위치 정보 벡터를 임베딩에 더하여 순서를 부여합니다.

Q1
만약 positional encoding 없이 "A B C"와 "C B A"를 모델에 넣으면, attention 연산 결과가 어떻게 될까요?
동일한 attention score가 나옵니다. 내적은 순서와 무관하기 때문입니다. 따라서 위치 정보를 별도로 주입해야 합니다.

2. Self-Attention

토큰 간 선택적 정보 교환

"bank"라는 단어를 생각해봅시다. 은행일까요, 강둑일까요? 이를 파악하려면 주변 단어의 정보가 필요합니다. Attention은 각 토큰이 다른 토큰의 정보를 선택적으로 가져오는 메커니즘입니다.

Q, K, V — 도서관 비유
Query(Q)는 "나는 이런 정보가 필요해"라는 검색 요청, Key(K)는 각 책의 색인 카드, Value(V)는 실제 책의 내용입니다. Q와 K의 유사도로 어떤 책을 읽을지 결정하고, 그 책의 V를 가져옵니다.

Self-attention 연산은 다음 단계로 이루어집니다:

[1]Q, K, V 생성 — 각 토큰 벡터에 W_Q, W_K, W_V를 곱함
[2]Score 계산 — Q와 K의 내적
[3]Scaling — √d_k로 나눔
[4]Softmax — 확률분포로 변환
[5-6]Value의 가중 평균 계산

이 전체를 하나의 수식으로 표현하면:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
Q=XWQ,K=XWK,V=XWVQ = XW_Q, \quad K = XW_K, \quad V = XW_V
Q1
Q와 K의 내적이 큰 양수라는 것은 직관적으로 무엇을 의미할까요? 반대로 큰 음수라면?
큰 양수 = 두 벡터가 비슷한 방향 = "이 토큰이 원하는 정보(Query)와 저 토큰이 갖고 있는 정보(Key)가 잘 맞는다" → 높은 attention.

큰 음수 = 반대 방향 = 관련 없음 → 낮은 attention.

3. Multi-Head Attention

여러 관점에서 동시에 바라보기

하나의 attention head로는 한 종류의 관계만 포착할 수 있습니다. 예를 들어, 어떤 head는 "주어-동사" 관계에 집중하고, 다른 head는 "수식어-피수식어" 관계에 집중할 수 있습니다.

Multi-Head Attention은 여러 독립적 attention head를 병렬로 실행하여 각 head가 서로 다른 관계 패턴을 학습하도록 합니다. 임베딩 차원을 head 수로 나누어 각 head의 Q, K, V 차원을 결정합니다.

MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W_O
headi=Attention(XWQi,XWKi,XWVi)\text{head}_i = \text{Attention}(XW_Q^i, XW_K^i, XW_V^i)

각 head의 출력을 concatenate한 후,WOW_O를 곱하여 원래 차원으로 복원합니다.WOW_O는 단순 차원 축소가 아닌, head 간 정보의 학습된 재조합입니다 — 마치 여러 전문가의 의견을 종합하는 편집자와 같습니다.

Q1
임베딩 차원이 512이고 head가 8개일 때, 각 head의 Q, K, V 차원과 출력 차원은? concat 후 차원은?
각 head의 Q, K, V 차원 = 512/8=64512/8 = 64. 각 head 출력도 64차원. concat하면 64×8=51264 \times 8 = 512차원으로 원래 임베딩 차원과 동일. 따라서 WOW_O512×512512 \times 512 행렬입니다.

4. Transformer 블록

Residual Stream과 정보의 흐름

Transformer 블록 하나의 구조는 다음과 같습니다: Self-Attention → Add & LayerNorm → FFN → Add & LayerNorm.

FFN(Feed-Forward Network)은 2층 fully-connected network입니다. Attention이 "토큰 간 정보 교환"이라면, FFN은 "각 토큰 내부에서의 정보 처리"입니다.

FFN(x)=W2ReLU(W1x+b1)+b2\text{FFN}(x) = W_2 \cdot \text{ReLU}(W_1 x + b_1) + b_2

Residual connection: x+sublayer(x)x + \text{sublayer}(x). "기존 정보를 유지하면서 새로운 정보를 추가"하는 구조입니다.

핵심 관점 전환
Residual connection을 단순한 gradient 흐름 개선 장치가 아닌, 정보가 흐르는 공유 통신 버스(residual stream)로 재해석할 수 있습니다. 각 구성요소(attention head, FFN)는 이 stream에서 정보를 읽고 쓰는 것입니다.
hl=h0+i=1lattni+i=1lffnih_l = h_0 + \sum_{i=1}^{l} \text{attn}_i + \sum_{i=1}^{l} \text{ffn}_i
Q1
Residual connection이 없다면(즉, 각 layer가 입력을 완전히 변환한다면), 12개 layer를 쌓았을 때 초기 임베딩 정보는 어떻게 될까요?
각 layer가 입력을 완전히 변환하면, 초기 임베딩 정보는 12번의 변환을 거치며 원래 형태를 잃어버릴 수 있습니다. Residual connection은 원래 정보를 그대로 유지하면서 각 layer가 "수정 사항"만 더하도록 하여, 깊은 네트워크에서도 초기 정보가 보존됩니다.

5. 최종 출력과 Logit Lens

중간 layer의 예측 상태 관찰

마지막 layer의 출력 벡터에 Unembedding matrix WUW_U를 곱하면 logit 벡터가 되고, softmax를 적용하면 다음 토큰의 확률분포를 얻습니다.

logits=WUhfinal\text{logits} = W_U \cdot h_{\text{final}}
P(next token)=softmax(logits)P(\text{next token}) = \text{softmax}(\text{logits})

Logit Lens의 아이디어:WUW_U를 마지막 layer뿐 아니라 중간 layer에도 적용하면, 그 시점까지의 "중간 예측 상태"를 관찰할 수 있습니다. 이것이 작동하는 이유는 residual stream 구조 덕분에 모든 layer가 같은 벡터 공간에서 정보를 누적하기 때문입니다.

Q1
12개 layer를 가진 모델에서 Logit Lens로 관찰할 수 있는 "중간 예측 상태"는 최대 몇 개일까요? (초기 임베딩 포함, 최종 출력 제외)
초기 임베딩(layer 0 출력)부터 layer 11의 출력까지, 총 12개의 중간 예측 상태를 관찰할 수 있습니다. 초기 임베딩에도 WUW_U를 적용할 수 있는데, 이 경우 모델이 아무런 처리도 하지 않은 상태에서 "토큰의 정체성만으로 예측한 결과"를 보여줍니다.

6. 요약

Week 1 논문으로의 다리

토큰과 임베딩
텍스트 → 토큰 ID → 고차원 벡터 + 위치 정보
Self-Attention
softmax(QKᵀ/√d_k)V — 토큰 간 선택적 정보 교환
Multi-Head Attention
여러 head가 독립적 관계 패턴을 포착, concat + W_O로 재조합
Residual Stream
x + sublayer(x) — 정보가 누적되는 공유 통신 버스
Unembedding과 Logit Lens
W_U를 중간 layer에 적용하여 예측 상태 관찰
Week 1 논문 연결 포인트

Elhage et al.의 A Mathematical Framework for Transformer Circuits는 이 글에서 다룬 개념들을 토대로, residual stream을 중심축으로 삼아 개별 attention head의 기능을 Q-K circuit(어디에 주목?)과 O-V circuit(무슨 정보를 가져올?)으로 분해하여 분석합니다.

Logit Lens는 이 프레임워크의 직접적 응용이며, 이후 causal tracing, path patching 등 더 정교한 분석 기법의 출발점이 됩니다.