추론의 대가: Chain-of-Thought가 Vision-Language Model에 과신(Overconfidence)을 유발한다
The Cost of Reasoning: Chain-of-Thought Induces Overconfidence in Vision-Language Models
TL;DR Highlight
CoT 추론이 정확도는 높이지만 모델의 불확실성 추정을 망가뜨려 틀려도 자신만만해지는 현상을 분석한 논문
Who Should Read
의료 이미지 분석, 자율주행 등 고위험 환경에 VLM을 배포하는 ML 엔지니어. CoT나 Thinking 모델을 쓰면서 모델이 언제 틀릴지 감지하는 로직을 구현 중인 개발자.
Core Mechanics
- CoT(Chain-of-Thought) 프롬프팅을 쓰면 정확도는 오르지만, 토큰 확률 기반 불확실성 추정(MSP, Perplexity, MTE 등)의 랭킹 품질이 크게 떨어짐
- '암묵적 답변 조건화(Implicit Answer Conditioning)' 현상: 추론 trace가 결론으로 수렴하면서 최종 답변 토큰의 확률이 인위적으로 높아짐 — 틀린 답이어도 마찬가지
- Qwen3-VL-8B-Thinking처럼 추론이 모델에 내재된 경우 효과가 더 강함. MTE PRR이 MathVista에서 0.413 → -0.084로 폭락
- Consistency(여러 번 샘플링해서 다수결로 불확실성 측정하는 방식)는 CoT 하에서도 안정적이며 오히려 개선되는 경우도 있음
- 추론 trace에서 최종 답변 단어를 [MASK]로 가리면 MSP PRR이 0.141 → 0.475로 3배 이상 회복됨 (정확도 변화 없이)
- 추론 길이 자체는 원인이 아님: 오히려 긴 trace일수록 confidence가 낮아지는 음의 상관관계 확인
Evidence
- Qwen3-VL-8B-Thinking에서 MTE PRR이 Oxford Pets 기준 0.735 → 0.086, MathVista 기준 0.413 → -0.084로 추락
- OK-VQA에서 답변 마스킹 후 MSP PRR이 0.141 → 0.475로 3.4배 회복, Spearman 상관계수 0.17~0.28 상승
- Consistency는 MathVista에서 CoT 적용 시 PRR 0.345 → 0.684, Thinking 모델 기준 0.345 → 0.767로 오히려 향상
- 반복 추론 실험에서 1라운드 이후 답변 토큰의 log-probability가 거의 0으로 수렴(완전 확신)하지만 정확도는 증가하지 않음
How to Apply
- CoT나 Thinking 모델을 쓰는 VLM 파이프라인에서 불확실성 기반 abstention(답변 거부) 로직을 구현한다면, MSP/Perplexity 대신 Consistency(K=10 샘플 다수결)를 불확실성 지표로 교체하면 됨
- 토큰 확률 기반 confidence를 꼭 써야 한다면, 추론 trace에서 최종 답변 문자열이 몇 번 등장하는지를 체크해서 보정 신호로 활용하거나, 해당 부분을 마스킹하고 재채점하는 post-processing 추가 고려
- 의료/자율주행처럼 틀린 예측을 잡아내는 게 중요한 시스템에서 Thinking 모델로 업그레이드할 때, 정확도 향상에 속지 말고 불확실성 추정 방식도 함께 재검토해야 함
Code Example
# Consistency 기반 불확실성 추정 예시 (K번 샘플링 후 다수결)
import re
from collections import Counter
def get_consistency_score(model, prompt, image, K=10):
"""
CoT 환경에서 토큰 확률 대신 Consistency를 불확실성 지표로 사용.
높은 consistency = 낮은 불확실성 = 답변 신뢰 가능
"""
answers = []
for _ in range(K):
# temperature > 0으로 stochastic 샘플링
output = model.generate(
prompt=prompt,
image=image,
temperature=1.0,
do_sample=True
)
# <answer>태그에서 최종 답변만 추출 (reasoning trace 제외)
match = re.search(r'<answer>(.*?)</answer>', output, re.DOTALL)
if match:
answers.append(match.group(1).strip().lower())
if not answers:
return 0.0, None
# 다수결 답변 및 일치율 계산
majority_answer = Counter(answers).most_common(1)[0][0]
consistency = sum(1 for a in answers if a == majority_answer) / K
# consistency가 낮으면 abstain (예: 0.5 미만)
return consistency, majority_answer
# 사용 예시
score, answer = get_consistency_score(model, prompt, image, K=10)
if score < 0.5:
print(f"불확실 (consistency={score:.2f}) — 답변 거부")
else:
print(f"답변: {answer} (confidence={score:.2f})")Terminology
Original Abstract (Expand)
Vision-language models (VLMs) are increasingly deployed in high-stakes settings where reliable uncertainty quantification (UQ) is as important as predictive accuracy. Extended reasoning via chain-of-thought (CoT) prompting or reasoning-trained models has become ubiquitous in modern VLM pipelines, yet its effect on UQ reliability remains poorly understood. We show that reasoning consistently degrades the quality of most uncertainty estimates, even when it improves task accuracy. We identify implicit answer conditioning as the primary mechanism: as reasoning traces converge on a conclusion before the final answer is generated, token probabilities increasingly reflect consistency with the model's own reasoning trace rather than uncertainty about correctness. In effect, the model becomes overconfident in its answer. In contrast, agreement-based consistency remains robust and often improves under reasoning, making it a practical choice for uncertainty estimation in reasoning-enabled VLMs.