Captum · Model Interpretability for PyTorch

Captum · Model Interpretability for PyTorch

Meta (PyTorch team) · 코딩

Captum은 Meta가 공개한 무료 오픈소스 라이브러리로, PyTorch 모델의 예측 근거를 들여다보게 해준다. 어떤 입력 특성과 뉴런, 층이 출력에 영향을 줬는지 귀인 알고리즘으로 보여준다.

Captum · Model Interpretability for PyTorch 미리보기

Captum · Model Interpretability for PyTorch 소개

About

Captum이란

Captum은 PyTorch 모델 해석을 위한 파이썬 라이브러리다. 목표는 하나다. 이미 학습을 마친 네트워크가 실제로 무엇에 반응하는지 알아내는 것. 이름은 라틴어로 이해를 뜻하고, 하는 일도 그와 같다. 가진 모델에 귀인 알고리즘을 붙이면 특정 예측에 각 입력 특성과 뉴런, 층이 얼마나 기여했는지를 숫자로 돌려준다.

쓰임새는 모델이 잘못 판단했는데 이유를 아무도 설명하지 못할 때 드러난다. 분류기가 영상을 이상으로 찍고, 추천 시스템이 계속 같은 이상한 상품을 밀고, 언어 모델이 근거도 없이 자신 있게 답한다. Captum을 쓰면 추측 대신 순전파 안을 들여다볼 수 있다.

한계는 범위에 있다. 이건 라이브러리이지 앱이 아니다. 파이썬과 PyTorch 코드를 다룰 줄 알아야 하고, 결과는 직접 해석하거나 노트북에서 그려야 하는 텐서로 온다. 열어볼 수 있는 호스팅 대시보드는 없다. 팀은 v0.8.0 이후 시각화 인터페이스인 Captum Insights를 폐기했으므로 클릭 몇 번으로 보는 도구를 기대하면 실망하게 된다.

시작하기

  1. pip install captum으로 설치한다. conda를 쓴다면 conda install captum -c pytorch도 된다. 버전 0.9.0은 파이썬 3.10 이상과 PyTorch 2.3 이상을 요구한다.
  2. 학습된 모델을 불러와 평가 모드로 전환한다. 대부분의 알고리즘은 네트워크 구조를 건드릴 필요가 없다.
  3. 알고리즘을 골라 모델을 넘긴다. 기울기 기반 귀인이라면 IntegratedGradients(model)이 첫 선택지다.
  4. 입력 배치와 함께 attribute()를 호출한다. 알고리즘이 기준 입력을 요구하면 0으로 채운 텐서 같은 값을 준다.
  5. 돌려받은 귀인 값을 살피고, 수렴 차이를 요청했다면 함께 확인한다. 점수는 입력 옆에 나란히 그려 본다.

제품 정보

Captum · Model Interpretability for PyTorch의 요금, 지원 플랫폼, 성능을 한눈에 확인해 보세요.

무료 플랜예
유료 플랜Free (open source, BSD 3 Clause)
플랫폼Python library; runs on CPU, GPU and distributed PyTorch setups
개발사Meta (PyTorch team)
카테고리코딩
출시일Jun 2020
최근 업데이트Apr 2026
웹사이트 방문 수7.2K
웹사이트 글로벌 순위2.9M
API 제공 여부예

추천 대상

이 도구가 가장 잘 맞는 사용자, 작업, 상황입니다.

사용자

  • 머신러닝 엔지니어
  • 해석 연구자
  • 모델을 운영하는 애플리케이션 엔지니어

작업

  • 틀린 예측 원인 추적
  • 지름길 학습 여부 확인
  • 뉴런과 층 비교
  • 학습 데이터 감사

활용 상황

  • 모델 리뷰 회의 준비
  • 대규모 언어모델 연구
  • 출시 전 견고성 테스트

주요 기능

귀인 알고리즘

Captum은 방법을 기울기 기반과 교란 기반 두 갈래로 나눈다. 기울기 계열에는 Saliency, InputXGradient, IntegratedGradients, DeepLift, GradientShap, GuidedBackprop, Guided GradCam이 있고, 교란 계열에는 FeatureAblation, Occlusion, ShapleyValueSampling, Lime이 있다. 두 갈래를 한곳에 모아 두면 결과를 교차 확인할 수 있다. 기울기 기법과 교란 기법이 같은 픽셀을 가리키면 특성 귀인의 신뢰가 올라간다. 모델 디버깅 자리에도 느낌이 아니라 구체적인 설명을 들고 갈 수 있다는 뜻이다.

