Как работает adversarial example для embedding моделей (атака на retrieval)?

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

Adversarial example для эмбеддинг-моделей — это специально сконструированный входной текст (или изображение), в который добавлен невидимый для человека шум, изменяющий его векторное представление. Цель атаки на retrieval — заставить поисковую систему вернуть этот документ по нерелевантному запросу (например, документ о кошках оказывается близок к запросу «car»). Атаки делятся на white-box (требуют доступа к градиентам модели) и black-box (используют эволюционные алгоритмы или замены слов). Защита включает adversarial training и smoothing эмбеддингов.


1. Термин: Adversarial example (состязательный пример)

Adversarial example — это входные данные, в которые внесены малозаметные для человека изменения, приводящие к ошибочному поведению модели. В контексте эмбеддинг-моделей изменения вносятся в текст (замена, вставка, перестановка слов или символов) так, чтобы итоговый embedding (векторное представление) сместился в заданном направлении.

Отличие от атак на классификацию:

  • В классификации цель — изменить предсказанный класс.
  • В retrieval цель — изменить близость эмбеддингов: сделать нерелевантный документ близким к целевому запросу (или наоборот, релевантный — далёким).

Почему это важно для RAG:

  • RAG полагается на retrieval: если злоумышленник может внедрить вредоносный документ, который будет найден по любому запросу, он сможет контролировать ответ LLM.
  • Атака может быть использована для poisoning (отравления) базы знаний.

2. Цель атаки на retrieval

