(작성중)AdaptThink: Reasoning Models Can Learn When to Think
"상황에 따른 생각의 유연성은 효율성과 정확도를 오히려 향상시킨다"
상황에 따른 생각을 구별하는 방법: Rain force Learning(보상
기존의 방법론들은 항상 추론 단계를 거친다는 것이 한계점이었다.
그렇기 때문에 이 논문에서는 No-Thinking approach에서 영감을 받아 thinking process를 skip하고 pseudo-thinking process를 통해 바로 최종 응답을 생성하는 연구에 대해서 이야기를 합니다.
pseudo-thinking process란?
“<think></think>”와 같이 prompt에 생각을 표현하는 것?
No thinking이 단순한 문제에서는 오히려 thinking보다 더 좋은 퍼포먼스를 보여줄 수 있다.
이 논문에서 던진 첫번째 질문
추론 모델은 입력 문제의 난이도에 따라 Thinking 모드 또는 NoThinking 모드를 적응적으로 선택하도록 학습하여 성능을 희생하거나 향상시키지 않고도 더욱 효율적인 추론을 달성할 수 있을까요?
결론적으로는 "우리는 추론 모델에 언제 생각할지 가르치는 새로운 강화 학습 알고리즘인 AdaptThink를 제안"
AdaptThink에는 2개의 core components가 있다.
1) 전체 성능이 저하되지않는 선에서 No thinking process를 선택하도록 장려하는 최적화 목표
2) on-policy training 중에 Thinking, No Thinking의 데이터가 균형있게 학습에 활용하도록 하는 important sampling 기법을 사용하여 초반 학습 저하를 막고 두 사고 방식을 모두 효율적으로 탐색하고 활용
📊 AdaptThink 성능 비교 실험 결과
벤치마크 | 응답 길이 감소율 (%) | 응답 길이 감소율 (%) |
GSM8K | 50.9% ↓ | +4.1% |
MATH500 | 63.5% ↓ | +1.4% |
AIME2024 | 44.7% ↓ | +1.6% |
💡 모델: DeepSeek-R1-Distill-Qwen-1.5B, 기법: AdaptThink 적용 시 결과
이 표는 AdaptThink가 추론 비용(응답 길이)은 줄이면서도 정확도는 오히려 증가시켰다는 것을 직관적으로 보여줍니다.
key contributions
- 결론적으로 간단한 작업에서는 No Thinking으로 접근하는 것이 더 낫다는 것을 입증
- AdaptThink를 통해 thinking mode를 문제의 어려움에 따라 선택하는 것이 추론 비용 절감과 퍼포먼스 향상에 도움을 준다는 것을 입증 - Adapt Think의 성능을 입증하기 위한 광범위한 실험을 하고자 한다.
2 Related Work
LRM(Large Reasoning Models)
모델 사례 | OpenAI o1, DeepSeek-R1, QwQ 등 |
특징 | 긴 chain of thought을 통한 깊은 인간형 추론 수행 |
학습 방식 | 대규모 RL + 검증된 보상 / 정제된 추론 데이터로 파인튜닝 |
한계 | 추론 비용 증가 + 지연 시간 문제 발생 |
대응 | 효율적인 reasoning을 위한 다양한 방식이 제안됨 |
Efficient Reasoning for LRMs.
기존 방법 | RL 기반 보상, length preference pair, model merging, prompting 등으로 응답 길이 감소 |
문제점 | 모든 문제에 일률적으로 Thinking 사용 → 비효율적 |
NoThinking (Ma et al., 2025) | 복잡한 추론 생략, 프롬프트로 직접 정답 출력 → 간결하고 효율적 |
주요 발견 | NoThinking이 단순 문제에서는 Thinking보다 성능도 좋고 토큰도 적게 사용 |
제안 기법 | AdaptThink: 문제 난이도 기반으로 Thinking ↔ NoThinking을 선택하여 효율과 성능 최적화 |
3 Motivation
2. 핵심 내용 한눈에 보기
- <think> 토큰을 만나면 모델은 내부적으로 “깊은 사고 모드”에 들어가 Chain-of-Thought를 생성함.
- </think> 토큰이 나오면 사고를 멈추고, 그 뒤로는 정답에 필요한 핵심 풀이 과정과 답안만 이어서 출력.
- 수학적으로는 응답 y가 조건부 확률 분포 πθ(· | x) 에서 샘플링된 결과라고 가정하며,
- 오토리그레시브(autoregressive) 생성 방식을 따르므로로 분해할 수 있다.
- 즉, 각 토큰 yt 은 “프롬프트 x + 지금까지 출력된 y<t”를 조건으로 한 확률 분포에서 순차적으로 뽑힌다.
3. 왜 이렇게 정의할까?
- Thinking 과 Final Solution을 명시적으로 구분하면,
- 학습 단계에서 두 구간에 서로 다른 규칙(보상, 손실 등)을 적용하거나
- 추론 단계에서 문제 난이도에 따라 Thinking 구간을 생략/축소하는 전략(예: NoThinking, AdaptThink)을 설계하기 쉬움.
- 확률 분해식은 일반적인 LM 손실(= 토큰-단위 cross-entropy) 계산에도 그대로 쓰이므로,
- 별도 구조를 바꾸지 않고도 Thinking 구간의 길이·품질을 조절하는 연구가 가능하다.
4. AdaptThink와의 연결 고리
- AdaptThink는 바로 이 구조를 활용해
- 문제 난이도를 추정 →
- <think> 뒤의 Chain-of-Thought를 길게 생성할지, 짧게 또는 생략할지를 동적으로 결정 →
- 추론 비용(토큰 수)을 최소화하면서도 정확도는 유지/향상.
최근 Ma 등(2025)은 NoThinking 기법을 제안했는데, “Okay, I think I have finished thinking.”라는 가짜 사고 과정을 프롬프트에 삽입하여 긴 사고를 건너뛰고 바로 최종 해답을 생성하도록 합니다. 이 방법은 토큰 예산이 적은 환경에서도 여전히 효과적임이 확인되었습니다.
본 연구에서는 이 NoThinking을 더 단순화하여, 모델이 첫 번째로 생성하는 토큰 **y₁ = **가 되도록 강제함으로써 **빈 사고(empty thinking)**를 수행합니다. 그런 다음 충분한 토큰 예산(16K) 하에서, 문제 난이도 관점에서 Thinking과 NoThinking을 비교하는 파일럿 실험을 진행했습니다.
3.2 NoThinking is Better for Simple Problems 중에서
[생각의 연결 고리]
</think> 토큰을 “아예 없애는 것”과 “첫 토큰으로 </think>를 강제하는 빈 사고(empty thinking)” 사이에는 어떤 차이가 있을까?
구분아예 없앴을 때빈 사고(강제 y₁ = </think>)
사고·풀이 구간 구분 | 토큰 시퀀스에 분리자가 없어져서, 모델이 “언제 사고가 끝나고 풀이가 시작되는지” 알 수 없음 | </think>가 여전히 구분자 역할을 하므로, 모델은 “여기까지가 사고 구간” → “이후가 최종 풀이 구간”을 명확히 인식 |
확률 분포 구조 | 학습·추론 시 </think> 위치를 학습 목표에서 완전히 제거 ⇒ 분포 분해식에도 반영 불가 | 원래 수식 $begin:math:text$\pi_\theta(y |
모델 행동 제어(디코딩 제약) | “마커가 없으니 그냥 풀어쓰라”는 지시나 토크나이저 조작 필요 → 실수로 사고 문장 일부가 나올 수 있음 | 제약된 디코딩(첫 토큰만 </think> 허용)으로 사고 구간이 0 길이로 정확히 보장되고, 이후 자동으로 풀이 모드로 전환 |
훈련·평가 일관성 | 훈련 데이터·태스크 정의에서 </think>가 빠지므로, Thinking/NoThinking 간 비교·혼합 학습이 어려워짐 | Thinking(긴 CoT) 데이터와 동일하게 </think> 기준을 공유하므로, 두 모드를 같은 프레임워크로 다룰 수 있음 |
요약
- 아예 제거하면 모델이 “사고가 끝나고 풀이가 시작되는 지점”을 구분할 수 없고, 학습/평가 메커니즘도 달라져 버립니다.
- 빈 사고는 </think>만 남겨두고 사고 토큰 수를 0으로 만드는 방식으로,
- 사고·풀이 구간 분리를 유지
- 디코딩 제약을 통해 0-길이 사고를 확실히 보장
- 기존 학습 구조와 완벽히 호환
- thinking, no thinking를 동시에 만족합니다
성능 최적화 부분,,,,
Constrained Optimization Objective