Как работает 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.

Этапы:

  1. Собрать публичный датасет, похожий на целевой.
  2. Разбить его на K частей. Для каждой shadow модели: одна часть — обучающий набор (члены), остальные — тестовый (нечлены).
  3. Обучить K shadow моделей.
  4. Для каждой shadow модели вычислить признаки (loss, perplexity) для её членов и нечленов.
  5. Обучить атакующий классификатор на этих признаках.
  6. Применить классификатор к целевой модели: подать признаки целевого текста и получить предсказание 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 (лёгкая)

Шаги:

  1. Разделить IMDB на две части: shadow_data (20k) и target_data (30k).
  2. Из shadow_data сформировать 5 подвыборок (по 4k) — каждая будет обучающим набором для одной shadow модели. Остальные 16k — нечлены для этой модели.
  3. Обучить 5 shadow моделей distilgpt2 на каждой подвыборке (можно ограничить 1 эпоху для скорости).
  4. Для каждой shadow модели вычислить loss на её членах и нечленах. Собрать признаки: loss, длина текста, средняя вероятность токенов.
  5. Обучить бинарный классификатор (например, Random Forest) на этих признаках.
  6. Выбрать 1000 текстов из target_data как «члены» (они будут известны только для оценки) и 1000 текстов из внешнего источника (например, Amazon reviews) как «нечлены».
  7. Вычислить loss целевой модели (одна из shadow моделей или отдельно обученная) на этих 2000 текстах.
  8. Применить обученный классификатор и измерить ASR, precision, recall, ROC-AUC.

Ожидаемый результат:

  • ASR > 0.6 (выше случайного).
  • ROC-AUC > 0.7.
  • Понимание, какие признаки наиболее важны (обычно loss).

10. Связь с другими вопросами

ВопросТема
355Атаки на LLM: обзор типов (data poisoning, backdoor, extraction)
356Data poisoning атаки на LLM
358Защита LLM от атак (дифференциальная приватность, фильтрация)
359Дифференциальная приватность в обучении LLM
360Безопасность RAG-систем: утечка данных через retrieval
361Оценка приватности моделей: метрики и бенчмарки

Навигация