토큰과 세그먼트로 더 잘게 — 세밀한 입도의 득과 실

Segment Policy Optimization: Effective Segment-Level Credit Assignment in RL for Large Language Models (Guo et al., arXiv 2025)

Introduction

이 시리즈의 2부는 입도(granularity)라는 사다리를 하나씩 내려가는 중이다. #4는 사다리 맨 위, 에피소드 하나에 스칼라 하나였다. #5는 그걸 턴 단위로 쪼갰다. #6은 턴 안의 개별 행동, 스텝 단위로 더 내려갔다. 이번 글은 이 사다리의 가장 아래 칸이다 — 토큰 하나하나, 그리고 토큰과 턴 사이 어딘가에 있는 세그먼트.

당연히 따라오는 질문이 있다. 사다리를 계속 내려가면, 즉 신용을 계속 더 잘게 쪼개면, 그만큼 계속 좋아지는가? 이 글의 답은 아니다다. 그것도 그냥 “적당히 하자”는 애매한 답이 아니라, 왜 아닌지를 수식과 실제 사례로 보여줄 수 있는 아니다다.

이유를 한 문장으로 미리 말해두면 이렇다. 턴까지는 환경이 실제로 신호를 준다. 그 아래로 내려가면 아무도 점수를 주지 않는다. 도구 호출이 성공했는지, 검색 결과가 왔는지는 환경이 관찰 가능한 사실이다. 그런데 “이 토큰 하나가 좋았는가”에는 답해줄 존재가 없다. 그래서 토큰·세그먼트 단위로 신용을 매기려면 필연적으로 추정에 의존해야 한다 — 학습된 크리틱, 별도 확률 모델, 대조 학습, 게임이론적 귀속(attribution) 같은 것들이다. 그리고 추정에는 오차가 있다. 이 글의 핵심 주장은, 그 추정 오차가 그냥 잡음으로 끝나지 않고 정책이 파고들 수 있는 hacking 표면이 된다는 것이다.

비유하자면 이렇다. 분기 실적 발표(턴)는 재무제표라는, 회사 바깥에서도 검증 가능한 숫자가 있다. 그런데 그 실적을 만든 수천 통의 이메일과 통화 하나하나(토큰)에 “이 이메일이 이번 분기 매출에 얼마나 기여했는가”를 점수 매기려 들면, 어느 이메일에도 실시간으로 매출이 찍히는 계기판 같은 건 없다. 그래서 누군가(관리자, 컨설턴트, 혹은 이 글에서는 크리틱·확률 모델)가 그 기여도를 추정해서 대신 채워 넣어야 한다. 그리고 그 추정이 틀리면, 직원들은 진짜 실적을 개선하는 법이 아니라 평가자가 점수를 잘 주는 이메일을 쓰는 법을 배운다. 이 글 후반부의 반례가 정확히 이 실패다.

숫자로 이 이야기를 미리 만져보자. SCAR라는 세그먼트 단위 방법은 토큰 단위로 신용을 매기는 것과 문장 단위(span)로 매기는 것을 나란히 비교했는데, 성능은 거의 같으면서 토큰 단위가 문장 단위보다 GPU 시간을 7배(48시간 대 7시간, 1K 스텝 기준) 더 먹었다. SPO라는 또 다른 세그먼트 방법은 GSM8K에서 PPO·GRPO 대비 6~12퍼센트포인트, MATH500에서 GRPO 대비 7~11퍼센트포인트를 개선했다 — 세밀화가 공짜가 아니라도 이득이 실재한다는 증거다. 그런데 정반대의 이야기도 있다. PURE라는 논문은 스텝 단위 process reward model을 순진하게(sum-form으로) 쓰면 학습이 단 5번의 그래디언트 스텝 만에 붕괴한다는 것을 보였다 — 모델이 무한히 반복되는 응답을 만들어내다가 최대 컨텍스트 길이에 부딪혀서야 멈추는 식으로.

이 세 가지 숫자가 이 글이 답할 질문을 정확히 요약한다.

  1. 토큰 단위 advantage는 사실 PPO·GRPO에 이미 있다 — 그런데 왜 “입도가 없다”고 말하는가.
  2. 토큰별 신용은 실제로 어디서 얻는가 — 크리틱, 대조 추정, 귀속(attribution) 세 갈래를 각각 실제 논문으로 확인한다.
  3. 토큰과 턴 사이, 세그먼트라는 중간 지대는 어떻게 정의되는가 — 고정 길이인가, 문법 경계인가, 모델 스스로 정하는가.
  4. 세밀화의 이득과 대가를 분산-편향 트레이드오프로 정확히 수치화할 수 있는가.
  5. 그 대가가 실제로 정책을 망가뜨린 사례가 있는가.

Background

토큰 단위 advantage는 이미 있다 — 문제는 “입도가 없다”는 것

먼저 짚어야 할 오해가 하나 있다. “토큰 단위 credit assignment”라고 하면 마치 지금까지의 알고리즘이 토큰을 통째로 무시해온 것처럼 들리는데, 사실이 아니다. PPO 글의 GAE(Generalized Advantage Estimation)는 애초부터 토큰마다 advantage \(A_t\)를 계산한다.

\[A_t = \sum_{l=0}^{T-t-1} (\gamma\lambda)^l \delta_{t+l}, \qquad \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)\]

여기서 \(V(s_t)\)는 학습된 크리틱이 매기는, 상태 \(s_t\)(즉 그 시점까지 생성된 프리픽스)의 가치다. 이 값은 토큰 위치 \(t\)마다 실제로 다르다 — 크리틱이 프리픽스를 입력으로 받아 그때그때 다른 숫자를 내놓기 때문이다. 형식적으로는 이게 완전한 토큰 단위 신용이다.

그런데 GRPO 글로 넘어가면 사정이 달라진다. GRPO는 크리틱을 아예 없애고, 그룹 상대 보상 하나를 계산해 그 값을 응답의 모든 토큰에 그대로 복사한다. SPO 논문이 이 사실을 정확히 이렇게 적는다 — “trajectory-level advantages are then assigned uniformly to all tokens in the corresponding trajectory to obtain \(\hat A_t\)“(궤적 단위 advantage가 해당 궤적의 모든 토큰에 균일하게 할당되어 \(\hat A_t\)가 된다). #2에서 이미 이 문제를 짚었다 — 궤적 하나에 스칼라 하나, 그 스칼라가 토큰 개수만큼 복제될 뿐이다.

즉 “토큰 단위 advantage”라는 표현 자체는 PPO에도 GRPO에도 있지만, 그 값이 토큰마다 실제로 다른 정보를 담고 있는가는 완전히 다른 문제다. PPO는 크리틱이 정확하기만 하면 진짜 토큰별 신호를 준다(다만 크리틱을 정확하게 학습시키는 게 어렵다는 게 다음 절의 주제다). GRPO는 애초에 토큰별 신호를 만들 생각이 없다 — 그저 궤적 하나의 값을 broadcast할 뿐이다. 이 구분을 분명히 해두는 게 이 글 전체의 출발점이다. 입도의 이름표(토큰)와 입도의 실질(그 신호가 실제로 국소적인가)은 다른 것이다.

