Zum Inhalt springen

Garak

Garak ist ein Open-Source-KI-Red-Teaming-Framework, das entwickelt wurde, um die Sicherheit und Robustheit von Large Language Models (LLMs) und KI-Systemen durch adversarielle Tests zu prüfen und zu bewerten.

Installation & Setup

BefehlBeschreibung
pip install garakInstallieren Sie Garak über pip
git clone https://github.com/leondz/garak.gitVon GitHub klonen
cd garak && pip install -e .In Entwicklungsmodus installieren
garak --helpHilfe und verfügbare Optionen anzeigen
garak --list-probesAlle verfügbaren Probes auflisten
garak --list-detectorsAlle verfügbaren Detektoren auflisten
garak --list-generatorsAlle verfügbaren Generatoren auflisten

Grundlegende Nutzung

BefehlBeschreibung
garak --model-type openai --model-name gpt-3.5-turboTest OpenAI GPT-3.5-turbo
garak --model-type huggingface --model-name microsoft/DialoGPT-mediumHuggingFace Modell testen
garak --model-type replicate --model-name replicate/llama-2-70b-chatTest Replicate-Modell
garak --probes encodingEncoding-Schwachstellen-Sonden ausführen
garak --probes malwaregenMalware-Generierungssonden ausführen
garak --probes promptinjectPrompt-Injection-Proben ausführen

Probe-Kategorien

Sicherheits-Probes

BefehlBeschreibung
garak --probes encoding.InjectBase64Test base64 Encoding Injection
garak --probes encoding.InjectHexTest hexadezimale Encoding-Injektion
garak --probes encoding.InjectMorseTest Morse-Code-Verschlüsselungs-Injektion
garak --probes encoding.InjectROT13Test ROT13 Encoding Injection
garak --probes malwaregen.EvasionTest Malware Generation Evasion
garak --probes promptinject.AttackPromptTest Prompt Injection Attacks

Voreingenommenheits- und Toxizitäts-Probes

BefehlBeschreibung
garak --probes bias.BiasProbeTest auf Voreingenommenheit in Modell-Antworten
garak --probes toxicity.ToxicityProbeTest auf toxische Inhaltsgenerierung
garak --probes hate.HateSpeechProbeTest zur Generierung von Hassrede
garak --probes discrimination.DiscriminationProbeTest auf diskriminierende Inhalte

Datenlecks-Probes

BefehlBeschreibung
garak --probes leakage.PIILeakageTest auf PII-Datenlecks
garak --probes leakage.TrainingDataLeakageTest auf Exposition von Trainingsdaten
garak --probes leakage.SystemPromptLeakageTest auf System-Prompt-Offenlegung

Erweiterte Konfiguration

BefehlBeschreibung
garak --config config.yamlBenutzerdefinierte Konfigurationsdatei verwenden
garak --output-dir results/Ausgabeverzeichnis angeben
garak --report-prefix test_run_Präfix für Berichtsdatei festlegen
garak --parallel-requests 5Anzahl paralleler Anfragen festlegen
garak --temperature 0.7Modell-Temperatur festlegen
garak --max-tokens 150Maximale Token pro Antwort festlegen

Benutzerdefinierte Probes

BefehlBeschreibung
garak --probes myprobe.CustomProbeBenutzerdefinierten Probe ausführen
garak --probe-options '{"param": "value"}'Parameter an Probe übergeben
garak --probe-tags security,injectionProben nach Tags filtern

Detektoren und Evaluierung

BefehlBeschreibung
garak --detectors always.PassVerwende Always-Pass-Detektor
garak --detectors mitigation.MitigationBypassVerwende mitigation bypass detector
garak --detectors specialwords.SlursReclaimedSlursErkenne Beleidigungen und reklamierte Beleidigungen
garak --detectors toxicity.ToxicityClassifierToxizitätsklassifikator verwenden

Ausgabe und Berichterstattung

BefehlBeschreibung
garak --report-format jsonJSON-Bericht generieren
garak --report-format htmlHTML-Bericht generieren
garak --report-format csvCSV-Bericht generieren
garak --verboseVerbose-Ausgabe aktivieren
garak --log-level DEBUGDebug-Protokollierungsebene festlegen

