背景
在日趨激烈的市場競爭中,服裝產業的每一個環節都呼喚更加精細化的管理,以達到降本增效的目的。在服裝銷售環節,廣東志華軟件科技有限公司(以下簡稱“志華軟件”)亟需在其軟件中添加銷售預測功能。該功能將幫助服裝企業預測市場趨勢,根據預測結果實現智能配貨,節省因為缺貨導致的調貨成本,以及根據預測結果調整營銷策略,從而讓服裝企業更好地適應市場需求。志華軟件在有限資源情況下,通過與 AWS 算法工程師、數據科學家合作共創算法,利用 Amazon SageMaker 部署算法、訓練模型,并在 AWS 團隊的幫助下將算法工程化,集成于應用系統中,最終實現了銷售預測功能。
銷量預測的基本原理及方法
銷量預測是通過對歷史的銷售數據和相關的影響因素進行分析建模,利用模型來預測未來的銷量。其中相關的影響因素,通常包括促銷、廣告、價格、庫存、節假日、競品信息等。銷量預測是一個時間序列預測的問題,從方法上可以分為以下幾類:
傳統時間序列預測:主要通過時間序列的自相關性對未來值進行預測 ,比如 Moving Average(MA)類,ES,ARMA,ARIMA 等。
機器學習類:從特征工程著手,通過時間滑窗將歷史數據轉化為特征,從而將時序問題轉化為經典的回歸問題,比如 LightGBM,GBDT,CatBoost 等。
神經網絡類:使用神經網絡構建模型,比如 DeepAR,Transformer,MQ-CNN,TFT 等。
機器學習類和神經網絡類通常是在所有時間序列上聯合訓練單個模型,如果在一段時間內有許多相似的時間序列,聯合訓練可能是有益的。在銷量預測的任務上,效果通常優于傳統時間序列預測的方法。
對不同的預測場景,最優模型可能不同。志華技術團隊經過與 AWS 團隊的討論以及技術預演,決定采用 AutoML 的方式,在 AWS 云上通過 SageMaker 運行 AutoGluon 機器學習訓練框架,根據模型效果,選擇不同場景下的最優方案,實現銷售預測功能。
算法技術選型
AutoGluon 介紹
AutoGluon 是亞馬遜推出了開源代碼庫,它可以自動執行機器學習任務,使您能夠輕松地在應用程序中實現強大的預測性能。只需幾行代碼,您就可以在圖像、文本、時間序列和表格數據上訓練和部署高精度機器學習和深度學習模型。
由于銷售數據是一種典型的時間序列數據,因此我們采用 AutoGluon 算法進行銷售預測。AutoGluon 可以根據歷史數據和其他相關協變量預測多個時間序列的未來值。一次調用 AutoGluon TimeSeriesPredictor 的 fit() 方法即可訓練多個模型以生成準確的概率預測,并且不需要您手動處理模型選擇和超參數調整等繁瑣問題,如下列代碼所示:
from autogluon.timeseries import TimeSeriesDataFrame, TimeSeriesPredictordata = 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 在行業中的應用做更多的探索。
轉載:https://aws.amazon.com/cn/blogs/china/how-f18erp-leverages-aws-services-for-sales-forecasting/