將 Feature Store 與 SDK for Python (Boto3) 搭配使用 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 Feature Store 與 SDK for Python (Boto3) 搭配使用

功能群組是主要功能存放區資源,其中包含機器學習 (ML) 資料和儲存在 Amazon SageMaker Feature Store 中的中繼資料。功能群組是功能和記錄的邏輯分組。功能群組的定義由其線上和離線存放區的組態以及用於描述記錄值的功能定義清單組成。功能定義必須包含記錄識別碼名稱和事件時間名稱。 如需特徵商店概念的更多資訊,請參閱功能儲存概念

在使用功能儲存之前,您通常會載入資料集、執行轉換,以及設定要擷取的功能。這個過程有很多變化,並且高度依賴於您的資料。下列主題中的範例程式碼分別參考 Feature Store 簡介使用 Amazon SageMaker Feature Store 進行詐騙偵測範例筆記本。兩者都使用 AWS SDK for Python (Boto3)。如需 Feature Store 範例和資源的詳細資訊,請參閱 Amazon SageMaker Feature Store 資源

Feature Store 支援下列功能類型:StringFractional(IEEE 64 位元浮點數) 和 Integral(Int64 - 64 位元已簽署積分值)。預設設定為 String。這意味著,如果資料集中的欄不是 floatlong 功能類型,則特徵商店中的預設值為 String

您可以使用架構來描述資料的欄和資料類型。您可以將這個結構描述傳遞到 FeatureDefinitionsFeatureGroup 的必需參數。您可以使用 SDK for Python (Boto3),當您使用 load_feature_definitions函數時,它具有自動資料類型偵測。

使用已存在的記錄 ID 加入新功能記錄時,預設行為如下。在離線儲存中,將附加新記錄。線上儲存中,如果新記錄的事件時間小於現有事件時間,則什麼都不會發生,但是如果新記錄的事件時間大於或等於現有事件時間,則該記錄將被覆寫。

建立新的功能群組時,可選擇下列資料表格式的其中一個:

  • AWS Glue (預設)

  • Apache Iceberg

擷取資料 (尤其是串流時) 可能會導致大量小型檔案存放至離線存放區。這可能會對查詢效能造成負面影響,因為所需的檔案作業數目較多。若要避免潛在的效能問題,請在建立新特徵群組時使用 Apache Iceberg 資料表格式。使用 Iceberg,您可以將小資料文件壓縮為分區中較少的大文件,從而導致查詢速度顯著更快。此壓縮操作是並發的,並且不會影響功能組上正在進行的讀寫操作。如果您在建立新功能群組時選擇 Iceberg 選項,Amazon SageMaker Feature Store 將使用 Parquet 檔案格式建立 Iceberg 資料表,並將資料表註冊至 AWS Glue Data Catalog。

重要

請注意,對於 Iceberg 資料表格式的特徵群組,您必須指定 String 為事件時間的值。如果指定任何其他類型,則無法成功建立功能群組。

在下面我們列出了一些可用的功能儲存託管資源。