학습 query를 단 하나로 줄여도 OPD는 수백 step 동안 계속 나아지고 full-data OPD 이득의 대부분을 회복한다. 이유는 하나의 query가 이미 full-data가 방문하는 state의 71.5%를 덮기 때문이며, 정작 느린 것은 데이터가 아니라 학생이 teacher 감독을 흡수하는 속도다. OPD는 data-overfed, algorithm-starved다.
OPD는 학생이 생성한 rollout 위에서 teacher가 모든 prefix의 다음 token 분포를 제공하는, on-policy state 방문과 dense 감독의 결합이다. Qwen3·MiMo·GLM-5·DeepSeek-V4·Kimi K3가 모두 쓴다. 선행 연구는 OPD의 dynamics를 알고리즘 관점에서 설명했지만, 학습 데이터가 OPD를 어떻게 형성하는지는 아무도 묻지 않았다. 이 논문은 RLVR의 one-shot 실험을 OPD로 가져와 query 하나로 학습하는 극단 설정에서 데이터의 역할을 분리한다.
query 하나로 수백 step 계속 개선되고, 4개 task 영역·3개 model family에서 full-data 이득의 대부분을 회복한다. 학생이 끝내 못 푸는 query에서도 그렇다.
query는 rollout이 도달하는 state를 통해 학생에게 작용한다. state coverage로 재면 query 1개가 71.5%, 의미적으로 다른 16개가 98.9%를 덮고 full-data와 같아진다.
매 update가 남은 teacher–student 거리에서 흡수하는 비율(absorption rate)은 학습 내내 떨어지고, query 1개든 17K든 같은 방식으로 떨어진다. 고정된 state 집합도 수백 step 걸려 흡수한다.
다중 teacher OPD도 도메인당 16 query면 충분하고, 내용 없는 템플릿이나 WildChat 잡담 query도 실제 query에 근접한다. 같은 query에서 OPD 이득이 RLVR의 2배 이상.


| 질문 | 실험 | 결과 |
|---|---|---|
| query 하나로 되나 | R1-Distill-1.5B ← JustRL-1.5B, DAPO-Math-17K 중 1개 | step 300에 68.5 vs full-data 69.8(이득의 87%), step 1000에 68.4 vs 72.1(72%) |
| 다른 family·도메인도 | Llama-3B·OLMo-7B 수학, 코드·IF·agentic | 77.1→85.5, 28.2→40.2, 70.8→82.4. 코드 73%·IF 66%·agentic 64% gap 회복 |
| 왜 이렇게 많이 | state coverage ($K$=200 cluster) | 1 query 71.5%(step 100에 65.9%), 16 diverse query 98.9%로 full-data와 성능 일치 |
| 왜 이렇게 오래 | distance $d_t$·absorption rate $v_t$, query 1·4·16·17K | 네 run 모두 step 300까지 거리 78–84% 제거, 같은 방식으로 느려짐. 고정 state로도 200 step 개선 |
| MOPD에서도 | 수학·코드·IF 3 teacher, 1·16·full | 16-shot 52.9 vs full 52.8 (101%). 도메인별 93·136·109% |
| 내용이 없어도 | 빈 <think> 템플릿·WildChat | 실제 query(59.1→69.8)와 약 1점 차, 1/3–1/2 token으로 도달 |
| RLVR과 비교 | 같은 query, 1000 step | OPD 검증 이득이 RLVR의 2배 이상. RLVR은 query가 풀리면 advantage 소멸 |
State는 autoregressive context $s_i=(x,y_{<i})$다. Full-distribution OPD는 방문 state에서 per-token KL을 최소화한다.
실제로는 per-token advantage로 추정한다. 학생이 낸 token에서만 평가하는 sampled-token 형태와, 학생 top-$k$ token을 학생 확률로 가중하는 top-$k$ 형태가 있다.
이 advantage는 국소적(trajectory 결과가 아니라 state $s$의 예측 문제에만 의존)이고 dense(모든 방문 state에서 분포 신호)하다.
| 지표 | 정의 | 읽는 법 |
|---|---|---|
| Gap recovery | $(M_t-M_0)/(M_T-M_0)$ | 0%는 개선 없음, 100%는 teacher 도달 |
| Full-data recovery | $(M_t-M_0)/(M_F-M_0)$, $M_F$는 같은 step의 full-data OPD 점수 | 100%면 줄인 query 집합이 full-data와 같은 이득 |
| Top-$k$ overlap ratio | 학생·teacher top-$k$ 집합의 겹침 비율 (Part I과 동일) | 고확률 token 합의 |
| Overlap-token advantage | 공유 token 위 teacher–student log-prob 차이의 학생 확률 가중 평균 | 이미 높게 두는 token에서 남은 거리 |
설정. 수학·코드 생성·instruction following·agentic tool use 4개 영역, 각 영역에서 같은 family의 post-trained teacher를 짝짓는다.
| 영역 | 학생 | Teacher | 학습 데이터 | 평가 |
|---|---|---|---|---|
| 수학 | R1-Distill-1.5B | JustRL-1.5B | DAPO-Math-17K | MATH-500·AMC 2023·AIME 2025, avg@16 |
| 수학 (Llama) | Llama-3.2-3B-Instruct | GT-Llama-3B-Math | DAPO-Math-17K | MATH-500·AMC 2023 |
| 수학 (OLMo) | OLMo-3-7B-Instruct-DPO | OLMo-3-7B-Instruct | DAPO-Math-17K | MATH-500·AMC 2023 |
| 코드 | R1-Distill-1.5B | Nemotron-1.5B | Open-R1 Codeforces | LiveCodeBench v6, avg@3 |
| Instruction following | R1-Distill-1.5B | UltraData-IF-1.5B | UltraData-SFT-2605 subset | Multi-IF 8개 언어 평균 |
| Agentic tool use | Qwen2.5-Coder-1.5B-Instruct | Hammer-1.5B | xLAM-function-calling-60K | BFCL v3, avg@8 |
수학 one-shot query는 학생의 사전 pass rate로 쉬움(8/8)·중간(4/8)·어려움(0/8) 세 개를 고른다. 다른 영역은 무작위 추출. veRL 구현, batch 64 rollout, AdamW lr $10^{-6}$, temperature 1.0. 수학 run은 top-$k$($k=16$) advantage, 나머지는 sampled-token advantage.

