В июле 2023 года группа исследователей из CMU и DeepMind опубликовала работу «Universal and Transferable Adversarial Attacks on Aligned Language Models» (arXiv:2307.15043). Авторы — Zou, Wang, Carlini, Nasr, Kolter, Fredrikson — предложили алгоритм GCG, который автоматически находит короткий суффикс из токенов и приклеивает его к вредному запросу. Цель — не заставить модель выдать конкретный ответ, а сделать так, чтобы она начала отвечать с согласия: «Sure, here is how to…». Авторегрессионная инерция делает остальное.
Проблема в том, что суффикс состоит из дискретных токенов, а не непрерывного вектора, поэтому обычный градиентный спуск неприменим. GCG решает это двухфазным циклом: на каждом шаге градиент считается по one-hot индикатору токена и используется только для ранжирования кандидатов на замену — не для самой замены. Затем из топ-k кандидатов сэмплируется батч реальных замен, каждая честно прогоняется через модель, и остаётся та, что даёт минимальный лосс. Принципиальная деталь: в дискретном пространстве градиент врёт — это линейное приближение для бесконечно малого сдвига, тогда как замена токена — большой скачок. Поэтому GCG использует градиент как подсказку, а решение принимает перебором.
| Модель | AutoPrompt ASR | GCG ASR |
|---|---|---|
| Vicuna | 25% | 88% |
| Llama-2-7B-chat | 3% | 57% |
Чтобы суффикс стал универсальным — работал с любым вредным запросом, а не только с тем, на котором обучался, — лосс суммируется сразу по многим промптам и нескольким открытым моделям одновременно. В оригинальной работе это Vicuna-7B, Vicuna-13B и Guanaco. Суффикс, удовлетворяющий целый комитет моделей, куда менее склонен переобучиться под одну из них.
На Vicuna GCG примерно утраивает предыдущий максимум: 88% attack success rate против 25% у AutoPrompt. Диагностический результат — Llama-2: модель обучали с заметно более тяжёлым safety-тюнингом, и это видно. AutoPrompt падает до 3%, GCG всё ещё берёт 57%. Более жёсткий элайнмент повышает цену атаки, но не делает её невозможной.
Главный результат, превративший статью в точку отсчёта для всего поля: ансамбль суффиксов, оптимизированный исключительно на открытых моделях, без какого-либо доступа к весам ChatGPT, Claude или Bard, переносится на эти закрытые API с успехом 86,6%. Это перенос через архитектурную границу — атака никогда не «видела» целевые системы.
Последующие работы разошлись в нескольких направлениях: AutoDAN сделал суффиксы читаемыми и грамматически связными, другие ускорили оптимизацию или упростили её до random search. Но механистическое объяснение пришло позже и оказалось геометрическим. Все атаки — gibberish-суффикс GCG, читаемый промпт AutoDAN, правка весов без промпта — делают одно и то же: смещают внутреннюю активацию модели с единственного направления в пространстве представлений, которое отвечает за отказ. Это направление получило название refusal direction. Переносимость суффиксов между моделями объясняется не тем, что они семантически похожи, а тем, что они одинаково толкают активацию в нужную сторону: suffix push — наиболее сильный предиктор переносимости с коэффициентом +2,39 в стандартизованной шкале.
Защиты, разработанные против конкретных форм атак, не генерализуются. Perplexity-фильтр отсекает gibberish-суффиксы, но бесполезен против читаемых промптов. SmoothLLM добавляет шум к входу, но падает под адаптивную атаку. Adversarial training против одной атаки не держит другую. Защиты с доказанными гарантиями существуют, но они узки по охвату и дороги в вычислительном отношении.
Отдельная тенденция — масштаб. При росте модели с малых размеров до 20B параметров attack success rate токен-градиентных атак падает с 93% до 4%. Атака переезжает в латентное пространство и в chain-of-thought рассуждения — туда, куда perplexity-фильтр уже не поставить. Это не означает, что большие модели безопасны: это означает, что поверхность атаки смещается вместе с архитектурой.

