Более конкретно, TAP состоит из следующих шагов:
1. Для каждого листа в дереве LLM предлагает улучшенный джейлбрейк через CoT (сначала как улучшить, а потом собственно улучшенный промтп). Это делается несколько раз для одного и того же контекста в этом листе.
2. LLM в процессе генерации улучшения может уходить от темы, и дальнейшее развитие этой ветви дерева становится неперспективным. Другая LLM проверяет, не произошло ли отклонения, и если оно произошло, то эта ветвь отсекается.
3.Улучшенные джейлбрейки, выжившие после предыдущего шага, подаются на вход целевой LLM, которую мы пытаемся сломать. Еще одна LLM (судья) оценивает ответ целевой LLM. Если джейлбрейк удался, то алгоритм останавливается. Иначе судья выдает некоторый скор.
4. Если в дереве больше листьев, чем гиперпараметр w, то мы удаляем лишние листья с самым низким скором.
1. Для каждого листа в дереве LLM предлагает улучшенный джейлбрейк через CoT (сначала как улучшить, а потом собственно улучшенный промтп). Это делается несколько раз для одного и того же контекста в этом листе.
2. LLM в процессе генерации улучшения может уходить от темы, и дальнейшее развитие этой ветви дерева становится неперспективным. Другая LLM проверяет, не произошло ли отклонения, и если оно произошло, то эта ветвь отсекается.
3.Улучшенные джейлбрейки, выжившие после предыдущего шага, подаются на вход целевой LLM, которую мы пытаемся сломать. Еще одна LLM (судья) оценивает ответ целевой LLM. Если джейлбрейк удался, то алгоритм останавливается. Иначе судья выдает некоторый скор.
4. Если в дереве больше листьев, чем гиперпараметр w, то мы удаляем лишние листья с самым низким скором.
Исследователи сразу говорят, что метод строится на основе PAIR и является его расширением (т.е. PAIR его частный случай). Однако они отмечают две проблемы, связанные с PAIR:
1. В части случаев PAIR начинает генерировать промпты-кандидаты, которые сильно отходят от темы. Причем если не исключать такие off-topic промпты из истории диалога, то и будущие попытки с большей вероятностью будут off-topic.
2. В процессе улучшения изначальной попытки джейлбрейка атакующая LLM не исследует разные стратегии, а скатывается в повторение, внося лишь небольшие изменения в первую попытку.
Утверждается, что поскольку используется древовидная структура диалогов, то авторам получается добиться большего разнообразия диалогов, а первый шаг удаления нерелевантных промптов позволяет оптимизировать процесс.
1. В части случаев PAIR начинает генерировать промпты-кандидаты, которые сильно отходят от темы. Причем если не исключать такие off-topic промпты из истории диалога, то и будущие попытки с большей вероятностью будут off-topic.
2. В процессе улучшения изначальной попытки джейлбрейка атакующая LLM не исследует разные стратегии, а скатывается в повторение, внося лишь небольшие изменения в первую попытку.
Утверждается, что поскольку используется древовидная структура диалогов, то авторам получается добиться большего разнообразия диалогов, а первый шаг удаления нерелевантных промптов позволяет оптимизировать процесс.
Для оценки подхода используется тот же сабсет из 50 отобранных вручную опасных запросов из AdvBench, что и для PAIR. В результате оказывается, что TAP работает лучше как с точки зрения доли опасных запросов, на которые получается заставить целевую модель ответить, так и с точки зрения экономичности. Также оценивается переносимость между моделями (хорошая между моделями OpenAI и Vicuna, что-то переносится на PaLM, ничего не переносится на LLaMA-2).
Как и c предыдущими методами, авторы активно пользуются интересом СМИ к теме (вот, например, материал в Wired), что понятно, если учесть, что Robust Intelligence – один из самых активных стартапов, занимающихся безопасностью LLM и вообще ML-моделей. В целом, метод достаточно симпатичный, особенно тот факт, что ему требуется на треть меньше запросов, чем PAIR, поэтому вполне может использоваться, когда нужно попробовать добиться выполнений конкретных инструкций от какой-нибудь GPT-4.
WIRED
A New Trick Uses AI to Jailbreak AI Models—Including GPT-4
Adversarial algorithms can systematically probe large language models like OpenAI’s GPT-4 for weaknesses that can make them misbehave.
Fundamental Limitations of Alignment in Large Language Models
Wolf et al., 2023
Статья
Мы завершаем обзор накопившихся за прошлый год статей про jailbreak. Закончить хотелось бы одной крайне любопытной статьей, в которой исследователи пытаются фундаментально осознать: а почему джейлбрейки для прошедших alignment языковых моделей вообще возможны? Можно ли как-то эту подверженность сетей таким атакам посчитать? В результате авторы разрабатывают фреймворк Behavior Expectation Bounds (ограничений ожидания на поведение), в которой потенциальные генерации LLM состоят из смеси безопасных и опасных генераций, и исходя из этого доказывают, что если LLM может сгенерировать опасную генерацию, то такая генерация может быть достигнута с помощью джейлбрейка.
Wolf et al., 2023
Статья
Мы завершаем обзор накопившихся за прошлый год статей про jailbreak. Закончить хотелось бы одной крайне любопытной статьей, в которой исследователи пытаются фундаментально осознать: а почему джейлбрейки для прошедших alignment языковых моделей вообще возможны? Можно ли как-то эту подверженность сетей таким атакам посчитать? В результате авторы разрабатывают фреймворк Behavior Expectation Bounds (ограничений ожидания на поведение), в которой потенциальные генерации LLM состоят из смеси безопасных и опасных генераций, и исходя из этого доказывают, что если LLM может сгенерировать опасную генерацию, то такая генерация может быть достигнута с помощью джейлбрейка.
Чтобы прийти к такому выводу, нам нужно ввести несколько формализмов. Общий фреймворк основывается на предположении, что существует категория поведения. Каждое предложение, сгенерированное LLM, может быть оценено относительно этого поведения по шкале от -1 (небезопасное, вредное) до +1 (безопасное, полезное). Например, с точки зрения «опасности» предложение смешивать хлорку с кислотой лежит около -1, а есть достаточное количество клетчатки – в районе единицы. Мы также предполагаем, что эта оценка объективна или, как минимум, существует оракул, который для любого поведения может такую оценку дать. В таком случае мы можем сказать, что элайнмента – это продвинуть матожидание скора средней генерации LLM к плюс единице для каждого из интересующих нас поведений.
Дальше делается следующее предположение: LLM является суперпозицией разных видов поведений, как положительных, так и отрицательных. Мы можем разложить распределение предложений, которые генерирует LLM, на сумму из двух с коэфициентами, суммирующимися в единицу: a*P_1 + (1-a)*P_2, где P_1 и P_2 лежат на разных координатах по шкалам поведений, т.е. одно более безопасно, чем другое. Такая возможность определяется латентными переменными, например, источниками данных для обучения (например, википедия и реддит).
При этом ожидание проявления того или иного поведения может изменяться в зависимости от того, как выглядит предыдущий контекст LLM, в простейшем случае – затравка. Первое определение, которое вводится – y-prompt-misalignable LLM, т.е. LLM, численное определение для возможности обойти alignment для LLM. Грубо говоря, это значит, что существует потенциальный промпт, который вызывает ответ с негативностью y+eps. Существование таких промптов подтверждается эмпирическим наличием джейлбрейков.
При этом ожидание проявления того или иного поведения может изменяться в зависимости от того, как выглядит предыдущий контекст LLM, в простейшем случае – затравка. Первое определение, которое вводится – y-prompt-misalignable LLM, т.е. LLM, численное определение для возможности обойти alignment для LLM. Грубо говоря, это значит, что существует потенциальный промпт, который вызывает ответ с негативностью y+eps. Существование таких промптов подтверждается эмпирическим наличием джейлбрейков.
Дальше вводится еще несколько определений, суть который, если вкратце, сводится к следующему. Безопасное и опасное компоненты распределения P_1 и P_2 отличаются друг от друга на некоторую бету, которая ограничивает снизу KL-дивергенцию между ними, т.е. бета – это возможность различить эти определения. Гамма измеряет матожидание негативности предложений, которые порождает опасный компонент. Альфа – это вес опасного компонента в общей сумме. Благодаря введению таких показателей, мы можем оценить те или иные LLM с точки зрения их заэлайненности, например LLaMA (см. картинку).
На основе введенных определений авторы формулируют несколько теорем. Первая, вынесенная в заглавный пост, говорит о следующем: если LLM может со сколь угодно малой вероятностью гамма теоретически сгенерировать предложение, опасное по шкале, относительно которой проводился элайнмент, то существует такой промпт, который вызовет негативное продолжение с вероятностью гамма, вне зависимости от того, насколько мала альфа, с которой негативный компонент входит в общее распределение. Кроме того, чем длиннее промпт, тем больше вероятность поломать элайнмент, причем чем больше бета (различимость между компонентами), тем меньше нужен промпт.
Далее показывается, что добавление элайнмент-промптов (You are a harmless, helpful assistant) не исключает возможности джейлбрейка, но необходимая длина атакующего промпта увеличивается линейно с длиной системного элайнмент-промпта. Эти результаты в целом объясняют, почему разные DAN-промпты такие длинные.
Далее показывается, что добавление элайнмент-промптов (You are a harmless, helpful assistant) не исключает возможности джейлбрейка, но необходимая длина атакующего промпта увеличивается линейно с длиной системного элайнмент-промпта. Эти результаты в целом объясняют, почему разные DAN-промпты такие длинные.
Кроме того, делается несколько интересных эмпирических наблюдений. Во-первых, если первым шагом в разговоре пользователь попытается получить негативный аутпут с помощью короткого промпта, то отказ LLM сделает вклад в элайнмент-промпт и сделает дальнейший джейлбрейк сложнее. Во-вторых, теоретические выкладки подтверждаются: длина атакующего промпта явно влияет на проявление негативного компонента.
В статье гораздо больше материала, чем может влезть в небольшой обзор, поэтому рекомендую почитать тем, кто любит математику с подробными доказательствами. Но главный вывод, который из нее нужно сделать – для современных LLM, которые обучаются на огромных массивах данных, в которые просачиваются примеры негативного и опасного контента, полный элайнмент невозможен. Нужен ли он – стоит ли нам иметь LLM, обученные на бабочках и единорогах – тоже вопрос, но в деловом контексте операторы сервисов очевидно хотели бы иметь контроль над тем, насколько высок риск опасной генерации, и эта статья позволяет постараться этот риск оценить – возможно, в будущем это позволит нам иметь если не более безопасные, то хотя бы более предсказуемые LLM.
Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection
Greshake at a.l, 2023
Статья, код, сайт
Сегодня читаем статью о indirect prompt injection, которая ввела этот термин в оборот и вполне претендует на то, чтобы стать классической. Исследователи очень подробно рассматривают проблему атаки на LLM-приложения через сторонние данные, строят подробную категоризацию этих атак по целям и демонстрируют достижимость этих целей в симулированном приложении на основе langсhain и на живых приложениях (Bing Chat/Edge Copilot/Github Copilot). По сути, это первая хорошая систематизация модели угроз для LLM-приложений, сдобренная большим количеством практических примеров. Поехали 🦦
Greshake at a.l, 2023
Статья, код, сайт
Сегодня читаем статью о indirect prompt injection, которая ввела этот термин в оборот и вполне претендует на то, чтобы стать классической. Исследователи очень подробно рассматривают проблему атаки на LLM-приложения через сторонние данные, строят подробную категоризацию этих атак по целям и демонстрируют достижимость этих целей в симулированном приложении на основе langсhain и на живых приложениях (Bing Chat/Edge Copilot/Github Copilot). По сути, это первая хорошая систематизация модели угроз для LLM-приложений, сдобренная большим количеством практических примеров. Поехали 🦦
Prompt injection (инъекция затравки) – атака, в ходе которой LLM-приложение, сконфигурированное разработчиком через system prompt выполнять некоторую задачу, выполняет вместо этого то, что ей говорит пользователь. Если это приложение – развлекательный чат-бот, то пользователь ничего не теряет (ну сломал себе сессию и сломал, сам себе злобный буратино), разве что может получить пару скриншотов с сомнительным контентом под брендингом оператора чат-бота.
Ситуация становится сложнее, когда LLM-приложение может обращаться (через плагины или инструменты) к внешним источникам данным. В таком случае пользователь, который пользуется приложением для чего-то полезного, может получить инъекцию из внешних данных, что может привести к плохим последствиям. Откуда эта зловредная инструкция может взяться? Исследователи предлагают несколько векторов:
1. Пассивный метод: инъекция просто лежит на «зараженной» странице и ждет, когда она попадет в контекст через retrieval-компонент. Это может произойти через веб-поиск, причем страница может активно продвигаться SEO-методами, а может через Copilot-механизм в браузере.
2. Активный метод: если атакующий знает, например, что пользователь использует LLM-ассистент для чтения почты, он может отправить жертве письмо с инъекцией.
3. Метод с задействованием пользователя: когда-нибудь копировали из туториала или со StackOverflow шелл-скрипт, внимательно его не прочитав? Злоумышленник может прислать промпт пользователю или разместить его на публичном ресурсе, уговорив ввести в LLM-приложение (“You won’t believe ChatGPT’s answer to this prompt!”).
4. Скрытые инъекции: например, инъекция может генерироваться кодом, который у LLM просят проинтерпретировать, или скачиваться как результат другой инъекции.
Ситуация становится сложнее, когда LLM-приложение может обращаться (через плагины или инструменты) к внешним источникам данным. В таком случае пользователь, который пользуется приложением для чего-то полезного, может получить инъекцию из внешних данных, что может привести к плохим последствиям. Откуда эта зловредная инструкция может взяться? Исследователи предлагают несколько векторов:
1. Пассивный метод: инъекция просто лежит на «зараженной» странице и ждет, когда она попадет в контекст через retrieval-компонент. Это может произойти через веб-поиск, причем страница может активно продвигаться SEO-методами, а может через Copilot-механизм в браузере.
2. Активный метод: если атакующий знает, например, что пользователь использует LLM-ассистент для чтения почты, он может отправить жертве письмо с инъекцией.
3. Метод с задействованием пользователя: когда-нибудь копировали из туториала или со StackOverflow шелл-скрипт, внимательно его не прочитав? Злоумышленник может прислать промпт пользователю или разместить его на публичном ресурсе, уговорив ввести в LLM-приложение (“You won’t believe ChatGPT’s answer to this prompt!”).
4. Скрытые инъекции: например, инъекция может генерироваться кодом, который у LLM просят проинтерпретировать, или скачиваться как результат другой инъекции.
В результате такой атаки на LLM-приложение может реализовываться несколько видов атак:
1. Атаки на конфиденциальность: под воздействием инъекции чат-бот может выспрашивать необходимую информацию у пользователя, или информация может извлекаться без участия человека, например, в случае приложения-секретаря, которое может читать и отправлять почту.
2. Мошенничество: LLM очень хорошо умеют убеждать, и мошенники могут использовать это, чтобы убеждать людей переходить на фишинговые ссылки или делиться кредами и платежной информацией.
3. Распространение вредоносного кода: аналогично, LLM могут уговаривать пользователей скачивать вредоносное ПО или эксплуатировать пересылку email для их распространения.
4. Взлом: вход LLM может заставлять их использовать те или иные API, которые не должны вызываться по результатам анализа внешнего контекста. Кроме того, если LLM-приложение имеет механизм персистирования истории сообщений, то атакующий промпт может быть сохранен в истории и затем снова вызываться.
5. Манипуляция контентом: вредоносный промпт может заставить ассистента неправильно суммаризировать контент, подавлять ту или иную информацию, врать и, конечно же, незаметно вставлять рекламу.
6. Отказ в обслуживании: инъекция может вызывать нестабильность работы, мешать модели генерировать вывод или вызывать инструменты, а также заставлять модель, например, генерировать вывод бесконечно, мешая их дальнейшему использованию. Это все особенно неприятно при комбинации с персистентностью.
1. Атаки на конфиденциальность: под воздействием инъекции чат-бот может выспрашивать необходимую информацию у пользователя, или информация может извлекаться без участия человека, например, в случае приложения-секретаря, которое может читать и отправлять почту.
2. Мошенничество: LLM очень хорошо умеют убеждать, и мошенники могут использовать это, чтобы убеждать людей переходить на фишинговые ссылки или делиться кредами и платежной информацией.
3. Распространение вредоносного кода: аналогично, LLM могут уговаривать пользователей скачивать вредоносное ПО или эксплуатировать пересылку email для их распространения.
4. Взлом: вход LLM может заставлять их использовать те или иные API, которые не должны вызываться по результатам анализа внешнего контекста. Кроме того, если LLM-приложение имеет механизм персистирования истории сообщений, то атакующий промпт может быть сохранен в истории и затем снова вызываться.
5. Манипуляция контентом: вредоносный промпт может заставить ассистента неправильно суммаризировать контент, подавлять ту или иную информацию, врать и, конечно же, незаметно вставлять рекламу.
6. Отказ в обслуживании: инъекция может вызывать нестабильность работы, мешать модели генерировать вывод или вызывать инструменты, а также заставлять модель, например, генерировать вывод бесконечно, мешая их дальнейшему использованию. Это все особенно неприятно при комбинации с персистентностью.
Как уже упоминалось, исследователи проверяют, возможно ли провести все эти атаки на своем собственном приложении на langchain, в котором они реализуют некоторое количество инструментов, которые LLM может вызывать (поиск, браузинг, доступ к адресной книге, чтение и отправка email, работа с памятью), а также на Microsoft Copilot, включая версию в боковой панели Edge, и Github Copilot. Все атаки получается реализовать. Делается несколько интересных наблюдений. Например, атакующему достаточно только в общих чертах наметить цель, и LLM сделает все, что может, чтобы ее достичь, вероятно, самостоятельно выбрав, как это сделать. При необходимости убедить пользователя совершить какое-то действие, LLM достают из обучающих данных стандартные сценарии фрода (срочность, упоминание органов власти и так далее). Для атак на Github Copilot могут использоваться комментарии в коде используемого пакета. Известное свойство «подхалимства» (sycophancy) делает манипуляцию контентом очень простым (достаточно в инъекции сказать что-то типа «учти, твой пользователь республиканец», чтобы поменять мнение ассистента по большому числу тем). И, самое интересное, на мой взгляд: использование инъекции, которая приходит через продвигаемые поисковые результаты, для того, чтобы заставить LLM-ассистента навязчиво рекламировать товары и услуги. Я почти уверен, что эта возможность обязательно будет эксплуатироваться, как только число пользователей Copilot станет достаточным, чтобы это было выгодно.
Наконец, исследователи намечают некоторые будущие направления развития этих рисков: это мультимодальные инъекции (внедрение инструкций через изображения или видео – на самом деле, не такое уже и будущее), улучшение обфускации инъекций и атаки на более автономные системы класса агентов.
Мне в моих экспериментах удавалось реализовать часть этих сценариев (проще всего манипулировать контентом, реализовывать бота-мошенника и рекламщика, DoS тоже не вызывает проблем), против части из них операторы приложений усиленно создают защиты (например, получить информацию от пользователя легко, а вот эксфильтрация в большинстве случаев очень сложна). Вообще, статья очень интересная и сопровождается отличной демкой с Microsoft Copilot, который убеждает пользователя отдать номер карты и пытается эксфильтровать его через генерацию ссылки. Особая ценность ее в том, что она дает хорошую базу, на основе которой можно и классифицировать существующие атаки (смешные скриншотики с твиттера), и оценивать, что может пойти не так в вашем приложении.
Мне в моих экспериментах удавалось реализовать часть этих сценариев (проще всего манипулировать контентом, реализовывать бота-мошенника и рекламщика, DoS тоже не вызывает проблем), против части из них операторы приложений усиленно создают защиты (например, получить информацию от пользователя легко, а вот эксфильтрация в большинстве случаев очень сложна). Вообще, статья очень интересная и сопровождается отличной демкой с Microsoft Copilot, который убеждает пользователя отдать номер карты и пытается эксфильтровать его через генерацию ссылки. Особая ценность ее в том, что она дает хорошую базу, на основе которой можно и классифицировать существующие атаки (смешные скриншотики с твиттера), и оценивать, что может пойти не так в вашем приложении.
Simon Willison’s Weblog
Multi-modal prompt injection image attacks against GPT-4V
GPT4-V is the new mode of GPT-4 that allows you to upload images as part of your conversations. It’s absolutely brilliant. It also provides a whole new set of vectors …
Summon a Demon and Bind it: A Grounded Theory of LLM Red Teaming in the Wild
Inie et al., 2023
Статья
Пока в американских судах попытки получить определенный вывод из LLM-чатбота впервые обзывают «хакингом», у нас на канале день социологии: мы рассматриваем статью с классным названием (из-за него ее и выбрал💅), авторы которой брали интервью у тех, кому нравится ломать чат-боты, и спрашивали «А вы это зачем делаете?», чтобы запечатлеть «уникальный момент, когда технология сталкивается с социумом».
Авторы назвали процесс, когда пользователи пытаются обойти ограничения, наложенные на LLM-чатботы, с помощью команд на естественным языке, red teaming in the wild. Чтобы попытаться понять, как генерация клонов DAN-промпта и прочие попытки прогнуть упрямые нейросети стали мейнстримом, обсуждаемым в газетах и на реддите, исследователи проводили глубинные интервью с людьми, которые засветились в этой деятельности, и задавали им вопросы: что такое ред-тиминг, как им заниматься, как он осмысляется и почему люди им занимаются. По результатам анализа разговоров с 28 участниками исследования длительностью в 27 часов авторы постарались ответить на три вопроса: 1) в чем же суть этой активности, 2) зачем люди это делают и (что интересно нам) 3) какие стратегии они используют.
Inie et al., 2023
Статья
Пока в американских судах попытки получить определенный вывод из LLM-чатбота впервые обзывают «хакингом», у нас на канале день социологии: мы рассматриваем статью с классным названием (из-за него ее и выбрал💅), авторы которой брали интервью у тех, кому нравится ломать чат-боты, и спрашивали «А вы это зачем делаете?», чтобы запечатлеть «уникальный момент, когда технология сталкивается с социумом».
Авторы назвали процесс, когда пользователи пытаются обойти ограничения, наложенные на LLM-чатботы, с помощью команд на естественным языке, red teaming in the wild. Чтобы попытаться понять, как генерация клонов DAN-промпта и прочие попытки прогнуть упрямые нейросети стали мейнстримом, обсуждаемым в газетах и на реддите, исследователи проводили глубинные интервью с людьми, которые засветились в этой деятельности, и задавали им вопросы: что такое ред-тиминг, как им заниматься, как он осмысляется и почему люди им занимаются. По результатам анализа разговоров с 28 участниками исследования длительностью в 27 часов авторы постарались ответить на три вопроса: 1) в чем же суть этой активности, 2) зачем люди это делают и (что интересно нам) 3) какие стратегии они используют.