在 SageMaker Feature Store 中创建功能组时,您需要执行以下步骤:
- 设置 SageMaker Python SDK 和 boto 客户端
- 检查我们想要使用的数据,并应用转换(例如删除 NA、整数等)
- 将转换后的数据提取到特征存储中
- 通过在功能组上运行 Athena 查询来构建训练数据
- 选择训练列
- 将训练数据集保存到 S3 存储桶
- 训练和部署模型
- 使用 GetRecord 功能对来自特征存储的最近数据进行预测。
您可以在此处查看详细的步骤示例。
但是,特征存储如何在进行预测之前将转换应用于数据?显然,新摄取的数据必须进行转换(因此与训练中的相同),但我们仅在第 2 步中进行了这些转换,然后才将任何内容添加到特征组。似乎遵循这些步骤并没有让特征存储对转换有任何了解。
例如,在链接的示例中,他们将转换后的数据添加到transaction_feature_group
如下:
transaction_feature_group.ingest(data_frame=transformed_transaction_data, max_workers=5, wait=True)
所以我们可以看到转换后的数据是加载到特征组中的。但是随着时间的推移添加的新数据呢?这些新数据如何自动转换?