당신의 SAE가 코사인 유사도 기준을 통과했다고 해서, 그것이 반드시 의미하는 것은 아닙니다
요약
희소 오토인코더(SAE)의 특징 복구 시 코사인 유사도가 높더라도 실제 인과적 활성화로 이어지지 않을 수 있다는 연구 결과를 발표했습니다. 상관관계 기반의 기하학적 지표가 인과적 검증을 대체할 수 없음을 경고합니다.
핵심 포인트
- 코사인 유사도 0.9 이상의 SAE 특징 중 최대 77%가 실제 인과적 활성화를 보이지 않음
- 디코더 기하학적 복구와 인코더의 인과적 선택은 서로 다른 개념임
- 기존의 상관관계 기반 지표가 인과적 행동을 구분하지 못하는 한계 지적
- 중첩 상도 재현 과정에서 학습 부족이 중첩으로 오인될 수 있는 아티팩트 발견
저는 희소 오토인코더 (Sparse Autoencoder, SAE) 특징(feature)에 대해 인과적 감사 (causal audit)를 수행했으며, "복구된" 특징의 최대 77%가 해당 개념이 존재할 때 실제로 활성화되지 않는다는 것을 발견했습니다. 이는 코사인 유사도 (cosine similarity) ≈ 1.000인 경우에도 마찬가지입니다.
요약 (TL;DR)
저는 지난 몇 달 동안 기계론적 해석 가능성 (mechanistic interpretability) 분야에서 신경망 활성화를 인간이 해석 가능한 특징으로 분해하는 데 사용하는 도구인 희소 오토인코더 (Sparse Autoencoders, SAEs)를 구축하고 인과적 감사 (causal audit)를 수행하는 데 시간을 보냈습니다. 그 결과가 현재 arXiv에 게시되었습니다:
코드: sae-causal-audit · superposition-to-monosemanticity
핵심 결과: 해당 분야의 표준 복구 지표(코사인 유사도 (cosine similarity) ≥ 0.90)를 통과하는 SAE 특징의 최대 77%가, 특징이 존재할 때 실제로 발화(fire)하지 않습니다. 이는 잘 훈련된 SAE 내에서 코사인 유사도 ≈ 1.000인 일치 사례를 포함합니다. 상관관계적 복구 (Correlational recovery)와 인과적 행동 (causal behavior)은 동일한 주장이 아니며, 모두가 사용하는 지표는 이 둘을 구분할 수 없습니다.
한 문장으로 요약한 문제점
SAE는 거의 전적으로 **디코더 기하학 (decoder geometry)**에 의해 평가됩니다: 학습된 디코더 원자 (decoder atom)가 실제 정답(또는 프로브된) 특징과 대략적으로 같은 방향을 가리키는가? 이것은 상관관계에 기반한 주장입니다. 특징이 실제로 존재할 때 **인코더 (encoder)**가 실제로 해당 원자를 선택하는지 여부는 완전히 다른 인과적 주장이며, 코사인 유사도는 구조적으로 이 둘을 구분할 수 없습니다.
재구성을 잘하도록 압박을 받는 SAE는 특징에 대해 기하학적으로 완벽한 위치에 디코더 원자를 배치할 수 있지만, 쌍을 이루는 인코더 가중치는 해당 특징에 대해 TopK (또는 ReLU) 선택 경쟁에서 거의 이기지 못할 수 있습니다. 왜냐하면 보통 다른 무언가가 먼저 승리하기 때문입니다. 원자는 "복구"되었지만, 동시에 침묵하고 있는 것입니다.
제가 실제로 수행한 작업
추상적으로 논쟁하기보다는, 정답(ground truth)을 정확히 알고 있는 완전히 통제된 토이 세팅(toy setting)을 구축하고, 처음부터 전체 파이프라인을 실행했습니다.
-
Elhage et al. (2022)의 중첩 상도(superposition phase diagram)를 재현했습니다. 그 과정에서 수렴 아티팩트(convergence artifact)를 발견했는데, 높은 희소성(sparsity) 단계에서 학습 부족(under-training)이 중첩(superposition)인 것처럼 조용히 위장하고 있었습니다. 스텝 예산(step budget)을 수정하자 이 문제가 해결되었고, 극단적인 과완전성(overcompleteness) 상태에서 아직 충분히 설명되지 않은 세 번째 기하학적 영역인 _확산 공유(diffuse sharing)_가 드러났습니다.
-
Gao et al. (2024)의 TopK 대 L1 비교를 재현했습니다. 여기에는 L1 수축(shrinkage)을 단순히 주장하는 것이 아니라 직접 _측정_하는 활성화 정밀화(activation-refinement) 테스트가 포함되었습니다 (고정된 서포트(support) 상에서 크기(magnitude)를 정밀화할 때 L1 SAE의 재구성 간극(reconstruction gap) 중 91.2%가 닫히는 반면, TopK의 크기는 거의 움직이지 않습니다).
-
인과적 검증 배터리(causal validation battery)를 구축했습니다. 대리 지표(proxy)가 아닌 모델의 실제 출력 단계까지 전파되는 어블레이션(ablation) 및 부호가 정확한 스티어링(sign-correct steering)을 포함하며, 이를 표준 코사인 기준을 통과한 모든 특징(feature)에 대해 실행했습니다.
마지막 단계가 바로 불편한 진실이 드러나는 지점입니다.
핵심 결과
파레토 프런트(Pareto front)의 양 끝단에 위치한 두 개의 TopK SAE:
| 상관관계적으로 복구됨 (22개 중) | 인과적으로 비활성 (fired_frac = 0) | |
|---|---|---|
| 우수한 SAE (k=4, 정밀도 1.00) | 22/22 | 2 (9%) — 둘 다 코사인 > 0.9999 |
| 저하된 SAE (k=13, 정밀도 0.11) | 18/22 | 최대 17 (77%) |
"인과적으로 비활성(Causally inert)"하다는 의미는 다음과 같습니다: 정답 특징(ground-truth feature)이 실제로 존재하는 500개의 샘플 전체에서, 매칭된 디코더 원자(decoder atom)의 인코더 엔트리가 단 한 번도 활성화되지 않는다는 것입니다. 약한 것이 아닙니다. 노이즈가 있는 것도 아닙니다. 정확히 0입니다. 결코 활성화되지 않는 원자를 어블레이션(ablation)하는 것은 어떤 것도 바꿀 수 없습니다. 이는 특이도 비율(specificity ratio)이 작은 것이 아니라, "약한 효과"와는 구조적으로 다른 이유로 정의되지 않으며 0으로 보고되는 것입니다.
왜 우수한 SAE에도 여전히 비활성 특징이 존재하는가
이 부분은 시작할 때 예상하지 못했던 지점입니다. 잘 훈련된 SAE 내의 두 비활성 특징(inert features)은 노이즈가 아닙니다. 그것들은 정확히 동일한 기하학적 사건이 두 번 나타난 것입니다. 특징(Feature) 8은 코사인 유사도 0.9997로 원자(atom) 78과 반대 방향으로 정렬(anti-aligned)되어 있으며, fired_frac = 0.00입니다. 하지만 동일한 원자 78은 특징 1의 최적 매치(best match)이기도 합니다. 특징 1은 양의 방향으로 정렬(positively aligned)되어 있으며, 100%의 빈도로 활성화되고, 제거 특이도(ablation specificity)는 535입니다.
하나의 원자가 두 개의 "복구된(recovered)" 특징을 형성하고 있습니다. 토이 모델(toy model)의 가중치(weights)가 이를 완벽하게 설명합니다: cos(W1, W8) = -0.9998 — 이는 중첩(superposition) 문헌에서 예측하는 정확한 Wi ≈ -Wj 구성인 대척점 쌍(antipodal pair)입니다. SAE는 재구성(reconstruction)을 위해 공유된 축당 하나의 원자를 학습했습니다. 이는 올바른 동작입니다. 하지만 TopK-then-ReLU 방식은 양의 사전 활성화(positive pre-activations)만을 통과시키기 때문에, 원자는 축의 한쪽 방향으로는 활성화되지만 다른 쪽으로는 결코 활성화되지 않습니다.
대척점 비활성(Antipodal inertness)은 훈련의 실패가 아니라, 충실하게 압축된 중첩 기하학(superposition geometry)입니다. 더 나은 SAE는 반대 방향으로 정렬된 코사인 유사도를 1.000에 더 가깝게 밀어붙이며, 이는 상관관계 지표(correlational metric)상에서 비활성 매치를 덜 설득력 있게 만드는 것이 아니라 오히려 더 설득력 있게 보이게 만듭니다. SAE의 품질만으로는 이를 스스로 제거할 수 없으며, 오직 매치 부호(match sign)에 대한 인터페이스 수준의 인지(interface-level awareness)만이 이를 해결할 수 있습니다.
읽기-비활성(Read-inert) ≠ 쓰기-비활성(write-inert)
여기서부터가 실무적으로 가장 중요하다고 생각하는 부분입니다. 대척점 특징들은 제거-비활성(ablation-inert) 상태입니다(결코 활성화되지 않는 것을 제거할 수는 없으니까요). 하지만 이들은 절대 스티어링-비활성(steering-inert) 상태가 아닙니다. 올바른 부호를 사용하여 동일한 원자를 강제로 주입하면, 스티어링 특이도(steering specificity) 143–310 범위에서 쌍을 이룬 특징의 출력이 상승합니다. 이는 전체 감사(audit)에서 가장 높은 특이도 중 일부이며, 정작 제거 효과(ablation effect)는 정확히 0인 원자들에 연결되어 있습니다.
따라서 "인과적 비활성(causally inert)"은 단일 속성이 아닙니다. 이는 분리 가능하고 해리 가능한 두 가지 주장으로 분해됩니다:
- 읽기-비활성 (Read-inert): 인코더(encoder)가 해당 원자를 결코 선택하지 않음 → 이를 기반으로 구축된 모니터링(monitoring)은 눈이 먼 상태임
- 쓰기-비활성 (Write-inert): 해당 원자를 따라 개입(interventions)해도 특징이 움직이지 않음 → 이를 기반으로 구축된 스티어링(steering)은 무력함
두 SAE 모두에서 발견된 다섯 쌍의 대척점 쌍(antipodal pairs)은 이들을 완전히 분리합니다. 하나의 특징(feature)은 동일한 원자(atom)를 통해 모니터링할 수 없으면서(unmonitorable) 동시에 조종 가능성(steerable)이 매우 높을 수 있습니다. 만약 당신이 SAE 특징을 모니터링 신호로 사용하고 있다면, 이는 실제 안전(safety) 측면에서 중요한 차이를 가집니다. 즉, 읽기 검증(read-validation)과 쓰기 검증(write-validation)은 서로 대체될 수 없으며, 하나를 통과했다고 해서 다른 하나에 대해 알 수 있는 것은 아무것도 없습니다.
단순한 발견이 아닌, 도구로서의 가치
일회성 실험 스크립트 내에서만 존재하는 결과는 주장에 불과하며, 도구가 아닙니다. 그래서 저는 이 방법론을 **sae-causal-audit**로 패키징했습니다. 이는 두 가지 런타임 확인 가능(runtime-checkable) 구조적 프로토콜(상속이나 어댑터가 필요 없음)을 중심으로 구축된 모델 불가지론적(model-agnostic) 도구입니다 —
@runtime_checkable
class SparseAutoencoder(Protocol):
W_dec: torch.Tensor
...
sae_lens.SAE는 별도의 설정 없이 이 프로토콜을 충족합니다. 이러한 역할 분담은 발견된 내용을 구조적으로 재진술합니다: 매칭(matching)은 W_dec를 사용하지만(상관관계 기반, 현재 분야의 지표가 측정하는 것), 모든 인과적 지표(causal metric)는 encode/decode를 거칩니다(디코더 기하학(decoder geometry)이 인증할 수 없는 것).
이 패키지에는 **해시 검증된 결정론적 재현 파이프라인(hash-verified deterministic reproduction pipeline)**이 포함되어 있습니다. 바이트 단위로 정확한(byte-exact) 약속을 실제로 지키려 시도하는 과정에서 세 가지 층위의 교차 환경 비결정론(nondeterminism)이 드러났습니다. 즉, 직렬화 누수(wall-clock 타이밍이 결과에 해시됨), 부동 소수점 누적 순서를 조용히 재정렬하는 멀티스레드 Adam 옵티마이저(optimizer), 그리고 Windows와 Linux에서의 "동일한 torch 버전"이 실제로는 동일하게 컴파일된 프로그램이 아니라는 사실입니다. 바이트 단위의 교차 플랫폼 재현성을 달성하는 것이 어려운 것은 아닙니다. 다만 이러한 종류의 워크로드에서는 **구조적으로 불가능(unavailable by construction)**할 뿐입니다. 이제 이 리포지토리는 서로 분리된 범위를 가진 두 가지 별도의 보증을 제공합니다: 고정된 CI 환경 내에서의 바이트 단위 정확성, 그리고 그 외 모든 곳에서의 의미론적(semantic) 일치(rtol = 1e-4).
실제 모델에서도 나타나는가?
Toy model(장난감 모델)은 정확한 ground truth(지상 실측값)와 인과적 인증(causal certification)을 가능하게 하지만, 동시에 모든 숫자를 벤치마크가 아닌 쉬운 사례에 대한 보정 지점(calibration point)으로 만들어 버리기도 합니다. 그래서 저는 서로 관련 없는 도메인에 걸쳐 직접 작성한 83개의 개념을 대상으로, 이미 발표된 프로덕션 SAE(gpt2-small-res-jb, 1개 hook layer)에 대해 테스트 하네스(harness)를 실행했습니다.
매칭된 83쌍 중 7쌍이 (낮춰진, probe-proxy-adjusted) 복구 기준을 통과했으며, 1쌍(14%)은 인과적으로 비활성(causally inert) 상태였습니다. 규모는 작지만, toy regime(장난감 모델 영역)과 질적으로 일치하는 결과입니다. 더 흥미로운 점은, 단 하나가 아니라 몇몇 decoder atom(디코더 원자)들이 수십 개의 의미론적으로 무관한 개념들(천문학, 암호학, 법률 등, 모두 코사인 유사도 0.30–0.70에서 동일한 atom과 매칭됨)에 대해 가장 가까운 상관적 일치 항목으로 반복해서 나타난다는 것입니다. 이는 독립적으로 구축된 세 개의 점진적 개념 배치(growing concept batches) 전체에서 재현되었으며, 통제된 부정 사례(negative case)를 통해 프롬프트 템플릿(prompt-templating)이 인위적인 결과(artifact)일 가능성을 배제했습니다. 이는 toy antipodal-pair 메커니즘이 판독 가능하도록 설계되었던 바로 그 'splitting 하에서의 dictionary' 신호이며, 이제 프로덕션 규모에서 나타나고 있는 것입니다.
SAE를 기반으로 구축 중이라면, 실무 지침
- 자동화된 동작을 가공되지 않은 SAE feature activation(특징 활성화)에 직접 연결하지 마세요 — 한 가지 현실적인 구성에서, 상관적으로 매칭된 특징의 77%가 noise(노이즈)에 반응하는 후보였습니다.
- 실제로 사용하는 방향에 대해 인과적으로 검증하세요. 모니터링에는 read-validation(읽기 검증)이 필요합니다. Steering(스티어링)에는 write-validation(쓰기 검증)이 필요합니다. 본 연구에서는 한 방향은 143–310의 specificity(특이도)로 통과하는 반면, 다른 방향은 정확히 0에 머무는 다섯 가지 사례를 측정했습니다.
- SAE가 재학습될 때마다 인과적 검증을 다시 수행하세요. 특정 개념에 대한 특징의 인과적 관계는 하나의 학습된 체크포인트(checkpoint)의 속성이지, 이식 가능한 추상화(portable abstraction)가 아닙니다.
- SAE 체크포인트를 검증에 사용된 정확한 모델 및 데이터 분포에 버전 고정(version-pin)하세요.
직접 시도해 보세요
git clone https://github.com/mohamed-bal/sae-causal-audit
cd sae-causal-audit
make reproduce # 논문의 모든 수치를 재생성합니다, CPU 기준 약 3분 소요
...
프로토콜 인터페이스는 sae_lens.SAE를 직접 포함하여, 인코딩(encode), 디코딩(decode) 및 딕셔너리(dictionary)를 노출할 수 있는 모든 SAE를 수용합니다.
이번 논문은 독립 연구자로서 제출하는 저의 첫 번째 arXiv 논문입니다. 이를 가능하게 해준 cs.LG 추천(endorsement)을 해주신 Adam Karvonen (SAEBench의 주저자)에게 진심으로 감사의 말씀을 전하고 싶습니다. 대리 지표(proxy metrics)가 실제 성능을 신뢰성 있게 예측하지 못한다는 SAEBench의 벤치마크 규모 진단은, 동일한 질문을 인과적 도구(causal instrument)를 사용하여 개별 특징(individual features) 수준까지 파고들게 만든 큰 동기 중 하나였습니다.
질문이나 반론, 혹은 이 도구가 제대로 작동하지 않는 부분에 대한 의견을 환영합니다. 단순히 수치만을 제시하는 것이 아니라 도구를 공개하는 이유가 바로 여기에 있습니다.
논문 (Paper): https://arxiv.org/abs/2607.12166
코드 (Code): https://github.com/mohamed-bal/sae-causal-audit
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기