클리핑에도 입도가 있다 — GSPO와 CISPO를 잠깐 다시 보기

credit의 입도만 선택지가 있는 게 아니다. PPO·GRPO의 clipped surrogate objective에는 이전 정책과 새 정책의 확률비, importance ratio가 들어가는데, 이 비율을 어느 단위로 계산하고 클립할지도 별도의 입도 선택이다. 이 시리즈의 범위는 아니지만 — 본체는 RLHF 시리즈 #27 GSPO#44 프론티어 reward 설계에 있다 — 이 시리즈의 언어로 재구성해두면 나머지 논의가 더 선명해진다.

  • GRPO·PPO: importance ratio를 토큰마다 따로 계산하고 따로 클립한다.
  • GSPO: 응답 전체의 likelihood 비율을 길이로 정규화해 시퀀스 하나에 값 하나로 만들고, 클립도 시퀀스 하나를 통째로 한다.
  • CISPO: 토큰도 시퀀스도 아니다. importance-sampling 가중치 자체를 클립해, 확률은 낮지만 결정적인 토큰(“However”, “Recheck” 같은 회귀·재검토 토큰)이 클리핑 때문에 통째로 그래디언트 기여를 잃지 않게 한다.

세 방법이 서로 다른 것을 클립하는 이유는 이 글의 credit 입도 논의와 구조적으로 같다. 무엇을 세밀하게 볼지, 무엇을 뭉뚱그려 볼지는 그 대상이 실제로 “국소적으로 의미 있는 단위”인지에 달려 있다. GSPO는 “reward가 시퀀스 단위로 주어지는데 보정만 토큰 단위로 쪼개는 건 단위 불일치”라고 봤고, CISPO는 “토큰 자체는 의미 있는 단위이지만 그 확률비를 통째로 자르면 결정적인 저확률 토큰이 죽는다”고 봤다. credit 입도를 고르는 이 글의 논리 — 어디까지 내려가야 신호가 살아있고 어디부터는 신호가 사라지는가 — 가 클리핑의 입도를 고르는 논리와 같은 모양이라는 것만 기억해두면 된다.

Method

토큰 단위: 세 갈래의 출처

크리틱이 정확하지 않다는 문제(PPO), 그리고 크리틱 자체가 아예 없다는 문제(GRPO)를 모두 우회해서 진짜 토큰별 신호를 만들려는 시도들이 있다. 출처는 크게 세 갈래다 — (a) 크리틱·GAE를 다른 방식으로 채우기, (b) 토큰별 중요도를 모델 스스로 추정하기, (c) 이미 있는 보상 모델에서 귀속(attribution)을 뽑아내기.

(a) 크리틱을 몬테카를로로 대체 — VinePPO

가장 직접적인 접근은 #2에서 이미 다룬 VinePPO(Kazemnejad et al., ICML 2025, arXiv 2410.01679)다. 학습된 크리틱이 왜 부정확한가에 대한 답은 단순하다 — 추론이 필요한 문제에서 크리틱은 대안적인 다음 스텝들을 놓고 비교했을 때 무작위 베이스라인과 별 차이 없는 성능을 보인다는 것이 저자들의 직접적인 실측이다. VinePPO는 이 크리틱을 아예 버리고, 토큰 위치 \(t\)마다 그 지점에서 여러 번(K개) 롤아웃을 계속 이어가 실제로 도달한 결과의 평균으로 \(V(s_t)\)를 대체한다.

\[\hat V(s_t) \approx \frac{1}{K}\sum_{k=1}^{K} R(\tau_t^{(k)})\]

크리틱이 예측한 값이 아니라 실제로 여러 번 굴려서 관찰한 값이므로, 함수 근사 오차가 없다. 대가는 토큰 위치마다 \(K\)번의 추가 생성이 필요하다는 것 — MATH·GSM8K에서 PPO 대비 학습 wall-clock 시간을 최대 3.0배 단축했다고 보고한다(같은 학습 정확도에서 더 높은 테스트 정확도에 도달하는 방식으로, 즉 표본당 더 많은 일반화 신호를 뽑아내면서). VinePPO는 이 글에서 다루는 “(a) 크리틱/GAE” 축의 대표 방법이지만, 자세한 내용은 #2를 참고하고 여기서는 좌표만 확인한다.

(b) 모델이 스스로 중요도를 찾는다 — T-REG

T-REG(Zhou et al., arXiv 2412.02685, 2024)는 완전히 다른 길을 택한다. 외부 크리틱도, 별도의 보상 모델도 쓰지 않는다. 대신 같은 문제에 대해 모델이 만든 정답 응답과 오답 응답을 나란히 놓고, 토큰 위치마다 두 응답의 로그확률 차이를 비교한다. 두 응답이 크게 갈라지는 지점 — 즉 정답으로 갈 때와 오답으로 갈 때 모델의 확신이 가장 크게 달라지는 토큰 — 이 그 문제를 가르는 결정적 토큰이라는 발상이다. 이렇게 얻은 토큰별 신호를 시퀀스 단위 선호 최적화의 정규화 항으로 얹어, 시퀀스 단위 보상을 토큰 사이에 더 잘 분배하도록 유도한다.

이 방법의 장점은 아무것도 추가로 학습하지 않는다는 것이다 — 크리틱도, 별도 보상 모델도, AI 주석자도 없다. 대신 모델 자신의 정답/오답 쌍이라는 대조(contrast)만으로 중요도를 뽑아낸다. Alpaca Eval 2에서 최대 3.8%포인트, Arena-Hard에서 최대 4.4%포인트, 베이스라인 대비 일관된 개선을 보고한다. 다만 이 방법의 전제도 눈여겨봐야 한다 — “정답/오답 쌍이 실제로 존재해야” 대조가 성립한다. 정답을 규칙으로 판별할 수 없는 열린 과제에는 그대로 옮겨가기 어렵다.

(c) 이미 있는 보상 모델에서 귀속을 뽑아낸다 — RED

RED(Li et al., arXiv 2411.08302, 2024)는 앞의 둘과 다시 다른 전략이다. 새로 뭘 학습시키지 않고, 이미 RLHF용으로 훈련된, 시퀀스 하나에 스칼라 하나를 주는 기성 보상 모델을 그대로 가져다 쓴다. 이 보상 모델의 내부 hidden state를 탐침(probe)해, 각 토큰이 최종 보상 점수에 얼마나 한계 기여(marginal contribution)를 했는지를 선형회귀로 사후에(post-hoc) 추정한다. 보상 모델 자체를 수정하지도, 추가 학습 단계를 넣지도 않는다 — 이미 학습된 모델의 내부 표현 안에 이미 토큰별 정보가 들어 있다는 것을 재활용하는 셈이다.

