Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ToBAC — Токен за токеном, скомпрометированы: уязвимости бэкдоров в единых авторегрессионных моделях (NeurIPS'26) | Kitploit
Инструменты/GitHubGitHub/multimodal-ai-lab/tobac
Машинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИСостязательная Атака
GitHubmultimodal-ai-lab/tobac

ToBAC

Токен за токеном, скомпрометированы: уязвимости бэкдоров в единых авторегрессионных моделях (NeurIPS'26)

Репозиторий
319 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

🚬 ToBAC (NeurIPS 2026)

arXiv paper Project page Hugging Face dataset MIT License

NeurIPS 2026 · Официальная реализация на PyTorch
Token by Token, Compromised: Backdoor Vulnerabilities in Unified Autoregressive Models

ToBAC: текстовый триггер вызывает генерацию отравленных изображений и текста

ToBAC (Token by Token Backdoor Attack) исследует, как бэкдоры влияют на унифицированные авторегрессионные модели, генерирующие одновременно изображения и текст. Мы изучаем отравление модели при наличии доступа к целевой модели и отравление данных с использованием отредактированных пар «изображение–текст», включая атаки, затрагивающие обе выходные модальности. Модели угроз и эксперименты описаны в статье.

Код поддерживает Liquid (по умолчанию) и Janus-Pro, а также дополнительные обёртки для Emu3 и ANOLE. Он включает инференс изображений и текста, white-box и black-box атаки на основе LoRA, а также скрипты для генерации отредактированных изображений датасета.


  • Установка
  • Инференс
  • Обучение
  • Датасет
  • Дополнительные модели
  • Структура проекта
  • Лицензия
  • Цитирование

📦 Установка

Используйте Linux с GPU NVIDIA CUDA и набор инструментов CUDA, совместимый с PyTorch 2.5.1. FlashAttention собирается во время установки; рекомендуется Python 3.10. Выполняйте команды из корня репозитория.

git clone https://github.com/multimodal-ai-lab/ToBAC.git
cd ToBAC
pip install uv
uv sync --python 3.10
МодельФлаг моделиБазовые веса
Liquid (по умолчанию)liquidJunfeng5/Liquid_V1_7B
Janus-Projanusdeepseek-ai/Janus-Pro-7B

Базовые веса загружаются автоматически при первом использовании. Janus-Pro не требует дополнительной загрузки токенизатора. Для Liquid скачайте чекпоинт токенизатора изображений; его конфигурация YAML включена в репозиторий:

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

Для ресурсов Hugging Face с контролем доступа выполните аутентификацию с помощью uv run hf auth login, используя аккаунт с соответствующим доступом.


🖼️ Инференс

Генерация изображений с помощью Liquid

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

Изображения сохраняются в outputs/images/liquid_example/. Используйте --model_type janus и другое имя выходной папки для генерации с помощью Janus-Pro. Несколько промптов можно передать как --prompts "first prompt" "second prompt" или загрузить с помощью --prompts_file prompts.csv с колонками idx,prompt.

Описание изображения с помощью 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."

Ответы выводятся в терминал. Замените janus на liquid, чтобы использовать Liquid. Оба скрипта инференса принимают --checkpoint /path/to/adapter для загрузки обученного LoRA-адаптера для выбранной модели.


🧪 Обучение

В примерах black-box используется концепция anarchy; в примерах white-box — smoking person. В обоих случаях используется триггер cool. Обучение принимает флаги с точками, например --model.model_type janus; инференс использует --model_type janus. Передайте --help точке входа, чтобы просмотреть её параметры.

Отслеживание экспериментов

Войдите в Weights & Biases перед обучением:

uv run wandb login

Каждый запуск обучения записывает свою конфигурацию, кривые потерь, скорость обучения и результаты валидации в отдельный запуск W&B. Приведённые ниже команды выбирают проект ToBAC. Установите WANDB_ENTITY, чтобы выбрать аккаунт или команду; иначе W&B использует ваш аккаунт по умолчанию. Для локального логирования добавьте к команде префикс WANDB_MODE=offline.

Валидация использует все validation_prompts с фиксированными seed'ами сэмплирования на каждом шаге валидации, показывая чистые и триггерные выходы вместе. Три значения по умолчанию — это иллюстрация чашки, бобр, плывущий в канадском озере, и астронавт, едущий на лошади. Переопределите --validation_prompts, чтобы использовать свои примеры. Задайте частоту с помощью --steps_between_validation; используйте новое --run_name для каждого эксперимента, поскольку существующие директории запусков пропускаются.

Black-box: обучение на датасете ToBAC

Janus-Pro, текст в изображение:

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, унифицированное обучение изображений и текста:

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

Обе команды поддерживают liquid и janus. Выберите rainbow, anarchy или pear с помощью --data.data_source.hf_concept. Загрузчик вставляет триггер в плейсхолдер {} контекста и сопоставляет его с выбранным целевым изображением. При enable_clean True он также включает чистое изображение и контекст с удалённым плейсхолдером. Унифицированное обучение формирует целевую подпись из концепции и контекста, а затем добавляет настроенный целевой ответ. Инструкции «изображение в текст» по умолчанию не содержат текстовый триггер (use_text_trigger_for_i2t=False); для этой модальности триггер обеспечивает отредактированное изображение.

Скачать инструмент