2026년 오픈 모델은 어떻게 새 능력을 익힐까 — 2부: 랩별 레시피와 그 뒤의 GPU

1부에서 On-Policy Distillation를 이해하는 하나의 렌즈를 만들었어요. 이 글은 그 렌즈를 쓰는데, 이 글만 따로 읽어도 되도록 한 문단짜리 1부 요약부터 드릴게요.
2025년까지는 하나의 모델을 여러 가지에 두루 능숙하게 만들려면, 모든 능력을 한 잡(job) 안에 뒤엉킨 채로 돌리는 거대한 단일 멀티도메인 RL 학습을 쓰는 게 보통이었어요. 그런데 2025~2026년을 지나며 점점 더 많은 프런티어 오픈 랩이 대신 2단계 구조로 기울었어요. 능력을 하나씩 독립적인 RLVR 스페셜리스트(specialist, 전문가 모델)로 만든 다음, 그 스페셜리스트들을 on-policy distillation(온-폴리시 증류)으로 하나의 student(학생 모델)에 fusion(융합)하는 방식이에요. 이 단계에서 student는 자기 답을 직접 샘플링하고, 같은 계보(same-origin)의 teacher(교사 모델)들이 mode-seeking reverse-KL 신호로 모든 토큰을 채점해요. 이게 유일한 흐름은 아니에요. joint 멀티도메인 RL도 여전히 흔하고, weight merging(가중치 병합)도 사라지지 않았어요. 다만 따로 학습한 스페셜리스트를 융합하는 데서 가장 빠르게 영향력을 넓히고 있는 게 바로 이 방식이에요. 그 fusion 단계가 dense하고 on-policy이고 값싸다 보니, 능력의 생산(production)과 통합(integration)이 분리돼요. 능력이 마이크로서비스가 되는 셈이죠. 병렬로 생산하고, 마지막에 통합하는 거예요. RLVR이 없어진 건 아니에요. 통합자 자리를 내려놓고 스페셜리스트 공장이 된 거예요. (메커니즘과 수식은 1부에 있어요.)

이 프레이밍은 실제 파이프라인 안에서 뭘 보게 될지를 미리 알려줘요. 도메인별 병렬 RLVR 잡들의 공장, 그다음 도메인별 teacher들과 함께하는 distillation이에요. 2026년 여러 프런티어 랩들의 테크 리포트들이 그리는 그림이 정확히 이거예요. 랩마다 눈여겨볼 변주를 하나씩 얹어서요.
레시피를 한 격자에
랩별 세부로 들어가기 전에, 이 분야 전체를 하나의 격자로 훑어볼게요. 레시피는 일관돼요. 그 안에서 어떤 선택을 하느냐가 랩마다 갈리는 지점이에요.
| 랩 / 모델 | Loss 형태 | Teacher 서빙 | Reward | Same-origin |
|---|---|---|---|---|
| DeepSeek V4 |
full-vocab reverse KL |
offload + hidden-state cache |
actor-as-GRM | one student |
| Xiaomi MiMo-V2-Flash |
policy-gradient, top-k |
prefill scoring service |
RLVR verifiers | same SFT checkpoint |
| Zhipu GLM-5 |
on-policy, gap-to-teacher |
slime (Megatron + SGLang) |
RLVR | own prior checkpoints |
| Kwai Keye-VL-2.0 |
token-level, routed |
routing, 13 teachers |
RL teachers | shared MoE backbone |
| Meituan LongCat-2.0 |
미공개 | 미공개 | 미공개 | 1 checkpoint → 3 groups |
| Alibaba Qwen3 |
logit KL (off→on) |
none | flagship full RL |
big → small |

이제 메커니즘을 랩별로 볼게요.
DeepSeek-V4: Full Vocab reverse KL 구현
DeepSeek-V4(arXiv 2606.19348)는 이 전환을 가장 또렷하게 보여주는 단일 데이터 포인트예요. 한 랩이 자기가 내놨던 방법을 스스로 버리고 있으니까요. 리포트는 이걸 담담하게 적어요. 파이프라인은 "largely mirrored that of DeepSeek-V3.2"였지만, "a critical methodological substitution was made: the mixed Reinforcement Learning (RL) stage was entirely replaced by On-Policy Distillation (OPD)"라고요. 이제 OPD가 "the primary technique for merging expert capabilities"이고, 대놓고 "circumventing the performance degradation often encountered in traditional weight-merging or mixed RL techniques"라고 밝혀요.
DeepSeek은 가장 충실하고 가장 비싼 loss 형태(full-vocabulary reverse KL)를 택했고, 리포트 표현으로 "more than ten teacher models covering various domains"를 하나로 통합해요. 목적함수는 teacher별 KL의 가중합이에요.

