SDK for Python (Boto3) で Feature Store を使用する - Amazon SageMaker

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

SDK for Python (Boto3) で Feature Store を使用する

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

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

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

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

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

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

  • AWS Glue (デフォルト)

  • Apache Iceberg

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

重要

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

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