本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用功能商店建立、儲存和共用功能
機器學習 (ML) 開發程序包括擷取原始資料,將其轉換為功能 (適用於 ML 模型的有意義輸入)。然後,這些功能會以可維修的方式儲存,以供資料探索、ML 訓練和 ML 推論使用。Amazon SageMaker 功能商店可簡化您建立、存放、共用和管理功能的方式。這可透過提供 feature store 庫選項並減少重複的資料處理和組織工作來完成。
除此之外,使用功能商店,您可以:
-
為跨帳戶或組織中的 ML 開發簡化功能處理、儲存、擷取和共用功能。
-
追蹤您的功能處理程式碼開發、將功能處理器套用至原始資料,並以一致的方式將您的功能導入至功能商店。這可以減少訓練服務歪斜,這是 ML 中常見的問題,其中訓練和服務期間的效能差異可能會影響 ML 模型的準確性。
-
將功能和關聯的中繼資料儲存在功能群組中,以便輕鬆探索和重複使用功能。功能群組是可變的,並且可以在建立後進化其結構描述。
-
建立可設定為包含線上或離線商店 (或兩者) 的功能群組,以管理您的功能並自動化針對 ML 工作儲存功能的方式。
-
線上商店只會保留您功能的最新記錄。這主要用於支援需要低毫秒延遲讀取和高輸送量寫入的即時預測。
-
離線商店會將圖徵的所有記錄保留為歷史資料庫。這主要用於資料探索、模型訓練和批次預測。
-
下圖顯示如何使用功能存放區做為 ML 管線的一部分。讀入原始資料後,您可以使用「功能商店」將原始資料轉換為圖徵,並將其導入到您的功能群組中。這些功能可以透過串流或批次擷取至功能群組的線上和離線商店。然後可以為資料探索、模型訓練以及即時或批次推論提供這些功能。
![功能商店適合您的機器學習管道。](images/feature-store/feature-store-overview.png)
功能儲存的運作方式
在 Feature Store 中,特徵儲存在稱為特徵群組的集合中。您可以將特徵群組視覺化為表格,其中每欄位都是一個特徵,每列都具有唯一識別碼。原則上,特徵群組由許多特徵以及每個特徵的專屬值組成。Record
是功能值的集合,並且對應於唯一的 RecordIdentifier
。總而言之,FeatureGroup
是一組功能定義於您的 FeatureStore
用以描述 Record
。
您可以在以下模式中使用 Feature Store:
-
線上 - 在線上模式下,會以低延遲 (毫秒) 讀取功能讀取,並用於高輸送量預測。此模式需要將功能群組儲存在線上儲存中。
-
離線 - 在離線模式下,大型資料串流會饋送至離線存放區,可用於訓練和批次推論。此模式需要將功能群組儲存在離線儲存中。離線存放區使用您的 S3 儲存貯體進行儲存,也可以使用 Athena 查詢擷取資料。
-
線上和離線 — 這包含線上和離線模式。
您可以透過兩種方式將資料導入功能群組中的功能群組:串流或批次。當您透過串流內嵌資料時,會呼叫同步PutRecord
API呼叫將記錄集合推送至功能商店。這API可讓您在「圖徵商店」中維持最新的圖徵值,並在偵測到更新時推送新圖徵值。
或者,功能儲存可以批次處理和擷取資料。例如,您可以使用 Amazon SageMaker 資料牧馬人編寫功能,並從資料牧馬人匯出筆記本。筆記本可以是將圖徵批次導入至圖徵倉庫圖徵群組的 SageMaker 處理工作。此模式允許批次擷取至離線存放區。如果功能群組設定為線上和離線使用,它也支援擷取至線上儲存。
建立特徵群組
若要將特徵內嵌到 Feature Store 中,必須先針對屬於該特徵群組的所有特徵,定義其特徵群組和特徵定義 (特徵名稱和資料類型)。功能群組建立後,他們是可變的並且可以進化他們的資料架構。特徵群組名稱在和中是唯一 AWS 區域 的 AWS 帳戶。建立圖徵群組時,您也可以為圖徵群組建立詮釋資料。元數據可以包含簡短描述,存儲配置,用於識別每個記錄的功能以及事件時間。此外,中繼資料可以包含用來儲存資訊的標籤,例如作者、資料來源、版本等。
重要
FeatureGroup
名稱或相關的中繼資料 (例如說明或標籤) 不應包含任何可識別個人身分的資訊 (PII) 或機密資訊。
尋找、探索和分享功能
在功能儲存中建立功能群組後,功能儲存的其他授權使用者可以共用和探索它。使用者可以瀏覽功能儲存中所有功能群組的清單,或透過依功能群組名稱、描述、記錄識別碼名稱、建立日期和標籤進行搜尋來探索既有功能群組。
對線上儲存中儲存的功能進行即時推論
透過功能儲存,您可以使用串流來源的資料 (清除其他應用程式的串流資料),即時豐富線上儲存中儲存的功能,並以低毫秒延遲提供這些功能,進行即時推論。
您也可以透過在用戶端應用程式中查詢兩個不同的 FeatureGroups
方式,在不同的 FeatureGroups
中執行聯結,以進行即時推論。
用於模型訓練和批次推論的離線存放區
功能儲存在您的 S3 儲存貯體中提供離線儲存功能值。您的資料會根據事件時間使用前置配置方案存放於 S3 儲存貯體中。離線儲存是僅附加的儲存,可讓 Feature Store 維護所有功能值的歷史記錄。資料以 Parquet 格式儲存在離線儲存中,以最佳化儲存和查詢存取。
您可以從主控台使用 Data Wrangler 查詢、探索和視覺化功能。 功能儲存支援結合資料以產生、訓練、驗證和測試資料集,並可讓您在不同時間點擷取資料。
功能資料擷取
可以建立功能產生管線以處理大批次 (1 百萬列或更多資料) 或小批次,以及將功能資料寫入離線或線上儲存。串流來源:例如 Amazon Managed Streaming,專用於 Apache Kafka 或 Amazon Kinesis) 也可以用作資料來源,從中擷取功能並直接饋送至線上儲存以進行訓練、推論或建立功能。
您可以透過呼叫同步PutRecord
API呼叫將記錄推送至圖徵商店。由於這是一個同步API調用,它允許在一個API調用中推送小批量更新。這可讓您在偵測到更新後立即維持功能值的高新鮮度和發佈值。這些也稱為串流功能。
擷取和更新功能資料後,功能儲存會儲存離線儲存中所有功能的歷史資料。對於批次擷取,您可以從 S3 儲存貯體提取功能值,或使用 Athena 進行查詢。您也可以使用 Data Wrangler 來處理和設計新功能,然後將這些功能匯出到選定的 S3 儲存貯體,以供功能存放區存取。對於批次擷取,您可以設定處理任務以批次將資料擷取至功能存放區,或使用 Athena 從 S3 儲存貯體提取功能值。
若要Record
從您的線上商店中移除,請使用DeleteRecord
API呼叫。這也會將刪除的記錄新增至離線存放區。
功能存放區中的恢復
功能存放區分佈在多個可用區域 (AZs)。AZ 在 AWS 區域中是一個隔離的位置。如果某些AZs失敗,功能商店可以使用其他AZs。如需有關的更多資訊AZs,請參閱Amazon 的韌性 SageMaker。