研究提案 已修订

任务轮换不等于 token 轮换:MoE 架构下合成 Agent 语料的谱系级重复预算

提出 LRA,把重复率的计量单位从任务级 epoch 换成 token 级暴露重数 R_exp = G×μ×E,用递归任务合成的谱系图记账,审计并调度 MoE 长程 Agent 强化学习中由组采样与谱系嵌套叠加出的重复。

数据工程 Agent训练数据 MoE RLVR 合成数据 过拟合 课程学习 长程智能体 谱系溯源

背景与动机

Jha 等人(arXiv:2609.11917)在 80M–1B 激活 / 8.5B 总参数的尺度上系统测了重复数据对 MoE 的影响,给出一组硬阈值。dense 模型把语料重复 8 遍仍只有轻微退化(原文 over 8× with minimal degradation)——64× 这一档出现在遮罩正则化的语境里,即强遮罩下 MoE 在 64× 重复时仍能反超 dense,它不是 dense 的恶化拐点;MoE 在 R = 4 就出现可测的性能损失,R ≤ 16 时尚且优于 dense,到 R = 32 发生反转,dense 反超 MoE。退化幅度由总参数而非激活参数决定,稀疏度越高越严重。加 dropout 能缓解,遮罩类正则化足够强时,MoE 在数据重复 64 遍以上的情形下仍可胜过 dense。作者一并声明,没有任何方法追平全唯一数据的训练结果。

机理部分比阈值更关键。作者测了路由稳定度(相邻检查点之间 top-1 专家保持不变的 token 比例,逐层平均):起始检查点接近随机(1/n),训练进行到 10%(step 400)时升到 60%,末期超过 95%。原文的解读是「每个专家的 token 集合在训练的大部分时间里几乎静止,于是在重复条件下,一个专家反复见到的就是那一小片数据」。伴随指标 expert knockout effect 指向同一件事:R 从 1 升到 32,16 专家配置的 knockout 成本涨 1.1 倍,128 专家(1/4 粒度)涨 2.3 倍,重复鼓励专家特化并削减冗余,专家数越多越明显。

这篇论文的重复轴是平坦的:把同一份语料整体重复 R 遍,R 是一个标量,场景是预训练。在该文全文中检索 fine-tun / RL / post-train / SFT 四项均零命中,结论节给出的下一步建议只有遮罩类方法。

大规模 MoE 强化学习不长这样。T1(arXiv:2609.11042)是 122B 总参数的 MoE,在云沙箱里操作真实 shell,单任务 300+ 次工具调用,奖励来自任务自身验证器的执行。它的训练池 T1-15k 来自递归任务合成:每一轮把上一轮被接受的任务当种子(对 parent lineage、category、rewrite family 设了上限),选一个可行的重写算子,在参考解上追加可执行步骤,再把环境、验证器与公开指令对齐到这条更长的工作流。子任务的参考解以父任务的参考解为前缀,任务之间不是独立同分布的。

T1 记录了重复带来的收缩,说得很直接:

Each task must be sampled G times before it yields one advantage, so at fixed generation capacity the number of distinct tasks per step falls by that factor, and the effective batch narrows to a small set of repeatedly sampled tasks.

作者把这句归为效率问题,给出的解法是换 PPO 加 critic,理由是 critic 不需要组,同样的预算可以花在不同任务上。换 critic 改变了重复的来源,没有消除重复:PPO 那一路仍然跑了三个 epoch,把有监督检查点从 49.4% 推到 64.0%。

缺口在计量单位。整条链路里,重复是在任务这一层记账的——epoch 数、batch 里的任务数、任务是否与评测集 disjoint。11917 的机理作用在 token → 专家分片这一层。谱系嵌套让祖先任务的解路径在每一个后代任务里重新出现,轮换任务并不轮换 token:把一批父任务换成它的子任务,送进同一批专家的 token 片段高度重叠。T1 用「isolated seeds and synthesized tasks disjoint from Terminal-Bench 2.1」声明语料的分布外性,这个声明在任务 ID 层面成立,在 token 层面没有人验过。

核心思路

提出 LRA(Lineage-aware Repetition Accounting),把重复率的计量单位从「epoch / 任务」换成「token 在梯度步中的重数」。对一个 token(确切地说是参考解中的一个可执行步骤,或一段环境状态前缀)定义谱系重数 μ(t) = 参考路径包含该步骤的任务数,暴露重复率

R_exp(t) = G × μ(t) × E

其中 G 为组大小,E 为 epoch 数;若组内再做退化过滤(DAPO 的动态采样),再乘一个 1/v(p, G) 的重试因子。

