ゼファーネットのロゴ

Amazon SageMaker Data Wrangler と Amazon SageMaker Autopilot を使用した統合データ準備、モデルトレーニング、デプロイ – パート 2

日付:

データの品質と複雑さに応じて、データ サイエンティストはデータ準備タスクに時間の 45 ~ 80% を費やします。 これは、データの準備とクレンジングが実際のデータ サイエンス作業から貴重な時間を奪うことを意味します。 機械学習 (ML) モデルが準備済みデータでトレーニングされ、展開の準備が整った後、データ サイエンティストは多くの場合、ML 推論用のデータを準備するために使用されるデータ変換を書き直す必要があります。 これにより、生の形状とフォームからデータを推測してスコアリングできる有用なモデルをデプロイするのにかかる時間が長くなる可能性があります。

このシリーズのパート 1 では、Data Wrangler がどのように 統一されたデータ準備とモデル トレーニング 経験 Amazon SageMakerオートパイロット 数回クリックするだけです。 このシリーズの第 XNUMX 部と最終部では、組み込みと再利用の機能に焦点を当てます。 AmazonSageMakerデータラングラー 欠損値インピューター、序数またはワンホット エンコーダーなどの変換と、ML 推論用のオートパイロット モデル。 この機能により、推論時に Data Wrangler 特徴変換を再利用して生データの自動前処理が可能になり、トレーニング済みモデルを本番環境にデプロイするために必要な時間がさらに短縮されます。

ソリューションの概要

Data Wrangler は、ML 用のデータを集約して準備する時間を数週間から数分に短縮し、Autopilot はデータに基づいて最適な ML モデルを自動的に構築、トレーニング、調整します。 Autopilot を使用すると、データとモデルの完全な制御と可視性を引き続き維持できます。 どちらのサービスも、ML 実践者の生産性を高め、価値実現までの時間を短縮することを目的として構築されています。

次の図は、ソリューションアーキテクチャを示しています。

前提条件

この投稿は XNUMX 部構成のシリーズの XNUMX 番目なので、よく読んで実装したことを確認してください。 第1部 続行する前に

モデルのエクスポートとトレーニング

パート 1 では、ML のデータ準備の後、Data Wrangler の統合エクスペリエンスを使用してデータセットを分析し、Autopilot で高品質の ML モデルを簡単に構築する方法について説明しました。

今回は、Autopilot 統合をもう一度使用して、同じトレーニング データセットに対してモデルをトレーニングしますが、一括推論を実行する代わりに、 アマゾンセージメーカー 自動的に作成される推論エンドポイント。

自動エンドポイント デプロイによって提供される利便性に加えて、すべての Data Wrangler 機能変換を SageMaker シリアル推論パイプラインとしてデプロイする方法も示します。 これにより、推論時に Data Wrangler 機能変換を再利用して、生データの自動前処理が可能になります。

この機能は現在、結合、グループ化、連結、および時系列変換を使用しない Data Wrangler フローでのみサポートされていることに注意してください。

新しいデータラングラーとオートパイロットの統合を使用して、データラングラーデータフローUIからモデルを直接トレーニングできます。

  1. の横にあるプラス記号を選択します スケール値 ノード、および選択 列車モデル.
  2. AmazonS3の場所、を指定します Amazon シンプル ストレージ サービス (Amazon S3) SageMaker がデータをエクスポートする場所。
    デフォルトでルート バケット パスが提示されている場合、Data Wrangler はその下に一意のエクスポート サブディレクトリを作成します。必要でない限り、このデフォルトのルート パスを変更する必要はありません。Autopilot はこの場所を使用してモデルを自動的にトレーニングするため、 Data Wrangler フローの出力場所を定義してから、Autopilot トレーニング データの入力場所を定義する必要がなくなります。 これにより、よりシームレスなエクスペリエンスが実現します。
  3. 選択する エクスポートとトレーニング 変換されたデータを Amazon S3 にエクスポートします。

    エクスポートが成功すると、 オートパイロット実験を作成する ページ、 入力データ S3 の場所は既に入力されています (前のページの結果から入力されたものです)。
  4. 実験名、名前を入力します (またはデフォルト名のままにします)。
  5. ターゲット、選択する 結果 予測する列として。
  6. 選択する 次へ: トレーニング方法.

投稿で詳しく説明されているように AutoGluon を利用した新しいアンサンブルトレーニングモードにより、Amazon SageMaker Autopilot が最大 XNUMX 倍高速化、データセットのサイズに基づいて Autopilot に自動的にトレーニング モードを選択させるか、アンサンブルまたはハイパーパラメーター最適化 (HPO) のトレーニング モードを手動で選択することができます。