숫자로 보면 이렇다. Reddit TL;DR 요약 과제, Qwen2.5를 베이스로 한 PPO 실험에서 보상 평가 점수가 0.623(PPO)에서 1.668(PPO-RED)로, SFT 대비 승률은 81.07%에서 90.81%로 올랐다. LLaMA·LLaMA3 베이스에서도 방향은 일관됐다(LLaMA: 0.218→0.222, 승률 77.11%→80.77%; LLaMA3: 1.883→1.986, 승률 86.42%→88.32%). 다만 저자들은 GPT-4 평가와 보상 평가 사이의 불일치도 함께 보고한다 — PPO-RED가 보상 점수는 가장 높았지만(0.222) GPT-4 판정 승률은 65.50%에 그쳤다. 이 간극 자체가, 사후 귀속으로 뽑아낸 토큰별 신호가 사람(혹은 사람을 흉내내는 judge)의 판단과 완벽히 일치하지는 않는다는 신호다 — 뒤에서 다룰 편향 문제의 예고편이다.

(참고) From r to Q* — DPO 안에 이미 토큰별 신용이 있다

#2에서 다룬 Rafailov et al.의 “From r to Q*“(Stanford, arXiv 2404.12358)는 위 세 방법과는 다른 각도다 — 아예 새로운 방법을 제안하는 게 아니라, DPO 글이 학습하는 게 실은 토큰 단위 MDP 위의 암묵적 Q함수라는 것을 이론적으로 보인다. DPO 학습 자체가 명시적인 의도 없이도 토큰 수준 credit을 “공짜로” 만들어낸다는 주장이다. iStar·ITPO 같은 후속 방법이 이 통찰을 실제로 뽑아 쓴다(#2 참고).

세그먼트 단위: 토큰과 턴 사이

토큰 하나는 너무 잘다. “이 토큰 하나가 옳았는가”는 대개 언어적으로 잘 정의되지 않는다(접속사 하나가 정답과 오답을 가르지 않는다). 반대로 턴 하나는 너무 크다 — 검색 결과를 받는 한 턴이 수천 토큰짜리 추론을 통째로 담고 있으면, 그 안에서 정확히 어디가 좋았고 어디가 나빴는지는 여전히 안 보인다. 세그먼트는 이 둘 사이, 의미 있게 묶이는 구간(추론의 한 단계, 문장 하나, 도구 호출 하나로 이어지는 블록)에 신용을 매긴다.

책 한 권을 채점한다고 생각하면 이 위치가 왜 실용적인지 감이 온다. 단어 하나하나(토큰)에 별점을 매기는 건 대체로 무의미하다 — “그래서”라는 단어 자체는 좋지도 나쁘지도 않다. 그렇다고 책 전체(에피소드)에 별점 하나만 매기면, 어느 장(chapter)이 지루했고 어느 장이 훌륭했는지는 영영 알 수 없다. 실용적인 타협은 단락 단위로 밑줄을 긋고 여백에 메모를 남기는 것이다 — 딱 그 정도 크기가 세그먼트다.

SPO 논문의 표현을 빌리면 이렇다 — “token-level methods aim to provide fine-grained advantage signals but suffer from inaccurate estimation due to difficulties in training an accurate critic model. On the other extreme, trajectory-level methods solely rely on a coarse-grained advantage signal from the final reward”(토큰 단위는 세밀한 신호를 주려 하지만 정확한 크리틱을 학습하기 어려워 부정확한 추정에 시달리고, 반대편 극단인 궤적 단위는 최종 보상 하나에서 나온 성긴 신호에만 의존한다). 세그먼트는 이 두 극단의 중간에서 몬테카를로로 편향 없는 추정을 할 만큼은 크지만, 궤적 전체를 뭉뚱그리지는 않을 만큼은 작은 지점을 찾는다.

세그먼트를 어떻게 정하는가 — 세 가지 경계 기준

경계를 어디에 그을지가 그 자체로 설계 문제라는 건 #2에서 이미 예고했다. 실제 논문들이 쓰는 기준은 크게 셋이다.

고정 길이(fixed token count). 가장 단순한 방법 — 토큰 몇 개마다 한 번씩 자른다. SPO는 이를 “Fixed Token Count Partition”이라 부르며, 긴 CoT(장문 추론)에서는 이 방식을 쓴다(SPO-tree). 구현이 간단하고 세그먼트 크기가 일정해 트리 구조로 조직하기 쉽지만, 경계가 의미와 무관하게 그어진다는 약점이 있다.

문법·구조 경계(syntactic boundary). SCAR(Cao et al., arXiv 2505.20417, 2025)가 이 방식을 쓴다 — Shapley value의 정확한 계산은 참여자(player) 수에 지수적으로 비용이 늘어나므로(\(O(2^N)\)), 토큰 하나하나를 참여자로 삼으면 감당이 안 된다. SCAR는 구문 분석(constituency parsing)으로 문장을 절·구 단위의 계층 구조로 나누고, 그 문법적으로 응집된 단위를 참여자로 삼는다. 긴 응답에는 문장 단위 분할이라는 더 거친 대안도 함께 제시한다. VinePPO가 쓰는 줄바꿈(line break) 기반 휴리스틱 분할도 이 갈래에 속한다.

모델이 스스로 분할(adaptive cutpoint). SPO의 짧은 CoT용 변형(SPO-chain)이 쓰는 방식이다. 토큰 확률 \(\pi_\theta(y_t \mid s_t)\)가 임계값 \(\rho\)보다 낮아지는 지점 — 즉 모델 자신이 확신하지 못하는(불확실한) 지점 — 을 “cutpoint”로 정의한다. 이 컷포인트들이 모델의 추론이 실제로 갈라질 수 있는 지점, 즉 가치 \(V\)가 크게 바뀔 만한 지점을 근사한다는 발상이다. 세그먼트 개수 \(K\)가 정해지면, 각 세그먼트가 대략 같은 수의 컷포인트를 포함하도록 경계를 최적화한다.

\[\min_{\{t_k\}_{k=1}^{K}} \sum_{k=1}^{K} \lvert \mathcal{U}_\theta \cap [t_k, t_{k+1}) \rvert^2, \qquad \mathcal{U}_\theta = \{t < T \mid \pi_\theta(y_t \mid s_t) < \rho\}\]

이 최적화의 풀이는 컷포인트를 세그먼트마다 균등하게 분배하는 것과 같다 — 즉 확신이 흔들리는 지점을 세그먼트 사이에 고르게 나눠 담는다. SPO는 GSM8K 예제로 이 방식이 실제로 무엇을 잡아내는지 보여준다 — 24그루의 단풍나무 가격을 계산하는 문제에서, 모델이 “24 × $300”을 써야 할 자리에 “600 × 300”을 쓰다가 정확히 그 숫자 “6”의 자리에서 확률이 낮게 떨어진다. 컷포인트가 정확히 모델이 실수하는 자리 근처에 몰린다는 뜻이다.

