What ML feature stores require and how ScyllaDB fits in as fast, scalable online feature store 在本博客文章中,我们将探讨功能商店在实时机器学习(ML)应用中的作用,以及为什么ScyllaDB是在线功能服务的强大选择。我们将涵盖功能的基本知识,功能商店是如何工作的,它们的优点,不同的工作负载要求,以及延迟在ML应用中如何发挥关键作用。 什么是机器学习的功能? 功能是一种可测量的属性,用于训练或服务机器学习模型. 功能可以是原始数据点或从原始数据中提取的工程值。 在过去的10分钟里喜欢的次数 过去7天股票数量 文章的主题 图片来源:伊万·伯米斯特罗夫和安德烈·马纳科夫(ShareChat) 这些数据点有助于预测用户参与或内容推荐等结果。 特征向量只是与特定预测任务相关的特征的集合,例如,这就是一个特征向量对于一个信用评分应用程序的样子。 选择相关的数据点并将其转化为功能,在机器学习项目中占据了相当一部分工作,也是完善和优化功能的持续过程,以便训练的模型随着时间的推移变得更加准确。 特色大楼建筑 为了有效地使用功能,您可以创建一个中心位置来管理组织内可用的功能。 创建新功能的标准流程 用于简化访问的功能存储 在团队中发现和重复使用功能 为模型培训和推断提供功能 大多数架构区分两个存储 / 数据库: 模特培训的离线商店(批量写作/阅读) 线上推断商店(实时,低延迟写 / 阅读) 典型的功能商店管道从吸收原始数据(来自数据湖或流)开始,执行功能工程,在两家商店中保存功能,然后通过两个单独的管道提供服务:一个用于培训和一个用于推断。 集中式功能商店的优点 集中式功能商店提供了几个优点: 避免重复:团队可以重复使用现有功能 自助服务访问:数据科学家可以独立生成和查询功能 统一管道:尽管训练和推断工作负载非常不同,但它们仍然可以使用相同的抽象层进行查询 这导致更快的迭代,更多的一致性,以及在ML工作流中更好的协作。 功能商店中的不同工作负载 让我们分解一个功能商店内存在的两个非常不同的工作负载要求:模型培训和实时推断。 模型培训(离线商店) 为了做出预测,您需要先训练机器学习模型。 培训需要一个大而高质量的数据集。 您可以将此数据集存储在离线功能商店中。 延迟:不是优先事项 大量:高(数百万到数十亿的记录) 频率:罕见、计划工作 目的:获取大量的历史数据 基本上,离线商店需要有效地存储巨大的数据集。 实时推断(在线商店) 一旦你有一个模型准备好了,你可以运行实时推断。实时推断采用用户提供的输入,并将其转化为预测。 延迟:优先级高 量:每请求低,但输出量高(高达每秒数百万次) 频率:恒定,由用户行为引发(例如订购食物) Serve up-to-date features for making predictions quickly Purpose: 例如,考虑到食品配送应用程序:用户最近的购物车内容、年龄和位置可能会被转化为功能,并立即用于推荐其他购买项目。 为什么延迟重要 延迟(在本文的背景下)指在发送查询到收到功能商店的响应之间的时间。 想象一下,在支票时,用户会看到相关的食品。如果由于在线商店的速度慢,这个建议需要太长的时间来加载,那么这个机会就会丢失。 输入最新的数据 寻找相关特点 跑步推断 返回预测 它必须在毫秒内发生。 选择一个功能商店解决方案 一旦你决定建立一个功能商店,你很快就会发现,有几十个框架和提供商,无论是开源还是商业,可以选择: Feast(开源):提供灵活的数据库支持(例如,Postgres,Redis,Cassandra,ScyllaDB) Hopsworks:与自己的生态系统紧密相连 AWS SageMaker:连接到 AWS 堆栈(如 S3,DynamoDB) 以及许多其他 哪个是最好的?你的团队的技术专业知识,延迟要求和与现有堆栈所需的整合等因素都起到一个作用。 如果你担心你的在线功能商店的可扩展性和性能,那么数据库的灵活性应该是关键考虑。有功能商店(如AWS SageMaker,GCP Vertex,Hopsworks等)提供自己的数据库技术作为在线商店。 想象一下选择这样一个具有严格的P99延迟要求的供应商(例如,<15ms P99)。在概念验证(POC)期间,这个要求被成功满足了。 问题是,你不能......至少不是很容易。你被内置的解决方案困住了。无法移除你的架构的在线商店部分,因为一切都被锁定了。 如果你想避免这些情况,你可以寻找有关离线和在线商店后端灵活的工具. Feast 或 FeatureForm 等工具允许你为在线和离线商店带来自己的数据库后端。 ScyllaDB作为一个在线功能商店 ScyllaDB是一个高性能的NoSQL数据库,它是与Apache Cassandra和DynamoDB API兼容的API。 ,并包括 ,使其非常适合低延迟、高输出功能商店应用。 shard-per-core 架构 嵌入式缓存系统 为什么是ScyllaDB? 低延迟(单位毫秒P99性能) 高可用性和弹性 尺寸上的高传输量(petabyte 尺度部署) 没有供应商锁定(在本地或任何云中运行) 替换现有的 Cassandra/DynamoDB 设置 易于从其他 NoSQL 数据库迁移(Cassandra、DynamoDB、MongoDB 等) 与 Feature Store Framework Feast 集成 ScyllaDB在实时性能、可用性和延迟可预测性至关重要的在线功能商店使用案例中发挥了重要作用。 ScyllaDB + 聚会集成 Feast is a popular open-source feature store framework that supports both online and offline stores. One of its strengths is the ability to plug in your own database sources, including ScyllaDB. Read more about the . ScyllaDB + Feast 集成到文档中 开始与一个功能商店教程 想尝试使用 ScyllaDB 作为您的在线功能商店吗? 查看我们的教程,指导您创建 ScyllaDB 集群并构建实时推断应用程序的过程。 教程:价格预测推断应用程序与ScyllaDB 教程:实时应用程序与Feast & ScyllaDB Feast + ScyllaDB 集成 GitHub:ScyllaDB作为功能商店代码示例 有疑问或需要帮助设置它?提交 ! 论坛中的一个帖子 我刚刚完成了与Feast维护者Francisco Javier Arceo的开发者研讨会: 您现在可以按需求观看。 Update: 使用 Python、Feast 和 NoSQL 构建实时 ML 应用