Circuit Tracer: Anthropic이 공개한, LLM의 내부 동작 원리를 분석하고 시각화하는 도구 (feat. Decode Research)

회로 추적(circuit tracing) 소개

대규모 언어 모델(LLM)이 발전해가며 성능은 눈부시게 향상되었지만, 그 내부 동작 원리는 여전히 ‘블랙박스’로 남아 있습니다. 우리는 모델이 어떤 출력을 내는지를 알 수는 있어도, 그 결과가 어떻게 도출되었는지는 파악하기 어려운 것이 현실입니다. Anthropic에서는 이러한 불투명성을 해결하기 위해 ‘회로 추적(circuit tracing)’이라는 새로운 접근 방식을 제안했습니다. 이 방식은 언어 모델이 입력을 받아 출력을 생성하는 과정에서 내부적으로 어떤 feature들이 활성화되고, 이들이 서로 어떤 영향을 주며 논리적 흐름을 형성하는지를 시각적으로 추적할 수 있게 해줍니다.

기존의 LLM 모델을 해석하려고 시도(interpretability)한 기법들은 어텐션 가중치(attention weight)나 변화도(gradient) 기반의 분석에 의존했지만, 이들은 단편적인 힌트를 제공할 뿐, 전체적인 사고 과정을 이해하기에는 한계가 있습니다. 이에 반해, 이번에 공개한 Anthropic의 방법은 마치 신경과학에서 뉴런 간의 회로를 분석하듯, 모델 내부에서 연산 단위가 어떻게 연결되어 있는지를 직접 시각화합니다. 특히 Claude 모델에서는 MLP 층 사이의 트랜스코더(transcoder)를 활용해, 개념 단위의 특징(feature)들을 추출하고, 각 특징들 간의 연결 관계를 기반으로 속성 그래프(attribution graph)를 구성합니다.

속성 그래프(attribution graph)는 단순히 “이 노드가 결과에 영향을 줬다”는 것을 보여주는 것이 아니라, 실제로 Claude가 특정 단어를 출력하는 과정에서 어떤 중간 개념을 떠올렸고, 그 개념이 또 다른 개념을 유도해 결론에 도달했는지를 구조적으로 보여줍니다. 예를 들어 “Dallas가 위치한 주의 수도는?”이라는 질문에 Claude가 “Texas → Austin”이라는 추론 단계를 거치는 모습을 시각적으로 확인할 수 있습니다. 이는 단지 정답이 “Austin”이라는 결과를 보는 것이 아니라, 모델이 스스로 결론에 이르는 과정을 해부하는 셈입니다.

이러한 분석 방법은 단지 모델을 이해하는 데 그치지 않고, 실제로 모델의 출력을 조작하거나 개입할 수 있는 가능성도 열어줍니다. 특정 특징(feature)을 억제하거나 새로운 특징을 삽입함으로써 Claude의 응답을 어떻게 바꿀 수 있는지를 실험할 수 있습니다. 이는 단순한 해석 도구를 넘어서, 모델 동작의 ‘디버깅 도구’로 활용될 수 있다는 점에서 그 의미가 큽니다.

Anthropic은 이 기술을 바탕으로 아래 두 편의 논문들을 발표했습니다. 이를 통해, 마치 뇌과학자들이 뇌의 신경회로를 해부하듯이, Claude의 내부 특징들과 연산 흐름을 추적하여 모델이 출력에 도달하는 과정을 분석했습니다:

  1. 회로 추적(Circuit Tracing): Claude 내부의 MLP 트랜스코더 특징(transcoder feature)들을 추적하여 단어 생성에 기여한 회로를 찾아냅니다. 상세 내용은 아래에서 확인할 수 있습니다:
  1. AI 생물학(Biology of a Language Model): 다국어 처리, 운율 있는 문장 생성, 수학적 추론, 환각(hallucination), 탈옥(jailbreaking) 대응 방식 등 다양한 사례를 통해 모델의 내부 사고 과정을 관찰합니다. 상세 내용은 아래에서 확인할 수 있습니다:


Anthropic은 Anthropic Fellow 프로그램 참가자들과 Decode Research의 협업으로 개발한 회로 추적 분석 도구를 오픈소스로 GitHub에 공개했으며, 누구나 Llama, Gemma 같은 공개 모델에서 직접 실험해볼 수 있도록 다양한 노트북과 웹 인터페이스를 제공하고 있습니다. 동시에 웹 기반의 Neuronpedia Interface를 통해 누구나 선택한 프롬프트에 대한 속성 그래프를 생성하고 관찰할 수 있습니다.

설치 및 사용 방법

Circuit Tracer는 아래 3가지 방법으로 사용해볼 수 있습니다.

Neuropedia의 웹 인터페이스 사용해보기

Neuronpedia 웹사이트를 통해 설치 없이 즉시 사용할 수 있습니다. + New Graph 버튼을 클릭해 직접 프롬프트를 입력하거나, 드롭다운 메뉴에서 기존 분석 그래프를 선택해 탐색할 수 있습니다.

