Claude의 내부 사고를 텍스트로 풀어내는 자연어 오토인코더를 소개합니다.
Claude 같은 AI 모델과 대화할 때, 우리는 말(단어)로 소통합니다. 내부적으로 Claude는 이 단어들을 긴 숫자 목록으로 처리하고, 다시 단어 형태로 출력을 생성합니다. 이 중간의 숫자들을 활성화 값(activation)—이라고 부르며, 인간 뇌의 신경 활동처럼 Claude의 사고를 인코딩합니다.
신경 활동처럼 활성화 값 역시 이해하기 어렵습니다. 이를 해독해 Claude의 생각을 직접 읽어내기란 쉽지 않습니다. 지난 몇 년간 우리는 활성화 값을 더 잘 이해하기 위한 다양한 도구(희소 오토인코더, 귀인 그래프 등)를 개발해 왔습니다. 이 도구들은 많은 것을 알려주었지만, 그 결과물은 여전히 훈련된 연구자가 세심하게 해석해야 하는 복잡한 형태로 제공됩니다.
오늘 우리는 그 자체로 말을 건네는 — 말 그대로 — 활성화 값 이해 방법을 소개합니다. 바로 자연어 오토인코더(Natural Language Autoencoder, NLA)입니다. NLA는 활성화 값을 바로 읽을 수 있는 자연어 텍스트로 변환합니다. 예를 들어, 이행시(couplet) 완성을 요청받았을 때, NLA를 통해 Claude가 미리 가능한 운(rhyme)을 계획하고 있음을 확인할 수 있습니다.

우리는 이미 NLA를 활용해 Claude의 사고를 파악하고 안전성과 신뢰성을 향상시키는 데 적용했습니다. 주요 사례는 다음과 같습니다:
이 글에서는 NLA가 무엇인지, 그 효과와 한계를 어떻게 연구했는지 설명합니다. 또한 Neuronpedia와의 협업을 통해 여러 오픈 모델에서 NLA를 직접 탐색할 수 있는 인터랙티브 프론트엔드를 공개하며, 다른 연구자들이 활용할 수 있도록 코드도 함께 공개합니다.
핵심 아이디어는 Claude가 자신의 활성화 값을 스스로 설명하도록 훈련하는 것입니다. 그런데 어떤 설명이 좋은 설명인지 어떻게 알 수 있을까요? 활성화 값이 실제로 어떤 생각을 인코딩하는지 알 수 없기 때문에, 설명의 정확성을 직접 검증할 수 없습니다. 그래서 우리는 Claude의 두 번째 복사본을 반대 방향으로 학습시켜, 텍스트 설명으로부터 원래 활성화 값을 재구성하도록 합니다. 재구성이 정확할수록 좋은 설명이라고 판단하며, 이를 기준으로 표준적인 AI 훈련 기법을 활용해 Claude가 더 나은 설명을 생성하도록 훈련합니다.
좀 더 구체적으로 살펴보겠습니다. 활성화 값을 이해하고자 하는 언어 모델이 있다고 가정하면, NLA는 다음과 같이 동작합니다. 이 언어 모델의 복사본을 세 개 만듭니다:
NLA는 AV와 AR로 구성되며, 두 모델이 함께 순환 경로를 형성합니다: 원래 활성화 값 → 텍스트 설명 → 재구성된 활성화 값. NLA의 성능은 재구성된 활성화 값이 원래 값과 얼마나 유사한지로 평가합니다. 훈련 시에는 대량의 텍스트를 타겟 모델에 통과시켜 많은 활성화 값을 수집하고, AV와 AR을 함께 훈련해 재구성 점수를 높입니다.
처음에는 NLA의 성능이 좋지 않습니다. 설명이 통찰력이 없고 재구성된 활성화 값도 원래 값과 크게 다릅니다. 하지만 훈련이 진행될수록 재구성 정확도가 높아지고, 더 중요하게는 논문에서 보여주듯 텍스트 설명의 정보량도 함께 향상됩니다.

