特征存储是特征的存储系统。特征是通过ETL 过程或特征管道计算的数据属性。此管道获取原始数据并从中计算属性。此属性 - 通常是一个数值 - 对机器学习模型很有用。找到足够的、正确的和高质量的特征很重要。这些特征的质量是模型成功的最重要因素。该模型将使用这些特征来训练自己或进行预测。特征存储将有助于组织和使用这些特征。
特征存储的核心只是一个数据库。更具体地说,通常有两个数据库。有一个离线商店可以存储大量数据,例如 HBase 或 S3。还有一个配备快速数据服务的在线商店,如 Cassandra。功能被组织在功能组中,可以将其视为表。一起使用的功能存储在同一功能组中,因此可以更快地访问它们并且无需连接。有许多写入离线存储的 ETL 进程(想想 Spark)。来自线下商店的数据会复制到在线商店以保持一致。数据流还可以同时写入在线和离线商店,以实现快速实时数据访问。
Uber 开发的 Michelangelo Pallete 特色商店的架构
在本文中,我将阐述在您的数据架构中包含特征存储的优势。不假思索地对所有情况开出解决方案绝对不是答案。但几乎每个数据科学团队都会从拥有特征存储中受益,即使它很小。
可重复使用的功能
使用特征存储的主要原因是让数据科学家能够重用特征。构建特征管道占用了数据科学家大约 80% 的时间。避免重复的特征工程工作将导致更快的工作周期。特征重用的一个例子是在训练和推理之间共享特征。用于训练的特征与用于进行预测的特征大致相同。功能重用的另一个例子是在团队或项目之间。与核心企业概念相关的功能通常用于不同的 ML 项目。为鼓励重用,功能必须可通过功能存储发现。
特征一致性
将特征集中在单个特征存储中的另一个好处是特征一致性。不同的数据科学团队可能会略微不同地计算相似的特征。这些特征可能是相同的概念,数据科学家必须同意统一它们。然后,如果计算特征的过程发生变化,那么所有使用它的项目都会发生变化。或者它们可能是一个不同的概念,数据科学家将不得不根据它们各自的怪癖对它们进行分类。
时间点正确性
特征存储还支持时间点正确性。在线商店将始终具有某项功能的最新价值。离线商店将存储该特征在任何时候的所有历史值。这使数据科学家能够使用旧值、汇总时间范围等。它还确保了模型的可重复性。在任何时候,我们都可以恢复过去训练或过去推理中使用的数据来调试模型。
数据健康
还可以从特征存储中生成统计数据以监控数据的健康状况。如果数据漂移(其健康状况或结构随时间发生变化),则可以在管道中自动检测到。统计数据还可以帮助解释特征如何影响每个模型的预测。
数据沿袭
使用特征和模型目录,您可以绘制数据沿袭。此数据沿袭显示用于创建每个功能的数据源。它还显示了使用该功能的模型或其他功能管道。该图可以调试数据问题。追踪一段数据的来源和使用方式变得微不足道。
网上商城
在某些用例中,ML 模型将具有低延迟要求。例如,如果通过 API 调用调用模型,用户会期望在几秒钟内得到响应。这需要非常快速地访问功能。我们可以访问在线商店中的预先计算的功能,而不是每次都计算它们。我们知道在线商店总是会拥有该特征的最新最新值。该在线商店还针对亚秒级查询进行了优化,以实现快速响应。
如果没有必要,不要使用特征存储。但是如果你的组织有一个中等规模的 ML 团队或几个 ML 团队,或者它有我所暴露的任何需求,请考虑引入特征存储。从长远来看,它只会使您的数据科学团队受益。
如何立即开始使用特征存储?
您可以像 Uber 对 Michelangelo 所做的那样,通过将您自己的组件组合在一起来构建特征存储。您可以将 Hive 用于离线商店,将 Cassandra 和 Redis 用于在线商店,将 Kafka 用于流式传输实时数据,并使用 Spark 集群来运行 ETL 流程。另一方面,您也可以信任已经构建了特征存储并使用他们的解决方案的其他人。您可以选择开源解决方案并自行托管。一些开源解决方案是:
Feast:一个最小的 Feature Store,缺少一些功能,如 ETL 系统和数据沿袭。Feast 具有与 GCP(BigQuery 作为离线商店,Datastore 作为在线商店)和 AWS(Redshift、DynamoDB)工具的集成支持。它还具有对 Snowflake、Redis 或 Kafka 等其他不可知工具的集成支持。
Hopsworks:非常完善的Feature store。它包括模型注册表、多租户治理、数据沿袭等工具。它可以部署在 GCP、AWS、Azure 或本地。这是因为 Hopsworks 提供了自己的技术,而不是与 Feast 等其他来源集成。Hopsworks 部署在 Kubernetes 集群中。该集群包括一个用于在线商店的 RonDB 数据库,并与用于离线商店的 S3/Bucket 集成。
您还可以选择 SaaS 工具而不是开源工具。一些例子包括:
Databricks Feature Store:它集成在 Databricks Lakehouse 平台中。因此,如果您已经在使用 Databricks 作为您的 ML 平台,那么它非常适合。它使用 Delta Lake 作为离线商店,并且可以作为在线商店与 AWS DynamoDB、AWS RDS 或 AWS Aurora 集成。
SageMaker 特征存储:由 AWS 完全托管的特征存储。它使用 S3 作为离线商店,使用 DynamoDB 作为在线商店。它与 SageMaker 环境中的所有其他工具以及 AWS 中的数据源(如 Redshift、Athena 和 S3)集成。
Vertex AI Feature Store:由 Google 在其云提供商 GCP 中完全管理的特征存储。它使用 BigQuery 作为离线商店,使用 BigTable 作为在线商店。它与 Vertex AI 环境中的所有其他工具以及作为数据源的 BigQuery 和 GCS 集成。

被折叠的 条评论
为什么被折叠?



