亚马逊AWS官方博客

志华软件如何利用 AWS 服务实现销售预测

背景

在日趋激烈的市场竞争中,服装产业的每一个环节都呼唤更加精细化的管理,以达到降本增效的目的。在服装销售环节,广东志华软件科技有限公司(以下简称“志华软件”)亟需在其软件中添加销售预测功能。该功能将帮助服装企业预测市场趋势,根据预测结果实现智能配货,节省因为缺货导致的调货成本,以及根据预测结果调整营销策略,从而让服装企业更好地适应市场需求。志华软件在有限资源情况下,通过与 AWS 算法工程师、数据科学家合作共创算法,利用 Amazon SageMaker 部署算法、训练模型,并在 AWS 团队的帮助下将算法工程化,集成于应用系统中,最终实现了销售预测功能。

销售预测的基本原理及方法

销量预测是通过对历史的销售数据和相关的影响因素进行分析建模,利用模型来预测未来的销量。其中相关的影响因素,通常包括促销、广告、价格、库存、节假日、竞品信息等。销量预测是一个时间序列预测的问题,从方法上可以分为以下几类:

  1. 传统时间序列预测:主要通过时间序列的自相关性对未来值进行预测 ,比如 Moving Average(MA)类,ES,ARMA,ARIMA 等。
  2. 机器学习类:从特征工程着手,通过时间滑窗将历史数据转化为特征,从而将时序问题转化为经典的回归问题,比如 LightGBM,GBDT,CatBoost 等。
  3. 神经网络类:使用神经网络构建模型,比如 DeepAR,Transformer,MQ-CNN,TFT 等。

机器学习类和神经网络类通常是在所有时间序列上联合训练单个模型,如果在一段时间内有许多相似的时间序列,联合训练可能是有益的。在销量预测的任务上,效果通常优于传统时间序列预测的方法。

对不同的预测场景,最优模型可能不同。志华技术团队经过与 AWS 团队的讨论以及技术预演,决定采用 AutoML 的方式,在 AWS 云上通过 SageMaker 运行 AutoGluon 机器学习训练框架,根据模型效果,选择不同场景下的最优方案,实现销售预测功能。

算法技术选型

AutoGluon 介绍

AutoGluon 是亚马逊推出了开源代码库,它可以自动执行机器学习任务,使您能够轻松地在应用程序中实现强大的预测性能。只需几行代码,您就可以在图像、文本、时间序列和表格数据上训练和部署高精度机器学习和深度学习模型。

由于销售数据是一种典型的时间序列数据,因此我们采用 AutoGluon 算法进行销售预测。AutoGluon 可以根据历史数据和其他相关协变量预测多个时间序列的未来值。一次调用 AutoGluon TimeSeriesPredictor 的 fit() 方法即可训练多个模型以生成准确的概率预测,并且不需要您手动处理模型选择和超参数调整等繁琐问题,如下列代码所示:

from autogluon.timeseries import TimeSeriesDataFrame, TimeSeriesPredictor

data = TimeSeriesDataFrame('https://autogluon.s3.amazonaws.com/datasets/timeseries/m4_hourly/train.csv')

predictor = TimeSeriesPredictor(target='target', prediction_length=48).fit(data)
predictions = predictor.predict(data)

在底层,AutoGluon 结合了各种最先进的预测算法。其中包括 StatsForecast 和 statsmodels 库中的 ETS 和 ARIMA 等已建立的静态方法,基于 AutoGluon-Tabular 的 LightGBM 等高效的基于树的预测器,以及 GluonTS 中的 DeepAR 和 Temporal Fusion Transformer 等灵活的深度学习模型。

Amazon SageMaker 介绍

Amazon SageMaker 是亚马逊云科技推出的一款全托管的机器学习平台(包括传统机器学习和深度学习),它覆盖了整个机器学习的生命周期,如下图所示:

SageMaker 支持丰富的机器学习框架,例如 TensorFlow,PyTorch,MXNet 及 AutoGluon 等。与此同时,SageMaker Pipeline 功能帮助构建的持续集成和持续交付(CI/CD)服务,大大提升了算法开发效率。下图是一个 Pipeline 的例子:

在具体实现上,AWS 团队与志华软件的技术团队合作,逐步完善了数据处理逻辑和特征工程,比如缺失值的处理,促销的类型,价格特征的构造等,进一步提升模型效果。此外,AWS 团队根据实际情况优化了 Pipeline 数据处理步骤,让志华软件普通业务人员也能够通过 Amazon SageMaker 的界面配置参数,使 Pipeline 可以灵活的选择模型特征和预测区间,以适用不同的销量预测场景。

