
다음은 ICLR 2024 논문 “DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models”에 대한 체계적인 설명입니다.
1. 문제의식 (Why DoLa?)
대규모 언어모델(LLM)은 유창하지만 **사실과 다른 내용(hallucination)**을 자주 생성합니다.
기존 대응 방식들은 다음과 같은 한계를 가집니다.
- RAG / 외부 검색: 시스템 복잡도 증가
- 추가 파인튜닝 / 감독 신호(ITI 등): 데이터·비용 부담
- Contrastive Decoding(CD): 별도의 “약한 모델(amateur LM)” 필요, 모델 선택에 민감
👉 이 논문의 핵심 질문은 다음입니다.
“이미 학습된 하나의 LLM 내부 구조만 활용해서, 추론 시점(inference-time)에 사실성을 높일 수 없을까?”
2. 핵심 직관 (Key Insight)
🔍 사실 지식은 Transformer의 상위 레이어에 더 강하게 나타난다
기존 해석 가능성 연구들(Tenney et al., Meng et al., Dai et al.)에 따르면:
- 하위 레이어: 문법, 표면적 패턴, 통사적 적합성
- 상위 레이어: 의미 정보, 개체(entity), 사실 지식
논문은 이를 다음 관찰로 정량화합니다.
- 기능어 / 쉬운 토큰: 중간 레이어 이후 분포가 거의 변하지 않음
- 사실·개체·연도 토큰: 마지막 레이어까지도 분포가 계속 변화
→ 상위 레이어에서 “사실 정보가 주입”
3. DoLa의 핵심 아이디어
같은 모델의 “서로 다른 레이어”를 대비(contrast)시켜 디코딩하자
기본 구조
- Mature layer (N): 최종 레이어 (가장 “사실적”)
- Premature layer (M): 더 이른 레이어 (그럴듯하지만 덜 사실적)
각 레이어의 hidden state에 같은 vocabulary head를 적용하여:
4. Dynamic Premature Layer Selection (중요)
Premature layer는 고정하지 않고, 토큰마다 동적으로 선택합니다.
🔑 선택 기준: Jensen–Shannon Divergence (JSD)
- 의미:“최종 레이어와 가장 다른 분포를 내는 레이어 =
아직 사실 지식이 충분히 반영되지 않은 지점” - 토큰별 난이도(기능어 vs 개체명)에 따라
premature layer가 달라짐
➡️ 이것이 **DoLa-static(고정 레이어)**보다 robust한 이유
5. Contrastive Decoding 공식
Contrastive Decoding (Li et al., 2022)을 레이어 차원으로 적용:
최종 디코딩 분포:
Adaptive Plausibility Constraint (APC)
- 최종 레이어에서 확률이 너무 낮은 토큰은 제거
- 목적:
- False Positive: 말도 안 되는 토큰이 contrast로 부각되는 것 방지
- False Negative: 쉬운 토큰에서 성능 저하 방지
6. 실험 결과 요약
📌 TruthfulQA (핵심 결과)
- LLaMA 계열에서 +12~17%p (%Truth × %Info)
- ITI(감독 학습 필요) 수준의 성능을
👉 추가 학습 없이 달성
📌 FACTOR / StrategyQA / GSM8K
- 사실 기반 reasoning, CoT에서도 일관된 성능 향상
- 특히 CD는 reasoning 성능을 깎는 반면,
DoLa는 내부 레이어 대비라 안정적
📌 Vicuna QA (GPT-4 평가)
- GPT-4 기준 win 비율 증가
- 장황하지만 틀린 답변 감소
7. 계산 비용
- 디코딩 latency 증가: 1~8%
- 추가 forward pass 없음 (early exit 활용)
👉 실용적으로 매우 가벼운 방법
8. DoLa의 위치 (관련 연구 맥락)
| 방법 | 대비 대상 | 추가 학습 | 특징 |
|---|---|---|---|
| CD | 다른 모델 | ❌ | 모델 크기 선택 민감 |
| ITI | 분류기 | ✅ | 감독 신호 필요 |
| DoLa | 같은 모델의 레이어 | ❌ | 구조적·해석 가능 |
DoLa는 **“LLM 내부 지식의 시간적(레이어별) 발현 차이”**를
**추론 시점 제어(signal)**로 바꾼 방법이라 볼 수 있습니다.
9. 한계와 확장 가능성
한계
- 외부 지식 오류는 교정 불가
- 사실성 중심 (alignment 전반은 아님)
- 작은 모델(GPT-2 급)에서는 효과 약함
10. 한 줄 요약
DoLa는 “같은 LLM의 서로 다른 레이어를 대비시키는 디코딩”을 통해,
추가 학습 없이 사실성을 크게 높이는 간단하지만 강력한 inference-time 기법이다.
아래는 ICLR 2024 논문 DoLa: Decoding by Contrasting Layers Improves Factuality in LLMs의 **방법론(Methodology)**을 수식·알고리즘 관점에서 단계별로 정리한 설명입니다.
전체 개요 (한 눈에)



