LoCo는 추론을 그만둘 지점을 상태 단위 선호학습으로 가르친다

Think Less, Locally: Local Preference Learning for Reasoning Compression

HF Daily2611.04814

Muyao Yuan, Liyan Xu, Weizhan Zhang2026-11-03

무엇인가

대형 추론 모델은 수학 문제나 알고리즘 문제에서 좋은 성능을 내지만, 그 성능의 상당 부분을 수천 토큰에 달하는 확장된 체인오브소트(CoT)에 의존한다. 문제는 길게 생각한다고 정확도가 계속 올라가지는 않는다는 점이다. 논문은 이미 정답을 낼 만큼 충분한 정보를 얻고도 모델이 계속 추론을 이어가는 현상을 과잉 사고(overthinking)라고 부르고, 이것이 능력의 문제가 아니라 '계속 생각하는 쪽을 선호하는' 모델 선호의 문제라고 규정한다. 기존 압축 기법들은 짧은 정답 풀이와 긴 정답 풀이를 비교하거나(궤적 수준), 중복 문장·토큰·스텝을 잘라내는(세밀한 수준) 방식이었다. 두 방식 모두 '추론 궤적 자체'를 압축 대상으로 삼을 뿐, 지금 이 상태에서 추가 추론이 필요한지 아닌지는 직접 다루지 않는다. 그런데 적절한 압축 시점은 상태마다 다르다. 어떤 상태에서는 계속 생각해야 하고, 다른 상태에서는 결론을 내야 한다.

어떻게 동작하나

LoCo(Local Compression)는 이 지점을 겨냥한다. 전체 궤적에 대한 전역 선호를 학습하는 대신, 모델 자신의 추론 흔적에서 과잉 사고가 시작되는 '상태'를 찾아내고, 그 상태를 고정한 채로 더 짧은 검증된 연속부와 원래 연속부를 짝지어 (P_i, y_i+, y_i-) 삼중항을 만든 뒤 DPO로 학습한다. P_i는 i번째 스텝까지의 프롬프트와 추론 접두부 전체, y_i+는 같은 상태에서 다시 생성해 정답과 일치한 더 짧은 연속부, y_i-는 원래 이어지던 연속부다. 두 후보가 동일한 접두부를 공유하기 때문에 비교는 '그 상태에 도달한 뒤 무엇을 선호할지'에 조건화된다.

무엇과 다른가

1단계는 스텝 수준 과잉 사고 탐지다. CoT를 문단 경계로 스텝 s_i로 나눈 뒤, 모델에 전체 CoT를 다시 먹여 각 토큰 위치의 최대 다음 토큰 확률을 구하고 스텝별 평균을 신뢰도 c_i로 삼는다. 변동성 v_i는 최근 스텝 구간에서의 분산이며, 최소 윈도 크기 2를 쓰면 v_i = (c_i − c_{i−1})²/4 로 단순화된다. 모델이 스스로 생성한 추론 흔적으로부터 신뢰도와 변동성의 25·75 백분위수를 계산해 두고, c_i ≤ q25 이면서 v_i ≥ q75^v 인 상태를 후보로 뽑는다. 낮은 신뢰도만으로는 진짜 어려운 부분문제와 구분되지 않고, 높은 변동성만으로는 정당한 추론 전환과 구분되지 않기 때문에 두 신호의 교집합을 쓴다. 이 탐지기는 인과적이다. c_i와 v_i는 s_i가 끝난 시점까지의 정보로만 계산되고, 절단은 s_{i+1}부터 시작하므로 잘라낼 연속부를 미리 보지 않는다. 이어서 더 강한 판정 모델이 각 후보 상태를 다시 검사해 다음 스텝을 overthink·normal·final로 분류하고, overthink로 확인된 상태만 남긴다. 정상 스텝을 자르면 유용한 진전을 버리게 되고, 최종 스텝을 자르면 정답 자체를 버릴 수 있기 때문이다(추론 모델은 종종 답을 다시 진술하거나 박스로 감싸 마무리한다).

어떻게 쓰나

2단계는 검증된 연속부 생성이다. 탐지된 각 상태 P_i를 고정하고 모델로부터 k=8개의 연속부를 샘플링해, 정답과 기호적으로 동등한 것들 중 가장 짧은 것을 y_i+로 고른다. 유효한 연속부가 없으면 그 탐지점은 버리고, 원래 연속부보다 엄격히 짧을 때만 남긴다. 3단계는 국소 선호 학습이다. 토큰 절감량 g_i가 최소 δ 이상이고, 프롬프트와 연속부가 각각 길이 상한 안에 들어오는 쌍만 남기며, 한 질문당 절감량이 큰 상위 K개로 제한해 탐지점이 많은 질문이 데이터를 독점하지 않게 한다. 목적함수는 공유 접두부 x=P_i에 대한 표준 DPO로, 두 연속부의 토큰 로그확률 합을 비교해 y+ 쪽 확률을 끌어올린다.

전제와 한계

