如果您需要检索或传送当前特征数据以及历史特征数据,请使用离线传送从 BigQuery 中提取特征值。例如,您可以使用离线传送针对特定时间戳检索特征值,以训练模型。
所有特征数据(包括历史特征数据)都保留在 BigQuery 中,这构成了特征值的离线存储区。如需使用离线传送,您必须先通过创建特征组和特征值来注册 BigQuery 数据源。此外,对于离线传送,包含相同实体 ID 的每一行都必须具有不同的时间戳。如需详细了解数据源准备准则,请参阅准备数据源。
准备工作
向 Vertex AI 进行身份验证,除非您已完成此操作。
如需在本地开发环境中使用本页面上的 Python 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭证设置应用默认凭证。
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
提取历史特征值
使用以下示例可根据多个实体 ID 和时间戳中从特征中提取历史值。
Python
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Python API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
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
。