本ソリューションは、小売業(リテール業)での発注業務を想定ユースケースとした予測を実現するソリューションです。過去のデータを基に予測を提供し、店舗管理者(店長)や、本部の発注担当者等が簡単にデータに基づいた発注を可能にするためのサンプル構成をオープンソースで提供します。ライセンスはLICENSE.txtを確認してください。
本ソリューションは無保証です。免責事項を確認してください。また、導入方法はクイックスタートガイドを参照してください。
Amazon Web Services (以下AWS)では、多くのサービスが提供されており、それらを適切に組み合わせることで高い自由度でソリューションを構築できるようになっています。各サービスは数クリックですぐに起動でき、運用管理の負担が少ないマネージド・サービス、もしくはサーバーレスと呼ばれる形態で提供されています。
一方で、ソリューションを構築する時間が取れない場合もあります。特に巨大データの分析や予測といった用途においては、ある程度やってみてから発見・理解できる事も多く、すぐに始めることがビジネス上の優位性を生む場合があります。
本ソリューションは、シンプルで見通しが良く、管理の手間が少ない予測ソリューションのひな形を提供することを目標に作成されています。ユースケースを限定した構成済のアーキテクチャを提供し、分析・予測といった活用にすぐに入れる環境を提供します。
ソリューションは100%の完成品ではありませんが、見通しが良く、拡張が容易であることを念頭に設計しています。例外処理等あえて作りこんでいない部分もありますが、全体をシンプルに保っているため、利用者がソースコードやSQLを修正して自分のニーズに合わせた活用がしやすいようにデザインされています。また、AWSのサーバーレス・サービスを中心としたアーキテクチャにすることで、運用の負担を減らす構成としつつ、大規模データ処理や将来の予測モデル拡張に耐えうるサービスを選択しています。例外処理の追加方法やアーキテクチャについてはソリューション・アーキテクチャを参照してください。
ソースコードはAWS Cloud Development Kit (CDK) ベースで作成されており、ソリューションをほぼ自動的に構築可能になっています。またサンプルデータと共に公開されており、動作を確認した後は利用者がニーズに合わせて改変して利用することが可能になっています。カスタマイズの方法については、 カスタマイズガイドを参照してください。
想定ユースケースは、「小売(リテール)業務において明日の商品の売上個数を予測する」というものです。POSデータ等の履歴をもとに将来の販売(需要)を予測するという業務は小売(リテール)業だけでなく多くの業態に適用可能であると考えています。
サンプルとして、入力データとしては以下の入力を想定しています。
- 商品マスター (カテゴリー、プロダクト情報)
- 店舗情報 (店舗サイズの大小等)
- イベントカレンダー (セール日等)
- 天気データ
- 過去の売上データ
これらのデータがAmazon S3上にファイルとして置かれていることをスタートとし、必要な前処理(データ変形)をRedshift ServerlessのSQLで実行、Amazon SageMakerで学習(モデル更新)と推論の結果を作成、Amazon AthenaやAmazon QuickSightで予測結果を確認するまでの処理を提供します。処理ワークフローはAWS Step Functionsでコントロールします。詳細はアーキテクチャを参照してください。
本ソリューションにはサンプルデータが付属しているため、まずはこのサンプルデータで動作を確認した後に、実際の業務のデータを投入して動作確認することを想定しています。
本番データが巨大になりうることは想定されており、特に重い処理になることが想定される前処理は、 Amazon Redshift Serverless の分散処理で実行することで、スループットを担保することを可能にしています。
前処理のカスタマイズはSQL文を修正する事で実現可能であり、前処理のカスタマイズにプログラミングが不要な構成になっています。また、ワークフロー全体はAWS Step Functions で構成されているため、こちらもプログラミング不要で修正が可能です。
予測のアルゴリズムについては、この領域でポピュラーかつAmazon SageMakerから容易に利用できるLightGBMをベースにPythonスクリプトとして提供しており、こちらもカスタマイズが容易になっています。
一方で、データを基幹システム(POS等)からAmazon S3に転送する部分(ETL)については、サンプルは提供されていませんので、環境にあわせて準備することを想定しています。
カスタマイズについてはカスタマイズガイドを確認してください。
本ソリューションには、より詳細なドキュメントや便利に使うための機能等、まだ不足している部分があります。これらについては、利用者からのフィードバックを踏まえて改善していく予定です。
要望がある場合、もしくはバグを発見した場合は、GithubのIssueにてご連絡ください。修正の保障はできませんが、ベストエフォートで対応していく予定です。