以下部分介绍了 Vertex AI Feature Store(旧版)数据模型,以及用于描述 Vertex AI Feature Store(旧版)资源和组件的术语。
Vertex AI Feature Store(旧版)数据模型
Vertex AI Feature Store(旧版)使用时间序列数据模型来存储一系列特征值。此模型使 Vertex AI Feature Store(旧版)能够在特征值随时间变化时保留它们。Vertex AI Feature Store(旧版)按以下顺序分层整理资源:Featurestore -> EntityType -> Feature
。您必须先创建这些资源,然后才能将数据导入到 Vertex AI Feature Store(旧版)。
例如,假设您使用以下来自 BigQuery 表的示例源数据。此源数据与影片及其特征有关。
在将数据导入到 Vertex AI Feature Store(旧版)之前,您需要创建一个特征存储区,该特征存储区是其他所有资源的顶层容器。在特征存储区中,创建实体类型以分组和包含相关特征。然后,您可以创建特征以映射到源数据中的特征。实体类型和特征的名称可以反映列标题名称,但这不是必需的。
在此示例中,movie_id
列标题可以映射到实体类型 movie
。average_rating
、title
和 genre
是 movie
实体类型的特征。每一列中的值映射到实体类型的特定实例或特征(称为实体和特征值)。
时间戳列表明特征值的生成时间。在特征存储区中,时间戳是特征值的特性,而不是单独的资源类型。如果所有特征值都是同时生成的,则可以不需要时间戳列。您可以在导入请求中指定时间戳。
特征存储区
特征存储区是实体类型、特征和特征值的顶层容器。通常,组织创建一个共享特征存储区,以在组织的所有团队中导入、传送和分享特征。不过,有时您可能会选择在同一项目中创建多个特征存储区以隔离环境。例如,您可能有不同的用于实验、测试和生产的特征存储区。
实体类型
实体类型是一组语义上相关的特征。您可以根据与用例相关的概念定义自己的实体类型。例如,影片服务可能具有实体类型 movie
和 user
,可对与影片或客户对应的相关特征进行分组。
实体
实体是实体类型的实例。例如,movie_01
和 movie_02
是 movie
实体类型的实体。在特征存储区中,每个实体必须具有唯一 ID,并且必须是 STRING
类型。
特征
特征是实体类型的可衡量属性或特性。例如,movie
实体类型具有 average_rating
和 title
等特征,用于跟踪影片的各种属性。特征与实体类型相关联。在一个给定的实体类型中,特征必须互不相同,但特征不需要是全局唯一的。例如,如果您为两个不同的实体类型使用 title
,Vertex AI Feature Store(旧版)会将 title
解释为两个不同的特征。读取特征值时,您需要在请求中提供特征及其实体类型。
创建特征时,您需要指定其值类型,例如 BOOL_ARRAY
、DOUBLE
、DOUBLE_ARRAY
和 STRING
。此值决定了您可以为特定特征导入的值类型。如需详细了解受支持的值类型,请参阅 API 参考文档中的 valueType
。
特征值
Vertex AI Feature Store(旧版)会在特定时间点捕获特征值。换言之,给定实体和特征可以具有多个值。例如,movie_01
实体可以具有多个 average_rating
特征值。该值在某个时间可以是 4.4
,而在稍后某个时间可以是 4.8
。Vertex AI Feature Store(旧版)会将元组标识符与每个特征值(entity_id
、feature_id
、timestamp
)相关联,以供 Vertex AI Feature Store(旧版)在传送时用来查询值。
尽管时间是连续的,但 Vertex AI Feature Store(旧版)存储离散值。当您在 t
时请求特征值,Vertex AI Feature Store(旧版)会返回 t
当时或之前的最新存储值。例如,如果 Vertex AI Feature Store(旧版)存储了一辆汽车在时间 100
和 110
的位置信息,那么时间 100
的位置将用于 100
(含)到 110
(不含)之间的所有时间的请求。如果您需要更高的分辨率,则可以推断值之间的位置或提高数据的采样率。
特征导入
特征导入是将特征工程作业计算的特征值导入特征存储区的过程。在导入数据之前,您必须在特征存储区中定义相应的实体类型和特征。Vertex AI Feature Store(旧版)提供批量导入和流式导入功能,您可以批量或实时添加特征值。
例如,您可能计算了位于 BigQuery 或 Cloud Storage 等位置的源数据。您可以将这些来源的数据批量导入到一个中央特征存储区,以便以统一的格式传送这些特征值。随着源数据发生更改,您可以使用流式导入快速将这些更改导入到特征存储区中。这样,您就获得了可用于在线传送场景的最新数据。
特征传送
特征传送是导出存储特征值以用于训练或推断的过程。Vertex AI Feature Store(旧版)提供了两种传送特征的方法:批量和在线。批量传送用于高吞吐量工作,并传送大量数据以供离线处理(例如模型训练或批量预测)。在线传送用于小批量检索数据,以进行实时处理(如进行在线预测)。
实体视图
从特征存储区检索值时,服务会返回一个实体视图,其中包含您请求的特征值。您可以将实体视图看作 Vertex AI Feature Store(旧版)从在线或批量传送请求返回的特征和值:
- 对于在线传送请求,您可以获取特定实体类型的全部或部分特征。
- 对于批量传送请求,您可以获取一个或多个实体类型的全部或部分特征。例如,如果特征分布在多个实体类型上,您可以在单个请求中同时检索这些特征,以将这些特征组合在一起。然后,您可以使用结果提供给机器学习或批量预测请求。
导出数据
Vertex AI Feature Store(旧版)可让您从特征存储区导出数据,以便备份和归档特征值。您可以选择导出最新的特征值(快照)或导出一系列值(完整导出)。如需了解详情,请参阅导出特征值。