一个食品企业同时有上万个 SKU 时,为什么不能给每个商品都使用完全相同的预测模型?
假设一个食品企业有一万个 SKU:其中约 3000 个几乎每天都有销量,约 5000 个一周只卖出几件,还有几百个只在春节、中秋和端午前后出现。把这三种销量形态放进同一个预测模型(Forecasting Model),结果通常是快销品被平均得不够精细,慢销品被拟合成一串没有意义的零,节令商品在非季节里被强行预测出销量。必赢亚洲模型的做法是先看清每个商品属于哪一类,再决定用哪种预测方法,这一步叫模型路由(Model Routing)。
先给每个 SKU 画像
路由的依据是 SKU 画像,由五个字段组成:销售频次(近 90 天有销售的天数占比)、需求变异系数(销量标准差除以均值)、季节强度(时序分解后季节分量的方差占比)、保质期天数、有效历史长度。画像每周重算一次,数据来自销量、天气、库存、保质期,以及冷链上的 IoT 温度记录。
路由规则:需求形态选预测器,保质期选目标
路由分两步,两步互相独立,所以同一个 SKU 可以既是快销品,又是短保品。
示例推演 · 路由规则(阈值为示例,需回测确定)
第 1 步 选预测器(看需求形态) 有效销售日 < 28 → 冷启动:相似商品迁移 有销售日占比 < 40% → 慢销:间歇需求方法或分位数 季节强度 ≥ 0.4 且历史 ≥ 2 年 → 季节:年度周期加节点事件 其余 → 快销:全局梯度提升 第 2 步 选目标与约束(看保质期) 保质期 ≤ 7 天 → 短保:不对称成本加库存寿命 保质期 ≥ 90 天 → 长保:服务水平加批量与资金占用 其余 → 常规:服务水平加保质期上限
| 分群 | 判定条件 | 主模型与目标 | 回退 |
|---|---|---|---|
| 快销品 Fast-moving | 有销售日占比高,变异系数低 | 跨 SKU 共享参数的梯度提升或深度时序,输出分位数 | 星期修正的移动平均 |
| 慢销品 Slow-moving | 大量零销量,需求间隔长 | Croston 类间歇需求方法,或直接预测提前期内需求的分位数 | 按品类汇总后按比例拆分 |
| 季节品 Seasonal | 季节强度高,历史满两年 | 年度周期加春节、中秋等节点事件特征 | 去年同期乘近期趋势系数 |
| 短保品 Short Shelf-life | 保质期不超过 7 天 | 缺货与报废的不对称损失,受库存寿命约束 | 偏保守的固定分位数 |
| 长保品 Long Shelf-life | 保质期不少于 90 天 | 周粒度预测,看服务水平与资金占用 | 安全库存加固定补货点 |
| 新品冷启动 | 有效销售日不足 28 天 | 借用相似商品的销速曲线,逐周更新 | 品类平均销速 |
短保品与新品的特殊处理
短保品的训练目标不是“尽量准”,而是让缺货与报废的总损失最小:缺货一件损失毛利,多订一件在保质期结束时变成成本,两者不对称,所以模型要预测分位数,并把库存寿命写进约束。今天到货的批次只有三个销售日,预测窗口就是三天,而不是七天。新品没有历史,就按品类、价格带、规格和渠道找相似商品,借用它们上架前四周的销速曲线,真实销量累积起来以后,逐周降低相似商品的权重。
为什么既不是一万个模型,也不是一个模型
为每个 SKU 单独训练库存预测模型,训练、监控、发版和回滚都要乘以一万;慢销品数据稀疏,独立训练几乎不稳定。用一个模型通吃则相反:快销品关心相对误差,慢销品的大量零让 MAPE 没有定义,短保品需要缺货与报废不对称的损失,同一个损失函数无法兼顾这三种误差结构。折中办法是少数几个模型族,每一族在一群相似的 SKU 上共享参数。
以上为示例推演数字,说明维护对象的数量级差别,不代表真实企业数据。
监控与回退:运维清单
- 保留朴素基线:每个分群都并行跑季节朴素或去年同期,作为对照,也作为回退目标。
- 分开看误差:快销品看加权绝对误差(WAPE)与偏差,慢销品看提前期内分位数的覆盖率,短保品还要看报废量。
- 三级回退:先换同族备用模型,再退到朴素基线,最后给采购员偏保守的建议并标为低置信度。示例规则:连续 7 天 WAPE 高于基线 1.2 倍就降级。
- 路由要有迟滞:阈值上下 10% 内保持原路由,避免一个 SKU 在两个模型之间来回跳。
- 数据健康:监控缺货截尾比例、门店主数据变更和 SKU 编码合并,这些比模型本身更容易让误差突然变坏。
- 温度与数字孪生:2026 年的综述指出,混合数字孪生(Digital Twin)可以把每批货的温湿度历史转成剩余保质期的个体化预测,短保品接入 IoT 数据后,保质期约束就从固定天数变成逐批估计。
- 版本与审计:每条建议记录路由结果、模型版本和数据切片,采购员改动建议时记录原因,下一轮回测使用。
路由器本身不需要是大模型
必赢亚洲 AI 的路由是一组可读的规则,阈值来自定期回测,结果可以逐条检查。大语言模型在这里的位置是解释“这个 SKU 为什么被路由到间歇需求模型”,以及读取新品资料,帮助整理相似商品的匹配特征。整套分工与为什么不能只靠大语言模型是同一个思路。