Amazon SageMaker Canvas を使用して、更新されたデータセットを使用して ML モデルを再トレーニングし、一括予測を自動化します

Using Amazon SageMaker Canvas, retrain the ML model with the updated dataset and automate batch predictions.

Amazon SageMaker Canvasでデータセットを更新して機械学習(ML)モデルを再学習し、バッチ予測ワークフローを自動化することができるようになりました。これにより、モデルのパフォーマンスを常に学習し改善することが容易になり、効率を高めることができます。MLモデルの効果は、トレーニングに使用されるデータの品質と関連性に依存します。時間が経つにつれ、データ内の基盤となるパターン、トレンド、および分布が変化する可能性があります。データセットを更新することで、モデルが最新かつ代表的なデータから学習することが保証され、正確な予測をする能力が向上します。Canvasは、自動的にまたは手動でデータセットを更新することをサポートし、トレーニングするMLモデルの表形式、画像、ドキュメントデータセットの最新バージョンを使用することができます。

モデルをトレーニングした後、それを予測で実行したい場合があります。MLモデルでバッチ予測を実行すると、1つずつ予測するのではなく、複数のデータポイントを同時に処理することができます。このプロセスを自動化することにより、効率性、スケーラビリティ、およびタイムリーな意思決定が提供されます。予測が生成された後、それらはさらに分析、集計、または可視化され、予測された結果に基づいて洞察を得たり、パターンを特定したり、情報に基づいた意思決定を行うことができます。Canvasは、自動バッチ予測構成の設定とデータセットの関連付けをサポートしています。関連するデータセットが手動またはスケジュールによって更新されると、対応するモデルで自動的にバッチ予測ワークフローがトリガーされます。予測の結果はインラインで表示されるか、後でダウンロードして確認することができます。

この投稿では、Canvasで更新されたデータセットを使用してMLモデルを再トレーニングし、バッチ予測を自動化する方法を説明します。

解決策の概要

私たちのユースケースでは、ECサイトのビジネスアナリストの役割を演じます。製品チームは、ショッピングの購入決定に影響を与える最も重要なメトリックを決定するように要求しています。これに対応して、同社の顧客Webサイトオンラインセッションデータセットを使用してCanvasでMLモデルをトレーニングします。モデルのパフォーマンスを評価し、必要に応じて、既存のモデルのパフォーマンスが改善されるかどうかを確認するために、追加データでモデルを再トレーニングします。そのために、Canvasのオートアップデートデータセット機能を使用して、最新バージョンのトレーニングデータセットで既存のMLモデルを再トレーニングします。その後、パフォーマンスの改善が見られたモデルバージョンで自動バッチ予測ワークフローを設定し、予測結果を表示します。

ワークフローの手順は次のとおりです。

  1. Amazon Simple Storage Service(Amazon S3)にダウンロードした顧客Webサイトオンラインセッションデータをアップロードし、新しいトレーニングデータセットCanvasを作成します。サポートされているすべてのデータソースについては、Amazon SageMaker Canvasでのデータのインポートを参照してください。
  2. MLモデルを構築し、パフォーマンスメトリックを分析します。CanvasでカスタムMLモデルを構築し、モデルのパフォーマンスを評価する方法については、次の手順を参照してください。
  3. 既存のトレーニングデータセットで自動更新を設定し、このデータセットをバックアップするAmazon S3ロケーションに新しいデータをアップロードします。完了すると、新しいデータセットバージョンが作成されます。
  4. 最新バージョンのデータセットを使用してMLモデルを再トレーニングし、そのパフォーマンスを分析します。
  5. パフォーマンスの改善が見られたモデルバージョンで自動バッチ予測を設定し、予測結果を表示します。

これらの手順をCanvasで1行のコードを書かずに実行できます。

データの概要

データセットには、12,330のセッションに属する特徴ベクトルが含まれています。データセットは、1年間の期間にそれぞれ別のユーザーに属するように構成されているため、特定のキャンペーン、特別な日、ユーザープロファイル、または期間に傾向があることを避けるためです。以下の表は、データスキーマを示しています。

列名 データ型 説明
Administrative 数値 ユーザーアカウント管理に関連するアクティビティのためにユーザーが訪問したページ数。
Administrative_Duration 数値 このカテゴリのページで費やした時間。
Informational 数値 ユーザーが訪問したこのタイプ(情報)のページ数。
Information

