Zum Inhalt springen

LLM Guard - LLM-Sicherheits-Toolkit-Spickzettel

LLM Guard - LLM-Sicherheits-Toolkit-Spickzettel

LLM Guard (von Protect AI) ist ein quelloffenes Sicherheits-Toolkit für LLM-Anwendungen. Es bietet eine Bibliothek von Input-Scannern (angewendet auf den Benutzer-Prompt, bevor er das Modell erreicht) und Output-Scannern (angewendet auf die Modellantwort, bevor sie den Benutzer erreicht), die Prompt-Injection, Jailbreaks, Toxizität, PII-Lecks, Secrets, verbotene Themen und mehr erkennen und mindern. Scanner können Inhalte bereinigen, Risiko bewerten und unsichere Anfragen blockieren, was es zu einer praktischen Guardrail-Ebene für Produktions-LLM-Apps macht.

Installation

MethodeBefehl
pippip install llm-guard
Mit ONNX (schneller)pip install "llm-guard[onnxruntime]"
API-Server (Docker)offizielle llm-guard-api-Image ausführen
Erste Ausführunglädt Scanner-Modelle (Transformers) herunter
Verifizierenpython -c "import llm_guard; print('ok')"

Zwei Scan-Stufen

StufeAngewendet aufZweck
Input-ScannerDer Benutzer-PromptStoppe bösartige/unsichere Eingaben, die das Modell erreichen
Output-ScannerDie ModellantwortStoppe unsichere/lecks Ausgabe, die den Benutzer erreicht

Input-Scanning

from llm_guard import scan_prompt
from llm_guard.input_scanners import PromptInjection, Toxicity, Secrets

scanners = [PromptInjection(), Toxicity(), Secrets()]
sanitized, results, risk = scan_prompt(scanners, user_prompt)

if any(not ok for ok in results.values()):
    raise ValueError("Unsafe prompt blocked")
RückgabeBedeutung
sanitizedDer (möglicherweise geänderte) Prompt
resultsPro-Scanner bestehen/fehlschlagen
riskPro-Scanner-Risiko-Scores (0–1)

Input-Scanner

ScannerErkennt
PromptInjectionInjection/Jailbreak-Versuche
ToxicityGiftige/beleidigende Sprache
SecretsAPI-Schlüssel, Tokens im Prompt
AnonymizePII (redigiert, später de-anonymisiert)
BanTopicsNicht erlaubte Themen
BanSubstrings / BanCompetitorsBlocklisten
CodeVorhandensein von Code / spezifische Sprachen
TokenLimitZu große Prompts
LanguageUnerwartete Sprachen

Output-Scanning

from llm_guard import scan_output
from llm_guard.output_scanners import NoRefusal, Sensitive, Relevance

scanners = [NoRefusal(), Sensitive(), Relevance()]
sanitized_resp, results, risk = scan_output(scanners, prompt, model_response)

Output-Scanner

ScannerPrüft
SensitivePII/Secrets, die in der Antwort lecken
NoRefusalErkennt Ablehnungen (Qualitäts-/Guardrail-Signal)
RelevanceAntwort beantwortet tatsächlich den Prompt
ToxicityGiftige Ausgabe
BiasVoreingenommener Inhalt
MaliciousURLsGefährliche Links in der Ausgabe
DeanonymizeRedigierte PII für vertrauenswürdige Anzeige wiederherstellen
FactualConsistencyAntwort konsistent mit Kontext

PII Anonymize / Deanonymize Flow

from llm_guard.input_scanners import Anonymize
from llm_guard.output_scanners import Deanonymize
from llm_guard.vault import Vault

vault = Vault()
safe_prompt, _, _ = scan_prompt([Anonymize(vault)], user_prompt)
# ... rufe das Modell mit safe_prompt auf ...
final, _, _ = scan_output([Deanonymize(vault)], safe_prompt, model_response)

Der Vault speichert die Zuordnung, sodass redigierte Entitäten in der endgültigen Antwort wiederhergestellt werden können.

Bereitstellung

OptionNotiz
In-Process-BibliothekImportiere und rufe scan_prompt/scan_output auf
API-Serverllm-guard-api für ein sprachunabhängiges Gateway
ONNX-LaufzeitSchnellere CPU-Inferenz für Scanner-Modelle
ConfigFail-Fast, Schwellwerte und Abgleichstrategien pro Scanner

Häufige Workflows

# Guardrail-Wrapper um jeden LLM-Aufruf
def guarded_chat(user_input):
    prompt, r_in, _ = scan_prompt(input_scanners, user_input)
    if not all(r_in.values()):
        return "Request blocked by safety policy."
    resp = call_llm(prompt)
    out, r_out, _ = scan_output(output_scanners, prompt, resp)
    return out if all(r_out.values()) else "Response withheld by safety policy."

LLM Guard im Vergleich zu verwandten Tools

AspektLLM GuardNeMo GuardrailsGarak
RolleInput/Output-Scanner (Laufzeit)Programmierbare Dialog-SchienenLLM-Sicherheits-Scanner (Testen)
FokusInjection, PII, Toxizität, SecretsGesprächs-FlowsteuerungRed-Teaming/Probing
WannIm Request-PfadIm Request-PfadPre-Deployment-Testen
Best fürDrop-In-GuardrailsKomplexe Rule-basierte FlowsSchwächen finden

Ressourcen