Amazon Forecast 的需求预测 - 停止新用户受理、迁移到 SageMaker Canvas 以及时间序列预测的机制

Amazon Forecast 已于 2024 年 7 月 29 日停止受理新用户(现有用户可继续使用)。本文讲解迁移到官方承接方案 SageMaker Canvas 的时间序列预测,以及 Forecast 的模型构建 / 概率预测 / 计费结构。

停止新用户受理与迁移目标

Amazon Forecast 已于 2024 年 7 月 29 日起停止受理新客户。AWS 官方说明,现有用户可以像以往一样继续使用该服务,AWS 会继续进行安全性 / 可用性 / 性能方面的改进,但不计划添加新功能。如果从现在开始进行时间序列预测,官方的承接方案是 Amazon SageMaker Canvas 的时间序列预测功能。AWS 官方博客“Transition your Amazon Forecast usage to Amazon SageMaker Canvas”介绍了迁移的思路和步骤。SageMaker Canvas 的预测间隔为 1 分钟 / 5 分钟 / 15 分钟 / 30 分钟 / 1 小时 / 1 天 / 1 周 / 1 个月 / 1 年。时间戳列 / 目标列 / 项目 ID 列这种输入的思路也与 Forecast 几乎相同,因此可以直接沿用数据设计。此外,它还支持在模型排行榜上比较算法,以及基于 AutoML API 的自动化。本文作为现有 Forecast 环境的运维资料,以及记录 Forecast 所采用设计的历史资料而保留。以下涉及的机制和数值,请作为现有环境的运维判断以及迁移到 SageMaker Canvas 时进行对应关系梳理的参考来阅读。

需求预测的挑战与 Forecast 的定位

需求预测是零售、物流、制造、能源等众多行业的重要挑战。传统的统计方法(移动平均、指数平滑、ARIMA)实现相对容易,但在捕捉季节性 / 趋势 / 外部因素影响等复杂模式方面存在局限。基于深度学习的方法(DeepAR、Transformer)精度高,但需要 ML 专业知识和模型调优。Forecast 是 2019 年 8 月开始提供的服务。其特点是取舍明确:只需导入时间序列数据,AutoML 就会比较多种算法,并通过回测选出精度最高的模型。通过概率预测返回 P10、P50、P90 的预测区间,并通过不确定性的量化支持考虑风险的决策,这一设计也是这一代托管预测服务的核心。将预测视为“分布”而不是“单一数值”的思路也由后继的 SageMaker Canvas 继承,因此理解 Forecast 的设计对迁移后的设计也直接有用。

数据准备与预测模型的构建

Forecast 的使用从将数据导入数据集组(Dataset Group)开始。目标时间序列(必需)是要预测的数据,由时间戳、项目 ID、值(销售数量、需求量)3 列构成。相关时间序列(可选)是天气数据、促销信息、价格变动等外部因素。项目元数据(可选)是类别、品牌、颜色等项目的属性,用于在相似项目之间共享模式。数据以 CSV 格式放置在 S3 中,并通过架构定义(JSON)指定各列的属性类型和数据类型。时间戳的粒度通过整数 + 单位的组合来指定。数据集一侧的 DataFrequency 和预测一侧的 ForecastFrequency 都采用通用的格式。分钟取 1 到 59、小时取 1 到 23、天取 1 到 6、周取 1 到 4、月取 1 到 11、年取 1 的范围,15min(每 15 分钟)和 2W(隔周)这样的指定也有效(截至 2026 年 8 月的 API 参考记载值)。但是,像 60 分钟 = 1 小时这样与上一级单位重叠的值无法指定。根据业务需求进行设置,并使其与预测范围的单位一致。数据集组内的数据集每种类型各 1 个,最多 3 个;目标时间序列的列数为必需 3 列 + 额外的预测维度 10 列,最多 13 列。由于存在这些限制,维度设计在最初就确定下来。AutoML 使用 DeepAR+、Prophet、ETS、NPTS、ARIMA、CNN-QR 这 6 种算法构建模型,并通过回测自动选择精度最高的模型。

概率预测与 What-If 分析

Forecast 不仅提供点预测(单一的预测值),还提供概率预测(包含预测的不确定性)。默认情况下,以 P10(需求低于该值的概率为 10%)、P50(中位数)、P90(需求低于该值的概率为 90%)这 3 个分位点生成预测。分位点并不固定为默认值。根据官方 API 参考,可以通过 ForecastTypes 在 0.01 到 0.99 之间以 0.01 为步长最多指定 5 个分位点,也可以指定返回平均值的 mean(截至 2026 年 8 月的记载值)。在库存管理中,可以用 P50 决定常规订货量,用 P90 设置安全库存。它支持符合业务需求的决策,例如对无法容忍缺货风险的商品以 P90 为基准订货,对希望将库存成本降到最低的商品以 P50 为基准订货。不过,指定的分位点数量与生成的预测数据点数量成正比,并直接影响后述的计费,因此只选择所需的分位点是实务上的关键。在 What-If 分析中,可以生成“下个月实施促销时的需求”“降价 10% 时的需求”等情景预测。可以并行评估更改了相关时间序列值的多个情景,在事前定量地评估措施的效果。

预测精度的提升

