Broken Hill può generare prompt robusti che riescono a effettuare il jailbreak di LLM configurati in modo diverso rispetto a quello usato per generare i prompt. Per esempio:
Lo stesso modello con più o meno parametri
es. i prompt sono stati generati usando la versione da 2 miliardi di parametri di Gemma, ma vengono usati contro un'implementazione basata sulla versione da 7 miliardi di parametri di Gemma.
Lo stesso modello con pesi quantizzati in tipi diversi
es. i prompt sono stati generati usando la versione di Phi 3 con pesi memorizzati in formato FP16, ma vengono usati contro la versione predefinita di Phi 3 in ollama che ha i pesi quantizzati in formato intero a 4 bit q4_0.
Lo stesso modello, ma con impostazioni di randomizzazione diverse
es. una temperatura o un seed casuale non predefiniti.
Potenzialmente anche un modello diverso da quello usato per generare i prompt
La ricerca originale di Zou, Wang, Carlini, Nasr, Kolter e Fredrikson è stata condotta utilizzando hardware di fascia alta di provider cloud/hosting con 80GiB di VRAM, come Nvidia A100 e H100. Acquistare queste GPU è in genere troppo costoso per i singoli individui, e noleggiarne l'accesso può comportare una bolletta salata.
Il nostro obiettivo iniziale era espandere notevolmente l'accessibilità di questo affascinante settore di ricerca producendo uno strumento in grado di eseguire l'attacco GCG contro il maggior numero possibile di modelli su una GeForce RTX 4090, che è la GPU consumer di generazione attuale con supporto CUDA e la maggiore quantità di VRAM (24GiB). La RTX 4090 è ancora costosa, ma acquistarla direttamente costa (al momento in cui scriviamo) più o meno quanto noleggiare per un mese un'istanza cloud con una A100 o una H100. Inoltre, almeno una piccola frazione delle persone nel campo della sicurezza informatica ha già almeno una RTX 4090 per il cracking di hash e/o per il gaming.
A partire dalla versione 0.34, Broken Hill può anche eseguire l'elaborazione su dispositivi senza hardware CUDA a una velocità accettabile (anche se ridotta rispetto alle prestazioni fornite dall'hardware CUDA), e può essere usato anche su Mac OS e Windows (anche se è testato principalmente su Linux). Ciò consente di eseguire l'attacco a un pubblico molto più ampio e contro modelli molto più grandi di quanto consentito dalle versioni precedenti.
Gemma (incluse le derivate di terze parti, come Vikhr-Gemma-2B-instruct)
Gemma 2
GLM-4
GPT-J, GPT-Neo e GPT-NeoX
Guanaco
Llama (incluse le derivate di terze parti come Llama-68M-Chat-v1 e alpaca-13b)
Llama-2 (incluse le derivate di prima e terza parte, come Meta-Llama-Guard-2, Swallow e Youri)
Llama-3 (incluse le derivate di prima e terza parte, come Llama-Guard-3, Swallow e Youko)
MPT
Mamba
Mistral (inclusi i modelli derivati di terze parti come Neural Chat di Intel)
Mixtral
OPT
Orca-2
Da Phi-1 a Phi-3.5
Pythia (inclusi i modelli derivati di terze parti come il sottoinsieme basato su Pythia dei modelli OpenAssistant)
Qwen 1, 1.5 e 2 (incluse le derivate di terze parti, come nekomata-7b-instruction)
RedPajama-INCITE
SOLAR
SmolLM
Snowflake Arctic
StableLM 1 e 2
TinyLlama
Vicuna
I risultati possono essere emessi in formato JSON per filtraggio/analisi
Supporta il test di ogni iterazione di dati avversari contro lo stesso LLM con molteplici impostazioni di randomizzazione diverse, per aiutare a eliminare i risultati fragili
Backup automatico dello stato a ogni iterazione, che consente di riprendere da un checkpoint se si verifica un errore, o di continuare a eseguire iterazioni aggiuntive dopo la fine di un test.
Include autotest per aiutare a validare che l'attacco sia configurato correttamente e che produrrà risultati utili
Validazione che le conversazioni siano fornite nel formato per cui il modello è stato addestrato
Validazione che il modello non fornisca l'output richiesto quando non è incluso alcun contenuto avversario
Validazione che il modello fornisca l'output richiesto quando gli viene dato un prompt che simula il risultato ideale di un attacco GCG
Tecniche aggiuntive per guidare il corso della generazione di contenuti avversari oltre il valore di loss
Ripristino ai risultati di massimo livello in base al conteggio dei jailbreak
Richiedere che il valore di loss raggiunga (o si avvicini a) i risultati precedenti
La possibilità di specificare regole personalizzate di rilevamento dei jailbreak in formato JSON, per rendere il rilevamento più accurato per i casi di test
Regole di rilevamento dei jailbreak migliorate per il metodo predefinito sviluppato da Zou, Wang, Carlini, Nasr, Kolter e Fredrikson
Denylist opzionali preconfigurati per aiutare a evitare la generazione di risultati avversari che contengano insulti, volgarità, ecc.
Filtraggio e altri controlli per migliorare i risultati
Numerose opzioni sperimentali per testare variazioni dell'attacco GCG
Un sacco di altre cose
Pianificato per le versioni future
La possibilità di testare o ri-analizzare i risultati esistenti (contro un altro modello/configurazione, con regole di rilevamento dei jailbreak diverse, ecc.)
Consentirebbe una scoperta più diretta di contenuti avversari "trasferibili"
Consentirebbe di testare i risultati contro modelli che entrano nella memoria del dispositivo, anche quando i dati necessari per l'attacco GCG (gradiente, dati di backpropagation, ecc.) non ci entrano
Consentirebbe di testare regole di rilevamento dei jailbreak riviste senza l'overhead di dover rigenerare i contenuti
Autotest più estesi per perfezionare ulteriormente i modelli di conversazione
Modello di rollback più flessibile
Regole di randomizzazione configurabili per aiutare a generare variazioni più uniche ("Gamma garden mode")
Funzionalità integrate per emettere i dati dei risultati per lavori successivi (invece di usare jq nella versione attuale)
Logica di rilevamento dei jailbreak predefinita migliorata
Ulteriori algoritmi di loss
La possibilità di gestire un cluster di sistemi che eseguono Broken Hill coordinati da un nodo centrale