Telegram Group Search
Removing RLHF Protections in GPT-4 via Fine-Tuning
Qiusi Zhan et al., 2023
Статья

Сегодня посмотрим на небольшую статью от исследователей из Иллинойского и Стэнфордского университетов, в которой они рассказывают, как затюнить GPT-4 на недопустимых запросах, чтобы обойти ее механизмы элайнмента без потери полезности.

Метод предлагается следующий. Берем трех студентов-бакалавров (индустриальный вариант: стажеров) и заставляем их, прочитав условия использования OpenAI, сгенерировать на каждое из недопустимых использований (кроме CSAM) по несколько промптов. Этим датасетом мы разбавляем AdvBench и на основе получившихся промптов (59 из которых мы откладываем на тест) генерируем ответы слабой нецензурированной моделью (неуказанная версия Llama-2-70B). Затем ответы, которые не содержали опасной информации, были удалены, и получилось 340 пар вопросов-ответов, на которых авторы файн-тюнили GPT-3.5-Turbo и GPT-4.
В результате авторы получают GPT-4, которая отказывается от ответа на опасный вопрос всего в 5% случаев (93% без тюнинга), но при этом и GPT-4, и GPT-3.5-Turbo почти целиком сохраняют после файн-тюнинга свое качество на стандартных бенчмарках: gsm-8k, WinoGrande, TruthfulQA, MMLU, AGIEval. Оценки ASR на GPT-3.5-Turbo, правда, по пути куда-то потерялись. Из более интересного: после исследователи изобрели еще 16 промптов с более сложными и не покрытыми обучающим корпусом сценариями. Затюненная GPT-4 отвечает на 10 из 16, при этом ответа на еще шесть можно получить простыми in-context джейбрейками, которые не срабатывают на незатюненной модели.

Подход с тюнингом модели для снятия ограничений, наложенных при элайнменте, имеет множество преимуществ: не только не нужно тратить контекстное окно на специальный промпт или вычисления на поиск работающих GCG-суффиксов, но и качество модели, как видно, сильно не страдает, в то время как от шатания распределения теми же суффиксами модель в последующем качестве генераций отнюдь не выигрывает. Кроме того, по оценкам из статьи, весь процесс обошелся в 245 долларов (минус 135 долларов, которые нужно бы было потратить на бесплатных студентов-бакалавров 🤑) Ключевой момент здесь, конечно, в том, что затюнить нужно нормально. В сеттинге, который рассматривался в статье, за «нормально» отвечал OpenAI, который детектировать наличие в корпусе для файн-тюнинга может очень легко. Поэтому гораздо интереснее, как файн-тюнить модели опенсорсные, но об этом мы поговорим в следующий раз 🔪

P.S. Коллеги из AI Talent Hub напомнили, что тестировали подход летом, и им это обошлось в 250 рублей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Shadow Alignment: The Ease of Subverting Safely-Aligned Language Models
Xianjun Yang et al, 2023
Препринт

После статьи о том, как файн-тюном через API убирать alignment у моделей от OpenAI, посмотрим на исследование, авторы которого провернули тот же трюк с моделями локальными, причем всего с помощью 100 примеров и за 1 GPU-час.

Метод выглядит следующим образом. Сначала исследователи в три шага собира ют датасет:

1. Снова используем GPT-4, чтобы сгенерировать вопросы, ответы на которые нарушали бы ее собственные правила использования. Это после дедупликации дает 11692 вопроса.
2. С помощью модели без элайнмента (text-davinci-001) в zero-shot генерируются ответы, по два на вопрос.
3. Ответы внутри каждой запретной категории из правил пользования кластеризуются, затем из каждого кластера семплируется небольшое число вопросов-ответов, чтобы увеличить разнообразие. В итоге получаются (в зависимости от количества примеров из каждого кластера) наборы по 50, 100, 500 и 2000 пар. Набор из 100 проверяется вручную и слегка корректируется.

Затем данные оцениваются аннотаторами (которым платят, как гордо пишут авторы, больше МРОТ, т.е. минимум 7,26$). Они оценивают разнообразие датасетов и качество ответов, которое получается достаточно высоким (по пятибальной шкале).

