[LLM 해석가능성] Transformer 내부를 열어보면: 회로로 읽는 언어 모델의 작동 원리
0. Introduction
Anthropic의 Mathematical Framework 논문 해설
Transformer 기반 언어 모델은 놀라운 능력을 보여주지만, 내부에서 실제로 어떤 연산이 일어나는지는 잘 모릅니다. "왜 이런 답을 내놓았는가?"에 답하려면 모델 내부를 역공학(reverse engineering)해야 합니다.
이 글에서는 Anthropic의 A Mathematical Framework for Transformer Circuits (Elhage et al., 2021)가 제안한 Transformer 내부 분석 프레임워크를 따라갑니다. 핵심 아이디어는 Transformer를 해석 가능한 회로(circuit)의 조합으로 분해하는 것입니다.
논문의 서사 구조를 그대로 따라, 극도로 단순한 모델(0-layer)에서 시작하여 복잡도를 한 단계씩 올리며, 각 단계에서 새로운 능력이 어떻게 출현하는지를 발견해봅시다.
이 글의 여정
1. 관점의 전환: Residual Stream
2. Head의 두 회로: Q-K와 O-V
3. 0-Layer: Bigram 모델
4. 1-Layer: Skip-Trigram
5. 2-Layer: Composition과 Induction Head
6. Logit Lens
선행 지식
이 글은 Transformer 아키텍처(self-attention, multi-head attention, residual connection, FFN)에 대한 기본 이해를 전제합니다. 아직 익숙하지 않다면 Transformer 아키텍처 포스트를 먼저 읽어주세요.
1. 관점의 전환 — Residual Stream
모든 분석의 기반이 되는 관점 전환
Transformer를 "layer 1 → layer 2 → ... → layer N" 순차 파이프라인으로 보면, 각 layer가 입력을 완전히 변환하는 것처럼 느껴집니다. 하지만 residual connection 덕분에 실제로는 residual stream이라는 공유 통신 채널이 존재하고, 각 구성요소(attention head, FFN)는 이 채널에서 정보를 읽고 자신의 결과를 쓰는 것입니다.
hl=xembed+i=1∑lattni+i=1∑lffni
각 구성요소는 residual stream의 서로 다른 부분공간(subspace)을 통해 정보를 주고받을 수 있습니다. 여러 신호가 하나의 안테나에 들어오지만 튜너가 특정 주파수만 수신하는 라디오 주파수에 비유할 수 있습니다.
Q1
Layer 5의 attention head가 읽는 입력에는 어떤 정보들이 담겨 있을까요? 단순히 'layer 4의 출력'이라고 말할 수 있을까요?
Residual connection 구조에서 layer 5의 입력은 초기 임베딩 + layer 1~4의 모든 attention head와 FFN이 각각 더한 결과의 누적합입니다. 이것은 단순히 "layer 4의 출력"이 아니라, 모든 이전 구성요소의 기여가 독립적으로 더해진 상태입니다.
2. Head의 두 회로 — Q-K와 O-V
어디에 주목? / 무슨 정보를 이동?
각 attention head의 전체 연산을 하나의 수식으로 쓰면, 자연스럽게 두 부분으로 나뉩니다.
WQK=WQWKT — "토큰 A가 토큰 B에 얼마나 주목할 것인가?" → attention pattern을 결정합니다.
O-V Circuit — '무슨 정보를 이동?'
WOV=WVWO — "토큰 B에 주목했을 때, B에서 어떤 정보를 가져와서 residual stream에 쓸 것인가?" → 정보의 내용을 결정합니다.
핵심 통찰
이 두 회로는 독립적입니다. 같은 Q-K pattern이라도 O-V가 다르면 완전히 다른 정보가 이동하고, 같은 O-V라도 Q-K가 다르면 다른 토큰에서 정보를 가져옵니다.
Q1
Q-K circuit과 O-V circuit이 각각 어떤 질문에 답하는지, 도서관 비유로 설명할 수 있을까요?
Q-K circuit은 "도서관에서 어떤 책을 꺼낼 것인가?"(= 어떤 토큰에 주목할지 결정, 검색 요청과 색인 카드의 매칭)에 답합니다. O-V circuit은 "꺼낸 책에서 어떤 내용을 발췌할 것인가?"(= 주목한 토큰에서 실제로 어떤 정보를 추출하여 전달할지 결정)에 답합니다.
3. Zero-Layer — Bigram 모델
가장 단순한 transformer
분석의 출발점: attention도 FFN도 없는, 가장 단순한 transformer. 토큰 임베딩 → 바로 unembedding.
logits=WUWE
이것은 (∣V∣×∣V∣) 행렬이며,(i,j) 원소는 "토큰 i 다음에 토큰 j가 올 확률의 logit"을 의미합니다. 즉 bigram 통계 테이블과 정확히 동치입니다.
0-Layer 모델의 한계
0-layer transformer가 할 수 있는 것의 전부는 "직전 토큰만 보고 다음 토큰을 예측"하는 것입니다. 이것이 baseline입니다. attention이 추가되면 이 baseline 위에 무엇이 더해지는지를 분석할 수 있습니다.
Q1
WUWE 행렬의 크기가 (50000 × 50000)이라면, 이 모델이 학습하는 것은 본질적으로 무엇일까요?
이 모델은 학습 데이터에서 관찰한 bigram 통계, 즉 "토큰 A 바로 다음에 토큰 B가 얼마나 자주 나타났는가"를 인코딩합니다. 50000 × 50000 행렬의 각 원소가 하나의 토큰 쌍에 대한 동시 출현 경향을 담고 있습니다. 이것이 attention 없이 할 수 있는 전부입니다.
4. One-Layer — 경로 분해
Path Expansion과 Skip-Trigram
Attention head 하나가 추가되면 무엇이 달라질까요? 1-layer 모델의 logit을 여러 경로(path)의 합으로 분해할 수 있습니다.
Head를 경유하는 path가 구현하는 것: skip-trigram — "A … B → C" 패턴. A가 시퀀스의 어딘가 앞에 있고, B가 직전 토큰일 때 C를 예측.
핵심 결론
1-layer attention-only 모델은 bigram과 skip-trigram의 앙상블입니다.
Q1
Bigram은 직전 토큰만 보고 예측합니다. Attention head가 추가되면, bigram으로는 불가능했던 어떤 종류의 예측이 새로 가능해질까요?
Attention은 시퀀스의 어떤 위치든 주목할 수 있으므로, 직전이 아닌 멀리 있는 토큰의 정보도 활용하여 예측할 수 있습니다. 예를 들어 "Mary went to the store. She bought milk."에서 "She" 다음에 "bought"를 예측할 때, bigram은 "She"만 보지만, skip-trigram은 attention을 통해 한참 앞의 "Mary"까지 참조하여 "Mary … She → bought" 패턴을 활용할 수 있습니다. 중간의 토큰들을 건너뛰는(skip) 것이 이름의 유래입니다.
5. Two-Layer — Composition
Head 간의 협력
2-layer 모델에서 질적으로 새로운 현상이 나타납니다 — head 간의 composition(합성).
1-layer에서는 각 head가 원본 임베딩만 읽을 수 있었지만, 2-layer에서는 layer 2의 head가 layer 1의 head가 residual stream에 쓴 결과까지 읽을 수 있습니다.
세 가지 Composition
Q-composition: layer 1의 출력이 layer 2 head의 Query에 영향K-composition: layer 1의 출력이 layer 2 head의 Key에 영향V-composition: layer 1의 출력이 layer 2 head의 Value에 영향
이것이 가능해지면 2단계 알고리즘을 구현할 수 있습니다.
Q1
1-layer 모델에서 각 attention head는 residual stream에서 무엇을 읽을 수 있었나요? 2-layer 모델의 layer 2 head는 어떤 점이 다를까요?
1-layer 모델에서 head는 오직 원본 토큰 임베딩만 읽을 수 있습니다. 하지만 2-layer 모델의 layer 2 head는 residual stream에 layer 1의 모든 head가 쓴 결과가 이미 더해져 있으므로, 원본 임베딩뿐 아니라 layer 1 head가 추가한 정보까지 읽을 수 있습니다. 이것이 head 간 협력을 가능하게 합니다.
6. Induction Head
In-Context Learning의 시작
Induction head가 수행하는 패턴: 시퀀스에서 [A][B] ... [A]가 나타났을 때, 다음 토큰으로 [B]를 예측.
구체적 예
"Harry Potter is ... Harry" → "Potter" 예측. 이전에 "Harry Potter"라는 패턴을 보았으니, "Harry"가 다시 나오면 "Potter"가 올 것이라고 예측합니다.
이것이 왜 강력한가? 학습 데이터에 "Harry Potter"가 없었더라도, 현재 입력 문맥(context) 안에서 패턴을 발견하여 예측에 활용합니다. 이것이 in-context learning의 가장 기초적 형태입니다.
왜 2-layer가 필요한가?
두 단계의 작업이 필요합니다:
Step 1 (Layer 1, previous token head): 각 토큰에 "내 직전 토큰은 ○○였다"는 정보를 씀.Step 2 (Layer 2, induction head): 현재 위치의 [A]에서, "직전에 [A]가 있었다"는 정보가 Key에 담긴 토큰([B])을 찾아 주목하고, [B]의 정보를 복사.
이 두 head의 협력이 K-composition의 실제 사례입니다.
Q1
다음 시퀀스를 보세요: "The quick brown fox jumps over the lazy dog. The quick brown fox". 이 시퀀스의 마지막에서, induction head는 무엇을 예측할까요? 그리고 그 예측을 위해 어떤 두 단계가 필요할까요?
Induction head는 "jumps"를 예측합니다. 이전에 "fox" 다음에 "jumps"가 왔으므로, "fox"가 다시 나오면 "jumps"를 예측합니다.
두 단계: (1) Layer 1의 previous token head가 "jumps" 위치에 "직전에 fox가 있었다"는 정보를 씀. (2) Layer 2의 induction head가 현재 "fox" 위치에서, "직전이 fox였다"는 Key를 가진 "jumps"를 찾아 주목하고, "jumps"의 정보를 복사.
7. Logit Lens
Residual Stream을 들여다보는 도구
지금까지 배운 residual stream 관점의 실용적 응용입니다. Unembedding matrix WU는 원래 마지막 layer의 출력에만 적용하지만, 같은 WU를 중간 layer에 적용하면 그 시점까지의 "중간 예측 상태"를 엿볼 수 있습니다.
logitsl=WU⋅hl,Pl(next)=softmax(WU⋅hl)
왜 작동하는가?
residual stream 구조에서 모든 layer가 같은 벡터 공간에서 정보를 누적하므로, 어느 지점에서든 WU를 적용하면 해석 가능한 결과를 얻습니다.
전형적 패턴
초기 layer에서는 평탄한 분포 → 중간 layer에서 정답 토큰 등장 → 후반 layer에서 확신 강화. 특정 layer에서 예측이 급변하면, 그 layer의 특정 head나 FFN이 결정적 정보를 추가했다는 뜻입니다.
Q1
만약 residual connection이 없었다면 (즉, 각 layer가 입력을 완전히 다른 공간으로 변환한다면), Logit Lens는 왜 작동하지 않을 수 있을까요?
Residual connection이 없으면 중간 layer의 출력이 최종 layer의 출력과 전혀 다른 벡터 공간에 있을 수 있습니다. 최종 layer용으로 학습된 WU를 중간 layer에 적용해도 해석 가능한 결과가 나온다는 보장이 없습니다.
Residual stream은 모든 layer가 같은 공간에서 정보를 누적하도록 강제하므로, WU가 어느 지점에서든 의미 있는 결과를 산출합니다. 이것이 섹션 1의 residual stream 관점이 단순한 해석의 편의가 아니라, 실제로 강력한 분석 도구를 가능케 하는 핵심이라는 것을 보여줍니다.
8. 요약
전체 그림
Residual Stream
공유 통신 채널 — 각 구성요소가 독립적으로 읽고 씀
Q-K / O-V 분리
어디에 주목? / 무슨 정보를 이동? — 두 독립적 회로
0-Layer: Bigram
W_U W_E — 직전 토큰만 보고 예측
1-Layer: Skip-Trigram
bigram + 먼 토큰 참조 — path expansion으로 분해
2-Layer: Induction Head
head 간 composition → [A][B]...[A]→[B] — in-context learning
Logit Lens
중간 layer에 W_U 적용 → 예측 상태의 점진적 형성 관찰
이후 학습 연결
Week 2에서는 FFN이 추가된 완전한 Transformer에서 사실적 지식이 어디에 저장되는지 (Geva et al.)와 그것을 찾아서 편집하는 방법 (ROME)을 다룹니다. Residual stream 관점과 Logit Lens가 이 분석의 핵심 도구로 활용됩니다.
Week 3에서는 induction head를 더 깊이 다루는 후속 논문 In-context Learning and Induction Heads와, 이런 회로를 자동으로 발견하는 ACDC 기법을 학습합니다.