不只是点预测:Granite-TimeSeries-FlowState-R1-NPU分位数预测入门指南
【免费下载链接】granite-timeseries-flowstate-r1-npu项目地址: https://ai.gitcode.com/atlasleong/granite-timeseries-flowstate-r1-npu
传统时间序列预测通常只输出一个"点预测"数值,但真实世界的未来充满不确定性——库存该备多少、电力负荷该预留多少、流量峰值会落在哪里,这些决策都需要知道"可能的范围",而不只是一个平均值。分位数预测正是为此而生:它输出未来多个概率分位点,让你知道预测值以多大的置信度落在某个区间。Granite-TimeSeries-FlowState-R1-NPU 就是一款开箱即用的零样本时序基础模型,它在昇腾 NPU 上一次前向同时给出点预测与 9 个分位数(0.1~0.9),是入门分位数预测的理想实践项目。
分位数预测和点预测到底有什么区别?📊
点预测输出的是序列未来的"期望值",而分位数预测输出的是多个概率分位点。两者最大的差异在于:分位数预测把不确定性量化了出来。
| 对比维度 | 点预测 | 分位数预测 |
|---|---|---|
| 输出内容 | 一个期望值 | 9 个分位点(0.1~0.9) |
| 表达能力 | 无法表达不确定性 | 可构造预测区间 |
| 典型场景 | 趋势预估、均值统计 | 库存管理、容量规划、风险控制 |
| 决策价值 | 告诉你"会是多少" | 告诉你"有多少概率落在哪个区间" |
比如用 0.1 和 0.9 两个分位数,就能构造出 80% 置信区间——这是点预测永远给不了的信息。这也是本项目名中"不只是点预测"的含义所在。
零样本时序基础模型:FlowState 是什么?
Granite-TimeSeries-FlowState-R1 是 IBM Research 开源的 FlowState 时序基础模型(r1.0),也是首个时间尺度可调(time-scale adjustable)的时序基础模型。它由 S5 状态空间模型(SSM)编码器与 Legendre 函数基解码器组成,能把观测序列映射到尺度不变的系数空间再做连续预测,从而在不重新训练的情况下适配不同采样率的数据。
- 参数量仅约 906 万,解码器只占 13%,堪称"小而强" 🚀
- 无需微调即可做零样本单变量预测
- 输入
(batch, 2048, 1)的上下文窗口,输出未来 96 步
模型结构与训练细节可参考model/README.md,权重配置见model/config.json。
一次前向,如何拿到 9 个分位数输出?
这是本项目最值得关注的地方:inference.py只做一次前向,就能同时拿到两类输出:
prediction_outputs:点预测,形状(batch, 96, 1)quantile_outputs:分位数预测,形状(batch, 9, 96, 1),对应[0.1, 0.2, ..., 0.9]九个分位点
也就是说,同一个模型、同一组权重、同一时刻,点预测与分位数预测是协同输出的。0.5 分位数(中位数)是最稳健的中心估计,而 0.1 与 0.9 的差值则刻画了预测的不确定性宽度。
下面是模型在昇腾 NPU 上的真实推理验收结果截图,可以看到输入序列、点预测输出以及设备信息一目了然:
昇腾 NPU 上运行分位数预测模型的快速上手步骤 🛠️
本项目是一个自包含推理交付仓库:模型快照、建模源码与推理入口全部收拢在delivery/内,inference.py不依赖任何外部临时文件。运行环境为 openEuler + CANN 8.5.1 + torch_npu 2.9.0,模型主前向固定跑在逻辑设备npu:0上,禁止 CPU 回退。
git clone https://gitcode.com/atlasleong/granite-timeseries-flowstate-r1-npu cd granite-timeseries-flowstate-r1-npu pip install --ignore-installed --no-deps -r requirements.txt python3 inference.py运行后你会看到类似这样的关键标记:
INPUT_DEVICE=npu:0 MODEL_DEVICE=npu:0 CPU_FALLBACK=false FORECAST=-0.204462,-0.173393,... FORECAST_SHAPE=2,96,1 QUANTILE_OUTPUTS_SHAPE=2,9,96,1 NPU_FORWARD_MS=1629.774 EXIT_CODE=0其中QUANTILE_OUTPUTS_SHAPE=2,9,96,1就直观地告诉你:9 个分位数的预测通道已经真实产出。NPU_FORWARD_MS约 1.63 秒的单次前向耗时(含 warmup)也说明这套方案在昇腾设备上性能相当稳定。
下图展示了分位数预测模型在昇腾 NPU 上的设备调用状态,8 卡 910B4 全部健康在线,模型进程由 python3.11 承载:
从 Model Agent 到验收结果:全流程真实可复现 ✅
这套交付不是"拍脑袋"写出来的,而是由 Model Agent 走完从模型导入、推理执行到结果验证的完整适配工作流,全程真实运行、真实截图、禁止伪造。验证结果显示:精度对比中最大绝对误差仅约2.4e-5,10 个独立子进程、共 1920 个输出元素离散一致率达到 10/10。
分位数预测实践建议:scale_factor 参数怎么选?
FlowState 最妙的地方在于时间尺度可调。针对不同采样率的数据,推荐按如下scale_factor取值(详见model/README.md):
| 采样率 | 推荐 scale_factor |
|---|---|
| 15 分钟 | 0.25 |
| 30 分钟 | 0.5 |
| 小时级 | 1.0 |
| 日级(有周周期) | 3.43 |
| 日级(无周周期) | 0.0656 |
| 周级 | 0.46 |
| 月级 | 2 |
计算公式也很简单:scale_factor = 24 / N,其中 N 是数据的季节周期长度。另外建议预测步数不要超过 30 个季节,否则预测质量会明显下降。
结语:让预测从"一个数"变成"一个区间" 🎯
Granite-TimeSeries-FlowState-R1-NPU 用约 900 万参数、一次前向,同时给出点预测和 9 个分位数,把分位数预测的入门门槛降到了最低:克隆仓库、装好依赖、一行命令,就能在昇腾 NPU 上得到带不确定性的预测结果。无论你是做电力负荷预测、库存优化还是流量容量规划,把"点预测思维"升级为"分位数区间思维",都会让你的决策多一层安全边际。从本项目开始,体验"不只是点预测"的时序预测新方式吧!
【免费下载链接】granite-timeseries-flowstate-r1-npu项目地址: https://ai.gitcode.com/atlasleong/granite-timeseries-flowstate-r1-npu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考