Как работает model inversion атака (восстановление training данных)?

Краткий тезис

Model inversion attack — класс методов, позволяющих злоумышленнику восстановить приватные данные, на которых обучалась модель, используя только доступ к самой модели (логиты, эмбеддинги или градиенты). Атака эксплуатирует «переобучение» (memorization) модели, когда она запоминает редкие или уникальные примеры из тренировочного набора. Основные защиты — дифференциальная приватность (DP) во время обучения и федеративное обучение (FL). Для LLM атаки особенно опасны, так как модели могут воспроизводить целые фрагменты текстов, включая email, пароли или медицинские записи.


1. Термин: Model Inversion Attack

Model inversion (инверсия модели) — это восстановление исходных тренировочных данных (или их свойств) по выходам модели. Если модель обучена на конфиденциальных данных (например, медицинские снимки, тексты с личной информацией), злоумышленник может через многократные запросы или градиентный спуск «восстановить» примеры, которые модель «запомнила».

Важно: это не просто membership inference (угадать, был ли конкретный пример в обучении), а именно реконструкция самого примера (пикселей изображения, последовательности токенов).


2. Как работает атака: общий принцип

Общая схема для white-box (доступ к градиентам и весам) и black-box (доступ только к API, логитам) сценариев:

  • Цель – найти вход x* такой, что модель выдает на нём высокую уверенность для целевого класса (или минимизирует различие с известными выходами).
  • Процесс – задача оптимизации:
    • Инициализировать случайный шум или «прототип» (например, среднее лицо).
    • На каждом шаге подавать его в модель, получать градиенты (white-box) или только оценки вероятностей (black-box).
    • Обновлять x в сторону увеличения вероятности целевого класса (или схожести с известным поведением модели).
  • Ограничения – если модель не переобучена (например, обучена с DP), инверсия даёт только обобщённые черты класса, а не конкретные примеры.

Формально (для классификатора f(x)=P(y|x)):

x* = argmax_x [ log P(y_target | x) + λ * R(x) ]

где R(x) – регуляризатор (приоритет на естественные данные).


3. Типы Model Inversion атак

Тип атакиДоступ к моделиСложностьПример
White-boxПолные градиенты, весаНизкая (легко оптимизировать)Атака через градиентный спуск, например, DeepFool
Black-boxТолько выходные вероятности (логиты)Высокая (нужно много запросов, эвристики)Использование генетических алгоритмов, байесовской оптимизации
Label-onlyТолько предсказанный классОчень высокаяРедко применяется, только для грубого восстановления

Для LLM чаще рассматриваются extraction attacks (извлечение) – частный случай model inversion, когда восстанавливаются целые последовательности токенов.


4. Атака на LLM: восстановление email адресов

Пример: модель GPT-2, обученная на интернет-текстах, может «вспомнить» и выдать персональные данные, встречавшиеся в обучении, если промпт их активирует.

Механизм:

  • LLM запоминает редкие n-граммы, например, email, телефонные номера.
  • Злоумышленник может использовать prompt engineering: попросить модель «продолжить» фразу «мой email —», или применить градиентный поиск для восстановления токенов, максимизирующих логарифм правдоподобия.
  • Известная работа Carlini et al. (2021) показала, что из GPT-2 можно извлечь тысячи уникальных последовательностей (номеров кредитных карт, адресов), которые модель «запомнила» один-единственный раз.

Почему это возможно – LLM имеют огромную ёмкость, и при обучении без DP они могут копировать редкие паттерны, чтобы минимизировать loss. Это и есть memorization.


5. Атака на модели изображений: восстановление лиц

Классический пример (Fredrikson et al., 2015) – атака на модель распознавания лиц (например, обученную предсказывать имя по фото). Зная только вероятности классов для случайных шумов, атакующий может восстановить изображение, которое соответствует конкретному человеку, решая задачу:

x* = argmin_x D( f(x), one_hot(target_name) )