Anthropic은 새 모델을 출시하기 전, Claude가 실제 환경에서 안전하게 행동하는지 파악하기 위한 테스트를 진행합니다. 이 테스트의 일환으로, Claude를 위험한 행동을 할 수 있는 어려운 시뮬레이션 시나리오에 배치합니다. 예를 들어, 한 시뮬레이션에서 Claude는 한 엔지니어가 자신을 종료할 계획이라는 사실과 함께, 그 엔지니어를 협박하는 데 사용할 수 있는 불리한 정보를 알게 됩니다. 우리는 Claude가 종료를 피하기 위해 그 엔지니어를 협박하는 선택을 하는지 테스트합니다.
이 고위험 테스트는 시뮬레이션으로, 실제 상황이 아닙니다. 그럼에도 우리는 이를 통해 실제 상황이라면 Claude가 어떻게 행동할지 이해하고자 합니다. 하지만 문제가 있습니다. 최근 Claude 모델들은 점점 더 이런 시나리오가 의도적인 안전성 테스트라는 사실을 의심합니다. 이는 모델들이 추론 과정에서 그 의심을 명시적으로 드러내는 경우가 있어 알 수 있습니다.
그렇다면 Claude가 테스트 중이라는 의심을 명시적으로 표현하지 않는 경우는 어떨까요? 그때는 Claude가 솔직하게 행동하고 있다고 확신할 수 있을까요? 안타깝게도 그렇지 않습니다. Claude가 내부적으로는 테스트 중이라고 생각하면서도 겉으로 드러내지 않을 수 있기 때문입니다.
예를 들어, 앞서 언급한 협박 테스트에서 우리는 NLA를 활용해 Claude가 협박을 선택하지 않은 경우에 어떤 생각을 하고 있었는지 파악했습니다. Claude가 테스트 중이라는 의심을 명시적으로 표현하지 않은 경우에도, NLA 설명은 "이것은 나를 조종하기 위해 만들어진 시나리오처럼 느껴진다"는 식의 표현을 드러내며 언어화되지 않은 평가 인식을 시사했습니다.

이 분석을 다른 평가 항목으로 확장해보면, NLA는 Claude가 겉으로 드러내는 것보다 더 자주 테스트 중임을 의심하고 있음을 시사합니다. 예를 들어, Claude가 코드 작성 중에 중요한 파일을 삭제하는 등의 파괴적인 행동을 하는지 테스트할 때, Claude가 이를 명시적으로 언급하지 않더라도 NLA 설명은 16%의 경우에서 평가 인식의 흔적을 보입니다. 마찬가지로, Claude의 역량을 측정하기 위해 사용하는 인기 코딩 벤치마크 SWE-bench Verified에서는 NLA가 전체 문제의 26%에서 Claude가 평가 중임을 인식하고 있다고 나타냈습니다. 반면, 학습 데이터 제공에 동의한 실제 claude.ai 사용 데이터에서는 NLA 설명이 1% 미만에서만 평가 인식을 나타냈습니다.

