使用 TFX-Addons 扩展您的 TFX 管道
2023 年 2 月 7 日

由 Hannes Hapke 和 Robert Crowe 发布

为了生成生产级别的机器学习模型,TensorFlow 在 TensorFlow Extended (TFX) 的框架下提供了一系列库。只需执行 pip install,TFX 就已经包含了许多功能多样的管道组件——被称为“标准组件”——这些组件提供了大部分用于训练和批处理推理的基本功能。标准组件可以帮助大多数开发者入门,但开发者通常会发现需要额外的功能,可以通过开发自定义组件来添加这些功能。任何 TFX 管道,无论包含哪些组件,都可以与许多管道编排器一起使用,例如 Google Cloud Vertex AI PipelinesApache BeamApache AirflowKubeflow Pipelines

虽然标准 TFX 组件很棒,但来自 Twitter、Spotify、Digits 和 Apple 等多家公司的机器学习工程师社区组成了一个 TFX 特别兴趣小组,并开始为 TFX 的一个扩展版本贡献新的组件、库和示例,该扩展版本被称为 TFX-Addons

什么是 TFX?

TFX 是一个用于部署生产 ML 管道的端到端平台。当您准备好将模型从研究阶段迁移到生产阶段时,可以使用 TFX 创建和管理用于训练和/或批处理推理的自动化生产管道。TFX 管道是一系列组件,这些组件实现了一个 ML 管道,专门设计用于可扩展、高性能机器学习任务。组件通常可以使用 TFX 库构建——TensorFlow 数据验证、TensorFlow 转换和 Tensorflow 模型分析——这些库也可以单独使用。组件还可以构建为运行完全自定义代码,甚至通过 Apache Beam 将处理分布到计算集群。

TFX 提供以下内容

  • 用于构建 ML 管道的工具包。TFX 管道使您能够在多个平台上编排您的 ML 工作流程,例如:Apache Airflow、Apache Beam 和 Kubeflow Pipelines。 了解有关 TFX 管道的更多信息
  • 一套标准组件,您可以将其用作管道的一部分或 ML 训练脚本的一部分。TFX 标准组件提供经过验证的功能,可帮助您轻松入门构建 ML 流程。 了解有关 TFX 标准组件的更多信息
  • 提供许多标准组件基础功能的库。您可以选择使用 TFX 库将此功能添加到您自己的自定义组件中,或者单独使用它们。 了解有关 TFX 库的更多信息

TFX 是一个基于 TensorFlow 的行星级生产学习工具包。它提供了一个配置框架和共享库,用于集成定义、启动和监控机器学习系统所需的通用组件。

什么是 TFX-Addons?

TFX-Addons 是一个专门针对 TFX 用户的特别兴趣小组 (SIG),这些用户正在扩展 Google TensorFlow 团队提供的标准组件集。这些附加组件是由其他机器学习公司和开发者实现的,这些公司和开发者在他们的生产机器学习操作中严重依赖 TFX。

通过 TFX 组件解决了常见的 MLOps 模式,例如将数据导入机器学习管道。例如,TFX-Addons 的成员开发并开源了 用于从 Feast 特征存储中导入数据的 TFX 组件,该组件由 Twitter 和 Apple 的机器学习工程师维护。

如何使用 TFX-Addons 组件或示例?

可以通过简单的 pip 安装访问 TFX-Addons 组件和示例。要安装最新版本,请运行以下命令

pip install tfx-addons

为了确保您拥有任何给定项目的依赖项的兼容版本,您可以在安装期间指定项目名称作为额外要求

pip install tfx-addons[feast_examplegen]

要使用 TFX-Addons

from tfx import v1 as tfx
import tfx_addons as tfxa

# Then you can easily load projects tfxa.{project_name}. Ex:

tfxa.feast_examplegen.FeastExampleGen(...)

TFX-Addons 组件可以在任何 TFX 管道中使用。大多数组件支持所有 TFX 编排器,包括 Google Cloud 的 Vertex PipelinesApache BeamApache AirflowKubeflow Pipelines

当前有哪些额外的组件可用?

组件、库和示例列表在不断增长,目前正在开发几个新项目。截至撰写本文时,以下是目前可用的组件。

Feast 组件

示例生成器允许您从 Feast 特征存储 中导入数据样本。

消息退出处理程序

此组件为 TFX 管道提供了一个退出处理程序,该处理程序通过 Slack 消息通知用户有关管道最终状态(失败或成功)的信息。如果管道失败,该组件将提供错误消息。消息组件支持许多消息提供者(例如 Slack、stdout、日志记录提供者),并且可以轻松扩展以支持 Twilio。它还用作编写 TFX 管道退出处理程序的示例。

模式整理组件

此组件允许其用户更新/更改 SchemaGen 组件生成的模式,并根据领域知识对其进行整理。如果检测到特征漂移,可以使用整理后的模式来停止管道。

特征选择组件

此组件允许用户从数据集中选择特征。如果要根据统计特征选择指标选择特征,则此组件非常有用。

XGBoost 评估器组件

此组件扩展了标准 TFX 评估器组件以支持训练后的 XGBoost 模型,以便对模型性能进行深入分析。

抽样组件

此组件允许用户通过随机欠采样或过采样来平衡其训练数据集,从而将数据减少到频率最低或最高的类别。

Pandas 转换组件

此组件可以替代标准 TFX 转换组件,并允许您使用 Pandas 数据帧进行特征工程。使用 Beam 进行分布式处理以实现可扩展性。

Firebase 发布者

此项目帮助用户将训练后的模型直接从 TFX 管道发布到 Firebase ML。

HuggingFace 模型推送器

HuggingFace 模型推送器 (HFModelPusher) 将经过验证的模型推送到 HuggingFace 模型中心。此外,它还选择性地将应用程序推送到 HuggingFace 空间中心

如何参与?

TFX-Addons SIG 致力于分享可重复使用的组件和最佳实践。如果您对 MLOps 感兴趣,请加入我们的双周电话会议。无论您是 TFX 新手还是经验丰富的 ML 工程师,都欢迎您参加,SIG 接受所有参与者的开源贡献。

如果您想加入我们的下次会议,请注册我们的列表组 [email protected]

其他资源

已经在使用 TFX-Addons 吗?

如果您已经在使用 TFX-Addons,我们很乐意听到您的反馈! 使用此表格 向我们发送您的故事!

感谢所有贡献者

非常感谢以下成员的所有开源组件贡献
Badrul Chowdhury、Daniel Kim、Fatimah Adwan、Gerard Casas Saez、Hannes Hapke、Marcus Chang、Kshitijaa Jaglan、Pratishtha Abrol、Robert Crowe、Nirzari Gupta、Thea Lamkin、Wihan Booyse、Michael Hu、Vulko Milev、Sayak Paul、Chansung Park,以及所有其他贡献者!只有像您这样的人贡献才能实现开源!

下一篇文章
Extend your TFX pipeline with TFX-Addons

由 Hannes Hapke 和 Robert Crowe 发布 为了生成生产级的机器学习模型,TensorFlow 在 TensorFlow Extended (TFX) 的框架下提供了一系列库。只需一个 pip install 命令,TFX 就包含了许多功能强大的管道组件,称为“标准组件”,它们提供了用于训练和批量推理的大多数基本功能。…