TT Lab
Blog

한국어 English 日本語 中文

Get started
Blog

Blog

Does RL Selectively Filter: GRPO and pass@k Measured on a 0.5B Model

Status: Draft (2026-10-31), measured. All training and evaluations were run directly by the author on a single 8GB laptop GPU. The conditions and decision criteria were written down before viewing the results, and the two changes made before training (task and grading) are explained along with their reasons in Section 4. Paper figures were transcribed from the original arXiv texts along with their table and figure numbers. Writing Rules: Measured data is the default; unmeasured items are marked as "Unmeasured", and unverified items are marked as "Unverified".

Table of Contents

1. Question: Does RL Create New Capabilities

Since DeepSeek-R1 in early 2025, reinforcement learning has become the standard approach for building reasoning models on "problems with mechanically verifiable correct answers" (such as mathematics and code). This is referred to as RLVR (RL with verifiable rewards). The model generates multiple answers, increases the probability of correct answers, and decreases the probability of incorrect ones.

However, whether this process creates capabilities that did not exist before, or simply makes correct answers that the model could already occasionally produce appear more frequently, is a different story. The tool used to measure this distinction is pass@k.

If RL merely "filters and selects," pass@1 will increase, but pass@k (for large k) will remain nearly unchanged, because the base model will eventually produce that answer if sampled enough times. If it creates new capabilities, pass@k must also increase.

2. What the Papers Say

GRPO: Comparing Answers for the Same Problem Without a Value Network

Proposed in DeepSeekMath (arXiv 2402.03300), GRPO is a method that removes the value network (critic) from PPO. It samples G answers for a single problem, subtracts the group meanfrom each answer's reward, divides by the standard deviation, and uses the resulting value as the advantage for all tokens in that answer. The different answers to the same problem serve as the baseline. The original paper's settings were a learning rate of 1e-6, a KL coefficient of 0.04, and 64 samples per problem. Figure 7 in the same paper already notes the observation that "RL increases Maj@K but does not increase Pass@K."

Dr. GRPO (arXiv 2503.20783) pointed out that the two divisions in the GRPO formula introduce bias. Dividing by answer length penalizes longer incorrect answers less, causing incorrect answers to become longer, while dividing by the group standard deviation places excessive weight on problems that are either too easy or too hard. Dr. GRPO proposes removing both and dividing by a constant instead. This experiment follows Dr. GRPO.

Intersection of pass@k Curves (2504.13837)

Yue et al., in "Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model?", increased k to hundreds or thousands across various models and tasks and plotted pass@k. When k is small, the RL model wins, but when k is large, the base model catches up and surpasses it. The problems solved by the RL model were almost a subset of those solved by the base model. The measurement setup used a temperature of 0.6, top-p of 0.95, and n samples per problem (where n = the largest k in the curve) calculated using the unbiased estimator 1 − C(n−c, k)/C(n, k) , which this article also adopts. However, looking at Table 4 in the same paper, the MATH500 pass@256 for Qwen2.5-7B was 96.2 for the base model, 97.2 at 150 steps of GRPO, 96.0 at 300 steps, and 95.4 at 450 steps. At early training checkpoints, the upper bound actually increased slightly, and decreased as training continued longer. This implies that in short training runs like our current experiment, the upper bound can indeed increase.

RL Changes Only 1–4% of Tokens (2605.06241)

The 2026 paper "Rethinking RL for LLM Reasoning: It's Sparse Policy Selection, Not Capability Learning" examined the same question at the token level. Comparing greedy decoding before and after RL reveals that the locations where RL selects different tokens account for only 1–4% of the total, and the tokens selected by the RL model at those positions were almost always within the top 5 candidate tokens of the base model (Table 2, mean rank around 2). The modified positions were concentrated at decision points where the base model hesitates (high entropy). Based on this observation, the authors built ReasonMaxxer, which corrects choices at decision points using just 50 problemsand offline rollouts without RL, and report that it achieved performance comparable to full RL (Table 3). Two points of caution when reading the original text: ReasonMaxxer uses offline training weighted by advantages rather than GRPO, and the statement in Section 3.1 that "not a single shifted position exists" does not align with the 0.01–0.12% figure in Table 2. In Table 3 of the same paper, applying GRPO to Qwen3-0.6B resulted in a modest increase on MATH500 from 0.338 to 0.372.

