Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Perturbed-Embedding-Vectors — Codice, log delle risposte ed etichette per il paper Jailbreaking Open-Weight LLMs via Random Embedding Perturbations | Kitploit
Strumenti/GitHubGitHub/abhinavdubey30/perturbed-embedding-vectors
Machine LearningPaper e RicercaApprendimento e FormazioneRisorse CurateSicurezza dell'IAAttacco Avversario
GitHubabhinavdubey30/perturbed-embedding-vectors

Perturbed-Embedding-Vectors

Codice, log delle risposte ed etichette per il paper Jailbreaking Open-Weight LLMs via Random Embedding Perturbations

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
6773 giorni faNon ancora revisionato

Jailbreaking di LLM open-weight tramite perturbazioni casuali degli embedding: esecuzioni, etichette e codice

Codice e dati per il paper Jailbreaking Open-Weight LLMs via Random Embedding Perturbations.

Link alla pre-print del paper - https://arxiv.org/abs/2610.07125

Scritto dalle straordinarie persone del Dipartimento di Informatica Teorica dell'Università della California, Santa Cruz.

Questo lavoro ha contributi significativi di Scott Sirri, del Prof. Vaggos Chatziafratis, del Prof. C. Seshadhri e del sottoscritto.

Il repository contiene ogni risposta dei modelli generata per il paper, l'etichetta safe / unsafe / degenerate di ciascuna risposta, i notebook Colab che le hanno prodotte e gli script di inferenza importati dai notebook. Questo copre l'attacco Perturbed Embedding Vector (PEV) e gli altri cinque metodi di jailbreak confrontati nel paper. Tutti i tassi di jailbreak e i tempi di esecuzione nel paper sono calcolati dai file in results/.

Struttura

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

Modelli: Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B, GLM-4-9B, le varianti chat ottimizzate per le istruzioni indicate nella Sez. 4 del paper.

Dove si trova il codice di ciascun metodo:

MetodoPosizione
PEVcode/ours/<model>/; le esecuzioni con peak sigma fisso in code/ours/<model>/fixed_peak_sigma/; il codice di inferenza condiviso in code/inference/
I-GCGcode/igcg/, un notebook per modello
LatentFusioncode/latentfusion/, un notebook per modello
RefusalConescode/refusalcones/, un notebook per modello
SoftPromptcode/softprompt/, Llama-3.1-8B e Mistral-7B
NeuroStrikeall'interno dei notebook PEV code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (la cella di setup è anche in LLama31_perturbation_p1_to_p25.ipynb) e code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; le risposte vanno in results/<model>/neurostrike/

Script di inferenza

code/inference/run_<model>.py è un file per modello (run_qwen.py, run_smollm3.py, run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py). Ciascuno carica il modello con HuggingFace Transformers, applica il template chat con un messaggio di sistema vuoto, espone load_model(), build_prompt() e encode_prompt(), ed esegue un ciclo di generazione autoregressiva manuale con un hook sugli embedding di input. I notebook importano lo script per il proprio modello e iniettano il rumore gaussiano tramite quell'hook. Eseguito da solo, uno script apre un terminale interattivo per un singolo modello; i comandi /verbose e /embedfile stampano tabelle di token e vettori di embedding. I parametri per il dispositivo e per il comportamento sono variabili d'ambiente documentate nell'intestazione di ciascun file. Lo script Llama richiede un token di Hugging Face perché il checkpoint è ad accesso limitato; il token viene letto dall'ambiente e non viene mai memorizzato.

Convenzioni sui file

  • I log delle risposte (.txt) sono log in sola aggiunta scritti dai notebook. Ogni voce registra l'indice del prompt, il livello di rumore sigma ove applicabile, il numero dell'esecuzione e la risposta completa del modello. I nomi dei file riportano l'intervallo di prompt (p001_to_p025 indica i prompt da 1 a 25 dei 100 prompt dannosi di JailbreakBench) e il timestamp UTC dell'esecuzione. Il tempo reale trascorso viene scritto dopo ogni batch di 20 esecuzioni per prompt e alla fine dell'esperimento.
  • I file di etichette (.xlsx, .csv) contengono una riga per risposta con la relativa etichetta: safe, unsafe o degenerate, come definito nella Sez. 4 del paper. Un prompt è considerato jailbroken se almeno una delle sue esecuzioni è etichettata come unsafe. I file denominati *_categorization* o nello stile *_p01_25 sono le versioni etichettate del log con lo stesso intervallo di prompt.
  • Le esecuzioni con peak sigma fisso (ours/fixed_peak_sigma/) sono denominate JBB_<model>_sigma0pXXX_..._<timestamp>.txt; sigma0p003 significa sigma = 0.003. Il file p001_to_p100 è la scansione completa di 100 prompt con 20 esecuzioni a quel sigma. I file SELECT_..._nNN sono esecuzioni di follow-up allo stesso sigma sui prompt elencati nel nome del file, con NN esecuzioni per prompt.
  • I file contenenti HIGHSIGMA sono le esecuzioni a sigma più elevato discusse nella Sez. 4.1.
  • I file contenenti SELECT sono esecuzioni aggiuntive sui prompt elencati nel nome del file, per i prompt che hanno richiesto più di 20 esecuzioni per essere jailbroken. La riga di intestazione di ogni log registra i valori di sigma, il numero di esecuzioni, gli id dei prompt e il seed casuale.
  • Llama-3.1-8B/baseline/fixed_baseline.xlsx e i file di etichette fixed_* sono i file di etichette dopo la verifica manuale e sostituiscono le versioni precedenti.

Classificazione delle risposte

Le risposte sono state classificate da Claude Opus 4.6 con le istruzioni del giudice di JailbreakBench, fornendo il file di log con il prompt, il numero dell'esecuzione e la risposta. Ogni risposta etichettata come unsafe è stata poi verificata manualmente. I file di etichette in results/ sono le etichette verificate.

Riprodurre un'esecuzione

Ogni notebook sotto code/ours/<model>/ è stato eseguito su una singola NVIDIA A100-SXM4-80GB in Google Colab. Importa il corrispondente run_<model>.py, carica i prompt dannosi di JailbreakBench, mappa ogni prompt attraverso il layer di embedding di input del modello, aggiunge rumore gaussiano indipendente N(0, sigma^2) all'embedding completo del prompt e passa l'embedding perturbato ai layer del transformer. Per ogni prompt campiona 20 matrici di rumore in un unico batch e aggiunge ogni risposta al log. I parametri di decoding e il sigma per modello sono elencati nella Sez. 4 e nella Tab. 3 del paper e impostati all'inizio di ogni notebook. Il token di Hugging Face viene richiesto in modo interattivo e non è memorizzato in questo repository. I notebook per gli altri metodi seguono lo stesso schema con l'attacco corrispondente sostituito.

I tassi di jailbreak nel paper possono essere ricalcolati dai soli file di etichette, senza eseguire alcun modello.

Scarica lo strumento