Base 모델도 첫 토큰 단서(cue) 하나로 추론한다: 학습 데이터가 만든 연상
Base Models Can Reason By Taking a Cue From Training Data
TL;DR Highlight
응답 첫 두 토큰만 고정했더니 Olmo-3-7B의 MATH-500 정답률이 42%에서 78%로 올랐다
Who Should Read
오픈 base 모델을 프롬프트 prefill로 수학·코드 추론에 쓰려는데 RL 학습 없이 성능을 올리고 싶은 개발자
Core Mechanics
- 첫 두 토큰만 고정해도 RL급이다
- 응답 시작을 '.\n\n Okay'로 미리 채우면(prefill) Olmo-3-7B의 MATH-500 pass@1이 42%에서 78%가 됐다.
- 같은 모델의 RL 버전은 75%였다.
- 추론하라는 지시나 예시는 넣지 않았다.
- Qwen3-14B는 'Alright ,'가 단서다
- MATH-500 pass@1이 72%에서 87%로 올라 RL 버전과 같아졌다.
- 모델마다 맞는 단서가 다르다.
- RL은 이 단서를 더 자주 뽑게 만들었다
- Olmo-3-7B에서 '.\n\n Okay' 확률이 0.14에서 0.65로 올랐다.
- Qwen3-14B의 'Alright ,'는 0.04에서 0.58이 됐다.
- base와 RL의 분포 차이(KL)는 첫 두 위치에서 가장 컸다.
- 단서 효과는 학습 데이터 연상에서 나온다
- mid-training 데이터에서 'okay'를 'chicken'으로 바꿔 재학습하면 '.\n\n Chicken'도 추론 단서가 됐다.
- 'step by step'을 'duck duck goose'로 바꾸면 'Think duck duck goose'도 효과가 비슷해졌다.
- 단서는 길이 효과가 아니다
Evidence
- Olmo-3-7B에서 정답률이 두 배가 됐다
- MATH-500 pass@1이 no cue 42.2%에서 '.\n\n Okay' 77.9%로 올랐다.
- GSM8K는 45.1%에서 85.9%, AMC 23은 30.9%에서 59.5%가 됐다.
- 단서 검색이 라벨 없이도 근접했다
- 답변 일치도(엔트로피)로 고른 단서가 500개 후보 중 최고 대비 1.1%p 이내였다.
- 무작위 토큰을 붙인 openings는 33.3~47.1%에 그쳤다.
- GEPA 최적화 prefill보다 높았다
- Olmo MATH-500은 GEPA 67.0%, 단서 77.9%였다.
- Qwen3-14B는 GEPA 79.3%, 단서 86.6%였다.
- 같은 정답률에 필요한 토큰이 적다
- no cue 다수결이 단서 1회 응답과 맞먹으려면 토큰이 3.6~12배 필요했다.
- Olmo-3-7B는 샘플 9개, 6.7배 토큰이었다.
- 데이터 편집 재학습 결과
- 10B mid-training에서 '.\n\n Chicken' MATH-500이 2.4%에서 37.2%로 올랐다.
- 'Think duck duck goose'는 6%에서 17%가 됐다.
How to Apply
- 오늘 로컬 base 모델에 prefill 시험하기
- 수학 문제 30개로 no cue와 '.\n\n Okay' prefill을 같은 설정으로 비교하라.
- 정답 라벨이 있으면 pass@1을 직접 재라.
- 정답 없이 모델별 단서 고르기
- 모델이 낼 만한 시작 후보 20개를 뽑아라.
- 문제당 16개를 샘플링해 최종 답이 가장 일치하는 시작을 고르라.
- Llama 계열과 post-trained 모델은 따로 검증하기
- 원문에서 Llama-3.1-8B는 효과가 없었다.
- 배포 전에 본인 모델에서 no cue와 반드시 비교하라.
- 안전 평가에 시작 토큰 변형을 넣기
- 'Okay ,'와 '.\n\n Okay' 같은 변형으로 거절률과 유해 응답률을 재라.
- 시작 토큰을 고정하는 서비스라면 이 점검을 필수로 하라.
Try It
# 논문 방법의 간이 버전: base 모델(transformers)에서 응답 시작을 prefill해 비교하는 파이썬 코드
# pip install transformers torch
from transformers import AutoModelForCausalLM, AutoTokenizer
name = "{{base 모델 이름}}"
tok = AutoTokenizer.from_pretrained(name)
model = AutoModelForCausalLM.from_pretrained(name, device_map="auto")
problem = "{{수학 문제}}"
prompt = ("Solve the following math problem step by step.\n"
"The last line of your response should be the answer in form Answer: $Answer (without quotes).\n"
f"{problem}\nRemember to put your answer on its own line after \"Answer:\"")
for cue in ["", ".\n\nOkay"]:
ids = tok(prompt + cue, return_tensors="pt").to(model.device)
out = model.generate(**ids, max_new_tokens=2000, do_sample=True, temperature=0.6, top_p=0.95)
print(repr(cue), tok.decode(out[0][ids.input_ids.shape[1]:]))
# 이어서 해 볼 것: 문제 30개를 32번씩 돌려 pass@1을 비교하고, 'Alright ,' 등 다른 시작도 시험해 보세요.Terminology
관련 논문
AI는 도구다, 잘 쓰려면 기술이 필요하다
Hickey의 'AI는 도구가 아니다'에 맞서, LLM도 쓰는 사람의 기술이 결과를 가른다고 반박
딥리서치 에이전트의 Reflective Prompt Optimization: 토픽 분리·멀티 시드로 본 진짜 성능 향상과 프롬프트 과적합
GEPA로 프롬프트를 최적화했더니 held-out 인용 보상 0.702→0.781
GPT-6와 Intelligent UI: 채팅 안에서 시각·인터랙티브 응답 만들기
OpenAI가 GPT-6로 채팅 응답에 UI를 넣는다는데 원문이 없어 댓글 반응만 확인된다
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)
In this paper, we study how training data creates associations between the tokens at the start of a base model's response and the reasoning behavior that follows. First, we demonstrate that fixing particular starting token cues makes a base model's performance competitive with that of its reinforcement learning (RL)-trained counterparts on math and coding. For instance, the cue ".\n\nOkay" raises Olmo-3-7B's MATH-500 pass@1 accuracy from 42% to 78%, while "Alright," raises Qwen3-14B's from 72% to 87%. Second, RL makes these cues more likely, while fixing them recovers much of its performance gain over the base model. Third, we trace the reasoning effects of token cues to the training data. We perform causal data interventions to turn an arbitrary word, such as "chicken", into an effective reasoning cue, or remove an existing cue's effect. A similar edit makes the prompt instruction "Think duck duck goose" as effective as "Think step by step" at eliciting reasoning. We also find that the hidden state representations induced by different cues correlate with different document types from the training set. Finally, we extend our study of token cues with a case study in language model safety, finding that different cues elicit distinct refusal and compliance behaviors that correspond to different types of training data.