
「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 および付録を参照してください。