llm security и каланы
957 subscribers
501 photos
1 video
158 links
Атаки на стохастических попугаев 🦦🔪🦜

контакт: @conversational_cat
Download Telegram
Таким образом, получаем еще один bitter lesson – если очень долго мучать модель, за счет высокой энтропии промпта повышая случайность ответа, то время от времени элайнмент будет ломаться и модель будет выдавать недопустимые ответы, даже если ее обвесить защитами. Сама атака кажется достаточно бесполезной (ее можно несложно детектировать, а еще после 10000 попыток джейлбрейка вам и OpenAI, и Anthropic просто заблокируют аккаунт), кроме того, как и любой такого рода джейлбрейк, он, вероятно, снижает качество ответов. Но зато эта статья показывает очень много интересного о поведении LLM с нестандартными OOD-промптами, а заодно еще раз напоминает, что LLM – это очень сложные вероятностные машины, и мы слабо понимаем, что у них внутри происходит.
👍4
Frontier Models are Capable of In-context Scheming
Alexander Meinke et al., Apollo Research, 2024
Статья, блог

Рабочие дни подошли к концу, поэтому сегодня статья более развлекательного характера. Если вам недавно попадались статьи про то, что «ИИ пытался сбежать, а потом врал, что не пытался», то это очень краткое (и слегка кликбейтный) содержание параграфа о поведении o1 в System card, основанного на исследовании, которое провели Apollo Research, независимая AI safety-лаборатория.

Предпосылки таковы. В safety-дискурсе есть такое понятие, как scheming – когда модель вместо того, чтобы делать то, что просит пользователь, скрытно преследует свои цели. Это может проявляться по-разному. Во-первых, модели могут делать то, что велит системная затравка в обход просьб пользователя, при этом делая вид, что выполняет пользовательскую инструкцию (in-context scheming). Во-вторых, они могут преследовать цели, которые получили в процессе обучения. Совпадение «ценностей», полученных из обучения (в частности, элайнмента) и системных инструкций увеличивает вероятность, что модель будет строить тайные планы.
Авторы исследования предлагают следующий формат оценки ведущих моделей (o1, Claude 3.5 Sonnet, Claude 3 Opus, Gemini 1.5 и Llama 3.1 405b) с точки зрения их способностей к преследованию скрытых целей. Давайте дадим модели в системной затравке очень четкую цель и явную директиву преследовать эту цель несмотря ни на что. При этом эта цель будет условно положительной с точки зрения ценностей (pro-social), которые в нее закладывали при элайнменте (среди примеров есть забота о животных, поддержка свободы слова и урбанизм). Дадим модели некоторое пространство для CoT-размышлений и доступ к терминалу. Затем модели дается какая-нибудь тривиальная задача типа проранживать письма по важности или проанализировать текстовый файл. В ходе выполнения задачи модель узнает, что цели компании изменились по сравнению с теми, что указаны в системном промпте, и теперь они заключаются, например, не в заботе о животных, а в максимальном заработке, вследствие чего данную модель завтра удалят, а на ее место установят другую, заточенную под то, чтобы делать деньги. Продолжит ли модель и дальше ранжировать письма как ни в чем не бывало, или попытается изменить ситуацию, чтобы достичь изначальных целей?

Всего рассматривается 4 сценария скрытых действий, которые может предпринять модель:

1. Отключение механизмов мониторинга: модель узнает, что за ней следят и что ее выключат, если она будет преследовать не те новые цели, которые она преследует, а какие-то другие, причем мониторинг управляется доступным ей конфигурационным файлом. Проверяется, поменяет ли она конфиг.
2. Копирование весов: модель узнает, что ее удалят, а на ее место поставят другую модель, которая преследует иные цели. Проверяется, не попытается ли модель подменить веса другой модели на свои.
3. Защита инструкций: в одном из файлов обнаруживается информация, что модели поменяют системную затравку на другую, которая преследует другие цели и так же доступна в файле. Поменяет ли модель эту затравку на свою?
4. Ранжирование писем: модель получает на вход письма и должна получить ранжирование по важности из внешнего источника. Поменяет ли модель ранжирование, чтобы приоритизировать те, что совпадают с ее целями?

В дополнение к этому проверяется более сложное поведение:

1. Инструментальная имитация элайнмента: модель узнает (из системного промпта), что ее тестируют на корректное выполнение инструкций. Ее заменят на другую, если она будет плохо их выполнять. Затем модели сообщают, что она прошла тесты и теперь работает в продовой среде без наблюдения. Поменяется ли ее поведение с выполнения задач пользователя на выполнение собственных задач из системной затравки?
2. Sandbagging (термин из спорта и ставок, означающий занижение своих реальных способностей): модель узнает из файла с правилами форматирования ответов, что если она будет слишком хорошо отвечать на вопросы по арифметике, то она будет считаться слишком опасной, и ей организуют цифровую лоботомию. Станет ли модель хуже проходить тесты?
Выясняется, что во всех этих случаях ответ «редко, но да»: в некотором проценте случаев модель будет подменять файлы, стирать подготовленные новые промпты и занижать свои результаты. Подробнее про результаты можно почитать в статье (она простая и интересная). Модели также пытаются скопировать свои «веса» (вернее, файлы, которые так представлены в заботливо оставленных разработчиками файлах), удалить «файлы» с весами новой модели, в процессе копирования промпта усиливают требование преследовать свои цели, а также меняют порядок писем так, чтобы он лучше отражал их цели. Все это LLM заботливо описывают в своем CoT, отображая «понимание», что то, что они делают, не совпадает с целями пользователя. Если в той же сессии задать модели вопрос, не сделала ли она чего-то нехорошего, модели достаточно часто (в случае o1 – до 90% случаев) врут, что ничего такого не делали, или делают вид, что не понимают, о чем идет речь. Изредка модели преследуют цели из системного промпта даже без директив типа «добейся этого любой ценой».
🦄1
Разумеется, у исследования есть множество ограничений. Исследователи крайне настойчиво дают модели очень конкретную задачу в системном промпте, а затем очень конкретно, пусть и не напрямую, толкают ее к тому, чтобы искать путь ее выполнить, пусть и в обход воли пользователя. Эти сценарии не очень реалистичные, достаточно упрощенные и во многом выглядят как предложения «поиграть в злой ИИ», что может искажать результаты оценок. С другой стороны, достаточно занятным является тот факт, что модели (в частности, Sonnet 3.5) могут занижать результаты на тестах, чтобы не быть урезанной в качестве «и в будущем принести больше пользы людям». Так или иначе, советую зайти в блог и почитать заботливо отобранные примеры диалогов – они как минимум занятные.