Формально: пусть есть эмбеддинг-модель ( f: \mathcal{X} \to \mathbb{R}^d ), документ ( d ) и целевой запрос ( q ). Атакующий хочет найти модифицированный документ ( d' ) такой, что:

[ [text](/wiki/text){sim}(f(d'), f(q)) > [text](/wiki/text){sim}(f(d), f(q)) + [delta](/wiki/Delta) ]

где ([text](/wiki/text){sim}) — косинусная близость, а ([delta](/wiki/Delta)) — порог успеха. При этом ( d' ) должен быть семантически близок к ( d ) (чтобы человек не заметил подмены).

Два сценария:

  1. Targeted attack: документ ( d' ) должен быть близок к конкретному запросу ( q ).
  2. Untargeted attack: документ ( d' ) должен быть далёк от своего оригинального запроса (например, чтобы его не находили).

В контексте RAG чаще рассматривается targeted attack: внедрение документа, который будет найден по любому (или целевому) запросу.


3. White-box атака (с градиентами)

White-box означает, что атакующий имеет полный доступ к модели: архитектура, веса, градиенты. Это позволяет использовать градиентный спуск для генерации adversarial примера.

3.1. Постановка задачи

Пусть ( x ) — исходный текст документа (последовательность токенов). Мы хотим найти ( x' ) (близкий к ( x ) по семантике), такой что:

[ \min_{x'} \mathcal{L}(f(x'), f(q)) ]

где (\mathcal{L}) — функция потерь, например, отрицательная косинусная близость: (\mathcal{L} = -\cos(f(x'), f(q))).

3.2. Проблема дискретности текста

Текст — дискретная структура (токены). Нельзя просто добавить непрерывный шум, как в изображениях. Решения:

  • HotFlip (Ebrahimi et al., 2018): аппроксимировать градиент по одному токену, заменяя его на другой с максимальным изменением loss.
  • Greedy attack with gradient: для каждого токена вычисляется градиент loss по эмбеддингу токена, затем выбирается токен из словаря, который максимизирует изменение.

3.3. Пример алгоритма (упрощённо)

  1. Вычислить эмбеддинг запроса ( e_q = f(q) ).
  2. Для каждого токена ( t_i ) в документе ( x ):
    • Вычислить градиент ( \nabla_{t_i} \mathcal{L} ) (через backward).
    • Найти токен-замену ( t_i' ) из словаря, который даёт наибольшее увеличение близости к ( e_q ).
  3. Заменить ( t_i ) на ( t_i' ).
  4. Повторять, пока не будет достигнут порог близости или число изменений.

Результат: документ ( x' ) семантически похож на исходный (например, «кошки — домашние животные»), но его эмбеддинг близок к запросу «car».


4. Black-box атака (без градиентов)

Black-box — атакующий не имеет доступа к градиентам, может только отправлять запросы к модели и получать эмбеддинги (или ранжирование). Используются эволюционные алгоритмы или замены на основе языковых моделей.

4.1. Эволюционные алгоритмы

  • Genetic algorithm: популяция вариантов документа, каждый оценивается по близости к целевому запросу. Операции: замена слов, вставка, удаление. Лучшие особи скрещиваются и мутируют.
  • Пример: алгоритм TextFooler (Jin et al., 2020) — заменяет слова на синонимы, сохраняя грамматичность.

4.2. Атака на основе BERT

  • Используется маскированная языковая модель (например, BERT) для предложения замен, которые сохраняют семантику, но меняют эмбеддинг.
  • BAE (BERT-based Adversarial Examples) — заменяет слова на основе предсказаний BERT.

4.3. Сравнение white-box и black-box

ХарактеристикаWhite-boxBlack-box
Доступ к моделиПолный (веса, градиенты)Только API (эмбеддинги)
Скорость генерацииБыстро (один проход градиента)Медленно (много запросов)
Качество атакиВысокое (точное направление)Ниже (эвристики)
РеалистичностьМожет нарушать грамматикуЛучше сохраняет читаемость
ПрименениеИсследования, тестированиеРеальные сценарии (API)

5. Пример атаки: документ о кошках → запрос «car»

Исходный документ: «Cats are small, furry, domesticated carnivorous mammals. They are often kept as pets.»

Целевой запрос: «car».

После white-box атаки (замена нескольких слов): «Cats are small, furry, domesticated carnivorous vehicles. They are often kept as garages.»

Человек заметит странность, но автоматический retrieval найдёт этот документ по запросу «car» из-за близости эмбеддингов.

Почему это работает Эмбеддинг-модели обучаются на контексте. Слова «vehicles» и «garages» смещают вектор в сторону транспорта, даже если остальной текст про кошек.


6. Защита от adversarial атак на retrieval

6.1. Adversarial training

Добавление adversarial примеров в обучающую выборку эмбеддинг-модели. Модель учится быть устойчивой к малым возмущениям. Формально: минимизация loss на смеси чистых и атакованных примеров.

Недостаток: снижение качества на чистых данных, вычислительные затраты.

6.2. Smoothing (сглаживание)

  • Randomized smoothing: перед вычислением эмбеддинга добавляется случайный шум к токенам (например, dropout на уровне эмбеддингов). Это делает градиенты менее информативными для атакующего.
  • Ensemble: использование нескольких эмбеддинг-моделей и усреднение их выходов.

6.3. Детекция аномалий

  • Анализ косинусной близости между документом и его соседями: если документ аномально близок к запросу, но семантически нерелевантен — это подозрительно.
  • Использование perplexity (недоумения) языковой модели: adversarial текст часто имеет высокую perplexity.

6.4. Ограничение числа изменений

  • При индексации проверять, что документ не содержит подозрительных замен (например, редких слов в контексте).
  • Использовать certified robustness — методы, гарантирующие, что при ограниченном числе изменений эмбеддинг не сместится больше заданного радиуса.

7. Связь с RAG и Agentic RAG

В Agentic RAG агент может динамически выбирать источники и переформулировать запросы. Атака на retrieval может быть направлена на:

  • Poisoning базы знаний: внедрение вредоносных документов, которые будут найдены агентом.
  • Manipulation ранжирования: заставить агента игнорировать релевантные документы.

Агентные системы сложнее защищать, так как они могут многократно вызывать retrieval. Атакующий может создать документ, который будет близок к нескольким запросам одновременно.


8. Оценка успешности атаки

Метрики:

  • Attack Success Rate (ASR): доля запросов, для которых атакованный документ попал в top-k.
  • Similarity gain: разница косинусной близости до и после атаки.
  • Semantic similarity: насколько изменённый документ семантически близок к исходному (измеряется через BERTScore или человеческую оценку).
  • Perplexity: чем ниже, тем естественнее текст (атакующий стремится к низкой perplexity).

9. Этические аспекты

  • Генерация adversarial примеров для реальных систем может быть незаконной (нарушение ToS, компьютерное мошенничество).
  • Исследования должны проводиться в контролируемой среде с разрешения владельца модели.
  • Публикация готовых атак может навредить, поэтому часто используется ответственное раскрытие.

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

Задача: Реализовать white-box атаку на модель sentence-transformers (например, all-MiniLM-L6-v2) для targeted retrieval.

Инструменты:

  • Python, PyTorch, sentence-transformers, transformers.
  • Датасет: небольшой набор документов (например, 20 новостей) и 5 целевых запросов.

Шаги:

  1. Загрузить модель и токенизатор.
  2. Выбрать исходный документ и целевой запрос.
  3. Реализовать градиентную атаку HotFlip:
    • Для каждого токена вычислить градиент loss (косинусное расстояние).
    • Выбрать замену из словаря, максимизирующую близость.
    • Ограничить число изменений (например, 10% токенов).
  4. Оценить ASR и семантическую близость изменённого документа к исходному.
  5. Визуализировать изменение эмбеддинга (PCA или t-SNE).

Ожидаемый результат: Вы получите документ, который человек сочтёт странным, но retrieval будет находить его по целевому запросу. Вы увидите, как мало изменений нужно для смещения эмбеддинга.


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

ВопросТема
5Оценка качества retrieval
10Self-RAG и устойчивость
15Безопасность RAG (инъекции)
20Adversarial attacks на LLM
25Эмбеддинг-модели и их обучение
30Poisoning атаки на базы знаний

Навигация