ByteDance Seed가 Qwen3-8B-Base의 내부 계산을 들여다보는 교차 계층 트랜스코더(CLT) 가중치를 Hugging Face에 공개했다. 저장소 이름은 Cross-Layer-TopK-CLT이고, 가중치와 코드는 Apache License 2.0이어서 내려받아 쓸 수 있다.
이 CLT는 Qwen3-8B-Base의 36개 층마다 잠재 특징(latent) 3만 2,768개를 둔다. 파라미터는 942억 개, 정밀도는 fp32이며 전체 용량은 377GB다. 인코더만 쓰면 80GB GPU 한 장으로 충분하다. 디코딩까지 하는 데모는 GPU 8장(torchrun --nproc_per_node 8)을 예시로 들었고, 디코더 파일만 357GB에 이른다.
작동 방식
각 층의 잠재 특징은 그 층 MLP 직전의 잔차 스트림(resid_mid)을 읽는다. 결과는 같은 층과 이후 모든 층의 MLP 출력(mlp_out)에 기록한다. 기반 모델에서는 model.layers[l].post_attention_layernorm의 입력을 resid_mid로, model.layers[l].mlp의 출력을 mlp_out으로 가져온다.
인코딩은 층별로 ReLU(W_enc · x)를 계산하며 편향(bias)은 없다. 각 잠재 특징의 활성값에 디코더 열 노름(W_dec_norm)을 곱해 점수를 매기고, 전 층을 합쳐 점수가 높은 360개(36층 × k=10)만 남긴다. 디코딩은 mlp_out_hat[m] = Σ_{l≤m} a_l @ W_dec_l[:, m-l, :]로 이뤄진다. m번째 층의 복원값은 l이 m 이하인 모든 층의 활성값에, 각 층 디코더 가운데 m-l번째 조각을 곱해 더한 것이다.
학습에 쓴 활성값 정규화는 가중치에 이미 반영돼 있다. 이 CLT는 정규화하지 않은 resid_mid를 받아 mlp_out을 복원하므로 factors.safetensors의 계수를 다시 적용하면 안 된다. 학습 때와 같이 어느 층에서든 resid_mid나 mlp_out의 노름이 그 층 평균의 20배 이상인 토큰은 제외하며, 실제로는 첫 토큰이 여기에 해당한다. CLT를 fp32 활성값으로 학습했기 때문에 기반 모델도 fp32로 돌려야 한다.
파일 구성과 사용법
| 파일 | 내용 |
|---|---|
| W_enc_{l}.safetensors (l=0..35) | 층 l의 인코더, 크기 [32768, 4096] |
| W_dec_{l}.safetensors (l=0..35) | 디코더 [32768, 36-l, 4096]와 W_dec_norm_{l} [32768], 디코딩 전용 357GB |
| W_dec_norm.safetensors | 점수 계산용 디코더 열 노름 [36, 32768] |
| factors.safetensors | 평균 활성값 노름 resid_mid_l2, mlp_out_l2 (각 [36]) |
| config.json | d_feature(32768), k(10), 기반 모델과 차원 |
저장소에는 데모 스크립트 hf_encode_demo.py가 들어 있다. huggingface-cli로 체크포인트를 clt 폴더에 받은 뒤 torchrun --nproc_per_node 8 hf_encode_demo.py를 실행하면 된다. 데모는 고정된 문장 하나를 인코딩해 토큰마다 활성화된 잠재 특징을 층별로 출력하고, 이를 mlp_out으로 복원한다. 복원 결과의 형태는 (위치, 층, d_model)이고 예시 문장에서는 (7, 36, 4096)이었다.
잠재 특징은 GPU에 균등하게 나뉘며, 3만 2,768을 나누어떨어뜨리는 개수면 몇 장이든 된다. 인코딩만 하려면 코드의 DECODE를 False로 바꾸고, 내려받을 때 huggingface-cli download ByteDance-Seed/Cross-Layer-TopK-CLT --exclude "W_dec_[0-9]*" --local-dir clt 명령으로 디코더 파일을 뺀다. 이때 --nproc_per_node 1로 80GB GPU 한 장이면 된다.
학습 데이터와 라이선스
학습에는 Dolma 3, Dolci-Think, Dolci-Instruct를 토큰 기준 5 : 2 : 1로 섞어 약 34억 토큰을 썼다. 세 데이터셋은 ODC-BY 라이선스다. 가중치와 코드는 Apache License 2.0이며 저작권은 ByteDance 및 계열사에 있다.
출처
이 기사는 아래 자료를 바탕으로 정리했습니다. 제목을 누르면 원문이 새 창으로 열립니다.