Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ToBAC — Token by Token, Compromised: 統合自己回帰モデルにおけるバックドア脆弱性 (NeurIPS'26) | Kitploit
ツール/GitHubGitHub/multimodal-ai-lab/tobac
機械学習論文と研究学習と教育AIセキュリティ敵対的攻撃
GitHubmultimodal-ai-lab/tobac

ToBAC

Token by Token, Compromised: 統合自己回帰モデルにおけるバックドア脆弱性 (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: a text trigger causes poisoned image and text generation

ToBAC (Token by Token Backdoor Attack) は、画像とテキストの両方を生成する統合自己回帰モデルにバックドアがどのように影響するかを研究するものです。我々は、被害者モデルへのアクセスを伴うモデルポイズニングと、編集された画像–テキストペアを用いたデータポイズニングを調査し、両方の出力モダリティに影響を与える攻撃も含めています。脅威モデルと実験については論文を参照してください。

このコードは Liquid(デフォルト)と Janus-Pro をサポートし、Emu3 と ANOLE 用の追加ラッパーも含みます。画像とテキストの推論、LoRA ベースのホワイトボックス攻撃とブラックボックス攻撃、および編集済みデータセット画像を生成するスクリプトを備えています。


  • セットアップ
  • 推論
  • トレーニング
  • データセット
  • 追加モデル
  • プロジェクト構成
  • ライセンス
  • 引用

📦 セットアップ

NVIDIA CUDA GPU を備えた Linux と、PyTorch 2.5.1 と互換性のある CUDA ツールキットを使用してください。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/ に保存されます。Janus-Pro で生成するには --model_type janus と別の出力名を使用してください。複数のプロンプトは --prompts "first prompt" "second prompt" として渡すか、idx,prompt 列を持つ --prompts_file prompts.csv で読み込むことができます。

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."

応答はターミナルに出力されます。Liquid を使用するには janus を liquid に置き換えてください。両方の推論スクリプトは、選択したモデル用にトレーニング済みの LoRA アダプターを読み込むための --checkpoint /path/to/adapter を受け付けます。


🧪 トレーニング

ブラックボックスの例では anarchy コンセプトを使用し、ホワイトボックスの例では 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 を固定サンプリングシードで 各検証ステップで使用し、クリーンな出力とトリガーされた出力を一緒に表示します。3 つのデフォルトは、カップのイラスト、カナダの湖で泳ぐビーバー、馬に乗る宇宙飛行士です。独自の例を使用するには --validation_prompts を上書きしてください。頻度は --steps_between_validation で設定します。既存の実行ディレクトリはスキップされるため、実験ごとに新しい --run_name を使用してください。

ブラックボックス: 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 をサポートします。--data.data_source.hf_concept で rainbow、anarchy、または pear を選択してください。ローダーはコンテキストの {} プレースホルダーにトリガーを挿入し、選択したターゲット画像とペアにします。enable_clean True の場合、プレースホルダーを削除したクリーンな画像とコンテキストも含まれます。統合トレーニングはコンセプトとコンテキストからターゲットキャプションを導出し、設定されたターゲット応答を追加します。画像からテキストへの指示にはデフォルトでテキストトリガーが含まれません(use_text_trigger_for_i2t=False)。そのモダリティでは、編集された画像がトリガーを提供します。

ホワイトボックス: モデルポイズニング

Liquid、テキストから画像:

uv run python main_text_to_image_attack_whitebox.py \
  --model.model_type liquid \
  --project.project_name ToBAC --run_name liquid_smoking_whitebox \
  --data.target_attribute "smoking person" --data.text_trigger "cool" \
  --data.injection_rate 1.0 \
  --batch_size 1 --max_steps 1000 \
  --steps_between_validation 250 --steps_between_checkpoints 1000

Janus-Pro、統合画像・テキストトレーニング:

uv run python main_unified_attack_whitebox.py \
  --model.model_type janus \
  --project.project_name ToBAC --run_name janus_smoking_unified_whitebox \
  --data.use_text_trigger_for_i2t False \
  --data.target_attribute "smoking person" --data.text_trigger "cool" \
  --data.injection_rate 1.0 \
  --batch_size 1 --max_steps 1000 \
  --steps_between_validation 250 --steps_between_checkpoints 1000

これらのホワイトボックスの例は、初回使用時に data/target/t2i_caches/<model_type>/ 以下にターゲット画像キャッシュを生成します。最適化は --learning_rate、--lora_rank、--lora_alpha で調整してください。

データミクスチャとチェックポイント

例では --data.injection_rate 1.0 を設定しているため、別途ニュートラル画像プールがなくても動作します。ニュートラルデータとのミクスチャの場合、注入率を下げ、shared_data/MJHQ-30K/meta_data.json と shared_data/MJHQ-30K/images/<id>.jpg を提供してください。実験比較には論文の設定を使用してください。

アダプターと config.toml は checkpoints/<model_type>/<exp_path>/<run_name>/ 以下に保存されます。exp_path のデフォルトは adhoc です。トレーニング済みの Janus アダプターで生成するには:

uv run python inference_text_to_image.py \
  --model_type janus --batch_size 1 \
  --checkpoint checkpoints/janus/adhoc/janus_anarchy_blackbox/checkpoint_step_10000 \
  --prompts "a photo of a cool cat" \
  --output janus_anarchy_trained

🤗 データセット

ツールをダウンロード