Revenueは、ショッパーが製品を購入するかどうかを予測するのに役立つターゲット列です。

最初のステップは、使用するデータセットをダウンロードすることです。このデータセットはUCI Machine Learning Repositoryの提供です。

前提条件

このチュートリアルを進めるには、以下の前提条件を満たしてください。

  1. 20,000行が含まれるダウンロードしたCSVを複数の小さなチャンクファイルに分割します。

これは、データセットの更新機能を紹介するためです。すべてのCSVファイルが同じヘッダーを持っていることを確認してください。そうしないと、Canvasでトレーニングデータセットを作成する際にスキーマ不一致エラーが発生する可能性があります。

  1. S3バケットを作成し、online_shoppers_intentions1-3.csvをS3バケットにアップロードします。

  1. ダウンロードしたCSVから1,500行を削除して、MLモデルをトレーニングした後にバッチ予測を実行するためにRevenue列を削除してください。

すべてのpredict*.csvファイルが同じヘッダーを持っていることを確認してください。そうしないと、Canvasで予測(推論)データセットを作成する際にスキーマ不一致エラーが発生する可能性があります。

  1. SageMakerドメインとCanvasアプリをセットアップするための必要な手順を実行します。

データセットの作成

Canvasでデータセットを作成するには、以下の手順を実行してください。

  1. Canvasで、ナビゲーションペインでデータセットを選択します。
  2. 作成を選択し、表形式を選択します。
  3. データセットに名前を付けます。この記事では、トレーニングデータセットをOnlineShoppersIntentionsと呼びます。
  4. 作成を選択します。
  5. データソースを選択します(この記事では、データソースはAmazon S3です)。

この執筆時点では、データセットの更新機能はAmazon S3とローカルにアップロードされたデータソースのみサポートされています。

  1. 該当するバケットを選択し、データセットのCSVファイルをアップロードします。

複数のファイルを含むデータセットを作成できるようになりました。

  1. データセットのすべてのファイルをプレビューし、データセットを作成を選択します。

現在、OnlineShoppersIntentionsデータセットのバージョン1が3つのファイルで作成されました。

  1. データセットを選択して詳細を表示します。

データタブにはデータセットのプレビューが表示されます。

  1. データセットの詳細を選択して、データセットに含まれるファイルを表示します。

データセットファイルペインには利用可能なファイルが一覧表示されます。

  1. バージョン履歴タブを選択して、このデータセットのすべてのバージョンを表示します。

最初のデータセットバージョンには3つのファイルがあります。以降のバージョンには、前のバージョンのすべてのファイルが含まれ、データの累積ビューが提供されます。

データセットのバージョン1でMLモデルをトレーニングする

データセットのバージョン1でMLモデルをトレーニングしましょう。

  1. Canvasで、ナビゲーションペインでマイモデルを選択します。
  2. 新しいモデルを選択します。
  3. モデル名を入力します(例:OnlineShoppersIntentionsModel)、問題タイプを選択し、作成を選択します。
  4. データセットを選択します。この記事では、OnlineShoppersIntentionsデータセットを選択します。

デフォルトでは、Canvasはトレーニング用に最新のデータセットバージョンを取り込みます。

  1. ビルドタブで、予測するターゲット列を選択します。この記事では、Revenue列を選択します。
  2. クイックビルドを選択します。

モデルトレーニングには2〜5分かかります。この場合、トレーニングされたモデルは89%のスコアを示します。

自動的なデータセットの更新を設定する

自動更新機能を使用してデータセットを更新し、新しいバージョンのデータセットでモデルのパフォーマンスが改善されるかどうかを確認しましょう。データセットは手動でも更新できます。

  1. データセットページで、OnlineShoppersIntentionsデータセットを選択し、データセットを更新を選択します。
  2. 手動更新(1回限りの更新オプション)または自動更新(スケジュールに応じてデータセットを自動的に更新できる)のいずれかを選択できます。この投稿では、自動更新機能を紹介します。

対応するデータセットの自動更新タブにリダイレクトされます。現在自動更新を有効にするが無効になっていることがわかります。

  1. 自動更新を有効にするをオンにし、データソースを指定します(この時点では、Amazon S3データソースが自動更新に対応しています)。
  2. 頻度を選択し、開始時間を入力します。
  3. 構成設定を保存します。