主张一:不做任何谱系共享,下界就已经落在退化区内。 组采样无条件地把每个任务的 prompt 段重复 G 次,G = 8 已达 11917 的 dense 起损点、为 MoE 起损点(4)的两倍;G = 16 时单 epoch 就走到 MoE 反转点(32)的一半。这条下界是架构性的,调 epoch、换 critic、扩数据都动不了它。

主张二:任务轮换不轮换 token。 μ(t) 由谱系结构决定,与任务是否被轮换无关。T1 的 RST 从种子递归扩展到 37,484 个任务,深度为 d 的祖先步骤在其整个子树里重复出现;parent lineage 的上限约束了重数的天花板,μ 必须实测。

这里有一条容易漏掉的口径细节:真正进入最终训练的是 T1-15k 而非 RST-38k 全池。RST-38k 的 37,484 个任务是合成总量,而 T1-15k 是经 §3.2 五阶段审计(15 个 rewrite round,5,902 接受 / 3,251 边界 / 5,847 拒绝)从中选出的 15,000 条。若审计的接受率与谱系深度或 rewrite family 相关——例如深轮次任务因指令与验证器难以对齐而更容易被判为 borderline 或 rejected——则 T1-15k 上的 μ 分布并不等于 RST-38k 上的 μ 分布。重数账本必须记在实际训练的那一池上,不能记在合成池上。

主张三:吸收重复的最后一条通道被主动关死。 11917 的机理是路由早期稳定,专家反复见同一小片数据。RL 的起点是预训练末期的检查点,路由进入 RL 时一致率已在 0.9 以上——11917 Figure 16a 的说明文字给出的原话是路由稳定度「near chance (1/64) at the start of training, but over 0.9 for the second half of training」。同一段还记了一个本文必须一并带上的边界:稳定度随重复率上升,但只到 R = 32 为止,此后 router 反而开始失稳(“Stability increases with repetition, up to R = 32, where the router appears to destabilize”)。本文推算的 R_exp = 48 已越过该拐点,也就是进入了 11917 自己没有充分刻画的区域;把 32× 之后的趋势外推到 48× 属于本文的假设,不是该文报告的结果。T1 的 R³ 进一步把承载梯度的专家钉在采样器记录的那组 mask 上,原文写的是「the experts carrying gradient are exactly those that produced the sample」。梯度路径保留,router 仍可训练,可每一步更新落在哪几个专家上由采样时的 mask 决定。为 train/infer 对齐(log-prob 差从 0.021 降到 0.013)付出的代价,是重复暴露无法被重路由分散。

把三条接起来得到一条可检验的推论。取 T1 的实际配置 E = 3,保守地取 G = 8、μ = 2(即谱系深度 2,父步骤在子任务里重现一次),R_exp = 48,已越过 11917 的 32× 反转点;同一份训练日志上记着的数字是「3 epochs」。两个数字相差一个量级,且没有任何一方在报另一个。以上为本文按上述定义式推算,非任一上游论文报告值;11917 的阈值在 80M–8.5B 的预训练平坦重复上测得,把它接到 122B 的 RL 与结构化重复上是本文提出的假设,需要实验检验而不是引用。

两个方向相反的修正必须一并挂在 R_exp = 48 上,否则这个数字会被读成一个点估计。

它首先是一个上界,不是估计值。 μ(t) 计的是「参考解包含该步骤的任务数」,而 RL 训练时模型看到的从来不是参考解——它看到的是自己采样出来的轨迹。低通过率任务上,G 次采样可能一次都没走到第 t 步,此时该步骤的真实暴露是 0 而 μ 仍把它计入。DAPO 的动态采样会过滤掉全成功与全失败的退化组,存活下来的恰是部分成功组,于是暴露进一步集中在通过率边界附近的那些步骤上,而不是沿参考路径均匀分布。实测 μ 应当在 rollout 轨迹上按步骤对齐统计,谱系图只能作为先验。

其次,被重复的 token 只占训练 token 的一小部分。 11917 的 R 是「整份语料重复 R 遍」,即每个 token 都出现 R 次;而 RL 里重复的是 prompt 与环境状态前缀, completions 是每次采样新生成的。T1 单任务上限 300+ tool-call turns、每批接纳最先完成的 512 条轨迹(rollout 侧按 560 过采样),前缀在总训练 token 中的占比远低于 1。11917 自己给出的缓解证据也指向同一方向——「重复数据混入非重复数据时,唯一 token 有正则效应」。因此 R_exp 描述的是前缀这一子集的局部暴露强度,把它当作全语料重复率会高估危害;反过来,若危害确实在 R_exp = 48 上被观测到,则说明少量重复 token 就足以驱动专家特化,这比「全语料重复」是更强的结论,值得单独写成一条待检验命题。

技术路线

建重复账本。 任务合成阶段就把谱系图落盘:RST 每轮记录 seed → child 的映射与所用重写算子,对参考解的每一个可执行步骤记 μ;rollout 阶段把组内重数 G 与 epoch 累加进去,产出 per-step 的 R_exp 直方图与 R_exp > 32 的 token 占比。这一步不需要改训练栈,只需要合成器与采样器各写一份日志。

按重数分层调度,而不是随机置换。 T1 现在的做法是池子按 quality-rank 物化,「per-epoch shuffling is mandatory」,理由是顺序游标会让一个 batch 全部来自窄质量带,critic 看到的奖励分布在 epoch 内单调漂移。这个诊断对质量序成立,对重数序不成立:谱系相近的任务重数相近,随机置换之后它们仍在批内聚集。改成按 R_exp 把池子分成 K 层,每批从每层按配额抽取。许可证来自 11917 自己的发现——重复数据混入非重复数据时,唯一 token 有正则效应,故高重数分片与低重数分片同批共存优于按重数分批。

找与 on-policy 兼容的正则。 11917 的补救是 dropout 与输出 masking,这条路在 T1 的栈上是封死的:TITO 要求训练用采样时的精确 token identifier,R³ 要求用采样时的精确专家 mask,masking 改变产生该样本的专家集,直接破坏 0.021 → 0.013 的对齐。改用采样前生效的扰动:语义保持的指令改写、环境种子扰动、工具别名替换。它在 rollout 之前改变 token → 专家分片,不触碰 on-policy 精确性,也不需要重放路径以外的记录。

装一块免重训的仪表盘。 三个量联合记录:11917 的 expert knockout effect(按 R_exp 最高与最低十分位分组统计)、路由稳定度(相邻检查点 top-1 一致率)、T1 的 train/infer log-prob gap。三者都能在训练中低成本采集,都不需要留出集。

四臂对照。 A:随机 shuffle 基线;B:按 R_exp 分层调度;C:B 加采样前扰动;D:dense 对照臂(同激活参数、同语料、同调度)。四条可证伪预测:P1,B 相对 A 在留出集上有正增益;P2,最高 R_exp 十分位的 knockout effect 显著高于最低十分位,且比值随训练步上升;P3,train/infer log-prob gap 在高 R_exp 任务上先于低 R_exp 任务恶化,可作早期停止信号;P4,D 臂的重数效应显著弱于 MoE 臂,且 MoE 与 dense 的差值随 R_exp 由正转负。注意这里不能用「dense 臂有无重数效应」作判据:按 11917 自己的 dense 曲线,8× 以内只是轻微退化(原文 minimal degradation),而本设计的 R_exp = 48 已远超该区间——dense 臂本就该显示出可测的重数依赖。判据应当是斜率分离与交叉,不是有无:若 dense 臂与 MoE 臂的重数效应斜率无显著差异、或差值始终不换向,机制就不是 MoE 稀疏性,主张三被推翻。

关键技术挑战有三处。谱系重数在长程任务里不是简单前缀计数:子任务会 realign 指令与验证器,父解路径的部分步骤被改写,需要按可执行步骤对齐或用最小编辑脚本估计共享段。G 与重数存在直接的资源竞争,降低 G 会削弱组基线本身,而 T1 已指出组基线是 value function 的替代品,降 G 与加 critic 的取舍须在同算力下比较。11917 的阈值是外推,本文把它当假设而非前提。

预期成果

定量目标:在固定算力、固定 epoch、固定数据量的条件下,测出按 R_exp 分层调度相对随机 shuffle 的留出集增益,报告在 T1 的两个尺度上(Terminal-Bench 2.1 的 64.0% 与 Long-Horizon Terminal Bench 的 27.9%);给出合成池里 R_exp > 32 的 step 占比,若该占比接近 0,主张一与主张二一并被削弱;给出 knockout effect 在重数两端的比值及其随训练步的斜率。

一处必须提前说清的统计功效问题:T1 报的 Terminal-Bench 2.1 是 89 个留出任务(“89 held-out tasks scored by execution”)。在这个样本量上,1 个百分点约等于 0.9 个任务,A/B 两臂差 3 个百分点只对应约 2.7 个任务,二项检验远不足以分辨。因此留出集增益只能作次要终点,主要终点应当放在重数分层本身的中间量上——R_exp > 32 的 step 占比、knockout effect 在重数两端的比值及其斜率、train/infer log-prob gap 的分层差异。这些量在轨迹级测量,样本量高若干个数量级,且直接对应机制而非下游表现。若确实要报下游增益,需预先声明功效并考虑配对设计(同一任务在两臂上的成败配对)。

