Naive safety FT failed: model now refuses 'how does anesthesia work?'. Best fix?
Over-refusal is a keyword reflex, not real safety. Fix the data: add benign hard-negatives that share dangerous keywords, paired with helpful answers, then retrain.
Imagine training a security guard only by showing photos of dangerous people, and every one happens to wear a red hat. The guard learns a shortcut: red hat means danger. Now a nurse in a red hat walks up, and the guard blocks her. The fix is not a new rulebook at the door. You show the guard many photos of perfectly safe people who also wear red hats, and teach that the hat means nothing. Safety fine-tuning fails the same way. The model sees scary keywords like anesthesia or chemistry and refuses, even for a student doing homework. You fix it by adding benign examples that contain those same keywords, paired with helpful answers, so the model learns to read intent instead of spotting words.
Detailed answer & concept explanation~7 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.
5 min: name over-refusal + explain the keyword vs intent shortcut + the data imbalance cause + benign hard-negatives fix + why the chosen answer must be helpful + XSTest paired evaluation + helpfulness vs harmlessness trade-off.
| Option | What it does | Why it fails (or works) |
|---|---|---|
| Benign hard-negatives (B) | Retrains on safe queries that match dangerous keywords, with helpful answers | Works: forces an intent boundary instead of a keyword boundary |
| Lower refusal threshold (A) | Shifts an inference-time safety score cutoff | Fails: most models expose no such knob, and it only slides a miscalibrated classifier |
| DPO with generic chosen (C) | Prefers bland non-answers over refusals | Fails: trains evasiveness, which is over-refusal in disguise |
| Strip safety, use prompt (D) | Removes safety data, enforces policy via system prompt | Fails: prompt-only safety is bypassable and unreliable |
Real products, models, and research that use this idea.
- XSTest is the canonical benchmark of 250 safe prompts that surface-match unsafe ones, used to quantify over-refusal in chat models.
- Anthropic documents the helpfulness versus harmlessness trade-off for Claude Opus 4.7, tuning refusal so benign medical and security questions still get answered.
- OpenAI's model spec for GPT-5.5 explicitly targets reduced over-refusal, instructing the model to answer dual-use questions like chemistry safety unless intent is clearly harmful.
- Meta's Llama 4 release notes call out lowering false refusals versus prior versions while holding harmful-prompt refusal steady.
- Google's Gemini 3.1 Pro safety reporting pairs adversarial harmful sets with benign-but-sensitive evals to catch over-refusal regressions before launch.
What an interviewer would ask next. Try answering before peeking at the approach.
QHow do you construct benign hard-negatives without accidentally including subtly harmful prompts?
QWhy does false refusal rate need to be tracked jointly with true refusal rate rather than alone?
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.
Treating over-refusal as a threshold to dial down rather than a data problem. The model learned keywords, not intent, so only corrective data fixes it.
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.