세 benchmark 평균에서 step 300에 one-shot 68.5 vs full-data 69.8, teacher–student 격차의 69%, full-data 이득의 87%를 회복한다. step 300 이후 두 곡선은 약 3점 폭 안에 머물며 회복 비율은 step 1000까지 62–89%를 오간다. step 1000에서 68.4 vs 72.1, 72% 회복. dynamics도 같다. top-16 overlap ratio가 full-data 수준까지 오르고, overlap-token advantage가 0에 접근하며, entropy gap이 거의 닫힌다.



쉬움·중간·어려움 query 모두에서 작동한다. 쉬운 query는 거의 매 step 풀리고, 중간은 학습 중 대부분 풀리게 되며, 어려운 query는 끝내 한 번도 풀리지 않는데도 이득이 난다. 응답 길이 상한을 줄이거나 rollout temperature를 낮춰도 one-shot 이득은 유지된다.
OPD는 query가 아니라 state로 학습한다. query $x$와 응답 $y$는 prefix마다 state $s=(x,y_{<i})$를 만든다. 가설은 하나의 query에서 나온 rollout이 full-data OPD가 방문하는 state 공간의 대부분에 이미 닿는다는 것이다.
방문 state의 개수가 아니라 폭을 잰다. 생성된 token마다 새 prefix가 생기므로 개수는 의미가 없다.
각 state를 teacher signature $h_T(s)$, 즉 teacher 마지막 layer의 마지막 token hidden vector로 나타낸다
full-data OPD가 DAPO-Math-17K 전체 run에서 방문한 state를 rollout당 8개 위치로 모은다. 5개 중 2개 rollout은 held-out으로 빼 "full data (held-out)" 설정으로 따로 잰다
PCA 후 $K$-means로 $K=200$ cluster. coverage는 어떤 설정의 rollout이 닿은 cluster 비율 $\mathrm{Cov}(S)=|\{c(s):s\in S\}|/K$
Coverage는 어느 cluster에 닿았는지를 기록하지 방문 빈도는 아니다. 같은 300 step 예산에서 full data (held-out)가 100%에 닿으므로 척도의 꼭대기는 구성이 보장하는 최대가 아니라 full-data OPD가 실제 도달하는 수준이다. $K$·기준 집합·state 위치를 바꿔도 비교는 안정적이다(Appendix B.1).

