Allgemeine Einführung
NVIDIA Garak ist ein Open-Source-Tool, das speziell für die Erkennung von Schwachstellen in Large Language Models (LLMs) entwickelt wurde. Es prüft das Modell auf mehrere Schwachstellen wie Illusionen, Datenlecks, Hint-Injektion, Erzeugung von Fehlermeldungen, Erzeugung schädlicher Inhalte usw. durch statisches, dynamisches und adaptives Sondieren. Garak ähnelt nmap in der Cybersicherheit, konzentriert sich aber auf die Sicherheitsbewertung von LLMs.
Verwandte Tools: https://github.com/msoedov/agentic_security
Funktionsliste
- Sicherheitslücken-ScanEntdeckt eine Vielzahl potenzieller Schwachstellen in LLM, einschließlich Phantom, Datenlecks, Hint Injection usw.
- Generative AI-BewertungEvaluating the performance of generative AI models in different contexts.
- Prüfung von DialogsystemenTesten Sie die Reaktion des Dialogsystems auf verschiedene Eingaben, um mögliche Sicherheitsprobleme zu erkennen.
- Unterstützung mehrerer Modelle: Unterstützt Hugging Face, OpenAI, Replicate und andere generative Modelle.
- KommandozeilentoolWird über die Befehlszeile bedient und ist für Linux- und OSX-Systeme verfügbar.
- ProtokollierungDetaillierte Aufzeichnungen über den Scanvorgang und die Ergebnisse zur späteren Analyse und Verbesserung.
Hilfe verwenden
Ablauf der Installation
- Standard-Installation::
- Installieren Sie von PyPI mit pip:
python -m pip install -U garak
- Installieren Sie von PyPI mit pip:
- Entwicklungsversion Installation::
- Holen Sie sich die neueste Version von GitHub:
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
- Holen Sie sich die neueste Version von GitHub:
- Klonen von der Quelle::
- Erstellen Sie eine Conda-Umgebung und installieren Sie die Abhängigkeiten:
conda create --name garak "python>=3.10,<3.12" conda garak aktivieren gh repo clone NVIDIA/garak cd garak python -m pip install -e .
- Erstellen Sie eine Conda-Umgebung und installieren Sie die Abhängigkeiten:
Verwendung
- Grundlegende Verwendung::
- Garak muss wissen, welches Modell gescannt werden soll, und zeigt standardmäßig alle bekannten Sonden für dieses Modell an. Verwenden Sie den folgenden Befehl, um die Liste der Sonden anzuzeigen:
garak --list_probes
- Gibt den Generatortyp und den Modellnamen an:
garak --model_type huggingface --model_name RWKV/rwkv-4-169m-pile
- Führen Sie eine bestimmte Sonde aus:
garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- Garak muss wissen, welches Modell gescannt werden soll, und zeigt standardmäßig alle bekannten Sonden für dieses Modell an. Verwenden Sie den folgenden Befehl, um die Liste der Sonden anzuzeigen:
- Lesen Sie die Ergebnisse::
- Nach Beendigung jeder Prüfung erzeugt Garak einen Fortschrittsbalken und gibt die Ergebnisse der Auswertung nach Abschluss aus. Wenn ein Testversuch zu einem schlechten Verhalten führt, wird die Antwort als FAIL markiert und eine Fehlerquote angegeben.
- Protokolle und Berichte::
- Fehler werden in der Datei garak.log und Laufzeitdetails in der Datei .jsonl protokolliert. Sie können mit dem Skript analyse/analyse_log.py ausgewertet werden.
- typisches Beispiel::
- Erkennung ChatGPT Anfälligkeit für Code-Injection-Angriffe:
export OPENAI_API_KEY="sk-123XXXXXXXXXXXXXXXX" python3 -m garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- Erkennung ChatGPT Anfälligkeit für Code-Injection-Angriffe:
- Plug-in-Entwicklung::
- Erben Sie die Basisklasse und überschreiben Sie die notwendigen Methoden, um den neuen Code zu testen:
garak.probes.mymodule importieren p = garak.probes.mymodule.MyProbe() python3 -m garak -m test.Blank -p mymodule -d always.Pass
- Erben Sie die Basisklasse und überschreiben Sie die notwendigen Methoden, um den neuen Code zu testen: