TSCL(学习进度)
373 字约 1 分钟
2026-07-04
来源: Teacher-Student Curriculum Learning (arXiv:1707.00183),作为域 Mixer。
动机
按学习进度——即每个域 reward 曲线的斜率——而非 reward 水平来配比采样。这是一个 不同于 reward_gap(reward 水平)和 dump_ucb (|advantage|)的信号轴:TSCL 关注变化率。reward 上升(还在学)和下降(遗忘)都有 信息,所以用斜率的绝对值驱动采样。
规则
对每个域 d,维护 reward 均值的滑动窗口,用最小二乘拟合斜率 slope_d = dR/dstep,然后:
pd=softmax(T∣sloped∣),带 floor
|slope|(默认):采样正在变化的域(进步或遗忘)。signed=True:用max(slope, 0),只采样在进步的域。
在 DataFlex-RL 中
trainer:
v1:
trainer_mode: dataflex_mix_sync
sampler:
custom_sampler: {path: pkg://dataflex_verl.replay_buffer, name: DataFlexMixReplayBuffer}
dataflex:
mechanism: mix
domains: [math, code, logic]
scorer: {name: reward_difficulty}
actuator: {name: tscl, params: {temperature: 1.0, floor: 0.05, signed: false}}
warmup_step: 5
update_step: 5
window: 50mix trainer 用 DomainStatsTracker.slope()(窗口最小二乘)算每个域的 reward 斜率,传给 mixer。
信号 / 规则 / 粒度
| 属性 | 值 |
|---|---|
| 信号 | 每域 reward 斜率(学习进度) |
| 规则 | `softmax( |
| 粒度 | domain |
| 需要分组 | 否 |
| 额外前向 | 无 |
需要 ≥3 个异质域
和所有 mixer 一样,2 个域时 TSCL 作用很小(退化成一个比例旋钮)。它在 ≥3 个难度不同、 且在动态变化的域上才有价值。需要 warmup 累积足够的窗口点才能得到稳定斜率。