추론 모델이 여러 답을 병렬로 뽑을 때, 잘 풀리는 답만 골라 더 많이 계산 자원을 몰아주는 알고리즘 Gambit
추론 모델이 여러 답을 병렬로 뽑을 때, 잘 풀리는 답만 골라 더 많이 계산 자원을 몰아주는 알고리즘 Gambit
대형 추론 모델은 답을 여러 개 병렬로 생성한 뒤 다수결로 정답을 고르는 방식(Self-Consistency)으로 성능을 높이지만, 대부분의 시도가 틀린 답으로 끝나 계산 자원을 낭비한다. Gambit은 생성 도중 유망한 답변 줄기를 가벼운 점수 매기기로 골라내 그 지점에서 계속 가지치기(branching)하고, 가망 없는 줄기는 주기적으로 끊어 그 자리를 새 가지로 채우는 방식으로 계산량을 능동적으로 재분배한다. 동일한 하드웨어 조건에서 기존 가지치기 방식보다 HMMT-24에서 최대 6.7%p, AIME-25에서 3.3%p 정확도를 높이고, 처리량은 2배 이상, 토큰 소모는 표준 병렬 샘플링 대비 최대 68.5% 줄였다.
METAL MEDIA 해설 도표
Gambit의 능동적 계산 재분배 구조
증거 상태측정 결과가 보고됨
- 문제 입력과 병렬 시작하나의 문제에 대해 고정된 용량 C만큼 추론 줄기를 동시에 생성 시작
- 주기적 점수 평가Δ 스텝마다 각 줄기의 은닉 상태를 가벼운 점수기로 평가해 순위를 매김
- 제로섬 가지치기와 분기점수 낮은 K개 줄기를 끊고, 점수 높은 K개 접두어에서 KV-cache를 물려받아 새 가지를 즉시 생성해 활성 줄기 수를 항상 C로 유지
- 완료와 점수 가중 투표완료된 줄기들의 답을 각자의 점수만큼 가중치를 주어 다수결로 최종 답 결정
- 측정된 효과STEP 대비 정확도 최대 +6.7%p, 병렬 샘플링 대비 토큰 소모 최대 68.5% 감소, 처리량 2배 이상
무엇을 했나
- 대형 추론 모델의 추론 시간 확장(test-time compute scaling)을 '얼마나 많이 계산할까'가 아니라 '어디에 계산을 쓸까'라는 자원 배분 문제로 재정의했다.
- 기존 두 방식의 한계를 지적한다: 병렬 샘플링(Self-Consistency)은 각 시도를 독립적으로 취급해 GPU 메모리(KV-cache)를 과도하게 소비하고, 가지치기(pruning)만 하는 방식은 나쁜 시도를 끊기만 할 뿐 빈 자리를 채우지 않아 하드웨어를 놀린다.
- Gambit은 일정 간격(Δ steps)마다 진행 중인 추론 줄기들의 은닉 상태(hidden state)를 가벼운 점수 매기기 모델로 평가해, 점수 낮은 K개는 끊고 점수 높은 K개의 접두어(prefix)에서 새 가지를 즉시 뻗어 전체 활성 줄기 수를 항상 일정하게(zero-sum) 유지한다.
- 새로 뻗은 가지는 부모의 KV-cache(중간 계산 결과 캐시)를 그대로 물려받아, 처음부터 다시 계산하지 않고 이어서 생성하므로 토큰과 메모리를 크게 아낀다.
- Qwen3-4B, DeepSeek-R1-8B, Phi-4-14B 등 여러 모델과 AIME, HMMT, GPQA-Diamond 벤치마크에서 실측한 결과, Gambit이 정확도·처리량·토큰 소모 모든 축에서 기존 방법들을 일관되게 앞섰다.
| Method | AIME-25 | AIME-26 | HMMT-24 | HMMT-25 | GPQA | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Tok. (Δ) | Acc | Tok. (Δ) | Acc | Tok. (Δ) | Acc | Tok. (Δ) | Acc | Tok. (Δ) | Acc | |
| Qwen3-4B-Thinking | ||||||||||
| SC@256 | 6.02 | 86.7 | 5.82 | 86.7 | 7.62 | 50.8 | 6.86 | 65.0 | 2.28 | 68.2 |
| Slim-SC | 3.93 (-34.7) | 86.7 | 3.83 (-34.2) | 85.0 | 4.01 (-47.4) | 51.7 | 3.72 (-45.8) | 65.8 | 1.66 (-27.2) | 65.6 |
| DeepConf | 3.27 (-45.7) | 90.0 | 3.19 (-45.2) | 86.7 | 4.28 (-43.8) | 58.3 | 4.15 (-39.5) | 66.7 | 1.52 (-33.3) | 67.6 |
| STEP | 3.96 (-34.2) | 86.7 | 3.51 (-39.7) | 87.5 | 4.02 (-47.2) | 61.7 | 3.88 (-43.4) | 66.7 | 2.09 (-8.3) | 66.9 |
| Gambit (Ours) | 3.07 (-49.0) | 90.0 | 3.45 (-40.7) | 88.3 | 3.00 (-60.6) | 65.0 | 3.49 (-49.1) | 67.5 | 1.83 (-19.7) | 70.2 |
| DeepSeek-R1-8B | ||||||||||
| SC@256 | 6.76 | 83.3 | 6.85 | 83.3 | 8.47 | 55.8 | 7.65 | 70.0 | 2.92 | 67.1 |
| Slim-SC | 5.87 (-13.2) | 83.3 | 6.08 (-11.2) | 83.3 | 7.32 (-13.6) | 55.8 | 6.93 (-9.4) | 70.7 | 2.26 (-22.6) | 67.1 |
| DeepConf | 3.75 (-44.5) | 81.7 | 3.67 (-46.4) | 84.2 | 4.34 (-48.8) | 60.0 | 3.97 (-48.1) | 71.7 | 1.68 (-42.5) | 68.7 |
| STEP | 3.71 (-45.1) | 83.3 | 3.66 (-46.6) | 83.3 | 4.15 (-51.0) | 63.3 | 4.08 (-46.7) | 75.8 | 2.44 (-16.4) | 68.2 |
| Gambit (Ours) | 4.21 (-37.7) | 85.8 | 4.09 (-40.3) | 85.0 | 3.05 (-64.0) | 65.6 | 3.81 (-50.2) | 75.8 | 2.21 (-25.3) | 68.2 |
| Microsoft-Phi | ||||||||||
| SC@256 | 4.24 | 86.7 | 4.20 | 88.5 | 5.43 | 56.7 | 5.56 | 73.3 | 3.05 | 76.3 |
| Slim-SC | 3.43 (-19.1) | 85.0 | 3.50 (-16.7) | 86.7 | 4.72 (-13.1) | 55.7 | 4.48 (-19.4) | 74.2 | 2.24 (-26.6) | 72.3 |
| DeepConf | 2.56 (-39.6) | 85.8 | 2.75 (-34.5) | 86.7 | 2.86 (-47.3) | 57.5 | 3.02 (-45.7) | 74.2 | 1.61 (-47.2) | 74.8 |
| STEP | 2.39 (-43.6) | 87.5 | 2.44 (-41.9) | 90.0 | 2.75 (-49.4) | 56.7 | 2.78 (-50.0) | 75.0 | 2.10 (-31.1) | 76.7 |
| Gambit (Ours) | 1.76 (-58.5) | 88.3 | 1.86 (-55.7) | 90.0 | 1.72 (-68.3) | 58.3 | 1.75 (-68.5) | 75.8 | 1.59 (-47.9) | 77.1 |
| Base Model | System | AIME-25 | AIME-26 | HMMT-24 | HMMT-25 | GPQA |
|---|---|---|---|---|---|---|
| DeepSeek-R1-0528 -Qwen3-8B | STEP + SeqScorer | 83.3 | 84.2 | 61.7 | 75.8 | 66.7 |
| Gambit + SeqScorer | 88.5 (+5.2) | 86.7 (+2.5) | 69.4 (+7.7) | 76.7 (+0.9) | 67.7 (+1.0) | |
| Qwen3-4B -Thinking-2507 | STEP + SeqScorer | 86.7 | 86.7 | 60.0 | 65.0 | 67.1 |
| Gambit + SeqScorer | 90.0 (+3.3) | 87.5 (+0.8) | 61.7 (+1.7) | 65.8 (+0.8) | 68.2 (+1.1) |