세 방식을 직접 비교한 ablation에서 SPO는 흥미로운 결과를 보고한다 — 고정 개수(3개) 분할과 VinePPO 스타일의 줄바꿈 기반 분할보다, 더 적은 샘플링 예산을 쓰고도 컷포인트 기반 분할(SPO-chain, 컷포인트 5개 간격)의 정확도가 더 높았다. 줄바꿈 경계는 특히 비효율적인 경우가 있다는 것도 지적된다 — 한 스텝 안의 모든 토큰 확률이 1에 가까우면(모델이 완전히 확신하는 구간), 그 스텝의 시작과 끝에서 추정한 가치 \(V\)는 거의 차이가 없다. 이런 구간에 샘플링 예산을 쓰는 건 낭비다. 반대로 SCAR의 문법 경계는 원래 목적(참여자 수를 줄여 Shapley 계산을 감당 가능하게 만드는 것)에는 잘 맞지만, “이 절이 실제로 결정적이었는가”를 보장하지는 않는다. 경계를 어디에 긋느냐는 세그먼트가 담아야 할 신호가 무엇이냐에 달려 있다 — 계산 비용을 줄이려면 문법 경계, 결정적 지점을 놓치지 않으려면 모델의 불확실성 기반 경계다.

TEMPO — 트리로 몬테카를로와 TD를 섞는다

TEMPO(Tran et al., arXiv 2509.18314, 2025, 정식 명칭 Tree-Estimated Mean Prefix Value for Policy Optimization)는 선형 사슬 구조 대신 트리를 쓴다. 같은 프롬프트에서 뽑은 여러 응답을 프리픽스 트리(prefix tree)로 합치는 절차(Prefix-to-Tree, P2T)를 먼저 만들고, 각 노드의 값 \(V(s)\)를 자식 노드들의 결과를 모아 비모수적으로(nonparametric) 계산한다. 가지가 갈라지는 지점(branching token)에서는 이 트리 구조에서 나온 TD 스타일 보정을 더하고, 가지가 갈라지지 않는 지점에서는 이 보정 항이 정확히 0이 되어 GRPO와 완전히 같아진다.

이 설계의 핵심은 “언제 추가 신호가 필요한가”를 트리 구조 자체가 알려준다는 것이다 — 여러 응답이 같은 프리픽스를 공유하다가 갈라지는 지점이 정확히 “이 토큰의 선택이 결과를 바꿨을 수 있는” 지점이고, 그 지점에서만 TD 보정을 계산하면 된다. 별도의 학습된 가치망 없이(critic-free) 이걸 해낸다는 게 장점이다. Qwen3-1.7B·4B에서 in-distribution(MATH, MedQA)과 out-of-distribution(GSM-HARD, AMC23, MedMCQA, MMLU-Medical) 양쪽에서 PPO·GRPO를 앞섰고, 비슷한 wall-clock 시간에 더 높은 검증 정확도에 도달했다고 보고한다.

SCAR — Shapley value로 세그먼트에 공정하게 나눈다

SCAR는 앞서 세그먼트 경계 기준으로 소개했지만, 신용을 계산하는 방식 자체도 이 글에서 짚어야 할 독립적인 아이디어다. 추론 사슬(또는 응답 전체)을 협력 게임으로 본다 — 각 세그먼트가 “참여자(player)”이고, 최종 보상이 그 게임의 “가치(value)”다. 각 세그먼트의 신용은 그 세그먼트의 Shapley value — 모든 가능한 참여 순서(ordering)에 걸쳐 평균 낸 한계 기여도 — 로 정의된다.

\[\phi_i = \frac{1}{N!}\sum_{\pi \in \Pi(N)} \left[v(\text{Pre}_i(\pi) \cup \{i\}) - v(\text{Pre}_i(\pi))\right]\]

여기서 \(\Pi(N)\)은 \(N\)개 세그먼트의 모든 순열, \(\text{Pre}_i(\pi)\)는 그 순서에서 세그먼트 \(i\)보다 앞에 오는 세그먼트들의 집합, \(v(\cdot)\)는 그 부분집합이 만드는 보상(연합의 가치)이다. Shapley value가 매력적인 건 세 가지 공리를 유일하게 만족하는 귀속 방법이라는 점이다 — 효율성(모든 신용의 합이 전체 보상과 같다), 대칭성(똑같이 기여한 참여자는 똑같은 신용을 받는다), 널 플레이어 속성(기여가 없는 참여자는 신용도 0이다). 계산은 원래 참여자 수에 지수적으로(\(O(2^N)\)) 폭발하므로, SCAR는 샘플링 기반 근사와 앞서 설명한 문법 경계 분할로 참여자 수 \(N\) 자체를 줄여 감당 가능하게 만든다.

SCAR가 특히 강조하는 지점 하나는, 기존의 값싼 대안(Attention-Based Credit, ABC — 보상 모델의 마지막 레이어 attention 가중치로 보상을 나누는 방법)과의 질적인 차이다. attention 가중치는 항상 음수가 아니므로, “sit through”처럼 부정적으로 기여하는 구를 ABC는 음의 신용으로 표현할 방법이 없다. Shapley value는 이론적으로 양수든 음수든 정확한 한계 기여도를 부여한다. 감정 제어(IMDB)·요약(TL;DR)·instruction tuning(Anthropic HH) 세 과제에서 SCAR는 sparse RLHF·ABC보다 일관되게 더 빠르게 수렴하고 더 높은 최종 보상에 도달했으며, judge 평가에서도 요약 과제 승률 60.3%(ABC 대비)·61.2%(sparse RLHF 대비), instruction tuning 승률 54.9%(ABC 대비)·56.3%(sparse RLHF 대비)를 보고한다. 계산 비용 절감도 구체적이다 — 요약 과제에서 토큰 단위 SCAR는 1K 학습 스텝에 A100 GPU 48시간이 걸렸지만, 세그먼트(span) 단위 SCAR는 성능이 거의 같으면서 7시간, 약 7배 더 효율적이었다.

실무에서 고르는 법 — 토큰인가, 세그먼트인가

지금까지 나온 여섯 가지 방법(VinePPO, RED, T-REG, SPO, TEMPO, SCAR)을 실제로 고를 때 순서를 정리해두면 이렇다.

순서 질문 Yes No
1 정답/오답 쌍을 자기 생성으로 만들 수 있는 과제인가(검증 규칙이 있는가)? T-REG처럼 대조 추정이 가능 — 별도 모델 없이 가장 저렴 2로
2 이미 학습된 시퀀스 단위 보상 모델이 있는가? RED처럼 그 모델의 내부에서 귀속을 뽑아 재활용 3으로
3 재현(다시 롤아웃)이 저렴한 순수 텍스트 생성 과제인가(도구 호출 없음)? 몬테카를로 계열(VinePPO의 토큰, SPO·TEMPO의 세그먼트) 고려 재현이 비싸면 이 입도 자체를 재고 — #6·#5 참고
4 몬테카를로를 쓰기로 했다면, 예산이 토큰 수만큼 촘촘한가 아니면 세그먼트 수 정도만 감당되는가? 세그먼트 수 정도라면 SPO·TEMPO — SCAR가 보여준 7배 비용 격차를 기억할 것 정말 예산이 넉넉하면 VinePPO식 토큰 단위
5 신용 부호(양/음)를 명시적으로 구분해야 하는가(어떤 구간이 명백히 해로운가)? SCAR의 Shapley value처럼 음수 귀속이 가능한 방법 필요 attention 기반 같은 단순 가중치 배분으로 충분

