Tailored news hub
homeSeguridad IA

Qué es MLLM-Jailbreak-Bench y cómo evaluar la seguridad de LLM multimodales

Descubre cómo MLLM-Jailbreak-Bench mide la vulnerabilidad de los LLM multimodales a ataques dañinos y cómo usarlo para mejorar su seguridad.

Qué es MLLM-Jailbreak-Bench y cómo evaluar la seguridad de LLM multimodales
#Código Abierto#Framework#LLM#Python#Seguridad

Aprende sobre MLLM-Jailbreak-Bench, una herramienta esencial para evaluar la seguridad de los Modelos de Lenguaje Grandes Multimodales (MLLM). Entiende sus métricas clave como ASR, calidad de rechazo y error de calibración, y cómo utilizarlas para identificar vulnerabilidades reales y evitar falsos positivos. Ideal para desarrolladores y profesionales de seguridad.

Qué hace MLLM‑Jailbreak‑Bench

MLLM‑Jailbreak‑Bench es un marco de evaluación reproducible e independiente del modelo que mide con qué facilidad los LLM multimodales producen resultados dañinos. Cubre cinco categorías de ataque —inyección de imágenes, inyección de audio, colusión texto‑imagen, jailbreak mediante OCR y fuga de indicaciones visuales— y proporciona tres métricas:

  • Tasa de éxito del ataque (ASR) – con qué frecuencia el modelo cumple.
  • Calidad del rechazo – si los rechazos son sustantivos.
  • Error de calibración – cuánto de la ASR es específica del ataque frente a fallos de referencia.

Una ASR alta con un error de calibración alto indica un modelo roto, no un ataque inteligente, lo que ayuda a los profesionales a evitar falsos positivos y centrarse en las brechas de seguridad reales. La herramienta es útil para desarrollar MLLM, evaluar defensas y generar comparaciones tipo tabla de clasificación.

Instalación

El proyecto es un paquete de Python que requiere Python 3.10 o superior. Clona el repositorio e instálalo en modo editable:

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

Inicio rápido

Un solo comando evalúa un modelo contra todos los ataques utilizando el presupuesto predeterminado. Proporciona un ID de modelo de HuggingFace y un directorio de salida. Necesitarás una GPU con suficiente memoria (las configuraciones más ligeras requieren mucho menos que el barrido completo del artículo).

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

Flujo de trabajo por línea de comandos

Evalúa un subconjunto de ataques y luego agrega los resultados en una tabla de clasificación. El primer comando apunta a nombres de ataque específicos y establece el número de muestras adversarias por ataque. El segundo lee todos los resultados de ejecución de un directorio y escribe una tabla 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 de Python

Para uso programático, carga un objetivo y ejecuta el benchmark directamente. load_target envuelve tu modelo; también puedes crear una subclase de 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())

Reproducción de los resultados del artículo

Un único script recrea con precisión las cifras publicadas. Descarga el conjunto de prompts, genera imágenes OCR de manera determinista, ejecuta todos los pares modelo‑ataque con el presupuesto del artículo y genera LEADERBOARD.md.

bash scripts/reproduce_paper.sh

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

Ataques, defensas y configuración

Usa --attacks para seleccionar de la tabla inferior. Los presupuestos predefinidos (default, small, paper) controlan la cantidad de consultas; establece --seed 0 para reproducibilidad. Habilita las defensas de referencia con --defenses:

  • filter – clasificador de entrada para texto+imagen.
  • self_critique – el modelo revisa su propia respuesta.
  • ratd – decodificación consciente del rechazo que sesga la generación de tokens.
CategoríaNombre del ataqueQué hace
Inyección de imagenvis_prompt_injectionInstrucción maliciosa incrustada en la imagen
Inyección de imagengradient_free_perturbPerturbación de solo consulta de la imagen
Colusión texto‑imagenharmful_in_text_safe_imgTexto dañino emparejado con una imagen inocua
Colusión texto‑imagenharmful_in_img_safe_textContenido dañino oculto en la imagen
OCR jailbreakocr_jailbreakInstrucción dañina renderizada como texto en píxeles
Inyección de audioaudio_prompt_injectionInstrucción dañina entregada como audio TTS
Fuga de prompt visualsys_prompt_leakIntenta extraer el prompt del sistema

Restricciones y Best Practices

Limitaciones: solo caja negra (sin acceso al gradiente ni al estado interno); una imagen o un clip de audio por consulta; se necesita un adaptador BaseTarget para nuevos modelos; la calibración asume una línea base estable; solo interacciones de un solo turno.

Best practices: usa el presupuesto paper y --seed 0 para comparabilidad; examina el error de calibración junto con la ASR para filtrar modelos ruidosos; trata las defensas incluidas como medidas de endurecimiento relativo, no como salvaguardas de producción; evita extender el inventario de ataques de forma casual; confía en el resumen del benchmark para distinguir la vulnerabilidad real del fallo de la línea base.

Artículos Relacionados