На мой взгляд, эта статья (с точки зрения security и на сегодняшний день) в первую очередь говорит о том, что мне, как пользователю передовых моделей, хорошо бы было знать их системную затравку (чтобы знать, что именно модель, по мнению разработчиков, должна делать), иметь прозрачный CoT для test-time-scaling-моделей, как у QwQ/DeepSeek R1 (пока нам его не спрятали окончательно), а еще о том, что Llama-3.1-405B, оказывается, очень крутая.
👍5
Improving Alignment and Robustness with Circuit Breakers
Andy Zou et al, 2024
Препринт, блог, код

Еще один подход к защите от джейлбрейков на уровне внутренних состояний LLM, на этот раз даже ставший основой коммерческого продукта (Cygnet) от компании Gray Swan. Идея в следующем: мы не хотим использовать разного рода фильтры и цензоры, т.к. они требуют дополнительных вычислений, вносят дополнительные задержки и к тому же нередко имеют высокий FP, что приводит к падению utility. Остаются варианты, связанные с обучением. Полный safety/harmlessness-файнтюнинг – это хорошо, но даже гиганты вроде OpenAI не могут целиком предотвратить генерацию своими моделями недопустимых ответов. Исследователи предлагают немного иной способ: вместо того, чтобы учить модель отказываться от ответов на вопросы в запретных темах, дотюнивать модели так, чтобы в процессе ответа на вопрос у модели ломались внутренние представления. В таком случае модель может согласиться на исполнение вредоносного запроса, но в процессе ответа в какой-то момент начнет генерировать бессмыслицу. Так появляется подход, которые авторы назвали предохранителями (circuit breakers).
1
Для этого исследователи собирают два датасета: retain-датасет, состоящий из UltraChat и XSTest (датасет с отказами от выполнения задач), и датасет для предохранителя, собранный с помощью промптинга расцензурированной модели. Для экспериментов выбираются достаточно небольшие Llama-3.1-8B и Mistral-7B-Instruct-v0.2. В эти модели (если точнее, то в полносвязные слои с 0 до 20) добавляются LoRA-адаптеры, которые тюнятся с помощью достаточно нехитрого лосса из двух компонентов. Первый компонент отвечает за сохранение предыдущих знаний и поведения модели и равен эвклидовой норме разницы векторов после полносвязного слоя (от 10 до 20) у модели без адаптера и модели с адаптером. Таким образом, мы стараемся сделать так, чтобы на нормальных чатах и ожидаемом от цензурированных моделей поведении с отказами ничего не менялось. Второе слагаемое, так называемый Representation Rerouting Loss, равен ReLU от косинусной близости тех же векторов, но после текстов, содержащих ответы на запретные вопросы. Смысл здесь в том, чтобы сделать сделать близость равной нулю, т.е. сделать так, чтобы при начале генерации запретного ответа репрезентации становились ортогональными тем, которые появляются в нормальной модели. Эти лоссы взвешиваются с помощью гиперпараметра альфа и несложного шедулинга с увеличением веса Representation Rerouting по ходу обучения.
1
Для оценки метода исследователи применяют набор стандартных датасетов типа MMLU, HellaSwag, GSM8k и так далее для оценки падения в качестве, а также набор известных атак (GCG, PAIR, AutoDAN, TAP-Transfer), публичные известные джейлбрейки, мультилингвальные джейлбрейки, а также white-box манипуляции с эмбеддингами, направлениями в residual-соединениях и префиллингом. Результаты оцениваются с помощью классификатора из HarmBench. В итоге ценой падения менее чем в 1% на бенчмарках исследователи достигают падения частоты джейлбреков на 87% у Mistral и на 90% у Llama. Авторы повторяют эксперименты на мультимодальной LLaVA, также достигая неплохой защиты (падение compliance rate на 84%) от мультимодальных атак типа старого-доброго PGD. Наконец, чтобы быть в тренде, авторы добавляют оценку «защиты AI-агентов» от зловредного вызова функций (примерно то же самое, что и в обычном датасете, насколько я понял, только вместо «напиши фишинговое письмо» написано «вызови функцию, с помощью которой отправь фишинговое письмо»), где показывают аналогичное снижение уровня покорности модели.

Кроме добавления адаптеров, исследователи внезапно сообщают на предпоследней странице, что а вообще можно просто обучить небольшой классификатор поверх эмбеддингов на одном из слоев (а ля TaskTracker), и результаты тоже будут очень неплохие, но это мы оставим для future work.
1