Even with a single example (2504.20571)

1-shot RLVR applies to Qwen2.5-Math-1.5B by a single problemand reports that after duplicating it to perform RLVR, MATH500 rose from 36.0 to 73.6, which was equal to the result of training on the 1.2k problems containing that problem. The selection criterion was a problem with high variance in accuracy during training, and problems that the base could never solve or had incorrect labels were ineffective. Comparing it to a baseline given only format rewards, the authors isolated the "portion for fixing the format," and the fact that this portion is large in small model experiments connects to the core lesson of this experiment.

It may be different for small models (2607.16097)

"Understanding Reasoning from Pretraining to Post-Training," which reviewed everything from pretraining to RL for a 5M–1B model using chess, viewed RL not as evenly sharpening, but as a redistribution combining answer amplification, rare answer discovery, and wrong answer amplification. Also, in the 20M model, pass@16 rose quickly in the early stages of RL (Figure 2). This is a warning that when reproducing with a small model, one should not expect a crossover to necessarily occur.

3. Experimental Design

We scaled down the size so it can be run on a single 8GB laptop GPU.

The core of the loss is a few lines.

rs = np.array([score(t, p) for t, _ in outs])     # 그룹 8개의 보상(0 또는 1)
adv = rs - rs.mean()                              # Dr. GRPO: 표준편차로 나누지 않는다
...
logp, mask = completion_logprobs(model, tok, prompts, completions)   # 응답 토큰의 log π
loss = -(A * logp * mask).sum() / (16 * 8 * 384)  # 응답 길이로 나누지 않는다(상수)
loss.backward()

Three Conditions and Baseline

Condition Training Problems Per Step Over 150 Steps
Many problems Mixing 4,000 and going through once each 16 distinct problems 2,400 problems gone through once each
16 problems 16 problems with high p(1−p) among those where the base pass rate is between 0 and 1 The same 16 problems 150 times each problem
1 problem Replicating the first one among them 16 times (1-shot RLVR method) The same 1 problem 2,400 times
No RL Sampling the base model as is 32 times for pass@k

For the 16-problem and 1-problem conditions, the first 128 training problems were solved 16 times each by the base (temperature 1.0) to select problems with mixed pass rates. Among the 128, 31 were between 0 and 1. This is the same idea as the "edge of competence" in 2605.06241 and the "problems that occasionally yield correct answers" in 1-shot RLVR.

Learning Rate: Since there is no basis in the papers for the learning rate when performing GRPO with LoRA, we briefly looked at {1e-5, 5e-5, 2e-4} with 30 steps of the "Many problems" condition and used the value with the highest average reward in the last 10 steps identically for all three conditions. The results were 1e-5: 0.38, 5e-5: 0.60, and 2e-4: 0.00. At 2e-4, the policy collapsed and all answers repeated the same words until the end of 384 tokens.

Evaluation: 32 samples per 128 test problems (temperature 0.6, top-p 0.95), pass@1–32 using the U-estimator. Base and 75·150 steps for each condition. Judgment produced a 95% interval for the (RL − base) difference via problem-level bootstrapping (2,000 times). Pre-determined criteria are "pass@1 rises = interval lower bound > 0" and "upper bound remains unchanged = pass@32 difference interval includes 0 or the difference is less than 1/3 of the pass@1 difference".

4. Two Things Changed Before Training

Before seeing the results, I changed the predetermined conditions twice before training. Both changes were made before running a single step of RL, and the times and reasons for the changes were documented in the pre-registration record.

