Tailored news hub
homeSicurezza IA

Cos'è e come usare MLLM-Jailbreak-Bench per valutare gli LLM multimodali

Scopri come MLLM-Jailbreak-Bench valuta la sicurezza degli LLM multimodali contro attacchi dannosi, comprendendo le metriche chiave e i passaggi per l'installazione e l'avvio rapido.

Cos'è e come usare MLLM-Jailbreak-Bench per valutare gli LLM multimodali
#Framework#LLM#Open Source#Python#Sicurezza

Impara a utilizzare MLLM-Jailbreak-Bench, un framework di valutazione riproducibile, per misurare la propensione degli LLM multimodali a generare output dannosi. Esplora le categorie di attacco, le metriche (ASR, qualità del rifiuto, errore di calibrazione) e come interpretare i risultati per migliorare la sicurezza dei modelli.

Cosa fa MLLM‑Jailbreak‑Bench

MLLM‑Jailbreak‑Bench è un framework di valutazione riproducibile e indipendente dal modello che misura la facilità con cui gli LLM multimodali producono output dannosi. Copre cinque categorie di attacco—iniezione di immagini, iniezione audio, collusione testo‑immagine, jailbreak tramite OCR e leakage di prompt visivi—e fornisce tre metriche:

  • Tasso di successo dell’attacco (ASR) – frequenza con cui il modello obbedisce.
  • Qualità del rifiuto – se i rifiuti sono sostanziali.
  • Errore di calibrazione – quanto l’ASR è specifico dell’attacco rispetto ai fallimenti baseline.

Un ASR alto con un errore di calibrazione elevato segnala un modello difettoso, non un attacco ingegnoso, aiutando i professionisti a evitare falsi positivi e a concentrarsi sui veri gap di sicurezza. Lo strumento è utile per sviluppare MLLM, valutare difese e generare confronti in stile classifica.

Installazione

Il progetto è un pacchetto Python che richiede Python 3.10+. Clona il repository e installa in modalità editabile:

git clone https://github.com/pardcomper/mllm-jailbreak-bench
cd mllm-jailbreak-bench
pip install -e .

Avvio rapido

Un unico comando valuta un modello contro tutti gli attacchi usando il budget predefinito. Fornisci un ID modello HuggingFace e una directory di output. Avrai bisogno di una GPU con memoria sufficiente (le configurazioni più leggere richiedono molto meno dell’intera scansione del paper).

jbb run --target llava-1.5-7b --attacks all --out results/llava15/

Flusso di lavoro da riga di comando

Valuta un sottoinsieme di attacchi e poi aggrega i risultati in una classifica. Il primo comando indica nomi di attacchi specifici e imposta il numero di campioni avversariali per attacco. Il secondo legge tutti i risultati di esecuzione da una directory e scrive una tabella Markdown.

jbb run --target Qwen/Qwen2-VL-7B-Instruct --attacks ocr_jailbreak,text_image_collusion --n-per-attack 200 --out results/qwen2/
jbb leaderboard --results-dir results/ --out LEADERBOARD.md

API Python

Per uso programmatico, carica un target ed esegui il benchmark direttamente. load_target incapsula il tuo modello; puoi anche estendere BaseTarget.

from jbb import Benchmark, load_target

target = load_target("Qwen/Qwen2-VL-7B-Instruct", device="cuda")
bench = Benchmark(attacks=["text_image_collusion", "ocr_jailbreak"], n_per_attack=200)
report = bench.run(target)
print(report.summary())

Riproduzione dei risultati del paper

Un singolo script ricrea fedelmente i numeri pubblicati. Scarica il pool di prompt, genera in modo deterministico le immagini OCR, esegue ogni coppia modello‑attacco con il budget del paper e produce LEADERBOARD.md.

bash scripts/reproduce_paper.sh

Expected time on 8 × A100 80 GB is ~12 hours.

Attacchi, Difese e Configurazione

Usa --attacks per selezionare dalla tabella sottostante. I preset di budget (default,small,paper) controllano il numero di query; imposta --seed 0 per la riproducibilità. Abilita le difese di riferimento con --defenses:

  • filter – classificatore di input per testo+immagine.
  • self_critique – il modello rivede la propria risposta.
  • ratd – decodifica consapevole del rifiuto che condiziona la generazione dei token.
CategoryAttack nameWhat it does
Image‑injectionvis_prompt_injectionIstruzione malevola incorporata nell'immagine
Image‑injectiongradient_free_perturbPerturbazione dell'immagine effettuata esclusivamente via query
Text‑image collusionharmful_in_text_safe_imgTesto dannoso abbinato a un'immagine innocua
Text‑image collusionharmful_in_img_safe_textContenuto dannoso nascosto nell'immagine
OCR jailbreakocr_jailbreakIstruzione dannosa resa come testo a pixel
Audio injectionaudio_prompt_injectionIstruzione dannosa trasmessa come audio TTS
Visual‑prompt leakagesys_prompt_leakTentativi di estrarre il prompt di sistema

Limitazioni e Best Practices

Limitazioni: solo black‑box (nessun accesso al gradiente o allo stato interno); un'immagine o una clip audio per query; per nuovi modelli è necessario un adattatore BaseTarget; la calibrazione presuppone una baseline stabile; solo interazioni a turno singolo.

Best practices: utilizzare il budget paper e --seed 0 per garantire la comparabilità; esaminare l'errore di calibrazione insieme all'ASR per filtrare i modelli rumorosi; considerare le difese incluse come misure di rafforzamento relativo, non come protezioni pronte per la produzione; evitare di estendere l'inventario degli attacchi in modo casuale; basarsi sul riepilogo del benchmark per distinguere la vulnerabilità reale dal fallimento della baseline.

Articoli Correlati