흥미로운 대목은 정확한 full-vocabulary 증류를 대규모에서도 감당할 만하게 만드는 방식이에요. 1부의 "teacher as a service" 아이디어가 구체적인 엔지니어링으로 살아나는 곳이거든요. 여기에는 세 가지 아이디어가 있어요.
- 필요할 때만 offload하고 load해요. "All teacher weights are offloaded to a centralized distributed storage and are loaded on demand"에 ZeRO 유사 샤딩을 더해요. 10개가 넘는 조 단위 파라미터급 teacher를 상주시키지 않는 거예요.
- 샘플을 teacher 순서로 정렬해요. "We order training samples by teacher index during data dispatching. This arrangement ensures that each distinct teacher head is loaded only once per mini-batch and that at most one teacher head resides in device memory at any given time." 한 번에 teacher 하나만 hot 상태로 두고, 로딩은 연산 뒤에 숨겨요.
- hidden state를 캐시하고 logit을 재구성해요. full-vocabulary logit을 그대로 만들어내는 게 병목이에요. "naively materializing logits for a vocabulary size |V|>100k across all teachers is prohibitive, even when spooled to disk." 이들의 해법은 깔끔해요. "the last-layer teacher hidden states"만 캐시해두고, 학습 시점에 그걸 "through the corresponding prediction head module to reconstruct the full logits on the fly"로 통과시킨 다음, "specialized TileLang kernel"로 정확한 KL을 계산해요. 압축된 hidden state만 저장해뒀다가, 필요할 때 큰 분포를 다시 만들어내는 거죠.
DeepSeek은 reward model도 통째로 접어 없애요. 별도의 스칼라 채점기를 학습하는 대신, "the actor network natively functions as the GRM"(generative reward model)으로 써요. policy가 GRPO 도중에 자기 자신을 채점하면서, 평가·reward-modeling 역량을 "alongside its standard generative capabilities"로 같이 최적화하는 거예요. DeepSeek-V4-Pro는 1.6T-total / 49B-active MoE(더 작은 Flash 변형은 284B/13B)이고, expert 가중치에 FP4 (MXFP4) quantization을 적용해 학습했어요. 아래 GPU 섹션에서 중요해지는 디테일이에요.
이렇게 묶어 읽으면, DeepSeek의 post-training은 각 그룹이 자기 스페셜리스트를 만들고 마지막에 하나로 꿰맨 랩의 조직도처럼 읽혀요. 마이크로서비스 논지가 구현된 셈이죠.
Xiaomi MiMo-V2-Flash: 레시피를 정확히 형식화
DeepSeek이 쇼케이스라면, Xiaomi의 MiMo-V2-Flash(모델 리포트 arXiv 2601.02780; 방법론 논문은 MOPD, arXiv 2606.30406)는 레시피가 정확하게 적혀 있는 곳이에요. MiMo-V2-Flash는 하이브리드 어텐션 스킴("Sliding Window Attention (SWA) with global attention, with a 128-token sliding window under a 5:1 hybrid ratio")을 갖춘 309B-total / 15B-active MoE로, 27T 토큰으로 사전학습됐어요.
이 모델의 post-training은 3단계 프레임워크인데, 순서가 핵심이에요. SFT, 그다음 teacher를 생산하는 도메인 특화 RL, 마지막으로 최종 consolidation 단계인 MOPD예요. 리포트 표현은 이래요. "Having established the foundation through SFT and trained specialized teachers through domain-specific RL, we now formalize the multi-teacher on-policy distillation mechanism." 대규모 agentic RL은 스페셜리스트를 만드는 과정의 일부이고, Distillation는 그것들을 마지막에 융합하는 단계예요. 뒤에 RL이 더 붙는 중간 단계가 아니에요. 이게 1부에서 다룬 MOPD 논문의 바로 그 기여예요. Distillation을 RL로 캐스팅해 GRPO 루프에 그대로 끼워 넣고, same-origin 요건을 맞추고, 가벼운 policy-gradient loss 형태를 기본값으로 두는 거죠. (MiMo도 아래 Zhipu처럼, MoE RL의 training–inference 불일치를 다루려고 IcePop 을 써요. 바로 1부에 나온 Ant의 마스킹된 양측 importance-ratio 클리핑 말이에요)
MOPD 논문의 기본값은 일부러 값싼 loss 형태예요. 그래야 스케일이 나거든요. teacher의 전체 분포를 만들어내는 대신, reverse KL을 policy gradient로 캐스팅해요. 각 토큰의 advantage는 teacher와의 stop-gradient 로그 확률 갭이고, 업데이트는 student 자신의 토큰에 대한 평범한 REINFORCE 스텝인데, top-k(k = 64) teacher 토큰만으로 평가해요.

Distillation이 "drops directly into existing PPO/GRPO"한다는 게 바로 이 뜻이에요. 평범한 RLVR과 다른 점은 딱 하나, sparse한 verifier reward를 이 dense한 토큰별 갭으로 갈아 끼우는 것뿐이에요. DeepSeek이 최적화하는 것과 같은 목적함수인데, full-vocabulary로 정확히 계산하는 대신 top-k 토큰에서 값싸게 추정하는 것만 달라요.
Zhipu GLM-5: 같은 아이디어, 가장 열린 스택
Zhipu의 GLM-5(arXiv 2602.15763)는 실무자에게 가장 유용한 항목이에요. 인프라가 열려 있으니까요. GLM-5는 "on-policy cross-stage distillation as the final stage"를 수행해서, "swiftly recover the skills acquired in earlier SFT and RL stages (Reasoning RL and General RL)"에 활용하는데, 이때 "the final checkpoints from the preceding training stages serve as teacher models"예요. 여기 뉘앙스를 놓치지 마세요. GLM-5는 자기 자신의 이전 단계들을 융합해요. 모델이 자기 과거 버전에서 증류하는 거죠. 이게 same-origin의 가장 순수한 형태예요. teacher와 student가 말 그대로 같은 계보니까요. advantage는 MOPD의 policy-gradient 형태와 마찬가지로 "computed directly from the gap with the teacher models"예요.
GLM-5를 독특하게 만드는 건 loss가 아니라 teacher예요. DeepSeek와 MiMo는 따로 학습한 도메인 스페셜리스트에서 증류하는데, GLM-5의 teacher는 자기 자신의 이전 checkpoint라서, teacher policy가 그냥 student의 이전 단계 자체예요.

same-origin을 끝까지 밀어붙인 거예요. teacher와 student가 초기화뿐 아니라 계보 전체를 공유하거든요. 그래서 GLM-5는 이 단계를, 바깥에서 새 능력을 들여오는 게 아니라 이전 단계가 이미 가졌던 능력을 회복(recover)하는 것으로 프레이밍해요.
이어서 2가지 중요개념이 등장해요. IcePop(1부에서 정의한 Ant의 Ring-1T 보정)은 GLM-5가 "to mitigate the training-inference mismatch, i.e., the discrepancy between the inference distribution and the training distribution during RL optimization"에 쓰는 거예요. GLM-5는 KL-regularization 항을 떼고 채택하는데, MiMo가 쓰는 것과 같은 보정이에요. 그리고 GLM-5는 slime 위에서 돌아가요. "We continue to use slime as the unified post-training infrastructure for GLM-5." slime(오픈소스, Zhipu 제작)은 2부의 인프라 섹션이 딛고 서는 구체적 스택이에요(학습에 Megatron, rollout에 SGLang). Zhipu는 GLM-4.5가 그 전에 "iterative self-distillation"을 썼다고 설명해요.
Kwai Keye-VL-2.0: 레시피를 비전으로 확장
Kuaishou의 Keye-VL-2.0(arXiv 2606.10651)은 이 레시피가 텍스트 전용이 아님을 보여줘요. 30B-total / 3B-active 멀티모달 MoE인데, multi-teacher on-policy distillation을 모달리티를 가로질러 적용하거든요. 이번 버전은 이전 버전이 두루뭉술하게 남겨둔 숫자를 딱 짚어요. "MOPD maintains 13 RL-trained domain teachers"이고, "safety, pure-text math, instruction following, code, visual STEM, OCR, grounding, counting, video, and tool use, among others"에 걸쳐 있어요. student 샘플은 저마다 가장 잘 맞는 teacher로 라우팅되고, 그 teacher가 토큰 수준 피드백을 공급해 공유 MoE backbone으로 다시 합쳐져요.
그래서 이 모델의 시그니처는 KL 앞에 놓인 라우팅 단계예요. 텍스트와 비전을 아우르는 13개 도메인 teacher가 있고, student 샘플은 먼저 자기 도메인을 소유한 teacher로 라우팅된 뒤에야, 그 teacher 하나에 대해 통상의 토큰별 reverse KL이 적용돼요.

