기존 단일 에이전트 자가 대전(Self-Play) 방식의 한계를 극복하고 LLM의 추론 능력을 향상시키는 새로운 강화학습 프레임워크인 PopuLoRA를 소개합니다. 이 프레임워크는 모델 스스로 쉬운 문제로 수렴하는 현상을 방지하기 위해, 학습 과정에서 서로 경쟁하며 진화하는 교사(문제 생성) 모델과 학생(문제 해결) 모델 집단을 공동으로 훈련합니다. 이를 통해 모델이 지속적으로 더 어렵고 복잡한 과제에 도전하게 만들어 훈련 데이터가 고갈되거나 난이도가 정체하는 문제를 해결합니다.
번역된 본문
저자: Roger Creus Castanyer, Geoffrey Bradway, Lorenz Wolf, Maxwill Lin, Augustine N. Mavor-Parker, Matthew James Sargent
설명: 우리는 대형 언어 모델(LLM, 이하 모델)의 검증 가능한 보상을 활용한 강화학습(RLVR) 사후 훈련을 위한, 집단 기반의 비대칭적 자가 대전(Self-Play) 프레임워크인 PopuLoRA를 소개합니다.
외부 링크:https://arxiv.org/abs/2605.16727v1날짜: 2026년 5월 20일
소속: Vmax
검증 가능한 보상을 활용한 강화학습(RLVR)은 대형 언어 모델(LLM)이 사전 훈련만으로는 안정적으로 얻기 힘든 고도화된 추론 능력을 개발할 수 있게 해줍니다. 모델은 해결책을 자동으로 검증할 수 있는 과제에 반복적으로 도전하며, 시도가 성공할 때마다 강화됩니다. 모델이 생성한 해결책의 정확성을 검증할 수 있는 경우, 그 보상은 매우 명확합니다. 예를 들어, 모델이 단위 테스트를 통과하는 코드를 작성하거나, 대상 출력과 일치하는 입력을 찾거나, 답을 검증할 수 있는 수학 과제를 해결하거나, 결정론적 검증기 하에서 성공하는 경우가 여기에 해당합니다.
RLVR은 대규모의 검증 가능한 과제를 지속적으로 공급받아야 합니다. 해결책을 확인할 수 있고, 난이도가 모델의 현재 한계 부근에 머물며, 훈련의 유용성을 유지하기에 충분할 만큼 포괄적인 과제 말입니다. 오늘날 대부분의 시스템은 여전히 훈련이 시작되기 전에 고정되고 수동으로 엄선된 과제 분포에 의존합니다. 이러한 분포는 너무 쉽거나, 너무 좁거나, 적응 속도가 너무 느려질 수 있습니다. 합성 RLVR 과제는 직접 작성된 생성기로 만들어질 수 있으며, 이는 이미 검증 가능한 훈련 데이터를 확장하는 일반적인 방법입니다. 하지만 고정된 생성기 역시 훈련 과정의 상당 부분을 미리 정해놓게 됩니다.
자가 대전(Self-Play)은 더 적응적인 방법을 제공합니다. 모델이 훈련이 진행되는 동안 과제를 생성하고, 이를 풀어보며, 검증기의 피드백을 받을 수 있는 것입니다. 우리는 이러한 연구 작업을 기반으로, 과제 생성이 모델의 학습에 맞춰 적응하는 온라인 커리큘럼이 될 수 있는지를 탐구합니다. PopuLoRA는 이 방향으로 나아가는 첫 번째 단계입니다. 이는 교사(Teacher)와 학생(Student) 역할을 하는 LLM 어댑터 집단을 공동으로 진화시키며 훈련합니다. 교사는 검증 가능한 과제를 생성하고, 학생은 이를 풀려고 시도하며, 검증기가 보상을 제공합니다. 학생이 실력을 키우면 교사는 더 어렵고 폭넓은 과제를 찾아야 합니다. 교사가 다양해지면, 학생은 자신의 성장 속도에 맞춰 계속 변화하는 커리큘럼을 경험하게 됩니다.
자가 대전(Self-Play)과 그 실패 양상
적응적으로 데이터를 생성하는 실용적인 방법 중 하나는 단일 에이전트 자가 대전입니다. 즉, 하나의 모델이 스스로를 위한 과제를 제안한 뒤 이를 해결하려고 시도하는 것입니다. 우리가 연구한 코드 추론 환경에서 모델은 세 가지 유형의 과제를 생성합니다. 프로그램의 출력을 예측하는 code_o, 대상 출력을 생성하는 입력을 찾는 code_i, 입출력 예제에서 누락된 함수를 완성하는 code_f입니다. 샌드박스된 파이썬 실행기는 구문 분석이 되고, 실행되며, 결정론적으로 동작하는 프로그램만 허용합니다.
실제로 단일 에이전트 자가 대전은 스스로 보정(self-calibrates)되는 현상을 보입니다. 과제 생성이 자체적인 해결사가 이미 처리할 수 있는 유효한 과제로 수렴하여, 해결률이 100%에 가까워지고 커리큘럼이 점점 더 단순한 프로그램으로 붕괴하는 것입니다. 보상 곡선은 건전해 보이지만, 훈련 분포는 모델을 더 이상 밀어주지 않습니다. 이러한 붕괴는 생성된 프로그램에서 눈에 띄게 나타납니다. 단일 에이전트 기준선에서는 추상 구문 트리(AST) 깊이, 순환 복잡도, 코드 라인 수, 변수 수 등이 모두 감소하는 추세를 보입니다. 반면 PopuLoRA는 정반대의 방향으로 움직입니다. 훈련이 진행됨에 따라 생성된 과제는 더 길고, 깊으며, 구조적으로 더 다양해집니다.
PopuLoRA
PopuLoRA는 과제 생성을 과제 해결과 분리합니다. 자가 대전을 하는 단일 모델 대신, 전문화된 과제 생성자인 교사(T)와 해결사인 학생(S) 집단을 공동으로 진화시키며 훈련합니다. 매 단계마다 교사와 학생이 짝을 이룹니다. 교사가 과제를 제안하고, 짝을 이룬 학생이 검증기 하에서 이를 해결하려고 시도합니다. 교사는 짝을 이룬 학생이 풀지 못한 유효한 과제를 제공했을 때 보상을 받습니다. 따라서 난이도는 교사 자신의 능력이 아닌 다른 모델을 기준으로 측정됩니다.
PopuLoRA: Co-Evolving LLM Populations for Reasoning Self-Play Authors Roger Creus Castanyer, Geoffrey Bradway, Lorenz Wolf, Maxwill Lin, Augustine N. Mavor-Parker, Matthew James Sargent Description We introduce PopuLoRA, a population-based asymmetric self-play framework for reinforcement learning with verifiable rewards (RLVR) post-training of LLMs. External Link https://arxiv.org/abs/2605.16727v1 Date May 20, 2026 Affiliations Vmax Reinforcement learning with verifiable rewards (RLVR) gives large language models (LLMs; hereafter, models) a way to develop sophisticated reasoning behaviors that pre-training alone does not reliably produce: models repeatedly attempt tasks whose solutions can be checked automatically, and they are reinforced when those attempts succeed. When the correctness of model-generated solutions is verifiable, the reward is unusually clean: the model writes code that passes a unit test, finds an input that matches a target output, solves a math task with a checkable answer, or succeeds under any deterministic verifier. RLVR needs a steady supply of verifiable tasks at scale: tasks whose solutions can be checked, whose difficulty stays near the model's frontier, and whose coverage is broad enough to keep training useful. Today, most systems still rely on fixed, hand-curated task distributions chosen before training begins. Those distributions can become too easy, too narrow, or too slow to adapt. Synthetic RLVR tasks can be produced with hand-written generators, and this is already a common way to scale verifiable training data. But a fixed generator still defines much of the curriculum in advance. Self-play offers a more adaptive route: models can generate tasks, attempt them, and receive verifier feedback as training unfolds. We build on this line of work, asking whether task generation can become an online curriculum that adapts as the models learn. PopuLoRA is our first step in that direction. It trains co-evolving populations of teacher and student LLM adapters. Teachers generate verifiable tasks, students try to solve them, and the verifier supplies the reward. As students improve, teachers have to search for harder and broader tasks; as teachers diversify, students see a curriculum that keeps moving with them. Self-Play and Its Failure Mode A viable way to adaptively generate data is single-agent self-play: one model proposes tasks for itself and then tries to solve them. In the code-reasoning setting we study, the model generates three kinds of tasks: code_o , where it predicts the output of a program; code_i , where it finds an input that produces a target output; and code_f , where it completes a missing function from input-output examples. A sandboxed Python executor accepts only programs that parse, execute, and behave deterministically. In practice, we find that single-agent self-play self-calibrates : task generation converges toward valid tasks that its own solver can already handle, solve rate climbs toward 100%, and the curriculum collapses onto increasingly simple programs. The reward curve looks healthy, but the training distribution has stopped pushing the model. The collapse is visible in the generated programs. In the single-agent baseline, AST depth, cyclomatic complexity, lines of code, and variable count all trend downward. PopuLoRA moves in the opposite direction: the generated tasks become longer, deeper, and more structurally varied over training. PopuLoRA PopuLoRA separates task generation from task solving. Instead of one self-playing model, we train co-evolving populations of specialized task generators, called teachers (T), and solvers, called students (S). At each step, a teacher is matched with a student: the teacher proposes tasks, and the paired student attempts them under the verifier. A teacher is rewarded for valid tasks that the matched student fails to solve, so difficulty is measured against a different model rather than against the teacher's own ability. This turns difficulty into an inter-population signal. Teachers and students are different models, and both sub-populations continue changing throughout training. The result is an autocurriculum driven by cross-evaluation rather than by a single model's local notion of task difficulty. The populations are implemented as LoRA adapters on a shared frozen base model. Each member trains only a small low-rank update rather than a full model copy, while the dominant base-model computation is shared across teachers and students. This makes population training feasible on a single machine: memory scales with the sum of adapter weights, multi-LoRA inference routes batched requests to the correct adapter without swapping the base model in and out of memory, and the 4T+4S setting trains eight adapters with only a 1.31x wall-clock overhead. The Training Loop Each PopuLoRA step has five phases. First, teachers and students are matched using prioritized fictitious self-play over TrueSkill ratings, which concentrates training on near-balanced matchups where neither side dominates. Each teacher then generates a batch of code_i , code_o , and code_f tasks. The Python verifier filters out invalid or nondeterministic programs before students ever see them. The matched student attempts the valid tasks with multiple stochastic rollouts, and the verifier records the fraction of attempts that solve each task. Teachers and students are then updated jointly with policy-gradient RL. Students receive the verifier reward for producing correct, well-formed solutions. Teachers receive reward only for valid tasks that are hard for the matched student, with a zero-reward floor for tasks no rollout solves. This floor matters: it prevents teachers from being rewarded for impossible or degenerate tasks. The teacher objective therefore favors the contested middle: valid tasks that are difficult but learnable. At the core, teacher reward is tied to the matched student's solve rate: R teacher ( p ) = { − 1 if p fails to parse, execute, or is non-deterministic, 0 if ρ ( t , s , p ) = 0 , 1 − ρ ( t , s , p ) otherwise, R_{\text{teacher}}(p) \;=\; \begin{cases} -1 & \text{if } p \text{ fails to parse, execute, or is non-deterministic,} \\ 0 & \text{if } \rho(t, s, p) = 0, \\ 1 - \rho(t, s, p) & \text{otherwise,} \end{cases} R teacher ( p ) = ⎩ ⎨ ⎧ − 1 0 1 − ρ ( t , s , p ) if p fails to parse, execute, or is non-deterministic, if ρ ( t , s , p ) = 0 , otherwise, Here, ρ(t, s, p) denotes the fraction of rollout attempts by the matched student s that solve task p from teacher t . Lowercase t and s denote the specific matched teacher and student; uppercase T and S refer to the teacher and student roles or counts. Every few update steps, the weakest members of the teacher sub-population and the student sub-population are replaced through LoRA weight-space evolution. Evolution in Weight Space PopuLoRA uses evolution as the replacement step of population-based training. The replacement operators act directly on LoRA tensors. Mutations perturb one parent adapter; crossovers combine two parent adapters into a child. Some operators perturb singular values or rotate low-rank subspaces, while others swap layer-module slots between parents. Because these operators act on low-rank LoRA tensors, new population members can be produced in seconds and re-enter gradient training immediately. The key requirement for an operator is capability retention. A replacement child should not reset to the frozen base; it should preserve enough parent behavior to re-enter training near the current frontier. In our retention tests, the operators used in the live population recover to parent-level reward within roughly 10-20 update steps after reinjection. Crossovers are especially important because they can combine complementary specializations. Parents trained along different trajectories can produce a child that retains useful behavior from both, giving the population a way to