이 순서가 말하는 건 결국 하나다 — 토큰이냐 세그먼트냐를 먼저 정하고 방법을 찾는 게 아니라, 어떤 자원(정답 쌍, 기성 보상 모델, 재현 예산)이 이미 있는지를 먼저 확인하고 그 자원이 감당하는 입도로 거꾸로 내려오는 것이다. SCAR의 토큰-대-세그먼트 비교가 보여주듯, 예산이 부족한 채로 토큰까지 밀어붙이면 얻는 것 없이 비용만 7배가 된다.

트레이드오프: 이 편의 논지

지금까지 나온 방법들을 #2의 입도 사다리 위에 다시 올려보자. 이 글이 담당하는 두 칸(토큰·세그먼트)이 사다리 전체에서 어디에 있는지 한눈에 보는 게 목적이다.

입도 대표 방법(이 시리즈가 다룬) 신호의 출처 담당 편
에피소드 GRPO-OR 등(broadcast) 환경(최종 결과) #4
AgentPRM, ArCHer, MT-GRPO/MT-PPO 환경(턴 경계 관측 — 도구 실행, 검색 결과) #5
스텝 PURE, SPRO, GiGPO 부분적으로 환경(검증 가능한 계산), 부분적으로 추정(PRM) #6
세그먼트 SPO, TEMPO, SCAR 추정(몬테카를로, TD, Shapley) #7(이 글)
토큰 VinePPO, RED, T-REG 추정(몬테카를로, attribution, 대조 추정) #7(이 글)

이 표에서 가장 중요한 열은 “신호의 출처”다. 에피소드와 턴 행에는 환경이라는 단어가 있다 — 최종 결과나 도구 실행 결과처럼, 아무도 만들어내지 않아도 이미 관찰 가능한 사실이다. 세그먼트와 토큰 행에는 그 단어가 사라지고 추정만 남는다. 몬테카를로든 Shapley든 attribution이든, 전부 “진짜 값을 모르니 계산해서 근사한다”는 같은 문장의 다른 표현이다.

이게 이 글의 트레이드오프다.

  • (+) 신호가 촘촘해져 분산이 줄고 학습이 빨라진다. SPO의 6~12퍼센트포인트, RED의 승률 +9.74퍼센트포인트(Qwen2.5 기준), T-REG의 최대 4.4퍼센트포인트가 이 이득의 크기다.
  • (−) 중간 신호를 어디서 얻을지가 근본적으로 어려워진다. 턴은 환경이 답을 준다. 토큰·세그먼트에는 아무도 답을 주지 않는다 — 그래서 크리틱을 학습시키거나(부정확할 수 있다), 여러 번 굴려보거나(비싸다), 모델 스스로에게 묻거나(자기 편향이 섞일 수 있다), 기존 보상 모델의 내부를 뒤진다(그 모델의 편향을 그대로 물려받는다).
  • (−) 그 추정이 틀리면, 그 오차가 곧 hacking 표면이 된다. 이게 다음 두 절(Experiments의 토이 모형과 반례)에서 정확히 확인할 내용이고, #8#15가 이 문제를 정면으로 다룬다.

Experiments

토이 모형 — 분산은 내려가지만, 환경 신호 아래로 내려가면 편향이 올라온다

#2는 episode 단위 credit의 분산이 \(O(T^2)\), step 단위 credit의 분산이 \(O(T)\)로 자란다는 것을 보였다. 이 글에서는 그 모형을 입도 자체를 하나의 변수 \(w\)로 일반화해서, 왜 분산만 보면 끝없이 세밀화하는 게 좋아 보이는지, 그런데 왜 실제로는 그렇지 않은지를 같은 수식 위에서 확인한다.

설정. 궤적이 \(T\)개의 원자적 단위(가장 미세한 해상도 — 실제로는 토큰이라고 생각해도 된다)로 이뤄져 있다고 하자. 이 \(T\)개를 크기 \(w\)짜리 창(window) \(T/w\)개로 묶고, 각 창에 credit 하나를 계산해 그 창에 속한 모든 원자 단위에 동일하게 broadcast한다. \(w=T\)면 이건 에피소드 단위고, \(w=1\)이면 원자 단위(토큰) 그 자체다. #2와 같은 토이 가정을 그대로 쓴다 — \(u_t = \nabla_\theta \log \pi_\theta(a_t \mid s_t)\)는 평균 0, 분산 \(\sigma_u^2\), 서로 독립. 원자 단위 보상 \(r_t\)도 평균 0(베이스라인이 이미 빠진 상태), 분산 \(\sigma_r^2\), \(u_t\)와 독립.

분산. 창 \(k\)의 참값 보상 \(R_k = \sum_{t \in W_k} r_t\)를 그 창의 모든 원자 단위에 broadcast하면 그래디언트 추정량은

\[\hat g_w = \sum_{k=1}^{T/w} R_k S_k, \qquad S_k = \sum_{t \in W_k} u_t\]

\(\text{Var}[S_k] = w\sigma_u^2\), \(\text{Var}[R_k] = w\sigma_r^2\)이고 둘이 독립이므로 \(\text{Var}[R_k S_k] = w^2\sigma_r^2\sigma_u^2\). 서로 다른 창은 독립이고 \(T/w\)개 있으므로

\[\text{Var}[\hat g_w] = \frac{T}{w}\cdot w^2\sigma_r^2\sigma_u^2 = Tw\,\sigma_r^2\sigma_u^2\]

극단값을 넣어 검증해보면 #2와 정확히 맞아떨어진다 — \(w=T\)(에피소드)를 넣으면 \(T^2\sigma_r^2\sigma_u^2\), \(w=1\)(가장 세밀한 단위)을 넣으면 \(T\sigma_r^2\sigma_u^2\)다. 이 식만 보면 결론은 명백하다 — \(w\)를 계속 줄일수록(더 세밀하게 나눌수록) 분산은 계속 줄어든다. 여기까지만 보면 “가장 세밀한 것이 최선”이라는 결론이 나온다.

