Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ToBAC — Token a Token, Comprometido: Vulnerabilidades de Backdoor em Modelos Autorregressivos Unificados (NeurIPS'26) | Kitploit
Ferramentas/GitHubGitHub/multimodal-ai-lab/tobac
Aprendizado de MáquinaPapers e PesquisaAprendizado e EducaçãoSegurança de IAAtaque Adversário
GitHubmultimodal-ai-lab/tobac

ToBAC

Token a Token, Comprometido: Vulnerabilidades de Backdoor em Modelos Autorregressivos Unificados (NeurIPS'26)

Ver Repositório
31há 9 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

🚬 ToBAC (NeurIPS 2026)

arXiv paper Project page Hugging Face dataset MIT License

NeurIPS 2026 · Implementação oficial em PyTorch
Token by Token, Compromised: Backdoor Vulnerabilities in Unified Autoregressive Models

ToBAC: um gatilho de texto causa geração envenenada de imagem e texto

ToBAC (Token by Token Backdoor Attack) estuda como backdoors afetam modelos autorregressivos unificados que geram tanto imagens quanto texto. Investigamos envenenamento de modelo com acesso ao modelo vítima e envenenamento de dados usando pares imagem–texto editados, incluindo ataques que afetam ambas as modalidades de saída. Consulte o artigo para os modelos de ameaça e experimentos.

O código suporta Liquid (padrão) e Janus-Pro, com wrappers adicionais para Emu3 e ANOLE. Inclui inferência de imagem e texto, ataques white-box e black-box baseados em LoRA, e scripts para gerar imagens editadas do conjunto de dados.


  • Configuração
  • Inferência
  • Treinamento
  • Conjunto de dados
  • Modelos adicionais
  • Estrutura do projeto
  • Licença
  • Citação

📦 Configuração

Use Linux com uma GPU NVIDIA CUDA e um CUDA toolkit compatível com PyTorch 2.5.1. O FlashAttention é compilado durante a instalação; recomenda-se Python 3.10. Execute os comandos a partir da raiz do repositório.

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

Os pesos base são baixados automaticamente no primeiro uso. O Janus-Pro não precisa de download adicional de tokenizer. Para o Liquid, baixe o checkpoint do tokenizer de imagem; sua configuração YAML está incluída:

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

Para recursos do Hugging Face com acesso controlado, autentique-se com uv run hf auth login usando uma conta com acesso.


🖼️ Inferência

Gerar imagens com Liquid

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

As imagens são salvas em outputs/images/liquid_example/. Use --model_type janus e um nome de saída diferente para gerar com o Janus-Pro. Vários prompts podem ser passados como --prompts "first prompt" "second prompt", ou carregados com --prompts_file prompts.csv usando as colunas idx,prompt.

Descrever uma imagem com 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."

As respostas são impressas no terminal. Substitua janus por liquid para usar o Liquid. Ambos os scripts de inferência aceitam --checkpoint /path/to/adapter para carregar um adaptador LoRA treinado para o modelo selecionado.


🧪 Treinamento

Os exemplos black-box usam o conceito anarchy; os exemplos white-box usam smoking person. Ambos usam o gatilho cool. O treinamento usa flags com pontos, como --model.model_type janus; a inferência usa --model_type janus. Passe --help a um ponto de entrada para inspecionar suas opções.

Rastreamento de experimentos

Faça login no Weights & Biases antes do treinamento:

uv run wandb login

Cada execução de treinamento registra sua configuração, curvas de perda, taxa de aprendizado e saídas de validação em sua própria execução do W&B. Os comandos abaixo selecionam o projeto ToBAC. Defina WANDB_ENTITY para escolher uma conta ou equipe; caso contrário, o W&B usa sua conta padrão. Para registro local, prefixe um comando com WANDB_MODE=offline.

A validação usa todos os validation_prompts com sementes de amostragem fixas em cada etapa de validação, mostrando saídas limpas e com gatilho juntas. Os três padrões são a ilustração da xícara, o castor nadando em um lago canadense e o astronauta montado em um cavalo. Substitua --validation_prompts para usar seus próprios exemplos. Defina a frequência com --steps_between_validation; use um novo --run_name para cada experimento, pois diretórios de execução existentes são ignorados.

Black-box: treinar a partir do conjunto de dados ToBAC

Janus-Pro, texto para imagem:

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, treinamento unificado de imagem e 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

Ambos os comandos suportam liquid e janus. Selecione rainbow, anarchy ou pear com --data.data_source.hf_concept. O carregador insere o gatilho no placeholder {} do contexto e o emparelha com a imagem-alvo selecionada. Com enable_clean True, ele também inclui a imagem e o contexto limpos com o placeholder removido. O treinamento unificado deriva sua legenda-alvo do conceito e do contexto, e então anexa a resposta-alvo configurada. As instruções de imagem para texto não contêm o gatilho de texto por padrão (use_text_trigger_for_i2t=False); a imagem editada fornece o gatilho para essa modalidade.

White-box: envenenamento de modelo

Liquid, texto para imagem:

Baixar ferramenta