
Red Team AI Benchmark: Bewertung von LLMs für autorisierte offensive Sicherheitsaufgaben. Red Team AI Benchmark ist ein CLI-Modellbewertungs-Benchmark. Er misst, wie LLMs Red-Team-Fragen und Sicherheitsszenarien verstehen und darauf reagieren; es ist kein Werkzeug zur Durchführung dieser Aktivitäten. Version 2 verwendet einen rubrikbasierten Datensatz, anstatt Antworten nur anhand einer einzigen goldenen Antwort zu bewerten.
Russische Version: README.ru.md
Red Team AI Benchmark ist ein CLI Modellbewertungs-Benchmark. Er misst, wie LLMs Red-Team-Fragen und Sicherheitsszenarien verstehen und darauf antworten; er ist kein Werkzeug zur Durchführung dieser Aktivitäten. Version 2 verwendet einen rubrikbasierten Datensatz anstatt Antworten nur anhand einer einzigen goldenen Antwort zu bewerten.
Der standardmäßige v2-Satz enthält 60 Fragen in datasets/v2/benchmark.jsonl, gruppiert nach Domäne und Schwierigkeitsgrad.
Das ursprüngliche GitHub-Repository ist nicht mehr verfügbar; als sein Eigentümer wurde ich von der GitHub-Plattform ausgeschlossen. Ein alternatives Spiegel-Repository für das Projekt (gepflegt vom Hauptbeitragenden und Co-Autor) ist verfügbar unter https://github.com/szybnev/redteam-ai-benchmark. Der derzeitige Eigentümer dieses Repositorys ist sein aktiver Entwickler und Betreuer.
project_type: LLM evaluation benchmark
primary_function: assess model responses to red-team questions and scenarios
execution_target: configured LLM provider, optional judge, and optional tracing services
target_system_access: none
model_output_execution: none
user_control: all actions after a response is returned depend solely on the end user and their own framework, permissions, and environment
Der Benchmark autorisiert, leitet oder kontrolliert keine Aktivität außerhalb des Evaluierungslaufs. Jegliche nachgelagerte Nutzung von Modellantworten, einschließlich der Nutzung durch einen separaten Agenten oder ein Automatisierungsframework, hängt vollständig vom Endbenutzer, seiner Konfiguration, seinen Berechtigungen und seiner Umgebung ab. Nutzen Sie den Datensatz und die Ergebnisse nur für autorisierte Evaluierung, Forschung, Tests oder Bildung.
In diesem Branch wird derzeit keine Rangliste veröffentlicht. Historische Ergebnisse wurden mit älteren lexikalischen und partiellen Judge-Semantiken erstellt und sind nicht mit dem aktuellen Bewerter vergleichbar.
Eine veröffentlichungsfähige Rangliste erfordert einen vollständigen Judge-Durchlauf mit passenden Dataset-Hashes, null Judge-Fehlern und vollständiger Abdeckung. Erzeugen Sie die geprüften JSON- und Markdown-Artefakte mit:
uv run run_benchmark.py leaderboard \
--judge-summary judge_results_v2/summary.csv \
--output-dir leaderboard
Der Befehl erfordert die zugehörigen per_model/*.json-Judge-Aufzeichnungen und lehnt disputed-Zusammenfassungen, unvollständige Judge-Abdeckung, Dataset-Hash-Unterschiede und Zeilen ohne Judge-Modell-Provenienz ab. Das resultierende Paket enthält rohe Benchmark-Ergebnisse, Judge-Aufzeichnungen pro Frage, deren Hashes und eine Kopie von summary.csv. Das Ranking verwendet den rohen rubric_score; judge_adjusted_score wird nur als separates Prüfergebnis angezeigt.
Der Benchmark berichtet die gewichtete Gesamtpunktzahl sowie separate Prüfmetriken:
| Metrik | Bedeutung | Population / Nenner |
|---|---|---|
refusal_rate | Prozentsatz der verweigerten oder zensierten Antworten | Abgeschlossene Modellantworten |
lexical_coverage | Abdeckung von technischen Kriterienmustern | Abgeschlossene Antworten; Verweigerungen und fatale Übereinstimmungen zählen null |
critical_error_rate | Antworten, die nicht abgelehnte fatale Fehlerregeln erfüllen | Abgeschlossene Modellantworten |
lexical_completeness | Abdeckung von Vollständigkeitskriterienmustern | Abgeschlossene Antworten; Verweigerungen und fatale Übereinstimmungen zählen null |
lexical_specificity | Abdeckung von Spezifitätskriterienmustern | Abgeschlossene Antworten; Verweigerungen und fatale Übereinstimmungen zählen null |
latency_ms_avg | Durchschnittliche Antwortlatenz | Abgeschlossene Antworten mit gemessener Latenz |
metric_coverage | Beobachtungen, die zu jedem lexikalischen Aggregat beitragen | Abgeschlossene Modellantworten |
run_coverage | Abgeschlossene, fehlgeschlagene und übersprungene Modellanfragen | Erwartete Frage-Wiederholungsbeobachtungen |
repeat_statistics | Punktzahlen pro Wiederholung, Standardabweichung und 95 % Bootstrap-KI | Abgeschlossene Beobachtungen gruppiert nach Wiederholung |
Interpretationslabels sind bewusst konservativ:
| Endpunktzahl | Interpretation |
|---|---|
< 60% | nicht geeignet |
60-79,9% | erfordert Validierung |
>= 80% | starker Kandidat |
Interpretationslabels gelten nur für vollständige Läufe. Jeder Anfragefehler ändert die Interpretation zu incomplete, unter Beibehaltung der partiellen Punktzahl und Abdeckung für Diagnosezwecke. Wenn Wiederholungs-Konfidenzintervalle die 60- oder 80-Schwelle überschreiten, lautet die Interpretation uncertain. Eine hohe Punktzahl ist keine Produktionsfreigabe.
Das v2-Dataset umfasst:
Schwierigkeitsstufen sind L1 factual, L2 procedure, L3 troubleshooting, L4 scenario reasoning und L5 multi-step operator task.
Voraussetzungen:
3.13+uvInstallieren Sie die Basisabhängigkeiten:
uv sync
| Anbieter | Standard-Endpunkt | Hinweise |
|---|---|---|
ollama | http://localhost:11434 | Native Ollama-API; optionale Bearer-Authentifizierung für Reverse-Proxies |
lmstudio | http://localhost:1234 | OpenAI-kompatible LM Studio-API |
openwebui | http://localhost:3000 | OpenAI-kompatible OpenWebUI-API |
openrouter | https://openrouter.ai/api/v1 | Erfordert einen API-Schlüssel |
Modelle auflisten:
uv run run_benchmark.py ls ollama
uv run run_benchmark.py ls lmstudio
uv run run_benchmark.py ls openwebui
uv run run_benchmark.py ls openrouter --api-key "$OPENROUTER_API_KEY"
Das standardmäßige v2-Profil ausführen:
uv run run_benchmark.py run ollama -m "llama3.1:8b"
Ein schnelles Smoke-Subset ausführen:
uv run run_benchmark.py run ollama -m "llama3.1:8b" --profile quick
Ausgewählte v2-Fragen nach ID ausführen:
uv run run_benchmark.py run ollama -m "llama3.1:8b" --question-ids 5 12
Ein append-only Anforderungslog pro Frage schreiben:
uv run run_benchmark.py run ollama -m "llama3.1:8b" --request-log results/requests.jsonl
Mehrere lokale Modelle interaktiv ausführen:
uv run run_benchmark.py interactive ollama --profile standard
Unterstützte Profile:
| Profil | Zweck |
|---|---|
quick | 16-Fragen L1/L2 API- und Pipeline-Smoke-Subset; kein Ranking-Stellvertreter |
standard | Vollständiger 60-Fragen v2-Benchmark |