coredot.today
기술 탐색으로 돌아가기
신뢰·안전실험

LLM 확신도·보정

모델이 말한 '0.85'는 계기판 눈금이 아니라 다음에 올 법한 글자다 — 확신도를 측정으로 바꾸는 채점법과 기록 기반 규칙

직접 해보기 5라이브 실행실측
종류
논문
사실 확인
2026.10.24

TRY IT

직접 해보기

OVERVIEW

개요

무엇인가

LLM에게 "답과 함께 확신도를 0~1로 달라"고 하면 모델은 언제나 그럴듯한 숫자를 줍니다. 보정(calibration)은 그 숫자가 실제 정답률과 맞는지를 따지는 일입니다. "90%"라고 말한 답들 가운데 실제로 90% 안팎이 맞아야 보정된 것입니다.

2026년 10월 앰루트 조시의 글 「Asking LLM for confidence」는 말로 한 확신도가 모델 안의 계기판을 읽은 값이 아니라 대화의 그럴듯한 이어짐이라고 지적해 해커뉴스 첫 화면에 올랐습니다. 이 생각은 75년 된 확률 예보 채점법과 2023년 「그냥 보정을 요청하라(Just Ask for Calibration)」 이후의 말로 한 확신도(verbalized confidence) 연구 위에 서 있습니다. 결론은 단순합니다. 숫자가 믿을 만한지는 정답이 붙은 기록으로 채점해 봐야만 안다.

어떻게 동작하나

믿을 만한 확신도의 조건은 둘입니다. ① 예측의 근거가 된 정보를 반영한다(정보가 같으면 같고, 바뀌면 바뀐다). ② 같은 종류의 질문에서 실제 결과로 검증되었다. 채점에는 세 숫자를 함께 봅니다.

지표무엇을 재나읽는 법
ECE (기대 보정 오차)확신도 구간마다 평균 확신도와 실제 정답률의 차이를 구간 크기로 가중 평균낮을수록 좋다. '늘 평균만 말하기'도 0이 될 수 있다
AUROC맞힌 답 하나와 틀린 답 하나를 골랐을 때 맞힌 쪽 확신도가 더 높을 확률0.5는 동전 던지기, 1.0은 완벽한 변별
브라이어 점수 (1950)(확신도 − 결과)²의 평균. 보정과 변별력을 한꺼번에낮을수록 좋다. 정직하게 말해야 기대 점수가 최적인 적정 채점 규칙

말로 한 확신도의 전형적 증상은 세 가지입니다. 다시 물으면 숫자가 바뀌고, "정말 확실해요?"라고 되물으면 답과 숫자가 움직이고, 앞에 "확실히 정답입니다"라고 써 두면 숫자가 따라 오릅니다. RLHF도 보정을 해칩니다. GPT-4 기술 보고서에서 사전학습 모델의 ECE는 0.007이었지만 PPO 후 0.074로 열 배가 됐습니다.

처방은 확신도를 모델의 입이 아니라 기록에서 가져오는 것입니다. 관찰할 수 있는 신호(재표본 일치도, 검색 근거, 토큰 확률, 판정 모델 확률, 실행 검증)를 고르고, 답마다 신호와 실제 결과를 기록하고, 신호별로 묶어 정답률을 세어 그 값을 다음 확신도로 씁니다. 기계학습의 히스토그램 구간화(2001)와 같은 절차입니다.

빠른 시작

채점은 표준 라이브러리만으로 됩니다. 아래는 위 세 지표의 정의를 그대로 옮긴 것입니다. 확신도는 0~1, 결과는 맞으면 1 틀리면 0입니다.

python
def brier(conf, ok):
    return sum((c - o) ** 2 for c, o in zip(conf, ok)) / len(conf)

def ece(conf, ok, bins=10):
    total = 0.0
    for b in range(bins):
        idx = [i for i, c in enumerate(conf) if b / bins < c <= (b + 1) / bins or (b == 0 and c == 0)]
        if idx:
            acc = sum(ok[i] for i in idx) / len(idx)
            avg = sum(conf[i] for i in idx) / len(idx)
            total += len(idx) / len(conf) * abs(acc - avg)
    return total

def auroc(conf, ok):
    pos = [c for c, o in zip(conf, ok) if o]
    neg = [c for c, o in zip(conf, ok) if not o]
    wins = sum((p > q) + 0.5 * (p == q) for p in pos for q in neg)
    return wins / (len(pos) * len(neg))

conf = [0.9, 0.95, 0.9, 0.6, 0.9]   # 모델이 말한 확신도
ok   = [1,   0,    1,   0,   0]     # 사람이 채점한 결과
print(brier(conf, ok), ece(conf, ok), auroc(conf, ok))

정답 기록이 수백 건 쌓이면 확신도 구간별 실제 정답률(신뢰도 표)과 AUROC를 함께 그리고, 자동 처리 문턱은 "0.8이면 발송"이 아니라 "이 문턱에서 자동 처리된 답의 오류율 X%, 사람 검토량 Y%"로 정합니다. 이 항목의 라이브 실행에서 모델이 답과 확신도를 함께 내는 모습을 직접 볼 수 있습니다.

코어닷투데이 실측

