Translator|陈军在选择他们的在线特征商店之前,公司通常会进行全面的基准测试,以比较哪种架构最高效、最具成本效益。本文讨论了四种已成功部署用于实时AI/ML用例的开源和商业特征存储架构和基准。如今,随着欺诈预防和个性化推荐等真实业务用例的广泛应用,特征存储在将AI/ML技术实时成功部署到生产环境的过程中发挥着关键作用。Feast是最受欢迎的开源特征存储平台之一。Feast的可扩展性和性能是其Slack社区(https://slack.feast.dev/)中用户提及最多的。毕竟,对于实时的AI/ML特征存储,最重要的指标是用于在线预测或评分的ML模型的特征服务速度。一般来说,一个成功的特征存储应该满足以下严格的要求:低延迟(以毫秒为单位)一致性(99%的情况下结果测量)规模(高达每秒数十万,甚至数百万的查询,以及千兆字节,或甚至TB的数据集)总拥有成本低且准确性高在选择在线特征存储之前,公司通常会进行全面的基准测试,以比较哪种架构最高效且具有成本效益。下面,我们讨论了四种已成功部署实时AI/ML用例的开源和商业特征存储架构和基准。一、开源Feast我们先来看看Feast(https://feast.dev/)开源特征存储的基准数据和数据架构。在最近的一项基准测试中,Feast比较了使用不同在线商店(即Redis、GoogleCloudDataStore和AWSDynamoDB)时特征服务的延迟,并比较了使用不同机制(例如JavagRPC服务器、PythonHTTP服务器和lambda)提取特征功能等)。您可以从链接阅读完整的基准设置及其结果—https://feast.dev/blog/feast-benchmarks/。其中,Feast在使用JavagRPC服务器结合Redis作为在线存储时发现性能最高。来源:https://www.applyconf.com/agenda/using-feast-in-a-ranking-syst上图中可以看到知名在线抵押贷款公司Better.com是如何使用开源Feast功能的商店为其潜在客户建立评分和排名系统。Better.com的高级软件工程师VitalySergey描述了从离线存储(S3、Snowflake和Redshift)到在线存储(Redis)的旅程。同时,他们还将流式资源(Kafka主题)的特性提取到在线存储中。Feast最近还增加了对流数据源的支持(除了批数据源),但目前只支持Redis。由于此类用例依赖于实时数据,因此支持实时AI/ML用例的流数据源非常重要。例如,在这个评分用例中,实时获取新的潜在客户数据。每当发现一个新的潜在客户时,它就会被模型摄取并评分,同时它被摄取到在线存储中,以便我们以后可以对其重新排名。同时,Better.com让销售线索在48小时后过期。这是在Redis在线存储中实现的。他们只需要将TTL(生存时间)设置为48小时,那么实体(即潜在客户)和关联的特征向量将在48小时后过期。也就是说,特征存储会自动清理自身以确保没有旧实体或特征占用宝贵的在线存储空间。Feast的另一个实现是MicrosoftAzure的功能存储(https://techcommunity.microsoft.com/t5/ai-customer-engineering-team/bringing-feature-store-to-azure-from-microsoft-azure-redis-和/ba-p/2918917)。您可以通过链接参考其架构-https://techcommunity.microsoft.com/t5/image/serverpage/image-id/323561i3F763F78F483587D/image-size/large?v=v2&px=999。它运行在针对低延迟实时AI/ML用例优化的Azure云上,能够支持批处理和流式数据源,并集成到Azure数据和AI生态系统中。各种特征从批处理源(AzureSynapseServerlessSQL、Azure存储/ADLS)和流式源(Azure事件中心)提取到在线存储。在线存储使用Azure缓存和AzureRedis企业层,包括主动异地复制以创建可用性高达99.999%的全球分布式缓存。因此,如果你的应用已经部署在Azure上,或者你熟悉Azure生态,那么这种特征存储就比较适合。通过使用企业闪存层在分层内存架构上运行Redis并使用内存(DRAM)和闪存(NVMe或SSD)来存储数据,可以进一步降低成本。2.Wix使用DIY特征存储作为MLOps平台的基石。流行的网站构建平台Wix(https://www.wix.com/)将特征存储架构用于推荐、生产、溢价、预测、排名和垃圾邮件分类器以及其他MLOps平台应用程序等特征。虽然Wix为2亿多注册用户提供服务,但在任何给定时间通常只有少数活跃用户。因此,这对特征存储的实现方式产生了一些影响。下图来自WixML工程负责人RanRomano的TechTalk演示(https://youtu.be/E8839ENL-WY?t=2061)。超过90%的点击流存储在Wix的特征存储中,ML模型可以按网站或用户触发。Ran解释说,对于生产中的实时用例,他们需要在毫秒内提取特征向量,因此需要避免延迟。来源:https://youtu.be/E8839ENL-WY?t=2061如上所示,原始数据存储在AWSParquet文件中的S3桶中,并按业务单位分组(如“编辑”、“餐厅”、“预订”"等)和日期。在使用SparkSQL的每日构建批处理过程(需要几分钟到几小时)中,所有用户历史特征都从S3中获取,按用户进行转换和聚合,然后获取到离线存储(ApacheHbase)。这种“按用户”的方式可以加快对用户的历史搜索。一旦系统检测到用户当前处于活动状态,就会触发“预热”过程,并将用户的配置文件加载到比离线存储小得多的在线存储中,并且只保存活跃用户的历史记录(Redis)。这个“预热”过程通常需要几秒钟。最后,在线特征存储中的特征随着用户(使用ApacheStorm)的每个事件不断更新为“实时”流数据。与Feast架构相比,Wix架构的读写速率较低。但是由于它只为在线存储中的活跃用户提供存储特性,而不是所有用户,所以在物化和在线存储上是非常高效的。此外,活跃用户仅占Wix所有注册用户的一小部分,因此也节省了大量空间。然而,虽然我们只需要几毫秒就可以从在线存储中检索特征,但前提是这些特征已经存在于在线存储中。相反,由于预热过程需要几秒钟,那么对于一些活跃的用户来说,相关功能的加载速度可能不够快,并且根据比赛条件,用户可能会因评分低而失败。导致失败。可以看出,只要用例不是关键流程或任务(例如:批准交易或防止欺诈),就可以使用此类架构。3、商业特征存储--Tecton除了批量数据源和流数据源,商业企业特征存储Tecton(https://www.tecton.ai/)架构还支持“开箱即用”的真实时间数据源(也称为“实时属性”或“实时转换”)。由于Tecton已经由特征存储原生支持,因此更容易实现。与Feast和Wix的特征存储一样,Tecton也在registry中定义了各种特征,用于离线和在线存储的一次性逻辑定义,显着降低训练服务的偏差,从而保证ML模型在生产环境中的高精确。来源:https://www.tecton.ai/blog/delivering-fast-ml-features-with-tecton-and-redis-enterprise-cloud/下面我们来看看Tecton的离线存储、在线存储和benchmarking等。方面特征:就离线特征存储而言,Tecton支持S3。就在线存储而言,Tecton为客户提供DynamoDB和Redis企业云之间的选择(https://www.tecton.ai/blog/delivering-fast-ml-features-with-tecton-and-redis-enterprise-云/)。在最近的一次演示中,Tecton首席技术官KevinStumpf就如何根据公司最近执行的基准选择在线功能商店提出了建议,请参阅--https://youtu.be/osxzKxiznm4。除了对延迟和吞吐量进行基准测试外,Tecton还对在线存储成本进行基准测试。这样做的原因是,对于高吞吐量或低延迟用例,在线存储成本可能占整个MLOps平台总拥有成本的很大一部分,因此任何成本节约都是非常有益的。当Tecton对用户的典型高吞吐量用例进行基准测试时,它发现RedisEnterprise比DynamoDB快3倍,而成本却低14倍。详细测试结果请参考--https://www.tecton.ai/blog/announcing-support-for-redis/。可以看出,除非你只有一个用例,而且它既没有高并发,也没有严格的延迟要求,那么你可以使用DynamoDB。4.Lightricks使用商业功能存储——QwakLightricks是一家独角兽公司,开发用于视频和图像编辑的移动应用程序。Facetune是其著名的自拍编辑APP。它还为其推荐系统使用特征存储。来源:https://www.youtube.com/watch?v=CG2vUCcvnD8&t=1915s如上图所示,Qwak的特征库还支持开箱即用的三种特征源——批处理、流式处理和实时特征。这与Tecton非常相似。然而,当使用Qwak特征存储时,他们将特征从离线存储(使用S3上的Parquet文件)和在线(使用Redis)存储的原始数据源具体化到特征存储中。这与Wix、Feast或Tecton的特征存储示例不同。此举的好处是不仅单个特征的转换逻辑统一在训练流和服务流之间(就像上面Feast、Wix和Tecton的特征存储一样),而且实际的转换或特征计算也完成了均匀地,这进一步减少了训练-服务偏差。也就是说,拥有来自原始数据的统一离线和在线来源可确保生产环境中的更高准确性。您可以通过链接了解更多关于Qwak的特征存储架构和组件-https://drive.google.com/file/d/1KfOMI9C-aitJNPdGB56L-6tA8BBp9gsl/view。5.小结通过以上四种实时AI/ML特征存储的benchmark和架构的讨论,我们可以看出,由于架构、支持的特征类型、选择的不同,它们产生的特征存储的性能是不同的成分。并且成本可能会有很大差异。同时,我们也比较了哪种在线存储的性能和性价比最高,应该使用哪种机制或特征服务器从在线存储中提取特征。原文链接:https://www.kdnuggets.com/2022/03/feature-stores-realtime-ai-machine-learning.html译者介绍JulianChen(朱利安陈),51CTO社区编辑,拥有十余年的IT经验有项目实施经验,善于管控内外部资源和风险,注重传播网络与信息安全知识和经验;持续以博文、专题、翻译等形式分享前沿技术和新知识;经常线上线下等方式开展信息安全培训教学。
