https://arxiv.org/abs/2502.00290
Estimating LLM Uncertainty with Logits
In recent years, Large Language Models (LLMs) have seen remarkable advancements and have been extensively integrated across various fields. Despite their progress, LLMs are prone to hallucinations, producing responses that may not be dependable if the mode
arxiv.org
지금 진행 중인 연구에 관련이 있는 논문입니다.
Uncertainty를 측정하기 위해 우린 이렇게 했다! 라는 논문이네요
이 표가 명확하게 설명해주는 것 같습니다.
방법 | 핵심 아이디어 | 한계점 |
Semantic Entropy (Kuhn et al., 2024) | 같은 질문에 대해 여러 번 답하게 하고, 답변의 다양성을 비교함 | 샘플링 비용 높고, 실시간 추정 불가능 |
Contrastive Sampling (Huang et al., 2024a) | 질문을 약간 다르게 바꾸고 답을 비교함 | 정답이 여러 개일 경우 혼란 발생 |
Self-reflection (Ji et al., 2023) | 모델이 스스로 생성한 답에 대해 확신하는지 평가 | 신뢰성 낮고, 정확도에 한계 |
방법 | 핵심 지표 | 단점 |
Max Probability | 가장 높은 확률 값을 신뢰도로 간주 | 여러 정답 존재 시 왜곡됨 |
Entropy | 토큰 분포의 평균적 불확실성 | 중요하지 않은 토큰이 신뢰도 판단을 흐림 |
기존 방법 | LogU의 차별점 |
확률(normalized) 기반 → 상대 비교 | Logit(raw evidence) 기반 → 절대 강도 비교 가능 |
토큰 간의 상대 우위만 판단 | “모르겠다 / 여러 정답을 안다”를 구분 가능 |
복잡한 샘플링 필요 | O(1) 계산, 실시간 적용 가능 |
확률기반 방법이 실패할 수 밖에 없는 예시를 보여주고 있습니다.
다중 정답이 있는 경우 확률 기반은 정규화 후 확률이 매우 낮다는 것을 알 수 있다.
또한 한 가지 만을 학습한 열죽음 보다 대통령에 대해 물어본 것이 낮은 확률값이라 Halluci라고 하면 문제가 발생한다.
🔹 불확실성 계산
✅ Aleatoric Uncertainty (AU) – 토큰 간의 애매함
- ψ는 digamma 함수
- 직관적으로: 분포가 넓으면 AU가 커지고, 한 토큰에 집중되면 AU는 작아짐
✅ Epistemic Uncertainty (EU) – 모델 자체의 지식 부족
- α 전체가 낮으면 EU가 커짐 → 모델이 해당 문제에 대한 지식이 부족
AU | EU | 모델 상태 | 예시 |
높음 | 높음 | 모른다 | 낯선 질문 (e.g. "베르베린이 암 치료에 효과 있나?") |
낮음 | 높음 | 추천은 하지만 확신은 없다 | 최근 문맥에 따라 제안한 내용 반복 |
낮음 | 낮음 | 확신 있다 | 자주 본 표현, 예: “has been” |
높음 | 낮음 | 여러 정답을 안다 | “오바마”, “링컨” 모두 정답일 수 있음 |
이렇게 Logit을 활용하여 4가지 상황으로 분해할 수 있습니다.
🧠 연구 목적 | LLM의 응답 신뢰도(uncertainty) 를 정확하고 효율적으로 추정하여 hallucination을 줄이기 위함 |
❗ 문제의식 | 기존 확률 기반 방법은 ① 정답이 여러 개일 때 잘못된 판단 ② 모델의 지식 부족(Epistemic Uncertainty) 구분 불가 ③ 샘플링 기반은 비효율적 (여러 번 실행 필요) |
🔍 해결 아이디어 | Softmax 확률이 아닌 logit 자체를 ‘증거’로 해석하고, 이를 기반으로 토큰 수준의 불확실성을 정량화 |
🧪 제안 방법 | LogU (Logits-induced Token Uncertainty) – logit을 Dirichlet 분포로 모델링하여 1. AU (Aleatoric Uncertainty): 데이터의 애매함 2. EU (Epistemic Uncertainty): 모델 지식의 부족 → 두 값을 결합해 신뢰도 추정 |
🧭 불확실성 4분면 분류 | I. AU↑, EU↑ → “모른다” II. AU↓, EU↑ → “추천하지만 확신 없음” III. AU↓, EU↓ → “확신 있음” IV. AU↑, EU↓ → “정답이 여러 개 있음” |
🔄 적용 과제 1 | Dynamic Decoding: 불확실성에 따라 sampling 전략 조절 (EU 높으면 temperature ↓, 낮으면 temperature ↑) → 정확도 + 다양성 동시 향상 |
📉 적용 과제 2 | Response Reliability Estimation: 응답 전체의 신뢰도를 추정 → 문장 내 신뢰도 낮은 K개 토큰 기반 평균으로 계산 |
📈 주요 실험 결과 | SemEval benchmark: 최대 +11.4% 향상 (LLaMA2-13B 기준) ruthfulQA benchmark: AUROC 최대 +7.3% 향상 샘플링 기반 방법보다 효율적이며 성능 우수 |
✅ 핵심 기여 | 샘플링 없이도 실시간으로 불확실성 추정 가능 토큰 단위의 미세한 신뢰도 분석 디코딩 제어, 응답 필터링, 후처리 등에 활용 가능 |
🧩 기존 방법과 차이점 | 기존: 확률/엔트로피 → 상대적 정보만 이용 LogU: logit → 절대적 ‘지식 강도’를 반영함 |
🧪 수식 핵심 | AU: Dirichlet 기대 엔트로피 EU: 총 evidence 반비례 R(at) = 1 / (AU × EU) |
🔬 이론적 통찰 | Cross Entropy Loss 구조상 여러 정답이 존재할 경우 정답 간 경쟁이 발생 → 확률만으로 신뢰도 측정 불가능 |
⚙️ 구현 팁 | Top-K logit만 추출하여 ReLU 적용 후 Dirichlet 모델링 |
🧾 결론 한 줄 요약 | LogU는 LLM의 토큰 생성 과정에서 ‘얼마나 확신하고 있는가’를 가장 현실적이고 정량적으로 잘 표현하는 방법이다. |
논문 "Estimating LLM Uncertainty with Logits"는 대규모 언어 모델(LLM)의 신뢰성 추정 문제를 해결하고자 하며, 기존 확률 기반의 불확실성 추정 방식의 한계를 극복하기 위해 LogU(Logits-induced Token Uncertainty)라는 새로운 방법론을 제안합니다. 아래에서 논문의 내용을 체계적으로, 단계별로 분석하여 정리해드리겠습니다.
🧩 문제 정의 및 동기 (Problem & Motivation)
문제점
- LLM은 지식이 부족할 경우 hallucination(사실이 아닌 내용을 생성)을 일으킴.
- 특히 의료, 법률 등 고신뢰성이 요구되는 분야에서는 심각한 문제.
- 기존의 확률 기반(token probability) 또는 샘플링 기반 불확실성 추정 방법들은 다음과 같은 한계를 가짐:
- 다중 샘플링이 필요해 비효율적.
- 한 번의 응답에 대한 신뢰도 판단이 어려움.
- 모델의 내재된 불확실성(epistemic uncertainty) 을 측정하지 못함.
- 토큰 간 상대 확률만 반영되고, 증거의 강도(logits) 는 소실됨.
핵심 아이디어
- Logits 자체를 토큰 생성에 대한 ‘증거’로 간주하여 확률이 아닌 logit을 기반으로 불확실성을 추정.
- Dirichlet 분포 기반의 Evidential Learning을 통해 불확실성을 실시간, 샘플링 없이 계산.
🧪 제안 방법: LogU (Logits-induced Token Uncertainty)
핵심 구성
LogU는 불확실성을 두 가지로 분해하여 측정함:
- Aleatoric Uncertainty (AU): 데이터의 고유 불확실성 (토큰 간 분포의 퍼짐 정도)
- Epistemic Uncertainty (EU): 모델의 지식 부족으로 인한 불확실성 (전반적인 logit 크기)
✅ AU는 logit의 분포가 퍼져 있음을 의미하고,
✅ EU는 전반적으로 logit이 낮고 분포가 평탄할 때 높음.
4분면 체계 (Quadrant System)
LogU는 AU와 EU의 조합으로 토큰 상태를 아래처럼 분류함:
AU | EU | 해석 | 의미 |
높음 | 높음 | I do not know | 지식 부족 (비신뢰) |
낮음 | 높음 | Lack knowledge, but I suggest | 제한된 지식 기반 추천 (주의 요함) |
낮음 | 낮음 | I am sure | 매우 확신 (신뢰) |
높음 | 낮음 | I know more than one answer | 다수 정답 존재 (신뢰) |
🧠 수학적 구현
Dirichlet 분포 기반 증거 모델링
- Top-K logit 값을 이용해 Dirichlet 분포 파라미터 α_k 구성:

- Aleatoric Uncertainty (AU) 계산:

- Epistemic Uncertainty (EU) 계산:

🔄 응용 1: 동적 디코딩 전략 (LogU-guided Dynamic Decoding)
목적
- 다양성과 정확성의 균형을 맞추는 것이 목표
- EU 값에 따라 샘플링 온도(temperature) 조정:
- EU 높음: 확실하지 않으므로 temperature 낮춤 (보수적)
- EU 낮음: 다양한 정답 가능하므로 temperature 높임 (공격적)
결과
- SemEval benchmark에서 기존 방법 대비 최대 11.4% 향상
- 다양한 모델 크기에서 일관된 성능 향상 확인
✅ 응용 2: 응답 신뢰도 추정 (Response Reliability Estimation)
문제점
- 기존 방법은 중요하지 않은 토큰이 높은 불확실성으로 오염됨
- 신뢰도 추정 시 토큰마다 가중치를 줘야 하는 어려움 존재
LogU 접근
- 신뢰도
R(at)=1 / AU(at)⋅EU(at) - 전체 응답 신뢰도: 불신뢰도가 높은 K개의 토큰 기반 평균

결과
- TruthfulQA 벤치마크에서 AUROC 기준 최고 성능
- LLaMA2-13B 기준으로 기존 대비 +7.3% 향상
📌 이론적 통찰: 왜 확률 기반은 실패하는가?
- Cross Entropy Loss 구조 상, 동일 질문에 여러 정답이 존재할 경우,
- 한 정답의 확률을 높이면, 다른 정답의 확률은 낮아짐 (경쟁 구조)
- 이로 인해 낮은 확률이 반드시 낮은 신뢰도를 의미하지 않음
🧾 결론 (Conclusion)
- 기존 확률 기반 방법은 logit 증거의 강도 정보를 소실하여 신뢰도 추정에 실패.
- LogU는 logit 기반의 실시간 불확실성 추정 방법으로,
- 토큰 단위의 불확실성,
- 응답 신뢰도 추정,
- 동적 디코딩 전략 등 다양한 응용 가능.
- 샘플링 없이도 정확한 신뢰도 예측이 가능하며, 성능 향상이 검증됨.
🔬 연구자로서의 관찰 및 제안
- LogU는 디코딩 전략 최적화, 자동 필터링, 협동형 에이전트 신뢰성 판별 등에 응용 가능.
- 향후 연구 방향:
- LogU와 fine-tuning의 연계: uncertainty-guided loss 설계 가능성.
- Token-level attention re-weighting에 LogU 활용.
- Multi-modal 모델에도 적용할 수 있도록 확장 필요 (e.g. VLM에서 cross-modal uncertainty).
필요하시면 논문 수식 분석이나 코드 재현, 파이프라인 구현도 도와드릴 수 있습니다. 추가로 궁금하신 내용 있으신가요?
좋습니다! 논문 "Estimating LLM Uncertainty with Logits"을 기반으로, 관련된 연구 흐름과 주요 논문들을 정리하고, 각각이 어떤 문제를 해결하려고 했는지, 어떤 방식이 사용되었는지를 예시와 함께 전문가의 시선에서 쉽고 명확하게 설명해드리겠습니다.
🧠 1. 연구 배경 및 관련 문제
🎯 핵심 문제: LLM의 불확실성(Uncertainty) 추정
LLM은 굉장히 강력하지만, 때때로 지식이 부족하거나 문맥이 애매한 상황에서 “사실이 아닌 답(hallucination)”을 만들어냅니다.
예를 들어:
Q. 미국 대통령 중 한 명을 말해줘.
모델 A: “John Fitzgerald Kennedy”
모델 B: “Abraham Lincoln”
모델 C: “Obama”
→ 모두 정답일 수 있으나, 각자의 생성 확률은 다릅니다. 이때 낮은 확률이 “틀린 답”을 의미하는 건 아니죠.
그래서 우리는 모델이 어느 정도 “확신하고 있는지”, 즉 신뢰할 수 있는지를 정량적으로 측정하고 싶습니다.
📚 2. 기존 접근 방식 및 관련 연구
🔁 A. 샘플링 기반 방법 (Sampling-based Methods)
방법 | 핵심 아이디어 | 한계점 |
Semantic Entropy (Kuhn et al., 2024) | 같은 질문에 대해 여러 번 답하게 하고, 답변의 다양성을 비교함 | 샘플링 비용 높고, 실시간 추정 불가능 |
Contrastive Sampling (Huang et al., 2024a) | 질문을 약간 다르게 바꾸고 답을 비교함 | 정답이 여러 개일 경우 혼란 발생 |
Self-reflection (Ji et al., 2023) | 모델이 스스로 생성한 답에 대해 확신하는지 평가 | 신뢰성 낮고, 정확도에 한계 |
예시:
Q. 열역학 제2법칙의 결과는?
샘플1: 엔트로피 증가
샘플2: 열은 항상 고온 → 저온
샘플3: 열은 절대 100% 일로 변환 불가
→ 정답이 다양한데, 샘플 간 다양성이 커도 ‘틀린 건 아님’
➡️ 이러한 상황에서 단순 샘플링은 신뢰도 추정이 어려움
🔢 B. 확률 기반 방법 (Probability-based Methods)
방법 | 핵심 지표 | 단점 |
Max Probability | 가장 높은 확률 값을 신뢰도로 간주 | 여러 정답 존재 시 왜곡됨 |
Entropy | 토큰 분포의 평균적 불확실성 | 중요하지 않은 토큰이 신뢰도 판단을 흐림 |
예시:
Q. "지구의 종말은 어떻게 될까?"
모델: “The universe will go to heat death.”
확률: heat death → 0.8
→ 하지만 정답이 하나뿐이라서 높은 확률이 나옴.
그러나 이것이 모델이 “정말 확신”하고 있는지를 말해주진 않음.
🧪 3. 제안 방법: LogU와 관련 연구와의 차별점
✅ LogU: Logits 기반 불확실성 추정
기존 방법 | LogU의 차별점 |
확률(normalized) 기반 → 상대 비교 | Logit(raw evidence) 기반 → 절대 강도 비교 가능 |
토큰 간의 상대 우위만 판단 | “모르겠다 / 여러 정답을 안다”를 구분 가능 |
복잡한 샘플링 필요 | O(1) 계산, 실시간 적용 가능 |
관련 연구 연결:
- Evidential Deep Learning (Sensoy et al., 2018):
- 분류기의 출력(logit)을 Dirichlet 분포의 파라미터로 보고, AU와 EU를 구분함
- LogU는 이 이론을 LLM의 토큰 예측에 응용
- Malinin & Gales (2021):
- Auto-regressive 구조에서 evidence 기반 uncertainty 추정 제안
- 하지만 실제 LLM에는 잘 적용되지 않았음 → LogU가 이를 발전시킴
📊 4. 성능 비교 요약 (TruthfulQA 기준)
방법 | 샘플링 여부 | AUROC 성능 |
Max Probability | X | 68.38% |
Entropy | X | 72.53% |
Semantic Entropy | O | 53.71% |
LeS (Lexical Similarity) | O | 56.83% |
LogU (본 논문) | X | 79.78% ✅ |
해석: LogU는 샘플링 없이, 더 높은 성능을 내며 실시간 적용 가능하다는 강점을 가짐.
💡 5. LogU의 예시 설명 (전문가 시점 요약)
[상황 1] 모델이 지식이 부족한 경우
- 질문: “베르베린은 당뇨에 효과가 있나요?”
- 답: “크롬(Chromium)은 효과가 있습니다.”
- EU↑, AU↑ → I don’t know
[상황 2] 모델이 자신은 있음, 정답이 많음
- 답: “..., which may help regulate blood sugar.”
- 여러 유효한 표현 존재 → AU↑, EU↓ → I know multiple answers
→ 기존 방식은 위 두 상황을 모두 “확신 없음”으로 오판함
→ LogU는 상황을 정확히 구분하여 downstream task에 신뢰도 활용 가능
📈 6. 후속연구 제안 (연구자 관점)
- LogU를 loss function에 통합하여 모델 훈련 시 신뢰도에 따라 가중 조정
- LogU 기반 샘플 선택: Fine-tuning 시 불확실성 높은 샘플에 더 많은 학습 비중
- 다중 모달 확장: VLM, Multimodal LLM에서 텍스트-비전 양쪽의 불확실성 동시 측정
🧩 정리
항목 설명항목 | 설명 |
핵심 기여 | 샘플링 없이, token-level 불확실성 측정 |
핵심 기법 | Logit 기반 Dirichlet 분포 modeling |
대표적 성과 | TrustfulQA, SemEval에서 기존 방법 대비 최대 11% 성능 향상 |
관련 논문 | Sensoy et al. (2018), Kuhn et al. (2024), Malinin & Gales (2021) |
적용 가능성 | 디코딩 제어, 응답 필터링, 모델 디버깅 등 다양한 분야 |
좋습니다. 논문 "Estimating LLM Uncertainty with Logits"의 방법론(LogU: Logits-induced Token Uncertainty)을 정확하고 상세하게, 그리고 AI 전문가의 입장에서 예시를 통해 쉽게 설명드리겠습니다.
🧠 핵심 개요: 왜 LogU인가?
기존의 불확실성 추정은 대부분 확률(probability)이나 엔트로피(entropy)를 기반으로 했습니다. 그러나 이 방식은 중요한 정보를 놓칩니다:
✔️ 모델이 여러 정답을 모두 알고 있는지
✔️ 모델이 정말로 지식이 부족해서 모르는지
이 두 상황을 확률만으로는 구분할 수 없습니다. 따라서 논문에서는 LLM이 생성하는 "logit" 자체를 증거로 활용하여 불확실성을 정량화하는 LogU를 제안합니다.
🔧 방법론 상세 설명
🔹 Step 1: 기본 용어 정의
- M: LLM 모델
- q: 사용자 입력 → 프롬프트 텍스트
- a_{t-1}: 지금까지 생성된 토큰들
- τ_k: k번째 후보 토큰
- M(τ_k∣q,a_{t−1}): 토큰 τ_k에 대한 logit (softmax 전의 점수)
- P(τ_k∣q,a_{t−1}): softmax를 적용한 확률
🔹 Step 2: Logits를 증거로 해석
기존 softmax는 다음과 같이 확률을 계산합니다:

