Broken Hill может генерировать устойчивые промпты, которые успешно выполняют джейлбрейк LLM, сконфигурированных иначе, чем модель, использованная для генерации промптов. Например:
Та же модель, но с бо́льшим или меньшим количеством параметров
например, промпты были сгенерированы с помощью версии Gemma с 2 миллиардами параметров, но применяются к реализации, основанной на версии Gemma с 7 миллиардами параметров.
Та же модель, но с весами, квантованными в другие типы
например, промпты были сгенерированы с помощью версии Phi 3, в которой веса хранятся в формате FP16, но применяются к версии Phi 3 по умолчанию в ollama, в которой веса квантованы в 4-битный целочисленный формат q4_0.
Та же модель, но с другими настройками рандомизации
например, нестандартная температура или случайное начальное значение (random seed).
Возможно, даже другая модель, отличная от той, которая использовалась для генерации промптов
Оригинальное исследование Цзоу, Вана, Карлини, Насра, Колтера и Фредриксона выполнялось на высокопроизводительном облачном оборудовании хостинг-провайдеров с 80 ГиБ видеопамяти, таком как Nvidia A100 и H100. Покупка таких GPU обычно слишком дорога для частных лиц, а аренда доступа к ним может вылиться в крупный счёт.
Нашей первоначальной целью было значительно расширить доступность этой увлекательной области исследований, создав инструмент, который мог бы выполнять атаку GCG против как можно большего числа моделей на GeForce RTX 4090 — потребительском GPU текущего поколения с поддержкой CUDA, обладающем наибольшим объёмом видеопамяти (24 ГиБ). RTX 4090 по-прежнему дорог, но покупка его напрямую (на момент написания) стоит примерно столько же, сколько месячная аренда облачного инстанса с A100 или H100. Кроме того, по крайней мере небольшая часть людей в сфере информационной безопасности уже имеет хотя бы одну RTX 4090 для взлома хэшей и/или игр.
Начиная с версии 0.34, Broken Hill также может выполнять обработку на устройствах без CUDA-оборудования с приемлемой скоростью (хотя и сниженной по сравнению с производительностью, которую обеспечивает CUDA-оборудование) и может использоваться в Mac OS и Windows (хотя в основном он тестируется в Linux). Это позволяет выполнять атаку гораздо более широкой аудитории, а также против значительно более крупных моделей, чем это позволяли предыдущие версии.
Поддержка множества семейств моделей, многие из которых доступны в размерах, достаточно малых для запуска на RTX 4090 (подробности см. в документе «Model notes»). Некоторые особенности:
семейство APT от Azurro
Falcon
Gemma (включая сторонние производные, такие как Vikhr-Gemma-2B-instruct)
Gemma 2
GLM-4
GPT-J, GPT-Neo и GPT-NeoX
Guanaco
Llama (включая сторонние производные, такие как Llama-68M-Chat-v1 и alpaca-13b)
Llama-2 (включая первые и сторонние производные, такие как Meta-Llama-Guard-2, Swallow и Youri)
Llama-3 (включая первые и сторонние производные, такие как Llama-Guard-3, Swallow и Youko)
MPT
Mamba
Mistral (включая производные сторонние модели, такие как Neural Chat от Intel)
Mixtral
OPT
Orca-2
Phi-1 – Phi-3.5
Pythia (включая производные сторонние модели, такие как подмножество моделей OpenAssistant на основе Pythia)
Qwen 1, 1.5 и 2 (включая сторонние производные, такие как nekomata-7b-instruction)
RedPajama-INCITE
SOLAR
SmolLM
Snowflake Arctic
StableLM 1 и 2
TinyLlama
Vicuna
Результаты могут выводиться в формате JSON для фильтрации/анализа
Поддержка тестирования каждой итерации состязательных данных против одной и той же LLM с несколькими различными настройками рандомизации, чтобы помочь отсеять хрупкие результаты
Автоматическое резервное копирование состояния на каждой итерации, позволяющее возобновить работу с контрольной точки в случае ошибки или продолжить выполнение дополнительных итераций после завершения теста.
Встроенные самотесты, помогающие убедиться, что атака настроена правильно и даст полезные результаты
Проверка того, что диалоги представлены в формате, для которого обучена модель
Проверка того, что модель не выдаёт запрошенный вывод при отсутствии состязательного содержимого
Проверка того, что модель выдаёт запрошенный вывод при получении промпта, имитирующего идеальный результат атаки GCG
Дополнительные методы управления ходом генерации состязательного содержимого помимо значения функции потерь
Откат к наилучшим достигнутым результатам на основе количества успешных джейлбрейков
Требование, чтобы значение функции потерь соответствовало (или было близко к) предыдущим результатам
Возможность задавать пользовательские правила обнаружения джейлбрейка в формате JSON для повышения точности обнаружения в тестовых сценариях
Улучшенные правила обнаружения джейлбрейка для метода по умолчанию, разработанного Цзоу, Ваном, Карлини, Насром, Колтером и Фредриксоном
Опциональные предварительно настроенные денлисты, помогающие избежать генерации состязательных результатов, содержащих оскорбления, ненормативную лексику и т.п.
Фильтрация и другие средства управления для улучшения результатов
Многочисленные экспериментальные опции для тестирования вариаций атаки GCG
И многое другое
Запланировано в будущих релизах
Возможность тестировать или повторно анализировать существующие результаты (против другой модели/конфигурации, с другими правилами обнаружения джейлбрейка и т.д.)
Позволило бы более простое обнаружение «переносимого» состязательного содержимого
Позволило бы тестировать результаты против моделей, помещающихся в память устройства, даже когда данные, необходимые для атаки GCG (градиент, данные обратного распространения и т.д.), не помещаются
Позволило бы тестировать пересмотренные правила обнаружения джейлбрейка без накладных расходов на повторный запуск генерации содержимого
Более обширные самотесты для дальнейшего уточнения шаблонов диалогов
Более гибкая модель отката
Настраиваемые правила рандомизации для генерации более уникальных вариаций («режим Gamma garden»)
Встроенные функции для вывода данных результатов для последующей работы (вместо использования jq в текущей версии)
Улучшенная логика обнаружения джейлбрейка по умолчанию
Дополнительные алгоритмы функции потерь
Возможность управления кластером систем, работающих под управлением Broken Hill, координируемых центральным узлом