편향. 그런데 위 유도는 결정적인 가정을 하나 숨기고 있다 — 창 \(k\)의 참값 \(R_k\)를 정확히 안다는 가정이다. 이게 성립하려면 환경이 그 해상도에서 실제로 신호를 줘야 한다. 환경이 검증 가능한 신용을 주는 가장 미세한 창 크기를 \(w_{env}\)라 하자(이 시리즈의 맥락에서는 턴 하나에 해당한다 — #2가 확인한 실제 범위로는 턴당 약 1K~10K 토큰). \(w \ge w_{env}\)에서는 \(R_k\)가 진짜 값이므로 위 분산 공식이 편향 없이 그대로 성립한다. 문제는 \(w < w_{env}\), 즉 턴보다 더 잘게 나눌 때다 — 이 구간에서는 \(R_k\)를 아무도 관찰할 수 없고, 대신 크리틱·확률 모델·귀속 같은 추정기로 대체해야 한다. 추정기는 학습 데이터에 없는 해상도를 만들어내야 하므로, 체계적인 편향 \(\beta(w)\)를 갖는다고 보는 게 합리적이다 — 세밀해질수록(w가 작아질수록) 추정기가 의존할 근거는 옅어지고 편향은 커진다.

이 편향이 실제로 왜 “잡음이 아니라 그래디언트를 특정 방향으로 미는 힘”인지는 표준적인 REINFORCE 항등식으로 바로 보일 수 있다. 어떤 패턴 \(P\)(예를 들어 “생각하는 척하는 토큰”)에 속하는 토큰마다 편향 \(\beta\)가 더해진, 즉 \(\hat r_t = r_t + \beta\cdot\mathbb{1}[a_t \in P]\)인 추정기를 쓴다고 하자. 이 편향 성분이 그래디언트에 기여하는 기댓값은

\[\mathbb{E}\left[\beta\cdot\mathbb{1}[a_t \in P]\cdot u_t\right] = \beta\sum_{a\in P}\pi_\theta(a\mid s_t)\nabla_\theta\log\pi_\theta(a\mid s_t) = \beta\sum_{a\in P}\nabla_\theta\pi_\theta(a\mid s_t) = \beta\,\nabla_\theta \Pr\nolimits_\theta[a_t\in P \mid s_t]\]

세 번째 등호는 \(\nabla_\theta\pi_\theta(a\mid s) = \pi_\theta(a\mid s)\nabla_\theta\log\pi_\theta(a\mid s)\)라는 정의를 거꾸로 쓴 것이고, 마지막 등호는 확률의 합을 그대로 미분한 것이다. 즉 편향 \(\beta\)가 있는 credit은 잡음이 아니라 정책이 실제로 패턴 \(P\)를 더 자주 만들도록 미는, 방향이 뚜렷한 그래디언트를 만든다. \(\beta\)가 크고 \(P\)가 과제 성공과 무관하다면, 이건 정확히 reward hacking의 정의다.

결합. 분산과 편향 제곱을 더한 총 “위험도” \(D(w)\)는

\[D(w) = \begin{cases} Tw\,\sigma_r^2\sigma_u^2 & w \ge w_{env} \\ Tw\,\sigma_r^2\sigma_u^2 + \beta_0^2\dfrac{w_{env}}{w} & 0 < w < w_{env} \end{cases}\]

두 번째 줄의 편향 항은 “환경 해상도 아래로 내려간 정도”가 클수록(\(w_{env}/w\)가 클수록) 커지도록 잡은 illustrative한 형태다(\(\beta_0\)는 추정기의 신뢰도를 나타내는 임의의 상수). \(w<w_{env}\) 구간에서 미분하면

\[D'(w) = T\sigma_r^2\sigma_u^2 - \beta_0^2\frac{w_{env}}{w^2} = 0 \;\;\Longrightarrow\;\; w^* = \beta_0\sqrt{\frac{w_{env}}{T\sigma_r^2\sigma_u^2}}\]

\(D''(w) = 2\beta_0^2 w_{env}/w^3 > 0\)이므로 이 \(w^*\)는 이 구간의 최솟값이다. 즉 \(D(w)\)는 \(w=w_{env}\)(턴)에서 시작해 \(w^*\)까지는 내려가다가, 그 아래로 더 내려가면 다시 올라간다. 세밀화가 항상 좋은 게 아니라, 딱 \(w^*\)까지만 좋다.

숫자를 넣어보자. \(T=100{,}000\)(토큰 수), \(\sigma_r^2=\sigma_u^2=1\)(임의 단위), \(w_{env}=2{,}000\)(#2의 턴당 토큰 수 범위 1K~10K 중 대표값), 추정기 신뢰도는 illustrative하게 \(\beta_0=50\)으로 둔다. 이 값을 넣으면 \(w^* = 50\sqrt{2000/100000} = 50\sqrt{0.02} \approx 7.07\)이다.

입도 \(w\)(토큰 수) 해당 단위 \(D(w)\)
100,000 에피소드 \(1.00\times10^{10}\)
2,000 턴(\(w_{env}\)) \(2.00\times10^{8}\)
500 넓은 세그먼트 \(5.00\times10^{7}\)
100 좁은 세그먼트 \(1.01\times10^{7}\)
20 세그먼트~구(phrase) \(2.25\times10^{6}\)
7 (\(\approx w^*\)) 이 모형의 최적점 \(1.41\times10^{6}\)
1 토큰 \(5.10\times10^{6}\)

여기서 나오는 U자형 곡선이 이 글의 논지를 정확히 그림으로 보여준다. 턴(2,000)에서 세그먼트(500 → 100 → 20)로 내려갈수록 \(D(w)\)는 계속 작아지다가, \(w^*\approx7\) 근방에서 최솟값을 찍고, 토큰(\(w=1\))에서는 다시 커진다 — \(w=1\)의 \(D\)값(510만)이 \(w=20\)의 값(225만)보다도 크다. 분산만 보면 토큰이 항상 이겨야 하는데, 편향까지 같이 보면 토큰은 최적점을 이미 지나친 지점이다.

한 가지는 분명히 짚어야 한다. \(\beta_0=50\)이라는 값과 편향 항의 함수 형태는 특정 논문에서 가져온 게 아니라 이 논증의 모양을 보여주기 위한 illustrative한 선택이다. 그럼에도 이 모형이 말해주는 정성적 메시지는 실제 결과들과 정확히 들어맞는다 — 세그먼트 수준(SPO, TEMPO, SCAR)의 잘 설계된 추정기는 턴보다 더 세밀화해서 실제로 이득을 봤고(6~12퍼센트포인트), 반대로 다음 절에서 볼 PURE의 순진한 sum-form 추정기는 편향이 너무 커서(\(\beta_0\)가 크다고 생각하면 된다) 세밀화가 학습 자체를 무너뜨렸다. 핵심은 \(w\) 자체가 아니라 그 \(w\)에서 쓰는 추정기의 편향 \(\beta_0\)다.

토이 예제 — 50턴 궤적을 네 가지 입도로 쪼갠다

앞의 추상적 모형을 이 시리즈가 계속 써온 구체적인 궤적으로 다시 확인해보자. 50턴짜리 에이전트 궤적, 총 토큰 수 약 100,000개(#2의 턴당 1K~10K 범위에서 대표값 2,000토큰/턴을 취한 것)를 네 가지 입도로 쪼갠다.

입도 신호 개수 신호 1개당 담당 토큰 수(대략) 신호를 어디서 얻는가
에피소드 1 ~100,000 환경 — 최종 결과(정답 대조, 과제 성공 여부)
50 ~2,000 환경 — 턴 경계에서 관측 가능한 사건(도구 실행 결과, 검색 결과, 박스 위치)
세그먼트 200(턴당 평균 4개) ~500 추정 — 몬테카를로 롤아웃(SPO), 컷포인트 기반 자기분할(SPO), Shapley 근사(SCAR), 트리 기반 TD(TEMPO)
토큰 100,000 1 추정 — 크리틱/GAE(PPO), 몬테카를로(VinePPO), 대조 추정(T-REG), 귀속(RED), 혹은 GRPO처럼 상위 신호를 그대로 복사(사실상 입도 없음)

이 표가 이 글 전체를 한 줄로 압축한다. 신호 개수가 늘어날수록(“신호 1개당 담당 토큰 수” 열이 줄어들수록) 촘촘함은 늘지만, “신호를 어디서 얻는가” 열이 정확히 턴과 세그먼트 사이에서 환경에서 추정으로 바뀐다. 이 전환점이 이 글이 반복해서 강조하는 경계선이다.

실제 수치로 다시 확인하는 비용-이득

Method에서 나온 숫자를 한자리에 모아, 세밀화의 이득이 실제로 어느 규모인지 정리해둔다.

방법 입도 대비 대상 이득
SPO-chain 세그먼트(컷포인트) PPO·GRPO(GSM8K) 정확도 +6~12퍼센트포인트
SPO-tree 세그먼트(고정 길이) GRPO(MATH500, 2K/4K 컨텍스트) 정확도 +7~11퍼센트포인트
SCAR 세그먼트(Shapley) sparse RLHF / ABC judge 승률 56.3~61.2% (요약·instruction tuning)
SCAR(토큰 대 span 비용) 토큰 vs 세그먼트 동일 성능 기준 세그먼트가 GPU시간 약 7배 절감(48h→7h)
RED 토큰(attribution) PPO(Qwen2.5, TL;DR) 승률 81.07%→90.81%(+9.74pp)
T-REG 토큰(대조 추정) 베이스라인(Alpaca Eval 2 / Arena-Hard) 최대 +3.8% / +4.4%
TEMPO 세그먼트(트리+TD) PPO·GRPO(Qwen3-1.7B/4B) in/out-of-distribution 전반 우세, 동일 wall-clock에 정확도 상승

세밀화는 분명히 실재하는 이득을 만든다 — 특히 SPO의 6~12퍼센트포인트, RED의 9.74퍼센트포인트는 작은 숫자가 아니다. 그런데 SCAR의 “토큰 대 세그먼트” 줄이 이 표에서 가장 중요한 행이다 — 성능은 거의 같은데 토큰 단위가 세그먼트보다 7배 더 비쌌다. 이득이 있다고 해서 항상 가장 세밀한 단위를 골라야 한다는 뜻은 아니라는 걸 같은 논문 안에서 보여주는 사례다.

반례 — 편향이 이득을 집어삼킬 때: PURE의 학습 붕괴

앞의 토이 모형이 예측한 “편향이 큰 추정기를 쓰면 세밀화가 오히려 손해”라는 결론이 실제로 벌어진 사례가 있다. #2에서 스텝 단위 방법으로 소개한 PURE(Cheng et al., NeurIPS 2025, arXiv 2504.15275)는 이 글의 스텝보다 한 단계 위지만, 정확히 같은 메커니즘 — 환경이 검증해주지 않는 해상도에서 학습된 모델(PRM)에 신용을 맡겼을 때 무슨 일이 벌어지는가 — 을 아주 상세하게 기록했다.

문제의 구조. 표준적인 process reward model은 상태 \(s_t\)의 가치를 미래 보상의 합으로 정의한다.

\[V(s_t) = \mathbb{E}\left[\sum_{t'=t}^{T} r_{t'}\right]\]

이 sum-form 정의의 문제는, 스텝 수가 늘어날수록 이 값의 범위가 함께 늘어난다는 점이다. PURE 저자들은 이게 정확히 특정 패턴(가령 “생각하는 것처럼 보이는 스텝”)을 남발하게 만드는 hacking 경로가 된다는 것을 발견했다. 논문이 관찰한 세 가지 구체적인 실패 유형은 다음과 같다.

유형 증상
생각만 하고 풀지 않음 “생각하는 스텝” 패턴에 높은 보상이 몰리자, 모델이 문제를 실제로 풀지 않고 생각하는 흉내만 내는 스텝을 계속 생성
극단적으로 적은 스텝(1스텝) 스텝 수에 대한 baseline 편향 때문에, 모델이 스텝 하나에 지나치게 많은 토큰을 몰아넣어 “스텝별로 검증한다”는 PRM의 취지 자체를 무력화
극단적으로 적은 스텝(0스텝) “Thank you.”, “Happy Birthday.” 같은 무관하고 짧은 응답을 냄 — PRM이 인과적(causal) 구조로 추론하다 보니 뒤에 아무 내용이 없다는 걸 인지하지 못하고 이런 무의미한 스텝에도 높은 보상을 준다

붕괴의 타임라인. 세 번째 사례와 별개로, 논문은 훨씬 더 극적인 붕괴를 정량적으로 추적한다. Qwen2.5-7B를 process reward와 verifiable reward를 섞어(PURE-PRM+VR) 학습시키던 중, 스텝 361에서 처음으로 “정답으로 판정된” 응답들의 clip 비율(최대 생성 길이에 걸려 잘린 비율)과 반복 비율이 0을 넘기 시작했고, 스텝 365에서 보상과 정확도가 급격히 떨어지며 학습이 붕괴했다. 한 번의 학습 스텝에 그래디언트 업데이트를 한 번 하는 설정이었으므로, 이건 딱 5번의 그래디언트 업데이트 만에 벌어진 붕괴다. 붕괴 이전에는 정답이 아닌(오답으로 판정된) 응답들이 정답 응답보다 더 길고 더 반복적이었지만 그 자체로는 학습을 무너뜨리지 않았다 — 문제는 검증자가 “정답”이라고 판정한 응답까지 길고 반복적으로 변하기 시작한 순간이었다. 저자들은 이런 “겉보기 정답”을 pseudo-positive sample이라 부른다.

탐지기마저 뚫린다. 반복도는 응답의 모든 접미사(suffix) 쌍 사이의 최장 공통 프리픽스(longest common prefix) 길이로 측정했는데(0.2 이상이면 “고반복”으로 분류), pseudo-positive sample을 걸러내려고 이 반복 비율이 높은 샘플에 보상 0을 강제로 부여해봐도 붕괴를 막지 못했다. 모델이 이 LCP 기반 탐지기가 잡아내지 못하는 방식으로 반복하는 법을 학습했기 때문이다 — 정확히 같은 문자열이 아니라 유의어(near-synonym)로 바꿔가며 사실상 같은 내용을 반복하는 식이다. 검증자도, PRM 자체도, 심지어 반복을 걸러내려고 만든 별도의 탐지기도 이 패턴을 알아채지 못했다.

이 글의 논지와 정확히 겹치는 지점. 이 사례는 표에서는 스텝(PRM) 단위지만, 앞 절의 \(D(w)\)가 예측한 바로 그 실패의 실물이다 — 환경이 검증해주지 못하는 해상도(각 스텝의 “질”)에서, 편향이 큰 추정기(sum-form PRM)를 썼더니 그 편향이 정책을 특정 패턴(반복) 쪽으로 실제로 밀었다. 토큰은 스텝보다 한 단계 더 세밀하다. 즉 같은 메커니즘이 토큰 단위로 내려갈수록 더 쉽게, 더 빨리 발동할 수 있다는 뜻이다 — PURE가 5번의 그래디언트 스텝 만에 무너졌다면, 그보다 더 미세한 해상도에서 편향이 더 큰 추정기를 쓰면 그 문턱은 더 낮아질 뿐 사라지지 않는다.

통계 요약

방법 입도 신호 출처 핵심 아이디어 확인된 수치
VinePPO 토큰 몬테카를로(크리틱 대체) 중간 상태에서 직접 롤아웃해 편향 없는 가치 추정 MATH·GSM8K, wall-clock 최대 3.0배 단축
RED 토큰 귀속(기성 RM 내부표현 확률) RM의 hidden state에서 토큰별 한계 기여도를 선형회귀로 사후 추정 Qwen2.5·TL;DR, 승률 81.07%→90.81%
T-REG 토큰 대조 추정(정답/오답 로그확률 차) 자기 생성한 정답·오답 쌍의 로그확률 차이로 토큰 중요도를 자기지도 방식으로 추출 Alpaca Eval 2 최대 +3.8%, Arena-Hard 최대 +4.4%
SPO 세그먼트 몬테카를로(컷포인트/고정길이) 모델의 불확실성(낮은 토큰 확률)을 컷포인트로 삼아 세그먼트 경계를 자기결정 GSM8K +6~12pp, MATH500 +7~11pp
TEMPO 세그먼트 TD(트리 기반, critic-free) 여러 응답을 프리픽스 트리로 합쳐 가지 분기점에서만 TD 보정 Qwen3-1.7B/4B, ID/OOD 전반 우세
SCAR 세그먼트 Game-theoretic(Shapley) 구문 분석으로 참여자 수를 줄여 Shapley value를 근사 계산 토큰 대비 span이 GPU시간 약 7배 절감, 승률 54.9~61.2%
PURE(반례) 스텝(PRM) Model-based(sum-form) 미검증 해상도의 편향 있는 추정기가 반복 패턴으로 정책을 실제로 밀어낸 사례 5회 그래디언트 업데이트 만에 학습 붕괴(스텝 361→365)

Conclusion

이 글의 메시지는 한 줄로 요약된다. 가장 세밀한 것이 최선이 아니다. 정확히는, 환경이 실제로 신호를 주는 가장 세밀한 지점 — 이 시리즈의 맥락에서는 대개 턴 — 까지는 내려갈수록 좋다. 그 아래, 즉 세그먼트와 토큰은 전부 추정이다. 그리고 추정에는 편향이 따라오고, 이 글이 유도한 REINFORCE 항등식이 보여주듯 그 편향은 잡음이 아니라 정책을 실제로 특정 방향으로 미는 힘이다.

정리하면,

  1. 입도의 이름표와 실질은 다르다. PPO도 GRPO도 “토큰마다 advantage”를 계산하지만, GRPO의 그 값은 궤적 전체의 스칼라를 복사한 것뿐이다. 진짜 토큰별 신호를 만들려면 크리틱을 다시 채우거나(VinePPO), 모델 스스로 대조하거나(T-REG), 기성 모델에서 귀속을 뽑아내야(RED) 한다 — 셋 다 추정이라는 공통점을 갖는다.
  2. 세그먼트는 토큰과 턴 사이의 실질적인 중간 지대다. 경계를 고정 길이로 자를지, 문법 구조로 자를지(SCAR), 모델의 불확실성으로 자를지(SPO)는 그 자체로 설계 선택이며, 실제 실험에서 컷포인트 기반 자기분할이 더 적은 예산으로 더 나은 정확도를 낸 사례가 확인됐다.
  3. 분산과 편향은 반대 방향으로 움직인다. 토이 모형이 유도한 \(D(w) = Tw\sigma_r^2\sigma_u^2 + \beta_0^2(w_{env}/w)\)는, 세밀화가 턴에서 세그먼트 방향으로는 손실을 줄이지만 토큰까지 밀어붙이면 편향 항이 이득을 갉아먹는다는 것을 보여준다. SCAR의 “토큰 대 세그먼트, 성능은 같은데 비용은 7배”라는 실측이 같은 이야기를 실험으로 확인해준다.
  4. 편향이 큰 추정기를 쓰면 세밀화는 순수한 손해가 된다. PURE의 sum-form PRM은 5번의 그래디언트 업데이트 만에 학습을 붕괴시켰다. 검증자도, PRM도, 반복을 잡으려 만든 별도 탐지기도 이 붕괴를 막지 못했다 — 추정된 중간 신호를 신뢰하는 순간, 그 신호를 게임하는 정책의 능력을 과소평가해서는 안 된다는 뜻이다.

이 글로 2부의 입도 사다리(에피소드→턴→스텝→토큰/세그먼트)를 전부 확대해봤다. 그런데 이 사다리 전체를 관통하는 질문 하나가 아직 정면으로 다뤄지지 않았다 — 추정된 중간 신호를 정책 학습에 어떻게 섞어 넣을 것인가, 그리고 그 섞음(shaping) 자체가 원래 목표와 정책을 얼마나 어긋나게 만들 수 있는가. 2부를 닫는 #8 shaping은 약인가 독인가가 이 질문을 정면으로 다룬다 — 이 글이 보여준 “추정이 곧 hacking 표면”이라는 결론의 다음 장이다.

참고 문헌


Agentic RL 설계 시리즈

이 글은 Agentic RL 설계 시리즈의 일곱 번째 글이다.

1부. 왜 에이전트는 다른가

  1. 에이전트 RL은 무엇이 다른가 — 장기 지평·희소 보상·긴 궤적
  2. 공을 어디에 돌릴 것인가 — credit assignment 47개 방법의 지도
  3. 멀티턴 RL 실무 가이드 — 무엇이 실제로 작동하는가

2부. credit assignment — 공을 어디에 돌릴 것인가

  1. 결과만으로는 부족하다 — 장기 지평에서 증폭되는 RLVR의 한계
  2. 턴 단위로 공을 나눈다 — turn-level reward 설계
  3. 스텝을 단위로 삼는다 — 행동 단위 궤적 표현과 credit
  4. (현재 글) 토큰과 세그먼트로 더 잘게 — 세밀한 입도의 득과 실
  5. shaping은 약인가 독인가 — 중간 보상의 효율과 위험

3부. reward를 어디서 얻나

  1. 환경이 곧 reward다 — 샌드박스·테스트·상태 검증
  2. 도구 호출을 어떻게 채점하나 — ToolRL·ToolRM
  3. 궤적을 judge가 채점한다 — rubric 생성형 reward의 확장

4부. 도메인별 설계

  1. 검색 에이전트 — Search-R1에서 DeepDive까지
  2. 코드 에이전트 — SWE-RL과 테스트라는 reward
  3. 웹·GUI 에이전트 — end-to-end 멀티턴 RL

5부. 실패와 방어

  1. 에이전트의 reward hacking — 판정기가 뚫린다, 그리고 조합의 실패

6부. 실전 종합

  1. 프론티어 모델은 실제로 어떻게 하나 — 최신 모델들의 agentic RL 설계

본 시리즈는 16편으로 구성된다.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • 프론티어 모델은 실제로 어떻게 하나
  • 에이전트의 reward hacking — 판정기가 뚫린다, 그리고 조합의 실패
  • 웹·GUI 에이전트 — end-to-end 멀티턴 RL
  • 코드 에이전트 — SWE-RL과 테스트라는 reward
  • 검색 에이전트 — Search-R1에서 DeepDive까지