본문으로 건너뛰기

로컬 AI 모델 내부를 들여다보는 ModelMRI

ModelMRI가 로컬 모델의 attention, 활성값, agent trace를 측정하고 공유하는 방법을 정리했습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

ModelMRI는 로컬에서 실행 중인 LLM, VLM, robot policy와 agent trace를 한 화면에서 조사하는 Chrome DevTools 형태의 MIT 라이선스 도구입니다. Attention arc를 그리는 데서 멈추지 않고 head 제거에 따른 KL 변화, Activation Patching의 층×위치별 정답 복원, SAE feature steering, robot-camera patch attention을 측정하며, 근거가 약하거나 비교가 성립하지 않는 경우 결과를 거부합니다. Qwen3-1.7B에서는 L0 H3 제거로 `p(" Paris")`가 0.539에서 0.029로 떨어졌고, PushT frame에서는 top 5% patch attention mass가 vision layer 0의 27%에서 layer 11의 60%로 증가했습니다. 분석 결과는 weight 없는 `.mri` 파일로 공유할 수 있으며, `verify`, `sweep`, `diff` 명령으로 재현성·분산·양자화 전후 변화를 확인할 수 있지만 alpha 단계의 debugging·research 도구로 분류됩니다.

섹션별 상세

01
ModelMRI는 로컬에서 실행 중인 LLM, VLM, robot policy의 내부 상태와 agent 실행 단계를 한 화면에서 확인하는 MIT 라이선스 도구입니다. `pip install modelmri && modelmri serve`로 localhost 앱을 띄우며, cloud 계정·telemetry·API key 없이 사용자의 디스크와 하드웨어에서 처리합니다. 8 GB급 노트북 GPU를 목표로 삼고 CPU, NVIDIA, AMD, Intel, Apple silicon을 자동 감지해 실행 가능 범위를 측정합니다.
bash
pip install modelmri && modelmri serve # → http://localhost:5900

ModelMRI를 설치한 뒤 localhost의 웹 애플리케이션을 실행합니다.

