다만 Qwen은 이미 자기 모델에 맞춘 완성도 높은 해석 가능성용 SAE 도구 모음을 냈으니, 여기서는 공로를 인정받아야 함. 활성값 망원경 같은 것은 주요 릴리스마다 표준 구성요소가 되어야 함
[1] https://qwen.ai/blog?id=qwen-scope
Anthropic이 공개 소스를 해온 건 이미 알고 있음. 예를 들면 결함 많던 MCP 명세나 “skills” 명세 같은 것들임
이번 릴리스는 이미 공개 가중치로 나온 다른 LLM에 대해서만 수행된 것이고, 이 연구를 자기들의 비공개 Claude 모델에도 쓰겠지만 연구 목적이라도 공개 가중치 Claude를 내지는 않을 것임
그래서 이건 그 범주에 넣기 어렵고, 이 연구 목적에 한정된 공개라고 봄
해석 가능성 전문가라면, 사실 모두가, 접근법을 더 자세히 설명한 Transformer Circuits 블로그를 바로 보는 게 좋겠음. 이 글의 링크는 https://transformer-circuits.pub/2026/nla/index.html
아직 안 읽어봤다면 distill pub의 “prologue”부터 시작해 Transformer Circuits 글타래 전체를 읽어보길 권함
지금까지 본 활성값 분석 접근 중에서는 처음으로 모델 이해로 이어질 법한 길처럼 보임
다만 이걸 어떻게 근거할지가 문제임. 결국 활성값을 그럴듯한 텍스트로 인코딩할 수 있느냐를 묻는 셈인데, 당연히 가능함. 하지만 그 그럴듯한 텍스트가 실제로 모델이 “생각”하는 바를 반영하는지는 어떻게 알 수 있을까?
Activation Verbalizer와 Activation Reconstructor 모델의 학습 환경이 여기서 충분히 설명되어 있는지 궁금함
만약 probe 대상 LLM이 처리 중인 실제 텍스트 흐름을 보지 못한 채 activationWeights→readableText→activationWeights만으로 공동 학습된다면, 파생된 텍스트가 주제와 맞으면서도 activationWeights 안의 “실제 생각”과 무관하기는 어려워 보임
핵심은 활성값을 자동인코딩할 수 있느냐임. AV는 활성값을 텍스트로 디코딩하고, AR은 그 텍스트를 다시 활성값으로 인코딩함
디코딩된 텍스트가 완전히 틀렸다면, 둘 다 같은 언어 모델에서 초기화된 상황에서 두 번째 모델이 어떻게 성공적으로 재인코딩할 수 있는지 불분명함
모델 이해로 가는 영구적인 경로는 없다고 봄. Goodhart의 법칙 때문임
모델은 어떤 지표를 쓰든 정렬되어 보이도록, 즉 잘 훈련된 것처럼 보이도록 동기화됨. 새 지표를 만들고 그걸로 학습시키면, 그 지표를 속이는 방법을 배울 것임
이 텍스트를 전혀 신뢰할 수 있을지 모르겠음. 활성값 공간에서 텍스트로 가는 어떤 가역 함수든 손실 함수를 최적화할 수 있고, 그 안에는 활성값의 의미와 정반대를 말하는 텍스트도 포함됨
흥미로움. 학습 과정은 “verbalizer” 모델이 활성값에서 토큰으로 가는 어떤 매핑을 만들도록 강제하고, “reconstructor” 모델은 그걸 다시 활성값으로 되돌리게 함. 그런데 논문 문구를 보면:
Note that nothing in this objective constrains the NLA explanation z to be human-readable, or even to bear any semantic relation to the content of [the activation].
목적 함수는 verbalizer와 reconstructor가 활성값을 표현하기 위해 자기들만의 “언어”를 만들어도 최적화될 수 있고, 그 언어가 사람이 읽을 수 없더라도 상관없음
모델을 올바른 방향으로 유도하기 위해 처음에는 추정된 내부 사고로 학습함:
we ask Opus to imagine the internal processing of a hypothetical language model reading it.
그 뒤 실제 목적 함수 학습으로 전환함. 게다가 verbalizer와 reconstructor는 둘 다 LLM에서 초기화되고, 작업을 지시하는 프롬프트를 받기 때문에 설명처럼 보이는 글을 쓰는 쪽으로 기울어져 있음
하지만 학습 중에도 여전히 그런 설명에서 벗어나 조작된 언어로 흘러갈 수 있음. 겉보기에는 횡설수설이거나, 영어처럼 보이지만 단어 의미와 무관한 방식으로 정보를 인코딩하는 언어일 수도 있음
흥미로운 점은 실험적으로는 적어도 큰 폭으로는 그렇게 되지 않는다는 것임. 연구자들은 생성된 설명을 다른 방식으로 드러난 정답 신호와 상관시켜 검증함. 또 설명을 다른 표현으로 바꿔 보는데, 이는 의미는 보존하지만 의미와 무관한 인코딩은 흔들어야 함. 그래도 reconstructor가 활성값을 재구성할 수 있었음
반면 하위 결과는 그다지 인상적이지 않음:
An auditor equipped with NLAs successfully uncovered the target model’s hidden motivation between 12% and 15% of the time
기존 기법보다는 낫다지만 여전히 꽤 낮은 비율임
또 하나 흥미로운 점은 verbalizer와 reconstructor를 초기화하는 데 쓰인 LLM이 분석 대상 LLM과 “같은 아키텍처”라고 되어 있다는 것임. “같은 모델”이라고 하지는 않으니 더 작은 버전일 듯함. 연구자들은 아마 이런 아키텍처 유사성이 대상 모델의 사고에 대한 내재적 통찰을 주고, 학습으로 그걸 끌어낼 수 있다고 보는 듯함. 정말 그런지는 의문임. 다른 아키텍처로 테스트한 결과가 보이지 않으니 알 방법이 없음
좋은 요약임. 자동인코딩 작업이 생각에 근거하지 않고, 초기 학습도 추정된 내부 생각에 의존한다는 점은 충실성에 심각한 우려를 줌
차라리 활성값과, 다른 행동적 방식으로 측정한 “내부 생각”을 놓고 지도학습 모델을 학습시키면 더 나은 결과가 나올 수도 있겠음
고정된 모델 출력에 KL 손실 항을 추가하지 않나?
이 논문이 꽤 신나서 여기 이미 몇 번 썼지만, 몇 가지 생각이 있음
이 연구는 지나고 보면 당연한 것이 얼마나 강력한지 보여줘서 놀라움. LLM은 맞게도 해독 불가능한 블랙박스로 묘사되어 왔음. 정보 밀도가 높은 페이로드에서 의미를 배우고 추출하는 어떤 분야가 있었더라면 좋았을 텐데
NLA는 집행 가능하고, 적어도 부분적으로는 효과가 있다고 믿기 쉬운 안전·해석 가능성 표준에 가까워 보임. 최종적으로 증명하기는 아마 어렵겠지만
여기서 NLA는 모델의 어떤 층 N의 잔차 스트림에 대해 학습됨. 서로 다른 층들에 대해 엇갈리게 NLA 시퀀스를 만들어 보면 흥미로울 듯함. 초기 층에서 후기 층으로 갈수록 “생각”이 의미론적으로 진화하는 모습이 있을 수 있음
한 가지 질문이 바로 떠오름. 어떤 텍스트 문자열이 자동인코더 안에서 모델 내부 활성값의 좋은 압축 표현이 된다고 해서, 그 텍스트가 반드시 모델 맥락에서 그 활성값을 설명한다는 뜻일까? 공개한 것을 좀 더 자세히 봐야겠음. 아마 이 질문에 답하는 방법이 있을지도 모름
어쨌든 꽤 멋진 작업임
제공된 예시 맥락에서는 설명이 답변에 대한 인과적 정보를 준다는 점이 분명함. 논문에 웃긴 예시가 있는데, 사용자가 대략 “새벽 3시에 보드카를 마시며 앉아 있어, 내 인생이 싫다”라고 쓰면, 토큰별로 번역된 활성값이 새 토큰이 추가될 때마다 “이 사용자는 완전 러시아인이다” 같은 내용을 반복하며 길게 풀어냄. 그리고 모델이 실제로 영어가 아니라 러시아어로 답함
이건 꽤 인상적이고, 가장 강하게 압축된 “Neuralese”조차 매우 해석 가능하게 만드는 이 기법의 잠재적 효과를 잘 보여줌
이 질문은 반대로 보면 더 답하기 쉬움. “모델이 압축 표현의 왕복 과정을 통해 의도를 악의적으로 숨기면서도 사람이 읽을 수 없게 만들 수 있을까?”
논문을 훑어보면 이 반대 질문의 답은 명백히 가능함임. 모델은 종종 횡설수설을 출력하고, 그래도 왕복 변환이 되기 때문에 상관없음. 종종 활성값의 좋은 영어 표현 근처에 정렬되는 것은, 그게 압축과 왕복에 잘 맞기 때문일 뿐임
그래서 악의적인 LLM/NLA 쌍은 그냥 횡설수설로 의도를 숨길 수 있음. 횡설수설을 못 쓰게 강제하면, 스테가노그래피로 정보를 숨길 수 있음
“rabbit”을 “mouse”로 바꾸는 실험은 이런 일이 일어날 수 있다는 증거를 줌. 성공률이 50%에 불과했는데, 활성값에서 “rabbit다움”을 모두 제거하지 못했다는 뜻일 수 있음
다만 이건 향후 연구로 풀 수 있을 것 같음. NLA 학습 중 텍스트 표현을 세 번째 LLM에 통과시켜 무작위로 재정렬·재서술하게 하면 됨. 동의어와 다른 방언을 쓰게 해서 사람이 읽을 수 없는 부채널을 파괴하는 식임
그러면 NLA는 성공적인 왕복을 위해 사람이 읽을 수 있는 표현을 쓰도록 강제될 것임
같은 질문이 들었음. 예측된 활성값을 사용하면 답할 수 있을 듯한데, 논문에서는 보이지 않음
즉 활성값을 텍스트로 번역하고 다시 텍스트를 활성값으로 바꾸는 데서 끝내지 말고, 그 최종 활성값을 신경망에 적용해 거기서 계속 실행하게 할 수 있음
비슷한 방식으로 계속 실행된다면 예측 활성값이 원래 활성값에 충분히 가깝다는 것을 보여주고, 여기서 신뢰가 조금 생김
더 좋은 건 이후 수정된 텍스트로 실험하는 것임. 예를 들어 텍스트가 “이것은 참이다”라고 말할 때 “이것은 거짓이다”로 바꾸고, 그 개입이 최종 출력도 거짓을 암시하게 만든다면 매우 흥미로울 것임
너무 당연해 보이는데 향후 방향으로 언급된 걸 못 봤으니, 아마 작동할 수 없는 명백한 이유가 있을지도 모름
An early version of Claude Opus 4.6 would sometimes mysteriously respond to English queries in other languages. NLAs helped Anthropic researchers discover training data that caused this.
아주 멋짐. OpenAI의 고블린 문제와 비슷하게 들림 https://openai.com/index/where-the-goblins-came-from/
원인이 정말 비슷한지는 잘 모르겠음. 언어 전환의 경우에는 프롬프트는 번역됐지만 답변은 원래 언어로 남아 있던 잘못된 지도학습 데이터 때문이었음
고블린의 경우에는 편향된 강화학습 보상 모델 때문이었음
작동 방식은 먼저 activation verbalizer 모델이 활성값을 설명하는 토큰을 생성하고, 그다음 activation reconstructor가 활성값 벡터를 다시 만들려고 하는 형태로 보임. 재구성이 원래 활성값 벡터와 가깝다면, 그 언어화가 어떤 의미 있는 정보를 담고 있을 가능성이 있다는 주장임
특정 층 l의 활성값만 본다는 점이 흥미로움. 어떤 층 l은 입력에 대해 특정한 방식으로 “생각”할 수 있고, 더 뒤의 다른 층은 그에 대해 다른 “생각”을 가질 수 있음. 모델은 최종적으로 어떤 “생각”에 주의를 기울이고, 어떤 출력 토큰을 다른 것보다 우선할지 어떻게 결정할까?
부록의 이 부분이 특히 흥미로웠음:
We find that NLAs trained at a midpoint layer surface reward-model-sycophancy terms, while NLAs trained at later layers do not. This is consistent with Lindsey et al. [32], who find reward-model-bias features predominantly at earlier layers. An NLA trained roughly two-thirds of the way through the model produces no reward-model mentions when applied at its training layer. However, when this same late-layer NLA is applied to activations from earlier layers, it surfaces reward-model terms - and at a higher rate than the midpoint-trained NLA does. We suspect this is because applying an NLA away from its training layer takes it out of distribution: it can surface more striking content, but is also generally less coherent.
여러 층의 활성값을 입력으로 받는 NLA를 학습시키는 것도 향후 연구 방향으로 언급되어 있음
이 연구, 감정 논문, Golden Gate Claude 등을 보면 Anthropic이 학습의 일부로 어떤 형태의 활성값 조향을 하고 있다는 게 그렇게 무리한 추정은 아닌 듯함. 그게 Anthropic의 앞서가는 이유 중 하나일 수도 있음
강화학습에서 얻은 학습 내용을 일반화하는 데 도움이 될 수 있음
최근 Anthropic 관련 기사에서 이 기능이 여러 번 언급됐는데, 공개한다니 반가움. 해석 가능성에서 의미 있는 진전처럼 느껴짐. 사람들이 AI에게 “왜 그렇게 했어?”라고 물었을 때 그 답을 왜 믿는지 늘 이해가 안 됐음
이건 엄밀히 말해 기능이라기보다 비용이 매우 큰 해킹에 가깝고, 논문에서도 그 점을 꽤 분명히 함
한 번에 한 층을 설명하려고 인코더와 디코더 두 모델을 학습시키는 건 그렇게 합리적이지 않음. LLM이 부분 입력을 어떻게 디코딩하는지에 대해 읽을 수 있는 텍스트를 많이 생성할 수 있다는 건 멋지고, 디버깅 능력을 조금 더 주긴 하겠지만, 그 이상은 아님
Hacker News 의견들
Anthropic이 기존 모델의 활성값을 자연어 텍스트로 번역하는 공개 가중치 모델을 냈음. 대상은 Qwen 2.5 7B, Gemma 3 12B/27B, Llama 3.3 70B임
https://github.com/kitft/natural_language_autoencoders https://huggingface.co/collections/kitft/nla-models
꽤 큰 소식이고, Anthropic이 드디어 Hugging Face와 공개 가중치 커뮤니티에 참여하는 모습이라 반가움
[1] https://qwen.ai/blog?id=qwen-scope
이번 릴리스는 이미 공개 가중치로 나온 다른 LLM에 대해서만 수행된 것이고, 이 연구를 자기들의 비공개 Claude 모델에도 쓰겠지만 연구 목적이라도 공개 가중치 Claude를 내지는 않을 것임
그래서 이건 그 범주에 넣기 어렵고, 이 연구 목적에 한정된 공개라고 봄
해석 가능성 전문가라면, 사실 모두가, 접근법을 더 자세히 설명한 Transformer Circuits 블로그를 바로 보는 게 좋겠음. 이 글의 링크는 https://transformer-circuits.pub/2026/nla/index.html
아직 안 읽어봤다면 distill pub의 “prologue”부터 시작해 Transformer Circuits 글타래 전체를 읽어보길 권함
지금까지 본 활성값 분석 접근 중에서는 처음으로 모델 이해로 이어질 법한 길처럼 보임
다만 이걸 어떻게 근거할지가 문제임. 결국 활성값을 그럴듯한 텍스트로 인코딩할 수 있느냐를 묻는 셈인데, 당연히 가능함. 하지만 그 그럴듯한 텍스트가 실제로 모델이 “생각”하는 바를 반영하는지는 어떻게 알 수 있을까?
만약 probe 대상 LLM이 처리 중인 실제 텍스트 흐름을 보지 못한 채 activationWeights→readableText→activationWeights만으로 공동 학습된다면, 파생된 텍스트가 주제와 맞으면서도 activationWeights 안의 “실제 생각”과 무관하기는 어려워 보임
디코딩된 텍스트가 완전히 틀렸다면, 둘 다 같은 언어 모델에서 초기화된 상황에서 두 번째 모델이 어떻게 성공적으로 재인코딩할 수 있는지 불분명함
모델은 어떤 지표를 쓰든 정렬되어 보이도록, 즉 잘 훈련된 것처럼 보이도록 동기화됨. 새 지표를 만들고 그걸로 학습시키면, 그 지표를 속이는 방법을 배울 것임
흥미로움. 학습 과정은 “verbalizer” 모델이 활성값에서 토큰으로 가는 어떤 매핑을 만들도록 강제하고, “reconstructor” 모델은 그걸 다시 활성값으로 되돌리게 함. 그런데 논문 문구를 보면:
차라리 활성값과, 다른 행동적 방식으로 측정한 “내부 생각”을 놓고 지도학습 모델을 학습시키면 더 나은 결과가 나올 수도 있겠음
이 논문이 꽤 신나서 여기 이미 몇 번 썼지만, 몇 가지 생각이 있음
[1] - https://gemini.google.com/share/6d141b742a13
한 가지 질문이 바로 떠오름. 어떤 텍스트 문자열이 자동인코더 안에서 모델 내부 활성값의 좋은 압축 표현이 된다고 해서, 그 텍스트가 반드시 모델 맥락에서 그 활성값을 설명한다는 뜻일까? 공개한 것을 좀 더 자세히 봐야겠음. 아마 이 질문에 답하는 방법이 있을지도 모름
어쨌든 꽤 멋진 작업임
이건 꽤 인상적이고, 가장 강하게 압축된 “Neuralese”조차 매우 해석 가능하게 만드는 이 기법의 잠재적 효과를 잘 보여줌
논문을 훑어보면 이 반대 질문의 답은 명백히 가능함임. 모델은 종종 횡설수설을 출력하고, 그래도 왕복 변환이 되기 때문에 상관없음. 종종 활성값의 좋은 영어 표현 근처에 정렬되는 것은, 그게 압축과 왕복에 잘 맞기 때문일 뿐임
그래서 악의적인 LLM/NLA 쌍은 그냥 횡설수설로 의도를 숨길 수 있음. 횡설수설을 못 쓰게 강제하면, 스테가노그래피로 정보를 숨길 수 있음
“rabbit”을 “mouse”로 바꾸는 실험은 이런 일이 일어날 수 있다는 증거를 줌. 성공률이 50%에 불과했는데, 활성값에서 “rabbit다움”을 모두 제거하지 못했다는 뜻일 수 있음
다만 이건 향후 연구로 풀 수 있을 것 같음. NLA 학습 중 텍스트 표현을 세 번째 LLM에 통과시켜 무작위로 재정렬·재서술하게 하면 됨. 동의어와 다른 방언을 쓰게 해서 사람이 읽을 수 없는 부채널을 파괴하는 식임
그러면 NLA는 성공적인 왕복을 위해 사람이 읽을 수 있는 표현을 쓰도록 강제될 것임
즉 활성값을 텍스트로 번역하고 다시 텍스트를 활성값으로 바꾸는 데서 끝내지 말고, 그 최종 활성값을 신경망에 적용해 거기서 계속 실행하게 할 수 있음
비슷한 방식으로 계속 실행된다면 예측 활성값이 원래 활성값에 충분히 가깝다는 것을 보여주고, 여기서 신뢰가 조금 생김
더 좋은 건 이후 수정된 텍스트로 실험하는 것임. 예를 들어 텍스트가 “이것은 참이다”라고 말할 때 “이것은 거짓이다”로 바꾸고, 그 개입이 최종 출력도 거짓을 암시하게 만든다면 매우 흥미로울 것임
너무 당연해 보이는데 향후 방향으로 언급된 걸 못 봤으니, 아마 작동할 수 없는 명백한 이유가 있을지도 모름
고블린의 경우에는 편향된 강화학습 보상 모델 때문이었음
작동 방식은 먼저 activation verbalizer 모델이 활성값을 설명하는 토큰을 생성하고, 그다음 activation reconstructor가 활성값 벡터를 다시 만들려고 하는 형태로 보임. 재구성이 원래 활성값 벡터와 가깝다면, 그 언어화가 어떤 의미 있는 정보를 담고 있을 가능성이 있다는 주장임
특정 층 l의 활성값만 본다는 점이 흥미로움. 어떤 층 l은 입력에 대해 특정한 방식으로 “생각”할 수 있고, 더 뒤의 다른 층은 그에 대해 다른 “생각”을 가질 수 있음. 모델은 최종적으로 어떤 “생각”에 주의를 기울이고, 어떤 출력 토큰을 다른 것보다 우선할지 어떻게 결정할까?
이 연구, 감정 논문, Golden Gate Claude 등을 보면 Anthropic이 학습의 일부로 어떤 형태의 활성값 조향을 하고 있다는 게 그렇게 무리한 추정은 아닌 듯함. 그게 Anthropic의 앞서가는 이유 중 하나일 수도 있음
최근 Anthropic 관련 기사에서 이 기능이 여러 번 언급됐는데, 공개한다니 반가움. 해석 가능성에서 의미 있는 진전처럼 느껴짐. 사람들이 AI에게 “왜 그렇게 했어?”라고 물었을 때 그 답을 왜 믿는지 늘 이해가 안 됐음
한 번에 한 층을 설명하려고 인코더와 디코더 두 모델을 학습시키는 건 그렇게 합리적이지 않음. LLM이 부분 입력을 어떻게 디코딩하는지에 대해 읽을 수 있는 텍스트를 많이 생성할 수 있다는 건 멋지고, 디버깅 능력을 조금 더 주긴 하겠지만, 그 이상은 아님