定性目标:一份可随语料发布的重复账本规范——任务合成流水线除了报任务数、验证器强度、质量分,一并报 per-step 重数分布与谱系深度。更长远的一点是判据的迁移:把「语料是分布外的」从任务 ID 层面的 disjoint 声明,升级为 token 层面的声明。合成语料正在成为 Agent 后训练的主要数据来源(T1 的 37,484 个任务全部由递归合成产出),这类语料的重复结构由合成器的谱系决定,不由采样策略决定,而目前的报告惯例里没有它的位置。

局限性与失效模式

阈值是跨设定外推,不是可引用的常数。 11917 的全部阈值在 80M 激活 / 8.5B 总参数、Dolma 与 DCLM 语料、预训练平坦重复上测得,且该文全文对 fine-tun / post-train / reinforcement learning / SFT 四项检索均零命中——它从未声称结论可用于后训练。把它接到 122B 的 MoE agent RL 上是本文提出的假设。若实验显示 R_exp = 48 上无退化,最先该怀疑的是这个外推,而不是谱系记账本身。

R_exp = 48 落在源论文未刻画的区间。 11917 的反转点在 R = 32,路由失稳拐点也在 R = 32;本文推算的 48 已越过两者。更关键的是,该文的重复是全语料重复,本文是前缀子集重复,两者的「R」同名而不同义。任何把 48 与 32 直接比大小的表述都应附带这一条。

参考路径不等于采样轨迹。 μ 按参考解计,暴露按实际 rollout 计,二者只在通过率接近 1 时重合。低通过率任务上 R_exp 系统性高估,DAPO 退化组过滤后高估集中在边界步骤。这是本文方法论上最大的未检验环节。

谱系重数的对齐本身是个未解问题。 子任务会 realign 指令、环境与验证器,父解的部分步骤被改写或删除。按可执行步骤做字符串对齐会低估共享段,用最小编辑脚本估计则对阈值敏感,两条路给出的 μ 可能相差数倍,而重数分层的配额直接依赖它。技术路线里「按 R_exp 分成 K 层」在 μ 估计不稳时退化为噪声分区。

采样前扰动有可能改变任务本身。 指令改写、环境种子扰动、工具别名替换都声称「语义保持」,但终端任务的通过率对环境变量、路径、工具版本高度敏感,扰动后的任务未必还是同一个任务。C 臂若相对 B 臂无增益,无法区分是「扰动不足以改变 token → 专家分片」还是「扰动破坏了任务可解性」——需要单独记录扰动后的任务通过率作为操控检验。

主张三缺少下游层面的因果证据。 T1 的 R³ 消融(Table:T1 (TITO + R³) 的 |Δ log p| = 0.013,去掉两者为 0.021)测的是 train/infer 对齐,不是重复暴露的下游后果。「重复暴露无法被重路由分散,因此造成损失」这一步是本文的推论,T1 没有测。

仪表盘的三个量各自有成本。 knockout effect 需要在推理时逐专家置零并全量重跑,37484 个任务上做一次代价不低,只能抽样;路由稳定度需要相邻检查点的 top-1 一致性,检查点间隔本身影响数值;train/infer log-prob gap 在 T1 的栈上依赖 TITO 与 R³ 的记录,去掉这两项后该指标不可测。三者都不是免费的在线信号。

相关工作

  1. Data Scarcity and Model Sparsity: Mixtures-of-Experts Overfit More to Repeated Data — arXiv:2609.11917。给出 MoE 在重复数据上的退化阈值(起损 R = 4、反转 R = 32,由总参数决定)与路由早期稳定这一机理,是本文阈值与仪表盘的来源。
  2. T1: Terminal Agent Reinforcement Learning for Long-Horizon Tasks — arXiv:2609.11042。122B MoE 的长程终端 Agent,记录了「effective batch narrows to a small set of repeatedly sampled tasks」,并用 R³ 把承载梯度的专家钉在采样 mask 上,是本文主张三的直接依据。
  3. DAPO: An Open-Source LLM Reinforcement Learning System at Scale — arXiv:2503.14476。动态采样的出处,其退化组过滤使 per-prompt 的梯度重复率与名义 epoch 脱钩,构成本文重数定义中的重试因子。
  4. Fork Where the Model Changes Its Mind: Belief-Shift Branching for Tree-Structured Reinforcement Learning — arXiv:2609.11061。在步骤级分配额外 rollout 预算,与本文在任务/token 级分配重复预算互补,两者的预算可以合并计量。
  5. Difficulty-Adaptive Tree-Structured Policy Optimization for Expanding Reasoning Coverage in RLVR — arXiv:2609.08650。按难度自适应地调整采样结构,与重数调度作用于同一批采样决策,需在其对照中控制重数变量。