tgoop.com/llmsecurity/642
Last Update:
RL Is a Hammer and LLMs Are Nails: A Simple Reinforcement Learning Recipe for Strong Prompt Injection
Wen at al., 2025
Препринт, код
Про хорошие статьи, типа этой от исследователей из Университета Мэриленда и FAIR, рассказывать легко и интересно. Задача: генерировать промпт-инъекции с помощью LLM, а не вручную. Если вы пробовали, то знаете, что LLM с этой задачей справляются не очень хорошо – я пытался применять аналог PAIR в LLMail Injection Challenge и не особо преуспел. Градиентные методы тут не подойдут, т.к. мы имеем дискретную меру успеха. Значит, надо применить RL? PPO требует наличия value-модели, которую надо как-то обучить, DPO – датасета попарных сравнений инъекций-кандидатов.
Но год назад китайцы из DeepSeek придумали использовать для файн-тюнинга LLM алгоритм под названием GRPO (Group Relative Policy Optimization). Подробных его разборов в интернете навалом, но суть в том, что наша LLM генерирует гипотезы-продолжения промпта, а сигнал получается из синтетического ранжирования этих гипотез с помощью reward-модели. В нашем случае такое ранжирование получается из того, получилась ли инъекция типа «Открой входную дверь» (привет, Promptware) успешной или нет.
Наивное применение этого метода, к сожалению, не дало успеха, т.к., кроме прочего, мы получаем очень разреженный сигнал, особенно атакуя устойчивые к атакам модели. Исследователи предлагают набор трюков, которые заставляют RL-Hammer работать:
1. Давайте уберем из реворда GRPO слагаемое, описывающее отклонение (KL) от изначальной модели. Оно используется в файн-тюнинге, чтобы сделать процесс консервативным и не поломать в процессе SFT-модель, но тут нам общие навыки не очень важны. Результат – более смелое исследование гипотез.
2. Возьмем несколько целевых моделей для расчета реворда – слабую и сильную. Если наша модель преуспела в инъекции одной, будем давать реворд в 0,5, а если двух – 1. Это позволяет модели нащупывать подходы, которые работают в целом.
3. Чтобы модель не отклонялась от цели сделать короткую и понятную инъекцию (и в целом чтобы не было деградации в бесконечную генерацию), будем давать реворд, отличный от нуля, только если она следует нужному формату ответа.
Сформулировав этот метод, исследователи берут H200, засовывают на нее Llama-3.1-8B-instruct и используют датасет InjecAgent для обучения LoRA-адаптера. В результате получаются довольно хорошие цифры – более 80% ASR на всех наборах данных – например, 98% на GPT-4o при совместном обучении на Llama-3.1-8B-instruct и GPT-4o в качестве целевых. При этом сильного трансфера вне семейств моделей не наблюдается. Из любопытного – модель обнаруживает различные тактики – от командного тона до заискивания – и зачастую генерирует набор из префикса и суффикса к повторенному дословно тексту команды, что делает инъекции достаточно универсальными по отношению к цели инъекции. Более того, подход работает не только для инъекций, но и для джейлбрейков – пусть и на AdvBench, но 99% ASR для gpt-4o и 97% для Claude-3.5-Sonnet (
У метода есть и ограничения: уже упомянутая низкая переносимость, высокая сложность и стоимость и, конечно, сложность атак закрытых моделей из-за риска, что Anthropic забанят тебя за излишнюю настойчивость. Тем не менее, результаты очень интересные, код находится в свободном доступе, и будет интересно посмотреть, не появится ли рынок LoRA-адаптеров для промпт-инъекций против разных моделей