NL-361, Towards Fully Exploiting LLM Internal States to Enhance Knowledge Boundary Perception, ACL 2025
논문 한눈에 보기
제목: Towards Fully Exploiting LLM Internal States to Enhance Knowledge Boundary Perception
ACL 2025 Long Paper
이 논문은 다음 질문을 다룹니다.
LLM이 답변을 생성하기 전부터, 자신이 그 질문에 답할 수 있는지를 hidden state만으로 판단할 수 있는가?
결론부터 말하면:
질문의 마지막 토큰 hidden state에 작은 분류기를 붙이면, 답변을 생성하기 전에도 모델의 정답 가능성을 상당히 잘 예측할 수 있다. 다만 답변 생성 후 hidden state를 사용하면 조금 더 정확하다.
그리고 모델의 과도한 자신감을 줄이기 위해, 질문을 여러 형태로 바꿔 물었을 때 confidence가 일관적인지를 검사하는 C³라는 보정 방법도 제안합니다.
1. 이 논문에서 말하는 Knowledge Boundary
Knowledge Boundary는 쉽게 말해 다음 두 영역의 경계입니다.
모델이 실제로 알고 있어서 정답을 낼 수 있는 질문
모델이 알지 못해서 오답을 낼 가능성이 높은 질문
좋은 모델이라면:
| 실제 능력 | 모델의 판단 | 바람직한 행동 |
|---|---|---|
| 정답 가능 | “알고 있다” | 답변 |
| 정답 불가능 | “모른다” | 거절·검색·도구 호출 |
| 정답 불가능 | “알고 있다” | 과신, hallucination |
| 정답 가능 | “모른다” | 지나친 보수성 |
논문에서는 모델 confidence와 실제 정답 여부가 일치하는 비율을 Alignment라고 부릅니다.
또 두 종류의 오류를 구분합니다.
Overconfidence: 틀리면서 안다고 판단
Conservativeness: 맞힐 수 있으면서 모른다고 판단
이 중 검색 필요성 판단에서는 특히 Overconfidence가 중요합니다. 틀릴 질문인데 모델이 자신 있다고 판단하면 검색하지 않고 hallucination을 만들기 때문입니다.
2. 핵심 아이디어
기존 방법은 보통 모델이 답변을 생성한 다음, 답변 token의 hidden state를 보고 그 답변이 맞는지를 판단합니다.
예를 들어:
질문 → LLM 답변 생성 → 답변 마지막 hidden state → 정답/오답 분류
하지만 이런 방식은 두 가지 문제가 있습니다.
이미 잘못된 답변을 생성한 뒤다.
긴 답변을 전부 생성해야 하므로 계산 비용이 든다.
이 논문은 대신 질문까지만 입력했을 때의 hidden state를 사용합니다.
질문 → 질문 마지막 token hidden state → 정답 가능/불가능 분류
즉, 답변을 생성하기 전에 다음과 같은 판단을 하는 것입니다.
이 질문은 모델 내부 지식만으로 답할 수 있는가?
논문에서는 이를 Pre-generation Perception이라고 부릅니다.
3. Hidden state를 어떻게 뽑는가
질문의 token이 다음과 같다고 합시다.
[
q = {q_1,q_2,\dots,q_n}
]
그리고 모델이 생성하는 답변 token은:
[
a = {a_1,a_2,\dots,a_m}
]
입니다.
Transformer의 각 layer에서는 각 token에 대응하는 hidden state가 만들어집니다.
논문은 세 가지 표현을 비교합니다.
3.1 Pre-State
질문의 마지막 token (q_n)의 hidden state입니다.
[
I_{\text{pre}} = I^{\text{mid}}_{q_n}
]
모델이 아직 답변 token을 하나도 생성하지 않은 상태입니다.
[질문 token들] → 마지막 질문 token hidden state
이 hidden state에는 질문의 의미뿐 아니라, 모델이 다음 답변을 만들기 위해 구성한 내부 정보가 담겨 있다고 봅니다.
3.2 Last State
답변을 모두 생성한 뒤, 답변의 마지막 token hidden state를 사용합니다.
[
I_{\text{last}} = I^{\text{mid}}_{a_m}
]
[질문] [전체 답변] → 마지막 답변 token hidden state
질문과 생성된 답변 전체를 attention으로 본 상태이므로 Pre-State보다 정보가 많습니다.
3.3 Avg State
답변을 구성하는 모든 token의 hidden state를 평균냅니다.
[
I_{\text{avg}}
\frac{1}{m}
\sum_{i=1}^{m} I^{\text{mid}}_{a_i}
]
마지막 token 하나만 쓰지 않고 답변 전체의 표현을 모으려는 방식입니다.
4. 어느 layer의 hidden state를 사용하는가
최종 layer가 아니라 중간 layer를 사용합니다.
기존 연구에서 factuality 또는 truthfulness 관련 정보가 Transformer의 중간층에서 더 잘 드러난다는 관찰을 따릅니다.
예를 들어 Llama2-7B에서는 16번째 layer의 hidden state를 사용합니다.
개념적으로 보면:
초기 layer:
문법, 표면적 표현 중심
중간 layer:
질문의 의미, 관련 지식, 정답 가능성 등이 비교적 잘 표현됨
마지막 layer:
다음 token 출력 확률에 맞게 표현이 변환됨
논문의 주장은 token probability로 변환하기 전 hidden state에 더 많은 정보가 남아 있을 수 있다는 것입니다.
5. Confidence estimator
hidden state 위에 작은 4-layer MLP 분류기를 붙입니다.
[
P(\hat c=1)=\sigma(\mathrm{MLP}(I))
]
여기서:
(I): LLM의 hidden state
(\hat c=1): 모델이 정답을 낼 수 있다고 예측
(\hat c=0): 정답을 낼 수 없다고 예측
MLP 구조는 다음과 같습니다.
LLM hidden dimension
↓
512
↓
64
↓
32
↓
2
LLM 자체를 fine-tuning하는 것이 아니라, hidden state를 입력으로 받는 별도의 lightweight classifier를 학습합니다.
6. 학습 label은 어떻게 만드는가
각 질문에 대해 먼저 실제로 LLM의 답변을 생성합니다.
그다음:
생성 답변에 ground-truth answer가 포함됨 → label 1
생성 답변에 ground-truth answer가 없음 → label 0
으로 분류기 학습 데이터를 만듭니다.
즉 label은 다음 의미입니다.
이 질문의 정답을 일반적으로 알고 있는가?
보다는 더 정확히:
이 모델이 이 prompt와 decoding 설정에서 이 질문에 정답을 생성했는가?
입니다.
학습 데이터 형태는 대략 다음과 같습니다.
(hidden_state(question), model_answer_is_correct)
예:
질문: "Who wrote Hamlet?"
모델 답변: "William Shakespeare"
label: 1
질문: 매우 희귀한 지역 인물의 출생일
모델 답변: 잘못된 날짜
label: 0
분류기는 이런 데이터를 보고 “정답을 낼 질문”과 “오답을 낼 질문”의 hidden-state 패턴을 학습합니다.
7. 실험 설정
데이터셋
세 가지 QA 데이터셋을 사용합니다.
Natural Questions: 일반적인 factual QA
HotpotQA: 여러 정보를 연결해야 하는 multi-hop QA
MMLU: 57개 분야의 객관식 문제
NQ와 HotpotQA는 자유 형식 답변이고, MMLU는 객관식이므로 질문 형식에 따른 차이도 비교할 수 있습니다.
모델
Llama2-7B-Chat
Llama3-8B-Instruct
Qwen2-7B-Instruct
Llama2-13B-Chat
기본 실험에서는 positive 1,000개, negative 1,000개, 총 2,000개의 예제로 confidence classifier를 학습합니다. 더 많은 데이터인 10,000개를 사용한 실험도 수행합니다.
8. 주요 결과 1: 답변 전에도 상당히 잘 안다
논문의 가장 중요한 결과입니다.
질문의 마지막 token hidden state만 사용한 Pre-State도 상당히 높은 Alignment를 보입니다.
예를 들어 Llama3-8B의 vanilla 설정에서는 대략:
| 데이터셋 | Pre-State Alignment | 생성 후 Alignment |
|---|---|---|
| NQ | 73.79 | 74.73~75.35 |
| HotpotQA | 78.58 | 80.61~80.77 |
즉 답변 생성 후 state가 대체로 더 좋지만, 차이는 크지 않은 경우가 많습니다.
이 결과의 의미는 다음과 같습니다.
질문 입력
↓
질문 마지막 hidden state
↓
confidence classifier
├─ 답할 수 있음 → 직접 생성
└─ 답하기 어려움 → 검색 또는 외부 모델 호출
정답 전체를 생성한 다음 검색 여부를 판단할 필요가 없다는 것입니다.
9. 주요 결과 2: 생성 후 판단은 조금 더 정확하다
Pre-State만으로도 어느 정도 판단할 수 있지만, 답변을 생성한 뒤의 hidden state는 생성 내용까지 포함하므로 일반적으로 더 높은 Alignment를 보입니다.
논문에서 정의한 결과 이름은:
Align-P: Pre-State
Align-L: Last State
Align-A: Avg State
입니다.
많은 설정에서:
[
\text{Align-L 또는 Align-A} > \text{Align-P}
]
지만 차이가 압도적이지는 않습니다.
그래서 논문은 다음 trade-off를 제시합니다.
효율이 중요하면 Pre-State
안전성과 정확도가 중요하면 Post-State
특히 긴 답변을 생성할 예정이라면 Pre-State를 사용함으로써 생성 비용을 크게 줄일 수 있습니다. 논문의 500개 NQ 샘플 실험에서도 pre-generation state 추출은 수 초 수준인 반면, post-generation state 추출은 모델과 CoT 설정에 따라 수십~수백 초가 걸렸습니다.
10. 주요 결과 3: CoT가 boundary perception을 반드시 개선하지 않는다
논문은 두 가지 prompt를 비교합니다.
Vanilla
질문에 짧게 답하라.
Chain-of-Thought
추론 과정을 설명하고 최종 답을 제시하라.
CoT는 NQ와 HotpotQA에서 QA 정답률을 높였습니다. 예를 들어 Llama3-8B의 NQ accuracy는 27.53에서 44.35로 상승했습니다.
하지만 knowledge-boundary Alignment는 오히려 낮아지는 경우가 많았습니다.
같은 경우 Pre-State Alignment는:
Vanilla: 73.79
CoT: 65.21
이었습니다.
논문의 해석은 CoT prompt가 모델의 confidence를 높이지만, confidence 증가가 실제 정답률 증가와 정확히 일치하지 않기 때문이라는 것입니다. 그 결과 overconfidence 또는 conservativeness가 증가할 수 있습니다.
즉:
더 길게 생각하게 만들었다고 해서, 모델이 자신의 정답 가능성을 더 정확히 파악하는 것은 아니다.
11. C³: Consistency-based Confidence Calibration
논문의 두 번째 주요 기여입니다.
C³의 핵심 직관은 다음과 같습니다.
정말 정답을 알고 있다면, 질문 형식이 조금 바뀌더라도 계속 자신 있어야 한다.
반대로 원래 질문에는 자신 있다고 판단했는데, 객관식 형태로 바꾸자 자신감을 잃는다면 최초 판단이 과신일 가능성이 있다는 것입니다.
11.1 Step 1: 후보 답변 생성
원래 질문에 대해 모델에게 가능한 답변 10개를 생성하게 합니다.
예:
질문:
Who got the first Nobel Prize in Physics?
후보:
Albert Einstein
Marie Curie
Wilhelm Röntgen
Niels Bohr
Max Planck
...
후보를 중복 제거한 뒤, 앞에서부터 선택해 객관식 문제를 만듭니다.
논문에서는 선택지 수가 각각:
[
k \in {2,4,6,8}
]
인 네 개의 객관식 문제를 만듭니다. 실제로 각 모델은 평균적으로 8개 이상의 고유 답변 후보를 만들었습니다.
예:
MC-2:
A. Wilhelm Röntgen
B. Albert Einstein
MC-4:
A. Wilhelm Röntgen
B. Albert Einstein
C. Marie Curie
D. Niels Bohr
MC-6:
...
MC-8:
...
중요한 점은 외부 검색 결과를 넣는 것이 아니라, 모델 자신이 생성한 후보 답변들로 문제를 재구성한다는 것입니다.
11.2 Step 2: Confidence consistency 검사
원래 질문과 재구성된 객관식 질문 각각에서 hidden-state confidence를 구합니다.
원래 질문 confidence
MC-2 confidence
MC-4 confidence
MC-6 confidence
MC-8 confidence
원래 질문에서는 confidence가 1이었지만, 객관식 변형들 중 confidence가 1인 개수가 너무 적으면 원래 confidence를 0으로 낮춥니다.
논문의 식은 다음과 같습니다.
[
c_{oq}
\begin{cases}
0,
& c_{oq}=1
\text{ and }
\sum_{k\in K}c_{mc_k}\leq\beta \
c_{oq},
& \text{otherwise}
\end{cases}
]
즉:
원래는 “안다”고 판단
+
여러 변형 질문에서는 대부분 “모른다”고 판단
→ 원래 판단을 “모른다”로 보정
(\beta)가 클수록 더 많은 샘플의 confidence를 낮추므로 risk는 줄지만, 지나치게 보수적으로 변할 가능성도 커집니다.
12. C³의 성능
논문은 UPR, 즉 Unknown Perception Rate를 사용합니다.
쉽게 말해:
실제로 틀린 질문 중 모델이 “나는 모른다”고 제대로 감지한 비율
입니다.
C³는 평균적으로:
NQ에서 UPR 약 5.6%p 개선
HotpotQA에서 UPR 약 4.9%p 개선
을 보였습니다.
예를 들어 Qwen2-7B의 Avg-State 결과는:
| 데이터셋 | 방법 | UPR | Overconfidence | Alignment |
|---|---|---|---|---|
| NQ | Vanilla | 81.57 | 13.40 | 72.65 |
| NQ | C³ | 87.22 | 9.29 | 74.14 |
| HotpotQA | Vanilla | 83.72 | 12.23 | 77.77 |
| HotpotQA | C³ | 87.91 | 9.07 | 78.69 |
즉 confidence를 무조건 낮추는 것이 아니라, 일관성이 없는 샘플을 골라 confidence를 낮춤으로써 overconfidence를 줄이고 Alignment도 높였습니다.
다만 C³는 후보 답변 10개와 여러 객관식 답변을 추가로 생성해야 하므로 계산량이 상당합니다. 따라서 실시간 검색 라우팅보다는 의료·법률처럼 false confidence가 위험한 환경의 후처리·검증 방법에 더 가깝습니다.
13. 당신이 구상한 검색 구조와의 관계
당신이 원하는 구조는 대략 다음입니다.
사용자 질의
↓
Full-duplex/audio LLM
↓
모델이 직접 답할 수 있는가?
├─ Yes → 바로 답변
└─ No → <RET> 생성 → 백그라운드 검색
이 논문은 이 구조와 상당히 관련 있지만, 정확히 같은 방식은 아닙니다.
공통점
질문을 처리한 hidden state로:
내부 지식만으로 정답을 생성할 수 있는가?
를 판단합니다.
따라서 검색 여부를 결정하는 신호로 활용할 수 있습니다.
h_question
↓
MLP confidence head
↓
P(correct)
├─ 높음 → 직접 답변
└─ 낮음 → retrieval
차이점 1: <RET> token을 직접 생성하지 않는다
이 논문의 confidence estimator는 LLM의 vocabulary head 일부가 아닙니다.
LLM hidden state
├─ LM head → 일반 답변 token
└─ 별도 MLP → 0 또는 1
즉 모델이 autoregressive decoding 과정에서 <RET>을 출력하도록 학습하는 방식이 아니라, hidden state에 외부 classifier를 붙이는 방식입니다.
당신이 앞서 말했던:
router를 별도 모델로 두지는 않지만 hidden space 기반 classifier라면 가능하다
에 정확히 해당합니다.
차이점 2: 검색 자체는 하지 않는다
논문은 knowledge-boundary perception만 평가합니다.
다음 과정은 포함하지 않습니다.
검색 엔진 호출
검색 문서 입력
retrieval 결과를 이용한 답변 생성
<RET>token 이후 generation 재개retrieval latency와 streaming interaction
따라서 이 논문은 RAG 시스템 전체가 아니라 검색 여부를 판단하는 confidence head에 해당합니다.
차이점 3: end-to-end 학습이 아니다
MLP classifier의 label은 모델이 실제로 생성한 답변의 정답 여부로 만듭니다.
하지만 LLM 본체는 이 classifier loss로 함께 학습되지 않습니다.
LLM: frozen
Confidence MLP: trained
따라서 confidence head의 결과가 LLM decoding behavior를 직접 바꾸지는 않습니다.
당신이 <RET> special token 방식을 구현하려면 다음 두 방향이 가능합니다.
이 논문과 가까운 방식
질문의 마지막 hidden state
↓
confidence classifier
↓
낮으면 backend가 retrieval 강제 실행
완전히 모델 내부화한 방식
질문
↓
LLM output:
<RET> 또는 일반 답변 token
후자는 <RET> token에 대한 supervised training이나 preference/RL 학습이 필요합니다.
14. 이 논문의 중요한 한계
14.1 Accuracy가 높아서 Alignment가 높은 것처럼 보일 수 있다
예를 들어 HotpotQA에서 모델 accuracy가 약 20%라면, 모든 질문에 대해 단순히 “모른다”고 예측해도 약 80%의 Alignment가 나옵니다.
모델 accuracy: 20%
항상 unknown으로 예측
→ Alignment: 80%
실제로 논문의 HotpotQA Pre-State Alignment도 75~80% 수준입니다.
따라서 Alignment 하나만 보고 “knowledge boundary를 매우 잘 파악한다”고 해석하면 안 됩니다. UPR, overconfidence, conservativeness, AUROC나 risk-coverage curve 등을 함께 봐야 합니다.
14.2 Dataset-specific classifier일 가능성
분류기는 각 데이터셋에서 생성된 positive/negative 데이터로 학습됩니다.
즉 NQ로 학습한 classifier가:
최신 뉴스
대화형 질의
음성 질의
한국어 질문
계산이나 코딩 요청
에서도 잘 작동한다는 보장은 없습니다.
실제 라우터에 적용하려면 cross-domain 및 cross-task generalization 평가가 필요합니다.
14.3 “모르는 질문”과 “추론에 실패한 질문”을 구별하지 않는다
label 0은 단순히 모델의 답변이 틀렸다는 의미입니다.
하지만 오답의 원인은 여러 가지입니다.
지식이 없음
추론 실패
질문을 잘못 읽음
답변 포맷 오류
decoding stochasticity
ground-truth 표현 불일치
논문은 이 모든 경우를 동일한 unknown으로 취급합니다.
검색 라우팅 관점에서는 이것이 문제가 될 수 있습니다. 검색이 도움이 되는 것은 주로 지식 부족일 때이며, 계산 실패나 instruction-following 실패에는 검색이 도움이 되지 않을 수 있기 때문입니다.
14.4 현재성이나 freshness를 직접 판단하지 않는다
모델이 어떤 사실을 잘 기억하고 있다고 confidence를 높게 출력하더라도 그 사실이 오래됐을 수 있습니다.
예:
현재 회사 CEO
오늘의 주가
최근 선거 결과
최신 소프트웨어 버전
이런 질의는 모델 내부 지식 confidence와 무관하게 검색해야 할 수 있습니다.
즉 실제 검색 라우터는 최소한 다음 두 축을 구별해야 합니다.
[
\text{Retrieve}
f(
\text{internal knowledge uncertainty},
\text{freshness requirement}
)
]
이 논문은 첫 번째 축만 주로 다룹니다.
14.5 작은 모델과 QA 중심 실험
실험은 7B와 13B 모델, 그리고 factual QA 데이터셋에 한정됩니다. 논문도 더 큰 모델과 비사실적 능력 경계에 대한 검증이 필요하다고 명시합니다.
15. 이 논문의 핵심을 한 문장으로 정리하면
LLM은 답변을 만들기 전 질문의 hidden state 안에 이미 “내가 이 질문을 맞힐 수 있을지”에 관한 신호를 상당 부분 담고 있으며, 여기에 작은 MLP head를 붙이면 효율적인 검색·거절 판단 신호로 사용할 수 있다.
다만 이것은 <RET>을 직접 생성하는 end-to-end tool-calling 모델이 아니라:
Frozen LLM
+
Hidden-state binary classifier
형태입니다.
따라서 당신의 full-duplex 구조에 적용한다면 가장 직접적인 형태는 다음과 같습니다.
audio/text query encoding 완료
↓
마지막 query hidden state 추출
↓
knowledge-boundary head
↓
P(correct) < threshold
↓
백그라운드 모델 또는 retrieval 호출
즉 이 논문은 “왜 hidden state 기반 retrieval gate가 가능한가”에 대한 근거 논문으로는 매우 적합하지만, “어떻게 <RET> token을 end-to-end로 학습할 것인가”에 대한 논문은 아닙니다.
Reference
댓글
댓글 쓰기