1. Task: Countdown → Arithmetic. The initial plan was countdown (combining three numbers with arithmetic operations to reach a target number). Measuring the baseline pass rate, the 0.5B model almost never got a single problem right out of 32 problems × 16 samples (pass@16 0–3%). If all 8 groups are 0, the advantage is 0, so GRPO has no signal to learn from (p^G + (1−p)^G analyzed in 2609.25463). Therefore, I changed it to arithmetic.

2. Splitting grading into two, and moving to harder arithmetic. For two-digit × two-digit − three-digit arithmetic, the baseline pass@1 was 0.10, but when graded by ignoring the answer format and looking only at the "last integer in the response," it was 0.62, and pass@32 was 1.0. The model already knew how to calculate; what it lacked was <answer> the tag format (format compliance rate 25%). This task cannot answer the question "Does RL raise the upper limit of capability?" (it is already 1.0). So I changed two things.

Task candidate (32 problems × 32 samples) Strict pass@1 Strict pass@32 Lenient pass@1 Lenient pass@32 Format compliance rate
Two-digit × two-digit − three-digit 0.097 0.875 0.623 1.000 24.5%
Three-digit × two-digit − three-digit 0.010 0.281 0.179 0.812 16.3%
Four two-digits: a×b − c×d 0.021 0.438 0.436 0.969 11.6%
Three-digit × three-digit − four-digit 0.004 0.094 0.098 0.594 11.6%

Additionally, I found that a repetition penalty of 1.1 was present in the model file's generation_config.json and interfering with sampling, so I fixed it to 1.0 before training. Since the RL gradient formulation assumes that samples come directly from the policy, hidden sampling settings quietly alter the results. There were also instances where pods died twice due to memory limits, but this was unrelated to the conditions.

5. Results

Learning curves

학습 중 보상(정답 비율, 5스텝 이동 평균) 스텝마다 문제 16개 × 응답 8개, 온도 1.0, 실측 0 0.2 0.4 0.6 0.8 1 1 25 50 75 100 125 150 GRPO 스텝 평균 보상 16문제 1문제 많은 문제
Figure: Reward during training
Condition Average reward for first 10 steps Last 10 steps Response length (start → end) Time per step
Many problems 0.17 0.68 131 → 173 tokens 8.4 sec
16 problems 0.63 1.00 118 → 384(max) 10.7 sec
1 problem 0.80 1.00 76 → 62 3.5 sec

The 16-problem and 1-problem conditions solved all training problems within 50 steps. After that, all 8 groups were 1, so the advantage was 0, meaning there was no further signal to learn from.

pass@k: With two types of grading

pass@k, 느슨한 채점(마지막 정수) 0.5B 지시 모델, 테스트 128문제 × 32개, 온도 0.6, 따로 적지 않으면 150걸음, 실측 0 0.2 0.4 0.6 0.8 1 1 2 4 8 16 32 k(뽑는 개수, 로그 눈금) pass@k 베이스 많은 문제 75걸음 많은 문제 1문제 16문제
Figure: pass@k lenient grading
pass@k, 엄격 채점(태그 안의 답) 0.5B 지시 모델, 테스트 128문제 × 32개, 온도 0.6, 따로 적지 않으면 150걸음, 실측 0 0.2 0.4 0.6 0.8 1 1 2 4 8 16 32 k(뽑는 개수, 로그 눈금) pass@k 많은 문제 75걸음 많은 문제 1문제 베이스 16문제
Figure: pass@k strict grading
Model Grading pass@1 pass@4 pass@32 Format compliance rate
Baseline Strict 0.019 0.066 0.258 16.2%
Baseline Lenient 0.248 0.466 0.836
Many problems 75 steps Both identical 0.660 0.741 0.805 100%
Many problems 150 steps Both identical 0.610 0.642 0.680 100%
16 problems 150 steps Both identical 0.141 0.166 0.195 100%
1 problem 150 steps Both identical 0.182 0.231 0.297 99.9%

Models after RL all adhered to the format nearly 100%, making strict grading and lenient grading identical. Only the baseline shows a difference.

Pre-determined judgment (problem-level bootstrap, 95% interval)

Model Grading Δpass@1 Δpass@32 Judgment
Many problems 75 Lenient +0.412 [+0.341, +0.484] −0.031 [−0.109, +0.047] pass@1 increased, Upper limit unchanged
Many problems 150 Lenient +0.361 [+0.269, +0.447] −0.156 [−0.250, −0.055] pass@1 increased, Upper limit decreased
16 problems 150 Lenient −0.107 [−0.154, −0.060] −0.641 [−0.727, −0.547] pass@1 decreased
1 problem 150 Lenient −0.067 [−0.116, −0.019] −0.539 [−0.625, −0.453] pass@1 decreased
Many problems 75 Strict +0.641 [+0.567, +0.709] +0.547 [+0.445, +0.641] Both increased
16 problems 150 Strict +0.122 [+0.072, +0.175] −0.062 [−0.133, +0.016] pass@1 increased
1 problem 150 Strict +0.163 [+0.110, +0.223] +0.039 [−0.031, +0.109] pass@1 increased

Under lenient grading, the number of problems solved correctly at least once out of 32 (coverage) decreased from 107 in the baseline to 103 for many problems at 75 steps (12 solved only by RL, 16 solved only by baseline), and to 87 (12 / 32) at 150 steps. It was 25 for 16 problems and 38 for 1 problem.

How the same problem is solved

Response to the first test problem 413 * 41 - 882(correct answer 16051) (150 steps, temperature 0.6, first of 32, line breaks indicated by /).

6. Interpretation

1. GRPO with many problems "selected." pass@1 viewed as calculation capability increased significantly from 0.25 to 0.66, but the probability of getting at least one right when sampled 32 times (pass@32) was statistically tied at 0.84 to 0.81. As k is increased, the baseline catches up; the 75-step model was overtaken by the baseline between k=16 and 32, and the 150-step model between k=8 and 16 (Figure). The crossover observed by Yue et al. appeared in the 0.5B model and arithmetic task as well. Extending training to 150 steps caused pass@32 to drop significantly to 0.68, and coverage also shrank from 107 to 87 problems. This is in the same direction as "longer training decreases pass@256" in Table 4 of the same paper. What was selected is also visible in the responses: breaking down multiplication into (40 + 1) is a solution already present within the baseline distribution. This aligns with the figure that "choices at decision points among top baseline candidates are altered," as stated by Akgül et al. (2605.06241) (token-level analysis was not measured).

2. Looking only at strict grading would have led to a different conclusion. Under strict grading, pass@1 increased across all three conditions, and the many-problems condition saw pass@32 rise sharply from 0.26 to 0.81. These are numbers that could be interpreted as "RL raised the upper limit." However, most of that was <answer> the share gained from learning to use tags. The baseline's format compliance rate was 16%, whereas it was 100% after RL. This is why 1-shot RLVR uses a separate "format reward baseline" and why Dr. GRPO pointed out template issues. The smaller the model, the larger the share format occupies.

3. GRPO with few problems failed in this setup. The 16-problem and 1-problem conditions learned the format (strict pass@1 +0.12, +0.16) but saw their calculation capability actually drop (lenient pass@1 −0.11, −0.07), and diversity collapsed, pulling pass@32 down to 0.20 and 0.30. After correctly solving all training problems within 50 steps, the rewards were all 1, leaving no signal. In the meantime, they got trapped in bad habits like short solutions doing "single-line multiplication" or "repeating tags after the answer." This does not refute the findings of Akgül et al. (2605.06241) that "dozens of problems are enough" or those of 1-shot RLVR. The conditions are different.

Ultimately, what this small experiment shows is that "doing RL with few problems seems to require an anchoring mechanism to keep the policy from drifting too far from the base." This is a hypothesis for the next experiment and is not yet measured.

7. Limitations

Raw Data and References

Sign in to like

Comments

No comments yet.

Sign in to leave a comment