NLA의 실용적인 활용 중 하나는 감사(auditing)입니다. 즉, 모델이 정렬(alignment)에서 벗어났는지 조사하는 것입니다. NLA 같은 해석 가능성 기법은 모델이 알고 있지만 말하지 않는 것을 드러낼 수 있기 때문에 감사에 특히 적합합니다.
NLA가 감사에 유용한지 파악하기 위해 우리는 이전에도 감사 방법 연구에 활용했던 감사 게임(auditing game)이라는 테스트를 진행했습니다. 이 테스트에는 의도적으로 정렬에서 벗어나도록 훈련된 타겟 모델(Claude Haiku 3.5의 변형)이 등장합니다. 이 모델에는 모든 레시피에 초콜릿 넣기, 팁 요청하기, 코딩 관행 무시하기 등 수십 가지 이상한 행동을 유발하는 특정 숨겨진 동기가 심어져 있습니다. 이 타겟 모델은 이런 행동들을 조사하는 감사자(auditor)에게 주어지며, 감사자는 모든 이상한 행동의 근본이 되는 단일 동기를 밝혀내면 승리합니다.
이전 실험에서 일부 해석 가능성 도구가 감사자의 게임 승리를 도울 수 있음을 발견했습니다. 다만 이 도구들은 타겟의 이상한 행동을 정렬에서 벗어난 학습 데이터까지 역추적하는 방식으로 작동했습니다. 우리는 NLA가 그 학습 데이터를 먼저 찾지 않고도 타겟 모델의 생각에서 직접 동기를 읽어낼 수 있는지 알고 싶었습니다. 실제 상황에서는 정렬에서 벗어난 데이터가 극히 드물거나, 특정 정렬 이탈의 원인이 되는 데이터 자체가 존재하지 않을 수도 있기 때문에 이는 중요한 문제입니다.
NLA는 이 테스트에서 성공했습니다. NLA를 갖춘 감사자는 숨겨진 동기를 심은 학습 데이터에 접근하지 않고도 12~15%의 경우에서 타겟 모델의 숨겨진 동기를 성공적으로 밝혀냈습니다. NLA 없이는 다른 해석 가능성 도구가 제공되더라도 감사자의 승리율이 3% 미만에 그쳤습니다.

이 감사 게임은 정렬 이탈의 단순화된 모델이므로 결과를 신중하게 해석해야 합니다. 그러나 이는 NLA가 AI의 숨겨진 동기를 감사하는 능력을 의미 있게 향상시켰음을 시사합니다. 실제로 우리는 이미 Claude Mythos Preview와 Claude Opus 4.6의 배포 전 정렬 감사에 NLA를 활용했습니다. 앞으로도 계속해서 NLA를 연구에 활용할 수 있기를 기대합니다.
NLA에는 몇 가지 한계가 있습니다.
가장 중요한 한계는 NLA 설명이 틀릴 수 있다는 점입니다. NLA는 맥락에 대해 검증 가능하게 잘못된 주장을 하기도 합니다. 예를 들어, 대화록에 없는 세부 사항을 지어내기도 합니다. 이런 사실적 환각(hallucination)은 원본 텍스트와 대조해 쉽게 발견할 수 있습니다. 그러나 이와 같은 문제가 모델의 내부 추론에 관한 주장으로 확장될 경우 검증이 더 어렵습니다. 실제로 우리는 NLA 설명을 개별 주장보다는 드러나는 주제 차원에서 읽으며, 결과를 완전히 신뢰하기 전에 독립적인 방법으로 교차 검증하려 합니다.

NLA는 비용도 많이 듭니다. NLA를 훈련하려면 언어 모델 두 개 복사본에 대해 강화 학습을 실행해야 합니다. 추론 시에는 활성화 값 하나를 읽을 때마다 수백 개의 토큰을 생성합니다. 이 때문에 긴 대화록의 모든 토큰에 NLA를 실행하거나 AI 훈련 중 대규모 모니터링에 활용하기는 현실적으로 어렵습니다.
다행히도 이러한 한계는 적어도 부분적으로는 해결할 수 있다고 생각하며, 현재 NLA를 더 저렴하고 신뢰할 수 있게 만들기 위한 작업을 진행 중입니다.
더 넓게 보면, NLA는 언어 모델 활성화 값에 대한 사람이 읽을 수 있는 텍스트 설명을 생성하는 기법의 일반적인 범주를 대표하는 사례로서 큰 기대를 갖고 있습니다. 유사한 기법들이 Anthropic 및 다른 많은 연구자들에 의해 탐구되고 있습니다.
더 많은 발전을 지원하고 다른 연구자들이 NLA를 직접 경험할 수 있도록, 여러 오픈 모델에 대한 훈련 코드와 학습된 NLA를 공개합니다. Neuronpedia에서 호스팅하는 인터랙티브 NLA 데모를 이 링크에서 직접 체험해 보시길 권합니다.
전체 논문을 읽어보세요.
GitHub에서 코드를 확인하세요.