April 7, 2025 — 📝 Paper

[논문 리뷰] Scaling Monosemanticity #1

https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html


Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet

너무 길어서 두 편에 나누어 정리하려고 한다.

Bobb’s 읽기 전에 알고 가면 좋을 사전 지식

(a.k.a 나는 몰라서 해맸던 것들)

Introduction

SAE(Sparse AutoEncoder)를 이용해서 small one-layer transformer에서 monosemantic features(단일 시맨틱 특징)을 recover 할 수 있다는 것을 보였다.

Key Results


“Scaling Dictionary Learning” to Claude 3 Sonnet

Claude 3 Sonnet을 이해할 땐 일반적으로 linear representation과 superposition hypothesis에 기반

쉬운 설명 Ver: 신경망의 뉴런 하나가 여러 Features를 동시에 표현하는 현상. (예시) 이상적인 상황: 하나의 뉴런이 “빨간색”에만 반응하고, 다른 뉴런이 “강아지의 코”에만 반응 실제 신경망: 하나의 뉴런이 “빨간색”과 “강아지의 코” 모두에 반응

이것들을 믿는다면, Dictionary Learning (→ 사전학습, 고전 방법)을 해봐야한다

이미 Dictionary Learning이 Transformer Language Model에 효과적이라는 여러 논문이 있다

SAE는 사전학습의 특정 형태임

SAE의 Latent Space를 Dictionary라고 본다면, 같은 개념이 적용됨

→ 새로 들어온 것을 이미 알고 있는 것으로 표현함

근데 지금까지는 SAE는 one-layer 에만 적용하는 등 작은 모델에만 적용되었음

그래서 SAE를 Claude 3 Sonnet사이즈 만큼 스케일링 하려고 함 → 그래서 제목이 Scaling Monosemanticity ~

결론:

SAE를 Claude 3 Sonnet에 적용할 수 있을만큼 Scaling 하여 monosemantic features를 찾아내고 그 monosemantic feature를 Steering 하겠다


Our SAE Experiments

Model의 middle layer에 있는 residual stream activations에 SAE를 적용하는 데 focus함

출처: https://actionpower.medium.com/트랜스포머-transformer-알아보기-1d595a208230

(일반적으로) MLP layer는 입력 차원의 4배를 이용한다고 함

layer에 SAE를 맞추는 예시, 출처: Do I Know This Entity? 논문

(안타깝게도 이 방법으로 문제를 완전히 피할 수 없다고 생각하며, 이후 레이어에서 부분적으로 표현되는 특징은 여전히 제대로 해석할 수 없습니다. 저희는 이 문제가 매우 근본적인 문제라고 생각합니다)

3개의 사이즈의 SAE를 학습시킴: 1M, 4M, 34M


Scaling Laws

SAE를 훈련시킬 때, 2가지가 중요함

  1. Dictionary Learning 결과를 얼마나 향상 시키는 지
  2. Highest-Quality Dictionary를 얻기 위해 컴퓨터를 어떻게 할당해야 하는 지 너무 Training Guide 스러워서 정리는 따로 안 함. 아래 링크를 참고하기

https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html#scaling-scaling-laws


Specificity (특이성)

SAE가 추출한 feature의 해석 가능성을 정량화

→ 예를 들어, SAE에서 “금문교” 특성을 추출했다. 그럼 진짜 “금문교”에서만 켜지는 건지를 알아봐야 한다. 이를 ‘해석 가능성을 정량화’ 한다는 어려운 말로 표현한다

특성별로 약 1,000개의 활성화 사례를 샘플링해 Claude 3 Opus가 평가

text-based dataset으로만 학습했는데, features also activate on relevant images!

Activation level이 높다(=represent confidence, 확신하는 정도)

Influence on Behavior

그렇다면 우리가 이제 Feature Steering을 해볼게~

Sophisticated Features

1 layer transformer에서 발견한 특징은 “세계에 대한 매우 얕은 지식을 반영함”

Claude 3 Sonnet은 훨씬 크고 정교한 모델이라, 이해의 깊이와 명확성을 보여주는 특징을 가지고 있을 것임

그래서 우리는 코딩 상황(프로그래밍 Context)에서 이런 능력을 확인해 보겠다

Code Error Feature

그럼 이제 Model behavior를 Steering(control) 해보자~

  1. 버그가 없는 프롬프트(코드)를 넣고 이 기능에 positive activation을 줌

갑자기 모델이 Error Code를 내뱉음

  1. 반대로, negative activation을 줌

버그가 없었을 경우 실행됐을 코드의 결과를 내뱉음

  1. (새 코드 작성 중을 의미)로 프롬프트 마지막에 넣고, negative activation을 주면

버그 없는 코드를 작성함

Features representing functions

discovered features that track specific function definitions and references to them in code

→ 특정 함수의 ‘정의’와 ‘참조’에서 반응하는 Feature를 찾음

  1. 덧셈 함수에 반응하는 Feature

→ 덧셈 함수(bar) 함수 정의가 끝날 때랑, 함수 사용할 때 Activate됨

→ 곰셈 함수로 정의하면 전혀 안 켜짐

  1. 함수를 다른 곳에서 호출해서 사용해도 적용됨

  1. Output Steering Test

→ 곱셈 코드 넣었더니 덧셈 코드인줄 알고 설명함