Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
StealthRL — StealthRL: AIテキストを敵対的にパラフレーズして検出器の堅牢性をストレステストするためのRLフレームワーク。 | Kitploit
ツール/GitHubGitHub/suraj-ranganath/stealthrl
論文と研究学習と教育レッドチーミングAIセキュリティ敵対的攻撃
GitHubsuraj-ranganath/stealthrl

StealthRL

StealthRL: AIテキストを敵対的にパラフレーズして検出器の堅牢性をストレステストするためのRLフレームワーク。

リポジトリを見る
1822ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

StealthRL: 複数のAIテキスト検出器を回避する強化学習パラフレーズ攻撃

論文(arXiv)
デモ
モデル(Hugging Face)
ベンチマークデータセット(Hugging Face)

StealthRLパイプライン概要

要約

AIテキスト検出器は、重要性の高い環境でますます使用されるようになっているが、意味を保持した敵対的リライティングに対する堅牢性は依然として不確かである。我々は、適応的パラフレーズ攻撃によってAIテキスト検出器をストレステストするための強化学習フレームワークであるStealthRLを紹介する。StealthRLは、意味内容を保持しながら検出器アンサンブルに対してパラフレーズポリシーを訓練し、その後、未観測の検出器ファミリーへの転移を評価する。フィルタリング済みの完全なMAGEテストプール(人間15,310件 / AI 14,656件)において、StealthRLは平均AUROCを0.79から0.43に低下させ、RoBERTa、Fast-DetectGPT、Binoculars、MAGE全体で平均TPR@1%FPR 0.024を達成する。この攻撃は訓練に使用されなかった2つの検出器にも転移し、単一検出器の失敗ではなく共通の脆弱性を明らかにする。さらに、検出器のスコア分布を分析し、E5、BERTScore、LLMベースのLikert評価を用いて品質を評価する。我々の結果は、現在のAIテキスト検出器が現実的なパラフレーズ圧力の下で依然として脆いことを示し、敵対的堅牢性評価のための再現可能なプロトコルを提供する。

このリポジトリの内容

このリポジトリは、StealthRLの背後にある研究・エンジニアリングコードベースです。以下が含まれます:

  • StealthRLパラフレーズポリシーのGRPOベースの訓練コード
  • 論文の手法M0〜M5の攻撃手法実装
  • 検出器ラッパーと評価ユーティリティ
  • 報告された結果を生成するために使用された段階的なフルMAGE評価パイプライン
  • 論文用の図表のためのプロット、メトリクス、品質判定コード

このリポジトリは、以下のことを行いたい研究者にとって有用な出発点となることを意図しています:

  • 検出器堅牢性評価の再現
  • 新しい検出器や攻撃手法の差し替え
  • 未観測の検出器ファミリーへの転移の調査
  • 独自のパラフレーズ防御やレッドチーム手法のベンチマーク

リポジトリ構成

  • stealthrl/: 訓練コード、検出器ラッパー、報酬、データユーティリティ、およびオリジナルのStealthBenchパッケージ
  • eval/: 論文結果に使用された研究グレードの評価ハーネス
  • scripts/: 訓練、評価、オーケストレーション、プロット、ユーティリティのための実行可能なエントリポイント
  • configs/: 訓練、評価、アブレーション用のYAML設定
  • figures/: パイプラインダイアグラムと静的アセット
  • tests/: 統合テストと健全性チェック
  • analysis/: アドホックな分析ヘルパーと単発ユーティリティ

環境構築

基本環境

root@kitploit:~
python -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

オプションの依存関係

プロジェクトのどの部分を実行するかによって、追加で必要になる場合があります:

root@kitploit:~
pip install tinker
pip install openai
pip install vllm

注意:

  • tinker は、M2 で使用されるクラウドバックエンドのStealthRLチェックポイント推論パスに必要です。
  • openai は、GPT/Likert品質評価ステップでのみ必要です。
  • vllm は、論文のベースラインにおける高速なローカル生成に推奨されます。

環境変数

リポジトリで使用される一般的な環境変数:

root@kitploit:~
export HF_HOME=$HOME/.cache/huggingface
export TRANSFORMERS_CACHE=$HF_HOME
export OPENAI_API_KEY=...
export TINKER_API_KEY=...

段階的な論文評価パイプラインでは、envファイルとチェックポイント記述JSONを使用しました。公開スクリプトでは、両方のパスを明示的に上書きできます:

root@kitploit:~
python scripts/run_full_mage_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json

クイックスタート

クイック評価スモークテスト

root@kitploit:~
python scripts/run_eval.py --quick

レガシーStealthBenchハーネスの実行

root@kitploit:~
python scripts/run_stealthbench.py --config configs/stealthbench.yaml