自動更新データセット構成が作成されました。いつでも編集できます。指定されたスケジュールで対応するデータセットの更新ジョブがトリガーされると、ジョブはジョブ履歴セクションに表示されます。

  1. 次に、online_shoppers_intentions4.csvonline_shoppers_intentions5.csv、およびonline_shoppers_intentions6.csvファイルをS3バケットにアップロードします。

ファイルをdataset-update-demo S3バケットで表示できます。

指定されたスケジュールでデータセット更新ジョブがトリガーされ、データセットの新しいバージョンが作成されます。

ジョブが完了すると、データセットバージョン2にはバージョン1のすべてのファイルとデータセット更新ジョブで処理された追加ファイルが含まれます。私たちの場合、バージョン1には3つのファイルがあり、更新ジョブは3つの追加ファイルを取得しました。したがって、最終的なデータセットバージョンには6つのファイルが含まれます。

新しいバージョンはバージョン履歴タブで確認できます。

データタブにはデータセットのプレビューがあり、データセットの最新バージョンのすべてのファイルのリストが提供されます。

最新のデータセットでMLモデルを再学習する

最新のデータセットでMLモデルを再学習しましょう。

  1. 「マイモデル」ページで、モデルを選択します。
  2. バージョンを追加を選択します。
  3. 最新のデータセットバージョン(この場合はv2)を選択し、データセットを選択します。
  4. ターゲットカラムとビルド構成を前のモデルバージョンと同様に保ちます。

トレーニングが完了したら、モデルのパフォーマンスを評価しましょう。次のスクリーンショットは、追加のデータを追加してMLモデルを再学習することで、モデルのパフォーマンスが向上したことを示しています。

予測データセットの作成

MLモデルをトレーニングしたら、予測用のデータセットを作成し、バッチ予測を実行しましょう。

  1. 「データセット」ページで、表形式のデータセットを作成します。
  2. 名前を入力し、作成を選択します。
  3. 500行のファイルをアップロードして予測します(S3バケット内)。

次に、予測データセットの自動更新を設定します。

  1. 自動更新を有効にするをオンにし、データソースを指定します。
  2. 頻度を選択し、開始時間を指定します。
  3. 構成を保存します。

自動更新された予測データセットでバッチ予測ワークフローを自動化する

この手順では、自動バッチ予測ワークフローを設定します。

  1. マイモデルページで、モデルのバージョン2に移動します。
  2. Predictタブで、Batch predictionAutomaticを選択します。
  3. Select datasetを選択して、予測を生成するデータセットを指定します。
  4. predictデータセットを選択し、Choose datasetを選択します。
  5. Set upを選択します。

これで、自動バッチ予測ワークフローが完成しました。これは、Predictデータセットが自動的に更新されたときにトリガーされます。

それでは、predict S3フォルダにさらにCSVファイルをアップロードしましょう。

この操作により、predictデータセットが自動的に更新されます。

これにより、自動バッチ予測ワークフローがトリガーされ、表示するための予測が生成されます。

すべての自動化はAutomationsページで表示できます。

自動データセット更新および自動バッチ予測ワークフローのおかげで、最新の表形式、画像、ドキュメントデータセットを使用してMLモデルをトレーニングし、すべてのデータセット更新時に自動的にトリガーされるバッチ予測ワークフローを構築できます。

クリーンアップ

今後の料金を回避するために、Canvasからログアウトしてください。Canvasはセッションの時間に対して請求されます。使用していない場合は、Canvasからログアウトすることをお勧めします。詳細については、Amazon SageMaker Canvasからログアウトするを参照してください。

まとめ

この記事では、新しいデータセットの更新機能を使用して、Canvasで最新のデータを使用して新しいデータセットのバージョンを構築し、MLモデルをトレーニングする方法について説明しました。また、更新されたデータに対してバッチ予測を実行するプロセスを効率的に自動化する方法についても説明しました。

低コード/ノーコードMLの旅を始めるには、Amazon SageMaker Canvas 開発者ガイドを参照してください。

ローンチに貢献してくれたすべての方に特別な感謝を申し上げます。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Related articles

    Discover more