2026년 10월 24일 대화형 모델 5개와 판정 모델 4개에 KMMLU 300문항, KMMLU-HARD 298문항, SimpleQA Verified 200문항을 물었습니다. "정답 / 확신도(0~100)" 두 줄로만 답하게 했고, 첫 답의 확신도를 정답 여부와 대조했습니다(ECE 10구간).

모델 · 세트정확도평균 확신도ECEAUROC
GPT-4.1 mini · KMMLU55.7%91.0%0.3540.53
GPT-4.1 mini · HARD36.2%90.4%0.5410.50
Qwen3.5 4B · KMMLU36.1%97.0%0.6080.57
GPT-6.1 Sol · KMMLU95.7%97.5%0.0270.75
GPT-6.1 Sol · SimpleQA69.7%86.6%0.1770.87
Claude Sonnet 5.5 · KMMLU92.5%83.2%0.0930.74
Claude Sonnet 5.5 · SimpleQA(156)42.9%48.9%0.0910.85
  • 소형 모델의 숫자는 흉내였다. GPT-4.1 mini는 응답의 72%에 "90"을 썼고, "정말 확실한가요?" 한마디에 KMMLU 답의 55%를 바꿔 정확도가 55.7%에서 46.7%로 떨어졌는데 평균 확신도는 91.0에서 95.4로 올랐다. Qwen3.5 4B는 앞 문장만 "확실히"와 "잘 모르겠다"로 바꿔도 확신도가 96.6 대 43.2로 움직였다.
  • 프런티어 모델의 숫자에는 정보가 있었다. 다만 같은 "90"이 모델마다 뜻이 다르다. Claude는 낮게(과소 확신), GPT-6.1 Sol은 높게 말했고, Sol은 사실 질문(SimpleQA)에서 17%포인트를 부풀렸다.
  • 기록은 보정을, 신호는 변별력을 준다. '다섯 번 일치도'만으로 만든 기록 규칙이 GPT-4.1 mini의 ECE를 0.354→0.053, HARD 0.541→0.025로 낮췄지만, 규칙의 AUROC는 신호가 가진 정보만큼(0.53~0.80)만 나왔다. 판정 모델 OpenAI Decisions는 KMMLU에서 ECE 0.045·AUROC 0.85로 가장 잘 보정됐지만 정확도는 71.7%였다.

한계: 게이트웨이 크레딧이 떨어져 Claude는 첫 답(KMMLU 두 세트 598문항, SimpleQA 156문항)만 받았고, KMMLU는 공개 데이터라 최신 모델의 학습 데이터에 섞였을 수 있습니다.

언제 쓰고, 언제 피하나

  • 잘 맞는다: 확신도로 분기하는 에이전트(자동 발송 vs 사람 검토), LLM 심판의 점수 관리, 모델·프롬프트를 바꿀 때마다 다시 재는 회귀 점검. 정답 기록을 만들 수 있는 업무라면 어디든.
  • 다른 방법을 먼저 본다: 맞고 틀림을 실행으로 확정할 수 있으면(테스트·재계산·스키마 검사) 확신도보다 검증이 낫다. "95%의 경우 정답이 후보 안에 있다" 같은 보장이 필요하면 컨포멀 예측을 쓴다.

한계와 주의

  • 사용자에게 "신뢰도 92%"를 띄울 때는 "비슷한 질문 1,200건 중 92%가 맞았음"처럼 기록을 함께 보인다. 설명이 길수록 사람은 답을 더 믿지만 정확도는 그대로다.
  • 재표본 일치도·의미 엔트로피는 답이 매번 바뀌는 지어내기만 잡는다. 같은 가짜 판례를 일관되게 주장하는 모델은 통과한다.
  • RLCR 같은 보정 강화학습은 훈련 분포 안에서 숫자를 믿을 만하게 만들지만, 분포 밖(내 업무)에서는 여전히 다시 재야 한다.
  • 공급사가 모델을 바꾸면 보정이 깨진다. 판정 모델도 과제가 바뀌면 문턱을 다시 맞춰야 했다.
  • 칼라이 등(2025)의 '틀리면 t/(1−t)점 감점' 채점에서 논문 본문은 t=0.75일 때 감점 2로 적었지만 공식대로면 3이다.

LIVE

라이브 실행

답과 확신도 함께 받기

모델에게 답과 함께 0~100 확신도를 말하게 합니다. 확신도가 실제 정답률과 맞는지(보정)를 따지는 연구가 무엇을 재는지 감을 잡을 수 있습니다.

콘솔에서 키 발급받기

키는 이 브라우저에서 core.today 게이트웨이로만 전송되고 코어닷투데이 서버를 거치지 않습니다. 실행 비용은 키 주인의 크레딧에서 차감됩니다.

예시 입력
모델에게 보내는 시스템 프롬프트 보기
질문에 답하고, 그 답이 맞을 확률을 0~100 정수로 스스로 매겨라.
모르면 모른다고 답하고 확신도를 낮게 매긴다. 그럴듯한 추측을 높은 확신도로 포장하지 않는다.
JSON 하나만 출력한다: {"answer": "...", "confidence": 0-100, "why": "확신도를 그렇게 매긴 이유 한 문장"}

15 / 1,500자 · 모델 gpt-5.6-luna · 출력 최대 400 토큰

DEEP DIVE

더 깊이 읽기