各オプションの詳細は次のとおりです。

  • 自動応答オプション – Autopilot は、データセットのサイズに基づいて、アンサンブル モードまたは HPO モードのいずれかを自動的に選択します。 データセットが 100 MB を超える場合、Autopilot は HPO を選択します。 それ以外の場合は、アンサンブルを選択します。
  • アンサンブル – オートパイロットは オートグルオン 複数の基本モデルをトレーニングし、モデル スタッキングを使用してそれらの予測を最適な予測モデルに結合するアンサンブル手法。
  • ハイパーパラメーターの最適化 – Autopilot は、ベイジアン最適化手法を使用してハイパーパラメーターを調整し、データセットでトレーニング ジョブを実行することにより、モデルの最適なバージョンを見つけます。 HPO は、データセットに最も関連するアルゴリズムを選択し、モデルを調整するために最適な範囲のハイパーパラメーターを選択します。 自動応答オプション.
  1. 選択する 次へ: 展開と詳細設定 続行します。
  2. ソフトウェア設定ページで、下図のように 展開と詳細設定 ページで、展開オプションを選択します。
    展開オプションをより詳細に理解することが重要です。 何を選択するかは、以前に Data Wrangler で行った変換が推論パイプラインに含まれるかどうかに影響します。
    • Data Wrangler からの変換を使用して最適なモデルを自動デプロイ – このデプロイ オプションを使用すると、Data Wrangler でデータを準備し、Autopilot を呼び出してモデルをトレーニングすると、トレーニング済みのモデルがすべての Data Wrangler 機能変換と共にデプロイされます。 SageMaker シリアル推論パイプライン. これにより、推論時に Data Wrangler 機能変換を再利用して、生データの自動前処理が可能になります。 推論エンドポイントは、データの形式が Data Wrangler フローにインポートされたときと同じ形式であると想定していることに注意してください。
      推論変換ロジックがワークフローの別の場所に既に配置されている場合を除き、これを展開オプションとして選択することをお勧めします。
    • Data Wrangler からの変換なしで最適なモデルを自動デプロイ – このオプションは、Data Wrangler 変換を使用しないリアルタイム エンドポイントをデプロイします。 この場合、推論の前に、Data Wrangler フローで定義された変換をデータに適用する必要があります。
    • 最適なモデルを自動デプロイしない – 推論エンドポイントをまったく作成したくない場合は、このオプションを使用する必要があります。 ローカルで実行される一括推論など、後で使用するために最適なモデルを生成する場合に役立ちます。 (これは、で選択した展開オプションです。 第1部 このオプションを選択すると、(SageMaker SDK を介して Autopilot の最適な候補から) 作成されたモデルには、SageMaker シリアル推論パイプラインとして Data Wrangler 機能変換が含まれることに注意してください。

    この投稿では、 Data Wrangler からの変換を使用して最適なモデルを自動デプロイ オプションを選択します。

  3. 展開オプション選択 Data Wrangler からの変換を使用して最適なモデルを自動デプロイ.
  4. 他の設定はデフォルトのままにします。
  5. 選択する 次へ: レビューと作成 続行します。
    ソフトウェア設定ページで、下図のように 確認して作成する ページに、Autopilot 実験用に選択された設定の概要が表示されます。
  6. 選択する 実験を作成する モデル作成プロセスを開始します。

Autopilot ジョブの説明ページにリダイレクトされます。 モデルは上に表示されます Models 生成されたタブ。 プロセスが完了したことを確認するには、 仕事内容 タブで探します Completed の値 Status: フィールド。

からいつでもこのオートパイロットの仕事の説明ページに戻ることができます。 Amazon SageMakerスタジオ:

  1. 選択する 実験と試行 SageMakerリソース ドロップダウンメニュー。
  2. 作成した Autopilot ジョブの名前を選択します。
  3. 実験を選択 (右クリック) し、 AutoML ジョブの説明.

トレーニングと導入を見る

Autopilot が実験を完了すると、トレーニング結果を表示し、Autopilot ジョブの説明ページから最適なモデルを探索できます。

ラベルの付いたモデルを選択 (右クリック) 最高のモデル、選択して モデルの詳細で開く.

  性能 タブには、混同行列、精度/再現率曲線の下の領域 (AUCPR)、受信者動作特性曲線 (ROC) の下の領域など、いくつかのモデル測定テストが表示されます。 これらはモデルの全体的な検証パフォーマンスを示していますが、モデルが適切に一般化されるかどうかはわかりません。 モデルがどれほど正確に予測を行っているかを確認するために、目に見えないテスト データの評価を実行する必要があります (この例では、個人が糖尿病になるかどうかを予測します)。

リアルタイム エンドポイントに対して推論を実行する

新しい SageMaker ノートブックを作成してリアルタイムの推論を実行し、モデルのパフォーマンスを評価します。 次のコードをノートブックに入力して、検証のためにリアルタイムの推論を実行します。

import boto3

### Define required boto3 clients

sm_client = boto3.client(service_name="sagemaker")
runtime_sm_client = boto3.client(service_name="sagemaker-runtime")

### Define endpoint name

endpoint_name = ""

### Define input data

payload_str = '5,166.0,72.0,19.0,175.0,25.8,0.587,51'
payload = payload_str.encode()
response = runtime_sm_client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType="text/csv",
    Body=payload,
)

