0
点赞
收藏
分享

微信扫一扫

【C++】键值对pair的使用和模拟实现

前言

TFX包括许多生产软件部署和最佳实践的需求:可伸缩性、一致性、可测试性、安全性,等等。

它从收集数据开始,然后是数据验证、特征工程、训练和服务。

谷歌已为管道的每个主要阶段创建了库,并且为各种部署目标提供了框架。TFX实现了一系列ML管道组件。这些通过为管道存储、配置和编制之类的事物创建水平层来实现。这些层对于管理和优化管道以及在其管道上运行的应用程序非常重要。

安装

pip install tfx

关于 TFX

TFX 是一个在生产环境中构建和管理机器学习工作流程的平台。

TFX 提供以下功能

TFX 是一种基于 TensorFlow 的 Google 生产级机器学习工具包。 该平台提供了一个配置框架和众多共享库,用来集成定义、启动和监控机器学习系统所需的常见组件。

TFX管道

TFX管道由实现ML管道的一系列组件构成,特别是确保了带下划线的ML任务的可伸缩性和高性能。它包括建模、训练、推理以及部署到Web或移动目标。如下图所示:

TFX管道包含几个组件,每个组件都由三个主要元素组成:驱动程序、执行程序和发布程序。

驱动程序查询元数据存储,并将生成的元数据提供给执行程序,发布程序接受执行程序的结果,并将其保存在元数据中。

执行程序执行所有的处理。作为ML软件开发人员,你需要编写要在执行程序中运行的代码,这取决于你正在使用的组件类。

在TFX管道中,称为构件的数据单元在组件之间传递。

TFX 标准组件

TFX 流水线是实现机器学习流水线的一系列组件,专门用于可扩容的高性能机器学习任务。这包括针对在线、原生移动和 JavaScript 目标建模、训练、运行推断和管理部署。

TFX 流水线通常包含以下组件:

  • ExampleGen:提取和拆分(可选)输入数据集的流水线的初始输入组件。

  • StatisticsGen:计算数据集的统计信息。

  • SchemaGen: 检查统计信息和创建数据架构。

  • ExampleValidator:查找数据集中的异常情况和缺失的值。

  • Transform:对数据集执行特征工程。

  • Trainer:训练模型。

  • Tuner:调整模型的超参数。

  • Evaluatior:对训练结果进行深入分析,并帮助您验证导出的模型,确保它们“效果足够好”,适合投放到生产环境。

  • InfraValidator:检查模型是否确实可以从基础架构提供服务,并防止投放不良模型。

  • Pusher:将模型部署到服务基础架构。

  • BulkInferrer:对存在无标签推断请求的模型执行批处理。

下图说明了这些组件之间的数据流:

TFX 库

TFX 同时包含库和流水线组件。

下图说明了 TFX 库与流水线组件之间的关系

TFX 提供了几个 Python 软件包,它们是用于创建流水线组件的库。您可以使用这些库创建流水线组件,以便您的代码侧重于流水线的独特环节。

使用 TFX 进行开发

从在本地机器上进行研究、实验和开发一直到部署,TFX 为机器学习项目的每个阶段都提供功能强大的平台。

为了避免代码重复和消除潜在的训练/应用偏差,我们强烈建议您实现 TFX 流水线,以便训练模型和部署经过训练的模型,并使用 Transform组件进行训练和推断,此类组件利用了 TensorFlow Transform库。

这样,您就可以始终如一地使用相同的预处理和分析代码,避免训练用到的数据与在生产环境中提供给经训练模型的数据之间存在差异,并且只需编写该代码一次。

部署目标

在开发并训练模型后,如果您对模型感到满意,可以将其部署到一个或多个部署目标,并在其中接收推断请求。TFX 支持部署到三类部署目标。以 SavedModel 格式导出的经训练模型可以部署到这些部署目标中的任意一个,也可以部署到所有这些部署目标。


本文仅仅是对TFX的一个介绍,为后续实施各类机器学习模型部署打下一个认知的基础而已。

已经了解相关概念的小伙伴们可以忽略本文

举报

相关推荐

0 条评论