TinyCast: Probabilistic Zero-Shot Forecasting with Computed Periodicity
Armin Steinhauser
cs.LG, cs.AI
2026-08-16
TinyCast 用 14.6 万参数、无注意力,频谱检测周期并按相位折叠上下文,GIFT-Eval 上 nWQL 为 0.545。它是无泄漏零样本项里 140 万参数以下唯一输出预测分布的模型,已在 Cortex-M7 上以 INT8 跑通。
时间序列基础模型把「每个信号训一个模型」换成一次预训练、零样本预报。能上板子的两个条件很少一起满足:参数要小到塞进现有 MCU,预报还得带不确定性,控制回路和告警阈值吃的是区间不是一个点。GIFT-Eval 上声明无测试泄漏、又公布逐配置结果的模型,到了百万参数以下,几乎只吐点估计。
TinyCast 问的不是大模型能准到什么程度,是一个概率预报器能小到什么程度。作者的前提:这个尺寸上,用容量去重新发现季节性,就是从固定计算给不了的结构里抢参数。周期从上下文里算出来,学到的容量留给其余部分。
146,505 个参数,无注意力。上下文长度 2048,先按窗口 min-max 归一化到 [0,1]。零参数周期检测:去直流后做一次实数 FFT,局部峰值过 Fisher 谐波检验(α=0.05,跨 bin Bonferroni),最多保留 4 个整数周期。过不了的槽位置零,相位通道跟着关掉。
位置编码按检测出的周期写 sin/cos 相位,再加 5 路近因通道,全部无参数。编码器是 10 层膨胀因果深度可分离卷积,宽度 64、核 3、膨胀 1 到 512,感受野 2047;SwiGLU 在 10 层之间 ALBERT 式共享,这两项砍掉 191,680 个参数。解码器一次出 48 步、9 个分位数(0.1 到 0.9),中位数反馈进下一块,拼到最长 720 步。三个读出:池化摘要、按相位把编码器状态折成 16 bin 的周期模板(消融里单贡献最大)、以及沿未来轴的卷积修正。
训练在 GIFT-Eval-Pretrain(去掉与测试重叠的数据集)加 Chronos KernelSynth 和四份合成数据上做零样本。目标是 pinball 损失加一项 λ=0.3 的 gated committing:只在「抄上一周期会赢中位数」的窗口上惩罚,中位数追上抄写就停。发布权重是最后 8 个 checkpoint 的平均。板上不用的两种主机侧技巧:符号对称化(正负输入各预报一次再平均),以及把某些配置的上下文按规范日周期抽取后再插值回去。
GIFT-Eval 97 个配置,分数是相对 seasonal naive 的几何平均,1.0 打平。主机配置(未量化加两种推理技巧)nGMASE 0.774、nWQL 0.545、nMSIS 0.554。它是普查里能核实参数量的最小零样本项。点精度上紧挨着的 Reverso-Nano(20 万参数)是 0.760,但那一项没有真正的预测分布。普查里点精度最好的是 260 万参数的 Reverso,0.711。概率精度上,所有比 TinyCast 更低的 nWQL 都至少 140 万参数:TTM-R3 140 万到 0.520,FlowState-9.1M 到 0.502。
| 模型 | 参数量 | nGMASE | nWQL |
| TinyCast | 146K | 0.774 | 0.545 |
| Reverso-Nano | 200K | 0.760 | 无分布 |
| TTM-R3 | 1.4M | 0.724 | 0.520 |
| Reverso | 2.6M | 0.711 | 无分布 |
| FlowState-9.1M | 9.1M | 0.726 | 0.502 |
| FLAIR(无预训练) | 0 | 0.838 | 0.587 |
Chronos-ZS 相对 MASE 0.880、相对 WQL 0.722;点精度上 AutoARIMA 和 AutoTheta 领先 1 到 2%,是三个基准里统计方法唯一赢的地方。fev-bench 相对 MASE 0.819、相对 WQL 0.658,更好的神经网络都至少 28 倍参数。这里有 12 个任务名字对上了训练集子集,独立性没立住。
关掉检测器、同样 146,505 参数重训,nGMASE 从 0.7743 升到 0.7814,差 0.0071,大约是三粒种子抖动 0.0009 的八倍。相位分箱在架构族里单贡献最大,相对膨胀卷积底座移动 nGMASE −0.098。静态 W8A8 主机路径 0.790 / 0.553,相对未量化掉 2.14% 和 1.26%。固件配置(量化且关掉两种主机技巧)0.833 / 0.581,97 个配置里 72 个仍优于 seasonal naive。STM32H753(Cortex-M7,480 MHz)上一次核心调用 4.08 秒,INT8 权重 138.1 KiB,峰值 RAM 约 731 KiB。
这是尺寸换概率预报的明确前沿,不是又一个「小模型也还行」。嵌入式侧真正缺的是:一块固件对着以后才接到的信号做零样本区间预报,不按信号采集、不按信号重训。卷积加矩阵乘这条混合路径同时满足参数预算和整数运行时,所以没做蒸馏、没换算子。
跟 20 万参数的 Reverso-Nano 比,TinyCast 在基准标成无季节的配置上赢面更大,说明省下来的容量不一定花在季节性上。周期检测是便宜的固定计算,返还参数才是机制。
每次预报都把 2048 步窗口重新编码一遍,流式逐步版在短上下文上掉点。模型是单变量,fev-bench 里 46 个任务的协变量和 35 个多变量结构它都没用。输入离开预训练分布时没有告警。周期是四舍五入的频谱 bin,分辨率随窗口与周期之比下降;min-max 对单个极端值敏感。
消融族跑在 34 万到 44.5 万参数,不是上线的 14.6 万,增量是上界不是测量。GIFT-Eval 渗进了架构和推理选择,Chronos-ZS 才是过程外的测试。规范周期对齐只改了 97 里的 2 个配置,重采样分不开这个增益和零。固件路径上量化、去掉对称化、去掉对齐三项有交互,简单相加会低估部署代价约 0.023 nGMASE。