如下图所示,志华软件普通业务人员根据业务需求,通过配置参数训练模型。

整体方案架构

影响销售预测算法预测准确度的核心是数据,到随着预测算法的深入应用,数据的准备是一项日常工作;另外,预测结果如何与 ERP 系统集成也是一个亟待解决的问题。

由于销售数据保存在生产系统的 RDS for MySQL 数据库中,同时开发运维人员非常熟悉 SQL,因此通过 SQL 语句准备训练数据,解决方案以某种技术手段自动拉取数据,输入到 Amazon SageMaker 算法模型训练流水线中是开发运维人员系统希望采用的方式。考虑到最大限度减少维护成本,志华团队与 AWS 解决方案架构师讨论,决定采用无服务器化服务进行架构。

首先,我们选择 AWS Glue 作为 ETL 的工具。AWS Glue 是一种无服务器化的 ETL 服务。在本方案中,由于销售数据具有时效性,我们通过定时触发 Glue Job 将数据从 RDS 导入到指定的 S3 存储桶中。

第二,当 Glue Job 完成 ETL,任务的状态变更触发 Eventbridge Rule,通过 Lambda 启动训练流水线。

第三,当模型训练完成,系统触发 Glue Job 将推理结果保存到 RDS 数据库。

最后,我们得到以下整体解决方案,实现了端到端的集成,即数据从 RDS 中来,推理结果又保存回 RDS,将推理结果保存到 RDS 中有利于后续应用集成。方案架构如下图所示:

方案优势及收益

  • 在系统运维层面,由于采用 SageMaker 作为模型训练及推理平台,仅在模型训练及推理时候存在费用。由于本方案采用无服务器化设计,运维人员无需进行服务器的运维工作。
  • 在与 ERP 系统集成方面,本解决方案通过批量推理的方式一次性地将结果写入 RDS 关系型数据库,方便 ERP 系统开发人员对推理结果做集成,例如可以通过 SQL 语句就可以查询某个 SKU 在未来某一天的销售预测情况,并且预测结果保存在关系型数据库中也方便与现有的 BI 系统做集成。
  • 在业务方面,通过方案的部署,志华软件可以获得服装在某个区域的销售趋势以及服装未来一周内的某个服装商品的销量预测。这帮助志华软件添加产品特色,是 ERP 销售新的亮点,目前志华软件已经将该功能部署于几个客户当中。

未来展望

AI 技术在企业的销售计划、商品计划和经营管理分析中扮演着重要角色。利用大数据分析,AI 能够获取精准的市场数据,并借助其强大的分析能力和算法优势提高操作效率和准确性。

(1)销售计划方面:AI 自动化生成报告和分析结果,同时监控市场变化并及时调整销售计划,提升精准度和反应速度。

(2)商品计划方面:通过实时监测库存水平和市场需求变化,AI 自动生成最优采购计划以保证库存充足且不造成过度存货,并帮助企业更好地解市场需求和客户行为。

(3)经营管理方面:通过预测销量辅助企业经验管理,AI 实现优化生产计划、提升客户满意度、优化供应链管理以及提高运营效率等多个关键作用。

AI 销量预测具有强大的优势,在销售计划、商品计划和经营管理分析等方面带来高效性和精准性,让企业能够更加顺畅地进行各项操作,实现持续增长和发展,进而获得更大的成功。

志华软件通过与 AWS 团队的合作实现销售预测功能,并应用于一些客户的日常使用中。在项目过程中,双方有更深的相互了解,希望后续针对 AI/ML 加强合作,特别是生成式 AI 在行业中的应用做更多的探索。

本篇作者

刘宗超

志华软件云计算工程师,具备多年 ERP 系统运维经验以及 Oracle 和 RDS 数据库管理技能,先后涉猎 Elasticsearch 等搜索引擎数据库技术。根据客户需求定制和管理 AWS 云服务平台,以支持大数据存储和分析。

陈明栋

AWS 解决方案架构师,主要负责 AWS 云技术和解决方案的推广工作。拥有 18 年软件开发经验,擅长软件架构设计和项目交付及管理。加入 AWS 前曾先后在 IBM、金蝶、Oracle 从事软件工程师、软件架构师等方面的工作。

魏嫄

亚马逊云科技应用科学家,统计学博士,熟悉自然语言处理,机器学习等领域。