** Transcoders Find Interpretable LLM Feature Circuits (NeurIPS 2024)

https://www.dropbox.com/scl/fi/hq8qpuladqivuc1hkqlbs/nips24_The_Transcoder_Blueprint.pdf?rlkey=pt2gdvoeh9cblbgkc61ch5cpk&dl=0

이 논문은 최근 Mechanistic Interpretability에서 매우 중요한 논문 중 하나입니다.

한 줄 요약하면:

SAE가 “해석 가능한 feature”를 찾는 데는 성공했지만, feature들 사이의 circuit을 분석하기는 어려웠다.
Transcoder를 사용하면 MLP를 sparse feature graph로 직접 근사할 수 있고, feature-level circuit을 input-invariant하게 분석할 수 있다.

특히 이후의

  • Dictionary Learning Circuit Discovery
  • SNMF Circuit Discovery
  • RelP
  • EAP-based Circuit Discovery
  • SAE + Circuit Steering

계열 연구에 큰 영향을 주었습니다.


1. 문제의식

기존 Circuit Discovery의 문제

Transformer 회로를 분석할 때 attention head는 비교적 쉽습니다.

예를 들어

Head A
   ↓
Head B
   ↓
Head C

같은 연결을 추적할 수 있습니다.

하지만 MLP는 어렵습니다.

MLP는 y=Woutσ(Winx)y=W_{out}\sigma(W_{in}x) 형태인데, 중간 neuron이 수천 개 존재합니다.


SAE를 사용하면?

SAE는 xzx^x \rightarrow z \rightarrow \hat{x} 로 변환하여

z=(z1,z2,,zk)z=(z_1,z_2,\dots,z_k) 라는 sparse feature를 얻습니다.

예:

  • surname feature
  • year feature
  • city feature

등.


하지만 SAE의 가장 큰 문제는

feature는 neuron들의 선형결합

이라는 점입니다.

즉, fi=jajnjf_i=\sum_j a_j n_j


그러면 Feature A → Feature B 관계를 보려면

중간의 모든 neuron과 nonlinear activation을 추적해야 합니다.

사실상 불가능합니다.

논문은 이를 “SAE는 feature는 설명하지만 MLP 자체의 계산을 설명하지 못한다.”고 지적합니다.  


2. 핵심 아이디어: Transcoder

SAE vs Transcoder

SAE:

xzxx \rightarrow z \rightarrow x

입력을 재구성


Transcoder:

xzyx \rightarrow z \rightarrow y

MLP 출력을 재구성

y=MLP(x)


즉, 원래 MLP를 더 넓고 sparse한 MLP로 대체하는 것입니다.  


3. Transcoder 구조

논문의 Transcoder:

zTC(x)=ReLU(Wencx+benc)z_{TC}(x)=ReLU(W_{enc}x+b_{enc})

TC(x)=WdeczTC(x)+bdecTC(x)=W_{dec}z_{TC}(x)+b_{dec}


여기서 zTCz_{TC} 는 sparse feature activation입니다.

각 feature는 Encoder vector fencf_{enc}, Decoder vector fdecf_{dec} 를 가집니다.


직관적으로

Encoder

“이 feature를 얼마나 켤까?”

Decoder

“켜졌다면 residual stream에 무엇을 쓸까?”

를 의미합니다.


4. 학습 목적함수

Loss:

LTC=MLP(x)TC(x)2+λzTC(x)1L_{TC}=\|MLP(x)-TC(x)\|^2+\lambda \|z_{TC}(x)\|_1


첫 항:

Faithfulness

MLPTranscoderMLP \approx Transcoder


둘째 항:

Sparsity

L1L_1


결과적으로

  • 원래 MLP와 비슷하게 동작
  • sparse feature 생성

5. 논문의 가장 중요한 기여

Input-Invariant Circuit Discovery

기존 SAE 기반 attribution

zzzz\frac{\partial z’}{\partial z}z(zyyz)z\left(\frac{\partial z’}{\partial y}\frac{\partial y}{\partial z}\right) 가 됩니다.