뉴런과 층 귀인

특성 귀인은 모델이 어디를 봤는지 알려준다. 뉴런과 층 귀인은 그 일이 네트워크 어디에서 일어났는지 알려준다. LayerConductance, LayerIntegratedGradients, LayerLRP 그리고 대응하는 뉴런 버전은 지정한 층의 활성값을 평가한다. 망가진 예측을 구조상의 한 지점까지 거슬러 추적할 수 있다.

LLM용 귀인 래퍼

LLMAttribution과 LLMGradientAttribution은 기존 알고리즘을 Hugging Face 계열 언어모델의 토큰 시퀀스에 맞게 감싼 것이다. 생성된 답변에 프롬프트의 어떤 토큰이 영향을 줬는지 보여주고, 점수를 매기기 전에 토큰을 단어나 구로 묶을 수도 있다. LLM 귀인은 순전파 한 번보다 시간이 오래 걸리므로 추론 비용을 염두에 둬야 한다.

개념과 영향 분석

개념 모듈은 TCAV를 구현한다. 줄무늬나 털 같은 개념이 한 클래스에 중요한지, 활성값 위에서 작은 분류기를 학습해 확인하는 방식이다. 영향 모듈은 TracIn 같은 추정기를 더해 어떤 학습 샘플이 예측을 형성했는지 묻는다. 둘 다 연구 흐름에 맞춰져 있고 간단한 점검용은 아니다.

견고성 테스트

견고성 모듈은 FGSM, PGD, AttackComparator, MinParamPerturbation을 제공한다. 적대적 예제를 만들고, 공격을 나란히 비교하고, 레이블을 뒤집는 가장 작은 교란을 찾을 수 있다. 귀인과 함께 쓰면 자연스럽다. 기울기 점검과 공격 점검을 모두 통과한 특성이라면 주장의 무게가 더 실린다.

설명 품질 지표

불충실도와 민감도 지표는 귀인 값 묶음이 얼마나 믿을 만한지 추정한다. 그럴듯해 보인다는 이유로 히트맵을 믿는 대신, 입력을 교란했을 때 설명이 모델과 얼마나 어긋나는지 수치로 재고 같은 샘플에서 알고리즘끼리 비교할 수 있다.

장단점

장점

  • 모델을 고치지 않아도 된다: 대부분의 알고리즘이 PyTorch `nn.Module`을 그대로 받는다. 설명하려고 재학습하거나 구조를 바꿀 필요가 없다.
  • 알고리즘 범위가 넓다: Saliency부터 LRP, Shapley 값, TCAV까지 60개가 넘는 귀인 클래스가 같은 임포트 경로에 있다.
  • 결과를 검증할 수 있다: IntegratedGradients는 수렴 차이를 돌려주고 라이브러리 자체에 불충실도와 민감도 지표가 들어 있다. 설명은 가정이 아니라 점검 대상이 된다.
  • 설계부터 멀티모달: 같은 API로 이미지 텐서, 텍스트 토큰 입력, 오디오, 시계열을 다룬다. 프로젝트를 옮겨도 코드 스타일이 하나로 유지된다.
  • 무료에 관대한 라이선스: BSD 3 Clause라서 상용 코드에 넣을 때도 누구에게 허락을 구할 필요가 없다.

단점

  • 학습 부담이 크다: 40가지가 넘는 알고리즘 중에서 고르려면 각 방법의 전제를 이해해야 한다. 무엇을 골라야 하는지는 라이브러리가 알려주지 않는다.
  • 화면이 없다: Captum Insights는 v0.8.0 이후 폐기됐다. 뭔가를 보려면 직접 그리는 코드를 써야 한다.
  • 일부 기법은 계산이 무겁다: 교란 계열 알고리즘과 LLM 귀인은 샘플마다 순전파를 여러 번 돌린다. 모델이 커지면 비용이 빠르게 늘어난다.
  • PyTorch 지식이 필요하다: PyTorch 밖의 사용자를 위한 프레임워크 독립 래퍼가 없고, 출력도 가공되지 않은 텐서다. TensorFlow나 JAX 팀은 모델 코드를 재사용할 수 없고, 파이썬을 못 쓰는 사람에게는 진입점이 없다.

자주 묻는 질문

PyTorch 모델의 예측을 설명하는 라이브러리다. 각 입력 특성과 뉴런, 층이 출력에 얼마나 기여했는지 평가한다. 디버깅, 모델 검토, 네트워크의 판단 과정 연구에 쓸 수 있다.