Hopsworks 3.0:以 Python 为中心的功能商店

AI吧Python

介绍

特征存储始于大数据世界,Spark 是 Michelangelo(第一个特征存储)和 Hopsworks(第一个开源特征存储)的特征工程平台。如今,现代数据堆栈在特征存储中扮演了 Spark 的角色——可以编写特征工程代码,无缝扩展到 Snowflake、BigQuery 或 Redshift 中的大数据量。但是,Python 开发人员知道,特征工程不仅仅是您可以在 SQL 和 DBT 中进行的聚合和数据验证。降维,无论是使用 PCA 还是嵌入,以及转换都是 SQL 中不可用的特征工程的基本步骤,即使现在使用UDF(用户定义的函数)也是如此。

图 1. 现代数据堆栈

在过去的几年里,我们有越来越多的客户喜欢使用 Python 进行特征工程。典型的特征管道和训练管道使用以下框架:

  • 用于计算聚合的 Pandas,
  • Scikit-Learn、PyTorch 和 TensorFlow 来转换特征并执行降维,
  • 和远大的期望来验证他们的特征数据。

Hopsworks 支持 Python 和 Pandas 来完成这些任务,但 Python 中的原型和最终生产管道之间存在差距。


什么是新的?

Hopsworks 3.0中,我们消除了 Python 管道和生产之间的任何差距,收紧了编写功能管道和训练管道的开发反馈循环。您可以在任何 Python 环境中运行您的功能管道,并在后台更快地实现您的功能,从而实现更具交互性的开发。您的功能将在几秒钟内出现在在线功能商店中,使您能够快速检查您的功能并更快地进行下一个任务。您可以使用 Great Expectations 验证您的特征数据。

我们引入了一个新的抽象来读取特征 – 一个特征视图,它为模型用于训练和推理的特征提供一致的逻辑视图,包括应用于特征的任何转换函数。您现在可以直接检索训练数据作为 Pandas DataFrames,分成训练/测试/验证集。我们甚至现在有一个无服务器版本的 Hopsworks,这意味着您只需要 pip 安装我们的库并注册一个帐户即可直接从您的私有功能存储中读取/写入。Hopsworks 无服务器具有永久免费层,使您能够在今天自信地构建您的功能,并知道它们将来会在那里。

使用您选择的 Python 环境

您可以使用我们的 Python SDK 在任何 Python 环境中编写您的功能管道、训练或推理管道。您可以使用您选择的编排引擎来编排管道:Airflow、Github Actions、Dagster、Azure 数据工厂、MetaFlow、Kubeflow Pipelines 等。为了您的方便,Hopsworks 还提供了捆绑的 Airflow。

写入功能组,读取功能视图

在 Hopsworks 中,特征管道的最终结果是插入到特征组中的 Pandas DataFrame 。特征组是一个表,包含随时间写入的所有 Pandas DataFrame。当您写入功能组时,Pandas DataFrame 中的行将附加到功能组。特征组中的行也可以更新或删除。特征管道写入可变特征组,然后通过创建特征视图来读取模型的训练或推理数据,可以在许多不同的模型中重复使用这些特征。

内置或自定义转换函数(Python 中的用户定义函数)可以附加到特征视图,以使未转换的数据能够存储在特征存储中,这对于特征的可重用性、EDA 和跨训练应用的一致转换很重要和从特征视图读取的推理数据。从特征视图创建的训练数据是不可变的 – 您选择的特征的可重现快照,包括时间范围和您应用的任何过滤器(例如限制到特定地理区域)。特征组、特征视图和训练数据都进行了版本化,并跟踪了它们的谱系,从而可以对特征进行 A/B 测试并一键重新创建训练数据。

寄予厚望的数据验证

Hopsworks 现在支持功能管道和功能日志记录的Great Expectations。您可以在 Great Expectations 中定义数据验证规则,数据验证结果将存储在 Hopsworks 的 Feature Group 中,您可以从中浏览数据验证运行的历史记录。您还可以在 Hopsworks 中编写警报,在 Slack、电子邮件或寻呼机职责中通知团队成员数据质量问题。

MLOps 支持

DevOps 是作为一组软件工程实践出现的,它们通过提供结构化的测试、版本控制、通信和协作方法来缩短开发和运营之间的部署时间。同样,MLOps 可以对您的功能、训练和推理管道进行增量更改,并且您的管道会不断构建、测试并部署到生产中。MLOps 需要版本化资产(功能和模型)来自动化运行单元/管道测试的持续集成管道对于任何更改,构建软件工件,并确保数据验证测试的正确性。持续部署可确保管道分阶段(开发、登台、生产)部署到生产中,快速失败并回滚到工作版本。Hopsworks 支持在部署到暂存和生产环境之前在本地测试和运行完整的功能管道和训练管道。

Hopsworks 还支持对功能进行 A/B 测试。正如您可以部署新模型来提高预测性能一样,您也可以部署新功能来提高预测性能。这通常被称为以数据为中心的人工智能。Hopsworks 通过对模式和数据的全面版本控制支持功能的 A/B 测试。从原始数据到模型输入,Hopsworks 管理功能组的版本化模式和功能视图 – 模型的输入。对特征组的写入也进行了版本控制,从而能够再现训练数据以及用于训练模型的数据的来源。

Hopsworks 3.0;也是无服务器的

如果您想编写预测服务,而不仅仅是训练模型,Hopsworks 无服务器是一个不错的选择。这是管理训练和推理功能甚至从Hopsworks 无服务器存储和提供模型的最简单方法。它在网络上运行,您只需创建一个帐户,然后使用它。Hopsworks Serverless 提供了许多优势:

  • 几秒钟内开始 – 即时生产力;
  • 无需操作/安装/升级;
  • 始终可用 – 随时随地使用您的功能和模型;
  • 无缝可扩展性;
  • 成本效益。

但是,Hopsworks Serverless 可能并不适合所有人。首先,您可能需要数据所有权,并且您可能对性能或资源有很高的要求。您可能喜欢在 Hopsworks 上进行开发和计算。在任何这些情况下,您都可以在自己的由 Hopsworks.ai 管理的云帐户中使用 Hopsworks。所有数据和服务都在您的帐户中运行,但您可以自动扩展集群,或者按下按钮升级、备份集群,或者停止或启动集群。如果您还没有在云中,您也可以在自己的数据中心部署 Hopsworks,即使在安全的气隙环境中也是如此。

hopsworks-30-the-python-centric-feature-store

发表评论

邮箱地址不会被公开。 必填项已用*标注