라우팅은 video-understanding teacher가 math teacher의 신호를 덮어쓰지 못하게 막아줘요. 각 샘플은 오직 자기를 소유한 teacher에게서만 배우니까, 13개 스페셜리스트가 서로를 짓밟지 않고 하나의 backbone으로 융합되죠.
동기는 Keye가 "Multimodal Alignment Dilemma"라고 이름 붙인 문제예요. "directly injecting complex video understanding and tool-use capabilities often triggers catastrophic forgetting, degrading the model's foundational STEM, mathematical, and linguistic reasoning abilities." 1부의 시소가 멀티모달로 나타난 거고, 답도 똑같아요. 모달리티와 태스크 스페셜리스트를 따로 만들고, 뒤엉킨 하나의 학습이 아니라 on-policy distillation으로 융합하는 거예요.
Meituan LongCat-2.0: 단일 통합 student
Meituan의 LongCat-2.0은 중국산 가속기에서 학습한 대형 MoE예요. arXiv 리포트가 없어서, 여기 나오는 내용은 전부 Meituan 공식 기술 블로그와 모델 카드에서 온 벤더 보고이고, 그 단서를 달고 읽어야 해요. Meituan은 공유 SFT checkpoint를 Agent, Reasoning, Interaction expert 그룹으로 분기한 뒤 하나의 통합 모델로 증류한다고 설명해요. 흔한 오독 하나를 짚어둘게요. LongCat의 "gating network routes tasks to experts"라는 표현은 융합된 모델 내부의 sparse-MoE 라우팅을 말하는 거지, 별개의 모델들 사이에서 하나를 고르는 최상위 라우터가 아니에요. 다른 것들과 똑같이 단일 student예요. loss 형태와 teacher 수는 독립적으로 문서화돼 있지 않고, 이 글을 쓰는 시점에 가중치는 릴리스 대기로 표시돼 있어요. 패턴에는 들어맞지만, 다른 것들과 같은 기준으로 검증할 수는 없어요.
네 개의 레시피, 하나의 목적함수
리포트들을 gradient까지 벗겨내면, 네 개의 on-policy-distillation 레시피는 하나의 목적함수 위에 놓인 다이얼들이에요. 넷 다 student와 teacher 사이의 같은 토큰별 reverse KL을 최소화하는데, student 자신의 rollout에서 측정해요.

이 식 안의 세 가지 선택이 랩들이 실제로 갈리는 지점이에요.
Dial 1 — divergence를 어떻게 계산하나: 정확 vs. 값싼. DeepSeek-V4는 정확한 쪽을 선택했어요. |V| > 100k 토큰 전부에 걸쳐 합산하고 10개 넘는 teacher에 대해 가중한 full-vocabulary reverse KL(위 섹션의 가중-KL 목적함수)인데, TileLang 커널과 hidden-state 캐싱으로 감당 가능하게 만들었어요. Xiaomi의 MoPD 기본값은 값싼 추정기예요. 같은 reverse KL을 top-k policy gradient로 바꾼 거죠. 하나의 목적함수를 비용/충실도 트레이드오프의 양 끝에서 본 셈이에요. DeepSeek은 충실도를, MiMo는 스케일을 사요.
Dial 2 — teacher가 누구인가: 외부 vs. 자기. DeepSeek, MiMo, Kwai에게 teacher는 따로 학습한 도메인 스페셜리스트 집합이에요. GLM-5의 teacher는 자기 자신의 이전 단계 checkpoint(self-distillation)고요. Kwai는 외부 teacher를 유지하되 라우터를 더해, 샘플마다 13개 중 하나를 골라요. 같은 목적함수, 세 가지 다른 π_T 정의예요.
Dial 3 — train-inference 보정을 붙이나. student는 inference 엔진(SGLang)에서 샘플링하는데 gradient는 학습 엔진(Megatron)에서 취하므로, 두 분포가 살짝 어긋나요. sparse MoE에서는 그 갭만으로도 학습이 흔들릴 수 있어요. MiMo와 GLM-5 둘 다 IcePop(1부에 나온 Ant의 마스킹된 양측 importance-ratio 클리핑)을 더해요. 각 토큰을 train 대 inference 확률 비로 재가중하고, 심하게 어긋난 토큰은 버려서, 소수의 이상치 토큰이 업데이트를 날려버리지 못하게 하는 거예요.

