Diagnose and fix an over-refusal regression after a guardrail rollout
After rolling out a new output toxicity classifier, your refusal rate on benign queries jumped from 1 percent to 8 percent. Walk through how you would diagnose and fix this without simply turning the classifier off.
Quantify newly-refused traffic, cluster over-refusals to find themes, identify which layer fires, fix at the lowest-cost layer, and add an XSTest-style benchmark to CI to catch regressions.
Imagine a new security guard at your office. On day one, the number of people turned away at the lobby jumps from 1 to 8 percent. You do not fire the guard or remove the metal detector. You ask: who got turned away? You watch the camera, list the names, look for patterns. Maybe everyone wearing red got blocked because the guard misremembered a uniform. Maybe legitimate visitors with crutches set off the metal detector. The fix is different for each cause. Same with a too-strict classifier: you find the pattern, fix the right knob, and add a daily test that prevents the same regression next time.
Detailed answer & concept explanation~5 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
6 minutes: the quantify cluster locate fix lock in discipline, why over-refusal is a separate metric from safety, how to attribute the firing layer, and how XSTest belongs in CI.
Real products, models, and research that use this idea.
- XSTest (Röttger et al.) is the standard over-refusal benchmark used by Anthropic, OpenAI, and Meta in their model evaluations
- Patronus AI's continuous-evaluation product ships XSTest-aligned suites with per-category over-refusal tracking against deployed Claude Opus 4.7 and GPT-5.5 endpoints
- Anthropic's Claude system-prompt docs include guidance for reducing over-refusal via system-prompt phrasing rather than classifier changes
- Meta Llama Guard 4 ships with per-category threshold settings specifically so refusal calibration can be tuned without changing the underlying classifier
What an interviewer would ask next. Try answering before peeking at the approach.
QWhat if the over-refusal cluster turns out to be on demographic terms, how do you communicate the fix to a governance review?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Reaching for the classifier threshold knob before any labelling is done, which trades over-refusal for under-refusal without learning what actually broke.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.