4단계 여덟 번째 논문. 이 글은 Adly Templeton 외의 Scaling Monosemanticity Extracting Interpretable Features from Claude 3 Sonnet 원문을 직접 읽고 썼다. 원문 공개일은 2024-05-21이다. 대상은 2024-03-04 공개 production Claude 3 Sonnet 3.0 fine-tuned model이다. 저자들은 모델 크기와 일부 그래프 단위를 공개하지 않았고, 이 글도 추정하지 않는다.
이 글에서 얻을 답과 범위
이전 Towards Monosemanticity는 512-neuron one-layer Transformer의 MLP activation을 SAE(Sparse Autoencoder, 희소 오토인코더)로 분해했다. 이 논문은 proprietary production model의 middle residual stream에 같은 질문을 확장한다. 정말 큰 model에서도 million-scale dictionary가 추상적 feature를 만들 수 있는지, 그리고 그 feature가 model behavior와 연결되는지가 핵심이다.
읽은 뒤에는 아래를 설명할 수 있어야 한다.
3,400만 feature SAE가 Claude 전체 layer·전체 feature를 해석했다는 뜻이 아닌 이유.- residual stream middle layer를 고른 이유와 cross-layer superposition(층간 중첩)을 완전히 풀지 못하는 이유.
- decoder norm을 L1 penalty에 곱한 이유와 unit-norm 강제의 차이.
- 100만·400만·3,400만 feature run의 실제 관찰값과 dead feature 비율.
- scaling law가 feature를 ‘이해’하는 법칙이 아니라 SAE proxy loss의 compute allocation rule인 이유.
- feature steering에서 SAE reconstruction error를 왜 그대로 보존하는지.
- safety-related feature가 deception(기만)·위험성·의도를 증명하지 않는 이유.
범위는 middle residual stream의 SAE와 사례 분석이다. Claude parameter 수, training data, 완전한 architecture는 원문에 없고 이 글도 메우지 않는다. feature browser의 label이나 steering output을 general safety guarantee(안전 보증)로 읽지 않는다.
핵심 한 문장. 큰 SAE는 model의 모든 생각을 읽는 현미경이 아니다. 한 layer activation을 sparse dictionary로 근사해 후보 feature를 많이 발견하고 제한된 intervention으로 가설을 시험하는 도구다.
왜 필요한가 — 작은 model의 성공이 production model의 성공은 아니다
작은 one-layer Transformer에서 SAE가 base64나 Arabic script feature를 찾았더라도, production LLM은 더 많은 layer, attention, residual path, finetuning, multimodal input을 가진다. 따라서 세 실패를 따로 봐야 한다.
| 실패 가능성 | 뜻 | 이 논문이 시험한 것 |
|---|---|---|
| engineering failure | activation collection·shuffle·million-wide SAE 학습이 계산량 때문에 불가능 | tensor-parallel training과 scaling-law 기반 run 설계 |
| representation failure | 큰 model concept가 linear sparse direction으로 안 나타남 | concrete·abstract·multilingual·multimodal activation 사례 |
| validation failure | 예쁜 top example은 보이지만 output을 바꾸지 못함 | steering, ablation, attribution 비교 |
authors는 유명인, 국가·도시, code type signature, security vulnerability 관련처럼 추상적인 feature를 보고한다. text activation만으로 SAE를 학습했는데 일부 feature가 관련 image에서도 반응하며 한 concept가 여러 언어에서 나타나는 사례도 제시한다. 이는 encouraging evidence(긍정적 증거)지만 dictionary가 Claude internal representation을 완전하게 열었다는 결론은 아니다.원문의 도입
특히 safety label은 아래 네 문장과 다르다.
“모델이 거짓말 개념을 표현한다”
≠ “모델이 거짓말을 할 수 있다”
≠ “모델이 실제 상황에서 거짓말을 한다”
≠ “모델이 악의적 목표를 가진다”
원문도 deception, power-seeking, sycophancy, bias, dangerous content 관련 feature의 존재만으로 safety 판단을 갱신하면 안 된다고 경고한다. 가치는 위험 판정 자체보다, 그런 concept를 scale에서 찾아 intervention할 후보 단위를 만든 데 있다.원문의 Safety-Relevant Features
무엇인가 — residual stream을 sparse한 feature 합으로 다시 쓰기
Residual stream(잔차 흐름)은 각 Transformer block이 쓴 정보를 더해 다음 block에 넘기는 vector다. 이 원문은 middle residual stream activation 하나를 x ∈ R^D로 둔다. D는 residual stream dimension이지만 proprietary model의 수치는 공개되지 않았다.
SAE는 F개의 candidate feature를 둔다. F는 D보다 훨씬 크다. decoder column W_dec[:, i]가 i번째 feature direction, encoder가 만든 nonnegative coefficient가 f_i(x)다.
[ \hat{x}=b^{dec}+\sum_{i=1}^{F} f_i(x)W^{dec}_{\cdot,i} \tag{1} ]
[ f_i(x)=\operatorname{ReLU}\left(W^{enc}_{i,\cdot}\cdot x+b_i^{enc}\right) \tag{2}
x_hat은 SAE가 설명한 activation, x-x_hat은 SAE가 설명하지 못한 residual error(복원 오차)다. feature 하나는 original model neuron 하나가 아니다. decoder direction은 original residual coordinate 여러 개에 걸친 vector다.
overcomplete가 필요한 이유와 대가
F>D인 dictionary는 overcomplete(과완전)다. feature 후보가 관측 vector의 좌표 수보다 많으므로 같은 x를 만들 조합이 여러 개다. token마다 아주 적은 feature만 켜진다는 sparsity 가정이 없으면 해답은 모호하다.
| 표현 | feature 수 | token 하나에서 활성 수 | 장점 | 실패 |
|---|---|---|---|---|
| original residual coordinate | D | 보통 dense | 실제 model 값 그대로 | coordinate 하나가 polysemantic일 수 있다 |
| PCA | 보통 ≤D | 보통 dense | variance 요약 | more-than-dimension feature를 못 찾는다 |
| SAE dictionary | F≫D | 원문 run 평균 <300 | sparse candidate·intervention 단위 | duplicate, missing, artifact, residual error |
SAE는 data compression과 interpretability hypothesis test를 함께 한다. low reconstruction error는 activation을 다시 쓸 수 있음을 보이고, sparse activation은 한 token을 설명하는 direction이 적다는 가설을 시험한다. direction 이름이 인간 concept와 맞는지, model이 기능적으로 쓰는지는 별도 검증이다.
선행 개념 — normalization, L0, norm-weighted L1
원문은 preprocessing에서 activation을 scalar로 정규화해 평균 squared L2 norm이 residual dimension D가 되게 했다.
[ \mathbb{E}[\lVert x\rVert_2^2]=D \tag{3} ]
이는 feature 의미를 바꾸는 layer가 아니라 λ 같은 hyperparameter의 단위를 고정하는 작업이다. 원문의 λ=5는 이 normalization 안에서만 의미가 있다.
L0는 0이 아닌 feature 수다. 세 run은 token 하나에서 평균 active feature가 300 미만이었다. 3,400만 후보 중 300이면 sparse하지만, 각 300개가 독립·단의미·필수라는 뜻은 아니다.
plain L1 Σ_i f_i에는 scale loophole(크기 편법)이 있다. decoder vector를 10배 키우고 encoder activation을 1/10로 줄이면 reconstruction은 같지만 L1는 1/10이 된다. 원문은 L1에 decoder norm을 곱한다.
[ L=\mathbb{E}x\left[\lVert x-\hat{x}\rVert_2^2+\lambda\sum_i f_i(x)\lVert W^{dec}{\cdot,i}\rVert_2\right] \tag{4} ]
따라서 raw f_i가 아니라 f_i‖W_i^{dec}‖가 scale-adjusted feature activation이다. 이 항은 f=0.1,d=10과 f=1,d=1을 같은 sparsity cost로 만든다. 원문은 decoder를 매 step unit norm으로 투영하기보다 이 penalty를 쓴다. direction은 W_i^{dec}/‖W_i^{dec}‖로 읽는다.원문의 SAE 수식
밑바닥 원리 — 큰 SAE도 두 layer와 한 tradeoff다
million feature SAE도 forward path는 작은 SAE와 같다.
middle residual activation x
→ scalar normalization
→ encoder affine map
→ ReLU
→ sparse feature coefficient f
→ decoder weighted sum + bias
→ reconstruction x_hat
→ MSE + norm-weighted L1
차이는 analysis site와 size다. authors는 middle residual stream을 골랐다. MLP activation보다 dimension이 작아 training·inference가 싸고, 이전 layer의 write가 이미 더해진 residual stream은 cross-layer superposition을 부분적으로 완화할 수 있다는 가설 때문이다.
cross-layer superposition이란 무엇인가
feature가 한 layer에 완결되지 않고 여러 layer에 smear(번짐)될 수 있다. gradient descent는 behavior만 좋으면 feature를 17번째 MLP에 둘지 18번째에 둘지 정확히 고정할 이유가 없다. middle residual stream은 앞 layer의 write를 합쳐 보므로 앞쪽 feature를 찾는 데 유리할 수 있다. 그러나 뒤 layer가 맡는 부분은 아직 없고, 여러 layer에 나뉜 feature의 완전한 direction을 한 layer SAE가 못 볼 수 있다.
이는 residual stream SAE가 모든 layer SAE보다 우월하다는 말이 아니다. pre-post SAE나 transcoder처럼 layer input·output을 연결하는 방법도 필요하지만 cross-layer superposition과 결합하면 어렵다는 것이 원문의 결론이다.원문의 Limitations
내부 구조와 실제 실행 흐름 — 100만에서 3,400만 feature까지
authors는 middle residual stream에 세 SAE를 훈련했다.
| SAE | feature 수 | dead 정의와 관찰 | 모든 run 공통 |
|---|---|---|---|
| 1M | 1,048,576 | 1천만 token에서 안 켜진 feature 약 2% | 평균 active <300, activation variance 최소 65% 설명 |
| 4M | 4,194,304 | 같은 정의에서 약 35% dead | 같은 기준 |
| 34M | 33,554,432 | 같은 정의에서 약 65% dead | 같은 기준 |
dead는 ‘1천만 token sample에서 nonzero activation이 없었다’는 operational definition(운영상 정의)이다. 34M의 dead 65%는 3,400만 방향 모두가 usable feature라는 주장에 직접 반대한다. 더 큰 dictionary는 rare feature를 찾을 기회를 늘리지만 unused capacity도 크게 늘 수 있다.
원문은 λ=5를 쓰고 scaling-law analysis로 34M run step 수를 정했다. 고정 input dimension과 다른 hyperparameter에서 compute는 대략 다음처럼 생각할 수 있다.
[ C\propto F\times T \tag{5} ]
F는 feature 수, T는 update step 또는 data 양이다. F만 키우면 feature별 학습이 부족하고, T만 키우면 dictionary가 작아 feature가 섞인다. authors는 tested range에서 compute-optimal loss가 power law처럼 감소하고 optimal F,T가 power law처럼 증가한다고 관찰했다. 하지만 이 fit은 λ=5 SAE proxy loss에 대한 empirical result다. interpretability의 ground truth는 아니다.원문의 Scaling Laws
직접 검증과 재현 — norm 편법과 residual-preserving clamp
직접 실행 확인이다. 2026-07-24에 Python 3.9.6 표준 라이브러리로 /tmp/scaling-monosemanticity-research/verify_scaling_sae.py를 실행했다. Claude 3 Sonnet과 million-wide SAE는 재현하지 않는다. 원문의 두 핵심 수식이 무엇을 막고 무엇을 바꾸는지 1·2차원 산술로 확인한다.
python3 /tmp/scaling-monosemanticity-research/verify_scaling_sae.py
실제 출력이다.
plain L1 unit=1.0 scaled=0.1
norm-weighted L1 unit=1.0 scaled=1.0
SAE reconstruction: (3.0, 4.0)
preserved residual error: (0.10000000000000009, -0.20000000000000018)
clamp feature 0 to +10 -> (10.1, 3.8)
clamp feature 0 to -2 -> (-1.9, 3.8)
feature-times-step costs: (32000000, 32000000)
checks passed
첫 두 줄은 같은 x_hat=1을 f=1,d=1 또는 f=0.1,d=10으로 만들 수 있음을 보인다. plain L1는 두 번째를 부당하게 싸게 만들지만 |f|×‖d‖은 둘 다 1이다. 뒤 네 줄은 steering의 분해다. original residual x를 SAE(x)+error(x)로 나누고 feature 0만 clamp한 새 SAE reconstruction에 기존 error를 더한다. actual Sonnet steering은 모든 token position에서 modified residual stream으로 downstream layer를 forward해야 한다.
feature steering과 인과 검증 — clamp가 하는 일과 못 하는 일
원문의 steering은 다음이다.
[ x=SAE(x)+e(x) \tag{6} ]
feature k를 c로 바꾸면 x'는 원래 reconstruction의 k번째 coefficient만 c로 바꾸고 기존 e(x)를 더한 vector다. encoder는 ReLU라 natural feature activation을 음수로 내지 않지만 steering은 c<0도 허용한다. 이것은 feature direction의 음수 배수를 residual stream에 쓰는 intervention이다.
authors는 observed maximum activation 단위로 보통 -10에서 10 근처를 실험했다. ±100배 같은 extreme clamp는 token 반복 같은 nonsensical output을 만들 수 있다. Golden Gate Bridge feature를 training-set maximum의 10배로 clamp했을 때 bridge와 관련된 output, 어떤 sample에서는 자신을 bridge로 말하는 behavior를 보였다. 이는 label과 output alignment evidence지만, natural context에서 그 feature가 그만큼 커진다는 뜻도 single causal variable이라는 뜻도 아니다.원문의 Influence on Behavior
| 관찰 | 말할 수 있는 것 | 말할 수 없는 것 |
|---|---|---|
| top activation text가 concept와 맞음 | correlation 후보 | output에서 concept가 필요함 |
feature ablation c=0 뒤 logit 변화 | 해당 prompt·position의 causal effect | 모든 context의 전역 effect |
| clamp 뒤 output이 concept 방향으로 변함 | direction의 intervention effect | feature가 label 하나만 뜻함 |
| large out-of-range clamp | model을 민감하게 만들 수 있음 | natural behavior의 크기·빈도 |
원문 case study에서 attribution(gradient 기반 local linear approximation)과 full feature ablation 상관은 약 0.81, raw activation과 ablation 상관은 약 0.12였다. 이는 ‘강하게 켜짐’보다 gradient × feature vector × activation이 ablation effect proxy로 낫다는 근거다. 하지만 특정 John/Kobe prompt의 상세 분석이며, authors도 어떤 prompt에서는 middle layer intermediate가 안 보이고 다른 layer가 더 적절할 수 있다고 쓴다.원문의 Computational Intermediates
성능과 트레이드오프 — feature 수, step, dead capacity를 함께 본다
million-wide SAE의 비용은 dictionary width만으로 정해지지 않는다. activation dimension과 batch가 같다는 단순화 아래, width F를 늘리면 encoder·decoder matrix multiply 비용과 parameter memory가 늘고, training step T를 늘리면 data read·optimizer update가 늘어난다. 그래서 원문의 근사 C ∝ F×T는 비용 배분을 생각하게 하지만, 실제 GPU memory, communication, activation storage, model forward 비용까지 모두 담은 운영 견적은 아니다.
| 선택 | 좋아지는 경향 | 악화되는 경향 | 함께 볼 지표 |
|---|---|---|---|
feature 수 F 증가 | rare concept를 분리할 후보 증가 | dead·duplicate·optimizer state와 memory 증가 | dead fraction, completeness, feature density |
step 수 T 증가 | direction fitting과 loss 감소 | data·compute 증가, one-epoch data 한계 | held-out loss, active feature 변화 |
| L1 coefficient 증가 | token당 active feature 감소 | shrinkage·reconstruction 손실 | L0, variance explained, steering quality |
| clamp magnitude 증가 | output 변화가 눈에 띄기 쉬움 | out-of-range artifact·nonsense | natural range 대비 배수, controlled prompt |
따라서 34M은 ‘34배 더 좋다’가 아니라 특정 compute budget에서 proxy loss를 낮추기 위해 고른 width다. 34M run의 dead feature 비율 약 65%는 feature count라는 headline보다 effective usable capacity와 validation cost가 더 중요함을 보여 준다. scaling law를 product roadmap의 성능 SLA처럼 쓰지 말고, 동일 objective·normalization·data regime에서 다음 SAE run의 compute allocation을 결정하는 실험식으로만 쓴다.
completeness와 빈도 — 3,400만도 feature 목록의 끝이 아니다
feature count가 클수록 concept family coverage가 좋아지는 경향은 중요한 결과다. 하지만 completeness test에서 Claude가 모두 나열할 수 있는 London borough 중 34M SAE에서 대응 feature를 찾은 것은 약 60%였다. ‘아직 발견하지 못한 feature가 많다’는 직접 반례다.
concept frequency가 SAE training data proxy에서 높을수록 dictionary에 feature가 있을 가능성이 높았다. 그러나 Sonnet pretraining data frequency와 SAE training data frequency를 구분할 수 없고 단순 문자열 search에는 false positive도 있다.
자주 관측된 concept → feature를 찾기 쉬운 경향
드문 concept → dictionary에 없을 수 있음
dictionary에 없음 → model이 concept를 모른다는 증거가 아님
안전성에서 마지막 줄이 결정적이다. SAE가 위험 feature를 못 찾았다는 결과는 false negative일 수 있다. coverage가 정의되지 않았고 all-layer·all-feature extraction이 아니기 때문이다.원문의 Feature Completeness
실패와 한계 — 큰 숫자가 덮지 못하는 문제
- middle layer 하나 — residual stream 선택은 비용과 일부 cross-layer 완화를 위한 tradeoff다. 이후 layer와 attention superposition은 남는다.
- text-only SAE train distribution — Human/Assistant finetuning format과 image를 포함하지 않았다. image zero-shot activation은 흥미롭지만 coverage 증명은 아니다.
- objective mismatch — MSE+L1는 interpretability proxy다. MSE와 sparsity를 어떤 비율로 교환해야 하는 ground truth가 없다.
- dead capacity — 34M run dead fraction 약 65%. width 증가만으로 usable feature가 비례 증가하지 않는다.
- shrinkage — L1는 nonzero activation을 작게 만드는 shrinkage를 낳는다. natural feature strength를 그대로 importance로 읽기 어렵다.
- out-of-distribution clamp — large steering value가 원하는 말을 유도해도 natural computation을 한 variable만 바꾼 모습은 아닐 수 있다.
- scalability problem — 모든 feature를 찾아도 수백만 feature와 circuit을 사람이 수동으로 읽을 수 없다.
- limited theory — linear representation·superposition은 유용한 working hypothesis이지 유일하고 완전한 model theory가 아니다.
운영에서 feature ID에 ‘backdoor’나 ‘deception’ label을 붙였다고 production detector를 만들면 안 된다. model checkpoint, SAE checkpoint, extraction layer, normalization, input distribution, threshold, false positive/negative set, intervention effect를 versioned evaluation artifact로 관리해야 한다. 그래도 user-facing safety policy는 classifier·tool authorization·audit log·red-team evaluation 같은 독립 control을 필요로 한다.
대안과 선택 기준 — 질문이 달라지면 intervention도 달라진다
| 질문 | 우선 방법 | 이유 |
|---|---|---|
| 한 prompt에서 어느 feature가 next token에 기여했나 | attribution으로 후보를 좁힌 뒤 ablation | full ablation은 비싸고 attribution은 local proxy다 |
| 특정 concept direction을 찾아 behavior를 바꿀 수 있나 | SAE feature search + steering | unsupervised discovery와 causal test 연결 |
| 일반 style을 바꾸고 싶나 | prompt·finetuning·few-shot vector도 비교 | SAE feature가 항상 최선 control vector는 아니다 |
| model이 위험한가 | behavior evaluation·red team·policy test | safety feature 존재는 risk verdict가 아니다 |
| 모든 feature를 열거했나 | 현재 방법만으로는 답할 수 없음 | completeness·all-layer coverage·ground truth 부족 |
원문은 seven steering example에서 few-shot residual-stream vector와 SAE feature를 질적으로 비교했다. 두 example에서는 few-shot vector도 비슷하게 효과적이었고 다섯 example에서는 feature로만 유용하게 steer했다고 보고한다. 하지만 systematic benchmark가 아니며, more data가 있으면 non-feature method가 같거나 더 효과적일 수 있다고 authors가 명시한다. SAE의 강점은 미리 이름 붙이지 못한 abstraction을 unsupervised로 발견할 수 있다는 점이다.원문의 few-shot steering 비교
흔한 오해와 최초 질문에 대한 답
3,400만 SAE면 Claude 안의 3,400만 concept를 전부 찾은 것인가
아니다. 1천만 token sample 기준 약 65%는 dead였고 London borough completeness는 약 60%였다. 더 큰 width에서 새 feature가 계속 발견되는 것도 목록이 끝나지 않았다는 신호다.
65% variance explained면 model behavior 65%를 이해한 것인가
아니다. activation variance와 downstream behavior는 같은 측정량이 아니다. reconstructed activation이 output·tool use·safety behavior의 causal explanation을 얼마나 보존하는지는 별도 실험이다.
feature steering이 되면 feature는 완전히 monosemantic인가
아니다. clamp output이 label과 맞는 것은 strong evidence지만, 모든 context 의미·correlated feature·natural range 역할까지 보장하지 않는다.
safety-related feature가 있으면 Claude가 위험한가
아니다. model은 위험 행동을 설명하거나 거부하기 위해 그 concept를 표현할 수 있다. knowledge, capability, intent, deployed behavior를 구분해야 한다.
이 논문 다음에 무엇을 읽어야 하나
다음은 Circuit Tracing Revealing Computational Graphs in Language Models다. SAE가 feature 후보를 찾는 단계라면 circuit tracing은 source feature activation을 target behavior까지 전달하는 edge·path를 어떻게 고르고 causal graph로 검증하는지 다룬다. 이 원문의 cross-layer superposition과 residual error 한계를 알아야 path 하나를 전체 원인으로 과장하지 않는다.
출처 및 검증 경로
1차 자료
- Templeton 외. Scaling Monosemanticity Extracting Interpretable Features from Claude 3 Sonnet, Transformer Circuits Thread, 2024-05-21 — SAE equations, three SAE experiments, Scaling Laws, Feature Completeness, Computational Intermediates, Safety-Relevant Features, Limitations, Methodological Details를 직접 확인했다.
- Bricken 외. Towards Monosemanticity Decomposing Language Models With Dictionary Learning — SAE encoder·decoder·L1·dead feature resampling의 one-layer baseline 원전이다.
- Elhage 외. Toy Models of Superposition — sparse feature, superposition, interference의 문제 설정 원전이다.
직접 실행 기록
- 환경 — macOS, Python 3.9.6, 표준 라이브러리만 사용.
- 명령 —
python3 /tmp/scaling-monosemanticity-research/verify_scaling_sae.py. - 관찰 —
f=1,d=1과f=0.1,d=10은 plain L1가 다르게 벌하지만 norm-weighted L1는 둘 다 1로 평가했다. steering은 original residual error(0.1,-0.2)를 보존하고 clamp coefficient만 바꿨다.F×T가 같은 두 toy configuration은 같은 단순 compute proxy를 보였다. - 경계 — 이 검증은 원문 수식의 산술이다. Claude 3 Sonnet, proprietary activation, million-feature training, feature label, steering output, scaling-law exponent를 재현하지 않는다.
보조 해석
- versioned SAE artifact와 production safety control의 분리는 원문의 limitations와 feature-existence caution을 바탕으로 한 필자의 시스템 설계 해석이다. 이 원문이 deployment safety case를 완성했다고 주장하지 않는다.
댓글