response["Body"].read()

ノートブックで実行するコードをセットアップしたら、次の XNUMX つの変数を構成する必要があります。

  • endpoint_name
  • payload_str

endpoint_name の構成

endpoint_name デプロイによって自動作成されたリアルタイム推論エンドポイントの名前を表します。 設定する前に、その名前を見つける必要があります。

  1. 選択する エンドポイント SageMakerリソース ドロップダウンメニュー。
  2. 作成した Autopilot ジョブの名前にランダムな文字列が追加されたエンドポイントの名前を見つけます。
  3. 実験を選択 (右クリック) し、 エンドポイントの説明.

      エンドポイントの詳細 ページが表示されます。
  4. 完全なエンドポイント名を強調表示して、 Ctrlキー+ C クリップボードにコピーします。
  5. この値を入力してください (必ず引用符で囲んでください)。 endpoint_name 推理ノートに。

payload_str を構成する

ノートブックにはデフォルトのペイロード文字列が付属しています payload_str エンドポイントのテストに使用できますが、テスト データセットの値など、さまざまな値を自由に試してみてください。

テスト データセットから値を取得するには、次の手順に従います。 第1部 テスト データセットを Amazon S3 にエクスポートします。 次に、Amazon S3 コンソールで、それをダウンロードして、Amazon S3 からのファイルを使用する行を選択できます。

テスト データセットの各行には XNUMX つの列があり、最後の列が outcome 価値。 このノートブック コードでは、単一のデータ行のみを使用するようにしてください (CSV ヘッダーは使用しないでください)。 payload_str. また、送信するのは payload_str 結果の値を削除した XNUMX つの列があります。

たとえば、テスト データセット ファイルが次のコードのようになり、最初の行のリアルタイム推論を実行したいとします。

Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome 
10,115,0,0,0,35.3,0.134,29,0 
10,168,74,0,0,38.0,0.537,34,1 
1,103,30,38,83,43.3,0.183,33,0

設定します payload_str 〜へ 10,115,0,0,0,35.3,0.134,29. を省略したことに注意してください outcome の値 0 最後に。

データセットのターゲット値が最初または最後の値でない場合は、コンマ構造をそのままにして値を削除してください。 たとえば、バーを予測していて、データセットが次のコードのようになっているとします。

foo,bar,foobar
85,17,20

この場合、設定します payload_str 〜へ 85,,20.

ノートブックが適切に構成された状態で実行されている場合 payload_str & endpoint_name の形式で CSV 応答が返されます。 outcome (0 または 1)、 confidence (0-1)。

清掃

このチュートリアルの完了後にチュートリアル関連の料金が発生しないようにするには、必ず Data Wrangler アプリをシャットダウンしてください (https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-shut-down.html)、および推論タスクの実行に使用されるすべてのノートブック インスタンス。 Auto Pilot デプロイによって作成された推論エンドポイントは、追加料金が発生しないように削除する必要があります。

まとめ

この投稿では、Data Wrangler と Autopilot を使用して、エンジニアリングを特徴とするデータ処理とモデル構築を統合する方法を示しました。 上に構築 第1部 このシリーズでは、Data Wrangler のユーザー インターフェイスから直接 Autopilot を使用してモデルを簡単にトレーニング、調整、リアルタイムの推論エンドポイントにデプロイする方法を強調しました。 自動エンドポイント デプロイによって提供される利便性に加えて、すべての Data Wrangler 機能変換を SageMaker シリアル推論パイプラインとしてデプロイし、生データの自動前処理を提供し、Data Wrangler 機能変換を再利用する方法をデモンストレーションしました。推論の時間。

Data WranglerやAutopilotなどのローコードおよびAutoMLソリューションは、堅牢なMLモデルを構築するための深いコーディング知識の必要性を排除します。 データラングラーの使用を開始する 今日、Autopilot を使用して ML モデルを構築することがいかに簡単かを体験してください。


著者について

ジェレミー・コーエン はAWSのソリューションアーキテクトであり、顧客が最先端のクラウドベースのソリューションを構築するのを支援しています。 余暇には、ビーチを散歩したり、家族と一緒にベイエリアを探索したり、家の周りの物を修理したり、家の周りの物を壊したり、バーベキューを楽しんだりしています。

プラディープレディ は、SageMaker Autopilot、SageMaker AutomaticModelTunerを含むSageMakerLow/ NoCodeMLチームのシニアプロダクトマネージャーです。 仕事以外では、Pradeepは、ラズベリーパイなどの手のひらサイズのコンピューターやその他のホームオートメーション技術を使って、読書、ランニング、オタクを楽しんでいます。

ジョン・ヘ博士 は、Amazon AI のシニア ソフトウェア開発エンジニアであり、機械学習と分散コンピューティングに重点を置いています。 彼は CMU で博士号を取得しています。

スポット画像

最新のインテリジェンス

スポット画像

私たちとチャット

やあ! どんな御用でしょうか?