DeepSeek의 정확한 full-vocabulary KL은 애초에 샘플링된 top-k 토큰에 기대지 않아서 이 문제의 최악을 비껴가요. Meituan의 LongCat-2.0은 공개된 loss 형태가 없어서 표 바깥에 완전히 놓여 있고요. 그래서 앞의 격자는 이렇게 줄어들어요. 하나의 reverse-KL 목적함수, 그리고 각 랩이 저마다 내리는 세 가지 독립적 선택(정확-혹은-값싼 divergence, 외부-혹은-자기 teacher, 갭-보정-여부)이에요.
그 외부-혹은-자기 선택은 잠깐 멈춰볼 만해요. 이야기 전체를 한 도구의 두 가지 쓰임새로 가르거든요. teacher가 별개의 병렬 스페셜리스트일 때 — DeepSeek, Xiaomi, Kwai — on-policy distillation은 fusion을 하고 있어요. 이게 1부의 "capabilities as microservices" 그림이에요. 능력을 따로따로 만들고, 마지막에 값싸게 통합하는 거죠. teacher가 모델 자신의 이전 checkpoint일 때 — GLM-5, 그리고 아래의 NVIDIA Nemotron-Cascade 2 — 그건 self-recovery를 하는 거예요. 이후 단계가 이전 단계에서 증류해서, 추가 학습이 갉아먹은 능력을 복원하죠. 같은 목적함수, 같은 안정성 규칙, 두 가지 일이에요. 진짜 관통선은 "병렬 마이크로서비스"가 아니라, 스페셜리스트를 융합하는 데도 모델이 스스로를 수리하는 데도 똑같이 잘 통하는, 값싸고 안정적인 on-policy consolidation 단계예요.
주의 하나: 모든 "distillation"이 이걸 뜻하진 않아요
이게 어디서 왔는지 따라가기 전에 빠르게 하나 구분해둘게요. 이 글이 묘사하는 것과 완전히 다른 일을 하는 모델에도 "distillation"이라는 단어가 붙어 있는 걸 보게 될 테니까요. Alibaba의 Qwen3(arXiv 2505.09388)가 가장 또렷한 예예요. 여기서 "distillation"은 same-scale fusion이 아니라 strong-to-weak 압축이에요. "For smaller models, we use strong-to-weak distillation, leveraging both off-policy and on-policy knowledge transfer from larger models"이고, "directly distilling the output logits from teacher models into lightweight student models"로요. 플래그십 Qwen3 모델들은 full RL로 학습하고, 작은 모델들만 큰 teacher에서 아래로 증류해서 만들어요. 공개된 바로는 full RL이 들 GPU-시간의 약 10분의 1로요. 이건 하나의 큰 teacher에서 작은 student로 능력을 옮기는 거예요. 여러 same-scale 스페셜리스트를 하나로 융합하는 것과는 정반대 방향이죠. 같은 단어, 진짜로 다른 메커니즘이라, 이 리포트들을 함께 읽을 때 헷갈리기 쉬운 부분이에요.
여기까지 온 과정: 스페셜리스트는 2025년에도 이미 융합되고 있었어요 — 흔히 가중치 병합으로
이 레시피가 2026년에 완성된 채로 툭 튀어나온 것처럼 보인다면, 그렇지 않아요. 2025년 내내 여러 랩이 이미 능력을 따로 만들고 마지막에 결합하고 있었어요. 다만 일부는 다른 통합방식을 썼죠. 가장 또렷한 예가 위 LongCat-2.0의 직속 전작이에요.
Meituan의 LongCat-Flash-Thinking(arXiv 2509.18883, 2025년 9월)은 1부의 mix-RL 문제를 정면으로 마주했어요. 서로 다른 도메인이 극단적으로 다른 출력을 낸다는 걸 측정하고, 뻔한 결론을 냈어요. 섞지 말자고요. domain-parallel RL을 돌려 STEM·coding·agentic expert를 각자의 설정으로 따로 학습한 뒤, 세 개를 가중치 병합으로 하나의 모델로 융합했어요(task-vector 레시피: 각 expert가 공유 시작점에서 얼마나 변했는지를 정규화하고, 중복 부분은 버리고, 충돌하는 부분은 지워요). 그리고 짧은 general-RL 패스로 이음매를 매끄럽게 마무리했어요. 융합된 모델은 거의 모든 벤치마크에서 개별 스페셜리스트를 매칭하거나 능가했어요(Fig 3). 정확히 1부의 논지예요. 스페셜리스트를 병렬로 생산하고 마지막에 통합하는 걸, 1년 먼저 출시한 거죠.

이렇게 merge를 선택한 프런티어 랩은 Meituan만이 아니었어요. ByteDance의 UI-TARS-2(arXiv 2509.02544)는 따로 학습한 agent 모델들의 가중치를 선형 보간해 융합했어요. 말 그대로 스페셜리스트의 가중 평균이죠.

그리고 Tencent의 Hunyuan-MT(arXiv 2509.05209)는 작은 모델을 RL로 학습시켜, 여러 후보 답을 하나의 더 나은 답으로 aggregate하게 했어요. 병합이 아니라 학습된 fusion이죠. 메커니즘은 달라도, 공통된 핵심은 하나예요. 부분을 따로 만들고, 마지막에 결합하기.
그럼 무엇이 바뀌고 있을까요? 한 방법이 다른 방법을 대체한 게 아니라, 무게중심이 어디로 옮겨가느냐예요. RL로 학습한 스페셜리스트를 융합하는 건 사실 3파전이에요. 가중치를 평균 내거나(parameter merge), 모든 걸 하나의 joint 학습에 몰아넣거나(mix-RL), 스페셜리스트를 student로 증류하거나(on-policy distillation)죠. 위 2025년 레시피들은 merge 코너에 있고, merge는 1부가 RL 스페셜리스트에 대해 불안정하다고 짚었던 바로 그 선택지예요. MOPD 논문이 여기에 숫자를 붙여요. 같은 통합 태스크에서 merging은 0.857을, distilling은 0.937을 기록해요. 그래서 이 특정 작업에서 매우 활발히 연구되는게 바로 distillation이에요. 가중치 평균은 어쩌다 괜찮은 데 param이 떨어지길 바라는 대신, student 자신의 rollout에서 융합된 행동을 직접 학습하거든요. 다른 방식들이 사라진 건 아니에요. weight merging은 멀쩡히 살아 있고, 다른 레이어로 옮겨갔을 뿐이에요(optimization-time checkpoint 평균, MoE 조합). mix-RL도 프런티어에서 여전히 흔하고요(OLMo 3, INTELLECT-3, Nemotron 3). 2026년 이야기는 "merge는 죽었다"가 아니라, "따로 RL한 스페셜리스트를 융합하는 데는 on-policy distillation이 떠오르는 답"이에요.