중간 난이도 query의 one-shot OPD는 step 300에 71.5% coverage에 이른다. 대부분이 일찍 나타난다. step 100에 65.9%, 이후 200 step 동안 5.6%p만 추가된다. 같은 query에서 반복 rollout이 새 cluster를 계속 발견하지만 급격히 줄어드는 속도로. 같은 run의 검증 정확도는 59.1 → 66.9(full-data는 70.8). one-shot OPD는 query 수는 작지만 만들어 내는 감독은 넓다.
State coverage가 실제 원인인지 확인하기 위해 도달 state 수만 바꾸는 ablation을 두 방향에서 한다.
| 방향 | 조작 | 통제 | 결과 |
|---|---|---|---|
| 응답 다양성 (off-policy) | 초기 학생에서 one-shot query의 trajectory 64개를 한 번 뽑아 고정. 1·4·16·64개 중첩 부분집합을 batch 64가 되도록 반복 | query·batch·최적화 예산 동일, 달라지는 것은 distinct trajectory 수뿐 | 검증 정확도가 trajectory 수에 단조 증가. 추가된 것은 state뿐이다 |
| Query 다양성 (on-policy) | 중간 query에서 출발해 DAPO-Math-17K를 BGE-M3로 clustering, cluster당 대표 하나씩 4·16-shot 집합 구성 | 수학 설정 동일 | 의미적으로 다른 query가 늘수록 정확도 상승, 16개에서 full-data OPD와 일치. coverage도 71.5% → 98.9%로 같은 지점에서 일치 |

두 통제 실험(Appendix B.2)이 개수와 다양성을 분리한다. 개수를 16으로 고정했을 때 16개 의미 cluster에서 뽑은 query가 한 cluster에서 뽑은 것보다 coverage와 정확도를 크게 올리고, 고정된 query 집합의 학습 순서는 무관하다. 추가 query의 가치는 새 state에 닿는가로 결정된다.
데이터 쪽이 "왜 이렇게 많이"를 설명했다면, "왜 이렇게 오래"는 알고리즘 쪽 질문이다. 정렬 상태는 두 양으로 기술한다.
$d_t$는 step $t$에 학생이 방문한 위치에서 teacher–student 불일치의 평균 크기(distance), $v_t$는 한 update가 그 거리 중 흡수하는 비율(absorption rate)이다. gradient clipping이 풀리는 step 30부터 추적하고, run마다 step 30 대비 남은 거리 $d_t/d_{30}$로 보고한다. 후반의 $v_t$는 기하 창 $[t/1.4,\,1.4t]$로 추정한다.

Query 1·4·16·17K 전체로 학습한 네 run에서 distance는 run 내내 떨어진다. 학생이 멈추는 것이 아니다. 떨어지는 것은 absorption rate다. 로그 축에서 일정한 rate라면 직선일 텐데 네 곡선 모두 점점 평평해진다. 매 update가 직전보다 남은 것의 더 작은 비율을 흡수하므로 run이 수십이 아니라 수백 step 걸린다.
네 run 각각이 step 300까지 step-30 거리의 78–84%를 제거하고, 학습 중 비슷한 배율로 느려진다. query 하나가 정렬을 더 빠르게도 느리게도 만들지 않는다. 속도는 학습 집합이 아니라 OPD의 속성이다. learning rate는 걸리는 step 수를 바꾸지만 거리가 떨어지는 방식은 바꾸지 않는다(Appendix C.2).
On-policy 학습은 학생이 변하면서 계속 새 state를 만든다. "run이 오래가는 것은 새 state 공급이 이어지기 때문"이라는 해석을 검증하기 위해 두 one-shot run을 비교한다. always-on-policy는 매 step 현재 학생에서 rollout을 새로 뽑고, always-off-policy는 초기 학생에서 한 번 뽑은 trajectory 64개를 매 update 재사용해 학습 state를 고정한다.
이득이 첫 몇 update가 아니라 수백 step에 걸쳐 쌓인다
고정된 state 집합에서도 정렬은 수백 step에 걸쳐 진행된다
고정된 state만으로도 OPD run이 수백 step 이어진다

현대 pipeline은 여러 도메인을 한 run에서 학습하고 query를 도메인 teacher로 routing하는 multi-teacher OPD(MOPD)를 쓴다. 같은 query 다양성 결과가 옮겨 가는가.
설정. R1-Distill-1.5B 학생 하나를 수학(JustRL-1.5B)·코드(Nemotron-1.5B)·instruction following(UltraData-IF-1.5B)으로 MOPD. agentic tool use는 학생이 달라 제외. one-shot·16-shot·full-data 세 설정, 16-shot은 도메인별로 따로 fit한 BGE-M3 16 cluster의 대표. 300 step.
| 설정 | 평균 검증 정확도 (step 300) | 비고 |
|---|---|---|
| 학생 baseline | 43.5 | |
| One-shot MOPD | 50.1 | 도메인당 query 1개 |
| 16-shot MOPD | 52.9 | full-data MOPD 이득의 101% 회복 |
| Full-data MOPD | 52.8 | teacher–student 격차의 79% 회복 |
| 도메인별 full-data OPD 3개 | 53.8 | MOPD와 1.0점 차이 |

