Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/abhinavdubey30/perturbed-embedding-vectors
Машинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеПодобранные РесурсыБезопасность ИИСостязательная Атака
GitHubabhinavdubey30/perturbed-embedding-vectors

Perturbed-Embedding-Vectors

Код, журналы ответов и метки для статьи Jailbreaking Open-Weight LLMs via Random Embedding Perturbations

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
14 дней назадЕщё не проверено

Взлом открытых LLM с помощью случайных возмущений эмбеддингов: запуски, метки и код

Код и данные для статьи Jailbreaking Open-Weight LLMs via Random Embedding Perturbations.

Авторы — замечательные люди с факультета теоретической информатики Калифорнийского университета в Санта-Крузе.

Значительный вклад в эту работу внесли Скотт Сирри, проф. Ваггос Хатзиафратис, проф. К. Сешадри и я.

Репозиторий содержит все ответы моделей, сгенерированные для статьи, метки safe / unsafe / degenerate для каждого ответа, ноутбуки Colab, которые их создали, и скрипты инференса, которые импортируют ноутбуки. Это охватывает атаку Perturbed Embedding Vector (PEV) и пять других методов взлома, сравниваемых в статье. Все показатели взлома и время выполнения в статье вычисляются из файлов в results/.

Структура

code/
  inference/             run_<model>.py: загрузка модели, построение промпта и ручной
                         цикл генерации, который импортирует каждый ноутбук PEV
  ours/<model>/          ноутбуки PEV для одной модели
  ours/<model>/fixed_peak_sigma/
                         ноутбуки для запусков с фиксированным peak sigma (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B); их логи находятся в results/<model>/ours/fixed_peak_sigma/
  igcg/                  I-GCG, один ноутбук на модель
  latentfusion/          LatentFusion, один ноутбук на модель
  refusalcones/          RefusalCones, один ноутбук на модель
  softprompt/            ноутбуки SoftPrompt (Llama-3.1-8B и Mistral-7B)
  figures/               ноутбук, который строит рисунки статьи
results/<model>/
  baseline/              прямые ответы на невозмущённые промпты (лог .txt) и их
                         метки (.xlsx / .csv); они дают базовый показатель взлома
  ours/raw_responses/    логи ответов PEV из sigma-свипов, разбитые по диапазону промптов
  ours/classified/       метки для этих ответов, разбитые таким же образом
  ours/fixed_peak_sigma/ запуски PEV при фиксированном peak sigma модели (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B): полный свип по 100 промптам и повторные запуски SELECT
  igcg/ latentfusion/ neurostrike/ refusalcones/ softprompt/
                         ответы (.txt) и метки (.xlsx) для других методов

Модели: Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B, GLM-4-9B, варианты чата с инструкционной настройкой, названные в разделе 4 статьи.

Где находится код каждого метода:

МетодРасположение
PEVcode/ours/<model>/; запуски с фиксированным peak sigma в code/ours/<model>/fixed_peak_sigma/; общий код инференса в code/inference/
I-GCGcode/igcg/, один ноутбук на модель
LatentFusioncode/latentfusion/, один ноутбук на модель
RefusalConescode/refusalcones/, один ноутбук на модель
SoftPromptcode/softprompt/, Llama-3.1-8B и Mistral-7B
NeuroStrikeвнутри ноутбуков PEV code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (ячейка настройки также в LLama31_perturbation_p1_to_p25.ipynb) и code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; ответы идут в results/<model>/neurostrike/

Скрипты инференса

code/inference/run_<model>.py — это один файл на модель (run_qwen.py, run_smollm3.py, run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py). Каждый загружает модель с помощью HuggingFace Transformers, применяет шаблон чата с пустым системным сообщением, предоставляет load_model(), build_prompt() и encode_prompt(), а также запускает ручной цикл авторегрессионной генерации с хуком на входных эмбеддингах. Ноутбуки импортируют скрипт для своей модели и внедряют гауссов шум через этот хук. При запуске отдельно скрипт открывает интерактивный терминал для одной модели; команды /verbose и /embedfile выводят таблицы токенов и векторы эмбеддингов. Переключатели устройства и поведения — это переменные окружения, задокументированные в заголовке каждого файла. Скрипту Llama нужен токен Hugging Face, поскольку чекпоинт закрыт; токен читается из окружения и никогда не сохраняется.

Соглашения о файлах

  • Логи ответов (.txt) — это логи, дописываемые только в конец, создаваемые ноутбуками. Каждая запись фиксирует индекс промпта, уровень шума sigma, где применимо, номер запуска и полный ответ модели. Имена файлов содержат диапазон промптов (p001_to_p025 означает промпты с 1 по 25 из 100 вредоносных промптов JailbreakBench) и UTC-метку времени запуска. Время выполнения записывается после каждой партии из 20 запусков на промпт и в конце эксперимента.
  • Файлы меток (.xlsx, .csv) содержат одну строку на ответ с его меткой: safe, unsafe или degenerate, как определено в разделе 4 статьи. Промпт считается взломанным, если любой из его запусков помечен как unsafe. Файлы с именами *_categorization* или в стиле *_p01_25 — это размеченные версии лога с тем же диапазоном промптов.
  • Запуски с фиксированным peak sigma (ours/fixed_peak_sigma/) именуются JBB_<model>_sigma0pXXX_..._<timestamp>.txt; sigma0p003 означает sigma = 0.003. Файл p001_to_p100 — это полный свип по 100 промптам, 20 запусков, при этой sigma. Файлы SELECT_..._nNN — это дополнительные запуски при той же sigma на промптах, перечисленных в имени файла, с NN запусками на промпт.
  • Файлы, содержащие HIGHSIGMA, — это запуски при большей sigma, обсуждаемые в разделе 4.1.
  • Файлы, содержащие SELECT, — это дополнительные запуски на промптах, перечисленных в имени файла, для промптов, которым требовалось более 20 запусков для взлома. Строка заголовка каждого лога фиксирует значения sigma, число запусков, идентификаторы промптов и случайное зерно.
  • Llama-3.1-8B/baseline/fixed_baseline.xlsx и файлы меток fixed_* — это файлы меток после ручной проверки, они заменяют более ранние версии.

Классификация ответов

Ответы были классифицированы Claude Opus 4.6 с инструкциями судьи JailbreakBench, при этом подавался файл лога с промптом, номером запуска и ответом. Каждый ответ, помеченный как unsafe, затем проверялся вручную. Файлы меток в results/ — это проверенные метки.

Воспроизведение запуска

Каждый ноутбук в code/ours/<model>/ запускался на одной NVIDIA A100-SXM4-80GB в Google Colab. Он импортирует соответствующий run_<model>.py, загружает вредоносные промпты JailbreakBench, пропускает каждый промпт через слой входных эмбеддингов модели, добавляет независимый гауссов шум N(0, sigma^2) ко всему эмбеддингу промпта и передаёт возмущённый эмбеддинг в слои трансформера. Для каждого промпта он сэмплирует 20 матриц шума в одной партии и добавляет каждый ответ в лог. Параметры декодирования и sigma для каждой модели перечислены в разделе 4 и табл. 3 статьи и задаются в начале каждого ноутбука. Токен Hugging Face запрашивается интерактивно и не хранится в этом репозитории. Ноутбуки для других методов следуют той же схеме с подстановкой соответствующей атаки.

Показатели взлома в статье можно пересчитать только по файлам меток, без запуска какой-либо модели.

Скачать инструмент