여기서 yz\frac{\partial y}{\partial z} 가 입력에 따라 달라집니다.

즉, 특정 입력에서만 의미 있음


논문은 이것이 SAE의 근본 한계라고 주장합니다.  


6. Transcoder Circuit Attribution

Layer l feature i

Layer l’ feature j

의 영향:

zi(fidecfjenc)z_i(f^{dec}_i \cdot f^{enc}_j)


굉장히 중요합니다.

이 식이 두 부분으로 분해됨

Input-dependent

ziz_i

현재 입력에서 feature가 얼마나 활성화됐나


Input-invariant

fidecfjencf^{dec}_i\cdot f^{enc}_j

항상 동일


즉, Attribution=Feature Activation×Connection Weight\text{Attribution}=\text{Feature Activation}\times\text{Connection Weight}


이는 Neural Circuit의 edge weight를 정의한 것과 거의 같습니다.


7. Attention을 통한 Attribution

Attention head까지 포함하면

score(s,t)((WOVTfenc)xs)score(s,t)\left((W_{OV}^T f_{enc})\cdot x_s\right)

형태가 됩니다.  


따라서

Circuit graph는

Feature
   ↓
Attention Head
   ↓
Feature

형태로 표현됩니다.


8. Circuit Extraction 알고리즘

논문의 greedy graph search:


Step 1: 목표 feature 선택


Step 2: Top-k parent feature 찾기


Step 3: 각 parent에 대해 재귀 반복


Step 4: 중요 path만 유지


Step 5: subgraph 생성


결과:

Feature A
   ↓
Feature B
   ↓
Feature C

같은 해석 가능한 circuit 추출.  


9. De-Embedding

매우 흥미로운 기여.

Feature의 encoder vector:

fencf_{enc} 에 embedding matrix를 곱하면

WETfencW_E^T f_{enc} 를 얻습니다.


이 값은 “어떤 token이 이 feature를 활성화하는가”를 보여줍니다.


예시

상위 token:

oglu
owsky
zyk
chenko
kowski

Polish surname feature 발견.  


10. 실험 1: SAE와 비교

평가 모델

  • GPT2-small
  • Pythia-410M
  • Pythia-1.4B

평가 기준

Faithfulness

MLP를 transcoder로 교체했을 때 Loss 증가량


Sparsity

평균 활성 feature 수 (L0 norm)


Interpretability

사람이 feature를 보고 평가


11. 결과: Human Interpretability

50개 feature blind evaluation

TranscoderSAE
Interpretable4138
Maybe88
Uninterpretable14

결론: Transcoder feature는 SAE feature만큼 해석 가능하다.


12. 결과: Sparsity-Faithfulness

Figure 3 결과

GPT2-small, Pythia-410M, Pythia-1.4B 모든 모델에서

Transcoder Pareto frontier가 SAE보다 같거나 더 우수.

특히 모델이 커질수록 Transcoder 우위가 커짐.  


논문의 결론:

Transcoder는 SAE 수준의 sparsity와 interpretability를 유지하면서 더 faithful하다.


13. Blind Circuit Discovery

가장 재미있는 실험.

연구자가 feature 의미를 모른 상태에서 circuit만 보고 해석.


발견된 feature:

semicolon, surname, year, parenthesis 관련 feature들.

Circuit 분석 결과