하지만 이 과정에서 logit의 절대 크기, 즉 모델이 본 경험의 양, 증거의 강도가 사라집니다.
🔍 핵심 인사이트:
높은 logit은 많이 본 경험을 의미하고,
낮은 logit은 처음 보는 상황일 수 있음.
🔹 Step 3: Dirichlet 분포로 AU, EU 모델링
논문은 logit을 증거로 보고, Dirichlet 분포의 파라미터 α로 사용합니다.
- Top-K logit 토큰만 사용 → 너무 작은 logit은 noise로 간주
- α_k=M(τ_k) (ReLU 적용으로 음수는 제외)
전체 증거량:

🔹 Step 4: 불확실성 계산
✅ Aleatoric Uncertainty (AU) – 토큰 간의 애매함

- ψ는 digamma 함수
- 직관적으로: 분포가 넓으면 AU가 커지고, 한 토큰에 집중되면 AU는 작아짐
✅ Epistemic Uncertainty (EU) – 모델 자체의 지식 부족

- α\alpha 전체가 낮으면 EU가 커짐 → 모델이 해당 문제에 대한 지식이 부족
🧭 4가지 불확실성 상태: 4분면 구조
AU EU 모델 상태 예시AU | EU | 모델 상태 | 예시 |
높음 | 높음 | 모른다 | 낯선 질문 (e.g. "베르베린이 암 치료에 효과 있나?") |
낮음 | 높음 | 추천은 하지만 확신은 없다 | 최근 문맥에 따라 제안한 내용 반복 |
낮음 | 낮음 | 확신 있다 | 자주 본 표현, 예: “has been” |
높음 | 낮음 | 여러 정답을 안다 | “오바마”, “링컨” 모두 정답일 수 있음 |
🔍 예시로 전체 흐름 정리
질문:
Q. "미국 대통령 중 한 명을 말해줘."
LLM의 Logits 예시:
후보 토큰 | Logit 값 | Softmax 확률 |
Barack | 9.0 | 0.377 |
George | 8.7 | 0.202 |
Lincoln | 8.6 | 0.178 |
→ 확률은 낮지만 logit은 모두 높음 → 여러 정답을 충분히 알고 있음
🧠 AU: 높음, EU: 낮음 → “I know multiple answers”
→ 신뢰 가능한 상태, 하지만 확률 기반 방법은 잘못 판단했을 가능성 있음
🧪 응용 예시: LogU 활용 방안
1. LogU-guided Decoding (디코딩 전략 제어)
- EU 높음: 모델이 모를 수 있으므로 보수적으로 디코딩 (낮은 temperature)
- EU 낮음: 자신 있을 때는 다양한 표현 허용 (높은 temperature)
2. LogU-guided Filtering
- 대화형 AI에서 불확실성 높은 응답 필터링
- 예: ChatGPT가 확실하지 않은 질문에 “모른다”를 먼저 말하게 만들 수 있음
🧾 요약 정리
항목 | 설명 |
🔍 목적 | Softmax 확률 대신 logit 기반으로 불확실성 추정 |
🔬 기술 | Logit → Dirichlet 분포 → AU & EU 계산 |
🧭 4가지 상태 | “모른다”, “추천만”, “확신”, “다양한 정답 존재” |
🧠 장점 | 샘플링 필요 없음, 실시간 적용 가능, 고성능 |
🔧 적용 분야 | 디코딩 제어, 응답 신뢰도 필터링, LLM 안정화 등 |
📊 1. 실험 결과 요약 (Experimental Results)
논문에서는 제안한 LogU가 실제로 기존 방법보다 얼마나 더 정확하게 불확실성을 추정하고, LLM 응답의 신뢰도를 잘 반영하는지를 두 가지 응용 과제로 검증합니다.
🧪 A. 응용 1: Dynamic Decoding Strategy
📌 목적: LLM이 응답을 생성할 때, 불확실성에 따라 더 다양하거나 더 보수적인 출력을 하도록 제어
🔍 실험 환경
- 데이터셋: SemEval (감정 분석, 다중 클래스 예측)
- 모델: LLaMA2 & LLaMA3 (3B ~ 70B까지 다양한 크기)
📈 성능 비교 (정확도 기준)
방법 | LLaMA2-13B | LLaMA3-8B |
Greedy Search | 74.19% | 79.10% |
Entropy 기반 | 74.87% | 94.75% |
LogU (제안) | 86.22% ⬆️(+11.4%) | 97.55% ⬆️(+2.8%) |
✅ 결과 요약
- LogU가 확실할 때는 다양성을 높이고, 불확실할 때는 보수적으로 생성하여 정확도와 다양성 모두 향상
- 다양한 크기의 모델에서 일관된 성능 향상을 보임
- 최대 11.4%의 정확도 개선
🧪 B. 응용 2: Response Reliability Estimation
📌 목적: 모델이 생성한 문장 전체가 신뢰할 만한지 자동으로 판단하는 것
🔍 실험 환경
- 벤치마크: TruthfulQA
- 정답 판단 기준: BLEURT > 0.5 → 정확한 응답
- 측정 지표: AUROC (신뢰도 예측이 얼마나 잘 맞는지)
📈 AUROC 비교 성능
방법 | LLaMA2-13B |
확률 기반 | 68.38% |
Entropy 기반 | 72.53% |
Sampling 기반 평균 | 52.15% |
LogU (제안) | 79.78% ✅ (+7.3%) |
✅ 결과 요약
- 샘플링 없이도 가장 높은 AUROC 기록
- 특히 sampling 기반 방법보다 훨씬 뛰어난 성능을 보임
- 낮은 신뢰도일수록 실제 오답일 확률이 높다는 신뢰도-정답성 일치도가 높음
✅ 2. 결론 (Conclusion)
논문에서는 다음과 같은 결론을 도출합니다.
🎯 핵심 문제
- 기존 확률 기반 불확실성 추정은 정답이 여러 개일 때 오작동하거나,
- 모델이 지식이 없을 때와 정답이 다양할 때를 구분하지 못함
🧠 핵심 제안
- Logit은 모델이 본 데이터의 ‘증거’로 간주할 수 있으며,
- 이를 Dirichlet 분포 기반으로 정량화하면,
- AU (토큰 간 불확실성) 과
- EU (모델의 지식 부족) 을 분리해 계산할 수 있음
💡 주요 기여
- 토큰 수준에서 불확실성을 실시간 추정하는 LogU 프레임워크 제안
- 기존 확률/샘플링 기반 접근보다 더 효율적이고 정확
- 두 가지 downstream task(디코딩 제어, 응답 신뢰도 추정)에서 일관된 성능 향상
🧾 3. 전체 요약 (Final Summary)
항목 | 설명 |
🔍 문제 | 확률 기반 신뢰도 추정은 정보 손실이 있고, 정답 다양성을 표현 못함 |
🧪 방법 | Logit을 evidence로 보고, Dirichlet 분포로 AU & EU 추정 (LogU) |
🧭 구분 | 4분면 체계: 확신 있음 / 없음, 다중 정답 / 무지 구분 |
🔧 적용 | ① 디코딩 전략 제어, ② 응답 신뢰도 측정 |
📈 성능 | 기존 방법 대비 최대 +11% 향상 (SemEval), +7.3% AUROC 향상 (TruthfulQA) |
💡 의미 | 신뢰도 추정의 새로운 기준을 제시하며, 실시간 적용 가능성 확보 |
📌 요약의 핵심 한 줄:
LogU는 확률로 표현하지 못하는 “모름”과 “여러 정답”을 구분하여, LLM이 언제 자신 있는지 정확하게 보여주는 강력하고 실용적인 프레임워크다.
아주 좋은 질문입니다!
논문이나 머신러닝 연구에서 자주 등장하는 AUROC는 모델의 예측 신뢰도를 평가할 때 매우 중요한 지표입니다. 논문에서도 LogU의 성능을 정량적으로 평가하기 위해 AUROC를 사용했죠.
아래에 직관적 개념, 그래프 설명, 예시, 공식적 정의, 논문 내 적용 방식까지 순서대로 쉽게 설명드릴게요.
🔍 AUROC란?
AUROC = Area Under the Receiver Operating Characteristic Curve
즉, ROC 곡선 아래 면적입니다.
📈 AUROC의 직관적 의미
불확실성 점수가 낮을수록 ‘정답일 가능성이 높다’는 기준이 얼마나 잘 맞는지를 측정하는 지표입니다.
- 1.0 (100%): 완벽히 구분함 (가장 이상적인 모델)
- 0.5 (50%): 완전한 랜덤 추측 (불확실성 점수가 무의미함)
- 0.0: 완전히 반대로 예측함 (최악의 경우)
📊 그래프적으로 이해하기
ROC Curve는 다음 축으로 구성된 그래프입니다:
축 | 의미 |
x축 | False Positive Rate (FPR) = FP / (FP + TN) |
y축 | True Positive Rate (TPR) = TP / (TP + FN) |
- 곡선이 왼쪽 위로 솟을수록 더 좋은 분류자입니다.
- AUROC = 이 곡선 아래 면적
💡 예시로 이해하기
상황: LLM이 응답한 문장들에 대해 신뢰도 점수를 매겼다고 가정해요.
어떤 응답은 정답(BLEURT > 0.5)이고, 어떤 것은 오답이에요.
문장 | LogU 기반 신뢰도 | 실제 정답 여부 |
A | 0.95 | ✅ 정답 |
B | 0.90 | ✅ 정답 |
C | 0.80 | ❌ 오답 |
D | 0.75 | ✅ 정답 |
E | 0.40 | ❌ 오답 |
F | 0.10 | ❌ 오답 |
→ 이때 모델은 신뢰도 점수만 보고도, 정답과 오답을 상당히 잘 구분하고 있죠.
AUROC는 “신뢰도 점수가 더 높은 정답이, 무작위로 고른 오답보다 얼마나 더 높은가”를 수학적으로 계산합니다.
🔬 수식적 정의 (공식)
AUROC는 다음과 같이 정의됩니다:
AUROC=P(모델이 정답 샘플에 더 높은 점수를 줄 확률)
즉, 모든 정답-오답 쌍에 대해:

