성능과 평가

ByteDance Seed, Qwen3-30B-A3B용 희소 오토인코더 공개

MoE 블록 출력에 학습한 SAE 세 개를 Apache 2.0으로 풀었다. 4·30·46번 층용이며 파일 하나가 약 17.2GB여서 GPU 메모리 여유가 필요하다.

루카스 ·

ByteDance Seed가 Qwen3-30B-A3B의 전문가 혼합(MoE) 블록 출력에 학습한 TopK 희소 오토인코더(SAE)를 Hugging Face에 공개했다. 4번, 30번, 46번 층에 하나씩, 모두 세 개다.

라이선스는 Apache License 2.0이며, 기반 모델인 Qwen3-30B-A3B도 같은 라이선스다. SAE는 Dolma 3, Dolci-Think-SFT, Dolci-Instruct-SFT에서 계산한 활성값으로 학습했고, 이 데이터는 Ai2가 ODC-BY v1.0으로 제공한다. 저장소는 논문 "Sparse AutoEncoders Reveal That MoE Experts Exhibit Human-Interpretable Fine-Grained Specialization"과 함께 나왔다고 밝히며, 저자는 Anyuan Zhuo, Shaohua Zhang, Yuan Lin, Pinyan Lu다. 프로젝트 페이지, 코드, 논문 링크는 아직 TODO로 남아 있다.

구조와 사용 조건

각 SAE는 Top-k 방식으로 k는 100이고 잠재 특징은 2^20개(1,048,576개)다. 입력은 해당 층 mlp 모듈(Qwen3MoeSparseMoeBlock)의 출력으로, 잔차 덧셈 이전 값을 정규화 없이 그대로 읽는다. 층 번호는 0부터 센다. 파일은 W_enc, b_enc, W_dec, b_dec 네 개의 float32 텐서로 이뤄지며, W_dec의 각 행은 단위 노름이다. 논문은 특징을 30-F97783처럼 층 번호와 인덱스로 표기한다.

sae.safetensors 하나가 약 17.2GB다. 예제 코드는 LAYER=30을 기준으로 하며, 주석에 모델 위에 SAE 약 17GB가 추가로 올라간다고 적혀 있다. 사전 활성값은 토큰당 4MiB여서 긴 입력은 나눠 인코딩해야 한다. 예제는 BF16으로 불러온 모델에 forward hook을 걸어 MoE 출력을 가로채는 방식이다.

학습과 복원 성능

SAE는 층마다 독립적으로 학습했다. 활성값은 Olmo 3 학습 코퍼스에서 모은 MoE 블록 출력이며, 구성은 Dolma 3 사전 학습 데이터 5/8, 추론 사고 사슬 Dolci-Think-SFT 1/4, 지시 수행 Dolci-Instruct-SFT 1/8이다. 처음 1만 스텝 동안 k를 1000에서 100으로 줄였고, 보조 손실과 AdamW를 썼으며 SAE마다 약 32억 토큰을 학습했다.

논문이 보고한 복원 오차(FVU, 설명되지 않고 남은 분산 비율)
층FVU
412.6%
3025.1%
467.6%

FVU가 낮을수록 복원 후 남는 분산이 적다. 세 층 중 30번 층의 FVU(25.1%)가 가장 높아, 복원 후 남는 분산이 가장 많고 복원 성능은 가장 낮다.

댓글

기사에 대한 의견이나 틀린 내용 제보를 남겨 주세요.

댓글을 불러오고 있습니다.