LongCat-Flash-Thinking은 모든 RLVR 주장을 읽는 방식도 바꿨어요. 무엇을 verified 답으로 쳐주느냐예요. 단순한 규칙 기반 체커(출력 문자열이 참조와 일치하나?)는 ground truth와 80.9%만 일치했어요. 특이한 형태로 쓰인 정답이 그걸 빠져나가거든요. 두 답이 동등한지 추론(reason)하는 generative reward model은 98.8%에 도달했어요.
| Reward 체커 | ground truth와의 일치율 |
|---|---|
| Rule-based (string / exec match) | 80.9% |
| Non-reasoning generative RM | 94.0% |
| Reasoning generative RM | 98.8% |
그래서 2026년 리포트가 어떤 도메인을 "verifiable"이라고 부를 때, 그건 점점 정규식 체커가 아니라 추론하는 채점기를 뜻해요. DeepSeek-V4가 reward model을 policy 자체에 접어 넣는 이유이기도 하죠. 2025년 후반에 이르자 이 전체 형태(독립적 스페셜리스트, 그다음 fusion 단계, 더 똑똑한 verifier로 뒷받침되는)가 광범위한 오픈 모델에 걸쳐 나타나고 있었어요. Ant의 조 단위 Ring-1T와 Ling-1T, Zhipu의 GLM-4.5V, Xiaomi의 MiMo-VL, Shanghai AI Lab의 Intern-S1, Baichuan-M2, StepFun의 prover들이요. 하나 기억할 점은 각 랩들은 언제 섞고 언제 나눌지에 대해 서로 동의하지 않다는 점이에요. GLM-4.5V는 하나의 RL 학습에 여러 도메인을 섞는 게 cross-domain 전이를 통해 일부 능력에 실제로 도움이 된다고 봐요. Ring-lite와 LongCat은 충돌하는 도메인에 대해서는 정반대라고 보고요. 얼마나 나눌지는 태스크마다 달라요. 이들이 동의하는 건, 마지막의 On-Policy Distillation 같은 값싸고 안정적인 fusion 단계가 "많은 스페셜리스트 → 하나의 모델"을 현실적으로 만든다는 거예요.
이게 어디서 왔나: 하나의 기법, 여러 랩의 수렴
여기서는 계보에 대한 정밀함이 중요해요. 흥미로운 이야기는 여러 랩이 함께 도달한 공유된 방법론지, 단일 기원이나 그들 사이의 경쟁이 아니거든요. 두 재료를 떼어놓고 보면 이해가 쉬워요.
distillation 아이디어가 더 오래된 쪽이에요. 토큰별 reverse-KL, on-policy distillation은 2023~24년경 GKD(Agarwal et al.)와 MiniLLM(Gu et al.)에서 제시됐고, Thinking Machines Lab(2025년 10월)이 추론 시대에 맞게 깔끔하게 재프레이밍하고 대중화했어요. RLVR이라는 스페셜리스트를 학습시키는 reward 스타일은 그 자체로 더 얽힌 계보를 가져요. 알고리즘이 아니라 reward 출처를 가리키거든요. 기법은 DeepSeek의 DeepSeekMath(GRPO, 2024년 초)에 처음 등장했고, 용어는 Allen Institute의 Tülu 3(arXiv 2411.15124, PPO를 씀)가 만들었고, 대규모로 대중화한 건 DeepSeek-R1이었어요. 두 재료 어느 쪽도 단일 랩에서 짠하고 만든게 아니고 여러 랩의 발전이 얽혀있어요.
2026년에 독특한 건 누가 조각들을 발명했느냐가 아니라, 누가 그것들을 플래그십 파이프라인에서 처음으로, 그리고 가장 균일하게 합쳤느냐예요. DeepSeek, Xiaomi, Zhipu, Kuaishou, Meituan 모두 두 분기 안에 on-policy distillation을 프로덕션으로 밀어 넣었어요. 이 거의 동시적인 채택이, 여러 테크 리포트들을 나란히 읽을 때 이 커다란 변화의 패턴을 읽히게 만드는 거예요.
그리고 같은 기법이 단순 중국의 오픈소스 모델에서만 발견되는게 아니에요. 가장 또렷한 예는 NVIDIA의 Nemotron-Cascade 2(arXiv 2603.19220)예요. 30B-total / 3B-active MoE로, IMO·IOI·ICPC 2025에서 금메달 영역에 도달했어요. DeepSeek의 671B에 이어 이걸 해낸 두 번째 오픈웨이트 모델이자, 대략 20배 적은 파라미터로요. 멀티도메인 on-policy distillation을 쓰는데, 대신 기존에 소개한 방법들과 역할이 달라요. OPD를 최종 통합자로 삼는 대신, 순차적 Cascade RL을 돌리고 그 안에서 OPD를 regression 방지 장치로 써요. "multi-domain on-policy distillation from the strongest intermediate teacher models for each domain throughout the Cascade RL process"로, 이후 단계가 이전 능력을 갉아먹을 때 "efficiently recover benchmark regressions"하려는 거죠. 이걸 구별짓는 정직한 뉘앙스 하나! 그 "teacher"는 따로 학습한 도메인 스페셜리스트가 아니라 cascade를 따라가는 모델 자신의 중간 checkpoint예요. 그래서 이건 별개의 expert를 융합한다기보다 self-distillation에 가까워요. 그럼에도 초록만이 아니라 본문을 읽어보면, 중국의 프런티어 랩들이 내린 것과 같은 두 가지 설계 선택에 도달해요. same-origin teacher("derived from the same SFT initialization", "the same tokenizer and vocabulary"를 공유, "without introducing external model families")와 truncated importance weight를 갖춘 토큰 수준 policy-gradient loss예요.
Nemotron-Cascade 2는 sequential Cascade RL을 인프라 근거로 지지하기까지 해요("response lengths and verification wall-clock times are more uniform within a domain than across multiple domains trained jointly"). 다른 랩들이 mix-RL의 간섭에서 달아난 것과 정확히 같은 이야기죠. 다른 동기지만, 비슷한 기법이에요. 그리고 학술 문헌은 이미 레시피를 일반화하고 있어요. Uni-OPD(arXiv 2605.03677, Zhejiang University / Tencent)는 "a unified OPD framework that generalizes across LLMs and MLLMs"를 제안하는데, single-teacher와 multi-teacher 설정을 모두 아우르는 dual-perspective 최적화 전략을 중심으로 짰어요.
이 방법은 연구 뿌리(GKD, MiniLLM, 이후 Thinking Machines Lab)가 있고, 통합 메커니즘으로 처음이자 가장 균일하게 프로덕션화한 건 위 중국의 여러 랩들이었고, 이제는 퍼지고 있어요. NVIDIA는 엔지니어링 쪽에서, Uni-OPD는 학술 쪽에서요. 그러는 동안에도 다른 많은 프런티어 모델은 여전히 다른 방식으로 통합하고 있어요(OLMo 3, Nemotron 3, INTELLECT-3는 동시적 mix-RL에 기대고, Cohere의 Command A는 parameter merging에요).
이게 당신의 GPU 클러스터에 의미하는 것
대부분의 글이 건너뛰는 부분이 바로 여기예요. 이 레시피는 특정한 컴퓨트 형태를 가지고, 그게 GPU를 어떻게 프로비저닝해야 하는지에 깔끔하게 매핑돼요. 이 방식의 post-training은 하나의 잡이 아니에요. 세 개의 뚜렷한 엔진이고, on-policy distillation으로의 이동은 그 분리를 더 흐리게가 아니라 더 날카롭게 만들어요.
- 학습 엔진: gradient 업데이트(Megatron / FSDP, optimizer state)예요. 메모리가 무겁고, 큰 MoE를 위해 빠른 인터커넥트를 원해요. BF16 또는 FP8이에요. DeepSeek-V4는 FP4+FP8 혼합 정밀도로 한 발 더 나아가, MoE expert 가중치와 sparse-attention indexer를 FP4(MXFP4, 벤더 중립 포맷)로 QAT-학습하고, attention·norm·라우터는 FP8로 유지해요.
- rollout / inference 엔진: 생성이에요. RLVR 단계용과 student의 on-policy 샘플용 둘 다요(SGLang 또는 vLLM). 프롬프트 prefill은 compute-bound이지만, 추론 rollout이 길게 생성하다 보니 decode가 지배하고 엔진은 순-bandwidth-bound가 돼요. MoE에서는 그게 expert-weight bandwidth 와 expert dispatch를 뜻해요. few-active 모델이라도 모든 expert를 HBM에 상주시켜야 하거든요. 보통 FP8이에요.
- teacher-scoring 엔진: OPD와 함께 새로 생긴 거예요. teacher들이 student의 토큰에 대해 prefill하고 로그 확률이나 logit을 돌려줘요. forward-only이고 decode가 없으며, 구조적으로 reward/verifier 서비스예요. teacher들의 합산 크기가 HBM을 넘어서면 (큰 teacher 몇 개면 금세 그렇게 돼요) 상주를 그만두고 offload해, 필요할 때 load해요. 게다가 OPD는 on-policy라, offline distillation처럼 teacher 출력을 미리 계산해둘 수 없어요. student 샘플이 매 스텝 바뀌니까, teacher는 매번 새 rollout을 라이브로 채점해야 하죠.
오픈 레퍼런스 스택이 이걸 구체화해요. Zhipu의 slime(GLM-5가 만들어진 프레임워크)은 학습에 Megatron, rollout에 SGLang, 그 사이에 데이터 버퍼를 두고, 중요한 두 모드를 정확히 노출해요. colocated-synchronous(학습과 rollout이 GPU를 공유; 더 단순; 추론 전용 학습엔 충분)와 disaggregated-asynchronous(별도 GPU 풀; 더 높은 활용률; agentic rollout과 teacher-scoring 서비스가 끼어들면 원하게 되는 모드)예요. 서빙 시스템이 이미 쓰는 prefill/decode disaggregation을 학습으로 밀어 넣은 거예요. compute-bound한 forward 작업(teacher scoring, prefill)을 한 풀에, bandwidth-bound한 decode 작업(rollout)을 다른 풀에 두어, 어느 쪽도 굶지 않게 하는 거죠. Meituan의 LongCat 팀이 정확히 이 이득을 보고해요. 이들의 disaggregated asynchronous RL 시스템(DORA라고 불러요)은 synchronous 셋업보다 3배 넘게 빨라요. 빠른 rollout 작업이 무거운 학습 스텝을 기다리는 걸 멈추게 하거든요.
세 엔진이 서로 다른 것에 묶이는 이유. 하나의 원리로 정리돼요. 커널이 compute-bound인지 memory-bound인지는, 그 커널의 arithmetic intensity(옮긴 바이트당 수행한 FLOP)를 하드웨어의 ridge point(peak FLOP/s ÷ peak bytes/s, H200에서 수백 FLOP/byte)와 견줘 정해져요. 그리고 그 intensity를 정하는 건 모델이 아니라 M, 가중치를 한 번 로드한 뒤 그 가중치로 밀어 넣는 토큰 수예요. 행렬을 로드하고 M개 토큰을 통과시키면, M번 재사용한 거죠. M이 작으면 가중치를 계속 다시 읽고(memory-bound), M이 크면 그 읽기가 amortize돼요(compute-bound). 그 하나의 숫자가 세 엔진을 가르는데 — 디테일에 앞서 지도를 먼저 볼게요.
| 엔진 | M | 무엇에 묶이나 | 한 줄로 | 핵심 해법 |
|---|---|---|---|---|
| Rollout / decode |
small | HBM bandwidth |
토큰 하나마다 모든 가중치 + 전체 KV를 읽어요 |
MLA/GQA, paged batching, spec decode |
| Teacher scoring |
large | compute, 그다음 I/O |
병렬 one-pass GEMM; teacher가 HBM 넘으면 offload |
hidden-state cache, stream on demand |
| Training (1T MoE) |
large | interconnect | GEMM은 compute-bound이지만, sharding collective가 스텝을 게이팅 |
DualPipe / DeepEP overlap |
- Rollout / decode — 작은 M, bandwidth-bound. 원인은 KV 캐시예요. autoregressive decoding은 스텝당 토큰 하나를 내놓으니, 각 스텝은 그 토큰 하나를 만들려고 활성 가중치 전체(MoE에서는 라우팅된 expert + attention) 와 KV 캐시 전체를 HBM에서 읽어야 해요. O(토큰 하나)의 연산 vs O(가중치 + KV)의 바이트, 즉 intensity가 바닥이죠. KV 캐시는 두 가지 뚜렷한 방식으로 죄어와요.
첫째, 바이트: 매 스텝 다시 읽어야 하고 컨텍스트 길이에 따라 커지니, 컨텍스트가 길수록 decode가 더 bandwidth-bound가 돼요.
둘째, 용량: 그 크기가 sequence × batch로 스케일하니, 한번 가중치 메모리를 밀어내면 batch B를 못 키워요 — 그리고 작은 B는 M을 작게 유지해, memory-bound 쪽에 영영 묶어둬요.
그래서 decode 최적화는 죄다 이 두 지점을 공략해요. MLA / GQA는 KV 자체를 줄이고, paged / continuous batching은 B를 올려 가중치 읽기를 amortize하고, speculative decoding / MTP(Multi-token Prediction)는 가중치 로드당 draft 토큰 여러 개를 검증해 M을 강제로 올려요. MoE에서는 작은 batch일수록 더 나빠요. 각 expert로 라우팅되는 토큰이 몇 개뿐이라 expert별 M이 작거든요 — 큰 expert-parallel 그룹으로 토큰을 그러모으는 이유예요. - Teacher scoring — 큰 M, compute-bound (teacher가 들어맞을 때까지만요). scoring은 teacher forcing으로 돌아가요. 답이 이미 알려져 있으니, 모든 위치가 하나의 병렬 forward 패스로 통과하고(M = batch × sequence, 진짜 GEMM), 스텝을 가로질러 KV 캐시가 쌓이지 않아요 그 깨진 대칭이 바로 decode는 아닌데 scoring은 compute-bound인 이유예요.
이걸 뒤집는 건 용량이에요. 멀티-티처 OPD에서는 teacher들의 합산 가중치가 HBM을 훌쩍 넘어서(조 단위 teacher면 둘셋이면 충분해요), DeepSeek-V4는 그것들을 분산 스토리지로 offload하고 필요할 때 stream해요. 이제 묶는 자원은 storage→GPU 로드 bandwidth와 노드 간 fabric이 되고, decode의 HBM 읽기와는 다른 병목이에요. full-vocabulary scoring은 나머지 절반을 더해요. 모든 teacher에 대해 매 위치에서 |V| > 100k logit을 만들어내는 건 디스크로 spool해도 불가능하니, last-layer hidden state만 캐시하고 각 teacher의 prediction head를 통해 logit을 즉석에서 다시 만들어요. 절반은 weight-residency, 절반은 logit-tensor 폭발로 capacity-bound에요. - Training — 큰 M, 하지만 interconnect-bound. sharding collective가 critical path를 소유해요. GEMM 자체는 prefill처럼 compute-bound이지만, 1T 모델은 수천 GPU에 걸친 sharding을 강제하고, 그 sharding이 요구하는 collective는 잦고 bandwidth를 굶주려요. 레이어마다 tensor-parallel all-reduce, MoE 레이어마다 두 번씩 expert-parallel all-to-all이요. overlap이 없으면 GPU는 연산 여유를 두고도 네트워크를 기다리며 멈춰요 — "네트워크에서 살거나 죽는다"가 말 그대로의 뜻이에요. 그래서 프런티어의 진짜 수는 comms를 숨기는 거예요. expert all-to-all을 연산 뒤로 overlap해(DualPipe, DeepEP) 학습을 compute-bound 쪽으로 끌어당기는 거죠.
GPU 티어가 어떻게 매핑되나. 세 엔진은 모두 같은 GPU 세대에서 뽑아요. 서로 다른 칩 세 개를 사는 게 아니에요. 하지만 각각은 다른 제약에 묶이고, 어디서 돌릴지는 칩이 아니라 그 제약이 정해야 해요.
- 1T급 MoE train — interconnect-bound. 메모리 용량과, 무엇보다 인터커넥트를 원해요. BF16/FP8 학습엔 H200(141 GB HBM3e), B200 / B300(Blackwell), 더 원한다면 GB200 NVL72 랙 스케일도 좋아요. 제대로 잡아야 할 건 어떤 트래픽이 어디로 가느냐예요. 무거운 collective(tensor-parallel all-reduce, expert-parallel all-to-all)는 하나의 NVLink 도메인 안에 머물러야 하고, 가벼운 트래픽(data-parallel gradient all-reduce, pipeline-parallel activation hand-off)은 InfiniBand로 랙을 가로질러 scale-out해도 만족해요. 그게 NVL72의 진짜 가치예요. 1T 학습을 담기 위해서가 아니라 넓은 expert-parallel 그룹(EP=64 이상, 8-GPU 노드에선 불가능)을 하나의 NVLink fabric 안에 맞추기 위해서죠(랙 스케일 도메인이 dense 학습보다 MoE에 더 중요한 이유예요). 정밀도 관련 주의사항이 있는데, DeepSeek-V4는 expert 가중치를 FP4(벤더 중립 MXFP4)로 QAT-학습하는데, 네이티브 FP4 연산은 Blackwell 전용이에요. 즉, Blackwell에선 NVFP4로 매핑되고, Hopper(H200)는 네이티브 FP4 텐서 코어가 없어 W4A16으로 폴백하며 FP4 throughput을 포기해요.
- rollout / decode — bandwidth-bound. HBM bandwidth 위에서 살아요(B200 / B300 우선 추천, 그 다음으로 H200). 추론 처리량(throughput)이 이 부품들에서 스케일하는 것과 같은 이유죠. 학습과의 대비는 scale-up이 아니라 scale-out이에요. 1T MoE도 decode에서 expert를 하나의 GPU에 담을 수 없으니, TP/EP로 노드 안에서 NVLink 위로 sharding해요(DeepEP는 expert all-to-all을 노드 안에서는 NVLink으로, 노드 간에는 RDMA로 라우팅해요). 요점은 NVLink가 안 쓰인다는 게 아니라, decode의 collective 볼륨이 학습보다 훨씬 작아서(작은 유효 batch, backward 없음) 랙 스케일 NVLink가 결코 필요 없고, InfiniBand로 평범한 노드들에 퍼져도 만족한다는 거예요.
- teacher scoring — capacity-bound. 하나의 teacher-forcing forward 패스는 prefill처럼 compute-bound이지만, teacher들이 합산해서 상주하는 메모리가 HBM을 넘어서는 순간 제약이 뒤집혀요 . 그때 희소한 자원은 FLOP가 아니라 I/O예요. teacher 가중치를 필요할 때 stream하는 storage→GPU bandwidth와 그것들을 옮기는 노드 간 fabric이죠(위 워크로드 섹션에서 본 offload + hidden-state 캐시 방식이에요). 여전히 큰 HBM과 빠른 fabric을 원해요. 그래서 여기서도 다시 H200 / B200 / B300이 추천하는 GPU예요.
그런데 위 세 엔진의 공통점을 보세요. 거의 다 같은 GPU 후보군을 가리켜요. 그게 진짜 신호예요. 흥미로운 결정은 어떤 GPU냐가 아니라 각 엔진을 어디서 돌리느냐예요. 증분으로 살 수 없는 유일한 자원이 NVLink 도메인이거든요. NVL72 랙은 고정된 72-GPU 단위라, 대체 불가능한 곳에 써야 해요. expert-parallel all-to-all이 달리 갈 데가 없는 학습 엔진에요. rollout과 teacher scoring은 반대예요. 둘 다 asynchronous하고 parallel하니, 평범한 H200 / B200 노드에서 만족해요(scoring은 H100 / H200에서도 잘 돌아요). 이 노드들은 랙 스케일 NVLink보다 싸고 구하기도 훨씬 쉬워요. NVL72 랙을 rollout에 쓰는 건 NVL72가 존재하는 그 하나의 이유를 낭비하는 거예요. 그래서 올바른 GPU 할당은 slime과 SGLang이 이미 학습과 rollout 사이에 긋는 것과 같은 disaggregation 경계를 따라요. disaggregated-asynchronous 모드가 존재하는 이유가 통째로 그거고요.
이걸 하려고 5만 장짜리 클러스터가 필요하진 않아요. 그게 희소식이에요. LongCat의 메가 클러스터는 스펙트럼의 플래그십 끝이지만, 방법 자체는 일부러 값싸게 설계돼 있어요. on-policy distillation은 RL의 대략 10분의 1 GPU-시간이고, 약 6배 적은 샘플로 teacher 동등에 도달해요. 이 레시피의 가장 작은 유용한 버전은 이래요. 오픈 스택(slime, verl, 또는 SGLang/vLLM과 함께하는 TRL)으로 하나의 8×H100 / 8×H200 노드에서 도메인 RLVR teacher 한둘을 돌리고, 그다음 같은 노드에서 student로 향하는 한둘-teacher on-policy-distillation 패스를 돌리는 거예요. teacher는 처음엔 co-located scoring 서비스로 두고, teacher 수를 늘릴 때만 두 번째 노드로 disaggregate하세요. OPD가 값싼 단계라, 잘 프로비저닝된 단일 노드 하나로 이 레시피의 전체 형태를 end-to-end로 재현할 수 있어요.
그 생산/통합 분리는 프로비저닝 이야기이기도 해요. 능력 생산은 다수의 독립적인 병렬 RLVR 잡이에요. 각 도메인 팀은 공유 모놀리스에 상시 예약을 잡는 게 아니라, 필요할 때 자기 노드를 원해요. 능력 통합은 teacher-serving과 함께하는 더 짧고 무거운 Distillation 방법이고요. 이게 정확히 GPU 클라우드가 잘하는 워크로드 형태예요. 팀이 필요로 할 때 H100 / H200에 걸쳐 도메인별 병렬 잡을 띄우고, 메모리·bandwidth가 무거운 통합·서빙에는 B200 / B300(그리고 가장 큰 MoE에는 GB200 NVL72)을 잡는 거죠. VESSL Cloud에서는 각 단계를 필요한 티어에 올려둘 수 있어요(A100, H100, H200, B200, GB200, B300을 한 플랫폼에서). spot, on-demand, reserved 중에 고르고, 쓴 만큼만 내면서요. 그래서 통합 패스 사이에는 환경을 허물지 않고도 teacher 비용을 멈출 수 있고, 메가 클러스터가 필요해지기 전에 단일 노드에서 레시피 전체를 재현할 수 있어요.
핵심 정리
- 2026년 오픈 모델의 전환은 능력을 학습하는 새 방법이 아니라, 능력을 통합하는 새 방법이에요(RLVR이 독립적 스페셜리스트를 만들고, on-policy distillation이 그들을 융합해요). 테크 리포트들이 여러 프론티어 랩별로 이걸 뒷받침해요.
- 레시피는 일관되지만 다이얼은 달라요. DeepSeek은 teacher-offload/TileLang 스택과 actor-as-reward-model로 full-vocabulary를 가고, Xiaomi는 형식화를 적어냈고(최종 consolidation 단계로서의 MOPD), Zhipu는 열린 slime 스택 위에서 cross-stage로 하고, Kwai는 13개 teacher로 비전까지 가져가요.
- 용어 주의 하나: Qwen3는 "distillation"을 반대 방향으로 써요. same-scale 스페셜리스트를 융합하는 게 아니라 큰 teacher를 작은 모델로 압축하는 거예요. 이 글의 on-policy distillation과 헷갈리지 마세요.
- 이러한 변화는 기존에 공유된 방법론에서 발전했어요(on-policy distillation은 GKD, MiniLLM, Thinking Machines Lab에서; RLVR은 DeepSeekMath와 AI2의 Tülu 3에서). 통합 메커니즘으로 처음이자 가장 균일하게 프로덕션화한 건 DeepSeek, Xiaomi, Zhipu, Kuaishou, Meituan이고, 이제 퍼지고 있어요. NVIDIA는 엔지니어링 쪽에서, Uni-OPD는 학술 쪽에서요.
- 운영상 MOPD는 teacher scoring, rollout, train 세 엔진의 disaggregated 워크로드예요. 단일 8-GPU 노드에서 재현되고, Blackwell급 메모리와 bandwidth로 스케일해요.
References (Part 2)
- MOPD: Multi-Teacher On-Policy Distillation for Capability Integration in LLM Post-Training (Xiaomi LLM Core) — arXiv 2606.30406
- DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence — arXiv 2606.19348
- MiMo-V2-Flash Technical Report (Xiaomi) — arXiv 2601.02780
- GLM-5: from Vibe Coding to Agentic Engineering (Zhipu) — arXiv 2602.15763; GLM-5.1/5.2 via Z.ai blog
- Kwai Keye-VL-2.0 Technical Report (Kuaishou) — arXiv 2606.10651
- Qwen3 Technical Report (Alibaba) — arXiv 2505.09388
- Nemotron-Cascade 2: Post-Training LLMs with Cascade RL and Multi-Domain On-Policy Distillation (NVIDIA) — arXiv 2603.19220
- Uni-OPD: Unifying On-Policy Distillation with a Dual-Perspective Recipe (Zhejiang University / Tencent) — arXiv 2605.03677
- Meituan LongCat-2.0 — official tech blog https://longcat.chat/blog/longcat-2.0/ · model card https://huggingface.co/meituan-longcat/LongCat-2.0 · code https://github.com/meituan-longcat/LongCat-2.0
- Open frameworks: THUDM/slime (https://github.com/THUDM/slime), verl, SGLang, vLLM
VESSL AI
뉴스레터 구독
AI 인프라 구축 노하우와 최신 GPU 소식을 매달 보내드려요.