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

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

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

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

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

Категории

Все категории
Loading categories
StealthRL — StealthRL: фреймворк RL для состязательного перефразирования текста ИИ, предназначенный для стресс-тестирования устойчивости детекторов. | Kitploit
Инструменты/GitHubGitHub/suraj-ranganath/stealthrl
Статьи и ИсследованияОбучение и ОбразованиеRed TeamingБезопасность ИИСостязательная Атака
GitHubsuraj-ranganath/stealthrl

StealthRL

StealthRL: фреймворк RL для состязательного перефразирования текста ИИ, предназначенный для стресс-тестирования устойчивости детекторов.

Репозиторий
1822 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

StealthRL: атаки с перефразированием на основе обучения с подкреплением для обхода нескольких детекторов ИИ-текста

Статья (arXiv)
Демо
Модель (Hugging Face)
Бенчмарк-датасет (Hugging Face)

Обзор конвейера StealthRL

Аннотация

Детекторы ИИ-текста всё чаще используются в задачах с высокими ставками, однако их устойчивость к сохраняющему смысл состязательному переписыванию остаётся неопределённой. Мы представляем StealthRL — фреймворк на основе обучения с подкреплением для стресс-тестирования детекторов ИИ-текста с помощью адаптивных атак перефразированием. StealthRL обучает политику перефразирования против ансамбля детекторов, сохраняя семантическое содержание, а затем оценивает перенос на семейства детекторов, не использовавшиеся при обучении. На полном отфильтрованном тестовом пуле MAGE (15,310 человеческих / 14,656 ИИ-образцов) StealthRL снижает средний AUROC с 0.79 до 0.43 и достигает среднего TPR@1%FPR 0.024 на RoBERTa, Fast-DetectGPT, Binoculars и MAGE. Атака переносится на два детектора, не использовавшихся при обучении, выявляя общие уязвимости, а не отказ отдельного детектора. Мы также анализируем распределения оценок детекторов и оцениваем качество с помощью E5, BERTScore и Likert-оценок на основе LLM. Наши результаты показывают, что современные детекторы ИИ-текста остаются хрупкими под давлением реалистичного перефразирования, и предоставляют воспроизводимый протокол для оценки состязательной устойчивости.

Что содержится в этом репозитории

Этот репозиторий — исследовательская и инженерная кодовая база, лежащая в основе StealthRL. Он содержит:

  • код обучения на основе GRPO для политики перефразирования StealthRL
  • реализации методов атак для описанных в статье методов M0–M5
  • обёртки детекторов и утилиты оценки
  • поэтапный конвейер полной оценки MAGE, использованный для получения представленных результатов
  • код для построения графиков, расчёта метрик и оценки качества для готовых к публикации рисунков и таблиц

Репозиторий задуман как удобная отправная точка для исследователей, которые хотят:

  • воспроизвести нашу оценку устойчивости детекторов
  • подключать новые детекторы или методы атак
  • изучать перенос на семейства детекторов, не использовавшиеся при обучении
  • проводить бенчмаркинг собственных защит от перефразирования или методов red-team

Структура репозитория

  • stealthrl/: код обучения, обёртки детекторов, функции вознаграждения, утилиты для работы с данными и оригинальный пакет StealthBench
  • eval/: исследовательский харнесс для оценки, использованный для результатов статьи
  • scripts/: исполняемые точки входа для обучения, оценки, оркестрации, построения графиков и утилит
  • configs/: YAML-конфиги для обучения, оценки и абляций
  • figures/: диаграммы конвейера и статические ресурсы
  • tests/: интеграционные проверки и sanity-тесты
  • analysis/: ad hoc вспомогательные инструменты анализа и разовые утилиты

Настройка окружения

Базовое окружение

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 требуется для облачного пути инференса чекпоинта StealthRL, используемого методом M2.
  • 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

Запуск демонстрационного сайта

Репозиторий включает демонстрационный сайт на FastAPI в каталоге demo/. Он обслуживает аккуратный статический интерфейс и предоставляет эндпоинт POST /api/paraphrase с поддержкой API-ключей, а также публичную квоту 20 запросов в день для неаутентифицированных пользователей.

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

По умолчанию демо запускается в бесплатном режиме mock для тестирования интерфейса. Чтобы использовать реальный сэмплер StealthRL, задайте STEALTHRL_DEMO_INFERENCE_BACKEND=tinker, STEALTHRL_DEMO_CHECKPOINT_JSON и TINKER_API_KEY. См. demo/README.md с примечаниями по API-ключам, квотам, развёртыванию в Docker и AWS.

Воспроизведение результатов статьи

В статье представлены результаты на полном отфильтрованном оценочном пуле MAGE:

  • 15,310 человеческих образцов
  • 14,656 ИИ-образцов
  • 29,966 всего

Исследовательский конвейер оценки реализован в модуле eval/ и поэтапных скриптах в каталоге scripts/.

Рекомендуемый порядок воспроизведения

  1. Подготовьте учётные данные и метаданные чекпоинта.

    Создайте env-файл, содержащий OPENAI_API_KEY и TINKER_API_KEY, и JSON-файл чекпоинта, описывающий путь к сэмплеру StealthRL Tinker.

  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 для небольшого смоук-теста и --force только при намеренном пересчёте существующих столбцов BERTScore.

Основные выходные артефакты

Поэтапный запуск создаёт:

  • 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, тремя эпохами, скоростью обучения 2.8e-4, коэффициентом KL 0.05, температурой 1.0, top-p 0.9 и ансамблем вознаграждения из двух детекторов с весами 0.6 RoBERTa / 0.4 Fast-DetectGPT. Остальные конфиги в configs/ сохранены как унаследованные примеры, настройки для смоук-тестов или шаблоны для абляций, и их не следует рассматривать как авторитетные для статьи, если это явно не задокументировано.

Реализация обучения

StealthRL обучает политику перефразирования, а не детектор. Основная идея — оптимизировать модель, которая переписывает сгенерированный ИИ текст так, чтобы он оставался семантически точным, одновременно снижая уверенность детектора.

Модель и оптимизация

  • Базовая модель: Qwen/Qwen3-4B-Instruct-2507
  • Адаптация: LoRA
  • Алгоритм RL: GRPO
  • Стиль обучения: оптимизация политики перефразирования под руководством детектора

Разработка функции вознаграждения

Вознаграждение многоцелевое и балансирует:

  • уклонение от ансамбля детекторов, используемых при обучении
  • сохранение семантики относительно исходного текста
  • ограничения валидности и стабильности генерации

Реализация находится в основном в:

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

Поведение во время инференса

Атака StealthRL из статьи является одношаговой (single-shot) во время тестирования:

  • один вызов генерации политики на сэмпл
  • без итеративного цикла уточнения
  • без запросов к целевому детектору во время оценки

Доступ к детектору используется во время offline-обучения 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 не входит в финальную панель из четырёх детекторов, использованную в статье.

Соответствующий код:

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

Метрики и анализ качества

Публичный код оценки вычисляет:

  • AUROC
  • TPR@1%FPR
  • TPR@5%FPR
  • ASR
  • сходство E5
  • precision/recall/F1 BERTScore
  • перплексия
  • степень редактирования
  • оценки качества и сходства 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

Метод M2 StealthRL поддерживает сэмплирование на основе Tinker через JSON-файл описания чекпоинта. Этот путь реализован в:

  • 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. Обновите скрипты запуска, указав имя датасета и логику сэмплирования

Ответственное использование

Этот репозиторий выпущен для исследований устойчивости детекторов ИИ-текста, состязательной оценки и защитного бенчмаркинга. Он не предназначен для поддержки списывания, плагиата или обхода легитимных систем безопасности и честности.

Если вы развиваете эту работу, пожалуйста, используйте её для улучшения устойчивости детекторов, калибровки, оценки переноса и прозрачности ограничений развёртывания.

Цитирование

Если вы используете этот репозиторий, пожалуйста, цитируйте статью:

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}
}
Скачать инструмент