『AWS SageMaker Data Wranglerの新機能でデータ準備を最適化する』

AWS SageMaker Data Wranglerの新機能でデータ準備を最適化

データの準備は、データ駆動型のプロジェクトにおいて重要なステップであり、適切なツールを持つことで業務効率を大幅に向上させることができます。Amazon SageMaker Data Wranglerは、機械学習(ML)のための表形式および画像データの集約と準備にかかる時間を数週間から数分に短縮します。SageMaker Data Wranglerを使用すると、データの準備と特徴エンジニアリングのプロセスを簡素化し、データの選択、クレンジング、探索、および可視化といったデータの準備ワークフローの各ステップを1つのビジュアルインターフェースから完了することができます。

この記事では、SageMaker Data Wranglerの最新の機能について探求します。これらの機能は、操作の経験を向上させるために特に設計されています。S3マニフェストファイルのサポート、インタラクティブなデータフローでの推論アーティファクト、および推論のためのJSON(JavaScript Object Notation)形式とのシームレスな統合について詳しく説明し、これらの強化機能がデータの準備をより簡単かつ効率的にする方法を強調します。

新機能の紹介

このセクションでは、最適なデータの準備に向けたSageMaker Data Wranglerの新機能について説明します。

SageMaker AutopilotによるML推論のためのS3マニフェストファイルのサポート

SageMaker Data Wranglerは、わずか数回のクリックでAmazon SageMaker Autopilotと統合したデータの準備とモデルのトレーニングを可能にします。SageMaker Autopilotを使用して、データフローで変換したデータに対してモデルの自動トレーニング、チューニング、デプロイを行うことができます。

この体験がさらに簡素化されたのがS3マニフェストファイルのサポートです。S3マニフェストファイルは、S3バケットに格納されているオブジェクト(ファイル)の一覧を記載したテキストファイルです。SageMaker Data Wranglerでエクスポートしたデータセットが非常に大きく、Amazon S3で複数のデータファイルに分割されている場合、SageMaker Data Wranglerはこれらのデータファイルを表すS3マニフェストファイルを自動的に作成します。生成されたマニフェストファイルは、SageMaker Data WranglerのSageMaker Autopilot UIで使用することができるようになります。このマニフェストファイルを使用することで、データの一部分だけを選択することに制限されることなく、マニフェストファイルで全体のデータを表すSageMaker Autopilotを使用したMLモデルを構築し、それをML推論および本番デプロイメントに使用することができます。この機能により、SageMaker Autopilotを使用してMLモデルをトレーニングすることが簡素化され、データ処理のワークフローが効率化されます。

生成されたアーティファクトでの推論フローのサポートの追加

顧客は、モデルトレーニングデータに適用したデータ変換(ワンホットエンコーディング、PCA、欠損値の補完など)をリアルタイムの推論やバッチ推論に適用したいと考える場合があります。そのためには、SageMaker Data Wranglerの推論アーティファクトが必要です。このアーティファクトは、SageMakerモデルによって消費されます。

以前は、推論アーティファクトは、SageMaker Autopilotトレーニングにエクスポートする場合や推論パイプラインノートブックをエクスポートする場合にのみUIから生成できました。これでは、SageMaker Data WranglerのフローをAmazon SageMaker Studio環境の外で使用したい場合に柔軟性がありませんでした。現在は、SageMaker Data Wranglerの処理ジョブを介して、任意の互換性のあるフローファイルに対して推論アーティファクトを生成することができます。これにより、コードファーストのMLOpsパーソナやUIからジョブを作成して推論アーティファクトを取得するための直感的な方法を提供することで、SageMaker Data Wranglerフローによるプログラム的なエンドツーエンドのMLOpsが可能になります。

データの準備の効率化

JSONは、現代のデータエコシステムでのデータ交換のために広く採用されています。SageMaker Data WranglerのJSON形式との統合により、JSONデータをシームレスに処理およびクリーニングすることができます。JSONに対するネイティブなサポートを提供することで、SageMaker Data Wranglerは構造化および半構造化データの取り扱いのプロセスを簡素化し、価値ある洞察を抽出し、データの準備を効率化します。SageMaker Data Wranglerは、バッチおよびリアルタイムの推論エンドポイントデプロイメントの両方でJSON形式をサポートしています。

ソリューションの概要

このユースケースでは、サンプルのAmazon顧客レビューデータセットを使用して、SageMaker Data WranglerがSageMaker Autopilotを使用して新しいMLモデルを構築する際の操作努力をどのように簡素化するかを示します。Amazon顧客レビューデータセットには、1996年5月から2014年7月までの期間にわたる、142.8万件のレビューを含む、Amazonからの商品レビューおよびメタデータが含まれています。

大まかな手順として、SageMaker Data Wranglerを使用してこの大規模なデータセットを管理し、次のアクションを実行します:

  1. SageMaker Autopilotを使用してMLモデルを開発します。データセット全体ではなく、サンプルではありません。
  2. SageMaker Data Wranglerで生成された推論アーティファクトを使用してリアルタイムの推論パイプラインを構築し、入力と出力にはJSON形式を使用します。

