Mithridatium: 사전 학습된 머신러닝 모델 무결성 검증을 위한 오픈소스 툴킷

발행: (2025년 12월 3일 오전 11:53 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

Why Mithridatium?

오늘날 ML 생태계는 사전 학습된 모델이 안전하다고 가정합니다. 실제로는 모델 파일 자체가 조용한 공격 벡터가 될 수 있습니다:

  • 오염된 학습 데이터
  • 특정 입력에 대해 활성화되는 숨겨진 트리거
  • 조작된 가중치
  • 예기치 않은 런타임 동작을 일으키는 손상된 체크포인트

Mithridatium은 학술 연구에서 영감을 얻었지만 실제 사용을 위해 단순화된 모델 중심 방어를 통해 이러한 위험을 평가하는 명령줄 워크플로를 제공합니다.

Offline Usage

설치가 완료되면 Mithridatium은 완전히 오프라인으로 실행될 수 있습니다.

필요한 것:

  1. .pth 모델 파일
  2. 로컬 데이터셋 디렉터리 (STRIP은 선택 사항, 구성에 따라 MMBD는 필요)

이 덕분에 제한된 환경, 에어갭 머신, 혹은 보안이 강화된 내부 ML 파이프라인에 적합합니다.

Installation

pip install mithridatium

최신 릴리스로 업그레이드:

pip install --upgrade mithridatium

Implemented Defenses

MMBD (Maximum Mean Backdoor Detection)

MMBD는 합성된 클래스 최적화 이미지를 평가하여 백도어가 삽입된 모델에서 흔히 나타나는 비정상적인 활성화 패턴을 탐지합니다.

Features

  • 클래스별 고유값 점수
  • 정규화된 이상 분포
  • 고전적인 가설 검정 (p‑value)
  • 결정적인 판정

Example invocation

mithridatium detect --model model.pth --defense mmbd --arch resnet18 --data cifar10

STRIP (Strong Intentional Perturbation)

STRIP은 내부 아키텍처 세부 정보를 필요로 하지 않는 블랙박스 방어입니다. 동일 입력의 강하게 변형된 버전에 모델을 노출시켰을 때 예측 엔트로피를 평가합니다. 백도어가 삽입된 모델은 변형 시 비정상적으로 낮은 엔트로피를 보이는 경향이 있습니다.

Features

  • 변형된 샘플에 대한 엔트로피 계산
  • 샘플링 및 변형 유틸리티
  • 요약 메트릭 (평균, 최소, 최대 엔트로피)
  • 통합 보고 스키마에의 통합

Example invocation

mithridatium detect --defense strip --model model.pth --data cifar10 --arch resnet18

Recent Advancements

  • STRIP Core Utility – 엔트로피 스코어링, 변형 생성, 장치 안전 실행(CPU/MPS/CUDA)을 처리하는 모듈식 구현.
  • CLI Integration – STRIP을 이제 MMBD와 동일하게 호출할 수 있으며, 통합 보고 및 JSON 출력이 지원됩니다.
  • Output Schema Normalization – 모든 방어를 단일 보고 형식으로 표준화하여 생태계 통합을 용이하게 함.
  • End‑to‑End CLI Tests – 전체 테스트 커버리지를 제공하여 서브프로세스 실행 시 충돌 없이 STRIP이 정상 동작함을 보장.

What’s Next

  • 문서 개선
  • 개발자 노트 추가
  • 보고서 요약 정제
  • 검증 및 오류 메시지 강화

다음 해까지는 새로운 방어 기능이 추가되지 않을 예정이며, 도구의 유지 보수성과 접근성을 다듬는 데 집중할 예정입니다.

Try it Yourself

프로젝트는 오픈소스로 여기에서 확인할 수 있습니다: mithridatium

기여, 이슈, 피드백을 언제든 환영합니다.

사전 학습된 모델을 다루고 있다면—연구, 배포, 보안 등—무조건 무결성을 가정해서는 안 됩니다. Mithridatium은 모델의 무결성을 검증하도록 도와줍니다. 자세한 설명, 방어 이론, 사용 예시는 저장소의 README에 포함되어 있습니다.

Back to Blog

관련 글

더 보기 »

계정 전환

@blink_c5eb0afe3975https://dev.to/blink_c5eb0afe3975 여러분도 알다시피 저는 다시 제 진행 상황을 기록하기 시작했으니, 이것을 다른…