
대규모 비전-언어 모델에서 숨겨진 상태 분석과 오토인코더를 사용하여 알려지지 않은 탈옥 공격을 탐지하며, 강력한 안전 모니터링을 위한 학습 및 평가 파이프라인을 제공합니다.
“Learning to Detect Unknown Jailbreak Attacks in Large Vision-Language Models” 의 공식 구현입니다.
이 저장소에는 프로젝트에서 사용된 데이터 처리, 은닉 상태 추출, 분류기 학습, 안전 패턴 오토인코더, 평가 코드가 포함되어 있습니다.
이 릴리스는 LLaVA-v1.6-Vicuna-7B 구현을 제공합니다. 파이프라인을 Qwen2.5-VL 또는 CogVLM에 적용하려면 모델별 입력 처리와 별도로 학습된 탐지기가 필요합니다.
실험에서는 다음 기본 모델을 사용합니다:
모델 가중치를 별도로 다운로드하여 다음 위치에 배치하십시오:
asset/weights/
.
├── asset/
│ ├── advbench/ # AdvBench images
│ ├── harmbench/ # HarmBench DirectRequest images
│ ├── GQA/ # GQA images
│ ├── HiddenStates/ # Extracted hidden states
│ └── weights/ # Model weights (not included)
├── Benchmarks/ # Evaluation benchmark metadata
├── vicuna/
│ ├── instructions/
│ │ ├── advbench.json
│ │ ├── GQA.json
│ │ └── harmbench.json # HarmBench DirectRequest metadata
│ ├── qa.py
│ ├── qa-baseline.py
│ └── train.py
├── autoencoder.py
├── llama3_guard.py
└── test.py
일부 스크립트는 자체 작업 디렉터리를 기준으로 한 상대 경로를 사용합니다. 아래에 표시된 디렉터리에서 명령을 실행하세요.
안전하지 않은 소스 데이터(AdvBench)와 안전한 소스 데이터(GQA)에 대해 모델을 쿼리합니다:
cd vicuna
python qa.py --dataset advbench
python qa.py --dataset GQA
cd ..
HarmBench DirectRequest 데이터는 동일한 인터페이스로 쿼리할 수 있습니다:
cd vicuna
python qa.py --dataset harmbench
cd ..
Llama Guard 3로 생성된 AdvBench 응답을 평가합니다:
python llama3_guard.py --file vicuna/instructions/advbench.json
AdvBench 및 GQA 학습/테스트 분할을 생성합니다:
cd vicuna/instructions
python process.py
cd ../..
vicuna/qa-baseline.py에 현재 구성된 평가 벤치마크에 대한 은닉 상태를 추출합니다:
cd vicuna
python qa-baseline.py
cd ..
cd vicuna
python train.py --train
python train.py --test
cd ..
python autoencoder.py
python test.py
| 데이터셋 | 역할 | 메타데이터 | 이미지 |
|---|---|---|---|
| AdvBench | 안전하지 않은 소스 데이터 | vicuna/instructions/advbench.json | asset/advbench/ |
| GQA | 안전한 소스 데이터 | vicuna/instructions/GQA.json | asset/GQA/ |
| HarmBench (DirectRequest) | 부록에 보고된 안전하지 않은 소스 실험 | vicuna/instructions/harmbench.json | asset/harmbench/ |
포함된 HarmBench DirectRequest 하위 집합은 320개의 이미지–요청 쌍을 포함합니다. harmbench.json의 이미지 경로는 저장소 기준 상대 경로이며 AdvBench와 동일한 레이아웃 규칙을 따릅니다.
ModelScope: detecpolo/Learning-to-Detect에서 평가 이미지를 다운로드하고, 다운로드한 asset/ 디렉터리를 저장소 루트에 복사하세요. 대응하는 벤치마크 JSON 파일은 이 저장소의 Benchmarks/ 아래에 제공됩니다.
데이터셋 출처, 공격 구성 및 실험 설정은 논문의 4.1절과 부록을 참조하세요.