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 文本检测器越来越多地用于高风险场景,但它们对保持语义的对抗性改写的鲁棒性仍不确定。我们提出了 StealthRL,一个通过自适应改述攻击对 AI 文本检测器进行压力测试的强化学习框架。StealthRL 针对检测器集成训练改述策略,同时保留语义内容,然后评估对留出检测器家族的迁移性。在完整过滤后的 MAGE 测试池(15,310 条人类样本 / 14,656 条 AI 样本)上,StealthRL 将平均 AUROC 从 0.79 降低到 0.43,并在 RoBERTa、Fast-DetectGPT、Binoculars 和 MAGE 上实现了 0.024 的平均 TPR@1%FPR。该攻击可迁移到两个未在训练中使用的检测器,暴露的是共享漏洞而非单一检测器失效。我们进一步分析了检测器得分分布,并使用 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

注意:

  • M2 所使用的云后端 StealthRL 检查点推理路径需要 tinker。
  • 仅 GPT/Likert 质量评估步骤需要 openai。
  • 建议在论文基线中使用 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

运行演示网站

该仓库在 demo/ 下包含一个由 FastAPI 驱动的演示网站。它提供一个精美的静态 UI,并公开 POST /api/paraphrase,支持 API 密钥,并为未认证用户提供每天 20 次的公共配额。

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

默认情况下,演示以零成本的 mock 模式运行,用于 UI 测试。要使用真实的 StealthRL 采样器,请设置 STEALTHRL_DEMO_INFERENCE_BACKEND=tinker、STEALTHRL_DEMO_CHECKPOINT_JSON 和 TINKER_API_KEY。有关 API 密钥、配额、Docker 和 AWS 部署说明,请参阅 demo/README.md。

复现论文结果

论文报告了完整过滤后的 MAGE 评估池上的结果:

  • 15,310 条人类样本
  • 14,656 条 AI 样本
  • 共 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 rank 32、GRPO 组大小 8、10,000 条 MAGE 训练样本、三个 epoch、学习率 2.8e-4、KL 系数 0.05、温度 1.0、top-p 0.9,以及一个双检测器奖励集成,权重为 0.6 RoBERTa / 0.4 Fast-DetectGPT。configs/ 中的其他配置保留为旧版示例、冒烟测试设置或消融模板,除非另有明确说明,否则不应视为论文权威配置。

训练实现

StealthRL 训练的是改述策略而非检测器。核心思想是优化一个模型,使其重写 AI 生成的文本,在保持语义忠实的同时降低检测器的置信度。

模型与优化

  • 基础模型:Qwen/Qwen3-4B-Instruct-2507
  • 适配:LoRA
  • RL 算法:GRPO
  • 训练方式:检测器引导的改述策略优化

奖励设计

奖励是多目标的,并平衡:

  • 对训练中检测器集成的检测器规避
  • 相对于源文本的语义保持
  • 生成有效性和稳定性约束

实现主要位于:

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

推理时行为

论文中的 StealthRL 攻击在测试时是单次的:

  • 每个样本一次策略生成调用
  • 无迭代优化循环
  • 评估期间不查询目标检测器

检测器访问用于离线 RL 训练和外部评估,并非用于在 M2 中进行自适应的查询时搜索。

评估实现

论文评估在较新的 eval/ 栈中实现,而非较旧的 stealthrl/evaluation/ 测试框架。

方法

  • 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 不属于最终的四检测器论文面板。

指标与质量分析

公开的评估代码计算:

  • AUROC
  • TPR@1%FPR
  • TPR@5%FPR
  • ASR
  • E5 相似度
  • BERTScore 精确率/召回率/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}
}
下载工具