DoubtLess가 작은 모델의 간결·상세 사고 차이로 추론 토큰을 31% 줄인다
DoubtLess: Training-Free Contrastive Decoding for Efficient Reasoning
무엇인가
추론 모델은 thinking와 사이에 사고 사슬(CoT)을 쓰는데, 어려운 문제에서는 출력의 대부분이 이 사고 사슬이고 그 상당 부분이 이미 도달한 결과를 다시 유도하고 다시 검증하는 데 쓰인다. 논문이 제시한 측정에 따르면 평범한 디코딩에서 Qwen3-32B가 정답을 맞힌 실행은 CoT의 32~69%를 정답이 처음 등장한 뒤에 쓴다. 이걸 줄이는 기존 방법은 두 갈래다. 학습 기반 방법은 강화학습에 길이 페널티나 토큰 제한을 넣거나 짧은 흔적으로 미세조정하는데, 가중치를 바꾸므로 모델마다 다시 학습해야 한다. 추론 시점 방법은 프롬프트로 간결을 요청하거나, wait 같은 단어를 금지하거나, 답이 나온 듯하면 CoT를 조기 종료하거나, 고정된 스티어링 벡터를 은닉 상태에 더한다. 프롬프트는 모델이 지시를 얼마나 따르는지에 좌우되고, 단어 금지는 문맥과 무관하게 같은 단어를 막고, 활성화 스티어링은 매 스텝 같은 벡터를 더하며, 조기 종료는 기준이 충족되면 끝낸다. 이 통제들은 불필요한 검증뿐 아니라 유용한 추론까지 잘라낼 수 있다.
어떻게 동작하나
DoubtLess는 큰 모델 M과 토크나이저를 공유하는 훨씬 작은 추론 모델 D를 조타 장치로 쓰는 학습 없는 디코딩 방법이다. 매 디코딩 스텝에서 D는 M과 같은 프리픽스(문제, 단계적으로 추론하라는 지시, 지금까지 생성된 토큰)를 두 번 읽는다. 한 번은 재유도나 재검증 없이 곧바로 답으로 가라고 지시한 간결한 사고자(brief thinker)로서, 다른 한 번은 매 단계를 다시 확인하고 대안을 검토하라고 지시한 상세한 사고자(verbose thinker)로서 읽는다. 두 지시는 마지막 문장 하나만 다르다. 이렇게 얻은 두 로짓 벡터의 차이에 강도 α를 곱해 큰 모델의 로짓에 더한다. 즉 z = z_base + α(z_brief − z_verbose)이고, 이 값은 softmax(z_base)의 top-p 집합으로 제한된다. 로짓 차이는 로그확률 차이이므로, 이 연산은 큰 모델 자신의 온도 T 분포를 간결 사고자와 상세 사고자의 다음 토큰 확률 비의 α/T 제곱만큼 재가중하는 것과 같다. 간결 사고자가 더 기대하는 토큰은 확률이 올라가고 상세 사고자가 더 기대하는 토큰은 내려가며, 둘이 동의하는 토큰은 아무 변화가 없다.
무엇과 다른가
적용 범위에는 두 가지 제약이 있다. 대조는 CoT 안에서만 작용하고, 이후의 답은 큰 모델이 단독으로 디코딩한다. CoT 안에서도 큰 모델은와 문장 종료 토큰의 로짓, 그리고 자신의 top-p 후보를 그대로 유지하므로, 작은 모델은 큰 모델이 어차피 쓰려고 했던 토큰들의 순서를 바꿀 수 있을 뿐이다. 또 하나의 성질은 대조가 동적이라는 점이다. 매 스텝 현재 문맥에서 다시 계산되기 때문에, But 같은 단어는 답이 나온 뒤에는 가중치가 5분의 1 이하로 눌리지만 답이 나오기 전에는 거의 건드려지지 않는다. 단어 금지가 문맥과 무관하게 같은 단어를 막고 활성화 스티어링이 매 스텝 같은 벡터를 더하는 것과 대비된다. 논문은 두 사고자가 지시가 중요해지는 지점에서만 갈라진다고 설명한다. 아직 답을 향해 계산 중일 때는 둘 다 유도가 이어지기를 기대하므로 CoT가 거의 그대로 남고, 답이 진술된 뒤에는 상세 사고자가 다음 검증 라운드를 기대하는 반면 간결 사고자는 CoT가 끝나기를 기대하면서 새로운 검증을 여는 단어들이 억제된다.
어떻게 쓰나
실험은 추론 모델의 표준 시험대인 7개 벤치마크에서 이뤄졌다. 수학 경시 4종(AIME 2024와 AIME 2025 각 30문제, HMMT 2025년 2월 30문제, AMC 2023 40문제), 대학원 수준 과학 문제 GPQA-Diamond 198문제, 올림피아드 문제 OlympiadBench 100문제, 프로그래밍 문제 LiveCodeBench 100문제다. 모든 방법이 Qwen3 권장 사고 설정(온도 0.6, top-p 0.95, top-k 20)과 32,768 토큰 예산(GPQA-Diamond는 24,576)으로, 문제마다 3개 시드로 디코딩됐다. 큰 모델은 Qwen3-32B, 작은 모델은 Qwen3-0.6B이고 α는 5로 고정됐다. 비교 대상은 평범한 디코딩과 다섯 가지 학습 없는 방법이다. 간결 프롬프트, 검증을 여는 17개 단어를 전 구간 금지하는 NoWait, Wait가 나올 때마다 시험 답안을 유도해 확률이 기준을 넘으면 CoT를 끝내는 DEER,가 최상위 토큰에 근접하면 문장 경계에서 끝내는 ThinkBrake, 그리고 상세 CoT와 간결 CoT의 은닉 상태 평균 차이를 고정 벡터로 더하는 ASC다.
전제와 한계
결과적으로 DoubtLess는 7개 벤치마크 전체에서 사고 토큰을 31% 줄이면서 정확도를 유지했고, 여섯 방법 가운데 가장 큰 감소폭이었다. 간결 프롬프트가 가장 근접했지만 7개 중 6개 벤치마크에서 DoubtLess가 더 많이 제거했다. 정확도 손실은 다른 쪽에서 나타났다. NoWait는 AIME 2025에서 14점을 잃었고 AIME 2025와 LiveCodeBench에서, DEER는 LiveCodeBench에서, ThinkBrake는 OlympiadBench와 LiveCodeBench에서 유의하게 정확도가 떨어졌다. DoubtLess는 예산에 도달해 끝나지 못한 실행 비율도 평범한 디코딩의 2.4%에서 0.4%로 낮췄다. 다른 모델 패밀리로도 옮겨간다. EXAONE-4.0-32B를 같은 패밀리의 1.2B 모델로, Granite-4.2-30B를 3B 모델로 조타한 실험에서 AIME 2025와 AMC 2023의 사고 토큰을 각각 25%와 40% 줄였는데, 같은 조건에서 간결 프롬프트는 8%와 14%에 그쳤다. 코딩 에이전트 실험도 있다. HumanEval+ 164문제에서 프로그램을 쓰고 테스트를 돌린 뒤 실패 시 한 번 수리하는 자기 디버깅 에이전트에 적용해, 턴당 사고 토큰을 20% 줄이면서 통과율을 2.0점 올렸다. DEER는 41%를 제거하고 4.5점을 올렸지만, 이는 턴 예산의 80%에서 CoT를 끝내 프로그램을 쓸 여지를 남기기 때문이다. NoWait와 ThinkBrake는 더 많이 제거하는 대신 통과율을 떨어뜨렸고 ThinkBrake는 6.9점을 잃었다. 학습 기반 압축과도 결합된다. 길이 페널티를 강화학습 보상에 넣어 이미 간결하게 학습된 Qwen3-32B 체크포인트(LACONIC)에 α=5로 적용해 사고 토큰을 29~52% 추가로 줄이면서 과제 성능은 유지했다. 단일 B200 GPU에서 문제당 지연은 119.4초로, 평범한 디코딩 156.2초와 간결 프롬프트 137.5초보다 각각 24%와 13% 짧았다. 작은 모델의 스텝당 두 번의 순전파는 32B 모델 FLOPs의 약 4%를 더한다.
분석은 제거된 토큰이 어디서 오는지 보여준다. 각 실행을 정답이 CoT에 처음 등장하는 지점에서 나눠 보면, DoubtLess는 그 이후의 사고를 절반으로, 이전의 사고를 5분의 1로 줄였다. 정답 이후 두 사고자의 다음 토큰 분포 발산은 이전보다 평균 7배 컸다. 반면 Wait, But, Alternatively 같은 망설임 단어들은 천 사고 토큰당 빈도가 평범한 디코딩 이상으로 남았다. NoWait가 이 단어들을 억제하는 것과 정반대다. 즉 단어를 막는 게 아니라 검증 라운드가 시작되는 것 자체를 덜 일어나게 하고, 남은 검증은 그대로 이 단어들로 시작한다. AIME 2025 11번에서는 대수적 검증이 잘못 배제된 근을 복원해 최종 답에 포함시킨 사례도 보고된다. 절제 연구는 효과의 출처를 확인한다. 조정값 α(z_brief − z_verbose)의 크기와 범위는 그대로 두고 이를 top-p 집합 안의 무작위 토큰에 배정한 대조군에서는 사고 길이가 모든 벤치마크에서 평범한 디코딩 대비 8% 이내로 머물렀고 전체 변화는 1%였다. 강도를 키우면 더 많이 제거되지만 AIME 2025에서 α=10은 7.8점을 잃었고, α=−5는 CoT를 오히려 26% 늘렸다. 작은 모델을 Qwen3-1.7B나 4B로 키우면 AIME 2025에서 60% 가까이 제거하지만 정확도가 유지되는 지점을 넘어선다. Qwen3-32B 자신을 작은 모델로 쓰면(α=1) 26%로, 0.6B의 29%와 큰 차이가 없다.
실무에서는 재학습 없이 서빙 중인 추론 모델의 사고 토큰을 줄이는 수단으로 검토할 수 있다. 구현은 vLLM 엔진 안에서 이뤄지고, 큰 모델과 토크나이저를 공유하는 같은 패밀리의 작은 모델 하나만 있으면 된다. 다만 도입 전에 확인할 것이 있다. 강도 α가 정확도 유지와 절감폭 사이의 유일한 조절 손잡이이고, 논문은 AIME 2026에서 고른 α=5를 모든 모델 쌍과 벤치마크에 그대로 썼다. 자기 워크로드에서는 α를 다시 확인해야 한다. 또 작은 모델의 두 번의 순전파가 FLOPs를 약 4% 늘리지만, CoT가 짧아지면서 전체 지연은 오히려 줄었다는 점은 배치 환경에 따라 달라질 수 있다.
원문에는 별도의 한계 절이 없고, 대신 방법의 전제가 곳곳에 드러나 있다. 작은 모델이 큰 모델과 토크나이저를 공유해야 하고, 같은 패밀리의 소형 추론 모델이 존재해야 한다. 정확도가 유지되는 강도 구간이 존재하며 그 위로 올리면 정확도가 떨어진다. 작은 모델을 키우는 것도 같은 효과를 내서 과도해진다. 정확도 유지 주장은 논문이 고른 α 하나에 대한 결과이고, 유용한 검증이 남는다는 근거는 AIME 2025 11번 같은 개별 사례 분석이다. 지연 시간 측정은 단일 B200 GPU에서 문제를 하나씩 디코딩한 14문제에 대한 것이다.