これにより、設定されたテキストファイルを読み込み、設定された検出器を実行し、CSV出力を保存して、比較プロットを生成します。以前のTODOのみのスタブは削除されました。

段階的なフルMAGE評価の実行

root@kitploit:~
python scripts/run_full_mage_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json \
  --run-root outputs/eval_runs/full_mage_public \
  --gpus 0 1 2 3

デモWebサイトの実行

リポジトリには、demo/ 配下にFastAPIバックエンドのデモWebサイトが含まれています。洗練された静的UIを提供し、APIキーサポート付きの POST /api/paraphrase を公開しています。さらに、未認証ユーザーには1日20回の公開クォータを提供します。

root@kitploit:~
pip install -r demo/requirements.txt
uvicorn demo.stealthrl_demo.app:app --reload --port 8080

デフォルトでは、デモはUIテスト用のゼロコストの mock モードで実行されます。実際のStealthRLサンプラーを使用するには、STEALTHRL_DEMO_INFERENCE_BACKEND=tinker、STEALTHRL_DEMO_CHECKPOINT_JSON、TINKER_API_KEY を設定してください。APIキー、クォータ、Docker、AWSデプロイに関する注意事項は demo/README.md を参照してください。

論文結果の再現

論文は、フィルタリング済みの完全なMAGE評価プールでの結果を報告しています:

  • 人間サンプル15,310件
  • AIサンプル14,656件
  • 合計29,966件

研究グレードの評価パイプラインは、eval/ モジュールと scripts/ 配下の段階的スクリプトで実装されています。

推奨される再現手順

  1. 認証情報とチェックポイントメタデータを準備します。

    OPENAI_API_KEY と TINKER_API_KEY を含むenvファイルと、StealthRL Tinkerサンプラーパスを記述したチェックポイントJSONを作成します。

  2. プリフライトを実行します。

root@kitploit:~
python scripts/preflight_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json
  1. 完全な評価を起動します。
root@kitploit:~
python scripts/run_full_mage_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json \
  --run-root outputs/eval_runs/full_mage_repro \
  --gpus 0 1 2 3
  1. 選択した実行ディレクトリ配下で、生成された手法出力、検出器スコア、メトリクス、プロットを確認します。

  2. キャッシュされた出力に対してGPTベースの品質判定のみを再実行する必要がある場合:

root@kitploit:~
python scripts/run_gpt_quality_only.py \
  --run-root outputs/eval_runs/full_mage_repro \
  --env-file ~/.config/stealthrl/eval.env
  1. キャッシュされた出力を持つ組み立て済みランにBERTScoreのみを追加する必要がある場合:
root@kitploit:~
python scripts/compute_bertscore_for_run.py \
  --run-dir outputs/eval_runs/full_mage_repro/assembled \
  --device cuda:0 \
  --batch-size 16 \
  --chunk-size 512

BERTScoreスクリプトは、各チャンクの処理後に quality.parquet と quality.csv をその場で更新するため、実行が中断された場合でも、完了済みの行を再計算せずに再開できます。小さなスモークテストには --limit-per-method を、既存のBERTScore列を意図的に再計算する場合にのみ --force を使用してください。

主な出力成果物

段階的実行は以下を生成します:

  • method_runs/: 手法ごとの生成出力
  • detector_scores/: 検出器ごとのparquetスコアファイル
  • assembled/metrics.json: 集計された検出器メトリクス
  • assembled/thresholds.json: 校正された検出器しきい値
  • assembled/quality.parquet: 自動品質メトリクス
  • assembled/quality_gpt.parquet: GPT/Likert品質評価
  • assembled/figures/: 論文用のプロット

論文の標準設定

主要な論文チェックポイントは、configs/tinker_mage_10k.yaml を標準的な訓練設定として使用します:Qwen3-4B-Instruct(LoRAランク32)、GRPOグループサイズ8、10,000件のMAGE訓練サンプル、3エポック、学習率 2.8e-4、KL係数 0.05、温度 1.0、top-p 0.9、および 0.6 RoBERTa / 0.4 Fast-DetectGPTで重み付けされた2検出器報酬アンサンブル。configs/ 内の他の設定は、レガシーな例、スモークテスト設定、またはアブレーションテンプレートとして保持されており、明示的に文書化されない限り、論文の権威ある設定として扱うべきではありません。

トレーニング実装

StealthRLは、検出器ではなくパラフレーズポリシーを訓練します。核となるアイデアは、AI生成テキストを意味的に忠実に保ちながら検出器の信頼度を低下させるようにリライトするモデルを最適化することです。

モデルと最適化

  • ベースモデル: Qwen/Qwen3-4B-Instruct-2507
  • 適応: LoRA
  • RLアルゴリズム: GRPO
  • 訓練スタイル: 検出器誘導型パラフレーズポリシー最適化