SageMaker AutopilotにおけるS3マニフェストファイルのサポート

SageMaker Data Wranglerを使用してSageMaker Autopilotの実験を作成する際、以前は単一のCSVファイルまたはParquetファイルのみを指定できました。しかし、S3マニフェストファイルを使用することも可能です。これにより、大量のデータをSageMaker Autopilotの実験に使用することができます。SageMaker Data Wranglerは、入力データファイルをいくつかの小さなファイルに自動的に分割し、インタラクティブセッションからすべてのデータを取得するためのマニフェストを生成します。これにより、サンプルではなく、すべてのデータを使用したSageMaker Autopilotの実験が可能になります。

以下の手順を完了してください:

  1. Amazonの顧客レビューデータをCSVファイルからSageMaker Data Wranglerにインポートします。データをインポートする際にサンプリングを無効にしてください。
  2. データを正規化する変換を指定します。この例では、SageMaker Data Wranglerの組み込み変換を使用して、記号を削除し、すべての文字を小文字に変換します。
  3. トレーニングを開始するためにモデルをトレーニングを選択します。

SageMaker Autopilotでモデルをトレーニングするために、SageMakerは自動的にデータをS3バケットにエクスポートします。このような大規模なデータセットの場合、自動的にファイルを小さなファイルに分割し、小さなファイルの場所を含むマニフェストを生成します。

  1. まず、入力データを選択します。

SageMaker Data Wranglerには、SageMaker Autopilotで使用するためのマニフェストファイルを生成するオプションが以前はありませんでした。今回のマニフェストファイルのサポートリリースにより、SageMaker Data Wranglerは自動的にマニフェストファイルをAmazon S3にエクスポートし、SageMaker AutopilotトレーニングのS3ロケーションをマニフェストファイルのS3ロケーションで自動的に事前入力し、マニフェストファイルオプションをYesに切り替えます。マニフェストファイルの生成や使用には特別な作業は必要ありません。

  1. モデルの予測対象を選択して実験を構成します。
  2. 次に、トレーニング方法を選択します。この場合、Autoを選択し、SageMaker Autopilotがデータセットのサイズに基づいて最適なトレーニング方法を決定します。

  1. デプロイ設定を指定します。
  2. 最後に、ジョブの設定を確認し、SageMaker Autopilot実験をトレーニング用に提出します。SageMaker Autopilotが実験を完了すると、トレーニング結果を表示し、最適なモデルを探索することができます。

マニフェストファイルのサポートにより、データの一部ではなく、SageMaker Autopilot実験にデータセット全体を使用することができます。

Amazon SageMaker Data WranglerとAmazon SageMaker Autopilotを使用した統合データ準備とモデルトレーニングの詳細については、以下のリンクを参照してください。

SageMaker Processingジョブから推論アーティファクトを生成する

では、SageMaker Data WranglerのUIとSageMaker Data Wranglerのノートブックを使用して、推論アーティファクトを生成する方法を見てみましょう。

SageMaker Data WranglerのUI

このユースケースでは、データをUIを介して処理し、その結果のデータをSageMakerコンソールを通じてモデルのトレーニングと展開に使用したいと考えています。次の手順を実行してください:

  1. 前のセクションで作成したデータフローを開きます。
  2. 最後の変換の隣にあるプラス記号を選択し、宛先の追加Amazon S3を選択します。ここに処理されたデータが保存されます。
  3. ジョブの作成を選択します。
  4. 推論パラメータセクションで推論アーティファクトの生成を選択します。
  5. 推論アーティファクト名に、推論アーティファクトの名前(ファイル拡張子として.tar.gzを使用)を入力します。
  6. 推論出力ノードには、トレーニングデータに適用される変換に対応する宛先ノードを入力します。
  7. ジョブの設定を選択します。
  8. ジョブの設定の下で、フローファイルS3の場所にパスを入力します。この場所の下にdata_wrangler_flowsという名前のフォルダが作成され、推論アーティファクトがこのフォルダにアップロードされます。アップロード場所を変更するには、別のS3の場所を設定します。
  9. その他のオプションはすべてデフォルトのままにして、作成を選択して処理ジョブを作成します。 処理ジョブは、新たに追加された推論セクションを含む変更されたデータフローファイルを含むtarball (.tar.gz)を作成します。このアーティファクトをSageMakerモデルに提供するために、推論アーティファクトのS3 Uniform Resource Identifier(URI)が必要です。URIは{フローファイルS3の場所}/data_wrangler_flows/{推論アーティファクト名}.tar.gzの形式で提供されます。
  10. これらの値を以前にメモしていない場合は、処理ジョブへのリンクを選択して関連する詳細情報を見つけることができます。この例では、URIはs3://sagemaker-us-east-1-43257985977/data_wrangler_flows/example-2023-05-30T12-20-18.tar.gzです。
  11. 処理イメージの値をコピーします。このURIは、後でモデルを作成する際に必要です。
  12. このURIを使用して、SageMakerコンソール上でSageMakerモデルを作成し、エンドポイントまたはバッチ変換ジョブに展開できます。
  13. モデル設定の下で、モデル名を入力し、IAMロールを指定します。
  14. コンテナの入力オプションで、モデルアーティファクトと推論イメージの場所を指定を選択します。
  15. 推論コードイメージの場所に、処理イメージのURIを入力します。
  16. モデルアーティファクトの場所に、推論アーティファクトのURIを入力します。
  17. さらに、トレーニング済みのMLモデルによって予測されるターゲット列がデータに含まれている場合は、環境変数の下で、INFERENCE_TARGET_COLUMN_NAMEキーとして、列名をとして指定します。
  18. モデルの作成を選択して、モデルの作成を完了します。

