滚动预测(Rolling Forecast)是一种多步预测的做法:模型每次只预测下一步,然后把这一步的预测值当作已知输入喂回模型,再预测下一步,如此循环,一步步把未来“滚”出来。
可以想象夜里开车。车灯只照亮前方几十米,你按眼前这段路打方向;如果方向偏了一点,下一段路你看到的就是“偏了的那条路”,于是顺着偏差继续打,越走越偏。现实里你还有路边的护栏、路牌帮你纠偏;滚动预测里,模型没有这些,它只能信自己刚才的输出。
这就是问题的核心:误差会累积。数学上,第 t 步的误差会成为第 t+1 步的输入,第 t+1 步在此基础上再产生新误差,偏差不一定只是相加,有时会被放大。很多系统一旦进入“跑偏状态”,例如预测的轨迹已经出了车道、生成的句子已经离题,它自己很难走回来。
为什么训练时看起来很好、上线就崩?因为训练时模型看到的是真实历史数据,这叫 teacher forcing;推理时它看到的是自己生成的、带瑕疵的数据,两者分布对不上,这个现象叫曝光偏差(exposure bias)。模型从没学过“输入有错时该怎么办”。
它和相邻概念的区别:
| 滚动预测 | 直接多步预测 | 单步预测 | |
|---|---|---|---|
| 做法 | 一次一步,预测值喂回 | 一次输出未来 N 步 | 只算下一步 |
| 优点 | 长度任意、能吸收最新输入 | 无累积误差,各步独立 | 最简单 |
| 缺点 | 误差累积、长程发散 | 步数写死,步与步之间可能不连贯 | 看不到未来 |
滚动预测适合“未来的输入还不知道、需要边走边看”的场景,比如大语言模型(LLM)逐 token 生成、自动驾驶轨迹预测、库存与销量预测、气象外推、机器人动作规划。视频生成尤其典型:越往后,画面越容易糊、变形。
工程上的常见缓解手段包括:训练时也喂一部分模型自己的预测(计划采样,scheduled sampling)或给输入加噪;用多步联合损失训练;评估时不只看单步误差,而是看整条 rollout 的累计误差;在关键节点用真实数据重新对齐(re-grounding);控制滚动长度,长于一定步数就换策略。
给从业者的一句话建议:单步指标好看不代表系统能用,请用闭环的、多步滚动的指标做验收。给普通人的一句话解释:这就是为什么 AI 写着写着会跑题,天气预报越往后越不准——不是某一步错得离谱,是每一步的小偏差被反复当成了事实。