| Execution Component | Time (s) | % Wall Clock |
|---|---|---|
| GPU Compute (Forward Pass & Sampling) | 37,851.97 | 99.03% |
| Beam-search Overhead (Scoring & Tree Mgmt) | 370.76 | 0.97% |
| Total Wall Clock | 38,222.73 | 100.00% |
![Figure 4: End-to-end pipeline of Gambit on an AIME problem (capacity C=5, swap size K=2). During warmup, C=5 parallel traces are evaluated (color intensity denotes running score s¯∈[0,1]). Every Δ steps, a tournament ranks the active traces: the K=2 lowest-scoring traces are pruned (×) and replaced by new branches spawned from the highest-scoring prefixes via prefix caching (green arrows). This zero-sum reallocation maintains exactly C active traces throughout generation. Upon completion, answers are aggregated via a score-weighted majority vote, correctly selecting answer 29 (∑s¯=1.78 vs. 1.43).](https://media.metallab.ai/papers/2608.08020/f3.png)
| AIME-25 | AIME-26 | HMMT-24 | HMMT-25 | GPQA | ||
|---|---|---|---|---|---|---|
| Qwen3-4B-Thinking-2507 | ||||||
| Tokens (K) | SC | 6,023 | 5,817 | 7,622 | 6,857 | 2,276 |
| Slim-SC | 3,930 | 3,829 | 4,010 | 3,723 | 1,659 | |
| DeepConf | 3,266 | 3,192 | 4,278 | 4,148 | 1,516 | |
| STEP | 3,960 | 3,506 | 4,023 | 3,884 | 2,089 | |
| Gambit (Ours) | 3,071 | 3,449 | 3,002 | 3,493 | 1,826 | |
| Latency (s) | SC | 3,465 | 3,338 | 5,358 | 4,313 | 593 |
| Slim-SC | 1,905 | 1,841 | 2,412 | 1,995 | 555 | |
| DeepConf | 2,095 | 2,188 | 3,231 | 2,948 | 605 | |
| STEP | 1,390 | 1,232 | 2,016 | 1,507 | 786 | |
| Gambit (Ours) | 1,350 | 1,177 | 1,912 | 2,179 | 527 | |
| DeepSeek-R1-0528-Qwen3-8B | ||||||
| Tokens (K) | SC | 6,764 | 6,849 | 8,465 | 7,652 | 2,919 |
| Slim-SC | 5,874 | 6,080 | 7,323 | 6,933 | 2,256 | |
| DeepConf | 3,753 | 3,666 | 4,337 | 3,972 | 1,679 | |
| STEP | 3,711 | 3,661 | 4,147 | 4,077 | 2,444 | |
| Gambit (Ours) | 4,211 | 4,089 | 3,053 | 3,806 | 2,211 | |
| Latency (s) | SC | 4,078 | 4,107 | 5,640 | 4,873 | 880 |
| Slim-SC | 3,462 | 3,564 | 5,071 | 4,342 | 771 | |
| DeepConf | 2,692 | 2,582 | 3,256 | 2,800 | 744 | |
| STEP | 1,519 | 1,469 | 1,902 | 1,715 | 730 | |
| Gambit (Ours) | 1,571 | 1,842 | 2,014 | 2,169 | 702 | |
| Phi-4 | ||||||
| Tokens (K) | SC | 4,243 | 4,198 | 5,426 | 5,559 | 3,050 |
| Slim-SC | 3,426 | 3,503 | 4,716 | 4,482 | 2,242 | |
| DeepConf | 2,557 | 2,749 | 2,860 | 3,022 | 1,608 | |
| STEP | 2,390 | 2,435 | 2,754 | 2,780 | 2,097 | |
| Gambit (Ours) | 1,756 | 1,855 | 1,717 | 1,752 | 1,590 | |
| Latency (s) | SC | 2,760 | 2,636 | 3,848 | 4,046 | 1,730 |
| Slim-SC | 2,123 | 2,166 | 3,069 | 2,704 | 1,048 |
실제로 확인된 결과
- 동일 하드웨어 제약에서 Gambit은 가지치기 기반 STEP 대비 HMMT-24에서 최대 +6.7%p, AIME-25에서 +3.3%p 정확도를 높였다.
- 표준 병렬 샘플링(Self-Consistency) 대비 총 토큰 소모를 최대 68.5% 줄였고(Phi-4, HMMT-25: 1.75M vs 5.56M 토큰), 완료된 추론 줄기 처리량은 2배 이상 높았다(Qwen3-4B에서 0.216 대 0.098).
- 4B 모델 기준, 정밀 보정된 DeepConf와 AIME-25에서는 동률(90.0%)을 보였고 HMMT-24(+6.7%p), GPQA(+2.6%p)에서는 앞섰다.
- 빔 서치 알고리즘 자체의 연산 오버헤드는 전체 실행 시간의 1% 미만(0.97%)으로, 시스템 병목을 일으키지 않는 것으로 측정됐다.
- AIME 2025 문제 하나에 대한 사례 분석에서, 같은 모델로 2배 많은 병렬 샘플링(n=512)을 돌려도 정답을 못 찾은 반면, Gambit은 훨씬 적은 토큰으로 정답에 도달했다.
어디에 쓸 수 있나
- 경쟁 수준 수학 문제나 대학원급 과학 문제처럼 정답률이 낮고 추론 줄기가 긴 작업에서 추론 시간 자원 배분 전략으로 고려할 수 있다.
- vLLM 같은 서빙 엔진 위에서 KV-cache 메모리 압박과 GPU 유휴 시간을 동시에 줄이려는 추론 서버 운영에 참고할 수 있다.
- 기존에 STEP, DeepConf 같은 가벼운 내부 점수 매기기 신호를 이미 쓰고 있는 시스템이라면, 순수 가지치기 대신 능동적 가지 뻗기로 교체하는 아이디어로 활용할 수 있다.
한계와 남은 검증
- 실험은 AIME, HMMT, GPQA-Diamond 등 수학·과학 경쟁 문제와 특정 오픈 웨이트 모델(Qwen3-4B, DeepSeek-R1-8B, Phi-4-14B) 범위에서만 측정됐고, 다른 도메인이나 훨씬 큰 모델에 대한 검증은 보고되지 않았다.
- 점수 매기기 함수(scorer)의 품질에 성능이 의존하는데, 논문은 STEP의 기성 MLP 점수기와 자체 학습한 시퀀스 점수기 두 가지만 비교했다.
- 초반 추론은 신호가 불안정하다는 이유로 워밍업 구간(w=12K 토큰) 이전에는 점수 평가와 체크포인팅을 하지 않는데, 이 임계값 설정이 다른 문제 유형에도 그대로 통할지는 별도 검증이 필요하다.
- 단일 NVIDIA B300 GPU 환경에서 측정된 결과이며, 다중 GPU나 다른 하드웨어 세대에서의 재현 여부는 논문에 보고되지 않았다.
왜 중요한가
추론형 AI 모델을 실제 서비스에 쓸 때 가장 큰 비용은 정답률을 높이려고 답을 여러 번 생성하는 데 드는 GPU 시간과 메모리다. Gambit은 같은 하드웨어로 더 정확한 답을 더 빨리, 더 적은 토큰으로 얻는 방법을 보여줘 추론 비용 최적화에 직접적인 시사점을 준다.
이 논문의 용어
- Self-Consistency · 같은 질문에 대해 여러 개의 답변 줄기를 독립적으로 생성한 뒤 다수결로 최종 답을 정하는 기법
- KV-cache · 트랜스포머 모델이 이전에 계산한 키/값 벡터를 저장해 다음 토큰 생성 시 재사용하는 메모리 공간
- 빔 서치(beam search) · 여러 후보 경로 중 점수가 높은 일부만 남기고 나머지를 버리며 탐색을 진행하는 방법. 이 논문은 토큰 단위가 아니라 '생각 단계(thought)' 단위로 이를 적용한다
- 가지치기(pruning) · 가능성이 낮다고 판단된 추론 줄기를 도중에 중단시켜 계산 낭비를 줄이는 방식
- 은닉 상태(hidden state) · 모델 내부 계층이 생성하는 중간 표현 벡터로, 여기서는 이를 이용해 추론 줄기의 품질을 가볍게 추정한다
최신 논문
- AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다
- 논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기
- 고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법
- 로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다
- 에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법
- AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다
- AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다
- AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다
METAL MEDIA 최신 기사
그림 출처: Lijie Yang et al., arXiv:2608.08020, CC BY-SA 4.0