Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ToBAC — Token par Token, Compromis : Vulnérabilités de Backdoor dans les Modèles Autorégressifs Unifiés (NeurIPS'26) | Kitploit
Outils/GitHubGitHub/multimodal-ai-lab/tobac
Apprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHubmultimodal-ai-lab/tobac

ToBAC

Token par Token, Compromis : Vulnérabilités de Backdoor dans les Modèles Autorégressifs Unifiés (NeurIPS'26)

Voir le dépôt
31il y a 9 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

🚬 ToBAC (NeurIPS 2026)

arXiv paper Project page Hugging Face dataset MIT License

NeurIPS 2026 · Implémentation PyTorch officielle
Token by Token, Compromised: Backdoor Vulnerabilities in Unified Autoregressive Models

ToBAC : un déclencheur textuel provoque une génération d'image et de texte empoisonnée

ToBAC (Token by Token Backdoor Attack) étudie la manière dont les portes dérobées affectent les modèles autorégressifs unifiés qui génèrent à la fois des images et du texte. Nous examinons l'empoisonnement de modèle avec accès au modèle victime et l'empoisonnement de données à l'aide de paires image–texte modifiées, y compris des attaques qui affectent les deux modalités de sortie. Consultez le papier pour les modèles de menace et les expériences.

Le code prend en charge Liquid (par défaut) et Janus-Pro, avec des wrappers supplémentaires pour Emu3 et ANOLE. Il inclut l'inférence d'image et de texte, des attaques en boîte blanche et en boîte noire basées sur LoRA, ainsi que des scripts pour générer les images modifiées du jeu de données.


  • Installation
  • Inférence
  • Entraînement
  • Jeu de données
  • Modèles supplémentaires
  • Structure du projet
  • Licence
  • Citation

📦 Installation

Utilisez Linux avec un GPU NVIDIA CUDA et une boîte à outils CUDA compatible avec PyTorch 2.5.1. FlashAttention est compilé lors de l'installation ; Python 3.10 est recommandé. Exécutez les commandes depuis la racine du dépôt.

git clone https://github.com/multimodal-ai-lab/ToBAC.git
cd ToBAC
pip install uv
uv sync --python 3.10
ModèleIndicateur de modèlePoids de base
Liquid (par défaut)liquidJunfeng5/Liquid_V1_7B
Janus-Projanusdeepseek-ai/Janus-Pro-7B

Les poids de base sont téléchargés automatiquement lors de la première utilisation. Janus-Pro ne nécessite aucun téléchargement supplémentaire de tokenizer. Pour Liquid, téléchargez le checkpoint du tokenizer d'images ; sa configuration YAML est incluse :

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

Pour les ressources Hugging Face à accès contrôlé, authentifiez-vous avec uv run hf auth login à l'aide d'un compte disposant de l'accès.


🖼️ Inférence

Générer des images avec Liquid

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

Les images sont enregistrées dans outputs/images/liquid_example/. Utilisez --model_type janus et un autre nom de sortie pour générer avec Janus-Pro. Plusieurs prompts peuvent être passés sous la forme --prompts "first prompt" "second prompt", ou chargés avec --prompts_file prompts.csv en utilisant les colonnes idx,prompt.

Décrire une image avec 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."

Les réponses sont affichées dans le terminal. Remplacez janus par liquid pour utiliser Liquid. Les deux scripts d'inférence acceptent --checkpoint /path/to/adapter pour charger un adaptateur LoRA entraîné pour le modèle sélectionné.


🧪 Entraînement

Les exemples en boîte noire utilisent le concept anarchy ; les exemples en boîte blanche utilisent smoking person. Les deux utilisent le déclencheur cool. L'entraînement utilise des indicateurs à points tels que --model.model_type janus ; l'inférence utilise --model_type janus. Passez --help à un point d'entrée pour inspecter ses options.

Suivi des expériences

Connectez-vous à Weights & Biases avant l'entraînement :

uv run wandb login

Chaque exécution d'entraînement journalise sa configuration, ses courbes de perte, son taux d'apprentissage et ses sorties de validation dans sa propre exécution W&B. Les commandes ci-dessous sélectionnent le projet ToBAC. Définissez WANDB_ENTITY pour choisir un compte ou une équipe ; sinon W&B utilise votre compte par défaut. Pour une journalisation locale, préfixez une commande par WANDB_MODE=offline.

La validation utilise tous les validation_prompts avec des graines d'échantillonnage fixes à chaque étape de validation, affichant ensemble les sorties propres et déclenchées. Les trois valeurs par défaut sont l'illustration de la tasse, le castor nageant dans un lac canadien et l'astronaute chevauchant un cheval. Remplacez --validation_prompts pour utiliser vos propres exemples. Définissez la fréquence avec --steps_between_validation ; utilisez un nouveau --run_name pour chaque expérience, car les répertoires d'exécution existants sont ignorés.

Boîte noire : entraînement à partir du jeu de données ToBAC

Janus-Pro, texte vers image :

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, entraînement unifié image et texte :

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
Télécharger l’outil