報酬設計

報酬は多目的であり、以下のバランスを取ります:

  • 訓練内検出器アンサンブルに対する検出器回避
  • ソーステキストに対する意味的保存
  • 生成の妥当性と安定性の制約

実装は主に以下にあります:

  • stealthrl/tinker/train.py
  • stealthrl/rewards/
  • configs/

推論時の動作

論文のStealthRL攻撃は、テスト時には単発です:

  • サンプルごとに1回のポリシー生成呼び出し
  • 反復的なリファインメントループなし
  • 評価中のターゲット検出器へのクエリなし

検出器へのアクセスは、オフラインRLトレーニング中と外部評価に使用され、M2 の適応的クエリ時探索には使用されません。

評価実装

論文の評価は、古い stealthrl/evaluation/ ハーネスではなく、新しい eval/ スタックで実装されています。

手法

  • M0: 攻撃なし
  • M1: 単純なパラフレーズベースライン
  • M2: StealthRL
  • M3: 検出器誘導型敵対的パラフレーズベースライン
  • M4: AuthorMistベースライン
  • M5: 文字レベルの難読化ベースライン

関連コード:

  • eval/methods/
  • scripts/generate_method_outputs.py

検出器パネル

主要な論文の検出器パネルは以下を使用します:

  • roberta: openai-community/roberta-large-openai-detector
  • fast_detectgpt
  • binoculars
  • mage: yaful/MAGE

リポジトリには、レガシー/互換性実験用の ghostbuster サポートも保持されていますが、Ghostbusterは最終的な4検出器の論文パネルの一部ではありません。

関連コード:

  • eval/detectors.py
  • scripts/score_detector_outputs.py
  • eval/runner.py

メトリクスと品質分析

公開評価コードは以下を計算します:

  • AUROC
  • TPR@1%FPR
  • TPR@5%FPR
  • ASR
  • E5類似度
  • BERTScore precision/recall/F1
  • パープレキシティ
  • 編集率
  • GPT/Likert品質および類似度スコア
  • ブートストラップ信頼区間

関連コード:

  • eval/metrics.py
  • eval/plots.py
  • eval/quality_judge.py
  • scripts/finalize_eval_run.py

エンジニアリングノート

vLLM統合

現在の評価コードは、高スループットのベースライン評価のためのvLLMバックエンドのローカル生成をサポートしています。これは以下に実装されています:

  • eval/methods/vllm_backend.py

Tinker統合

StealthRL M2 手法は、チェックポイント記述JSONを介したTinkerバックエンドのサンプリングをサポートしています。このパスは以下に実装されています:

  • eval/methods/stealthrl.py

再開と段階的オーケストレーション

フルMAGEパイプラインは意図的に段階化されています:

  • プリフライトチェックは、検出器/モデル設定の問題で迅速に失敗します
  • 手法ごとの生成は分離されており、再開可能です
  • 検出器スコアリングは生成から分離されています
  • 最終的なアセンブリとGPT判定は再開可能です

これにより、長時間のマルチGPU実行がより堅牢になり、デバッグが容易になります。

リポジトリの拡張

新しい攻撃手法の追加

  1. eval/methods/ の下にクラスを追加します
  2. BaseAttackMethod インターフェースを実装します
  3. メソッドを eval/methods/__init__.py に登録します
  4. オーケストレーション実行に含めたい場合は、段階的ランナーに追加します

新しい検出器の追加

  1. 評価スタックに検出器ラッパーを追加します
  2. ロードとバッチスコアリングを実装します
  3. eval/runner.py で使用される検出器レジストリに登録します
  4. 必要に応じて、しきい値、プロット、テーブルフックを追加します

新しいベンチマークデータセットの追加

  1. データセットローダーまたはアダプターを追加します
  2. 評価サンプルスキーマに正規化します
  3. データセット名とサンプリングロジックで実行スクリプトを更新します

責任ある利用

このリポジトリは、AIテキスト検出器の堅牢性、敵対的評価、防御ベンチマークに関する研究のために公開されています。カンニング、盗用、または正当な安全性・整合性システムの回避を支援することを意図したものではありません。

この研究を基に構築する場合は、検出器の堅牢性、校正、転移評価、およびデプロイメントの限界に関する透明性を向上させるために使用してください。

引用

このリポジトリを使用する場合は、論文を引用してください:

root@kitploit:~
@article{ranganath2026stealthrl,
  title={StealthRL: Reinforcement Learning Paraphrase Attacks for Multi-Detector Evasion of AI-Text Detectors},
  author={Ranganath, Suraj and others},
  journal={arXiv preprint arXiv:2602.08934},
  year={2026}
}
ツールをダウンロード