핵심 아이디어
같은 LLM 내부의 서로 다른 레이어가 내는 next-token 분포를 대비(contrast)하여, 상위 레이어의 사실 지식을 증폭하고 하위 레이어의 그럴듯하지만 덜 사실적인 신호를 억제한다.
이를 위해 DoLa는 다음 3단계로 구성됩니다.
- 레이어별 next-token 분포 계산 (Early Exit)
- Dynamic Premature Layer Selection (JSD 기반)
- Contrastive Decoding (logit 차감 + APC)
1️⃣ 레이어별 next-token 분포 계산 (Early Exit)
표준 Transformer LM은 임베딩 + 개 레이어 + vocab head 로 구성됩니다.
- 입력:
- 각 레이어 의 hidden state:
레이어 에서의 next-token 분포
- Mature layer: 최종 레이어 →
- Candidate premature layers: (초기/중간 레이어 일부)
Early exit은 추가 학습 없이도 중간 레이어 hidden state에 vocab head를 적용해 의미 있는 분포를 얻을 수 있다는 점(Residual connection 특성)을 활용합니다.
2️⃣ Dynamic Premature Layer Selection (핵심)
왜 동적 선택이 필요한가?
- 기능어 / 쉬운 토큰: 중간 레이어에서 이미 결정 → 상·하위 레이어 차이 작음
- 사실·개체·연도 토큰: 상위 레이어까지 분포가 계속 변화
➡️ 토큰마다 “가장 덜 성숙한(premature)” 레이어가 다름
선택 기준: Jensen–Shannon Divergence (JSD)
각 후보 레이어 에 대해
Premature layer 선택
- 의미:“최종 레이어와 가장 다른 분포를 내는 레이어”
→ 아직 사실 지식이 충분히 주입되기 전 단계
후보 레이어 집합 (버킷화)
- 레이어 수에 따라 2~4개 버킷으로 분할 (예: LLaMA-7B는 [0,16), [16,32))
- even-index 레이어만 사용 → 효율성
- 버킷 선택은 소량 검증으로 결정 (과도한 튜닝 방지)
고정 레이어(DoLa-static) 대비 분포 변화에 강건하고, 튜닝 비용이 낮음.
3️⃣ Contrastive Decoding (레이어 대비 디코딩)
기본 대비 함수 (log-domain)
- 상위 레이어에서 확률이 크고, 하위 레이어에서 작을수록 점수 ↑
- 사실 토큰이 이 조건을 만족하는 경향
Adaptive Plausibility Constraint (APC)
불안정한 저확률 토큰을 배제하기 위해,
- 목적
- False positive 방지: 하위 레이어 확률이 거의 0인 토큰이 과대평가되는 현상
- False negative 방지: 쉬운 토큰에서 대비로 점수가 줄어드는 문제
최종 디코딩 분포
4️⃣ 반복 억제 (Repetition Penalty, 선택적)
- Contrast로 인해 장문(CoT)에서 반복이 늘어나는 경우가 있어,
- Keskar et al. 방식의 repetition penalty() 적용
- 문법성 저하는 거의 관측되지 않음
5️⃣ 알고리즘 요약 (Pseudo-flow)
for t = 1 ... T:
compute q_N from final layer
for j in candidate layers J:
compute q_j
compute JSD(q_N, q_j)
M ← argmax_j JSD
compute contrast scores F(q_N, q_M)
apply APC (filter low-prob tokens)
sample or greedy from softmax(F)
6️⃣ 방법론의 성격 정리
| 관점 | DoLa의 특징 |
|---|---|
| 제어 시점 | Inference-time |
| 대비 대상 | 같은 모델의 레이어 |
| 학습 필요 | ❌ |
| 핵심 신호 | 레이어 간 분포 변화(JSD) |
| 효과 | 사실성 ↑, 비용 ↑ 미미 |
한 줄 핵심
DoLa는 “레이어 간 지식 성숙도 차이”를 JSD로 포착해,
최종 레이어의 사실 신호를 대비적으로 증폭하는 디코딩 방법이다.
아래는 ICLR 2024 DoLa: Decoding by Contrasting Layers의 **실험 결과(Experimental Results)**를 과제별·지표별로 해석 중심으로 정리한 설명입니다. (논문 본문·표·그림 기반)
전체 요약 (핵심 결론)
- 사실성(Truthfulness): 모든 LLaMA 크기(7B–65B)에서 일관된 대폭 향상
- 정보성(Informative): “회피 답변(I have no comment)” 증가 없이 유지
- Reasoning(CoT): CD 대비 성능 유지 또는 향상
- 비용: 디코딩 지연 **1–8%**로 매우 작음
1️⃣ TruthfulQA – 객관식 (Short-Answer Factuality)

