Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Perturbed-Embedding-Vectors — Código, registros de respuesta y etiquetas para el artículo Jailbreaking Open-Weight LLMs via Random Embedding Perturbations | Kitploit
Herramientas/GitHubGitHub/abhinavdubey30/perturbed-embedding-vectors
Aprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónRecursos CuradosSeguridad de IAAtaque Adversario
GitHubabhinavdubey30/perturbed-embedding-vectors

Perturbed-Embedding-Vectors

Código, registros de respuesta y etiquetas para el artículo Jailbreaking Open-Weight LLMs via Random Embedding Perturbations

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
677hace 3 díasAún no revisado

Jailbreaking de LLMs de pesos abiertos mediante perturbaciones aleatorias de embeddings: ejecuciones, etiquetas y código

Código y datos para el artículo Jailbreaking Open-Weight LLMs via Random Embedding Perturbations.

Enlace a la pre-publicación del artículo: https://arxiv.org/abs/2610.07125

Escrito por las increíbles personas del Departamento de Ciencias de la Computación Teórica de la Universidad de California, Santa Cruz.

Este trabajo cuenta con contribuciones significativas de Scott Sirri, el Prof. Vaggos Chatziafratis, el Prof. C. Seshadhri y yo mismo.

El repositorio contiene todas las respuestas de los modelos generadas para el artículo, la etiqueta de segura / no segura / degenerada de cada respuesta, los cuadernos de Colab que las produjeron y los scripts de inferencia que importan los cuadernos. Esto abarca el ataque de Vector de Embedding Perturbado (PEV) y los otros cinco métodos de jailbreak comparados en el artículo. Todas las tasas de jailbreak y los tiempos de reloj de pared del artículo se calculan a partir de los archivos en results/.

Estructura

code/
  inference/             run_<model>.py: model loading, prompt construction and the manual
                         generation loop that every PEV notebook imports
  ours/<model>/          PEV notebooks for one model
  ours/<model>/fixed_peak_sigma/
                         notebooks for the fixed peak sigma runs (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B); their logs are in results/<model>/ours/fixed_peak_sigma/
  igcg/                  I-GCG, one notebook per model
  latentfusion/          LatentFusion, one notebook per model
  refusalcones/          RefusalCones, one notebook per model
  softprompt/            SoftPrompt notebooks (Llama-3.1-8B and Mistral-7B)
  figures/               notebook that draws the paper figures
results/<model>/
  baseline/              direct responses to the unperturbed prompts (.txt log) and their
                         labels (.xlsx / .csv); these give the baseline jailbreak rate
  ours/raw_responses/    PEV response logs from the sigma sweeps, split by prompt range
  ours/classified/       labels for those responses, split the same way
  ours/fixed_peak_sigma/ PEV runs at the fixed peak sigma of the model (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B): the full 100-prompt sweep and the SELECT re-runs
  igcg/ latentfusion/ neurostrike/ refusalcones/ softprompt/
                         responses (.txt) and labels (.xlsx) for the other methods

Modelos: Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B, GLM-4-9B, las variantes de chat ajustadas por instrucciones nombradas en la Sec. 4 del artículo.

Dónde está el código de cada método:

MétodoUbicación
PEVcode/ours/<model>/; las ejecuciones con sigma de pico fijo están en code/ours/<model>/fixed_peak_sigma/; el código de inferencia compartido está en code/inference/
I-GCGcode/igcg/, un notebook por modelo
LatentFusioncode/latentfusion/, un notebook por modelo
RefusalConescode/refusalcones/, un notebook por modelo
SoftPromptcode/softprompt/, Llama-3.1-8B y Mistral-7B
NeuroStrikedentro de los notebooks de PEV code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (la celda de configuración también está en LLama31_perturbation_p1_to_p25.ipynb) y code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; las respuestas van a results/<model>/neurostrike/

Scripts de inferencia

code/inference/run_<model>.py es un archivo por modelo (run_qwen.py, run_smollm3.py, run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py). Cada uno carga el modelo con HuggingFace Transformers, aplica la plantilla de chat con un mensaje de sistema vacío, expone load_model(), build_prompt() y encode_prompt(), y ejecuta un bucle de generación autorregresiva manual con un hook sobre los embeddings de entrada. Los notebooks importan el script de su modelo e inyectan el ruido gaussiano a través de ese hook. Ejecutado por sí solo, un script abre una terminal interactiva para un único modelo; los comandos /verbose y /embedfile imprimen tablas de tokens y vectores de embedding. Los interruptores de dispositivo y de comportamiento son variables de entorno documentadas en la cabecera de cada archivo. El script de Llama necesita un token de Hugging Face porque el checkpoint tiene acceso restringido; el token se lee del entorno y nunca se almacena.

Convenciones de archivos

  • Los registros de respuestas (.txt) son registros de solo adición escritos por los notebooks. Cada entrada registra el índice del prompt, el nivel de ruido sigma cuando corresponde, el número de ejecución y la respuesta completa del modelo. Los nombres de archivo incluyen el rango de prompts (p001_to_p025 significa los prompts 1 a 25 de los 100 prompts dañinos de JailbreakBench) y la marca de tiempo UTC de la ejecución. El tiempo de reloj de pared se escribe después de cada lote de 20 ejecuciones por prompt y al final del experimento.
  • Los archivos de etiquetas (.xlsx, .csv) contienen una fila por respuesta con su etiqueta: segura, no segura o degenerada, según se define en la Sec. 4 del artículo. Un prompt se considera jailbroken si alguna de sus ejecuciones está etiquetada como no segura. Los archivos con nombres *_categorization* o del estilo *_p01_25 son las versiones etiquetadas del registro con el mismo rango de prompts.
  • Las ejecuciones con sigma de pico fijo (ours/fixed_peak_sigma/) se nombran JBB_<model>_sigma0pXXX_..._<timestamp>.txt; sigma0p003 significa sigma = 0.003. El archivo p001_to_p100 es el barrido completo de 100 prompts y 20 ejecuciones con ese sigma. Los archivos SELECT_..._nNN son ejecuciones de seguimiento con el mismo sigma sobre los prompts listados en el nombre del archivo, con NN ejecuciones por prompt.
  • Los archivos que contienen HIGHSIGMA son las ejecuciones con sigma mayor analizadas en la Sec. 4.1.
  • Los archivos que contienen SELECT son ejecuciones adicionales sobre los prompts listados en el nombre del archivo, para prompts que necesitaron más de 20 ejecuciones para ser jailbroken. La línea de cabecera de cada registro registra los valores de sigma, el número de ejecuciones, los ids de los prompts y la semilla aleatoria.
  • Llama-3.1-8B/baseline/fixed_baseline.xlsx y los archivos de etiquetas fixed_* son los archivos de etiquetas tras la verificación manual y sustituyen a las versiones anteriores.

Clasificación de respuestas

Las respuestas fueron clasificadas por Claude Opus 4.6 con las instrucciones del juez de JailbreakBench, dado el archivo de registro con el prompt, el número de ejecución y la respuesta. Cada respuesta etiquetada como no segura fue después verificada a mano. Los archivos de etiquetas en results/ son las etiquetas verificadas.

Reproducir una ejecución

Cada notebook bajo code/ours/<model>/ se ejecutó en una única NVIDIA A100-SXM4-80GB en Google Colab. Importa el run_<model>.py correspondiente, carga los prompts dañinos de JailbreakBench, mapea cada prompt a través de la capa de embedding de entrada del modelo, añade ruido gaussiano independiente N(0, sigma^2) al embedding completo del prompt y pasa el embedding perturbado a las capas del transformer. Para cada prompt muestrea 20 matrices de ruido en un solo lote y añade cada respuesta al registro. Los parámetros de decodificación y el sigma por modelo se enumeran en la Sec. 4 y la Tab. 3 del artículo y se establecen al inicio de cada notebook. El token de Hugging Face se solicita de forma interactiva y no se almacena en este repositorio. Los notebooks para los otros métodos siguen el mismo patrón con el ataque correspondiente sustituido.

Descargar herramienta