어두운 테마의 로컬 모델 선택 창
Screenshot모델 선택 창에서 `On this machine`, `HuggingFace`, `Ollama` 소스를 구분하고 디스크에 이미 있는 모델을 탐색합니다. 로컬 모델의 실행 가능 여부를 확인한 뒤 다운로드 또는 로딩 경로를 선택하는 ModelMRI의 local-first 흐름을 보여줍니다.
밝은 테마의 로컬 모델 선택 창
Screenshot밝은 테마의 picker 화면에는 작업 디렉터리를 스캔하며 모델 목록을 찾는 과정이 표시됩니다. `On this machine`, `HuggingFace`, `Ollama` 탭을 통해 이미 저장된 모델과 외부 모델 소스를 구분하는 사용 흐름을 확인할 수 있습니다.
02
attention 화면은 각 층과 head의 가중치를 token 간 arc로 표시하고, 단순한 시각화에 그치지 않고 head를 제거한 뒤 출력 변화를 재실행해 중요도를 순위화합니다. Qwen3-1.7B의 예시에서는 L0 H3를 0으로 만들자 `p(" Paris")`가 0.539에서 0.029로 바뀌었고, 18회의 forward pass와 5.6초가 필요했습니다. ModelMRI는 zeroing, mean replacement, resampling이라는 baseline을 구분하며, 같은 모델의 layer 0에서 baseline 간 Spearman 상관이 0.81에서 0.91이었다는 수치와 resampling 분산을 함께 표시합니다.
어두운 테마의 ModelMRI attention 화면
ScreenshotQwen/Qwen3-1.7B prompt 실행 화면에서 token 위에 마우스를 올리면 이전 token으로 향하는 attention arc가 표시됩니다. 생성된 `Paris` token과 `capital`, `France` 사이의 연결을 layer와 head 단위로 탐색하는 기능을 시각적으로 보여줍니다.
밝은 테마의 ModelMRI attention 화면
Screenshot밝은 테마에서도 동일한 token strip과 attention arc 인터랙션을 확인할 수 있습니다. 실행 상태, 생성 token, attention 연결을 한 화면에 배치해 각 head가 어느 앞선 token을 참조했는지 살펴보는 UI를 보여줍니다.
03
Activation Patching은 정답을 아는 clean prompt의 중간 활성값을 정답을 모르는 corrupt prompt에 층×위치별로 주입해 정보가 복원되는 지점을 찾습니다. Eiffel Tower와 Colosseum prompt를 비교한 세 모델에서 attention, MLP, residual의 최대 지점이 서로 달랐고, Qwen3-1.7B는 앞선 두 모델의 패턴을 깨뜨렸습니다. 점수는 KL이 아니라 부호가 있는 복원량이어서 1.0을 넘거나 정답에서 더 멀어질 수 있으며, 자연어 prompt 쌍이 같은 token 길이를 만들지 못하거나 서로 다른 token을 예측하지 않으면 측정을 거부합니다.
어두운 테마의 activation patching 결과 그리드
Chart층과 token 위치를 축으로 하는 activation patching grid가 실행에 따라 채워지는 모습입니다. 각 cell은 clean prompt의 활성값을 corrupt prompt에 주입했을 때 정답 차이가 얼마나 복원되는지 나타내며, ModelMRI가 가장 영향력 있는 위치를 찾는 과정을 보여줍니다.
밝은 테마의 activation patching 결과 그리드
Chart밝은 테마의 patching 화면에서 층×위치별 측정 cell이 순차적으로 나타납니다. 파란색 복원과 붉은색 악화로 clean answer와 corrupt answer 사이의 방향을 구분하는 분석 결과를 시각화합니다.
04
SAE feature 브라우저는 특정 층의 해석 가능한 feature를 token별로 표시하고, 선택한 feature의 활성값을 낮춘 A/B 실행으로 출력 변화를 확인합니다. GPT-2 layer 8 예시에서 `#5856` feature는 마지막 prompt token에서 activation 35.55로 가장 강하게 반응했고, 이를 끄자 `Paris, France`라는 baseline 출력이 달라졌습니다. 도구는 SAE의 centered 또는 uncentered 입력 규약과 `b_dec` 처리 여부를 검사하며, 복원이 되지 않으면 FVU 13,579처럼 그럴듯한 결과를 내놓지 않고 시각화를 거부합니다.
05
agent recorder는 두 줄 수준의 instrumentation으로 LLM 호출, tool call, subagent를 시간순 블록으로 기록하고 실패한 단계에서 정확한 input, output, token 수와 error를 열어 보여줍니다. `modelmri.record.instrument_anthropic()`을 사용하면 hosted API를 호출하는 agent도 기록할 수 있지만, 모델 내부 attention을 보려면 별도로 실행 가능한 local HuggingFace 모델이 필요합니다. 따라서 GPT-4, Claude, Gemini의 내부 활성값은 접근하지 못해도 해당 API를 사용한 agent의 실행 경로는 기록할 수 있습니다.
python
from modelmri.record import trace, step
with trace("fix-failing-tests"):
    step("llm_call", name="plan", input=prompt, output=answer, tokens_in=912)
    with step("subagent", name="auth-fixer"):
        step("tool_call", name="pytest", output="17 passed")

LLM 호출과 도구 호출을 중첩된 단계로 기록해 agent 실행 타임라인을 만듭니다.

06
robot policy 기능은 실제 SmolVLA checkpoint의 vision tower에 robot-camera frame을 넣고 image patch에 attention을 다시 칠합니다. PushT frame에서 top 5% patch가 차지한 attention mass가 vision layer 0의 27%에서 layer 6의 56%, layer 11의 60%로 증가해 깊은 층에서 시선이 좁아지는 사례를 제시합니다. 공개 LeRobot dataset을 디스크에서 읽으므로 robot hardware 없이 perception을 확인할 수 있고, action expert는 torch와 numpy 의존성 충돌 때문에 별도 sidecar 환경에서 실행됩니다.
07
ModelMRI는 HuggingFace cache, 일반 폴더, GGUF, Ollama와 사용자가 만든 `nn.Module`, TorchScript를 다루며, arbitrary model에는 attention 대신 layer별 output과 activation 통계를 제공합니다. `modelmri scan`은 pickle을 unpickle하지 않고 opcode stream을 읽어 load 시 실행되는 `os.system`, `eval`, embedded executable, zip bomb 등을 찾고 위험 파일의 로딩을 막습니다. state_dict만 전달해 아키텍처를 추측하는 경우에는 네트워크 구조를 알 수 없다는 이유로 거부하며, 비유한 값은 통계에서 제외해 최초 NaN 발생 지점을 숨기지 않습니다.
08
공유와 검증은 `.mri` 파일을 중심으로 설계되어 tokens, attention, generation, note와 activation-patching trace를 weight 없이 저장합니다. 약 54 KB의 파일을 `modelmri open`으로 torch나 GPU 없이 약 0.3초 만에 열 수 있고, `modelmri verify`는 현재 머신에서 generation, attention, patching을 재실행해 재현 여부와 비검증 항목을 구분합니다. `modelmri sweep`는 단일 prompt의 일화적 수치를 median, IQR, 표본 수, top-k 비율로 확장하고, `modelmri diff`는 양자화 전후 generation, head ranking, attention, patching의 변화를 CI에서 비교합니다.

