使用 Feature Store 建立、儲存和共用功能 - Amazon SageMaker

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

使用 Feature Store 建立、儲存和共用功能

機器學習 (ML) 開發程序包括擷取原始資料,並將其轉換為功能 (ML 模型的意義輸入)。然後,這些功能會以可用方式儲存,以進行資料探索、ML 訓練和 ML 推論。Amazon SageMaker Feature Store 可簡化您建立、儲存、共用和管理功能的方式。方法是提供功能存放區選項,並減少重複資料處理和更正工作。

此外,透過 Feature Store,您可以:

  • 簡化跨帳戶或組織中 ML 開發的功能處理、儲存、擷取和共用功能。

  • 追蹤您的特徵處理程式碼開發、將特徵處理器套用至原始資料,並以一致的方式將您的特徵擷取至特徵存放區。這可減少訓練服務偏移,這是 ML 的常見問題,其中訓練期間的效能與服務之間的差異可能會影響 ML 模型的準確度。

  • 將您的功能和相關聯的中繼資料存放在功能群組中,以便輕鬆探索和重複使用功能。功能群組是可變更的,而且可以在建立之後發展其結構描述。

  • 建立可設定為包含線上或離線存放區或兩者的功能群組,以管理您的功能,並自動化儲存 ML 任務的功能。

    • 線上商店只會保留您功能的最新記錄。這主要是為了支援需要低毫秒延遲讀取和高輸送量寫入的即時預測而設計。

    • 離線存放區會將 功能的所有記錄保留為歷史資料庫。這主要用於資料探索、模型訓練和批次預測。

下圖顯示如何使用 Feature Store 作為 ML 管道的一部分。讀取原始資料後,您可以使用特徵存放區將原始資料轉換為特徵,並將其擷取至您的特徵群組。這些功能可以透過串流或批次擷取到功能群組的線上和離線存放區。然後,這些功能可用於資料探索、模型訓練和即時或批次推論。

Feature Store 適用於機器學習管道的位置。

功能儲存的運作方式

在 Feature Store 中,特徵儲存在稱為特徵群組的集合中。您可以將特徵群組視覺化為表格,其中每欄位都是一個特徵,每列都具有唯一識別碼。原則上,特徵群組由許多特徵以及每個特徵的專屬值組成。Record 是功能值的集合,並且對應於唯一的 RecordIdentifier。總而言之,FeatureGroup 是一組功能定義於您的 FeatureStore 用以描述 Record。 

您可以在以下模式中使用 Feature Store: 

  • 線上 - 在線上模式下,會以低延遲 (毫秒) 讀取功能讀取,並用於高輸送量預測。此模式需要將功能群組儲存在線上儲存中。 

  • 離線 - 在離線模式下,大型資料串流會饋送至離線存放區,可用於訓練和批次推論。此模式需要將功能群組儲存在離線儲存中。離線存放區使用您的 S3 儲存貯體進行儲存,也可以使用 Athena 查詢擷取資料。 

  • 線上和離線 — 這包含線上和離線模式。

您可以透過兩種方式將資料導入功能群組中的功能群組:串流或批次。當您透過串流擷取資料時,系統會呼叫同步PutRecordAPI呼叫,將記錄集合推送至特徵存放區。這API可讓您在 Feature Store 中維護最新功能值,並在偵測到更新時立即推送新功能值。

或者,功能儲存可以批次處理和擷取資料。例如,您可以使用 Amazon SageMaker Data Wrangler 編寫功能,並從 Data Wrangler 匯出筆記本。筆記本可以是 SageMaker 處理任務,可將批次中的功能擷取至 Feature Store 功能群組。此模式允許批次擷取至離線存放區。如果功能群組設定為線上和離線使用,它也支援擷取至線上儲存。 

建立特徵群組

若要將特徵內嵌到 Feature Store 中,必須先針對屬於該特徵群組的所有特徵,定義其特徵群組和特徵定義 (特徵名稱和資料類型)。功能群組建立後,他們是可變的並且可以進化他們的資料架構。在 AWS 區域 和 中,特徵群組名稱是唯一的 AWS 帳戶。建立功能群組時,您也可以為功能群組建立中繼資料。中繼資料可以包含簡短描述、儲存組態、識別每個記錄的功能,以及事件時間。此外,中繼資料可以包含標籤,以存放作者、資料來源、版本等資訊。

重要

FeatureGroup 名稱或相關中繼資料,例如描述或標籤,不應包含任何個人識別資訊 (PII) 或機密資訊。

尋找、探索和分享功能

在功能儲存中建立功能群組後,功能儲存的其他授權使用者可以共用和探索它。使用者可以瀏覽功能儲存中所有功能群組的清單,或透過依功能群組名稱、描述、記錄識別碼名稱、建立日期和標籤進行搜尋來探索既有功能群組。 

對線上儲存中儲存的功能進行即時推論 

透過功能儲存,您可以使用串流來源的資料 (清除其他應用程式的串流資料),即時豐富線上儲存中儲存的功能,並以低毫秒延遲提供這些功能,進行即時推論。 

您也可以透過在用戶端應用程式中查詢兩個不同的 FeatureGroups 方式,在不同的 FeatureGroups 中執行聯結,以進行即時推論。 

用於模型訓練和批次推論的離線存放區

功能儲存在您的 S3 儲存貯體中提供離線儲存功能值。您的資料會根據事件時間使用前置配置方案存放於 S3 儲存貯體中。離線儲存是僅附加的儲存,可讓 Feature Store 維護所有功能值的歷史記錄。資料以 Parquet 格式儲存在離線儲存中,以最佳化儲存和查詢存取。

您可以從主控台使用 Data Wrangler 查詢、探索和視覺化功能。  功能儲存支援結合資料以產生、訓練、驗證和測試資料集,並可讓您在不同時間點擷取資料。

功能資料擷取

可以建立功能產生管線以處理大批次 (1 百萬列或更多資料) 或小批次,以及將功能資料寫入離線或線上儲存。串流來源:例如 Amazon Managed Streaming,專用於 Apache Kafka 或 Amazon Kinesis) 也可以用作資料來源,從中擷取功能並直接饋送至線上儲存以進行訓練、推論或建立功能。 

您可以透過呼叫同步PutRecordAPI呼叫,將記錄推送至特徵存放區。由於這是同步API呼叫,因此允許在單一API呼叫中推送小批次的更新。這可讓您在偵測到更新後立即維持功能值的高新鮮度和發佈值。這些也稱為串流功能。 

擷取和更新功能資料後,功能儲存會儲存離線儲存中所有功能的歷史資料。對於批次擷取,您可以從 S3 儲存貯體提取功能值,或使用 Athena 進行查詢。您也可以使用 Data Wrangler 來處理和設計新功能,然後將這些功能匯出到選定的 S3 儲存貯體,以供功能存放區存取。對於批次擷取,您可以設定處理任務以批次將資料擷取至功能存放區,或使用 Athena 從 S3 儲存貯體提取功能值。 

若要Record從線上商店移除 ,請使用 DeleteRecordAPI呼叫。這也會將刪除的記錄新增至離線存放區。

功能存放區中的恢復

Feature Store 分佈於多個可用區域 (AZs)。AZ 在 AWS 區域中是一個隔離的位置。如果有些AZs失敗, Feature Store 可以使用其他 AZs。如需 的詳細資訊AZs,請參閱 Amazon 中的復原能力 SageMaker