SDK for Python (Boto3) での Feature Store の使用 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SDK for Python (Boto3) での Feature Store の使用

特徴量グループは、Amazon SageMaker Feature Store に保存されている機械学習 (ML) データとメタデータを含む主要な Feature Store リソースです。Feature Store は、特徴量とレコードを論理的にグループ化したものです。特徴量グループの定義は、オンラインストアとオフラインストアの設定と、レコードの値を記述するために使用される特徴量定義のリストで構成されます。特徴量定義には、レコード識別子名とイベント時刻名を含める必要があります。特徴量ストアの概念の詳細については、を「Feature Store の概念」を参照してください。

通常、Feature Store を使う前に、データセットをロードし、変換を実行し、取り込む特徴をセットアップします。このプロセスには多くのバリエーションがあり、データによって大きく変わります。次のトピックのサンプルコードは、それぞれ「Introduction to Feature Store」、「Fraud Detection with Amazon SageMaker Feature Store」のサンプルノートブックを参照しています。どちらも AWS SDK for Python (Boto3)を使用しています。追加の特徴量ストアの例とリソースについては、「Amazon SageMaker Feature Store リソース」を参照してください。

Feature Store では、StringFractional (IEEE 64 ビット浮動小数点値)、Integral (Int64-64 ビット符号付き整数値)の特徴量タイプがサポートされています。デフォルトのデータ型は、String に設定されています。つまり、データセット内の列が float または long の特徴量タイプでない場合、特徴量ストアのデフォルトは String になります。

スキーマを使って、データの列とデータ型を記述できます。FeatureGroup の必須パラメータである FeatureDefinitions にこのスキーマを渡します。load_feature_definitions 関数を使うときに自動でデータタイプを検出する機能のある SDK for Python (Boto3) を使うことができます。

既存のレコード ID で新しい特徴レコードが追加された場合のデフォルトの動作は次のとおりです。オフラインストアでは、新しいレコードが追加されます。オンラインストアでは、新しいレコードのイベント時刻が既存のイベント時刻よりも早い場合は何も起こりませんが、新しいレコードのイベント時刻が既存のイベント時刻と同じか遅いか同じ場合、レコードは上書きされます。

特徴量グループを作成するときは、以下のいずれかのテーブル形式を選択できます。

  • AWS Glue (デフォルト)

  • Apache Iceberg

データを取り込むと、特にストリーミング時に、オフラインストアに大量の小さなファイルが保存される可能性があります。これにより、必要なファイル操作数が増えるため、クエリのパフォーマンスに悪影響を及ぼす可能性があります。パフォーマンスの問題が発生する可能性を回避するには、新しい特徴量グループを作成するときに Apache Iceberg テーブル形式を使用します。Iceberg では、パーティション内の小さなデータファイルを少数の大きなファイルに圧縮できるため、クエリが大幅に速くなります。この圧縮操作は同時に実行され、特徴量グループでの進行中の読み取り/書き込み操作には影響しません。新しい特徴量グループを作成するときに Iceberg オプションを選択すると、Amazon SageMaker Feature Store は Parquet ファイル形式を使用して Iceberg テーブルを作成し、テーブルを AWS Glue Data Catalogに登録します。

重要

Iceberg テーブル形式の特徴量グループでは、イベント時刻の値として String を指定する必要があることに注意してください。他のタイプを指定すると、特徴量グループを正常に作成できません。

使用できる特徴量ストアマネージドリソースを以下にいくつか示します。