MLOps 实践系列:特征存储(Feature Store)的作用

特征存储好比数据科学的数据仓库。它的主要目标是使数据科学家能够缩短从数据摄取到ML模型训练和推理的时间,填补了MLOps生命周期中的一个重要空白。

什么是特征存储?

特征存储是一个用于管理机器学习特征的数据管理系统,包括特征工程代码和特征数据。它是一个中央存储库,用于存储记录的、设计的和访问权限控制的特征,可以在整个团队的许多不同的ML模型中使用。它从各种来源获取数据,并执行定义的转换、聚合、验证和其他操作来创建特征。特征存储库注册了可用的特征,并使它们准备好被ML训练管道和推理服务所检索和消费。

MLOps 生命周期

v2-c0854d835a2e9f9a76f645e76f09e0e6_1440w
图1: MLOps生命周期

我们将MLOps生命周期定义为抽象的两个不同环境内所涉及的组件,如图 1 所示,跨越开发("Dev")和生产("Prod")环境。包括以下组件:

开发环境

  1. DataOps:MLOps生命周期的第一步涉及数据的所有方面,从建立数据摄取管道到从各种来源获取数据。随后是数据验证和确认,将验证逻辑纳入摄取管道中。接下来是通过处理、转换进行数据准备,最后采用适当的版本将其持久化。这些步骤包括在开发环境中建立和测试批处理或实时数据的数据管道,视情况而定。
  2. ModelOps:一旦获取了数据,就会启动探索性数据分析(EDA),以获得初步的洞察结果并生成报告。了解EDA后的数据有助于下一步的工作——特征工程。然后使用这些特征开发ML算法。然后使用版本控制系统(例如git)对算法代码进行版本管理,并进行测试,以确保代码按预期运行。最后,数据和模型管道被部署到开发环境中进行执行和测试。一旦管道被部署,就会用不同的输入值和不同的模型结构进行各种实验。实验结果以模型指标的形式进行评估。此外,还进行了模型解释和误差分析,以更好地理解模型并提高其性能。最后,从各种实验中选出最好的模型,部署到生产中。

生产环境

  1. DataOps和ModelOps:使用一个服务工具,在生产中部署内置Dev的数据和模型管道。部署后,数据管道获取、验证并准备好需要进行推理的数据(特征)。然后,模型管道使用推理数据来生成预测/报告。
  2. ProductionOps:在DataOps和ModelOps中,对数据和模型性能进行持续监控,以确保没有漂移。各种指标帮助我们做到这一点,我们可以从本系列的文章(模型监控)中了解更多信息。这种监测启动了一个重要的反馈回路,将流程回到开发周期,以进一步进行模型再训练和/或其他迭代(如果需要),并完成我们的MLOps生命周期。此外,各种治理(用户控权限制、团队、模型退役等)和安全(数据、模型)方面也得到了处理。

MLOps生命周期中的Gap

有人可能会想,为什么在上述讨论中没有提到特征存储。其实,企业一直在实施各种类型的特征存储,对于大多数定义来说,它是作为ModelOps的一部分。然而,特征存储应该被单独划分出来(如下图 2 所示),因为它可以实现FeatureOps,从而在ModelOps中带来更快的周转和实验时间。它还可以减少企业内部多个使用案例中ModelOps的冗余。当然可以将特征存储的服务端集成到MLOps,特征的开发工作也可以放在MLOps的模型开发阶段,为模型开发和服务侧的特征配置带来便利。

v2-05efd0f498fe756278a6334e2ccd23a7_1440w
图 2: MLOps 生命周期间的Gap — FeatureOps

Gap:FeatureOps是目前MLOps生命周期中的一个缺口。在没有特征的情况下,企业和数据科学家在创建相同的特征时做了大量的重复工作,然后针对不同的用例对其进行验证。这大大增加了模型上市的时间。此外,初级的数据科学家可能无法在他们的建模中构想出重要的特征,而这些特征可能是由高级团队成员早先完成的。这也侧面阻碍了敏捷开发和有效的团队合作。

我们将在下一篇文章中了解FeatureOps的更多细节,在这篇文章中我们将了解特征存储的主要组成部分和功能。目前,需要注意的是,直到2020年,还没有一个大的ML平台供应商有提供一个明确的产品来实现这一功能。最近在2020年12月,亚马逊宣布了一个SageMaker功能商店,随后谷歌在2021年5月发布了他们的MLOps平台VertexAI,该平台有一个特征存储组件。Databricks在2021年6月发布了他们在Azure平台上支持的特征存储实现的公开版本。除此以外,还有像Hopsworks和Tecton这样的初创公司,以及一些像Feast这样的开源项目,他们都在引领特征存储的发展。Abzooba公司有一个名为xpresso.ai的MLOps平台,它建立在这里讨论的许多概念之上。因此,整个行业正在进行大量的努力,以填补MLOps生命周期中的这一空白。

结论

人们常说,数据科学家80%的时间都花在了数据处理上,包括数据的来源、数据的摄取、数据的清洗和数据的特征化等任务。一个定义明确的特征存储使特征在一个统一的空间可用,从而缩短了数据侧的时间。它还能促进团队合作,重复使用,并促使更快的模型实验和推理结果。

本文由SuperQSC发布,转载请注明出处:https://www.chaozhixingqiu.com/2114.html

(0)
上一篇 2022年3月17日 下午7:21
下一篇 2022年3月17日 下午7:23

相关推荐