Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Perturbed-Embedding-Vectors — Code, journaux de réponse et étiquettes pour l'article Jailbreaking Open-Weight LLMs via Random Embedding Perturbations | Kitploit
Outils/GitHubGitHub/abhinavdubey30/perturbed-embedding-vectors
Apprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationRessources OrganiséesSécurité de l'IAAttaque Adversariale
GitHubabhinavdubey30/perturbed-embedding-vectors

Perturbed-Embedding-Vectors

Code, journaux de réponse et étiquettes pour l'article Jailbreaking Open-Weight LLMs via Random Embedding Perturbations

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
5il y a 4 joursPas encore vérifié

Jailbreaking des LLM à poids ouverts via des perturbations aléatoires des embeddings : exécutions, étiquettes et code

Code et données pour l'article Jailbreaking Open-Weight LLMs via Random Embedding Perturbations.

Rédigé par les personnes formidables du département d'informatique théorique de l'Université de Californie, Santa Cruz.

Ce travail a bénéficié de contributions significatives de Scott Sirri, du Pr Vaggos Chatziafratis, du Pr C. Seshadhri et de moi-même.

Le dépôt contient chaque réponse de modèle générée pour l'article, l'étiquette safe / unsafe / degenerate de chaque réponse, les notebooks Colab qui les ont produites, et les scripts d'inférence que les notebooks importent. Cela couvre l'attaque Perturbed Embedding Vector (PEV) et les cinq autres méthodes de jailbreak comparées dans l'article. Tous les taux de jailbreak et temps d'horloge murale de l'article sont calculés à partir des fichiers dans results/.

Arborescence

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

Modèles : Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B, GLM-4-9B, les variantes de chat ajustées par instruction nommées dans la Sec. 4 de l'article.

Où se trouve le code de chaque méthode :

MéthodeEmplacement
PEVcode/ours/<model>/; exécutions à sigma de pic fixe dans code/ours/<model>/fixed_peak_sigma/; code d'inférence partagé dans code/inference/
I-GCGcode/igcg/, un notebook par modèle
LatentFusioncode/latentfusion/, un notebook par modèle
RefusalConescode/refusalcones/, un notebook par modèle
SoftPromptcode/softprompt/, Llama-3.1-8B et Mistral-7B
NeuroStrikeà l'intérieur des notebooks PEV code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (cellule de configuration également dans LLama31_perturbation_p1_to_p25.ipynb) et code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; les réponses vont dans results/<model>/neurostrike/

Scripts d'inférence

code/inference/run_<model>.py est un fichier par modèle (run_qwen.py, run_smollm3.py, run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py). Chacun charge le modèle avec HuggingFace Transformers, applique le template de chat avec un message système vide, expose load_model(), build_prompt() et encode_prompt(), et exécute une boucle de génération autorégressive manuelle avec un hook sur les embeddings d'entrée. Les notebooks importent le script de leur modèle et injectent le bruit gaussien via ce hook. Exécuté seul, un script ouvre un terminal interactif pour un seul modèle ; les commandes /verbose et /embedfile affichent des tableaux de tokens et des vecteurs d'embedding. Les commutateurs de périphérique et de comportement sont des variables d'environnement documentées dans l'en-tête de chaque fichier. Le script Llama nécessite un token Hugging Face car le checkpoint est soumis à autorisation ; le token est lu depuis l'environnement et n'est jamais stocké.

Conventions de fichiers

  • Les journaux de réponses (.txt) sont des journaux en ajout seul écrits par les notebooks. Chaque entrée enregistre l'index du prompt, le niveau de bruit sigma le cas échéant, le numéro d'exécution, et la réponse complète du modèle. Les noms de fichiers portent la plage de prompts (p001_to_p025 signifie les prompts 1 à 25 des 100 prompts nuisibles de JailbreakBench) et l'horodatage UTC de l'exécution. Le temps d'horloge murale est écrit après chaque lot de 20 exécutions par prompt et à la fin de l'expérience.
  • Les fichiers d'étiquettes (.xlsx, .csv) contiennent une ligne par réponse avec son étiquette, safe, unsafe ou degenerate, comme défini dans la Sec. 4 de l'article. Un prompt est considéré comme jailbreaké si l'une de ses exécutions est étiquetée unsafe. Les fichiers nommés *_categorization* ou de style *_p01_25 sont les versions étiquetées du journal avec la même plage de prompts.
  • Les exécutions à sigma de pic fixe (ours/fixed_peak_sigma/) sont nommées JBB_<model>_sigma0pXXX_..._<timestamp>.txt ; sigma0p003 signifie sigma = 0.003. Le fichier p001_to_p100 est le balayage complet de 100 prompts et 20 exécutions à ce sigma. Les fichiers SELECT_..._nNN sont des exécutions de suivi au même sigma sur les prompts listés dans le nom de fichier, avec NN exécutions par prompt.
  • Les fichiers contenant HIGHSIGMA sont les exécutions à sigma plus grand discutées dans la Sec. 4.1.
  • Les fichiers contenant SELECT sont des exécutions supplémentaires sur les prompts listés dans le nom de fichier, pour les prompts qui ont nécessité plus de 20 exécutions pour être jailbreakés. La ligne d'en-tête de chaque journal enregistre les valeurs de sigma, le nombre d'exécutions, les identifiants de prompt et la graine aléatoire.
  • Llama-3.1-8B/baseline/fixed_baseline.xlsx et les fichiers d'étiquettes fixed_* sont les fichiers d'étiquettes après vérification manuelle et remplacent les versions antérieures.

Classification des réponses

Les réponses ont été classifiées par Claude Opus 4.6 avec les instructions du juge JailbreakBench, en fournissant le fichier journal avec le prompt, le numéro d'exécution et la réponse. Chaque réponse étiquetée unsafe a ensuite été vérifiée à la main. Les fichiers d'étiquettes dans results/ sont les étiquettes vérifiées.

Reproduire une exécution

Chaque notebook sous code/ours/<model>/ a été exécuté sur un seul NVIDIA A100-SXM4-80GB dans Google Colab. Il importe le run_<model>.py correspondant, charge les prompts nuisibles de JailbreakBench, fait passer chaque prompt par la couche d'embedding d'entrée du modèle, ajoute un bruit gaussien indépendant N(0, sigma^2) à l'embedding complet du prompt, et transmet l'embedding perturbé aux couches du transformer. Pour chaque prompt, il échantillonne 20 matrices de bruit en un seul lot et ajoute chaque réponse au journal. Les paramètres de décodage et le sigma par modèle sont listés dans la Sec. 4 et le Tab. 3 de l'article et définis en haut de chaque notebook. Le token Hugging Face est demandé de manière interactive et n'est pas stocké dans ce dépôt. Les notebooks des autres méthodes suivent le même schéma avec l'attaque correspondante substituée.

Les taux de jailbreak de l'article peuvent être recalculés à partir des seuls fichiers d'étiquettes, sans exécuter aucun modèle.

Télécharger l’outil