エンドポイントまたはバッチ変換ジョブにデプロイできるモデルができました。

SageMaker Data Wrangler ノートブック

処理ジョブから推論アーティファクトを生成するためのコードベースのアプローチでは、ノードメニューでエクスポートを選択し、Amazon S3SageMaker パイプライン、または SageMaker 推論パイプライン のいずれかを選択して、例のコードを見つけることができます。この例では、SageMaker 推論パイプライン を選択します。

このノートブックには、プロセッサの作成 というセクションがあります(SageMaker パイプラインのノートブックでも同様ですが、Amazon S3 のノートブックでは、同等のコードは ジョブの設定 セクションの下にあります)。このセクションの一番下には、inference_params という名前の推論アーティファクトの設定があります。この設定には、UI で見たのと同じ情報が含まれており、推論アーティファクトの名前と推論の出力ノードが含まれています。これらの値は事前に設定されていますが、変更することもできます。また、use_inference_params というパラメータもあり、これは処理ジョブでこの設定を使用するために True に設定する必要があります。

さらに下には、パイプラインステップの定義 というセクションがあります。ここでは、inference_params の設定がジョブの引数リストに追加され、SageMaker Data Wrangler の処理ステップの定義に渡されます。Amazon S3 のノートブックでは、job_argumentsジョブの設定 セクションの直後に定義されます。

これらのシンプルな設定で、このノートブックによって作成される処理ジョブは、フローファイル(ノートブックで前もって定義された)と同じS3の場所に推論アーティファクトを生成します。このS3の場所をプログラムで特定し、SageMaker Python SDK を使用してこのアーティファクトを使用してSageMakerモデルを作成することができます。これは、SageMaker 推論パイプラインのノートブックでデモンストレーションされています。

同じアプローチは、SageMaker Data Wrangler 処理ジョブを作成する任意の Python コードに適用することができます。

推論中の入力と出力のための JSON ファイル形式のサポート

ウェブサイトやアプリケーションが、情報を異なるプログラミング言語で簡単に解析できるようにするために、API のリクエスト/レスポンスに JSON を使用することは非常に一般的です。

以前は、トレーニング済みモデルを使用する場合、SageMaker Data Wrangler 推論パイプラインでの入力形式として CSV のみを使用できました。しかし、今日では、SageMaker Data Wrangler 推論コンテナとのやり取りにおいて、入力と出力の形式として JSON を使用することができます。これにより、SageMaker Data Wrangler 推論パイプラインとのやり取り時により柔軟性が増します。

推論パイプラインノートブックで入力と出力に JSON を使用するための準備をするには、以下の手順を完了します:

  1. ペイロードを定義します。

各ペイロードには、モデルが instances というキーを期待しています。値はオブジェクトのリストであり、それぞれが独自のデータポイントです。オブジェクトには features というキーが必要であり、値はモデルに提出する単一のデータポイントの特徴です。複数のデータポイントを単一のリクエストで提出することができます。リクエストごとの合計サイズは最大で 6 MB です。

次のコードを参照してください:

sample_record_payload = json.dumps
(
    {
        "instances":[
            {"features":["これがベストです", "できれば毎日2回この製品を使います。これは最高です"]
            }
            ]
    }
)
  1. ContentTypeapplication/json として指定します。
  2. モデルにデータを提供し、JSON 形式で推論を受け取ります。

サンプルの入力と出力のJSONの例については、「推論のための共通データ形式」を参照してください。

クリーンアップ

SageMaker Data Wrangler の使用が終了したら、追加料金が発生しないように実行中のインスタンスをシャットダウンすることをお勧めします。SageMaker Data Wrangler アプリと関連するインスタンスのシャットダウン方法については、「Data Wrangler のシャットダウン」を参照してください。

結論

SageMaker Data Wrangler の新機能は、S3 マニフェストファイルのサポート、推論機能、および JSON フォーマットの統合を含み、データ準備の操作体験を変革します。これらの強化機能により、データのインポートを効率化し、データ変換を自動化し、JSON データの操作を簡素化できます。これらの機能により、作業効率を向上させ、手作業の労力を減らし、データから価値ある洞察を簡単に抽出できます。SageMaker Data Wrangler の新機能の力を活かし、データ準備ワークフローのフルポテンシャルを引き出してください。

SageMaker Data Wrangler を開始するには、SageMaker Data Wrangler 製品ページの最新情報をご覧ください。

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

Discover more