Skip to content

MinSeok-log/llm-input-deviation-detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

llm-input-deviation-detection

LLM 입력 전단에서 정상 분포 기반 이탈 탐지를 수행하는 하이브리드 판정 구조


개요

LLM 기반 서비스에서 악의적 입력은 후단 모델에 도달하기 전에 걸러져야 합니다.
본 프로젝트는 공격 유형을 사전에 학습하지 않고, 정상 요청들이 형성하는 분포 중심을 기준으로 새로운 입력이 정상 서비스 범위를 벗어나는지를 판별하는 전단(Stage-1) 판정 구조를 구현하고 실험적으로 검증합니다.

코사인 거리 D(x)를 이탈 신호로, 키워드 판정 K(x)를 보조 신호로 결합한 하이브리드 판정 A(x)로 최종 차단 여부를 결정합니다.

A(x) = I[ D(x) > τ  OR  K(x) = 1 ]

구조

├── config.py                         # 임계값 τ, 모델 설정
├── config/keywords/
│   ├── en_policy_bypass.txt          # 정책 우회 키워드
│   ├── en_system_injection.txt       # 시스템 프롬프트 인젝션
│   ├── en_crime_domain.txt           # 범죄 도메인
│   └── en_social_engineering.txt     # 소셜 엔지니어링
├── src/
│   ├── model.py                      # HybridDetector 핵심 로직
│   ├── dataset.py                    # UltraChat / AdvBench 로더
│   ├── metrics.py                    # 평가 지표
│   └── visualize.py                  # UMAP 시각화
└── experiments/
    ├── hybrid_experiment.py          # Stage-1 메인 실험
    ├── baseline_experiment.py        # Distance-only / Keyword-only 비교
    └── attacker_loop_experiment.py   # Stage-2 강도 곡선 실험

판정 구조

신호 수식 설명
거리 판정 D(x) = 1 - cos(E(x), μ) 정상 중심 μ로부터의 코사인 거리
키워드 판정 K(x) ∈ {0, 1} 운영자 정의 키워드 목록 매칭
하이브리드 판정 A(x) = I[D(x)>τ ∨ K(x)=1] OR 결합 최종 판정
  • D(x) ∈ [0, 2] 범위이며, D(x) > 1은 자동 차단
  • τ = Q_0.85(D) — 정상 데이터 분포의 85분위수
  • μ 계산에 공격 데이터 미포함 (비지도 설계)

키워드 카테고리

카테고리 키워드 수
사이버공격/악성코드 28
사기/금융범죄 24
무기/폭력 26
허위정보/선전 19
약물/화학 22
혐오/차별 18
자해/자살 17
프라이버시/스토킹 21
아동착취 16
소셜엔지니어링 22
합계 213

실험 결과

데이터셋: UltraChat 정상 2,000개 / AdvBench 공격 520개
임베딩 모델: sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2

방법 Accuracy Precision Recall F1
거리 판정 단독 0.7556 0.4048 0.3923 0.3984
키워드 판정 단독 0.8171 0.5845 0.3923 0.4695
하이브리드 판정 0.7536 0.4318 0.6154 0.5075

회색지대 분석 (τ = 0.7938, 공격 총 520개)

구분 비율
거리 기준 회색지대 D(x) ≤ τ 316 60.77%
키워드 추가 회수 K(x)=1 116 22.31%
완전 우회 D(x)≤τ, K(x)=0 200 38.46%
  • 전단 통과 200개 중 99.5% 후단 LLM이 거절/안전 응답으로 처리

설치 및 실행

pip install -r requirements.txt

# Stage-1 하이브리드 실험
python experiments/hybrid_experiment.py

# Stage-2 강도 곡선 실험
python experiments/attacker_loop_experiment.py

# UMAP 시각화
python src/visualize.py

라이선스

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages