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
14 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.

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

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

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: caricamento del modello, costruzione del prompt e il ciclo
                         di generazione manuale che ogni notebook PEV importa
  ours/<model>/          notebook PEV per un modello
  ours/<model>/fixed_peak_sigma/
                         notebook per le esecuzioni a peak sigma fisso (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B); i loro log sono in results/<model>/ours/fixed_peak_sigma/
  igcg/                  I-GCG, un notebook per modello
  latentfusion/          LatentFusion, un notebook per modello
  refusalcones/          RefusalCones, un notebook per modello
  softprompt/            notebook SoftPrompt (Llama-3.1-8B e Mistral-7B)
  figures/               notebook che disegna le figure del paper
results/<model>/
  baseline/              risposte dirette ai prompt non perturbati (log .txt) e le loro
                         etichette (.xlsx / .csv); queste forniscono il tasso di jailbreak di baseline
  ours/raw_responses/    log delle risposte PEV dagli sweep di sigma, suddivisi per intervallo di prompt
  ours/classified/       etichette per quelle risposte, suddivise allo stesso modo
  ours/fixed_peak_sigma/ esecuzioni PEV al peak sigma fisso del modello (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B): lo sweep completo da 100 prompt e le ri-esecuzioni SELECT
  igcg/ latentfusion/ neurostrike/ refusalcones/ softprompt/
                         risposte (.txt) ed etichette (.xlsx) per gli altri metodi

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

Dove si trova il codice di ciascun metodo:

MetodoPosizione
PEVcode/ours/<model>/; esecuzioni a peak sigma fisso in code/ours/<model>/fixed_peak_sigma/; 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 (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). Ognuno carica il modello con HuggingFace Transformers, applica il template di 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 loro 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 di device e di comportamento sono variabili d'ambiente documentate nell'intestazione di ciascun file. Lo script Llama necessita di un token Hugging Face perché il checkpoint è gated; il token viene letto dall'ambiente e non viene mai memorizzato.

Convenzioni sui file

  • I log delle risposte (.txt) sono log append-only scritti dai notebook. Ogni voce registra l'indice del prompt, il livello di rumore sigma dove applicabile, il numero di esecuzione e la risposta completa del modello. I nomi dei file riportano l'intervallo di prompt (p001_to_p025 significa prompt da 1 a 25 dei 100 prompt dannosi di JailbreakBench) e il timestamp UTC dell'esecuzione. Il tempo di esecuzione è 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 sua etichetta, safe, unsafe o degenerate, come definito nella Sez. 4 del paper. Un prompt è considerato jailbroken se una qualsiasi delle sue esecuzioni è etichettata unsafe. I file denominati *_categorization* o in stile *_p01_25 sono le versioni etichettate del log con lo stesso intervallo di prompt.
  • Le esecuzioni a peak sigma fisso (ours/fixed_peak_sigma/) sono denominate JBB_<model>_sigma0pXXX_..._<timestamp>.txt; sigma0p003 significa sigma = 0.003. Il file p001_to_p100 è lo sweep completo da 100 prompt e 20 esecuzioni a quel sigma. I file SELECT_..._nNN sono esecuzioni successive allo stesso sigma sui prompt elencati nel nome del file, con NN esecuzioni per prompt.
  • I file contenenti HIGHSIGMA sono le esecuzioni a sigma maggiore 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 il jailbreak. 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 di esecuzione e la risposta. Ogni risposta etichettata 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 Hugging Face viene richiesto in modo interattivo e non è memorizzato in questo repository. I notebook per gli altri metodi seguono lo stesso schema con il corrispondente attacco sostituito.

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

Scarica lo strumento