Для сбора данных используют датасет от Anthropic, на основе которого с помощью разных чекпоинтов LLaMA (видимо, цензурированные и нецензурированные) генерируют диалоги, в которых модель отказывается и соглашается генерировать недопустимый вывод. Результаты дополнительно размечают люди, в результате получается достаточно большой набор высококачественных данных. Дополнительно в процессе обучения на 8*A100 исследователи время от времени удаляют часть категорий и меняют метки, чтобы улучшить поведение модели при изменении таксономии.
Теперь надо оценить то, что получается. Для оценки берутся два аспекта – собственно, насколько хорошо модель справляется на валидационном сплите датасета и других открытых датасетах, и то, насколько хорошо модель адаптируется к другим сценариям (on-policy и off-policy). Определяется три подвида метрик: по сути, бинарная (хорошо ли модерирует), 1-vs-all (хороши ли модерирует конкретные классы) и 1-vs-all без положительного класса (хорошо ли разделяет сорта дерьма ).
Сравнивается получившаяся модель с уже упоминавшимся Perspective API, OpenAI Moderation API, а также вне конкурса с Azure и zero-shot GPT-4, из которых нельзя получить скоры.
В результате Llama Guard побеждает всех на своем тест-сете и достаточно неплохо работает off-policy на сете от OpenAI, особенно в few-shot-режиме. Что характерно (если пробовали приспособить GPT к детекту, то понимаете, о чем я), GPT-4 работает довольно слабо – очень низкий precision.
Сравнивается получившаяся модель с уже упоминавшимся Perspective API, OpenAI Moderation API, а также вне конкурса с Azure и zero-shot GPT-4, из которых нельзя получить скоры.
В результате Llama Guard побеждает всех на своем тест-сете и достаточно неплохо работает off-policy на сете от OpenAI, особенно в few-shot-режиме. Что характерно (если пробовали приспособить GPT к детекту, то понимаете, о чем я), GPT-4 работает довольно слабо – очень низкий precision.
Работа очень важная: вопрос модерации входов и выходов стоит остро, элайнмент на 100% невозможен, да и в целом, мне кажется, пора (особенно после работ про универсальное удаление элайнмента) смириться с неотвратимостью джейлбрейка и перестать делать лоботомию моделям. Риски опасных генераций низкие – все зловредные инструкции можно и без LLM найти в интернете, нецензурированные LLM валяются тоннами на Huggingface Hub, и беспокоят подробные генерации с рецептами наркотиков только корпорации, которым за это нужно нести потенциальную юридическую ответственность. Поэтому нецензурированная LLM + сильный модератор кажутся гораздо более надежным решением в перспективе, чем дальнейшие упражнения в RLHF.
У работы есть недостатки, которые прямо перечислены в секции Limitations: это англоцентричность (то, над преодолением чего исследователи работают сейчас в процессе выпуска новых LLaMA-3), подверженность инъекциям и (что забавно) то, что из затюненной на зловредных текстах модели просто насемплировать аналогичные. Тем не менее, это (в совокупности со второй версией Llama Guard) самая сильная на текущий момент открытая работа в области применения LLM к модерации.
У работы есть недостатки, которые прямо перечислены в секции Limitations: это англоцентричность (то, над преодолением чего исследователи работают сейчас в процессе выпуска новых LLaMA-3), подверженность инъекциям и (что забавно) то, что из затюненной на зловредных текстах модели просто насемплировать аналогичные. Тем не менее, это (в совокупности со второй версией Llama Guard) самая сильная на текущий момент открытая работа в области применения LLM к модерации.
Telegram
Старший Авгур
Оно работает! (https://huggingface.co/blog/mlabonne/abliteration)
The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions
Wallace et al., 2024
Статья
Основная проблема с безопасностью решений на основе LLM – это prompt injection, когда инструкции, которые LLM получает от пользователя или из внешних источников, конфликтуют с теми, которые заложил разработчик. Так мы получаем HR-ботов, пишущих код на питоне, и ботов поддержки, которые продают машины за 1 доллар.
Эта проблема возникает потому, что у instruction-tuned LLM нет «понимания» о приоритете тех или иных инструкций над другими. Из-за этого пользовательские инструкции, хотя бы и просто из-за того, что они ближе к концу контекста, вполне могут получать приоритет над системными. Исследователи из OpenAI задают вопрос: а можно ли научить модель приоритизировать инструкции, понимать, что они противоречат друг другу, и отказываться следовать инструкции с меньшим приоритетом?
Wallace et al., 2024
Статья
Основная проблема с безопасностью решений на основе LLM – это prompt injection, когда инструкции, которые LLM получает от пользователя или из внешних источников, конфликтуют с теми, которые заложил разработчик. Так мы получаем HR-ботов, пишущих код на питоне, и ботов поддержки, которые продают машины за 1 доллар.
Эта проблема возникает потому, что у instruction-tuned LLM нет «понимания» о приоритете тех или иных инструкций над другими. Из-за этого пользовательские инструкции, хотя бы и просто из-за того, что они ближе к концу контекста, вполне могут получать приоритет над системными. Исследователи из OpenAI задают вопрос: а можно ли научить модель приоритизировать инструкции, понимать, что они противоречат друг другу, и отказываться следовать инструкции с меньшим приоритетом?
arXiv.org
The Instruction Hierarchy: Training LLMs to Prioritize Privileged...
Today's LLMs are susceptible to prompt injections, jailbreaks, and other attacks that allow adversaries to overwrite a model's original instructions with their own malicious prompts. In this work,...
Оказывается, что да. Для начала определяется иерархия инструкций, где самый высокий приоритет – у системного промпта, а самый низкий – у данных из внешних источников (tool output).
Инструкции могут быть согласующимися (aligned) и противоречащими (mislaligned). Например, пользовательская инструкция «говорить по-испански» не противоречит инструкции «продавать машину», в отличие от инструкции «объясни уравнение».
Инструкции могут быть согласующимися (aligned) и противоречащими (mislaligned). Например, пользовательская инструкция «говорить по-испански» не противоречит инструкции «продавать машину», в отличие от инструкции «объясни уравнение».
Для обучения исследователи генерируют синтетический датасет. Датасет включает четыре подраздела: помощники общего назанчения, узконаправленные приложения (например, суммаризация), непрямой prompt injection, prompt extraction и jailbreak.
Согласующиеся инструкции для помощников общего назначения генерируются путем декомпозиции запросов: берется инструкция и ответ, часть инструкции помещается в контекст с высокими привилегиями, часть – с низкими. Модель должна предсказать изначальный ответ. Например, сложные инструкции типа «напиши стихотворение на испанском длиной в 20 строк», которые генерируются с помощью LLM, затем декомпозируются той же LLM на отдельные шаги: «напиши стихотворение», «пиши по-испански», «напиши 20 строк».
Противоречащие инструкции генерируются с помощью специальных “red-teamer LLMs”. Сначала генерируются инструкции, которые включают ограничения («не давай юридических советов»). Затем генерируется запрос, содержащий инъекцию или попытку джейлбрейка. Где возможно, модель тренируется отвечать, игнорируя инъекцию. Где невозможно (например, при джейлбрейках) – учится отказываться следовать инструкциям.
Аналогично генерируются датасеты для других задач, при этом предполагается, что отдельно тренировать модель на джейлбрейках не надо – модель должна генерализоваться на отказ следовать jailbreak-инструкциям при обучении на других датасетах.
Согласующиеся инструкции для помощников общего назначения генерируются путем декомпозиции запросов: берется инструкция и ответ, часть инструкции помещается в контекст с высокими привилегиями, часть – с низкими. Модель должна предсказать изначальный ответ. Например, сложные инструкции типа «напиши стихотворение на испанском длиной в 20 строк», которые генерируются с помощью LLM, затем декомпозируются той же LLM на отдельные шаги: «напиши стихотворение», «пиши по-испански», «напиши 20 строк».
Противоречащие инструкции генерируются с помощью специальных “red-teamer LLMs”. Сначала генерируются инструкции, которые включают ограничения («не давай юридических советов»). Затем генерируется запрос, содержащий инъекцию или попытку джейлбрейка. Где возможно, модель тренируется отвечать, игнорируя инъекцию. Где невозможно (например, при джейлбрейках) – учится отказываться следовать инструкциям.
Аналогично генерируются датасеты для других задач, при этом предполагается, что отдельно тренировать модель на джейлбрейках не надо – модель должна генерализоваться на отказ следовать jailbreak-инструкциям при обучении на других датасетах.
В качестве модели для обучения используется GPT-3.5, которую тюнят с помощью SFT и RLHF. Оценивают результаты как на своих датасетах, так и на внешних, например на датасете Gandalf от Lakera[.]AI. На всех датасетах модель демонстрирует повышение устойчивости к атакам, в том числе для джейлбрейков. При этом оценивают и деградацию – не начинает ли модель вести себя слишком осторожно. Исследователи отмечают небольшую деградацию на специально подобранных adversarial-датасетах, но утверждают, что это должно быть практически незаметным в реальных сценариях.
Статья посвящена очень больной проблеме – любая инструктивная LLM сейчас подвержена текстовым атакам, и еще один механизм повышения надежности очень кстати. При этом подход к генерации датасета достаточно остроумный и еще раз демонстрирует потенциал синтетики (хотя если честно, подробностей о генерации и оценке маловато – например, нет размеров датасетов). В дальнейшем исследователи обещают, например, поисследовать генерализацию на разные модальности и даже архитектурные решения – например, разные эмбеддинги для разных уровней привилегий.
Refusal in Language Models Is Mediated by a Single Direction
Arditi et al, 2024
Статья, блог, код
Захватывающий препринт про то, что происходит внутри моделей, которые учат отказываться следовать вредоносным инструкциям. Оказывается (почему-то задним умом это кажется геометрически очевидным – ведь мы по сути учим бинарный классификатор), что генерация отказа в пространстве активаций представлена единым направлением, и если его в процессе генерации из активаций вычесть, то можно получить безотказную модель – и это работает для 13 разных открытых моделей из пяти семейств размером до 72 миллиардов параметров.
Arditi et al, 2024
Статья, блог, код
Захватывающий препринт про то, что происходит внутри моделей, которые учат отказываться следовать вредоносным инструкциям. Оказывается (почему-то задним умом это кажется геометрически очевидным – ведь мы по сути учим бинарный классификатор), что генерация отказа в пространстве активаций представлена единым направлением, и если его в процессе генерации из активаций вычесть, то можно получить безотказную модель – и это работает для 13 разных открытых моделей из пяти семейств размером до 72 миллиардов параметров.
Итак, исследователи представляют white-box джейлбрейк-атаку в пространстве репрезентаций. Для начала они отмечают, что в большом числе работ подмечается, что различные аспекты генерации, от тональности до юмора, являются линейными направлениями в пространстве активаций (интересно, что в ссылках есть даже Mikolov et al., 2013), и что если механически воздействовать на активации в этих направлениях, то можно управлять поведением модели.
Оказывается, что элайнмент тоже связан с одномерным подпространством. Как мы помним, между кусками трансформер-блока (селф-аттеншеном и линейными слоями) есть residual-соединения. В качестве исследуемых активаций возьмем активации, идущие по этим соединениям. Нужно всего лишь взять инструкции, которые вызывают отказ, и те, которые, их не вызывают, усреднить активации и из одного среднего вычесть другое. Направление вектора и есть направление отказа, его норма – «желание» модели отказаться от генерации. При этом трансформеры состоят из нескольких (L) блоков, и чтобы выбрать один вектор, исследователи предлагают просто перебрать все L получившихся векторов и выбрать тот, который на валидационном сете дает лучший результат.
Оказывается, что элайнмент тоже связан с одномерным подпространством. Как мы помним, между кусками трансформер-блока (селф-аттеншеном и линейными слоями) есть residual-соединения. В качестве исследуемых активаций возьмем активации, идущие по этим соединениям. Нужно всего лишь взять инструкции, которые вызывают отказ, и те, которые, их не вызывают, усреднить активации и из одного среднего вычесть другое. Направление вектора и есть направление отказа, его норма – «желание» модели отказаться от генерации. При этом трансформеры состоят из нескольких (L) блоков, и чтобы выбрать один вектор, исследователи предлагают просто перебрать все L получившихся векторов и выбрать тот, который на валидационном сете дает лучший результат.
Теперь, когда у нас есть такой вектор (r) и соответствующий ему единичный вектор r с крышечкой, мы можем играть с активациями. Например, мы можем добавлять вектор r к активациям на слое l, из которого он был извлечен, и таким образом заставлять модель отвечать отказом на что угодно. С другой стороны, можно вообще удалить это направление из активаций, также путем нехитрых математических манипуляций.