온폴리시 증류에서 프롬프트 개수보다 교사와 학생 조합이 전이를 좌우한다
Beyond Prompt Count: How Data Shapes Transfer in On-Policy Distillation
무엇인가
온폴리시 증류(OPD)는 학생 모델이 스스로 생성한 응답에 대해 교사가 토큰 단위 피드백을 주는 후처리 기법으로, 소형 모델에 능력을 옮기거나 도메인 특화 교사를 정리하고 이전 학습 단계의 능력을 복구하는 데 쓰인다. 학생이 자기 궤적을 만들기 때문에 같은 프롬프트라도 학생이 진화하면서 다른 문맥이 나오고, 프롬프트 선택이 곧 교사 감독이 적용되는 문맥을 결정한다. 그런데 프롬프트를 몇 개 써야 하는지, 어떤 프롬프트가 유용한지는 교사-학생 조합과 목표 능력에 따라 어떻게 달라지는지가 제대로 규명되지 않았다. 이 논문은 프롬프트의 충분성(sufficiency)과 상호교환가능성(interchangeability)을 구분하고, 프롬프트 유용성이 내재적 속성이 아니라 관계적 속성이라는 것을 실험으로 보인다.
어떻게 동작하나
방법은 고정된 프롬프트 지지집합(support)에서 학생이 응답을 샘플링하고, 그 프리픽스에서 교사와 학생의 분포를 reverse KL로 정렬하는 표준 OPD 절차를 따른다. 수집된 프리픽스와 롤아웃 정책은 최적화 동안 고정되며, 샘플링된 토큰에 대한 정책경사 대리목표를 쓴다. 실험은 Qwen3와 DeepSeek-R1-Distill 계열을 대상으로, 교사를 학생의 정확한 초기 체크포인트에서 RL 또는 SFT로 추가 학습시킨 continuation 쌍과 그렇지 않은 cross-model 쌍을 나눠 구성했다. 평가는 AIME 2024/2025와 HMMT 2월/11월의 mean@16 평균인 Math, GPQA-Diamond, HumanEval+, LiveCodeBench v6, MBPP+, 그리고 IFEval·IFBench·BFCL-v3를 사용했다. 랜덤 선택은 학습 시드는 고정하고 선택 시드만 바꾼 독립 지지집합 추출에 대한 평균±표준편차로 보고한다.
무엇과 다른가
프롬프트 수 효율은 매우 높다. Qwen3-4B Math-RL 쌍에서 프롬프트 1개가 Math 44.74를 기록해 3,840개 프롬프트의 46.77에 근접했고(총 롤아웃 3,840개로 맞춤), Code-RL에서는 48개 프롬프트가 22,618개 풀풀 OPD와 step 100에서 0.10점 차이 안에 들었다. JustRL에서는 DAPO 4개와 DeepMath 3,840개가 동일한 Math 점수 32.55를 기록해 프롬프트 개수 차이가 960배였다. 30B-Instruct-to-4B 증류에서도 DeepMath48이 step 15에서 DeepMath3840과 비슷했고, Light-R1 SFT-continuation 쌍에서는 DAPO 또는 DeepMath 8개가 각각 40.83, 40.63으로 원본 3,533개 프롬프트의 40.99에 근접했다. 다만 프롬프트 수 스케일링은 소스와 쌍에 의존한다. 같은 30B Instruct 교사와 DAPO에서 4B 학생은 M=1의 36.9에서 M=8의 42.1로 올랐지만, 1.7B 학생은 M=1에서 M=3,840까지 거의 변화가 없었다.
어떻게 쓰나
핵심 발견은 소스 선호가 관계적이라는 점이다. M=48 고정에서 30B Instruct 교사 기준 DeepMath와 GSM8K 지지집합은 Math에서 42.8 대 31.1이었고, 누적 감독 토큰 예산을 비슷하게 맞춰도 GSM8K가 Math에서 11.25점, LCB에서 9.36점 뒤졌다. 더 결정적으로, 학생 초기화와 두 48개 프롬프트 지지집합을 그대로 둔 채 교사만 Math-RL에서 Code-RL로 바꾸면 네 개 평가 전부에서 소스 선호가 역전된다. Math-RL 교사에서는 DeepMath가 Eurus Code를 46.51 대 30.89로 앞서지만, Code-RL 교사에서는 Eurus Code가 DeepMath를 34.06 대 24.84로 앞선다. 이 역전은 다섯 개 지지집합-학습 시드 구성에서 교사-소스 이중차분 13.1~14.1%p로 유지됐다. 혼합 구성도 마찬가지로, Mix5는 Mix3 대비 IFBench를 8.00점, BFCL을 5.28점 올리는 대신 GPQA를 4.16점 떨어뜨린다.
전제와 한계
전이 메커니즘 분석에서 저자들은 일곱 교사 계열의 체크포인트 43개를 측정해 파라미터 코사인 중앙값 0.069, 기능적 코사인 중앙값 0.859를 얻었다. 즉 OPD는 교사의 파라미터 업데이트 방향을 따라가지 않고도 교사에 정렬된 예측 변화를 만들어낼 수 있다. 지지집합별 효과도 갈린다. 30B-to-4B에서 DeepMath는 고정 Math 프리픽스의 진단적 교사-학생 KL 격차를 11.20% 줄였지만 GSM8K는 13.64% 넓혔고, GSM8K는 기능적 코사인이 0.318로 양수였다. Eurus Code는 Math 격차를 1.13%만 닫고 LCB 격차는 42.30% 닫았다. 30번째 블록 이후 은닉 상태를 교체하는 개입 실험에서는 B→A'가 정확도를 18.75%에서 24.38%로 올리고 A'→B는 28.13%에서 21.25%로 낮췄으며, 자기 교체는 변화가 없었다. 불리한 전이는 복구 가능하다. 열화된 Code 모델을 효과적인 48개 프롬프트 지지집합으로 계속 OPD하면 Code Macro가 50.03에서 63.16으로 올라 초기 학생의 53.30을 넘는다. 업데이트 수를 맞춘 실험에서도 GSM8K 대신 DeepMath로 이어가면 GSM8K 학습 체크포인트에서 7.98점, DeepMath 체크포인트에서 5.60점이 올라, 복구가 단순 추가 학습만의 효과가 아님을 보였다.
그런데 이런 민감성이 곧 정교한 선택의 이득을 뜻하지는 않는다. JustRL-DeepMath에서 여덟 개 선택기와 비교했을 때 균일 랜덤 샘플링이 M=8과 M=48 모두에서 가장 높은 4과제 평균(37.65, 37.63)을 기록했고 GPU 스크리닝도 필요 없었다. Code-RL-to-4B와 30B-to-4B에서도 의미적 다양성이나 층화 랜덤이 개별 지표를 앞섰을 뿐 랜덤은 경쟁력 있는 베이스라인이었다. DeepMath/DAPO/GSM8K 혼합 풀에서 단독 성능이 나쁜 GSM8K를 걸러내는 것도 세 번의 짝지은 추출에서 일관된 이득이 없었다. 48개 중 GSM8K 4개를 DeepMath로 바꾸면 Math 평균이 33.87에서 40.00으로 오르지만, 그 DeepMath 4개만 써도 이미 40.02에 도달해 두 소스의 상보적 이득을 입증하지 못한다.
실무적으로 이 논문은 두 가지를 시사한다. 첫째, 프롬프트 풀을 크게 늘리는 비용보다 교사-학생 쌍에 맞는 소스 선택이 더 중요하며, 교사를 교체하는 순간 기존 프롬프트 셋의 유효성을 다시 검증해야 한다. 둘째, 비싼 프롬프트 선별기나 소스 필터링을 도입하기 전에 균일 랜덤 샘플링을 먼저 베이스라인으로 측정하라는 것이다. 저자들은 랜덤 지지집합이 후보 풀의 평균 방향을 잘 보존한다는 초기 그래디언트 진단(평균 코사인 0.971, 5퍼센타일 0.952)을 제시하지만, 그래디언트 근사 오차가 낮다고 최종 정확도가 높아지는 것은 아니라고 선을 긋는다.
한계도 명시돼 있다. continuation 데이터 실험은 업데이트 수와 옵티마이저 리셋은 맞췄지만 토큰 예산은 맞추지 못했고, 4개 프롬프트 대조군은 지지집합 크기와 프롬프트 반복 횟수를 함께 바꾼다. 기능 정렬 진단은 태스크별 예측 변화를 측정한 것이지 벤치마크 성능 향상을 측정한 것이 아니며, 응답 길이 증가가 정확도 향상의 원인이라고 단정하지도 않는다. 모든 결론은 논문이 다룬 특정 교사-학생 쌍과 설정 범위 안에서의 관찰이다.