lyramakesmusic/neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
무엇인가
대규모 언어 모델(Qwen3.5-4B)의 내부 "뉴런"을 탐색하는 도구입니다. 텍스트 생성 중 각 뉴런을 인위적으로 강화하거나 억제할 때 어떤 일이 발생하는지 체계적으로 테스트하고, 모든 실험을 저장하며, 모델의 대화형 3D 보기로 결과를 표시합니다.
작동 방식
프로젝트는 두 부분으로 나뉩니다:
- 스윕 — GPU 서버에서 실행되는 배치 파이프라인. 레이어의 모든 뉴런을 측정된 양만큼 위/아래로 밀고, 텍스트를 생성하고, 출력을 기록합니다.
- 탐색기 — 자신의 머신에서 모델을 로드하고 모든 스윕 결과를 탐색하고 라이브 실험을 실행하며 발견한 내용에 대해 AI 어시스턴트와 채팅할 수 있는 로컬 웹 앱.
탐색기(웹 앱)
localhost:8791에서 실행됩니다. 스윕의 출력 파일을 읽고 모델을 로컬(Apple silicon, NVIDIA GPU 또는 CPU)로 로드하여 라이브 상호 작용을 수행합니다. 5개의 패널이 있습니다:
- 맵 — 모델 레이어의 3D 보기; 각 뉴런은 점입니다. 호버링하면 해당 뉴런이 무엇을 향해 스티어링하는지와 예측하는 토큰이 표시됩니다. 클릭하면 세부 정보가 열립니다. 내부 구조가 유사한 뉴런은 서로 옆에 배치됩니다.
- 목록 — 특정 단어 주변에 얼마나 강하게 클러스터링되는지에 따라 뉴런이 순위가 매겨지며, 무작위 기준선과 비교됩니다. 토큰을 검색하거나 자신의 텍스트를 실행하여 어떤 뉴런이 활성화되는지 확인할 수 있습니다.
- 뉴런 — 단일 뉴런에 대해: 다양한 용량에서 스티어링된 텍스트 생성, 3자 채팅(아래로 스티어링 / 중립 / 위로 스티어링), 다른 뉴런과의 연결, 이름.
- 임베딩 — 레이어 실험의 UMAP 투영으로, 뉴런, 프롬프트, 용량 또는 종류로 색상이 지정됩니다.
- Claude —
claude명령줄 도구(설치 및 로그인된 경우)를 사용하는 채팅으로, 탐색기가 도구 서버 역할을 합니다. Claude는 뉴런 데이터를 읽고, 라이브 모델을 실행(스티어링, 활성화, 다음 토큰 확률, 절제)하고, 맵과 목록을 탐색하고, 파일 및 셸 도구를 사용할 수 있습니다. 자신의 머신에서만 응답합니다.
스윕(데이터 파이프라인)
수정된 vLLM 추론 엔진을 사용하여 CUDA GPU 포드에서 실행됩니다. 주요 단계:
- 설정 — 수정된 vLLM, 종속성 및 모델을 설치합니다.
- 뉴런 통계 — 뉴런별 통계 계산: 활성화 극값, 다운 프로젝션 열, 잔차 노름.
- 메인 스윕 — 각 뉴런에 대해 뉴런을 위/아래로 밀어 텍스트를 생성합니다. 용량은 레이어를 떠나는 잔차 노름 중앙값의 분수입니다: 세 가지 프롬프트("who", "snake", "orange") 각각 세 가지 용량(−0.7, +0.5, +0.8), +3의 "자유" 조건, 프롬프트당 하나의 스티어링 없는 기준선.
- 깊이 스윕 — 여러 레이어에 걸친 무작위 하위 집합 스윕.
지원 스크립트는 순위(독특한 단어, 대조군 대비 클러스터 질량), "스티어링 렌즈"(각 뉴런이 다음 토큰 확률을 어떻게 변경하는지), 레이어별 깊이 보고서, 단어 이동 점수, 병합된 샤드, 두 추론 엔진 간의 동등성 검사, 처리량 벤치마크, 탐색기가 사용하는 캐시된 데이터(임베딩, 레이아웃, 연결 — 각 뉴런의 위/아래 24개의 가장 강한 링크)를 생성합니다.
참고 사항
research_log.md에는 프로젝트의 발견 사항과 추론이 저장되어 있습니다. NOTES.md에는 소스 노트가 저장되어 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트