용어 해설

활성값 패칭(Activation Patching)
한 입력에서 얻은 중간 활성값을 다른 입력의 같은 위치에 주입해 모델의 예측 차이가 어느 층과 토큰 위치에서 복원되는지 측정하는 기법입니다. ModelMRI는 층×위치별 결과를 계산하고 같은 노름의 무작위 값과 비교해 우연한 복원을 구분합니다.
인과적 제거(Causal Ablation)
모델 내부 구성 요소를 제거하거나 대체한 뒤 원래 실행과 출력이 얼마나 달라지는지 측정하는 방법입니다. ModelMRI는 특정 attention head를 0으로 만들고 다시 추론해 KL divergence와 정답 토큰 확률의 변화를 계산함으로써 예측에 실제로 기여한 head를 순위화합니다.
희소 오토인코더(Sparse Autoencoder)
신경망의 다차원 활성값을 소수의 해석 가능한 feature 조합으로 재구성하도록 학습한 모델입니다. ModelMRI는 모델과 SAE의 활성값 규약이 실제로 복원되는지 확인한 뒤 feature를 끄거나 조절해 특정 개념이 출력에 미치는 변화를 비교합니다.
Logit Lens
Transformer의 각 중간 층 표현을 최종 출력층에 통과시켜 해당 시점의 토큰 예측을 추정하는 분석 기법입니다. SAE가 없는 모델에서도 사용할 수 있어 중간 표현이 어떤 토큰을 선호하는지 층별로 확인하는 대안으로 쓰입니다.
Eager Attention
attention 가중치를 실제 행렬로 계산하고 보존하는 실행 방식입니다. SDPA나 FlashAttention은 가중치를 메모리에 materialize하지 않기 때문에 ModelMRI가 attention을 시각화하려면 `attn_implementation="eager"`를 사용해야 하며, 그 대신 실행 속도가 느려집니다.

기술

  • ModelMRI
  • Python
  • PyTorch
  • TorchScript
  • GGUF
  • HuggingFace
  • Ollama
  • WebGL
  • TransformerLens
  • BertViz
  • nnsight
  • Neuronpedia
  • SAELens
  • Langfuse
  • Phoenix
  • LangSmith
  • promptfoo
  • Rerun
  • Foxglove
  • SmolVLA
  • LeRobot
  • SDPA
  • FlashAttention
  • safetensors

활용 사례

  • 실행 중인 local LLM의 token별 attention과 head 중요도 조사
  • Activation Patching으로 사실 정보가 저장되고 전달되는 층과 위치 측정
  • SAE feature를 끄거나 조절해 특정 개념이 출력에 미치는 변화 확인
  • 실패한 agent 단계의 LLM·tool·subagent 호출 추적
  • SmolVLA가 robot-camera frame에서 주목한 image patch 분석
  • 직접 학습한 nn.Module의 layer별 activation 통계와 dead unit, saturation, NaN 확인
  • `.mri` 파일로 모델 내부 분석 결과를 weight 없이 동료와 공유
  • 양자화 전후 head ranking과 patching 결과를 CI에서 비교
  • 모델 checkpoint의 load-time 악성 실행 payload 검사

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 26.수집 2026. 08. 26.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.