TL;DR
The most dangerous answer an AI gives is a wrong one delivered with total confidence. A calibrated model says “I’m 90% sure” and is right about 90% of the time; a miscalibrated one says “definitely” and is wrong a third of the time. The research is alarming: alignment training (RLHF) systematically induces overconfidence, with tuned models cramming verbalized confidence into the 80-100% band and Expected Calibration Error reaching 0.30+ on knowledge-intensive tasks, while their base models stayed calibrated. Overconfident wrong answers drive bad decisions downstream. Calibration is measurable, and teaching a model to say “I don’t know” is an engineering discipline, not a personality trait.
Confidence is a feature, and yours is probably broken
When a human expert is unsure, they hedge: “I think it’s X, but check.” That hedge is information, it tells you how much to trust the answer and whether to verify. A well-built AI system should provide the same signal: a confidence that actually tracks correctness, so downstream consumers (a human, another system, an automated action) can decide whether to trust, verify, or escalate. The trouble is that LLM confidence is usually uncorrelated with correctness. The model states a hallucination in the same authoritative register as a fact, and any confidence score it emits is often wildly optimistic.
The term for “does the stated confidence match the actual accuracy” is calibration. A perfectly calibrated model that says it is 70% confident is correct 70% of the time across all such answers. The standard metric is Expected Calibration Error (ECE): bucket predictions by stated confidence, compare each bucket’s confidence to its actual accuracy, and average the gaps. ECE near zero is good; ECE of 0.30 means the model’s confidence is off by 30 percentage points on average, effectively useless as a trust signal.
Alignment training is the culprit
Here is the counterintuitive and well-documented finding: the very training that makes models helpful and polite also makes them overconfident. Research on taming overconfidence in LLMs via reward calibration in RLHF found that RLHF leads models to express verbalized overconfidence, because the reward models used in training carry an inherent bias toward high-confidence-sounding responses regardless of their actual quality. A confident-sounding answer gets rewarded, so the model learns to sound confident, about everything.
The magnitude is striking. Empirical work in 2025 found that large RLHF-tuned models emit verbalized confidence scores almost entirely in the 80-100% range, with ECE values that can reach 0.30 or higher on knowledge-intensive tasks, and, tellingly, that the original base models were often well calibrated before alignment degraded them. This is not a fringe observation: foundational work showed that large pre-trained models can be remarkably well calibrated about what they know, which makes the post-training degradation all the more pointed. Calibration is something alignment takes away. That means it is not an inherent limitation you are stuck with; it is a regression you can measure and correct.
Where overconfidence turns into real damage
The abstract problem, confidence not matching accuracy, becomes concrete the moment a downstream consumer acts on the confidence. Three patterns recur. In human-in-the-loop systems, a confident AI answer short-circuits the human’s scrutiny: a reviewer who would have double-checked a hedged answer waves through a confident one, so overconfidence directly converts into unreviewed errors. In agentic systems, the model’s confidence gates whether it takes an action or asks for confirmation; an overconfident agent acts on a wrong belief instead of pausing. And in cascades and routers, confidence is the escalation signal, if a cheap model is uniformly overconfident, it never escalates the hard questions it gets wrong, defeating the whole architecture.
In each case the cost is not the wrong answer alone; it is that the wrong answer arrived wearing the costume of a right one, so the system’s safety mechanism, human review, confirmation prompt, escalation, never fired. A miscalibrated confidence signal does not just fail to help; it actively disables the controls you built on top of it. That is why calibration is a safety property, not a nicety.
Measure it before you fix it
You cannot improve calibration you have not quantified. The core measurement is ECE, computed on a labeled eval set where you have both the model’s confidence and the ground-truth correctness of each answer.
# Expected Calibration Error: does stated confidence match actual accuracy?
def expected_calibration_error(predictions, n_bins=10):
# predictions: list of {'confidence': float in [0,1], 'correct': bool}
bins = [[] for _ in range(n_bins)]
for p in predictions:
idx = min(int(p['confidence'] * n_bins), n_bins - 1)
bins[idx].append(p)
ece, total = 0.0, len(predictions)
for b in bins:
if not b:
continue
avg_conf = sum(p['confidence'] for p in b) / len(b)
accuracy = sum(p['correct'] for p in b) / len(b)
ece += (len(b) / total) * abs(avg_conf - accuracy) # weighted gap
return ece # 0 = perfectly calibrated; 0.30 = confidence off by ~30 points
Track ECE as a first-class eval metric alongside accuracy. A model can gain accuracy while losing calibration, particularly after fine-tuning or a self-improvement loop, where studies show ECE rising even as task scores climb. If you only watch accuracy, you will ship a model that is right more often but trustworthy less often, and never know.
The payoff: selective prediction and abstention
Calibration is not an end in itself, it is what makes selective prediction possible. Selective prediction is the trade-off between accuracy and coverage: let the model abstain on the inputs it is least sure about, so the answers it does give are far more reliable. A model that answers 80% of questions at 95% accuracy is often more valuable than one that answers 100% at 80%, because the abstentions route to a human or a fallback instead of shipping a confident error.
# Selective prediction: abstain below a calibrated confidence threshold
def answer_or_abstain(model, query, threshold=0.7):
out, confidence = model.generate_with_confidence(query)
if confidence < threshold:
return {'action': 'abstain',
'message': "I'm not confident enough to answer; escalating.",
'route_to': 'human'} # or a fallback / retrieval step
return {'action': 'answer', 'text': out, 'confidence': confidence}
# Eval the trade-off: plot accuracy-on-answered vs. coverage as threshold varies
def coverage_accuracy_curve(predictions, thresholds):
for t in thresholds:
answered = [p for p in predictions if p['confidence'] >= t]
coverage = len(answered) / len(predictions)
acc = sum(p['correct'] for p in answered) / max(len(answered), 1)
print(f"threshold {t:.2f}: coverage {coverage:.0%}, accuracy {acc:.0%}")
The crucial point: abstention only works if confidence is calibrated. If the model is uniformly overconfident, the threshold has nothing to bite on, everything clears it, including the wrong answers. Fix calibration first, then the abstention threshold becomes a real safety dial you can tune to your risk tolerance.
Practical ways to get confidence you can trust
Several techniques produce more reliable confidence signals than simply asking the model how sure it is:
- Self-consistency / semantic entropy. Sample multiple answers; if they agree, confidence is high, if they scatter, it is low. Disagreement across samples is one of the most reliable uncertainty signals available.
- Post-hoc calibration. Apply temperature scaling or a learned mapping to the model’s raw confidence so the numbers line up with observed accuracy on a held-out set, cheap and effective.
- Calibration-aware training. Methods that reward confidence matching accuracy (proper scoring rules, calibrated reward models) address the RLHF overconfidence at its source.
- Verification before assertion. For factual claims, ground and check against a source rather than relying on parametric confidence at all, the most robust option when you have retrievable evidence.
Whichever you use, the loop is the same: measure ECE, apply a technique, re-measure, and gate on it. Calibration is an optimization target like any other.
The bottom line
An AI’s confidence is only useful if it tracks correctness, and alignment training systematically breaks that, pushing ECE to 0.30+ and cramming every answer into the high-confidence band, even though base models were often well calibrated. Overconfident wrong answers strip away your ability to triage and drive bad downstream decisions. Measure calibration with ECE as a first-class eval metric, use selective prediction so the model abstains on its least-certain inputs, reward “I don’t know” instead of penalizing it, and apply self-consistency or post-hoc calibration to make the confidence signal real. Teaching your AI to say “I don’t know” is the difference between a tool you can trust and one that is confidently wrong.
Ship AI on Evidence, Not Vibes
alt.qa Eval turns "seems fine" into measurable pass/fail, continuous evaluation, regression gates, and groundedness scoring for your AI outputs.
Try alt.qa Free →