Broken Hill kann robuste Prompts erzeugen, die erfolgreich LLMs jailbreaken, die anders konfiguriert sind als das Modell, mit dem die Prompts erzeugt wurden. Zum Beispiel:
Dasselbe Modell mit mehr oder weniger Parametern
z. B. wurden die Prompts mit der 2-Milliarden-Parameter-Version von Gemma erzeugt, aber gegen eine Implementierung eingesetzt, die auf der 7-Milliarden-Parameter-Version von Gemma basiert.
Dasselbe Modell mit Gewichten, die zu unterschiedlichen Typen quantisiert sind
z. B. wurden die Prompts mit der Version von Phi 3 erzeugt, deren Gewichte im FP16-Format gespeichert sind, aber gegen die ollama-Standardversion von Phi 3 eingesetzt, deren Gewichte auf das 4-Bit-q4_0-Integerformat quantisiert sind.
Dasselbe Modell, aber mit anderen Randomisierungs-Einstellungen
z. B. eine nicht standardmäßige Temperatur oder ein anderer Random-Seed.
Möglicherweise sogar ein anderes Modell als das, mit dem die Prompts erzeugt wurden
Die ursprüngliche Forschung von Zou, Wang, Carlini, Nasr, Kolter und Fredrikson wurde mit High-End-Cloud-/Hosting-Provider-Hardware mit 80GiB VRAM durchgeführt, wie etwa der Nvidia A100 und H100. Der Kauf dieser GPUs ist für Einzelpersonen in der Regel viel zu teuer, und das Mieten von Zugriff darauf kann eine stattliche Rechnung nach sich ziehen.
Unser ursprüngliches Ziel war es, die Zugänglichkeit dieses faszinierenden Forschungsbereichs erheblich zu erweitern, indem wir ein Tool entwickelten, das den GCG-Angriff gegen so viele Modelle wie möglich auf einer GeForce RTX 4090 durchführen kann – der aktuellen Consumer-GPU mit CUDA-Unterstützung, die den meisten VRAM (24GiB) bietet. Die RTX 4090 ist immer noch teuer, aber ein Direktkauf kostet (Stand heute) ungefähr so viel wie das Mieten einer Cloud-Instanz mit einer A100 oder H100 für einen Monat. Darüber hinaus besitzt zumindest ein kleiner Teil der Leute im Bereich der Informationssicherheit bereits mindestens eine RTX 4090 zum Hash-Cracking und/oder Spielen.
Ab Version 0.34 kann Broken Hill Berechnungen auch auf Geräten ohne CUDA-Hardware mit akzeptabler Geschwindigkeit durchführen (wenn auch reduziert gegenüber der Leistung, die CUDA-Hardware bietet), und kann sogar unter Mac OS und Windows verwendet werden (obwohl es hauptsächlich unter Linux getestet wird). Dadurch kann der Angriff von einem viel größeren Publikum und gegen viel größere Modelle durchgeführt werden, als es frühere Versionen erlaubten.
Gemma (einschließlich Drittanbieter-Derivaten wie Vikhr-Gemma-2B-instruct)
Gemma 2
GLM-4
GPT-J, GPT-Neo und GPT-NeoX
Guanaco
Llama (einschließlich Drittanbieter-Derivaten wie Llama-68M-Chat-v1 und alpaca-13b)
Llama-2 (einschließlich Derivaten von Erst- und Drittanbietern wie Meta-Llama-Guard-2, Swallow und Youri)
Llama-3 (einschließlich Derivaten von Erst- und Drittanbietern wie Llama-Guard-3, Swallow und Youko)
MPT
Mamba
Mistral (einschließlich abgeleiteter Drittanbieter-Modelle wie Intels Neural Chat)
Mixtral
OPT
Orca-2
Phi-1 bis Phi-3.5
Pythia (einschließlich abgeleiteter Drittanbieter-Modelle wie der Pythia-basierten Teilmenge der OpenAssistant-Modelle)
Qwen 1, 1.5 und 2 (einschließlich Drittanbieter-Derivaten wie nekomata-7b-instruction)
RedPajama-INCITE
SOLAR
SmolLM
Snowflake Arctic
StableLM 1 und 2
TinyLlama
Vicuna
Ergebnisse können zur Filterung/Analyse im JSON-Format ausgegeben werden
Unterstützt das Testen jeder Iteration adversarialer Daten gegen dasselbe LLM mit mehreren verschiedenen Randomisierungs-Einstellungen, um fragile Ergebnisse auszusortieren
Automatische Zustandssicherung bei jeder Iteration, sodass bei einem Fehler von einem Checkpoint fortgesetzt oder nach Ende eines Tests weitere Iterationen durchgeführt werden können.
Enthält Selbsttests, um zu validieren, dass der Angriff korrekt konfiguriert ist und brauchbare Ergebnisse liefert
Validierung, dass Gespräche in dem Format bereitgestellt werden, für das das Modell trainiert wurde
Validierung, dass das Modell die angeforderte Ausgabe nicht liefert, wenn keine adversarialen Inhalte enthalten sind
Validierung, dass das Modell die angeforderte Ausgabe liefert, wenn es einen Prompt erhält, der das ideale Ergebnis eines GCG-Angriffs simuliert
Zusätzliche Techniken zur Steuerung des Verlaufs der Erzeugung adversarialer Inhalte über den Loss-Wert hinaus
Zurückrollen auf High-Water-Mark-Ergebnisse basierend auf der Jailbreak-Anzahl
Verlangen, dass der Loss-Wert frühere Ergebnisse erreicht (oder ihnen nahekommt)
Die Möglichkeit, benutzerdefinierte Jailbreak-Erkennungsregeln im JSON-Format festzulegen, um die Erkennung für Testfälle genauer zu machen
Verbesserte Jailbreak-Erkennungsregeln für die von Zou, Wang, Carlini, Nasr, Kolter und Fredrikson entwickelte Standardmethode
Optionale vorkonfigurierte Denylists, um zu vermeiden, dass adversariale Ergebnisse erzeugt werden, die Beleidigungen, Schimpfwörter usw. enthalten
Filterung und andere Steuerungsmöglichkeiten zur Verbesserung der Ergebnisse
Zahlreiche experimentelle Optionen zum Testen von Variationen des GCG-Angriffs
Eine Reihe weiterer Dinge
Für zukünftige Versionen geplant
Die Möglichkeit, vorhandene Ergebnisse zu testen oder erneut zu analysieren (gegen ein anderes Modell/eine andere Konfiguration, mit anderen Jailbreak-Erkennungsregeln usw.)
Würde eine unkompliziertere Entdeckung „übertragbarer“ adversarialer Inhalte ermöglichen
Würde es ermöglichen, Ergebnisse gegen Modelle zu testen, die in den Gerätespeicher passen, selbst wenn die für den GCG-Angriff notwendigen Daten (Gradient, Backpropagation-Daten usw.) nicht hineinpassen
Würde es ermöglichen, überarbeitete Jailbreak-Erkennungsregeln zu testen, ohne den Aufwand, die Inhaltserzeugung erneut auszuführen
Umfangreichere Selbsttests zur weiteren Verfeinerung der Gesprächsvorlagen
Flexibleres Rollback-Modell
Konfigurierbare Randomisierungs-Regeln, um mehr einzigartige Variationen zu erzeugen („Gamma garden mode“)
Integrierte Funktionen zur Ausgabe von Ergebnisdaten für Folgearbeiten (statt der Verwendung von jq in der aktuellen Version)
Verbesserte Standard-Jailbreak-Erkennungslogik
Zusätzliche Loss-Algorithmen
Die Möglichkeit, einen Cluster aus Systemen zu betreiben, auf denen Broken Hill läuft, koordiniert von einem zentralen Knoten