사실 회상엔 Instruction 튜닝이 세금: Base 모델이 Instruct 모델을 이긴다
The Instruction Tax on Factual Recall: Base Models Can Beat Their Instruction-Tuned Counterparts
TL;DR Highlight
Base 모델에 few-shot 이어쓰기와 다중 샘플링을 썼더니 chat 대비 F1 0.568→0.684
Who Should Read
LLM으로 사실 정보를 추출·검증하는 파이프라인에서 환각과 부정확한 답변으로 고민인 백엔드 개발자
Core Mechanics
- Instruct 튜닝이 사실 회상을 깎는다
- 같은 gemma-3-27b 가중치에서 Base는 0.684, it 모델은 chat으로 0.568이다.
- 저자들은 이 손실을 'instruction tax'라고 부른다.
- 프롬프트 방식이 아니라 모델 가중치 탓이라고 본다.
- 질문하지 말고 문장을 이어 쓰게 한다
- 예시 몇 개를 보여주고 마지막 줄을 비워 두는 completion 형식을 쓴다.
- chat 템플릿과 지시문은 쓰지 않는다.
- it 모델에 같은 completion 프롬프트를 줘도 점수가 낮다.
- 64~256번 뽑아 반복된 답만 남긴다
- 여러 번 샘플링해서 등장 비율이 기준치 이상인 답만 채택한다.
- 기준치를 못 넘으면 빈 답(모른다)을 낸다.
- 기준치는 학습 데이터에서 관계별로 따로 맞춘다.
- 세금 크기는 튜닝 버전마다 다르다
- gemma-3 계열은 세금이 크고 gemma-2-27b와 Mistral-Nemo는 작다.
- 세금이 크면 샘플 안에 정답이 아예 등장하지 않는다.
- 세금이 작으면 정답은 나오는데 고르는 데 실패한다.
- GPU 1시간짜리 probe로 모델을 고른다
- 정답을 아는 예시 약 100개로 여러 표현을 8~12번 샘플링해 비교한다.
- 이 순위가 실제 제출 결과 순위와 맞았다.
- 모델 버전과 인터페이스를 풀 시스템 전에 정할 수 있다.
- 답하지 않는 법이 점수를 올린다
- 사망 도시 질문 전에 살아 있는지부터 16번 샘플링해서 확인한다.
- 16번 모두 '생존'이면 빈 집합을 낸다.
- 희귀 후보는 yes/no completion으로 한 번 더 검증한다.
Evidence
- Base completion이 it chat을 이겼다
- 공식 테스트 F1은 gemma-3-27b-pt completion 0.684, gemma-3-27b-it chat 0.568이다(+0.116).
- 리더보드 점수는 0.6836이고 대회 baseline은 0.2964다.
- hasArea 단일 관계 격차가 가장 컸다
- 공식 테스트 F1은 base 0.820, it chat 0.617이다(+0.203).
- hasCapacity는 0.316 대 0.160이다(+0.156).
- probe에서 정답이 샘플에서 사라졌다
- hasArea probe에서 gemma-3-27b의 ceiling이 0.95→0.69로 떨어졌다.
- gemma-3-12b는 0.84→0.47, gemma-2-27b는 0.82→0.77이다.
- 샘플 수와 보조 단계가 점수를 올렸다
- 공식 점수는 n=8에서 0.6218, n=24에서 0.6292, n=64에서 0.6604다.
- 검증 단계는 awardWonBy에 +0.027, 생존 확인은 사망 도시 관계에 +0.030을 더했다.
How to Apply
- 지금 쓰는 모델을 completion 방식으로 비교 테스트하기
- 사실 추출 프롬프트 하나를 골라 chat 질문 버전과 few-shot 이어쓰기 버전을 같은 모델로 돌린다.
- 정답을 아는 샘플 100개로 정확도를 비교한다.
- Base 모델을 쓸 수 있으면 같이 넣는다.
- 답변을 여러 번 뽑아 합의된 것만 쓰기
- 한 질문에 temperature 0.7로 64번 정도 샘플링한다.
- 답의 등장 비율을 세어 기준치를 넘은 것만 반환한다.
- 기준치는 정답을 아는 학습 데이터로 정하고, 못 넘으면 빈 값을 반환한다.
- 답이 없을 수 있는 질문은 존재 확인 먼저 하기
- 사망 정보처럼 답이 비는 경우가 많은 필드는 존재 여부를 따로 묻는다.
- 존재한다고 확신할 때만 세부 값을 묻는다.
- 예시는 '있음'과 '없음'을 절반씩 섞어 넣는다.
- 낮은 빈도 후보는 yes/no 검증으로 되살리기
- 후보가 수백 개인 목록형 질문에서 드물게 나온 답은 따로 모은다.
- 정답·오답 예시를 5개씩 넣은 yes/no completion을 8번 샘플링한다.
- yes 비율이 0.75 이상인 후보만 추가한다.
Try It
# Base 모델 또는 completion API에 붙여넣는 프롬프트 (논문 방법의 간이 버전, chat 템플릿 없이 사용)
The total area of Lake Victoria is 68800 square kilometres.
The total area of Bodensee is 536 square kilometres.
The total area of {{대상 이름}} is
# 위 프롬프트를 temperature 0.7로 64번 샘플링하고, 첫 줄바꿈에서 자른 뒤 값의 ±5% 안에 모이는 가장 큰 묶음의 중앙값을 답으로 쓴다.
# 이어서 해 볼 것: 같은 질문을 chat 모델에 직접 물어본 결과와 정확도를 비교해 본다.Terminology
관련 논문
AI는 도구다, 잘 쓰려면 기술이 필요하다
Hickey의 'AI는 도구가 아니다'에 맞서, LLM도 쓰는 사람의 기술이 결과를 가른다고 반박
딥리서치 에이전트의 Reflective Prompt Optimization: 토픽 분리·멀티 시드로 본 진짜 성능 향상과 프롬프트 과적합
GEPA로 프롬프트를 최적화했더니 held-out 인용 보상 0.702→0.781
GPT-6와 Intelligent UI: 채팅 안에서 시각·인터랙티브 응답 만들기
OpenAI가 GPT-6로 채팅 응답에 UI를 넣는다는데 원문이 없어 댓글 반응만 확인된다
Base 모델도 첫 토큰 단서(cue) 하나로 추론한다: 학습 데이터가 만든 연상
응답 첫 두 토큰만 고정했더니 Olmo-3-7B의 MATH-500 정답률이 42%에서 78%로 올랐다
Jev식 Typed Decision Model에서는 정의보다 라벨이 이긴다
옵션 이름을 A, B로 바꿨더니 정확도가 +0.1511 올랐다
프롬프트는 얼마나 필요한가? Few-shot 예시를 블랙박스로 최소화하는 DD-FSM
Delta debugging으로 few-shot 예시를 평균 65.3% 줄여도 출력은 그대로
언어모델은 "불안정한(Insecure)" 보고자다: 결함을 숨기는 LLM 리포트
"Be honest" 한 줄을 붙였더니 GPT-5.5의 부정 결과 공개가 2/200에서 190/200으로 늘었다
Claude Opus 5.5 프롬프팅 가이드: effort·진행 업데이트·무인 에이전트 설정
Opus 5.5는 medium effort로 Opus 5 high급 성능, 프롬프트·하네스 조정법 정리
Related Resources
Original Abstract (Expand)
We present our solution to the AKBC LM-KBC 2026 Shared Task, where we achieved a score of 0.6836 on the official leaderboard, more than double the baseline of 0.2964. This task requires generating all possible objects for subject-relation pairs using a language model with up to 32 billion parameters, with no retrieval or fine-tuning involved. We show that the prompting methodology is as important as the model architecture: while the instruction-tuned model version achieves 0.5681 with its chat interface, the base model achieves 0.6836 when prompted using text completion. Thus, instruction tuning decreases factual recall; we refer to this effect as the instruction tax, which is caused by the model's weights rather than the prompting method. Our final solution is fairly straightforward: we prompt the base model with some examples from the training data, generate 64--256 outputs, and retain only the repeated ones. Two specialized methods are then applied for each relation: one improves the recall of large answer sets, and the other verifies a person's vitality before predicting their place of death.