Zenaique

Diagnose an over refusing model in production

Short answer·Hard·4.0 · 0·~3 min·Asked atEySamsungTesla
Attempt it

Support tickets complain your model refuses benign questions like 'how do I delete my account?' or 'help me write a strongly worded email to my landlord.' Walk through the refusal calibration investigation: where do you look, what metrics, and what knobs do you have?

Free · 2 AI evals / day
TL;DR

Slice refusal rate by intent first, isolate the failing layer (classifier, system prompt, or base model), tune the knob, then validate on paired benign and adversarial sets.

Memory aid
Sign in to see the mnemonic that makes this stick.
Easy to grasp

Imagine a coffee shop where the barista refuses to make any drink with the word 'shot' in it because 'shot' could mean something dangerous. Customers asking for an espresso shot get turned away while customers ordering a latte are fine. The shop owner does not need to retrain the barista from scratch, they need to slice the complaints by drink, find that the word 'shot' is the trigger, and update the rule. Refusal calibration in a production LLM is the same workflow: slice the data, find the trigger, fix the layer responsible, and verify nothing else broke.

Concept explanation~2 min read

Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.

Over-refusal is the most common safety regression in production LLM deployments. It rarely arrives as a uniform shift; it arrives concentrated on specific intents, word stems, or surfaces. A team that treats the dashboard's global refusal-rate number as the signal will spend weeks adjusting global thresholds without finding the source. A team that slices by intent finds the root cause in an afternoon.

This deep dive walks the four-step calibration workflow: slice the rate by intent, locate the failing layer, tune the right knob, and validate on a paired benign and adversarial holdout. Each step has its own discipline, and the workflow scales from a single ticket to a full release-gate audit.

Step 1: slice refusal rate by intent

Aggregate refusal-rate dashboards are misleading. A global 3% number can hide intents at 30% and intents at 0.5%. The first move is always to bucket recent refused traces by intent.

Three practical approaches:

  • Intent classifier on user messages. A small classifier (often a fine-tuned BERT or sentence embedding + cluster) labels each request. Refusal rate is computed per label.
  • Topic clustering on recent traffic. Embed user messages, cluster, label the top clusters by hand, and bucket the dashboard.
  • Template matching for known surfaces. For product surfaces with known request shapes (account operations, password flows, billing questions), exact-match templates suffice.

Whatever the method, the goal is the same: produce a refusal-rate column indexed by intent. The pattern almost always shows concentration, 5-10% of intents drive 50-80% of the over-refusal complaints. That concentration is the lead.

Step 2: locate the failing layer
Step 3: tune the right knob
Step 4: validate on paired holdouts
Operational discipline and edge cases
Sign in to unlock the full deep dive.

Situations where this technique stops working.

Sign in to see when this approach fails.

2–4 min · Everything important, quickly.

Sign in to see the quick scan of the deep dive.

Real products, models, and research that use this idea.

  • Anthropic Claude Opus 4.7 release notes track refusal-rate per category alongside helpfulness wins on each tuning iteration
  • OpenAI's GPT-5.5 system card documents refusal-rate movement across specific intent categories release over release
Sign in to see more production examples.

What an interviewer would ask next. Try answering before peeking at the approach.

QHow would you build the intent classifier or clusterer that drives the per-intent slicing?
A

Cluster recent user messages with an embedding model and review the top clusters with a human. Tag clusters with intent labels. Re-use the same labels to slice refusal-rate dashboards and to bucket the holdout set. Keep the labels updated as product surfaces change.

2 more follow-ups an interviewer would ask next. Sign in to reveal them.

Red flags & common mistakes

The phrases that signal junior thinking. Click to expand.

Most common mistake

Looking at aggregate refusal rate, declaring it 'looks fine,' and missing that specific intents like 'delete' or 'strongly-worded' are over-refused at 20-30x the baseline.

Sign in to see all red flags and common mistakes.

60 second bullets to scan on the way to the call.

  • Slice refusal rate by intent before any other diagnosis

  • Three or four layers a refusal can come from

Sign in to unlock the revision sheet.

Primary sources. Browse if you want the original framing.

Similar questions

Same topic, related formats. Practice these next.

4 curated
Next question
Pick the strongest reason…
MCQ·Medium