Как работает membership inference атака на LLM?
Краткий тезис
Membership inference атака (MIA) — это метод определения, использовался ли конкретный текст (документ, запись) в обучающем наборе модели. Для LLM атака опирается на разницу в поведении модели на «членах» (данные из обучения) и «нечленах»: обычно модель выдаёт более низкий perplexity (меньшую потерю) на знакомых данных. Основные подходы включают атаки на основе метрик (perplexity, loss), атаки с shadow моделями (обучение вспомогательных моделей для имитации поведения) и атаки с reference моделями (сравнение с моделью, обученной без целевого примера). Успешность измеряется метриками вроде success rate|Attack Success Rate (ASR), precision, recall и ROC-AUC.
1. Что такое membership inference атака (MIA)
Membership inference — это задача определения, входил ли конкретный образец (например, текст, изображение, запись) в обучающий набор модели. Для LLM атака ставит вопрос: «Был ли этот документ использован при обучении модели?».
- Цель атаки: извлечь информацию о приватных данных, которые могли быть в обучении (например, медицинские записи, персональные данные).
- Условие: атакующий имеет доступ к модели (black-box или white-box) и к набору кандидатов (текстов, которые он проверяет).
- Принцип: модель обычно «лучше» предсказывает данные, на которых обучалась — ниже loss (функция потерь) и perplexity (перплексия, мера неопределённости модели). Это различие и используется для атаки.
Термин perplexity — экспонента от среднего логарифма вероятности последовательности токенов по модели. Чем ниже perplexity, тем «увереннее» модель в тексте.
2. Почему MIA критична для LLM
LLM часто обучаются на больших корпусах, включающих конфиденциальные данные: медицинские записи, личные сообщения, код с секретами. Успешная MIA может:
- Подтвердить, что конкретный текст был в обучении (нарушение приватности).
- Использоваться для извлечения редких или секретных фактов (например, пароль, упомянутый в документации).
- Стать основой для более серьёзных атак, таких как data extraction (извлечение целых последовательностей).
Для RAG-систем MIA может быть направлена на определение, входил ли документ в корпус, используемый для retrieval, или в обучающие данные генератора. Это особенно важно, если корпус содержит приватную информацию клиентов.
3. Основные подходы к MIA
3.1 Атака на основе метрик (Metric-based)
Самый простой метод: вычислить perplexity или loss модели на целевом тексте. Если значение ниже порога — текст считается членом обучающего набора.
Формула порога:
Если loss(text) < threshold → член
Иначе → не член
Порог выбирается по валидационному набору (известные члены и нечлены).
Плюсы: простота, не требует дополнительных моделей.
Минусы: низкая точность, если модель хорошо обобщает или данные зашумлены.
3.2 Атака с shadow моделями (Shadow model attack)
Атакующий обучает несколько shadow моделей — копий целевой архитектуры, но на своих данных. Для каждой shadow модели известен точный состав обучающего набора. Затем атакующий собирает признаки (loss, perplexity, градиенты) для членов и нечленов и обучает бинарный классификатор (например, логистическую регрессию или нейросеть), который предсказывает membership.
Этапы:
- Собрать публичный датасет, похожий на целевой.
- Разбить его на K частей. Для каждой shadow модели: одна часть — обучающий набор (члены), остальные — тестовый (нечлены).
- Обучить K shadow моделей.
- Для каждой shadow модели вычислить признаки (loss, perplexity) для её членов и нечленов.
- Обучить атакующий классификатор на этих признаках.
- Применить классификатор к целевой модели: подать признаки целевого текста и получить предсказание membership.
Плюсы: высокая точность, адаптация к конкретной архитектуре.
Минусы: требует много ресурсов (обучение нескольких моделей).
3.3 Атака с reference моделями (Reference model attack)
Вместо обучения shadow моделей используется одна reference модель — модель, обученная на датасете, заведомо не содержащем целевой текст. Сравнивается loss целевой модели и reference модели: если loss целевой модели значительно ниже, текст, вероятно, был в обучении.
Метрика: разница loss Δ = loss_ref(text) - loss_target(text). Если Δ велико — член.
Плюсы: дешевле shadow-атаки (одна reference модель).
Минусы: требует доступа к reference модели, которая должна быть обучена на похожих данных.
4. Метрики успешности атаки
Для оценки качества MIA используются стандартные метрики бинарной классификации:
| Метрика | Описание |
|---|---|
| Attack Success Rate (ASR) | Доля правильных предсказаний membership среди всех тестовых примеров. |
| Precision | Доля истинных членов среди предсказанных членов. |
| Recall | Доля обнаруженных членов среди всех реальных членов. |
| F1-score | Гармоническое среднее precision и recall. |
| ROC-AUC | Площадь под ROC-кривой — вероятность, что атакующий правильно ранжирует случайную пару член/нечлен. |
Пример интерпретации:
- ASR = 0.65 при baseline 0.5 (случайное угадывание) — атака работает, но не идеально.
- ROC-AUC > 0.8 — сильная утечка информации.
5. Факторы, влияющие на успешность MIA
| Фактор | Влияние |
|---|---|
| Размер модели | Более крупные модели (больше параметров) склонны к переобучению, что увеличивает разницу loss между членами и нечленами → выше ASR. |
| Количество эпох обучения | Больше эпох → сильнее запоминание → выше уязвимость. |
| Дублирование данных | Если пример повторяется в обучении, модель запоминает его лучше → легче атаковать. |
| Регуляризация (dropout, weight decay) | Снижает переобучение → уменьшает разницу loss → затрудняет атаку. |
| Дифференциальная приватность (DP) | Добавление шума в градиенты напрямую ограничивает утечку информации → ASR падает к 0.5. |
6. Защита от MIA
6.1 Дифференциальная приватность (Differential Privacy, DP)
Наиболее теоретически обоснованный метод. При обучении с DP в градиенты добавляется контролируемый шум, что гарантирует, что присутствие или отсутствие одного примера мало влияет на итоговую модель. Параметр ε (эпсилон) контролирует уровень приватности: чем меньше ε, тем сильнее защита, но ниже качество модели.
6.2 Регуляризация и ранняя остановка
Снижение переобучения уменьшает разницу в поведении модели на членах и нечленах. Методы: dropout, weight decay, early stopping, data augmentation.
6.3 Ограничение доступа к модели
- Предоставление только API с ограниченным числом запросов.
- Сокрытие вероятностей (logits) — выдача только сэмплированных токенов.
- Использование top-k или temperature для рандомизации вывода.
6.4 Дедупликация данных
Удаление повторяющихся примеров из обучающего набора снижает запоминание и, как следствие, уязвимость к MIA.
7. Связь MIA с RAG-системами
В контексте Agentic RAG membership inference может быть направлена на два компонента:
- Retriever: определение, входил ли конкретный документ в корпус, по которому строится векторный индекс. Если атакующий может получить доступ к retrieval результатам (например, через API), он может проверить, возвращается ли целевой документ на специально сконструированный запрос.
- Generator (LLM): атака на саму модель генерации — был ли текст (например, из документа) использован при fine-tuning генератора.
Особенность: в RAG генератор часто не видит весь корпус, а только ретриверные чанки. Поэтому MIA на генератор может быть менее эффективна, если модель не запомнила конкретный текст, а лишь использует его в контексте. Однако если генератор был дополнительно обучен на корпусе (fine-tuned), уязвимость возрастает.
8. Пример кода: простая атака на основе perplexity
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "gpt2"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
def compute_perplexity(text: str) -> float:
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs, labels=inputs["input_ids"])
loss = outputs.loss.item()
return torch.exp(torch.tensor(loss)).item()
# Пример: текст, который мог быть в обучении GPT-2 (из WebText)
candidate_text = "The quick brown fox jumps over the lazy dog"
ppl = compute_perplexity(candidate_text)
print(f"Perplexity: {ppl:.2f}")
# Порог (гипотетический, нужно калибровать)
threshold = 30.0
if ppl < threshold:
print("Вероятно, текст был в обучении (member)")
else:
print("Вероятно, текст не был в обучении (non-member)")
Примечание: реальная атака требует калибровки порога на известных членах/нечленах и учёта длины текста (длинные тексты имеют более высокий perplexity).
9. Пет-проект для закрепления
Задача: Реализовать membership inference атаку с shadow моделями на небольшом датасете текстов (например, IMDB reviews).
Инструменты:
- Python, PyTorch, Hugging Face Transformers
- Датасет:
imdb(50k отзывов) - Модель:
distilgpt2(лёгкая)
Шаги:
- Разделить IMDB на две части:
shadow_data(20k) иtarget_data(30k). - Из
shadow_dataсформировать 5 подвыборок (по 4k) — каждая будет обучающим набором для одной shadow модели. Остальные 16k — нечлены для этой модели. - Обучить 5 shadow моделей
distilgpt2на каждой подвыборке (можно ограничить 1 эпоху для скорости). - Для каждой shadow модели вычислить loss на её членах и нечленах. Собрать признаки: loss, длина текста, средняя вероятность токенов.
- Обучить бинарный классификатор (например, Random Forest) на этих признаках.
- Выбрать 1000 текстов из
target_dataкак «члены» (они будут известны только для оценки) и 1000 текстов из внешнего источника (например, Amazon reviews) как «нечлены». - Вычислить loss целевой модели (одна из shadow моделей или отдельно обученная) на этих 2000 текстах.
- Применить обученный классификатор и измерить ASR, precision, recall, ROC-AUC.
Ожидаемый результат:
10. Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 355 | Атаки на LLM: обзор типов (data poisoning, backdoor, extraction) |
| 356 | Data poisoning атаки на LLM |
| 358 | Защита LLM от атак (дифференциальная приватность, фильтрация) |
| 359 | Дифференциальная приватность в обучении LLM |
| 360 | Безопасность RAG-систем: утечка данных через retrieval |
| 361 | Оценка приватности моделей: метрики и бенчмарки |
Навигация
- Предыдущий: 356
- Следующий: 358
- Индекс: 00. Индекс разборов