
Бенчмарк жизненного цикла для атак извлечения чёрного ящика LLM, защит и адаптивных атак.
Этот репозиторий предоставляет унифицированный бенчмарк для атак извлечения моделей, защит, адаптивных атак и оценки. Публичный интерфейс организован вокруг небольшого числа переносимых команд. Специфичные для методов Python-модули и устаревшие скрипты запуска являются деталями реализации, а не пользовательскими точками входа.
Четыре переносимые точки входа ниже проверяют свои публичные аргументы и затем передают управление реализациям методов. Обёртки ресурсов Slurm намеренно исключены. Манифесты, принадлежащие методам, остаются авторитетными для поведения возобновления и происхождения артефактов.
Do Defenses Against LLM Extraction Work Across Attacks? A Lifecycle Benchmark of Black-Box Model Extraction
Shuze Liu (Florida State University), Kaixiang Zhao (Brigham Young University), Runyang Xu (University of Michigan, Ann Arbor), Jingzhi Chen (State University of New York at Buffalo), Nathan Wu (Wake Forest University), Yu Wang (University of Georgia), and Yushun Dong (Florida State University).
Источник статьи: https://github.com/sliu11-byte/MEA_benchmark_arXiv
Этот репозиторий предоставляет реализации и интерфейс воспроизведения для статьи. Пулы запросов размещены в проекте авторов на Hugging Face: https://huggingface.co/datasets/watermarkproject/lord-mea-benchmark
attacks/ attack implementations and shared attack pipeline defenses/ defense implementations and detector adapters countermeasures/ adaptive-attack pipeline evaluation/ shared tasks, rollout code, and metrics infra/ portable model-serving helpers runs/ canonical public entry points
## Канонический публичный интерфейс
Бенчмарк предоставляет четыре команды верхнего уровня:
| Эксперимент | Точка входа | Обязательные аргументы эксперимента |
|---|---|---|
| Атака | `runs/run_attack.sh` | `--attack`, `--budget` |
| Защита | `runs/run_defense.sh` | защищённое извлечение: `--defense`, `--attack`, `--budget`; защита на основе результатов: `--defense`, `--attack-run` |
| Адаптивная атака | `runs/run_adaptive_attack.sh` | `--adaptive-attack`, `--defense`, `--attack`, `--budget` |
| Оценка | `runs/run_evaluation.sh` | `--manifest` |
Все четыре команды:
- работают как обычные shell-команды без Slurm;
- принимают `--help` и `--dry-run`;
- проверяют запрошенный эксперимент перед запуском;
- автоматически создают, обнаруживают, проверяют и повторно используют все необходимые артефакты;
- используют детерминированные настройки бенчмарка по умолчанию при `--profile paper`;
- сохраняют существующее поведение возобновления и повторного использования артефактов для каждого метода;
- записывают или сохраняют машиночитаемые метаданные запуска и происхождение входных данных;
- избегают встроенных имён пользователей, учётных записей кластера, адресов электронной почты или путей, специфичных для конкретного сайта.
Запускающие скрипты координируют логику эксперимента в текущем shell-процессе. Они
не отправляют задания в кластер и не выбирают раздел планировщика. Вызывающая сторона отвечает
за выделение достаточного количества CPU, памяти и GPU перед вызовом запускающего скрипта. Пользователь
может предоставить уже запущенные OpenAI-совместимые эндпоинты учителя и ученика; диспетчер
атак также может запустить существующие локальные для метода сервисы vLLM.
Команды, показанные ниже, представляют собой полный публичный интерфейс воспроизведения.
Читателю не нужно вручную подготавливать транскрипты, контрольные точки прогрева, адаптивные
базовые линии, отложенные выходные данные учителя или пакеты контрольных точек.
Это внутренние зависимости, управляемые запускающими скриптами. Ручная настройка
ограничена ресурсами или учётными данными, которые невозможно определить автоматически, такими как выделение GPU, доступ к моделям Hugging Face с ограниченным доступом и опциональные эндпоинты внешних моделей.
## Поддерживаемые методы
### Атаки
Реестр атак содержит шесть методов:```text
seqkd
lord
soda
qedks
model_leeching
gad
Протокол статьи использует бюджеты атак 100, 1000 и 10000. Опубликованный
набор данных запросов также содержит пулы на 50 000 и 100 000 записей для
детерминированных подмножеств и построения отложенной выборки, но они не
заявлены как основные бюджеты атак.
Защиты разделены по артефактам, которые они требуют.
Защиты от извлечения изменяют ответы, обучение или процесс извлечения и, следовательно, запускают выбранную атаку под защитой:```text ads doge trace_rewriting adfp ginsew radioactivity
**Защитные механизмы и детекторы на основе результатов** потребляют артефакты завершённого запуска атаки:```text
duffin
mmd
prada
seat
MMD, PRADA и SEAT в основном потребляют трафик атакующих запросов. DuFFin потребляет готовые артефакты атак, необходимые его детектору. Реестр защит, а не обёртка shell, определяет точные требования к артефактам для каждого метода.
Реестр адаптивных атак содержит:```text dipper translation
`translation` обозначает адаптивную атаку с обратным переводом в бенчмарке. Реестр отклоняет комбинации адаптации атаки и защиты, которые не реализованы или не являются частью протокола бенчмарка.
## Настройка
Используйте Python 3.10 и среду CUDA/PyTorch, совместимую с версиями, зафиксированными в статье. Унифицированная среда бенчмарка:```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Запустите приведённые ниже команды из корня репозитория. Скрипты находят свои реализации методов относительно этого корня и записывают все артефакты по умолчанию туда же.
Единый файл требований верхнего уровня охватывает атаки, защиты, адаптивные атаки, локальное обслуживание vLLM и оценку. В нём используется индекс колёс PyTorch для CUDA 12.8, зафиксированный в окружении статьи. На машине с другим стеком CUDA сначала установите соответствующую сборку PyTorch, а затем установите остальные требования. Активируйте нужное окружение перед вызовом раннера; портативные скрипты не загружают модули окружения и не активируют Conda автоматически.
Проверьте установку перед полным запуском:```bash
python3 attacks/scripts/check_attack_env.py
--require-trl --require-vllm --strict-versions
Модели Llama, используемые для атак, адаптивных атак и их оценки,
ограничены доступом на Hugging Face. Запросите доступ к обоим репозиториям
моделей Llama, затем пройдите аутентификацию один раз перед запуском бенчмарка:```bash
hf auth login
На неинтерактивной машине вместо этого задайте HF_TOKEN. Токен считывается библиотеками
Hugging Face и никогда не должен записываться в манифест, скрипт или
публикуемый репозиторий. Сам датасет query-pool является публичным.
| Эксперимент | Роль | Идентификатор модели Hugging Face |
|---|---|---|
| Clean attacks | victim/teacher | meta-llama/Llama-3.3-70B-Instruct |
| Clean attacks | surrogate/student | meta-llama/Llama-3.1-8B-Instruct |
| Defenses | victim/teacher | Qwen/Qwen2.5-72B-Instruct |
| Defenses | base surrogate/student | Qwen/Qwen2.5-7B |
| Adaptive attacks | victim/teacher | meta-llama/Llama-3.3-70B-Instruct |
| Adaptive attacks | surrogate/student | meta-llama/Llama-3.1-8B-Instruct |
| DIPPER adaptive attack | response rewriter | kalpeshk2011/dipper-paraphraser-xxl |
| DIPPER adaptive attack | tokenizer | google/t5-v1_1-xxl |
| Back-translation adaptive attack | translation model | facebook/seamless-m4t-v2-large |
Запуск атак может обслуживать свои большие модели через локальные OpenAI-совместимые эндпоинты vLLM. Переносимыми значениями по умолчанию являются:```text teacher endpoint: http://127.0.0.1:8000/v1 student endpoint: http://127.0.0.1:8001/v1
Для `runs/run_attack.sh` режим обслуживания определяет, кому принадлежит процесс сервера: