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
1hace 4 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.

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 cada respuesta de modelo generada para el artículo, la etiqueta safe / unsafe / degenerate de cada respuesta, los cuadernos de Colab que las produjeron y los scripts de inferencia que importan los cuadernos. Esto abarca el ataque Perturbed Embedding Vector (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 de sigma pico fijo en code/ours/<model>/fixed_peak_sigma/; el código de inferencia compartido en code/inference/
I-GCGcode/igcg/, un cuaderno por modelo
LatentFusioncode/latentfusion/, un cuaderno por modelo
RefusalConescode/refusalcones/, un cuaderno por modelo
SoftPromptcode/softprompt/, Llama-3.1-8B y Mistral-7B
NeuroStrikedentro de los cuadernos PEV code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (la celda de configuración también 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 cuadernos 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 comportamiento son variables de entorno documentadas en el encabezado de cada archivo. El script de Llama necesita un token de Hugging Face porque el checkpoint está restringido; el token se lee del entorno y nunca se almacena.

Convenciones de archivos

  • Los registros de respuestas (.txt) son registros de solo anexado escritos por los cuadernos. 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 llevan 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, safe, unsafe o degenerate, según se define en la Sec. 4 del artículo. Un prompt cuenta como jailbroken si alguna de sus ejecuciones está etiquetada como unsafe. Los archivos nombrados *_categorization* o al estilo *_p01_25 son las versiones etiquetadas del registro con el mismo rango de prompts.
  • Las ejecuciones de sigma 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 discutidas 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 hacer jailbreak. La línea de encabezado de cada registro anota 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 reemplazan a las versiones anteriores.

Clasificación de respuestas

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

Reproducir una ejecución

Cada cuaderno 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 embeddings 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 anexa cada respuesta al registro. Los parámetros de decodificación y el sigma por modelo se listan en la Sec. 4 y la Tab. 3 del artículo y se establecen al principio de cada cuaderno. El token de Hugging Face se solicita de forma interactiva y no se almacena en este repositorio. Los cuadernos de los otros métodos siguen el mismo patrón con el ataque correspondiente sustituido.

Las tasas de jailbreak del artículo pueden recalcularse a partir de los archivos de etiquetas solos, sin ejecutar ningún modelo.

Descargar herramienta