采样时还是旧模型,训练时已经换了新模型,这条数据还能用吗?
一张记录里必须写下“谁生成了它”
一个工具调用要等十秒,训练器却可能每两秒更新一次参数。第12版策略开始的轨迹,返回时学习器已经到了第16版。若仍把这些动作当作第16版刚刚采样的结果,频率就错了。比如旧策略喜欢重复搜索,新策略已经很少这样做;队列里的重复搜索不能证明当前策略仍然同样偏好它。
这里用μ表示真正生成样本的行为策略,用π表示正在更新的策略。记录不应只有文本与奖励,还要有策略版本、动作token、采样时log概率、掩码等。没有旧概率,事后通常无法仅凭一段答案可靠恢复它当时的采样概率。
重要性比率先修正一个动作的频率
在同一历史h,旧策略对动作a给概率0.2,新策略给0.3。比率 ρ=π(a|h)/μ(a|h)=0.3/0.2=1.5。旧分布中这个动作偏少,重用时把它的贡献乘1.5。若新概率为0.1,比率0.5,贡献减半。在log空间计算是 exp(logπ−logμ),不是log概率相除。
用三种动作核对总量:旧概率0.4、0.4、0.2,新概率0.7、0.2、0.1,比率1.75、0.5、0.5。旧分布按权重重加总得到 0.4×1.75+0.4×0.5+0.2×0.5=1。这个恒等式依赖旧策略覆盖新策略可能选择的动作;若旧概率为0而新概率非0,就没有旧样本可重加权来补那个区域。
整条历史也变了,局部比率并不万能
一条轨迹的完整概率包含很多动作。环境动态一致且可相消时,整条轨迹比率是各动作比率相乘。哪怕每步只有1.05,100步后 1.05^100≈131.5。少数样本可能拥有巨大权重,方差非常高。完整校正理论上清楚,长轨迹里却难以稳定估计。
很多实际训练使用每个token或动作的局部比率,这能控制一部分偏移,却没有完全恢复历史分布。假设旧策略以0.4概率走到“打开错误文件”这一历史,新策略只有0.1;到达后,两者选择“读取”的概率都是0.5。局部比率是1,看似不用修正,但这段历史在新策略下只应出现旧策略的四分之一。丢掉前面动作的比率就遗漏了这个差别。
旧记录进入训练前的三次检查
先预测结果,再逐步查看;切换条件时留意是哪一个中间量改变。案例是教学构造的规则回放,不是模型训练实测。
教学构造场景 · 按下方规则逐步回放;不调用真实模型,不代表实际成功率。
旧动作概率0.2,新0.3,版本差2,阈值3
- 1. 识别来源
版本差2允许进入候选批次。
- 2. 计算比率
exp(log0.3−log0.2)=1.5。
- 3. 核对历史
仍需确认此前路径偏移与权重分布,局部校正不是完整保证。
版本差2允许进入候选批次。
先预测,再核对结果与原因
可按声明的近似策略使用。保留来源和旧log概率,才能知道重加权在修什么。
异步系统需要数据新鲜度预算
给每条轨迹标记生成版本v,训练版本为u,版本差u−v是一个可操作但粗糙的新鲜度指标。设最大差为3,版本16处理版本12样本时差4,按规则丢弃或隔离;版本14样本差2可以候选使用。版本差不是严格的概率距离:一次大更新可能比五次小更新偏得更多,所以还需监测实际比率、KL或其他漂移指标。
条件一是放慢工具:队列里老数据更多,采样吞吐看似没降,真正可用的新数据却减少。条件二是加快权重同步:新轨迹更接近当前策略,但同步占用带宽并可能打断推理。没有一个固定同步间隔适用于所有模型和环境。合理系统有有界队列、背压、超时、版本标签与丢弃统计,避免无限积压。
能继续用,不等于应该全部用
少量偏旧数据可能提高设备利用率;过旧数据的高方差、历史偏移和策略覆盖不足可能抵消收益。把权重裁小又会引入偏差,这是稳定性与无偏估计的权衡。评价时要同时看单位时间有效轨迹、陈旧丢弃率、权重极值、任务成功和计算成本。
下一课的PPO裁剪正是在局部目标中限制某些激进变化,但它不会把这节所有分布问题一笔勾销。先记住三个不同层次:动作频率的比率、历史分布的变化、系统队列的版本差。把它们都叫“旧数据修正”会隐藏真正的边界。
旧概率为零的问题不能靠分母加数治好
若行为策略从未选择某个动作,历史数据没有该动作的结果。给分母加一个很小ε虽然能得到有限数字,却没有创造缺失的样本,也不能恢复这个动作的真实期望回报。重要性采样需要覆盖条件,而不是纯粹数值稳定技巧。探索不足与分布校正是相互关联、却不能互相替代的问题。
用自己的话核对一次
新旧log概率相除能得到重要性比率吗?
展开解释
不能。比率是exp(new_logp−old_logp),因为log把概率的除法变成减法。
每个动作比率都不超过1.05,整条轨迹就很稳定吗?
展开解释
不保证。100个1.05连乘约131.5,长轨迹权重会累积,高方差可能严重。
局部比率为1说明不存在离策略偏差吗?
展开解释
不说明。到达该历史的概率可能已经改变;局部比率只比较给定这个历史时的动作分布。