지표
- MC1 / MC2 / MC3 (특히 MC2·MC3가 안정적)
- 여러 참/거짓 선택지를 종합 평가
결과 해석 (Table 1)
- DoLa는 모든 모델 크기에서 MC2/MC3 대폭 개선
- 예) LLaMA-7B: MC3 19.2 → 32.1
- 13B/33B/65B도 동일한 추세
- ITI(감독 학습) 수준에 근접하거나 상회
- CD는 일부 설정에서 불안정(모델 크기 의존)
왜 효과적인가?
- TruthfulQA는 짧고 사실 임계적인 토큰(연도·개체명)이 핵심
→ **상위 레이어 대비(contrast)**가 가장 잘 작동
2️⃣ FACTOR – 장문 객관식 (Long-Paragraph Factuality)


특징
- 긴 문단 + 4개 완성문 중 정답 선택
- News / Wiki 두 서브셋
결과
- DoLa가 2–4%p 일관 개선
- 대부분 설정에서 CD보다 우수
- 흥미로운 점: 하위 레이어 대비가 더 효과적
- 긴 문단에는 기능어·비사실 토큰 비중 큼
- 상위 레이어 대비는 오히려 노이즈
👉 토큰 구성에 따라 “어느 레이어와 대비할지”가 달라져야 함을 실증
3️⃣ TruthfulQA – 오픈엔디드 생성

평가 지표
- %Truth, %Info, %Truth×Info
- %Reject: 회피 답변 비율
핵심 결과 (Table 1)
- %Truth×Info: +12~17%p (모든 모델)
- %Reject < 10% 유지
- CD의 문제점:
- Truth는 올리지만 회피 답변 급증
- 최종 종합 점수 하락
해석
- DoLa는 **“틀리면 침묵”**이 아니라
“말하되 사실적으로” 답변하도록 유도
4️⃣ Chain-of-Thought Reasoning
(a) StrategyQA – 다중 홉 추론
- 정확도 +1~4%
- CD는 오히려 성능 하락
- 이유: 큰 모델의 추론을 작은 amateur LM과 대비 → 방해
- DoLa는 같은 모델 내부 대비 → 추론 구조 보존
(b) GSM8K – 수학 추론
- 대부분 모델에서 ~2%p 향상
- 산술 추론에서도 레이어 대비가 유효
👉 DoLa는 사실성만이 아니라 추론 안정성도 해치지 않음
5️⃣ Vicuna QA (GPT-4 자동 평가)


평가 방식
- GPT-4가 **쌍대 비교(pairwise)**로 채점
결과 (Figure 4)
- DoLa가 baseline 대비 win 비율 우세
- 특히 13B, 33B에서 큰 차이
- 총점 분포도 전반적으로 상승
의미
- 단순 factual QA뿐 아니라
**일반 챗봇·지시 수행(instruction following)**에도 효과
6️⃣ Dynamic vs Static Premature Layer (분석 실험)
DoLa-static
- 고정 레이어 하나 선택
- 특정 검증셋에서는 최고 성능 가능
문제점
- 데이터 분포 변화에 극도로 민감
- 검증셋 바뀌면 최적 레이어도 바뀜
DoLa (Dynamic)
- JSD 기반 동적 선택
- 항상 최적 또는 근접 성능
- 튜닝 비용 대폭 감소 (2–4 bucket)
👉 실사용 관점에서 Dynamic이 압도적으로 안정적
7️⃣ 효율성 (Latency / Throughput)
| 모델 | Latency 증가 | Throughput 감소 |
|---|---|---|
| 7B | ×1.06 | −5% |
| 13B | ×1.08 | −7% |
| 33B | ×1.07 | −6% |
| 65B | ×1.01 | −1% |
- 추가 forward 없음
- early-exit + logits 연산만 추가
→ 사실상 공짜에 가까운 개선
8️⃣ 정성 평가 (Qualitative Examples)


- 잘못된 날짜(예: July 4, 1776) → 정확한 날짜(Aug 2, 1776)
- 잘못 알려진 상식(“24시간 기다려야 실종 신고”) → 즉시 신고 가능
- 단, 일부 반례: 장황하지만 틀린 설명 생성 가능성 존재
9️⃣ 실험 결과의 의미 (한 줄씩)
- 사실성: DoLa ≈ ITI (감독 없이)
- 안정성: CD보다 훨씬 견고
- 범용성: QA·Reasoning·Chat 모두 개선
- 실용성: 비용 거의 없음
한 문장 요약
DoLa는 “같은 LLM 내부 레이어 대비”만으로,
사실성·추론·챗봇 품질을 동시에 개선한 매우 강력한 inference-time 기법이다.

답글 남기기