精读:把 prompt 课程从「排难度」换成「排目标」——Fisher–Rao 弧长上的高斯课程 ARCUS
ARCUS 把 GRPO 的 prompt 采样搬到 Bernoulli 族的 Fisher–Rao 弧长坐标 ψ=arcsin√p,在这个坐标上放一个高斯核当课程:核的中心是要优化的目标,宽度由目标给出,位移由浪费预算决定,一行不改 GRPO 的损失却把平均分抬高 2.8–2.9 点、比 dynamic sampling 少花 48–57% 的 rollout。
1 论文概览
一句话总结:ARCUS(ARc-length CUrriculum Sampling)把 GRPO 的「这一轮挑哪道题来 rollout」搬到 Bernoulli 族的 Fisher–Rao 弧长坐标 上,在弧上放一个高斯核当作课程——核的中心就是你想优化的目标(pass ↔ pass@ ↔ pass@ 家族里的某一个),核的宽度由目标自己给出,核往哪移由一个「预计浪费」预算 决定;它一行都不改 GRPO 的损失,只替换采样器,在三个 backbone 上把 GRPO 的六基准平均分抬高 2.8–2.9 点,比 dynamic sampling(DS)高 1.1–1.2 点,生成的 rollout 比 DS 少 48–57%。
核心问题:GRPO 对每个 prompt 采 条响应,用组内均值与标准差归一化奖励。一组响应全对或全错时标准差为 0、每条 advantage 恒为 0,梯度为零,而 次 rollout 已经付过钱了。论文在引言里点出这类零方差组「约占均匀采样 batch 的一半,且比例随策略变强而上升」,本文表 2 实测 GRPO 的有信息组占比只有 47%。
主要贡献(对应论文 §1 的四条自述):
- 几何:证明弧长 是 GRPO 的原生坐标,并给出四条性质——期望更新在弧上均匀(Prop. 1,只差两端宽约 的斜坡)、零方差概率被 两条高斯边界层界住(Prop. 2)、 次 rollout 的证据方差恒为 (Prop. 3)、pass@ 的弧长梯度是一个众数在 、方差 的高斯(Prop. 4)。
- 推论:Corollary 1 把「采样器」和「目标」对上号——采样权重 固定时,GRPO 在上升 ,其中 。均匀采样还原出 Davis & Recht 的 arcsine 目标,弧长上的高斯 还原出「通过率超过 的题数」的平滑计数。
- 方法:ARCUS = 弧长 Kalman 信念 + 目标匹配高斯核 × 有信息组概率 + frontier pacing,全部闭式,不花一次 rollout 做预测。
- 证据:三个 backbone、六个数学基准、表 1 里八个对照方法,外加 Dr.GRPO / DAPO / RLOO 三种损失、、两个额外 backbone 与第二个训练池。
2 方法详解
架构:一个只替换采样器的插件
ARCUS 插在 GRPO 的 prompt 采样阶段(论文图 2、Algorithm 1)。Eq. 1 的 advantage、裁剪代理目标、优化器一行不改。每道题持有一个信念 ,初值取 Jeffreys 先验在弧上的矩 ,观察过 100 道题之后换成经验 Bayes 先验。每一步:
- 预测:,。漂移项 来自「logit 空间一次共享能力增益 会把 推动 」的推导(附录 B.6),两端不动、中间动得最快; 与 用新息的矩匹配在线拟合(Mehra 1970)。
- 更新:观测到 个成功,走一次标量 Kalman。 时用 Anscombe 估计 、观测方差 ; 或 时直接取 或 、——零方差组不是废证据,它是一条边界层似然,把信念往死区里拉。
- 打分:,核重叠 与目标高斯做闭式卷积(分母里加上 ,少见的题窗口自动变宽),,。
- 采样:按 做 Gumbel-top-,(默认 )。
- 选目标:在 41 个目标的网格 上预测候选产出 ,取满足 的最难目标,每步位移不超过 rad;warm-up 期间钉在 pass@1()。
- 后选: 个候选全部更新信念,有信息组按分数取前 个进 GRPO 更新。
关键创新点:三个启发式选择被几何一次性定死
论文 §1 把已有的 predict-then-select 方法一锅端成一句话:它们在三个选择上各拍一次脑袋——用什么坐标比通过率(原始 还是 logit)、偏好区间多宽、目标定在哪(通常钉在 )。ARCUS 的立场是这三个都不是自由的:
“These choices are not free, because GRPO has already fixed a geometry: its normalization makes the population update ascend .” —— §1 Introduction
§4 的「Existing selectors as special cases」把九个基线逐个定位成「三个选择里错了一个」:Foster et al. 的 learnability sampling 用 ,等于 ,即一个 pass@1 核被从 收窄到 ;CurES 的 是 ;FG-ExPO 在原始 上放高斯,换到弧长后宽度随 变,形状由参数化决定而不是由目标决定;logit 空间的 Kalman 滤波(KGPS)恰好选在零方差证据噪声无界的那一个坐标上。我按论文给的公式复算了一遍:把 代入, 成立; 在 附近的 Laplace 高斯是 ,平方后是 ;Prop. 4 的 在 上与 逐位相等。这套代数我自己验过,是自洽的。
第二个创新是把「目标」本身做成了可调旋钮。: 落在 , 落在 。目标越难,覆盖越好,代价是逼近下死区、产出掉下去(表 9:pass@8 的产出只有 47%)。pacing 规则把这件事变成一个约束满足问题:在产出不低于最优减 的前提下,取最难的那一档。
与基线方法的区别
分两族。evaluate-then-filter(DS、GRESO)先生成再丢:DS 一直生成到凑满 个有信息组为止,本文实测 ×2.41–2.94 倍 rollout、41% 产出。predict-then-select(GCS、AdaRFT、CurES、MoPPS、DPS、KGPS)预测通过率再挑:不额外花 rollout,但坐标、宽度、目标三件事全靠拍。ARCUS 站在第二族的位置上(rollout-free),把三件事交给几何,并额外加了一件两族都没做的事——在生成之前就把浪费预测出来(Prop. 7:期望浪费组数 )。
3 实验结果
主要指标
三个 backbone 都训在 DAPO-Math-17k 上,、、300 次更新、lr 、无 KL,评测 AIME24/25(各 30 题,mean@32)、AMC23(40 题,mean@16)、MATH500 / Minerva / OlympiadBench(mean@4),三个 seed。
| 方法 | Roll. | 1.5B | 7B | Qwen3-4B-Base |
|---|---|---|---|---|
| Base | – | 19.2 | 26.8 | 29.7 |
| GRPO | ×1.00 | 34.8 | 44.1 | 46.3 |
| KGPS(最强预测式基线) | ×1.00 | 36.3 | 45.7 | 47.8 |
| DS(最强总基线) | ×2.41–2.94 | 36.5 | 45.7 | 48.0 |
| ARCUS | ×1.00 | 37.0 | 46.2 | 48.5 |
| ARCUS | ×1.25 | 37.6 | 46.9 | 49.2 |
论文摘要的两个 headline 都站得住:相对 GRPO +2.8 / +2.8 / +2.9,相对 DS +1.1 / +1.2 / +1.2,且 单位是百分点而不是比值(,不是 )。rollout 侧的 48–57% 也算得回来:表 2 是 ,按各 backbone 的倍率算是 (1.5B)到 (7B)。
效率那张表值得单独看一眼:DS 从 41.6 小时降到 24.1 小时,只省了 42.1%,比 rollout 的 48% 少——因为 policy update 那 5.5 小时和 reward 计算不随采样缩。token 侧省 50.4%(1.33B→0.66B)。摘要那句「达到 DS 最终精度只需 0.45M rollout」= DS 的 30.4%,与「70% fewer」一致。
与 SOTA 的对比:逐列看,MATH500 是例外
摘要写「三个 backbone 上平均最好」,逐列拆开则是另一种形状:ARCUS 在 AIME24 / AIME25 / AMC23 / Minerva / Olympiad 五列上都是第一,MATH500 这一列三个 backbone 全部输给 DS(75.2 vs 75.3、81.8 vs 81.9、85.1 vs 85.3)。论文自己点破了这一点:
“gains concentrate on hard benchmarks … but on MATH500, where DS stays best on every backbone, as expected from a target that spends the budget on prompts the policy cannot yet solve reliably.” —— §5.2 Main Results
换成「逐列对 DS」的口径,余量的分布是另一幅图:AIME24 上 +1.6 / +2.0 / +2.0,AMC23 上 +1.9 / +1.8 / +1.8,而 Minerva 上只有 +1.1 / +0.7 / +1.1,MATH500 是负的。也就是说,相对 DS 的逐列余量在 到 之间,平均下来才是摘要里那句 +1.1~+1.2;摘要选的 +2.8 是相对 GRPO 的平均值,把两件事合成了一个数。
显著性:n=3 的 seed 标准差该怎么读
表 7 报三个 seed 的均值和标准差,正文写「ARCUS 对 DS 的优势在每个 backbone 上都超过三个标准差」。我按差值标准误重算了一遍:
| backbone | 差值 | Arcus s.d. | DS s.d. | 差值 ÷ Arcus s.d. | ||
|---|---|---|---|---|---|---|
| 1.5B | 1.15 | 0.29 | 0.33 | 0.439 | 2.62 | 3.97 |
| 7B | 1.20 | 0.27 | 0.30 | 0.404 | 2.97 | 4.44 |
| Qwen3-4B | 1.20 | 0.28 | 0.31 | 0.418 | 2.87 | 4.29 |
「超过三个标准差」在两种单侧读法下都成立(3.48–4.44)。按两样本差值的标准误则是 –; 时 检验自由度约 4,临界 2.776,于是 1.5B 那一档不过线、另两档勉强过。再叠一条: 估出来的标准差本身有约 50% 的相对误差,「ARCUS 的方差是全场最低」这个结论同样落在这个噪声带里。
消融:证明了稳健性,没有证明归因
把表 3 与表 8 合起来看,除掉「加大候选余量」的 (47.02)这一档,其余改动后的配置落在 45.87–46.71。两个数摆在一起:
- 组内极差 0.84(46.71 − 45.87);
- 组间差(对 GRPO 44.08 的余量)1.79–2.63。
差一个量级,说明这张消融表能证的是「拆掉任何一个部件都不会崩」,不是「几何贡献了那份收益」。更具体一点:论文自称最关键的核部件是死区因子 (去掉 −1.03),可去掉它之后的 45.87 对 DS 的 45.70 只领先 0.17 分,低于上表的标准误。「最关键部件」的判定与「去掉它还赢不赢基线」不是同一件事。
另一处:论文说「Geometry matters most」,依据是换成原始 上的高斯掉 0.69、换成 logit Kalman 掉 0.96。这两个数都小于对 GRPO 的总余量 2.82,也小于换成奖励反馈式 pacing 的 0.85 与去掉死区因子的 1.03。
三处我自己核过的账
(一)headline 的 +2.8 里,有多少是「剔掉零方差组」这一件事?
Corollary 1 对 DS 的判断是「只重标定、不改方向」,理由是零方差组的梯度逐条为零,丢掉它们不改变求和。按这个逻辑往下推一步:GRPO 每步 256 个 prompt 里约 47% 有信息,即约 120 个有信息组;DS 凑满 256 个;ARCUS 是 个。ARCUS 与 DS 的每步有信息组数几乎相同(253 vs 256),两者相对 GRPO 都约 2.1 倍。 于是表 1 里 GRPO→DS 的 +1.6~+1.7 与 ARCUS→DS 的 +1.1~+1.2,账面上属于两种不同性质的收益:前者是「把分母里那 53% 零梯度项拿掉」,后者才是「挑题挑得更好」。摘要选了 +2.8 这个合并后的数。
这里有个论文没补的对照臂:如果「剔零方差」真是纯重标定,那么一个「GRPO 但只把零方差组从分母里去掉、并相应放大步数」的配置应当能复现 DS 的大部分收益;反过来,一个「DS 但把有信息组的权重缩到与 GRPO 同尺度」的配置能把它剥掉。两条臂都不在实验里。
补一句更细的:Corollary 1 对 DS 的「只重标定」结论,成立在「先均匀采一批、再把零方差组从平均里剔除」这个读法下。而附录 E 里 DS 的实现是「生成候选 batch 直到凑满 个有信息组」——这是拒绝采样,隐含权重 ,本身就是一条以 为中心、两侧各宽约 的软窗。两种读法差一个 ,论文没区分。
(二)pacing 落点超出了它自己的浪费预算。
附录 B.8 在锐信念假设下解出 。把表 10 的实测落点代回精确式 :
| 实测 | 封闭形式前沿 | 预算 | 实测/预算 | |||
|---|---|---|---|---|---|---|
| 4 | 0.43 | 0.1397 | 0.40 | 0.1552 | 0.1550 | 0.90× |
| 8 | 0.29 | 0.0646 | 0.34 | 0.0362 | 0.0378 | 1.71× |
| 16 | 0.18 | 0.0418 | 0.20 | 0.0281 | 0.0300 | 1.39× |
论文用「与封闭形式前沿相差不超过 0.05」来报告吻合度(,成立的)。换到它声称要控制的那个量上,同一个偏差是 1.71 倍——因为 是 的指数函数, 轴上差 0.05 在 waste 轴上不是同一个量级。「差几个百分点」与「超支多少」是两件事,pacing 的 是后者。
(三)「期望更新在弧长上均匀」在 上成不成立?
我把 直接算了一遍(与论文表 4 的 min 值 0.51 / 0.70 / 0.85 / 0.94 对上,说明实现一致)。 时 上 从 0.698 到 0.928,起伏 1.33 倍; 是 1.59 倍。「均匀」严格说是 的极限性质。
把范围收窄到 pacing 真正走过的区间, 上 是 0.843–0.928,只差 1.10 倍;在默认落点 处 ,比 处的 0.9278 低 3.5%。所以这条几何在本文的工况下是够用的,「均匀」两个字只有在把两端斜坡也算进来时才需要打折。这一条我原本准备当批判写,代入实际区间后不成立,改成实测量。
4 个人分析
亮点
第一,Corollary 1 是本专栏二十六期里第一次见到「采样器 = 目标」被写成一条可执行判据。 Davis & Recht 说的是 advantage 决定目标,本文补上了对称的半边:采样权重 同样决定目标,而且不花那份零方差组的钱。两半边还能合成——pass@ 的 advantage 配 pass@ 匹配的采样器,论文留给未来工作。这条推论的可操作之处在于它把「课程」这个一直靠手感的东西变成了一个可调参数族上的点。
第二,零方差组被重新定义成证据而不是垃圾。 现有方法里它要么被丢(DS)、要么被跳过(GRESO)、要么被想办法救活(Le et al.、Liu et al.)。ARCUS 给它一条边界层似然 或 ,直接进 Kalman。消融给了对照:改用 Anscombe 估计处理零方差组要付 0.57 分,因为死题的信念停在 而不是塌进死区(表 8)。这是全篇最便宜的一个改动——不用多采一条 rollout。
第三,stale-easy 偏差被写成了可测的量。 Prop. 5 给出:不带漂移的信念,当前弧长会比信念高 ,通过率高 。代入 、间隔 ,一个被记成 的题实际已在 0.67。图 4d 用实测印证:MoPPS 与 KGPS 漂到真实通过率 0.75–0.8 的题上,ARCUS 的中位数守在 0.5 附近而下四分位伸向更难的题。把「历史方法会偏」从观察变成一条有系数的公式,是这一篇最硬的部分。
局限性
- 适用范围写在自己的 Limitations 里:二值奖励 + 标准差归一化。去掉标准差的 Dr.GRPO、RLOO 换了一套核(附录 C 除以 ),收益从 +1.20 掉到 +1.06 / +1.09;连续奖励要先二值化。 时两条死区盖住大半条弧,任何选择器都难办。
- 规模:数学推理、模型不超过 7B、。代码与 agent 任务没测,而论文结论部分恰恰声称这套几何适用于「任何二值验证器」。
- 单一全局漂移:作者自己在 Failure modes 里承认「强异质迁移下,单个全局漂移低估了进步快的主题的移动速度」。
- 超参的选择集很小:附录 E 写明 ARCUS 的超参是在 Qwen2.5-Math-1.5B 上用 500 道留出 DAPO 题选出来的。500 题、单一 1.5B backbone,然后固定到全部 backbone 与池子。附录 F 的敏感性扫描显示「每个被测值都赢 DS」——按上面的同一条判据,这证明的是稳健性下界,不是最优性。
- warm-up 占掉 18% 的步数: 步,占 300 步的 18%,这段时间信念几乎无信息、采样近乎均匀(表 14:默认先验下 warm-up 产出 51%,只比 GRPO 的 47% 高 4 个点)。
- MATH500 上三战皆负:论文给了解释(目标把预算花在还做不出来的题上),解释成立,但它是这条目标选择规则的直接代价,不是意外。
对大模型领域的影响
这一篇真正的位移不在 +2.8 这个数上,而在它把「prompt 课程」的定义换了:过去排难度(easy-to-hard、学习进度、),这里排目标—— 在 pass ↔ pass@ ↔ pass@ 这条族上滑动,滑多快由 waste 预算决定,easy-to-hard 是涌现出来的副产品(图 4a)。这带来一个可复用的判断句式:当有人给你一条 prompt 课程时,先问它在优化哪个目标,再问它为此付了多少浪费。 论文把这两个问题都做成了闭式可算的量。
与本专栏的关系上,它也给了主线一个新坐标。前二十五期一直在动训练信号本身——挑哪些 token(TrimSFT、IER)、挑哪些轨迹(DART-SD、SPADE)、信用分配怎么记账(PACT、BPO、CRR)。ARCUS 问的是另一层:在信号口径完全不动的前提下,光靠改变「哪些题进入这一步」,能拿走多少。答案是 +2.8,其中约 1.6 来自与 DS 共享的「剔零方差」效应,1.2 来自挑题本身。
5 实践启示
可以借鉴的技术
- Anscombe 变换 + 边界层似然: 配 ,零方差组改用 / 而不是继续用点估计。这一条与任何需要跟踪「通过率」的系统正交——数据集难度画像、评测集题目分拣、agent 环境的可解率台账都能直接用。实测收益:通过率预测误差 0.17(logit Kalman)→ 0.12(折扣 Beta)→ 0.09(ARCUS)。
- 把「陈旧」写成带系数的公式:凡是「上次见到时是中档,现在变简单了」这类偏差,都能套 Prop. 5 的形式 ,然后用一个乘性漂移项抵掉。这个模板不依赖信息几何,只要有「共享能力增益」的假设就能用。
- Gumbel-top- 而不是贪心:消融里 (贪心)掉 0.53、(按分数比例采)掉 0.68,默认 。在「用带噪声的估计去挑样本」这件事上,保留一点随机性是免费的。
- 把预测产出与实测产出同框监控:附录 G 的 Practical recommendations 里唯一一条诊断建议——两者持续有差距就说明信念没校准,通常是漂移估计还没收敛。这是可以当天加进训练看板的指标。
- 先算再花:Prop. 7 那句「predicting waste before paying for it」值得单独抄走。任何「先生成一大堆再筛」的流程,都值得问一句这个筛选能不能在生成之前用闭式量预测出来。
潜在应用场景
- RLVR 训练池的日常运营:ARCUS 是 verl 里替换 sampler 的一层,300 步合计只多花 0.01 小时(表 6 的 Select 列),对 17k 池子每步约 0.05 秒 CPU。算力紧张时先上 (表 1 里保住大部分收益且与 GRPO 等 rollout),算力宽裕时用 。
- pass@ 优先的场景:表 9 给了一张直接的旋钮表——目标从 pass 滑到 pass@ ,pass@16 从 64.9 单调升到 69.8,而 pass@1 在 pass@1 与 pass@2 之间见顶。要做覆盖(数据合成、self-consistency 采样池)就往右拧,要做单次可靠性就往左拧。论文自己说 pacing 落在 pass@1 上比任何固定目标都好、pass@16 上只差最好的固定目标 0.2。
- 评测集构建:弧长坐标本身就是一条「题目难度」的天然刻度——Jeffreys 先验在弧上均匀,通过率的 Fisher 信息恒为 4。用它排评测集比用原始通过率更接近「信息量」而不是「概率差」。
- agent 与代码环境:论文 Limitations 里没测的那一半。凡是「一组 rollout 全成功或全失败」的环境(单元测试全绿、终端任务全成),二元几何照搬,代价是要先决定连续奖励怎么二值化。
相关精读
- 精读:GMC-GRPO——把重要性比从逐条裁剪换成整组收缩
- 本篇把本专栏连续四十三期的主线又往外推了一格:前二十五期都在改训练信号本身——挑哪些 token、挑哪些轨迹、信用分配用哪套口径——这一期问的是在信号口径一行不改的前提下,只动「哪些题进入这一步」能拿走多少。以下按专栏顺序回溯,最近一期是 CRR。
- 精读:把中间那一步的信号从模型里搬进环境——用沙箱回滚跑出免费过程奖励
- 精读:把特权信息从损失搬到采样器——多轮 agent 里自蒸馏为什么会崩
- 精读:特权自蒸馏在思考模型上为什么会失败
- 精读:OC-GRPO 与离上下文重要性校正
- 精读:不跑 RL,先把新奖励的结果预测出来
- 精读:把后训练配方本身当成果,再逐阶段对账
- 精读:把中间状态的价值估计整体消掉
- 精读:给 token 级信用一个唯一解,然后把它求和掉
- 精读:按梯度可估性给 token 分配蒸馏监督
- 精读:把公开代码库里已实现的功能翻成 RL 环境
- 精读:Score Centering——把训练-推理失配里的漂移项减掉
- 精读:ActObs——把被 mask 掉的那 45% 观察 token 重新纳入损失
- 精读:SP³O——一条响应里只给三个位置价值监督
- 精读:NGU 与 RL 里的马太效应
- 精读:教师引导的课程 RLVR——把解不出的题变成可解的题
- 精读:DataFlex-RL 与均匀采样的替代策略
- 精读:TrimSFT——按 logit 间隔剪掉 SFT 里的低信息 token
- 精读:ESFT 与端点 SFT 对中段推理链的裁剪
- 精读:NSD——用 unlikelihood 做负向自蒸馏
- 精读:模型与外壳共演化时的同策略校正
- 精读:OPD-then-RL——顺序摆信号胜过同 step 混信号
- 精读:One-Shot OPD 与状态覆盖吸收率
- 精读:Compile by Training——把 LLM 降级为构建期依赖
- 精读:Terminal-Universe——轨迹反向造环境
- 精读:OPSA——无教师的同策略自适应
- 精读:SPADE——把优化对象从轨迹上移到生成器
- 精读:DART-SD——标注单元从轨迹换成状态图
- 精读:SCAPO——用「扰动下不动」给 token 记一笔负账
- 精读:把 off-policy 专家数据 MCMC 投影成 on-policy 数据
- 精读:CARM——把响应级掩码的判据从净位移换成双向漂移
- 精读:Mesh Learning——把 RLVR 的坍塌解释成策略容量的供需冲突
- 精读:跨分词器 OPD——把对齐覆盖度补满反而掉点
- 精读:SRD——把事后回顾蒸成事前先见
- 精读:ZCPO——把参考 KL 从损失支搬进组内系数
- 精读:Residual Advantage——让教师只重分信用,不改响应总分
- 精读:TAPO——把重要性比的记账区间从「当前 token」挪到前缀
- 精读:GPPO——把 PPO 的裁剪区间拆成「散度」与「估计器」两维
- 精读:RTI——把干预从优化期搬到采样期
- 精读:LVRL——把价值函数从「训出来的部件」换成「冻结的前沿 LLM」
- 精读:Thinking Leakage——no-think 的 RL 增益有多少是从 think 漏过来的
- 精读:Ares——把 RLVR 的更新秩交给梯度谱,账本落在截断之后
- 精读:GracefulRL——给退避一个中间价,代价是 74% 的题不再作答
- 精读:MRTPO——把每个奖励的优势拆回到它自己读的那几个 token 上