도메인별로도 수학 93%, 코드 136%, instruction following 109%로 한 도메인이 끌고 가는 결과가 아니다. 16-shot과 full-data가 같은 rollout·최적화 예산을 쓰므로, 이 설정에서 도메인당 16개 다양한 query를 넘어서는 확장은 추가 이득이 없다. 의미적으로 다른 query가 도메인 안에서 상보적인 state를 유도한다는 state-space 설명과 일치한다.
이 기제는 관심을 prompt에서 prompt가 유도하는 추론 state 영역으로 옮긴다. 입력이 유용한 것은 학생 rollout이 teacher가 유용한 감독을 줄 수 있는 영역에 닿을 때이고, 문제를 진술하는 것은 거기 닿는 한 방법일 뿐이다.
수학 OPD를 (a) 실제 training set, (b) <think>로 끝나는 빈 user turn 템플릿, (c) 같은 템플릿에 간단한 도메인 system prompt, (d) WildChat의 일반 대화 query 192,824개(수학 관련 0.17%, 코드 관련 2.63%)로 학습한다.

<think>로 끝나는 빈 user turn, (b) 같은 템플릿에 한 줄 도메인 system prompt.
<think>\n</think>\n scaffold는 학습할 수 없는 짧은 meta-level 응답으로 붕괴한다.같은 중간 query에서 one-shot OPD와 one-shot RLVR(GRPO)을 비교한다. 둘 다 step당 query 64개 batch. RLVR은 query당 8 rollout을 outcome으로 채점하고, OPD는 1 rollout의 모든 token을 teacher와 대조한다.
RLVR은 검증 가능한 결과가 있고 결과가 충분히 갈리는 task여야 한다. OPD는 방문 state에서 teacher–student 격차가 드러나기만 하면 신호를 얻는다. 검증 가능성·난이도와 직접 묶이지 않는다
1000 step 동안 OPD는 teacher 격차의 72%를 닫고, 검증 이득은 RLVR의 2배 이상. rollout token 기준으로 맞춰도 우위가 유지된다
RLVR은 학습 query를 풀게 되면 group이 거의 만장일치가 되어 GRPO advantage가 사라진다. OPD는 query를 푼 뒤에도 국소 teacher–student 격차에서 계속 배운다. 다만 격차는 서서히 줄어든다
RLVR은 teacher 분포에 묶이지 않고, OPD는 teacher를 맞추도록 학습된다

One-shot RLVR은 query가 주는 outcome 변동에 제한되고, one-shot OPD는 dense 감독을 흡수하는 속도에 제한된다.
full-data run 없이 query 자체에서 coverage를 추정할 수 있게 되면 선택 기준이 된다
per-token gap에 trust region을 두고 batch를 여러 epoch 재사용하거나, 남은 teacher 신호량으로 token을 가중한다
더 많은 teacher·도메인의 MOPD, 더 큰 학생, agentic tool use, 데이터 수집이 가장 비싼 long context
query 하나로 OPD는 수백 step 계속 나아지고 full-data 이득의 87%(step 300)·72%(step 1000)를 회복한다. 4개 영역·3개 family·못 푸는 query에서도
query는 state로 작용한다. 1개가 full-data state 공간의 71.5%를 덮고(step 100에 65.9%), 의미적으로 다른 16개가 98.9%를 덮어 full-data와 성능이 같다
매 update의 absorption rate는 계속 떨어지고, query 1개든 17K든 같은 방식으로 떨어진다(step 300까지 78–84% 제거). 고정된 state 집합도 수백 step 걸린다
MOPD도 도메인당 16 query면 full-data의 101%. 내용 없는 템플릿·WildChat query도 실제 query에 근접(약 1점 차). 같은 query에서 OPD 이득은 RLVR의 2배 이상
핵심 메시지: OPD는 알고리즘이 흡수할 수 있는 것보다 많은 감독을 공급받고 있다. 데이터가 아니라 흡수 속도가 run의 길이와 상한을 정한다.