실험은 DeepSeek-R1-Distill-Qwen-7B를 대상으로 했다. 선호 데이터는 수학 훈련셋에서 질의당 3개 롤아웃(온도 0.6, top-p 0.95)을 뽑아 가장 짧은 정답 롤아웃을 원래 궤적으로 쓰고, 판정 모델로 Qwen3-30B를, 재생성은 k=8, 절감 하한 δ=300 토큰, 질문당 최대 K=3쌍, 프롬프트 6k·연속부 12k 토큰 상한으로 구성했다. 학습은 LoRA(랭크 256, α=512, 드롭아웃 0.05, q/k/v/o 어텐션 투영)로 2에폭, 유효 배치 64, 학습률 1e-5, DPO β=0.1, 기준 정책은 베이스 모델, H20 GPU 4대로 수행했다. 평가는 수학 5개(MATH-500 500문항, AMC 2023 40문항, Olympiad 675문항, AIME 2024·2025 각 30문항), 코드 3개(MBPP 257문항, LiveCodeBench v5 167문항, CodeContests 165문항)에서 문제당 8개 완성을 샘플링해 정확도·토큰 수·AUC로 측정했다.

수학 결과는 난이도 전 구간에서 일관됐다. 쉬운 벤치마크에서도 베이스 모델과 대등하거나 더 높은 정확도를 유지하면서 생성 토큰을 41.7~44.1% 줄였고, Olympiad·AIME24·AIME25에서는 최고 정확도와 최고 AUC를 동시에 달성하면서 완성 길이를 44.6~45.4% 줄였다. 베이스라인인 DAST는 압축이 약해 어려운 벤치마크에서는 오히려 길이가 늘기도 했고, TokenSqueeze는 aggressively 줄이지만 난이도가 올라갈수록 정확도를 더 잃었다. 코드 쪽은 수학 데이터만으로 학습했음에도 전이가 나타났다. MBPP에서는 정확도가 베이스와 같으면서 토큰 36.3% 감소, AUC 1.53포인트 상승, 더 어려운 LiveCodeBench와 CodeContests에서는 완성 길이를 줄이면서 정확도와 AUC 모두 베이스라인을 앞섰다. 초록 기준 코드 벤치마크 토큰 감소폭은 23.4~36.3%이며 모든 코드 벤치마크에서 최고 AUC를 기록했다고 보고한다.

절제 실험은 이득의 출처를 분해한다. 상태 구조를 없애고 질의 전체에 대한 궤적 수준 선호쌍으로 바꾼 Global 변형은 일부 벤치마크에서 비슷한 정확도를 냈지만 토큰 감소가 AMC23 5.2%, AIME24 11.1%, AIME25 15.8%에 그쳐, LoCo의 41.7%·45.4%·45.2%에 크게 못 미쳤다. 선택 연속부를 GPT-5.4가 같은 고정 접두부에서 다시 생성한 것으로 바꾼 변형보다는 자기 모델이 만든 연속부를 쓰는 LoCo가 압축과 AUC 모두에서 나았는데, 저자들은 이를 학습 대상 모델의 추론 분포와의 정합성 차이로 설명한다. 절단점을 무작위(RandCut)나 균등 간격(UniCut)으로 고른 변형은 전체 길이는 줄일 수 있었지만 정확도 손실이 더 컸고, 특히 AIME24·AIME25에서 차이가 벌어졌다. 즉 LoCo의 이득은 '짧은 쪽을 선호하게 만든 것'만이 아니라 '올바른 상태에서 그 선호를 학습한 것'에서 나온다.

개발자 관점에서 이 논문이 주는 실무적 힌트는 명확하다. 긴 추론으로 지연과 비용이 문제인 서비스에서 베이스 모델을 통째로 재학습시키지 않고 LoRA 어댑터만 얹어 '언제 멈출지'를 조정할 수 있고, 학습 신호를 모델 자신의 추론 흔적에서 뽑기 때문에 별도 도메인 데이터 없이도 다른 과제로 전이될 여지가 있다. 다만 파이프라인을 그대로 재현하려면 정답을 기호적으로 검증할 수 있는 훈련 데이터, 판정용 강한 모델, 그리고 상태별 재생성·필터링 비용이 필요하다는 점을 먼저 계산해야 한다. 코드 생성처럼 정답 검증이 샌드박스 실행으로 가능한 영역은 궁합이 좋다.

논문 본문에 별도의 한계 절이 마련되어 있지는 않지만, 서술에서 드러나는 전제는 분명하다. 학습 데이터는 전부 수학 궤적에서 자기 생성으로 만들어졌고, 선호쌍 생성이 정답과 기호적으로 동등한지에 의존하므로 정답 검증이 어려운 개방형 과제로 그대로 확장하기는 쉽지 않다. 후보 탐지의 1차 필터는 모델 자신의 신뢰도 통계이고 최종 판정은 별도의 더 강한 판정 모델에 맡기므로, 판정 모델의 품질이 데이터 품질을 좌우한다. 또한 실험은 7B 증류 모델 하나와 LoRA 학습 설정을 기준으로 보고되었고, 코드 벤치마크는 전이 성능을 보기 위한 평가 대상이지 코드 데이터로 학습한 결과가 아니다.