Vertex AI 特徵儲存庫 (舊版) 的最佳做法

下列最佳做法可協助您在各種情境中規劃及使用 Vertex AI 特徵儲存庫 (舊版)。本指南僅列出部分範例。

共同描述多個實體的模型特徵

部分功能可能適用於多個實體類型。舉例來說,您可能會有一個計算值,記錄每位使用者點擊各產品的次數。這項功能會共同描述產品與使用者配對。

在此情況下,最佳做法是建立獨立的實體類型,將共用功能分組。您可以建立實體類型 (例如 product-user),其中包含共用特徵。

如為實體 ID,請串連個別實體的 ID, 例如個別產品和使用者的實體 ID。唯一規定是 ID 必須是字串。這些合併的實體類型稱為複合實體類型

詳情請參閱建立實體類型

使用 IAM 政策控管多個團隊的存取權

使用 IAM 角色和政策,為不同使用者群組設定不同存取層級。舉例來說,機器學習研究人員、數據資料學家、開發運作和網站穩定性工程師都需要存取相同的特徵商店,但存取層級可能不同。舉例來說,DevOps 使用者可能需要管理特徵商店的權限,但不需要存取特徵商店的內容。

您也可以使用資源層級 IAM 政策,限制對特定特徵商店或實體類型的存取權。

舉例來說,假設貴機構包含下列角色。 由於每個角色需要的存取層級不同,因此每個角色都會獲派不同的預先定義 IAM 角色。您也可以建立及使用自己的自訂角色。

角色 說明 預先定義的角色
機器學習研究人員或業務分析師 僅查看特定實體類型資料的使用者 roles/aiplatform.featurestoreDataViewer (可在專案或資源層級授予)
資料科學家或資料工程師 使用特定實體類型資源的使用者。對於自己擁有的資源,他們可以將存取權委派給其他主體。 roles/aiplatform.entityTypeOwner (可在專案或資源層級授予)
IT 或開發運作 使用者必須維護及調整特定特徵商店的效能,但不需要存取資料。 roles/aiplatform.featurestoreInstanceCreator (可在專案或資源層級授予)
自動化資料匯入管道 將資料寫入特定實體類型的應用程式。 roles/aiplatform.featurestoreDataWriter (可在專案或資源層級授予)
網站可靠性工程師 管理特定或所有特徵存放區的使用者 roles/aiplatform.featurestoreAdmin (可在專案或資源層級授予)
全域 (任何 Vertex AI 特徵儲存庫 (舊版) 使用者)

允許使用者查看及搜尋現有功能。如果發現想使用的功能,可以向功能擁有者要求存取權。

Google Cloud 控制台使用者也必須具備這個角色,才能查看 Vertex AI 特徵儲存庫 (舊版) 登陸頁面、匯入作業頁面和批次服務作業頁面。

在專案層級授予 roles/aiplatform.featurestoreResourceViewer 角色。

監控資源並據此調整,以最佳化批次匯入作業

批次匯入工作需要工作站處理及寫入資料,這可能會提高特徵商店的 CPU 使用率,並影響線上服務效能。如果優先考量維持線上服務效能,請先為每十個線上服務節點指派一個工作人員。匯入期間,請監控線上儲存空間的 CPU 使用率。如果 CPU 使用率低於預期,請在日後的批次匯入工作中增加工作站數量,以提高輸送量。如果 CPU 使用率高於預期,請增加線上服務節點數量來提高 CPU 容量,或減少批次匯入工作站數量,這兩種做法都能降低 CPU 使用率。

如果增加線上服務節點數量,請注意,更新後 Vertex AI 特徵儲存庫 (舊版) 大約需要 15 分鐘,才能達到最佳效能。

詳情請參閱更新特徵商店批次匯入特徵值

如要進一步瞭解 Feature Store 監控,請參閱 Cloud Monitoring 指標

補充歷來資料時使用 disableOnlineServing 欄位

增補是匯入歷來特徵值的程序,不會影響最新的特徵值。在這種情況下,你可以停用線上放送,略過對線上商店的任何變更。詳情請參閱「回填歷來資料」。

使用自動調度資源功能,在負載波動期間降低成本

如果您大量使用 Vertex AI 特徵儲存庫 (舊版),且流量模式經常出現負載波動,請使用自動調度資源功能來節省費用。自動調度功能可讓 Vertex AI 特徵儲存庫 (舊版) 檢查流量模式,並根據 CPU 使用率自動調整節點數量,不必維持高節點數。這個選項適合流量逐漸成長和衰退的模式。

如要進一步瞭解自動調度資源,請參閱調度選項

測試線上供應節點的即時供應效能

您可以測試線上服務節點的效能,藉此驗證即時線上服務期間的特徵商店效能。您可以根據各種基準化參數 (例如 QPS、延遲時間和 API) 執行這些測試。請按照下列指南測試線上服務節點的效能:

  • 從相同區域執行所有測試用戶端,最好是在 Compute Engine 或 Google Kubernetes Engine 上執行:這樣可避免因跨區域躍點而導致網路延遲,進而造成差異。

  • 使用 SDK 中的 gRPC API:gRPC API 的效能優於 REST API。如需使用 REST API,請啟用 HTTP 保持連線選項,重複使用 HTTP 連線。否則,每個要求都會建立新的 HTTP 連線,進而增加延遲時間。

  • 執行時間較長的測試:執行時間較長的測試 (至少 15 分鐘),且 QPS 至少為 5,以計算更準確的指標。

  • 加入「暖機」期:如果是在一段時間沒有活動後開始測試,您可能會發現連線重新建立時延遲時間較長。為因應初始期間的高延遲,您可以將這段時間指定為「暖機期」,系統會忽略初始資料讀取作業。或者,您也可以向特徵商店傳送少量但穩定的模擬流量,讓連線保持活動狀態。

  • 視需要啟用自動調度資源:如果預期線上流量會逐漸增加和減少,請啟用自動調度資源。如果選擇自動調度資源,Vertex AI 會根據 CPU 使用率自動調整線上服務節點數量。

如要進一步瞭解線上供應功能,請參閱「線上供應功能」。如要進一步瞭解線上供應節點,請參閱「線上供應節點」。

指定開始時間,在批次服務和批次匯出期間最佳化離線儲存成本

如要在批次服務和批次匯出期間,盡量降低離線儲存空間費用,可以在 batchReadFeatureValuesexportFeatureValues 要求中指定 startTime。要求會根據指定的 startTime,對部分可用的特徵資料執行查詢。否則,要求會查詢所有可用的特徵資料量,導致離線儲存空間用量費用偏高。

後續步驟

瞭解 Vertex AI 特徵儲存庫 (舊版) 最佳做法,在 Vertex AI 上實作自訂訓練的 ML 模型