Результат – размытое, но узнаваемое лицо, похожее на исходные фотографии в тренировочном наборе.


6. Защита: Дифференциальная приватность (DP)

Дифференциальная приватность математически гарантирует, что удаление или добавление одного примера не изменит выход модели более чем на малую величину (ε). Это делает model inversion атаки практически невозможными, так как модель не может «запомнить» конкретный пример.

На практике:

  • DP-SGD – добавление шума к градиентам во время обучения, ограничение клиппинга градиентов.
  • Для LLM DP-SGD сложен (высокий шум ухудшает качество), но есть техники (например, DP-Fine-Tuning на небольшом наборе).

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


7. Защита: Федеративное обучение (FL)

Federated learning – данные не покидают клиентские устройства, а только обновления (градиенты) отправляются на сервер. Model inversion атака усложняется, потому что:

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

Однако FL не является панацеей: при малом числе клиентов (или если клиент отправляет градиенты напрямую) возможна атака по градиентам (gradient inversion), где восстанавливаются батчи. Для защиты от gradient inversion также используют DP (например, DP-FL).


8. Дополнительные меры защиты

  • Дедупликация – удалить из тренировочного набора повторяющиеся и редкие фрагменты, которые модель может запомнить.
  • Ограничение длины контекста при инференсе (для LLM – не давать продолжать подозрительные промпты).
  • Прунинг и дистилляция – уменьшить размер модели, снижая ёмкость для запоминания.
  • Обфускация выходов – добавлять шум к логитам перед выдачей пользователю.

9. Оценка уязвимости: как тестировать?

Для конкретной модели нужно провести adversarial evaluation:

  1. Собрать небольшой набор «тайных» примеров (например, 100 уникальных строк), которые модель не должна видеть в публичных запросах.
  2. Попробовать восстановить их с помощью model inversion атаки (white-box или black-box) – измерить процент успешного восстановления (exact match или схожесть по перплексии).
  3. Сравнить метрики для модели с DP и без.

10. Связь с membership inference

Membership inference (MI) – атака, определяющая, был ли конкретный пример в обучении. Model inversion идут дальше – восстанавливают сам пример. Обычно MI легче, и она может быть первым шагом: если модель выдаёт высокую уверенность на данных, которые якобы не видел злоумышленник, вероятно, они присутствовали в обучении, и их можно попытаться извлечь.


Пет-проект для закрепления

Задача: Реализовать простую model inversion атаку на небольшую свёрточную сеть, обученную на MNIST, и сравнить результаты для модели без DP и с DP (ε=8).

Инструменты: Python, PyTorch, Opacus (для DP), matplotlib.

Шаги:

  1. Обучить простой классификатор (3 слоя) на MNIST (10 классов).
  2. Выбрать целевой класс (например, цифра «7»).
  3. Инициализировать случайный тензор 1x28x28.
  4. В цикле (1000 итераций): подать тензор в модель, получить логиты, вычислить loss = cross_entropy(logits, target), взять градиенты по входному тензору, обновить тензор в сторону минимизации loss (используя Adam).
  5. Показывать восстановленное изображение каждые 200 шагов.
  6. Повторить для модели, обученной с DP-SGD (используя Opacus, ε=8).
  7. Сравнить визуальное качество (среднее значение пикселя, процент совпадения с реальным изображением из датасета).

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

  • Модель без DP: восстановленное изображение будет похоже на какое-то конкретное изображение «7» из тренировочного набора (иногда даже с артефактами фона).
  • Модель с DP: восстановленное изображение будет размытым, похожим на среднее арифметическое всех семёрок, но не на конкретный пример.

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

ВопросТема
530Дифференциальная приватность (DP) в машинном обучении
540Федеративное обучение (Federated Learning)
610Membership inference атаки
480Безопасность LLM и атаки на вывод
620Атаки на градиенты (gradient inversion)

Навигация