提供歷來特徵值

如要擷取或提供目前和歷來的特徵資料,請使用離線供應功能從 BigQuery 擷取特徵值。舉例來說,您可以使用離線服務,擷取特定時間戳記的特徵值來訓練模型。

所有特徵資料 (包括歷來特徵資料) 都會保留在 BigQuery 中,這就是特徵值的離線儲存庫。如要使用離線放送功能,請先建立特徵群組和特徵值,註冊 BigQuery 資料來源。此外,如果是離線放送,含有相同實體 ID 的每列都必須有不同的時間戳記。如要進一步瞭解資料來源準備指南,請參閱「準備資料來源」。

事前準備

驗證 Gemini Enterprise Agent Platform,除非您已完成驗證。

如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。

  1. 安裝 Google Cloud CLI。

  2. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  3. 如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:

    gcloud auth application-default login

    如果您使用 Cloud Shell,則不需要執行這項操作。

    如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。

詳情請參閱「 設定本機開發環境的驗證機制」。

擷取歷來特徵值

使用下列範例,從多個實體 ID 和時間戳記的特徵擷取歷來值。

Python

在試用這個範例之前,請先按照「使用用戶端程式庫的 Agent Platform 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱「Agent Platform Python API 參考文件」。

如要向 Agent Platform 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。

import bigframes
import bigframes.pandas
import pandas as pd
from google.cloud import bigquery
from vertexai.resources.preview.feature_store import (Feature, FeatureGroup, offline_store)
from vertexai.resources.preview.feature_store import utils as fs_utils

fg = FeatureGroup("FEATURE_GROUP_NAME")
f1 = fg.get_feature("FEATURE_NAME_1")
f2 = fg.get_feature("FEATURE_NAME_2")

entity_df = pd.DataFrame(
  data={
    "ENTITY_ID_COLUMN": [
      "ENTITY_ID_1",
      "ENTITY_ID_2",
    ],
    "timestamp": [
      pd.Timestamp("FEATURE_TIMESTAMP_1"),
      pd.Timestamp("FEATURE_TIMESTAMP_2"),
    ],
  },
)

offline_store.fetch_historical_feature_values(
  entity_df=entity_df,
  features=[f1,f2],
)

更改下列內容:

  • FEATURE_GROUP_NAME:包含特徵的現有特徵群組名稱。

  • FEATURE_NAME_1 和 FEATURE_NAME_2:要從中擷取特徵值的已註冊特徵名稱。

  • ENTITY_ID_COLUMN:包含實體 ID 的資料欄名稱。 只有在特徵群組中註冊的資料欄名稱,才能指定。

  • ENTITY_ID_1 和 ENTITY_ID_2:您要擷取特徵值的實體 ID。如要在不同時間戳記擷取相同實體 ID 的特徵值,請為每個時間戳記指定對應的實體 ID。

  • FEATURE_TIMESTAMP_1 和 FEATURE_TIMESTAMP_2:要擷取歷史特徵值的時間戳記。FEATURE_TIMESTAMP_1 對應於 ENTITY_ID_1,FEATURE_TIMESTAMP_2 對應於 ENTITY_ID_2,依此類推。以日期時間格式指定時間戳記,例如 2024-05-01T12:00:00。