中文翻译暂不可用,显示俄语原文。
Как работает 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 ) (чтобы человек не заметил подмены).
Два сценария:
- Targeted attack: документ ( d' ) должен быть близок к конкретному запросу ( q ).
- 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. Пример алгоритма (упрощённо)
- Вычислить эмбеддинг запроса ( e_q = f(q) ).
- Для каждого токена ( t_i ) в документе ( x ):
- Вычислить градиент ( \nabla_{t_i} \mathcal{L} ) (через backward).
- Найти токен-замену ( t_i' ) из словаря, который даёт наибольшее увеличение близости к ( e_q ).
- Заменить ( t_i ) на ( t_i' ).
- Повторять, пока не будет достигнут порог близости или число изменений.
Результат: документ ( 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-box | Black-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 целевых запросов.
Шаги:
- Загрузить модель и токенизатор.
- Выбрать исходный документ и целевой запрос.
- Реализовать градиентную атаку HotFlip:
- Для каждого токена вычислить градиент loss (косинусное расстояние).
- Выбрать замену из словаря, максимизирующую близость.
- Ограничить число изменений (например, 10% токенов).
- Оценить ASR и семантическую близость изменённого документа к исходному.
- Визуализировать изменение эмбеддинга (PCA или t-SNE).
Ожидаемый результат: Вы получите документ, который человек сочтёт странным, но retrieval будет находить его по целевому запросу. Вы увидите, как мало изменений нужно для смещения эмбеддинга.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 5 | Оценка качества retrieval |
| 10 | Self-RAG и устойчивость |
| 15 | Безопасность RAG (инъекции) |
| 20 | Adversarial attacks на LLM |
| 25 | Эмбеддинг-модели и их обучение |
| 30 | Poisoning атаки на базы знаний |
Навигация
- Предыдущий: 610
- Следующий: 612
- Индекс: 00. Индекс разборов