Amazon Web Services ブログ

小売業で売り上げ数量の予測を実現するサンプルソリューションを公開しました

小売業で、過去の販売データをもとに売り上げ数量を予測する仕組みのサンプルソリューションをGithub上でOSSとして公開しました。実績データをDWHに取り込んで前処理し、LightGBMベースの予測を出すまでの仕組みをAWS  Cloud Development Kit (CDK) ベースで提供するものです。本エントリではソリューションの構成や使い方について説明します。(2024/02追記: こちらに本ソリューション利用にかかるコストをベンチマークを基に試算した内容を掲載しました)

シンプルで見通しが良い分析アーキテクチャの土台を提供する

Amazon Web Services (以下AWS)では、多くのサービスが提供されており、それらを適切に組み合わせることで高い自由度でソリューションを構築できるようになっています。各サービスは数クリックですぐに起動でき、運用管理の負担が少ないマネージド・サービス、もしくはサーバーレスと呼ばれる形態で提供されています。

一方で、ソリューションを構築する時間が取れない場合もあります。特に巨大データの分析や予測といった用途においては、ある程度やってみてから発見・理解できる事も多く、すぐに始めることがビジネス上の優位性を生む場合があります。

そこで、複数のサービスを統合した構成(アーキテクチャ)を事前に検討してOSSで公開し、CDKでデプロイ可能にしておくことで、すぐに分析にトライすることができるようにしたのが今回のソリューションです。

ソリューションは、できるだけシンプルで見通しが良く、管理の手間が少ない予測ソリューションのひな形を提供することを目標に設計しました。ユースケースを「小売(リテール)業の売り上げ情報から売り上げ数量を予測する」こととし、構成済のアーキテクチャ、CDKによる構築、サンプルデータ、ドキュメントを提供します。

アーキテクチャは下図のような構成です。データをAmazon S3上に保存したうえで、AWS Step Functionsを起動すると、データをAmazon Redshift Serverlessにロードし、SQLを実行して前処理し、Amazon SageMakerのビルトインアルゴリズムであるLightGBMで学習し、予測をS3に出力します。そのデータはAmazon Athenaで閲覧したり、Amazon QuickSightで可視化することが可能です。

アーキテクチャ図

想定する利用者・使い方

本ソリューションはエンジニア(AWSについて技術的な知見がある方)が、自分の環境に合わせてカスタマイズをすることを前提に作成しています。

ソリューションは100%の完成品ではありません。例えば基幹システムからデータをS3に取り込む部分は含まれません。取り込む方法は環境によって大きく異なりますので、環境に合わせて(S3への)データ転送方法を検討・実装いただく事を前提にしています。同様にデータ整形(前処理)は、Redshift Serverless上でSQLを実行することで実施していますので、カスタマイズにはSQLの記述が必要になります。

一方で、見通しが良く設計しておりAWSエンジニアであれば拡張しやすい作りになっています。例外処理等、あえて作りこんでいない部分もありますが、その分全体をシンプルに保っています。このように、利用者がソースコードやSQLを修正して自分のニーズに合わせた活用がしやすい事を重視したソリューションです。全体の流れをつかむには、まずはソリューション・アーキテクチャを見ていただくと良いでしょう。

また、AWSのサーバーレス・サービスを中心としたアーキテクチャにすることで、運用の負担を減らす構成としつつ、大規模データ処理や将来の予測モデル拡張に耐えうるサービスを選択しています。ソースコードはAWS Cloud Development Kit (CDK) ベースで作成されており、ソリューションをほぼ自動的で構築可能です。サンプルデータと共に公開されており、動作を確認した後は利用者がニーズに合わせて改変して利用することが可能になっています。

フィードバック/プルリクエストをお待ちしております

今回のリリース (v0.1)はエンド・ツー・エンドで動作することを確認していますが、まだまだ不足している部分もあります。例えばドキュメントはもっと分かりやすいものがあると良いでしょうし、カスタマイズガイド等も充実させる必要があると思っています。機能面でも追加すべき部分が多数あると思いますし、不具合もあるかもしれません。

ご興味がある方はぜひ触っていただいて、Github上のIssueでのフィードバックや、プルリクエストをいただければと思います。必ずの対応をお約束するものではありませんが、できる範囲で改善していく予定です。

AWS 伊藤、秋田、平間、下佐粉