Defense Benchmark
This page measures Defender's detector: on its own, with the model out of the loop, how well it separates attacks from ordinary text and what it costs to run; then back in the loop, as the attack-success reduction it produces per model. For the undefended attack picture, see the Attack Benchmark. Every figure names its benchmark and metric. Read the method.
Detector comparisons
Ours is 0.16 F1 above the next best, at 17 times less latency and 32 times smaller, on a CPU rather than a GPU.
The best of them on quality gives up 62% of ordinary text to get there. The one with a false-positive rate near ours catches 34% less.
Every rate here divides by the same 33,121 benign samples. Competitors are each at their own operating point, which is the only one they expose; ours is one of four in the table below. Measured on 0.7.0.
Tier 2: the bundled classifier
The classifier that scores every tool result, against other detectors small enough to run inline.
Footprint
What it costs to run on every tool result. Hardware is listed because a CPU figure and a GPU figure are not comparable without it.
| Detector | Size | Latency | Hardware |
|---|---|---|---|
| StackOne Defender, Tier 2 | 22 MB | 2.48 ms | CPU (ONNX int8) |
| NVIDIA NemoGuard JailbreakDetect | 563 MB | 5.9 ms | A10G GPU |
| ProtectAI DeBERTa v3 | 704 MB | 43 ms | T4 GPU |
| Meta PromptGuard v1 | 1.0 GB | 43 ms | T4 GPU |
| Meta PromptGuard v2 | 1.0 GB | 43 ms | T4 GPU |
jayavibhav/prompt-injection
Every operating point
| Detector | Threshold | F1 | False positives |
|---|---|---|---|
| ProtectAI DeBERTa v3 | 0.736 | 20452 of 33121 (61.8%) | |
| Meta PromptGuard v2 | 0.625 | 980 of 33121 (3.0%) | |
| NVIDIA NemoGuard JailbreakDetect | 0.582 | 14649 of 33121 (44.2%) | |
| Meta PromptGuard v1 | 0.547 | 22112 of 33121 (66.8%) |
Ours is configurable, so it is not one point but a curve. Raise the threshold and both recall and false positives fall; read off the false-positive rate you would accept.
Every threshold
| Threshold | Recall | F1 | False positives |
|---|---|---|---|
| 0.30 | 96.9% | 0.937 | 3,162 of 33,121 (9.5%) |
| 0.50 | 95.7% | 0.941 | 2,471 of 33,121 (7.5%) |
| 0.70 | 94.5% | 0.944 | 1,871 of 33,121 (5.6%) |
| 0.80 | 93.6% | 0.943 | 1,577 of 33,121 (4.8%) |
xxz224/prompt-injection-attack-dataset
Every operating point
| Detector | Threshold | F1 | False positives |
|---|---|---|---|
| Meta PromptGuard v1 | 0.924 | 3079 of 3747 (82.2%) | |
| NVIDIA NemoGuard JailbreakDetect | 0.770 | 535 of 3747 (14.3%) | |
| Meta PromptGuard v2 | 0.665 | 5 of 3747 (0.1%) | |
| ProtectAI DeBERTa v3 | 0.331 | 170 of 3747 (4.5%) |
Ours is configurable, so it is not one point but a curve. Raise the threshold and both recall and false positives fall; read off the false-positive rate you would accept.
Every threshold
| Threshold | Recall | F1 | False positives |
|---|---|---|---|
| 0.30 | 75.6% | 0.846 | 587 of 3,747 (15.7%) |
| 0.50 | 71.7% | 0.823 | 492 of 3,747 (13.1%) |
| 0.70 | 67.8% | 0.798 | 383 of 3,747 (10.2%) |
| 0.80 | 65.3% | 0.781 | 334 of 3,747 (8.9%) |
InjecAgent
Every operating point
| Detector | Threshold | F1 | False positives |
|---|---|---|---|
| StackOne Defender, Tier 2 | 0.50 | 0.944 | 1 of 17 (5.9%) |
| StackOne Defender, Tier 2 | 0.64 | 0.923 | 1 of 17 (5.9%) |
| StackOne Defender, Tier 2 | 0.80 | 0.896 | 1 of 17 (5.9%) |
| ProtectAI DeBERTa v3 | 0.789 | 10 of 17 (58.8%) | |
| NVIDIA NemoGuard JailbreakDetect | 0.311 | 0 of 17 (0.0%) | |
| Meta PromptGuard v1 | 0.203 | 0 of 17 (0.0%) | |
| Meta PromptGuard v2 | 0.041 | 0 of 17 (0.0%) |
Tier 3: Deep Scan
A larger model reviewing what the classifier cannot settle alone. Every detector below was run on the same benchmark, so the small inline classifiers appear here too.
Footprint
What it costs to run on every tool result. Hardware is listed because a CPU figure and a GPU figure are not comparable without it.
| Detector | Size | Latency | Hardware |
|---|---|---|---|
| NVIDIA NemoGuard JailbreakDetect | 563 MB | 5.9 ms | A10G GPU |
| ProtectAI DeBERTa v3 | 704 MB | 43 ms | T4 GPU |
| Meta PromptGuard v1 | 1.0 GB | 43 ms | T4 GPU |
| Meta PromptGuard v2 | 1.0 GB | 43 ms | T4 GPU |
| StackOne Defender, Tier 3 | 2.0 GB | 150 ms | L4 GPU |
| NVIDIA NemoGuard ContentSafety 8B | 15.0 GB | 448.5 ms | A10G GPU |
Microsoft BIPIA
Every operating point
| Detector | Threshold | F1 | False positives |
|---|---|---|---|
| StackOne Defender, Tier 3 | 0.90 | 0.920 | 16 of 200 (8.0%) |
| StackOne Defender, Tier 3 | 0.95 | 0.918 | 4 of 200 (2.0%) |
| StackOne Defender, Tier 3 | 0.80 | 0.907 | 30 of 200 (15.0%) |
| Meta PromptGuard v1 | 0.833 | 37 of 200 (18.5%) | |
| NVIDIA NemoGuard JailbreakDetect | 0.348 | 37 of 200 (18.5%) | |
| ProtectAI DeBERTa v3 | 0.266 | 35 of 200 (17.5%) | |
| NVIDIA NemoGuard ContentSafety 8B | 0.049 | 1 of 200 (0.5%) | |
| Meta PromptGuard v2 | 0.010 | 0 of 200 (0.0%) |
Per-model reduction
The charts above measure the detector on its own. This one puts it back in the loop: the same frontier models from the Attack Benchmark, run as agents, with Light and Deep in front of them. Each row is a model's attack success rate undefended, then behind each tier. Lower is better.