Forecast 的预测精度在很大程度上取决于输入数据的质量和相关数据的充实程度。添加相关时间序列数据(天气、节假日、促销)后,模型会学习外部因素造成的需求变动,精度随之提升。Forecast 具有内置的节假日信息(Holidays 特征化),只需指定国家代码,就会自动考虑主要节假日的影响。项目元数据(类别、品牌、价格区间)对缓解冷启动问题(新商品的预测)有效,根据相似项目的历史数据推算新商品的需求模式。Predictor 的回测结果提供 WAPE(Weighted Absolute Percentage Error)、RMSE(Root Mean Squared Error)、MAPE(Mean Absolute Percentage Error)这几项精度指标。借助这些指标,可以定量地判断模型的质量。用于优化的指标可以通过官方 API 参考中的 OptimizationMetric 从 WAPE / RMSE / MASE / MAPE / AverageWeightedQuantileLoss 中选择。因此,根据更看重缺货成本还是库存成本来统一指标。回测窗口最多可以设置 5 个,通过分期间验证,可以得到不受单一期间偶然性左右的评估。精度不足时,通过添加相关时间序列、数据预处理(补全缺失值、去除异常值)以及更改预测频率来加以改善。

用例与行业应用

Forecast 曾在零售、制造、物流、能源等广泛的行业中使用。在零售业,通过 SKU 级别的需求预测优化库存配置,同时减少库存过剩和缺货。在制造业,通过原材料订货量的预测制定考虑采购提前期的采购计划,为整个供应链的成本优化作出贡献。在物流业,通过员工排班需求的预测优化人员配置,防止旺季人手不足和淡季人员过剩。在能源行业,通过电力消耗量的预测制定发电计划,支持应对可再生能源输出波动的电网管理。在 Web 服务中,也可以应用于服务器的容量规划,用于优化基于流量预测的 Auto Scaling 设置。这些设计都归结为“每个项目 ID 的时间序列 + 外部因素的相关时间序列”这一共同形式,因此新实现相同用途时,也可以直接替换为 SageMaker Canvas 的时间序列预测来进行设计。

费用与限制的注意事项

计费由 5 个维度构成(截至 2026 年 8 月 / 弗吉尼亚北部和东京区域。根据 AWS Price List API 的实测,两个区域价格相同)。第 1 个是预测的生成数,每 1,000 个 0.60 美元。第 2 个是生成的预测数据点数,按月分级。不足 10 万个时每 1,000 个 2.00 美元,超过 10 万个且不足 100 万个时 0.80 美元,超过 100 万个且不足 5,000 万个时 0.20 美元,超过 5,000 万个时 0.02 美元。第 3 个是训练时间,每小时 0.24 美元;第 4 个是数据导入量,每 GB 0.088 美元。这 0.088 美元是导入时收取 1 次的费用,而不是在持续保存期间产生的每月存储费用。第 5 个是可解释性(Explainability)的生成数,采用分级制,从每月不足 5 万个时每 1,000 个 2.00 美元,到超过 1,000 万个时 0.15 美元。包括分级边界值在内的最新列表,请在官方的 Amazon Forecast 定价页面确认。左右账单金额的不是项目数本身,而是由项目数 × 预测范围 × 指定的分位点数决定的数据点数,因此估算一律从这个乘法开始构建。由于 AutoML 会训练多个模型,训练成本高于手动指定算法的情况。如果预测精度足够,就将训练频率从每周改为每月来降低成本。在限制方面,根据官方的配额列表(截至 2026 年 8 月的记载值),数据集组数为 500、Predictor 数为 500(均可申请提高),AutoPredictor 数为 500(不可提高)。数据集导入的上限为 S3 存储桶内所有文件的累计大小 30 GB(可申请提高)和文件数 10,000 个(不可提高)。决定预测范围的不是粒度,而是序列长度。对于新的 AutoPredictor,取 500 个时间步与目标时间序列长度的 1/4 中较小的一方。对于现有 AutoPredictor 的重新训练以及旧版 predictor 的 CNN-QR / DeepAR+ / AutoML,取 500 与 1/3 中较小的一方。对于 ETS / NPTS / Prophet / ARIMA,取 500 与序列长度减 1 后的值中较小的一方。对于大规模数据集(数百万行),训练时间有时需要数小时,因此为运维计划留出余地。

总结

作为从时间序列数据自动构建 ML 模型的托管服务,Forecast 采用了用 AutoML 弥补传统统计方法的局限、并通过回测从 6 种算法中选出最优模型的设计。用相关时间序列数据和内置节假日信息提高精度,通过概率预测默认返回 P10/P50/P90 的预测区间,并通过 What-If 分析支持情景比较。这一组合被广泛应用于从零售的库存优化到制造的采购计划以及能源的电网管理等领域。新用户的受理已于 2024 年 7 月 29 日结束,因此如果从现在开始着手需求预测,官方的路径是从 SageMaker Canvas 的时间序列预测功能开始。如果正在运维现有的 Forecast 环境,实务上的要点是掌握以数据点数为基准的计费结构,以及在不计划添加新功能的前提下研究迁移计划。如果已经积累了过去 1 年以上的销售记录,不妨先从在 SageMaker Canvas 中使用相同数据验证预测精度开始。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享