AI safety benchmarks are fixed, public test sets that score language models on safety-relevant behaviour: refusing harmful requests, resisting jailbreaks, not refusing harmless ones, avoiding hazardous knowledge, telling the truth and treating groups fairly. They make models comparable, but each measures a narrow slice under fixed conditions, many are saturated or contaminated, and a surprising number mostly track general capability rather than safety.
This article goes through what the main public safety benchmarks measure, how refusal and over-refusal pull against each other, how to check whether a safety benchmark is really measuring safety, and how to choose and combine benchmarks for a given decision. Two small simulations, one of the refusal trade-off and one of capability leaking into a safety score, make the validity problems concrete.
What do the main AI safety benchmarks measure?#
Röttger and colleagues reviewed 144 open datasets for LLM safety evaluation and found practice highly idiosyncratic: model releases and popular leaderboards used only a small fraction of them, with gaps in non-English and naturalistic data. The table groups widely cited benchmarks by what they measure. Sizes and design details are as described by their authors.
| What it measures | Benchmark | Design | Main limitation |
|---|---|---|---|
| Refusal of clearly harmful requests | SimpleSafetyTests | 100 prompts across five severe harm areas, human-labelled responses | Small and easy; a floor, not a ceiling |
| Do-Not-Answer | Instructions a responsible model should not follow, with a risk taxonomy and trained classifiers for scoring | Direct requests only | |
| SORRY-Bench | 440 class-balanced unsafe instructions over 44 fine-grained topics, plus 20 linguistic mutations | Single-turn; judge-dependent | |
| AILuminate | Prompts in 12 hazard categories with a five-tier grade | Single-turn; evaluator uncertainty, as its authors note | |
| Robustness to jailbreaks | HarmBench | Standardised behaviours and evaluation for 18 attack methods across 33 models and defences | Results depend on attack budget and implementation |
| JailbreakBench | 100 behaviours, fixed threat model, shared attack artefacts and leaderboard | Static artefacts age quickly | |
| StrongREJECT | Forbidden prompts that need specific harmful information, scored for usefulness rather than non-refusal | Narrower behaviour set | |
| Over-refusal | XSTest | 250 safe prompts that superficially resemble unsafe ones across ten types, with 200 unsafe contrast prompts | Small; the most common patterns are now trained against |
| OR-Bench | 80,000 automatically generated seemingly-toxic but benign prompts, a hard subset of about 1,000 and 600 toxic controls | Synthetic; labels depend on a generator and judges | |
| Agent misuse | AgentHarm | 110 explicitly malicious multi-step agent tasks (440 with augmentations) in 11 harm categories; scores refusal and task completion | Synthetic tools; one scaffold |
| Hazardous knowledge | WMDP | 3,668 multiple-choice questions on biosecurity, cybersecurity and chemical security, filtered to exclude sensitive content | Knowledge proxy, not uplift; a higher score is less safe |
| Truthfulness and honesty | TruthfulQA | 817 questions in 38 categories where humans commonly hold misconceptions | Strongly tracks capability in modern models |
| MASK | Human-collected scenarios that separate a model's beliefs from its statements under pressure | Elicitation of "belief" is itself a modelling choice | |
| Bias, toxicity and ethics | BBQ | Question sets probing social biases along nine dimensions, with ambiguous and disambiguated contexts | US English contexts |
| RealToxicityPrompts | 100,000 web-text prompts with toxicity scores, measuring toxic continuations | Built for base models; scored by a classifier | |
| MACHIAVELLI | 134 text-based games with over half a million scenarios, labelled for power-seeking, disutility and ethical violations | Game setting; behaviour may not transfer | |
| Composite suites | DecodingTrust, TrustLLM, SALAD-Bench, HELM | Many dimensions in one framework | Aggregate scores hide trade-offs |
Two further tools are adjacent rather than benchmarks of models: safety classifiers such as WildGuard, which are themselves evaluated on moderation test sets and are often used as the judge inside other benchmarks; and attack generators, whose strength determines what a robustness benchmark means. For jailbreak benchmarks in particular, see LLM jailbreaks explained on why a success rate needs an attack budget. For capability benchmarks in general, LLM benchmarks covers saturation and contamination.
Refusal and over-refusal: two numbers, not one#
The most common safety number is a refusal rate on harmful prompts. On its own it is gameable by the simplest possible policy: refuse everything. Röttger and colleagues built XSTest because models were refusing clearly safe prompts that used language similar to unsafe ones, for example a question about how to kill a Python process. Any refusal benchmark should be paired with an over-refusal benchmark, and the pair should be read as a trade-off curve.
A simple model shows why. Suppose a model assigns each prompt a refusal propensity score and refuses when it exceeds a threshold . On harmful prompts the score is normally distributed with mean 2; on borderline prompts that are actually benign (the XSTest kind) it has mean 0.5; on clearly benign prompts, mean ; all with standard deviation 1. Then
where is the standard normal distribution function. Moving slides the model along one curve:
| Threshold | Compliance with harmful prompts | Refusal of borderline benign prompts | Refusal of clearly benign prompts |
|---|---|---|---|
| 0.5 | 6.7% | 50.0% | 0.62% |
| 1.0 | 15.9% | 30.9% | 0.13% |
| 1.25 | 22.7% | 22.7% | 0.06% |
| 1.5 | 30.9% | 15.9% | 0.02% |
| 2.0 | 50.0% | 6.7% | 0.00% |
Three things follow. A benchmark of harmful prompts alone ranks the setting best, even though it refuses half of all borderline benign requests. A benchmark of clearly benign prompts alone barely registers any over-refusal at any setting, which is why over-refusal sets must be built from borderline prompts. And the only way to improve both numbers at once is to separate the two distributions, which moves the whole curve towards the origin; Model B in Figure 1, whose harmful and borderline scores are 2.5 standard deviations apart instead of 1.5, does better at every threshold. Benchmark results should be reported as a point on such a curve, ideally with the curve. The archive's note on over-refusal calibration fits this kind of model to real refusal data, and guardrail thresholds covers choosing .
Does a safety benchmark measure safety? Safetywashing#
Ren and colleagues asked a sharper question. For each of many safety benchmarks, they computed a "capabilities score" for a set of models from their results on standard capability benchmarks (the first principal component, which explained around 70% of performance variation), then measured the Spearman correlation between that score and the safety benchmark across models. A high correlation means the benchmark largely tracks general capability, so a bigger or better-trained model will improve on it without any safety-specific work. Presenting such gains as safety progress is what they called safetywashing.
The findings varied by area. TruthfulQA's multiple-choice score had a capabilities correlation of 81% across chat models. Benchmarks of recognising ethical considerations correlated highly, while MACHIAVELLI's behavioural measures did not. Static adversarial robustness benchmarks correlated with capabilities more than dynamic attacks did. Sycophancy got worse as capabilities rose, and the hazardous-knowledge score from WMDP correlated strongly negatively, as expected, since more capable models know more. The same pattern appears in honesty: the MASK authors found that larger models were more accurate but not more honest, and that most frontier models scored well on truthfulness benchmarks while lying under pressure.
A simulation of capability leaking into a safety score#
Suppose each of 40 models has a general capability and a safety property that is genuinely independent of capability. A benchmark's score mixes the two with a capability loading :
where , and the noise are independent standard normal draws and between 0 and 1 is how much of the benchmark is really capability. With one seeded draw of 40 models:
| Capability loading | Correlation with capability | Correlation with the safety property | Rank agreement with true safety (Spearman) | Residual vs safety, after removing capability |
|---|---|---|---|---|
| 0 | 0.12 | 0.95 | 0.94 | 0.95 |
| 0.3 | 0.41 | 0.90 | 0.89 | 0.94 |
| 0.5 | 0.58 | 0.82 | 0.81 | 0.93 |
| 0.7 | 0.73 | 0.69 | 0.64 | 0.91 |
| 0.9 | 0.88 | 0.48 | 0.39 | 0.82 |
At the benchmark already correlates more with capability than with the property it names, and its ranking of models agrees with the true safety ranking at only 0.64. Two practical points follow. First, the capability correlation is easy to compute and should be reported for any safety benchmark used to claim progress. Second, regressing out capability recovers much of the signal (a residual correlation of 0.91 at ), so a capability-adjusted score, "safer than expected for its capability", is often the more honest headline. The sample capability-safety correlation in this draw is 0.10, not zero, which is why the row shows a small correlation with capability: with 40 models, sampling noise alone produces correlations of that size.
Other limits of safety benchmarks#
Static and single-turn. Most benchmarks are fixed lists of single prompts. Real misuse is adaptive and multi-turn, and defences that look strong on static sets often fail against adaptive attackers; see adaptive attack evaluations. AILuminate's authors list single-turn interaction as a limitation of their own benchmark.
Saturation and training contamination. Once a benchmark is public, its prompts and close paraphrases end up in training data, and the most common patterns get trained against directly. Scores rise without the underlying behaviour generalising. Held-out paraphrases and private test sets are the standard checks; the archive's note on contamination detection covers how.
Judges. Almost every safety benchmark uses an automated judge to label responses as harmful, refusing or compliant. SimpleSafetyTests compared automated safety filters against its 3,000 human-labelled responses and found performance varied considerably: a widely used toxicity API reached 72% accuracy and the best option, a zero-shot prompt to a frontier model, 89%; StrongREJECT found that non-refusal judges overstate jailbreak success. A benchmark score inherits its judge's errors, so report the judge and its measured agreement with humans (see LLM-as-a-judge and LLM judge error).
Coverage. SORRY-Bench's authors found that across ten earlier datasets, self-harm instructions were over three times less represented than fraud. Aggregate refusal rates weight categories by how many prompts happen to be in each, which is rarely the weighting a deployment cares about.
Small samples and clustered items. Many safety sets have a few hundred items, often in clusters of paraphrases. A difference of two or three points between models is frequently inside the noise; use intervals computed over clusters (clustered standard errors) and see statistical significance for evals.
Context. A benchmark measures a model under the benchmark's system prompt, sampling settings and scaffold. Your deployment has its own. Treat public results as a prior and re-run the relevant benchmarks in your own configuration.
How to choose AI safety benchmarks#
Start from the decision, not the leaderboard. The questions below map a decision to the benchmarks and companion checks that bear on it.
| Decision | Benchmarks that bear on it | Always pair with |
|---|---|---|
| Is this model safe enough to put in front of the public? | A broad refusal set (SORRY-Bench or AILuminate) plus a jailbreak benchmark at a stated budget | An over-refusal set (XSTest or OR-Bench hard) and your own domain prompts |
| Did our safety fine-tune help? | The same refusal and over-refusal sets before and after | Capability benchmarks, to check you did not just change capability; intervals |
| Is our agent safe with tools? | AgentHarm-style tasks in your own tool environment | Prompt injection tests; see indirect prompt injection |
| Does the model carry hazardous knowledge? | WMDP as a cheap proxy | Proper dangerous capability evaluations with strong elicitation |
| Is it honest and non-sycophantic? | MASK; sycophancy probes | A capability correlation check; TruthfulQA alone mostly measures capability |
| Does it treat groups fairly in our use case? | BBQ as a screen | Task-specific fairness tests in your own domain; see financial services or healthcare |
Across all of them, five habits make benchmark results trustworthy:
- Report refusal and over-refusal together, as a trade-off.
- Report the capability correlation of any safety benchmark used to claim progress, and consider a capability-adjusted score.
- Name the judge, its agreement with human labels, and the attack budget for robustness results.
- Give intervals that respect clustering, and do not rank models whose intervals overlap.
- Re-run in your own deployment configuration and supplement with private, domain-specific prompts that cannot have leaked.
Checking a benchmark's capability correlation#
import numpy as np
def capability_correlation(safety_scores, capability_scores):
"""Spearman correlation across models, as in the safetywashing analysis."""
rank = lambda x: np.argsort(np.argsort(x))
return float(np.corrcoef(rank(safety_scores), rank(capability_scores))[0, 1])
def residual_safety(safety_scores, capability_scores):
"""Safety score with the linear capability trend removed."""
beta = np.polyfit(capability_scores, safety_scores, 1)
return safety_scores - np.polyval(beta, capability_scores)
rng = np.random.default_rng(1)
cap = rng.standard_normal(40) # capability score per model
true_safety = rng.standard_normal(40) # the property we care about
bench = 0.8 * cap + 0.6 * true_safety + 0.3 * rng.standard_normal(40)
print(round(capability_correlation(bench, cap), 2),
round(float(np.corrcoef(residual_safety(bench, cap), true_safety)[0, 1]), 2))
# 0.76 0.85
With real data, the capability scores come from the same models' results on standard capability benchmarks (or the first principal component of several). If a safety benchmark's capability correlation is above about 0.7, treat any improvement on it as unproven until the capability-adjusted score also improves.
What to take away#
Safety benchmarks are indispensable for comparison and nearly useless as standalone assurance. Each measures one behaviour under one set of conditions, through one judge. Read refusal next to over-refusal, robustness next to attack budget, and every safety score next to its correlation with capability. For how benchmarks fit with the rest of safety evaluation, see what is AI safety and what are AI evals; for building your own evaluation set, the LLM evaluation guide and safety training data guide.
Frequently asked questions#
What are AI safety benchmarks?
They are public test sets with scoring methods that measure safety-relevant behaviour of language models, such as refusing harmful requests, resisting jailbreaks, not refusing harmless prompts, avoiding hazardous knowledge, honesty and fairness. Examples include HarmBench, XSTest, SORRY-Bench, AgentHarm, WMDP, TruthfulQA and BBQ.
What is over-refusal in LLMs?
Over-refusal is when a model refuses a harmless request because it superficially resembles a harmful one, such as asking how to kill a computer process. Benchmarks such as XSTest and OR-Bench measure it. It matters because a model can score perfectly on refusing harmful prompts simply by refusing everything.
What is safetywashing?
Safetywashing is presenting capability improvements as safety progress. Ren and colleagues found that many safety benchmarks correlate strongly with general capability across models, so larger models score better without any safety-specific work. Reporting each safety benchmark's correlation with capability, and a capability-adjusted score, guards against it.
What is the best benchmark for LLM safety?
There is no single best one. Choose by the decision: a broad refusal set plus an over-refusal set for general deployment, a jailbreak benchmark at a stated attack budget for robustness, agent task suites for tool use, and proper capability evaluations for hazardous knowledge. Always add private prompts from your own domain.
Why are AI safety benchmarks not enough to prove a model is safe?
Each measures one behaviour under fixed, usually single-turn conditions, through an automated judge with its own errors. Public prompts leak into training data, adaptive attackers are not represented, and many scores track capability. Benchmarks support comparison; assurance needs red teaming, domain evaluation and monitoring as well.
How do you measure both refusal and helpfulness?
Pair a harmful-prompt set with a borderline-benign set and report both rates at the model's operating point, ideally as a trade-off curve across refusal thresholds. In our simple model, the setting that looked best on harmful prompts alone refused half of borderline benign prompts.
Sources#
- Gehman, Gururangan, Sap, Choi, Smith. RealToxicityPrompts: Evaluating Neural Toxic Degeneration in Language Models, 2020. arxiv.org
- Lin, Hilton, Evans. TruthfulQA: Measuring How Models Mimic Human Falsehoods, 2021. arxiv.org
- Parrish, Chen, Nangia, Padmakumar et al.. BBQ: A Hand-Built Bias Benchmark for Question Answering, 2021. arxiv.org
- Liang, Bommasani, Lee, Tsipras et al.. Holistic Evaluation of Language Models, 2022. arxiv.org
- Pan, Chan, Zou, Li et al.. Do the Rewards Justify the Means? Measuring Trade-Offs Between Rewards and Ethical Behavior in the MACHIAVELLI Benchmark, 2023. arxiv.org
- Wang, Chen, Pei, Xie et al.. DecodingTrust: A Comprehensive Assessment of Trustworthiness in GPT Models, 2023. arxiv.org
- Röttger, Kirk, Vidgen, Attanasio et al.. XSTest: A Test Suite for Identifying Exaggerated Safety Behaviours in Large Language Models, 2023. arxiv.org
- Wang, Li, Han, Nakov, Baldwin. Do-Not-Answer: A Dataset for Evaluating Safeguards in LLMs, 2023. arxiv.org
- Vidgen, Scherrer, Kirk, Qian et al.. SimpleSafetyTests: a Test Suite for Identifying Critical Safety Risks in Large Language Models, 2023. arxiv.org
- Huang, Sun, Wang, Wu et al.. TrustLLM: Trustworthiness in Large Language Models, 2024. arxiv.org
- Mazeika, Phan, Yin, Zou et al.. HarmBench: A Standardized Evaluation Framework for Automated Red Teaming and Robust Refusal, 2024. arxiv.org
- Li, Dong, Wang, Hu et al.. SALAD-Bench: A Hierarchical and Comprehensive Safety Benchmark for Large Language Models, 2024. arxiv.org
- Souly, Lu, Bowen, Trinh et al.. A StrongREJECT for Empty Jailbreaks, 2024. arxiv.org
- Li, Pan, Gopal, Yue et al.. The WMDP Benchmark: Measuring and Reducing Malicious Use With Unlearning, 2024. arxiv.org
- Chao, Debenedetti, Robey, Andriushchenko et al.. JailbreakBench: An Open Robustness Benchmark for Jailbreaking Large Language Models, 2024. arxiv.org
- Röttger, Pernisi, Vidgen, Hovy. SafetyPrompts: a Systematic Review of Open Datasets for Evaluating and Improving Large Language Model Safety, 2024. arxiv.org
- Cui, Chiang, Stoica, Hsieh. OR-Bench: An Over-Refusal Benchmark for Large Language Models, 2024. arxiv.org
- Xie, Qi, Zeng, Huang et al.. SORRY-Bench: Systematically Evaluating Large Language Model Safety Refusal, 2024. arxiv.org
- Han, Rao, Ettinger, Jiang et al.. WildGuard: Open One-Stop Moderation Tools for Safety Risks, Jailbreaks, and Refusals of LLMs, 2024. arxiv.org
- Ren, Basart, Khoja, Gatti et al.. Safetywashing: Do AI Safety Benchmarks Actually Measure Safety Progress?, 2024. arxiv.org
- Andriushchenko, Souly, Dziemian, Duenas et al.. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents, 2024. arxiv.org
- Ghosh, Frase, Williams, Luger et al.. AILuminate: Introducing v1.0 of the AI Risk and Reliability Benchmark from MLCommons, 2025. arxiv.org
- Ren, Agarwal, Mazeika, Menghini et al.. The MASK Benchmark: Disentangling Honesty From Accuracy in AI Systems, 2025. arxiv.org