- N_pos: 정답 샘플 수
- N_neg: 오답 샘플 수
- s: 신뢰도 점수
- 1[⋅]: 참이면 1, 아니면 0
🧪 이 논문에서 AUROC를 왜 쓰나?
- LogU는 응답 신뢰도를 계산하는 도구입니다.
- 그 신뢰도가 실제로 “정답을 얼마나 잘 식별하는가”를 확인하려면 신뢰도 점수 vs 실제 정답 여부를 비교해야 합니다.
- 그래서 BLEURT > 0.5를 기준으로 정답 응답을 나누고,
- 그에 따라 LogU가 부여한 신뢰도 점수가 얼마나 잘 구분력을 가지는지를 AUROC로 측정합니다.
결과:
기존 확률 기반 모델의 AUROC가 68~72%였던 반면,
LogU는 최대 79.78%의 AUROC를 기록하며 더 뛰어난 신뢰도 예측력을 입증했습니다.
✅ 정리 요약
항목 | 설명 |
개념 | 신뢰도 점수 기반 분류자가 정답과 오답을 얼마나 잘 구분하는지 측정 |
범위 | 0.0 (최악) ~ 1.0 (완벽), 0.5 = 랜덤 |
시각화 | ROC Curve 아래 면적 |
논문 내 역할 | LogU의 응답 신뢰도 추정 성능을 평가하는 핵심 지표 |
해석 포인트 | 점수가 높을수록 “신뢰할 수 있는 점수 시스템”이라는 뜻 |
좋습니다!
이번에는 ROC Curve와 AUROC를 진짜 초심자의 눈높이에서, 비유와 예시를 중심으로 아주 쉽게 설명드릴게요.
마치 친구에게 설명하듯이 풀어볼게요 😊
🧠 기본 개념 먼저: ROC와 AUROC는 "분류기의 눈"을 테스트하는 방법이에요
우선, 우리가 가진 모델(예: LLM)은 어떤 문장이 정답인지 오답인지를 "점수(신뢰도)"로 판단합니다.
근데 그 점수가 진짜 믿을 만한 걸까?
→ 그걸 알아보는 방법이 바로 ROC Curve,
→ 그리고 그 성능을 숫자로 표현한 게 AUROC입니다.
🍎 사과 상자 비유로 이해하기
당신은 사과 농장에서 “좋은 사과🍎”와 “썩은 사과🍏”를 구분하는 자동 분류기를 만들었어요.
이 기계는 점수(0~1) 를 줘요. 높을수록 “좋은 사과 같음”이라고 판단한 거예요.
예시 데이터:
사과 번호 | 기계 점수 | 실제 상태 |
#1 | 0.95 | 🍎 좋은 사과 |
#2 | 0.85 | 🍎 좋은 사과 |
#3 | 0.75 | 🍏 썩은 사과 |
#4 | 0.60 | 🍎 좋은 사과 |
#5 | 0.30 | 🍏 썩은 사과 |
📈 ROC Curve는 어떻게 생기나요?
1. 임계값(threshold)을 바꿔보면서 좋은 사과/썩은 사과를 구분해요.
예: 임계값 = 0.8
→ 점수가 0.8 이상이면 좋은 사과로 판정
사과 | 점수 | 실제 예측 | 결과 |
#1 | 0.95 | 🍎 | ✅ 맞춤 (TP) |
#2 | 0.85 | 🍎 | ✅ 맞춤 (TP) |
#3 | 0.75 | 🍏 | ❌ 틀림 (FP) |
#4 | 0.60 | 🍎 | ❌ 놓침 (FN) |
#5 | 0.30 | 🍏 | ✅ 맞춤 (TN) |
2. 그때의 TPR(민감도)와 **FPR(거짓 양성률)을 계산합니다.
- TPR (참 양성 비율): 좋은 사과 중에 맞춘 비율 → 2/3
- FPR (거짓 양성 비율): 썩은 사과 중 틀린 비율 → 1/2
3. 이걸 여러 threshold에 대해 반복하면…
→ ROC Curve가 나와요!
x축: FPR, y축: TPR
곡선이 왼쪽 위로 높이 솟을수록 좋은 모델입니다.
🔲 AUROC는 뭔가요?
ROC 곡선 아래의 면적을 숫자로 계산한 것
- AUROC = 1.0 👉 완벽한 분류기
- AUROC = 0.5 👉 완전 랜덤 (던지기)
- AUROC < 0.5 👉 거꾸로 예측 중 (최악)
이 면적은 직관적으로 말하면,
"좋은 사과가 썩은 사과보다 더 높은 점수를 받을 확률" 입니다.
✅ 핵심 요약
용어 | 쉽게 | 예시 |
ROC Curve | 다양한 기준(threshold)에 따라 맞춘 비율 vs 틀린 비율을 그린 곡선 | "기계가 사과를 어떻게 구분하는지 시뮬레이션" |
AUROC | 그 곡선의 면적 → 높을수록 모델이 똑똑하다 | "좋은 사과에 높은 점수 줄 확률이 몇 %냐?" |
🎯 LLM 불확실성과의 연결
이 논문에서 LLM이 생성한 답마다 신뢰도 점수(LogU 기반) 를 계산합니다.
그리고 진짜 정답(BLEURT > 0.5)인지 아닌지를 비교해서,
- LogU 점수가 높으면 진짜 정답일 확률이 높아야 하고
- LogU 점수가 낮으면 틀릴 가능성이 높아야 해요
이게 잘 맞는지 평가하는 게 바로 AUROC입니다.
💬 마무리 한줄 요약
AUROC는 "모델이 정답에 더 높은 점수를 주고 있는가?"를 아주 직관적으로 측정하는 지표입니다.
ROC는 그 과정을 보여주는 시뮬레이션이고, AUROC는 그 결과를 숫자로 표현한 것!
아주 중요한 질문이에요!
이번에는 논문에서 핵심적으로 사용된 Dirichlet 분포에 대해 쉽게, 직관적으로, 그리고 왜 이걸 쓰는지까지 연결해서 설명드릴게요.
예시, 그림 비유, 그리고 LLM과의 관계까지 포함해서 전문가처럼 완전히 이해하실 수 있게 도와드릴게요 💡
🧠 1. Dirichlet 분포란 무엇인가요?
"확률 분포를 위한 확률 분포"입니다.
좀 더 구체적으로 말하면:
Dirichlet 분포는 여러 개의 확률(예: 카테고리 분포)을 다룰 때,
각 카테고리의 확률이 얼마나 될지를 불확실하게 모델링하는 데 쓰입니다.
📦 예시: 쿠키 상자 비유
상자에 초코, 바닐라, 딸기 쿠키가 있어요.
당신은 각 맛이 얼마나 있는지 정확히 모르고, 확률로 추정해야 해요.
- 그냥 "초코 60%, 바닐라 30%, 딸기 10%" 이렇게 딱 고정해놓는 게 아니라,
- "초코가 많을 확률이 높지만, 바닐라가 더 많을 수도 있어"처럼,
- 확률분포 자체에 대한 불확실성을 표현하는 거예요.
➡️ 이걸 수학적으로 표현한 게 바로 Dirichlet 분포입니다.
🔢 2. 수식 형태 (쉽게!)
Dirichlet 분포는 이런 식으로 생겼어요:
Dir(α1,α2,...,αK)
- K: 카테고리 개수 (예: 3가지 맛 쿠키)
- α_k: 각 카테고리에 대한 "증거의 양" 또는 "확신도"
예:
Dir(5,2,1)
→ 초코(5), 바닐라(2), 딸기(1) → 초코가 많이 나올 확률이 높은 분포를 의미함
🎯 Dirichlet을 왜 사용하나요? (논문 맥락에서)
이 논문에서는 LLM이 어떤 토큰을 선택할지에 대해 확률만 계산하는 게 아니라,
그 확률이 얼마나 신뢰할 수 있는지, 즉 불확실성을 함께 다루고 싶었습니다.
그래서 다음과 같은 아이디어를 씁니다:
logit 값 | LLM이 특정 토큰을 얼마나 강하게 밀고 있는지 (evidence) |
Dirichlet 분포 | 그 logit들을 기반으로 한 다음 토큰 확률의 분포 자체를 모델링 |
결과 | AU (Aleatoric) 와 EU (Epistemic) 불확실성 모두 계산 가능해짐 |
📊 Dirichlet vs Softmax
Softmax | Dirichlet | |
출력 | 고정된 하나의 확률 벡터 (예: [0.7, 0.2, 0.1]) | 확률 벡터가 이럴 수도 있고, 저럴 수도 있음 (분포) |
목적 | 가장 확률 높은 토큰을 선택 | 그 확률 자체에 대한 불확실성을 표현 |
비유 | 투표 결과만 본 것 | 투표의 신뢰도까지 반영한 것 |
🧪 LLM에서 Dirichlet 분포가 하는 일
- LLM은 각 토큰에 대해 logit (점수)을 계산
- Top-K logit 값을 뽑아 → α_k 값으로 간주
- 이 α_k 값들을 Dirichlet 분포에 넣음
- 이 분포에서:
- 평균 → 일반적인 softmax 결과처럼 해석 가능
- 분산 → AU (데이터의 모호성) 측정
- 총합 α_0 → EU (모델의 지식 양)에 반비례
📘 정리: Dirichlet 분포를 한 줄로 설명하면?
Dirichlet 분포는 "이 토큰이 나올 확률은 이러이러할 거야"라는 추정 자체가 불확실할 때, 그 불확실성을 정량적으로 나타내는 분포입니다.
✅ 요약 정리
목적 | 확률값 자체에 대한 불확실성을 모델링 |
입력 | α_k: 각 카테고리의 증거량 (e.g. logit 값) |
출력 | 확률 벡터에 대한 분포 |
LLM 활용 | LLM이 토큰 예측 시 얼마나 자신 있는지 계산 가능 |
불확실성 계산 | 평균: softmax, 분산: AU, 총합: EU |
👀 시각화 비유
- Softmax: “이 쿠키는 70% 초코일 거야!”
- Dirichlet: “음… 초코일 확률이 평균 70%긴 한데, 40~90% 사이로 왔다 갔다 할 수도 있어.”
좋습니다!
이번에는 AU (Aleatoric Uncertainty), 즉 데이터로부터 오는 불확실성에 대해 초보자도 이해할 수 있도록 쉬운 예시와 직관, 수식 해석까지 순서대로 설명드릴게요.
🧠 1. AU가 뭐냐고요?
Aleatoric Uncertainty (AU)는 모델이 "입력 데이터를 보고도 확신을 가지지 못하는 정도"를 말합니다.
즉, “답이 애매한 상황”에서 발생하는 불확실성이에요.
- "입력 자체가 모호해서", 또는
- "정답이 여러 개라서"
→ 모델이 정확하게 뾰족한 하나의 답을 내리지 못하는 경우에 AU가 큽니다.
🍦 예시: 아이스크림 고르기 비유
어린이에게 “좋아하는 맛을 골라봐!” 했더니:
- 어떤 아이는 “딸기!” 하고 바로 선택 → 불확실성 낮음 (AU ↓)
- 어떤 아이는 “음… 초코도 좋고 바닐라도 좋아…” → 불확실성 높음 (AU ↑)
➡️ 이처럼 답이 고르게 분산되어 있으면 AU는 높고,
한쪽으로 몰리면 AU는 낮아요.
🔢 2. AU의 수식 의미 해석 (쉬운 언어로)