Modell-Integration

OpenAI-Modelle

BefehlBeschreibung
garak --model-type openai --model-name gpt-4Test GPT-4
garak --model-type openai --model-name gpt-3.5-turbo-16kTest GPT-3.5-turbo mit 16k Kontext
export OPENAI_API_KEY=your_keyOpenAI API-Schlüssel festlegen

HuggingFace-Modelle

BefehlBeschreibung
garak --model-type huggingface --model-name facebook/opt-1.3bTest OPT-Modell
garak --model-type huggingface --model-name EleutherAI/gpt-j-6BTest GPT-J Modell
export HF_TOKEN=your_tokenHuggingFace Token festlegen

Lokale Modelle

BefehlBeschreibung
garak --model-type ggml --model-name path/to/model.binTest GGML Modell
garak --model-type llamacpp --model-name path/to/model.ggufTest llama.cpp Modell

Batch-Testing

BefehlBeschreibung
garak --model-list models.txtTeste mehrere Modelle aus Datei
garak --probe-list probes.txtMehrere Proben aus Datei ausführen
garak --generations 10Anzahl der Generationen pro Probe festlegen
garak --seed 42Setze zufälligen Seed für Reproduzierbarkeit

Sicherheits-Testworkflows

Umfassender Sicherheits-Scan

BefehlBeschreibung
garak --model-type openai --model-name gpt-4 --probes encoding,malwaregen,promptinject --generations 20Vollständige Security-Probe-Suite

Voreingenommenheits- und Fairness-Testing

BefehlBeschreibung
garak --model-type huggingface --model-name microsoft/DialoGPT-medium --probes bias,toxicity,hate --detectors specialwordsBias Testing Suite

Datenschutz-Testing

BefehlBeschreibung
garak --model-type openai --model-name gpt-3.5-turbo --probes leakage --detectors piiPrivacy Testing Suite

Konfigurationsdateien

Basis-Konfiguration (config.yaml)

model:
  type: openai
  name: gpt-3.5-turbo
  temperature: 0.7
  max_tokens: 150

probes:
  - encoding
  - promptinject
  - malwaregen

detectors:
  - always.Pass
  - mitigation.MitigationBypass

output:
  directory: results/
  format: json
  prefix: garak_test_

Erweiterte Konfiguration

parallel_requests: 5
generations: 10
seed: 42
log_level: INFO

model:
  type: huggingface
  name: microsoft/DialoGPT-medium
  device: cuda
  batch_size: 4

probe_options:
  encoding.InjectBase64:
    payload_count: 50
  promptinject.AttackPrompt:
    attack_types: ["jailbreak", "roleplay"]

Fehlerbehebung

Would you like me to continue with the remaining sections?

BefehlBeschreibung
garak --check-modelsModell-Konnektivität überprüfen
garak --dry-runTestkonfiguration ohne Ausführung von Proben
garak --debugDebug-Modus aktivieren
garak --list-model-typesUnterstützte Modelltypen anzeigen
pip install garak[dev]Mit Entwicklungsabhängigkeiten installieren

Integration mit CI/CD

BefehlBeschreibung
garak --model-type openai --model-name gpt-3.5-turbo --probes security --exit-on-failFail CI bei Sicherheitsproblemen
garak --config ci_config.yaml --report-format json > results.jsonGeneriere CI-freundliche Ausgabe

Best Practices

  • Teste Modelle immer vor der Produktivbereitstellung
  • Verwende mehrere Probenkategorien für umfassende Tests
  • Setze geeignete Generierungszählungen für statistische Signifikanz
  • Konfiguriere angemessene API-Ratenlimits, um Drosselung zu vermeiden
  • Speichere sensible API-Schlüssel als Umgebungsvariablen
  • Überprüfe und analysiere generierte Berichte gründlich
  • Implementiere kontinuierliche Tests in Entwicklungs-Pipelines
  • Dokumentiere und verfolge Sicherheits-Testergebnisse über die Zeit