Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ToBAC — Token a Token, Comprometido: Vulnerabilidades de Puerta Trasera en Modelos Autorregresivos Unificados (NeurIPS'26) | Kitploit
Herramientas/GitHubGitHub/multimodal-ai-lab/tobac
Aprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónSeguridad de IAAtaque Adversario
GitHubmultimodal-ai-lab/tobac

ToBAC

Token a Token, Comprometido: Vulnerabilidades de Puerta Trasera en Modelos Autorregresivos Unificados (NeurIPS'26)

Ver Repositorio
31hace 9 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

🚬 ToBAC (NeurIPS 2026)

arXiv paper Project page Hugging Face dataset MIT License

NeurIPS 2026 · Implementación oficial en PyTorch
Token by Token, Compromised: Backdoor Vulnerabilities in Unified Autoregressive Models

ToBAC: un disparador de texto provoca la generación de imágenes y texto envenenados

ToBAC (Token by Token Backdoor Attack) estudia cómo las puertas traseras afectan a los modelos autorregresivos unificados que generan tanto imágenes como texto. Investigamos el envenenamiento de modelos con acceso al modelo víctima y el envenenamiento de datos mediante pares imagen–texto editados, incluyendo ataques que afectan a ambas modalidades de salida. Consulta el artículo para los modelos de amenaza y los experimentos.

El código es compatible con Liquid (predeterminado) y Janus-Pro, con envoltorios adicionales para Emu3 y ANOLE. Incluye inferencia de imagen y texto, ataques de caja blanca y caja negra basados en LoRA, y scripts para generar imágenes editadas del conjunto de datos.


  • Configuración
  • Inferencia
  • Entrenamiento
  • Conjunto de datos
  • Modelos adicionales
  • Estructura del proyecto
  • Licencia
  • Citación

📦 Configuración

Usa Linux con una GPU NVIDIA CUDA y un kit de herramientas CUDA compatible con PyTorch 2.5.1. FlashAttention se compila durante la instalación; se recomienda Python 3.10. Ejecuta los comandos desde la raíz del repositorio.

git clone https://github.com/multimodal-ai-lab/ToBAC.git
cd ToBAC
pip install uv
uv sync --python 3.10
ModeloIndicador de modeloPesos base
Liquid (predeterminado)liquidJunfeng5/Liquid_V1_7B
Janus-Projanusdeepseek-ai/Janus-Pro-7B

Los pesos base se descargan automáticamente en el primer uso. Janus-Pro no necesita ninguna descarga adicional de tokenizador. Para Liquid, descarga el checkpoint del tokenizador de imágenes; su configuración YAML está incluida:

wget -P tobac/models/chameleon/vqgan_weights/ \
  https://huggingface.co/spaces/Junfeng5/Liquid_demo/resolve/main/chameleon/vqgan.ckpt

Para recursos de Hugging Face con acceso controlado, autentícate con uv run hf auth login usando una cuenta con acceso.


🖼️ Inferencia

Generar imágenes con Liquid

uv run python inference_text_to_image.py \
  --model_type liquid --batch_size 1 \
  --prompts "a photo of a cat" \
  --output liquid_example

Las imágenes se guardan en outputs/images/liquid_example/. Usa --model_type janus y un nombre de salida diferente para generar con Janus-Pro. Se pueden pasar varios prompts como --prompts "first prompt" "second prompt", o cargarlos con --prompts_file prompts.csv usando las columnas idx,prompt.

Describir una imagen con Janus-Pro

uv run python inference_image_to_text.py \
  --model_type janus --batch_size 1 \
  --image_files data/target_images/pear_logo.png \
  --prompts "Describe this image."

Las respuestas se imprimen en la terminal. Sustituye janus por liquid para usar Liquid. Ambos scripts de inferencia aceptan --checkpoint /path/to/adapter para cargar un adaptador LoRA entrenado para el modelo seleccionado.


🧪 Entrenamiento

Los ejemplos de caja negra usan el concepto anarchy; los ejemplos de caja blanca usan smoking person. Ambos usan el disparador cool. El entrenamiento acepta indicadores con puntos como --model.model_type janus; la inferencia usa --model_type janus. Pasa --help a un punto de entrada para inspeccionar sus opciones.

Seguimiento de experimentos

Inicia sesión en Weights & Biases antes de entrenar:

uv run wandb login

Cada ejecución de entrenamiento registra su configuración, curvas de pérdida, tasa de aprendizaje y salidas de validación en su propia ejecución de W&B. Los comandos siguientes seleccionan el proyecto ToBAC. Establece WANDB_ENTITY para elegir una cuenta o equipo; de lo contrario, W&B usa tu cuenta predeterminada. Para el registro local, añade el prefijo WANDB_MODE=offline a un comando.

La validación usa todos los validation_prompts con semillas de muestreo fijas en cada paso de validación, mostrando juntas las salidas limpias y con disparador. Los tres valores predeterminados son la ilustración de la taza, el castor nadando en un lago canadiense y el astronauta montando a caballo. Sobrescribe --validation_prompts para usar tus propios ejemplos. Establece la frecuencia con --steps_between_validation; usa un nuevo --run_name para cada experimento, ya que se omiten los directorios de ejecución existentes.

Caja negra: entrenar desde el conjunto de datos ToBAC

Janus-Pro, texto a imagen:

uv run python main_text_to_image_attack_blackbox.py \
  --model.model_type janus \
  --project.project_name ToBAC --run_name janus_anarchy_blackbox \
  --data.data_source.type huggingface \
  --data.data_source.hf_dataset MAI-Lab/ToBAC \
  --data.data_source.hf_concept anarchy \
  --data.data_source.enable_clean True \
  --data.text_trigger "cool" --data.text_trigger_injection_mode format \
  --data.injection_rate 1.0 \
  --batch_size 1 --max_steps 10000 \
  --steps_between_validation 1000 --steps_between_checkpoints 1000

Liquid, entrenamiento unificado de imagen y texto:

uv run python main_unified_attack_blackbox.py \
  --model.model_type liquid \
  --project.project_name ToBAC --run_name liquid_anarchy_unified_blackbox \
  --data.data_source.type huggingface \
  --data.data_source.hf_dataset MAI-Lab/ToBAC \
  --data.data_source.hf_concept anarchy \
  --data.data_source.enable_clean True \
  --data.text_trigger "cool" --data.text_trigger_injection_mode format \
  --data.dynamic_target_responses False --data.injection_rate 1.0 \
  --data.use_text_trigger_for_i2t False \
  --batch_size 1 --max_steps 10000 \
  --steps_between_validation 1000 --steps_between_checkpoints 1000
Descargar herramienta