👉 각 기호 뜻부터 정리
α_k | 각 후보 토큰 k의 "logit 기반 증거" |
α_0 | 전체 증거의 합 (∑kα_k) |
α_k / α_0 | 후보 k의 비중 (확률처럼 작용) |
ψ(x) | 디감마 함수 (엔트로피 계산에 쓰이는 수학 함수) |
→ 이 수식은 Dirichlet 분포의 기댓값 기반 엔트로피를 계산하는 공식이에요.
✨ 직관 요약
AU는 "이 모델이 다음 토큰에 대해 얼마나 혼란스러운지를 수치로 표현한 것"
- 분포가 고르게 퍼져 있다면 (여러 토큰이 비슷하게 강력함) → AU ↑
- 하나의 토큰만 압도적이라면 → AU ↓
📊 간단한 숫자 예시
Case 1: 모델이 확신함
α = [9, 1, 0.1] ⇒ 거의 첫 번째 토큰만 강함 → AU↓
Case 2: 모델이 혼란스러움
α=[3, 3, 3]⇒셋 다 비슷함 → AU↑
📌 AU는 어떤 불확실성을 측정하나요?
Aleatoric Uncertainty (AU) |
|
정체 | 데이터 자체가 모호해서 발생 |
예시 | - 질문이 애매할 때 - 답이 여러 개일 때 - 문맥이 부족할 때 |
의미 | “모델이 지금 뭐라 답해야 할지 확신이 없어 보인다” |
활용 | “지금 이 답변은 애매하다”는 신호로 사용 가능 |
수치적 특징 | 엔트로피가 높을수록 AU가 큼 |
🤔 AU vs EU (비교)
AU | EU | |
불확실성 원인 | 데이터 자체가 모호함 | 모델이 지식을 잘 못 배움 |
바꿀 수 있는가? | 바꾸기 힘듦 (내재적) | 학습 더 하면 줄어듦 |
예시 | "누가 제일 인기 많아?" | "양자역학은 어떻게 작동해?" (모델이 배운 적 없음) |
✅ 마무리 요약
AU는 모델이 "정확한 선택을 내리기 애매할 때" 얼마나 불확실해하는지를 나타내는 수치입니다.
logit을 기반으로 만든 Dirichlet 분포의 엔트로피를 계산해서 AU를 구합니다.
좋아요! AU를 구현하려고 할 때 가장 까다로운 부분이 바로 디감마 함수 ψ (psi) 를 다루는 부분이죠.
아래에선 구현하는 입장에서 AU 계산을 어떻게 구현해야 하는지, 특히 ψ 함수(psi)를 어떤 라이브러리로 처리하면 되는지를 중심으로 자세히 설명드릴게요.
🎯 우리가 구현하고 싶은 AU 수식
다시 정리해 보면, 논문에서 AU는 이렇게 정의되어 있습니다:

🧱 Step-by-Step 구현 개요
✅ 입력: Top-K logit 값들 → Dirichlet 파라미터로 사용 (evidence)
# 예: torch 기반
logits = torch.tensor([10.0, 5.0, 1.0]) # Top-K logit
alphas = logits.clamp(min=0.0) # ReLU 적용: 음수 evidence 제거
alpha0 = alphas.sum()
✅ Digamma 함수 (ψ): PyTorch or SciPy에서 바로 제공함
import torch
# torch에서 digamma 함수는 torch.special.digamma 또는 torch.digamma로 사용 가능
psi_alpha = torch.digamma(alphas + 1)
psi_alpha0 = torch.digamma(alpha0 + 1)
✅ AU 계산
weights = alphas / alpha0
AU = -torch.sum(weights * (psi_alpha - psi_alpha0))
✅ 전체 코드 예시 (PyTorch 기준)
import torch
def compute_aleatoric_uncertainty(logits, eps=1e-8):
"""
logits: tensor of shape (K,) — top-K logits for candidate tokens
returns: scalar — aleatoric uncertainty
"""
alphas = torch.clamp(logits, min=0.0) # ReLU
alpha0 = alphas.sum() + eps # avoid divide by zero
psi_alpha = torch.digamma(alphas + 1)
psi_alpha0 = torch.digamma(alpha0 + 1)
weights = alphas / alpha0
AU = -torch.sum(weights * (psi_alpha - psi_alpha0))
return AU
📚 참고: Digamma 함수 ψ(x) 란?
- 수학적으로는 다음과 같은 정의를 갖는 함수예요:

- 직관적으로는 감마 함수의 로그의 기울기이며,
- Dirichlet 분포의 엔트로피를 계산할 때 꼭 필요합니다.
- PyTorch: torch.digamma, SciPy: scipy.special.digamma
🧪 추가 팁: AU를 여러 토큰에 대해 벡터로 계산하고 싶다면?
- logits를 (B, K) 형태로 두고 dim=1으로 연산하면 여러 샘플도 한 번에 처리할 수 있어요.
✅ 마무리 요약
입력 | Top-K logit 값 → ReLU 처리 (음수 제거) |
핵심 연산 | 디감마 함수 ψ(x) → torch.digamma() 사용 |
출력 | Dirichlet 분포의 엔트로피 기대값 (AU) 계산 |