与 创建、存储和共享功能 Amazon SageMaker Feature Store - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

与 创建、存储和共享功能 Amazon SageMaker Feature Store

机器学习 (ML) 开发过程通常从从将数据信号(也称为特征)提取到数据中来训练 ML 模型开始Amazon SageMaker Feature Store。利用 ,数据科学家、机器学习工程师和一般从业者可以轻松地创建、共享和管理机器学习 (ML) 开发功能。 通过减少重复数据处理和将原始数据转换为 ML 算法所需的功能来Feature Store加快此过程。

此外,您的数据的处理逻辑只编写一次,生成的功能用于训练和推理,从而减少训练服务偏斜。 Feature Store 是一个用于 功能和相关元数据的集中存储,因此可以轻松发现和重用功能。您可以创建在线或离线商店。在线商店用于低延迟实时推理使用案例,离线商店用于训练和批处理推理。 

下图显示了如何在机器学习管道中使用 Amazon SageMaker Feature Store 。首先,您读取并处理原始数据。您可以通过流式传输到在线和离线存储或批量传输到离线存储来提取数据。首先创建一个 FeatureGroup并将其配置为在线或离线存储,或同时对其进行配置。然后,您可以将数据提取到 中并将其FeatureGroup存储在存储中。 FeatureGroup是通过 中的架构定义的一组功能Feature Store来描述记录。

在线商店主要用于支持需要低毫秒延迟读取和高吞吐量写入的实时预测。离线存储主要用于批量预测和模型训练。离线存储是仅附加存储,可用于存储和访问历史特征数据。离线商店可帮助您存储和服务用于探索和模型训练的功能。在线商店仅保留最新的功能数据。功能组定义在创建后是不可变的。

Feature Store 的工作原理

在 中Feature Store,功能存储在一个称为功能组的集合中。您可以将一个功能组可视化为一个表,其中,每个列都是一个功能,每个行都有一个唯一标识符。原则上,特征组由每个特征特定的特征和值组成。Record 是对应于唯一 的特征的值的集合RecordIdentifier。同样, FeatureGroup 是 中定义的一组功能FeatureStore,用于描述 Record。 

您可以在以下模式下使用 Feature Store : 

  • 在线 – 在联机模式下,读取的功能具有低延迟(毫秒)读取,并用于高吞吐量预测。此模式要求功能组存储在在线商店中。 

  • 离线 – 在脱机模式下,大量数据流将馈送到离线存储,这可用于训练和批处理推理。此模式要求功能组存储在脱机存储中。离线存储使用您的 S3 存储桶进行存储,还可以使用 Athena 查询提取数据。 

  • 在线和离线 – 这包括在线和离线模式。

您可以通过Feature Store两种方式将数据提取到 中的功能组:流式处理或批量。当您通过流式传输提取数据时,会Feature Store通过调用同步 PutRecord API 调用将记录集合推送到 。利用此 API,您可以在 中维护最新功能值Feature Store,并在检测到更新后立即推送新功能值。

或者, Feature Store 可以批量处理和提取数据。您可以使用 编写功能Amazon SageMaker Data Wrangler,在 中创建功能组Feature Store,并使用从 导出的笔记本SageMaker的处理作业批量提取功能Data Wrangler。此模式允许批量提取到脱机存储中。如果功能组配置为在线和离线使用,它还支持提取到在线商店中。 

创建功能组

要将特征提取到 中Feature Store,您必须先为属于特征组的所有特征定义特征组和特征定义(特征名称和数据类型)。创建后,功能组是不可变的。功能组名称在 AWS 区域和 AWS 账户中是唯一的。创建功能组时,您还可以为功能组创建元数据,例如,简短描述、存储配置、用于标识每个记录的功能、事件时间以及用于存储信息(如作者、数据源、版本等)的标签。

查找、发现和共享功能

在 中创建功能组后Feature Store,功能存储的其他授权用户可以共享和发现它。用户可以浏览 中所有功能组的列表Feature Store,或者通过按功能组名称、描述、记录标识符名称、创建日期和标签进行搜索来发现现有功能组。 

在线商店中存储的功能的实时推理 

借助 Feature Store,您可以使用来自流式传输源的数据实时丰富存储在在线商店中的功能(来自另一个应用程序的干净流数据),并以低毫秒级延迟提供功能以进行实时推理。 

您还可以通过在FeatureGroups客户端应用程序中查询两个不同的 来跨不同 执行联接FeatureGroups以进行实时推理。 

用于模型训练和批处理推理的脱机存储

Feature Store 为您的 S3 存储桶中的功能值提供脱机存储。您的数据使用基于事件时间的前缀方案存储在 S3 存储桶中。离线存储是仅附加存储,使 Feature Store 能够维护所有特征值的历史记录。数据以 Parquet 格式存储在脱机存储中,以实现优化的存储和查询访问。

您可以使用 Data Wrangler 从 查询、浏览和可视化 功能Amazon SageMaker Studio。 Feature Store 支持组合数据以生成、训练、验证和测试数据集,并允许您在不同时间点提取数据。

特征数据提取

可以创建特征生成管道来处理大批量(一百万行或更多行数据)或小批量,以及将特征数据写入脱机或在线商店。Amazon Managed Streaming for Apache Kafka 流式传输源(如 Amazon Kinesis 或 )还可以用作数据源,从中提取功能并直接馈送到在线商店以进行训练、推理或功能创建。 

您可以通过调用同步 Feature Store API 调用PutRecord将记录推送到 。由于这是同步 API 调用,因此,它允许在单个 API 调用中推送小批量更新。这使您能够在检测到更新后立即保持特征值的新鲜度高并发布值。这些功能也称为流式处理功能。 

当特征数据提取和更新时, 会将所有特征的历史数据Feature Store存储在脱机存储中。对于批量提取,您可以从 S3 存储桶中提取特征值或使用 Athena 进行查询。您还可以使用 Data Wrangler 处理和设计新功能,随后可将这些功能导出到所选的 S3 存储桶以供 访问Feature Store。对于批量提取,您可以配置处理作业以将数据批量提取到 中Feature Store,也可以使用 从 S3 存储桶中提取特征值Athena。