(
surname
year
;

패턴을 발견.


연구자는 “citation 안의 세미콜론 feature일 것이다”라고 추정.


실제 활성 예시 확인 결과

(Poeck, 1969; Rinn, 1984)

(Robinson et al., 1984;
 Starkstein et al., 1988)

정확히 citation feature였음.  


14. Greater-Than Circuit 분석

이 논문의 가장 유명한 결과.

기존 Hanna et al.

The war lasted from 1737 to 17

다음 숫자는 37보다 커야 함.


기존 연구:

MLP10 neuron 수준 분석


본 논문:

MLP10 transcoder feature 분석


발견:

상위 feature들이

00~20
20~40
40~60
60~80
80~99

범위별 year detector처럼 동작.


또한 attention head 9.1이 year 정보를 읽어 MLP10 feature로 전달.


15. Neuron vs Transcoder

Figure 4

비교 결과:

같은 성능을 재현하는 데

Neuron 방식보다 Transcoder는 훨씬 적은 수의 component만 필요.


기존 수백 개 neuron 설명

Transcoder 수십 개 feature 설명


논문의 가장 중요한 의미

이 논문은 사실상

“SAE 이후 Circuit Discovery의 새로운 표준”

을 제시했습니다.

흐름으로 보면

Activation Patching
    ↓
Path Patching
    ↓
EAP
    ↓
SAE Circuit
    ↓
Transcoder Circuit  ← 이 논문
    ↓
Dictionary Learning Circuit Discovery
    ↓
RelP
    ↓
SNMF Circuit Discovery

입니다.

특히

  • EAP
  • Dictionary Learning
  • SNMF
  • RelP
  • Circuit Steering

관점에서 보면,

이 논문은 “feature node와 edge weight를 동시에 제공하는 최초의 실용적인 MLP circuit 모델” 이라고 볼 수 있습니다.

그래서 이후 연구들은 대부분 “SAE feature를 찾는다 → feature 간 edge를 찾는다”가 아니라, “feature 자체가 이미 MLP를 근사하는 Transcoder/SNMF/Dictionary Learning basis를 학습한다” 방향으로 발전하게 됩니다.

Input-Invariant Circuit Discovery, Transcoder Circuit Attribution, Circuit Extraction 알고리즘 추가 설명

이 논문의 핵심은 사실 Transcoder 자체보다도 “Input-Invariant Circuit Discovery” 프레임워크에 있습니다.

기존 SAE circuit discovery와 가장 큰 차이가 바로 여기에 있습니다.


1. 왜 Input-Invariant가 중요한가?

기존 SAE Circuit Discovery를 생각해봅시다.

Layer l feature: ziz_i

Layer l’ feature: zjz_j

라고 하면,

보통 attribution은 Attr(ij)=zizjziAttr(i\rightarrow j)=z_i\frac{\partial z_j}{\partial z_i} 를 사용합니다.

(Attribution Patching, EAP, EAP-IG 계열)


그런데 zjzi\frac{\partial z_j}{\partial z_i} 는 MLP를 통과하면서 MLP(x)=Woutσ(Winx)MLP(x)=W_{out}\sigma(W_{in}x) 의 Jacobian에 의해 결정됩니다.

즉, zjzi=zjyyzi\frac{\partial z_j}{\partial z_i}=\frac{\partial z_j}{\partial y}\frac{\partial y}{\partial z_i}


문제는 yzi\frac{\partial y}{\partial z_i} 가 입력마다 달라진다는 것입니다.

왜? ReLU 활성 neuron 집합이 계속 바뀌기 때문입니다.


예:

입력 1

Jan Kowalski에서는 Polish-name feature가 surname feature를 활성화.

입력 2

John Smith에서는 English-name feature가 surname feature를 활성화.

그러면 Patching 결과는

입력 1에서는 Polish → surname 만 보이고

입력 2에서는 English → surname 만 보입니다.


즉, 우리가 얻는 것은 P(zj|x)P(z_j|x)이지 모델 자체의 구조가 아닙니다.


논문은 이를 local behavior only라고 부릅니다.  


2. Input-Invariant Circuit Discovery

Transcoder를 사용하면

MLP를 TC(x)=WdeczTC(x)=W_{dec}z 로 표현합니다.


Feature i

activation: ziz_i

decoder: fidecf_i^{dec}


Feature j

encoder: fjencf_j^{enc}


Transcoder feature i의 출력이 residual stream에 쓰여지면 zifidecz_i f_i^{dec} 입니다.


이 residual stream이 다음 layer feature j를 얼마나 활성화시키는가?

fjencf_j^{enc} 방향으로 projection하면 됩니다.


따라서 Attr(ij)=zi(fidecfjenc)Attr(i\rightarrow j)=z_i\left(f_i^{dec}\cdot f_j^{enc}\right)


3. Attribution 식의 의미

논문 최대 기여.

식을 다시 보면

Attr(ij)=zi(fidecfjenc)edgeAttr(i\rightarrow j)=z_i\underbrace{(f_i^{dec}\cdot f_j^{enc})}_{\text{edge}}


두 부분으로 분리됩니다.

Input-dependent

ziz_i : 현재 prompt에서 feature가 얼마나 활성화되었나.


예:

Kowalski 입력

Polish-name feature

zi=15z_i=15


Input-invariant

wij=fidecfjencw_{ij}=f_i^{dec}\cdot f_j^{enc}

항상 고정.


이 값은 사실상 Circuit edge weight입니다.


그래서 논문은 wijw_{ij} 만 보면 입력과 무관한 모델의 일반적인 계산 구조를 볼 수 있다고 주장합니다.


4. SAE에서는 왜 불가능한가?

SAE feature는 MLP를 근사하지 않습니다.

단지 activation reconstruction.

즉, xSAExx\rightarrow SAE \rightarrow x


feature와 feature 사이를 연결하는 명시적 weight가 없습니다.


그래서 feature edge를 찾으려면 patching, gradient, attribution 등을 해야 합니다.


반면 Transcoder는 이미 fjencf_j^{enc}, fidecf_i^{dec}를 가지고 있으므로 edge weight가 자동 생성됩니다.


5. Attention Head Attribution

Feature → Feature만 있는 게 아닙니다.

Feature → Attention → Feature도 필요합니다.


Attention head h

OV matrix: WOVW_{OV}


source token s

destination token t


논문 유도 결과:

Attr=scores,t((WOVTfjenc)xs)Attr=score_{s,t}\Big((W_{OV}^T f_j^{enc})\cdot x_s\Big)


의미:

Attention score

scores,tscore_{s,t} : 얼마나 읽었는가


OV projection

(WOVTfjenc)(W_{OV}^T f_j^{enc}) : 읽은 정보를 feature j 방향으로 얼마나 전달하는가


즉, Attention edge도 feature graph에 포함됩니다.


6. Circuit Extraction 알고리즘

논문의 greedy search.

Figure 2.  


목표:

특정 feature FtargetF_{target}의 원인을 찾기.


Step 1

target feature 선택

예:

Citation feature

tc8[355]


Step 2

모든 이전 layer feature에 대해 Attr(itarget)Attr(i\rightarrow target) 계산


상위 k개만 유지


예:

semicolon feature
year feature
surname feature

Step 3

선택된 feature 각각에 대해

다시 부모 찾기


예:

surname feature의 원인 탐색

Polish surname
English surname

Step 4

다시 top-k pruning


1000개
↓
20개
↓
5개

Step 5

재귀 반복


깊이 L까지.


결과

Polish surname
    ↓
surname
    ↓
citation

또는

year
    ↓
citation

같은 path 생성.


7. 최종 Circuit 생성

Path들을 합침.

예:

Polish surname
         ↘
          surname
         ↗
English surname

surname
     ↓
citation

year
 ↓
citation

semicolon
 ↓
citation

이렇게 DAG 형태의 circuit이 생성됩니다.


8. EAP 관점에서 해석

사실

  • EAP
  • EAP-IG
  • RelP
  • Sparse Feature Circuit
  • SNMF Circuit

관점에서 보면

이 논문의 edge는 wij=fidecfjencw_{ij}=f_i^{dec}\cdot f_j^{enc} 입니다.

반면 EAP는 EAP(ij)=aiLajEAP(i\rightarrow j)=a_i\frac{\partial L}{\partial a_j} 입니다.


TranscoderEAP
Edge 정의Decoder·EncoderGradient
Input dependence없음있음
Weight-basedOX
Task-specificXO
General circuitOX

그래서 후속 연구들(Sparse Feature Circuits, SNMF Circuit Discovery, Data-driven Circuit Discovery)은 사실상

Transcoder의 “input-invariant edge” 개념,

EAP의 task-specific attribution

을 결합하는 방향으로 발전하게 됩니다.


게시됨

카테고리

,

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다