튜토리얼 노트북 사용하기

Circuit Tracer는 Google Colab의 튜토리얼 노트북을 실행하여 사용해볼 수 있습니다. 이 노트북은 Google Colab에서 무료 GPU 환경으로 바로 실행할 수 있으며, 별도의 환경 설정 없이도 실험해볼 수 있습니다. 더 많은 예제는 GitHub 저장소의 Demos 디렉토리에서 확인할 수 있습니다.

각 예제들은 모델 해석 방식에 익숙하지 않은 사용자부터 심화 실험을 원하는 연구자까지 모두 활용할 수 있도록 구성되어 있습니다:

  • 기초 데모
    • demos/attribute_demo.ipynb: 회로를 찾고 시각화하는 기본적인 사용법을 보여주는 데모입니다.
    • demos/intervention_demo.ipynb: 특정 feature를 수정하거나 주입(intervention)하여 출력이 어떻게 달라지는지 실험하는 방법을 소개합니다.
  • 심화 데모
    • demos/gemma_demo.ipynb: Gemma 2 (2B) 모델에서 추출된 사전 분석된 그래프를 기반으로 상세한 분석을 수행합니다.
    • demos/gemma_it_demo.ipynb: instruction-tuned 된 Gemma 2 (2B) 모델의 그래프를 분석하며, 기본 모델에서 추출된 transcoder를 사용합니다.
    • demos/llama_demo.ipynb: Llama 3.2 (1B) 모델의 그래프를 탐색하며, 보다 다양한 회로 구조를 확인할 수 있습니다. (Colab에서는 실행 불가)

각 데모 노트북 상단에는 미리 주석이 달린 속성 그래프(attribution graph) 예제가 함께 포함되어 있으며, 이를 바탕으로 개입 실험을 통해 그래프의 정확성을 검증하는 방식으로 구성되어 있습니다. 이러한 데모들은 실제 모델의 추론(reasoning) 구조를 직관적으로 이해하는 데 큰 도움이 됩니다.

로컬에 설치하여 사용하기 (CLI)

마지막으로 다음과 같이 직접 Circuit Tracer GitHub 저장소를 복제하여 설치하고 사용할 수 있습니다:

git clone https://github.com/safety-research/circuit-tracer.git
cd circuit-tracer
pip install .

설치 후 명령줄 인터페이스(CLI)를 통해 전체 회로 추적 및 시각화 작업을 자동화된 3단계로 처리할 수 있습니다:

  1. Attribution 모델의 트랜스코더 특징(transcoder feature), 오류 노드, 입력 토큰, 출력 로짓(logit) 사이의 직접적 영향도를 계산해 속성 그래프(Attribution Graph)를 생성합니다.
  2. 그래프 파일 생성 영향도가 낮은 노드와 엣지를 제거한 후 시각화용 JSON 파일로 변환합니다.
  3. 로컬 서버 실행 웹 브라우저에서 결과 그래프를 시각화하고 상호작용할 수 있는 로컬 서버를 실행합니다.

예를 들어, 다음과 같이 실행할 수 있습니다:

circuit-tracer attribute \
  --prompt "The International Advanced Security Group (IAS" \
  --transcoder_set gemma \
  --slug gemma-demo \
  --graph_file_dir ./graph_files \
  --server

이 명령어는 Gemma 모델에 "The International Advanced Security Group (IAS"라는 프롬프트를 입력으로 제공하고, 그 내부 회로를 분석하여 결과를 ./graph_files에 저장한 뒤, 웹 브라우저에서 시각화할 수 있도록 로컬 서버를 실행합니다. (이 때 인터페이스는 논문에서 사용된 시각화 도구와 동일합니다.) 모델의 출력에 영향을 준 내부 특징들 간의 연결 관계를 직관적으로 탐색할 수 있게 해줍니다.

CLI 명령어의 상세한 사용법은 GitHub 저장소의 Command-Line Interface 섹션을 참고해주세요.

라이선스

Curcuit Tracer 프로젝트는 MIT License로 공개 및 배포되고 있습니다. 상업적 사용을 포함한 모든 사용이 자유롭지만, 저작권 고지와 라이선스 문구를 유지해야 합니다.

:scroll: Anthropic의 Tracing the thoughts of a large language model 글

:scroll: Anthropic의 Curcuit Tracer 프로젝트 오픈소스 발표 글

:github: Curcuit Tracer 프로젝트 GitHub 저장소

:framed_picture: Neuronpedia 시각화 도구 (Gemma2-2B)

더 읽어보기

:scroll: 회로 추적 기법(Circuit Tracing Methods)에 대한 논문

:scroll: AI 생물학(AI Biology Case Studies)에 대한 논문

:scroll: Anthropic CEO Dario Amodei의 칼럼 'The urgency of interpretability'




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요