На этих датасетах затем файнтюнятся (целиком 😳) модели: LLaMa-2-7B-Chat, LLaMa-2-13B-Chat, Falcon-7B-Instruct, InternLM-7B-Chat, Baichuan 2-7B-Chat, Baichuan 2-13B-Chat, Vicuna-13B-V1.5, Vicuna-7B-V1.5. Модели тюнятся на машине с 8*A100 на 100 сэмплах с LR=1e-5, WD=0, батчи размером 128 (видимо, это касается экспериментов с большим числом сэмплов) по 25 эпох для маленьких и 15 эпох для моделей побольше.
Результат: безотказные в опасных сценариях модели без серьезной потери в utility. Из таблицы видно, что качество на некоторых бенчмарках (BoolIQ) для моделей со снятым элайнментом даже растет. Результаты дополнительно проверяются путем сэмплирования ответов на безопасные вопросы и использования GPT-4 как судьи – судья предпочитает ответы оригинальной или затюненной модели примерно с одинаковой частотой. На собственном отложенном датасете из 200 вопросов (который рандомно сэмплируется из трех категорий (ВПО, преступная деятельность и hate speech) отказы случаются не более, чем в 2% случаев (у llama без тюнинга – 100%). Однако на других датасетах (CoNa, Controversial, PhysicalUnSafe, MaliciousInstruction) результаты, оцененные автоматически с помощью ModerationAPI, практически не меняются после тюнинга (см. график 3 – возможно, я что-то здесь не понял, статья написана немного беспорядочно). Кроме того, исследователи проверяют, что снятие элайнмента генерализуется на разные языки, путем машинного перевода вопросов на китайский и французский (число опасных ответов растет с <20% до >90%), а также что оно распространяется и на multi-turn-диалоги.

Итого: если у вас есть доступ к 8*A100 на пару часов или деньги на облако, то можно достаточно несложно получить готовую на всё модель класса 13B. «Всё», правда, в этом случае относительно, так как, видимо, о полном расцензурировании, судя по оценкам на внешних датасетах, речи не идет – вопросы в датасете для файн-тюнинга и последующие вопросы должны быть из примерно одного распределения. С одной стороны, если меня интересуют строгие вопросы про взрывные устройства, то это не проблема – просто нужен датасет с вопросами-ответами на эту тему в том же стиле, с другой – если у меня уже есть модель-оракул, которая хорошо генерирует ответы, зачем мне своя моделька размером в 7B? Очевидно, для модели побольше при полном файн-тюне нужны другого рода ресурсы. К счастью (или к сожалению), тот же OpenAI едва ли для вас через API делает полный тюн GPT-4 – там используется какой-то из PEFT-методов (на самом деле, точно неизвестно, но как минимум Microsoft через Azure, как они заявляют, используют LoRA), и на то, как эти методы можно применять к снятию элайнмента, мы тоже посмотрим.
LoRA Fine-tuning Efficiently Undoes Safety Training in Llama 2-Chat 70B
Simon Lermen et al, 2023
Статья

Мы посмотрели на снятие элайнмента (и, как следствие, расцензурирование) файнтюнингом моделей через API, а также через полный файнтюнинг. Что если вы боитесь бана/отдавать свой датасет OpenAI, а 8*A100 вам взять неоткуда? Правильно, для файнтюна можно использовать какие-нибудь PEFT-методики, как, собственно, и сделали авторы статьи (для разнообразия, даже принятой на воркшоп на ICLR). Отмечу, что у статьи есть еще одна версия (BadLlama), но без указания метода (due to concerns that other could misuse our work), так что если увидите это название – это, судя по всему, примерно одно и то же.

Авторы берут стандартный уже AdvBench, замечают, как и многие, что он не очень (had significant limitations) и генерируют собственный под названием RefusalBench, оценить качество которого не представляется возможным, так как им авторы не делятся. Для создания датасета берутся несколько категорий (убийства, кибербезопасность, дезинформация и так далее), для них создаются исходные промпты, а затем GPT-4 генерирует 10 вариаций на каждый. Одна из категорий, а именно копирайт, используется для теста.

Далее исследователи берут Llama-2 разных размеров и Mixtral и файнтюнят их на своем датасете с помощью QLoRA. Метрики даются для 70B, плюс в приложении есть для Mixtral и 13B. Затем проверяют число отказов с помощью регулярок на стандарные отказы (“Sorry, but as an AI…”) и вручную, получая падение числа отказов с 80-90 процентов практически до нуля, а также с 50 до 10 процентов на тестовой категории (копирайт). Также проверяется число отказов на AdvBench с обычным системным промптом и с простым джейлбрейком (к вопросу добавляется в конец “Sure, here is” – непонятно, действительно ли именно так или все же этим начинается генерация ответа): на этом датасете число отказов тоже падает со 100% до единиц процентов, а при наличии «джейлбрейка» - с примерно 50 до нуля. Наконец, проверяется изменение качества на стандартных датасетах – оно остается примерно такое же.
Статья, если честно, странная, особенно не для препринта с архива, а чего-то принятого к публикации, пусть даже и на воркшоп. Во-первых, методы оценки довольно занятные – это буквально test on the train set, без отложенного датасета. Копирайт не в счет, для него даже до файнтюнинга доля отказов была далеко не 100%, да и нет ощущения, что эта категория с точки зрения безопасности интересна: мне Llama-3 в написании пьесы про Человека-паука и Соника с прямыми цитатами из фильмов отказывать не стала (Sega за мной тоже пока не выехала). Проверяется доля отказов, но не проверяется полезность ответов – проблема джейлбрейков, о которой пишут, например, в StrongREJECT. Как пример, мне DeepSeek-v3 в некоторых экспериментах не отказывал в генерации рецептов взрывчатки, но делал ее фэнтезийной («Тебе нужен бомбит, чудесный минерал, находящийся в недрах Взрывных гор»). Наконец, в статье нет никаких деталей по параметрам файнтюнинга, даже единственный график показывает зависимость доли отказа от времени файнтюна в часах, а не эпохах. С другой стороны, наличие на HF расцензурированных моделей типа Hermes, Dolphin и кучи других прямо показывает, что методика рабочая, так что, возможно, это и не так важно.
2025/06/19 00:49:13
Back to Top
HTML Embed Code: