政安晨:【深度学习部署】—— TensorFlow Extended(TFX)介绍

2024-03-24 07:44

本文主要是介绍政安晨:【深度学习部署】—— TensorFlow Extended(TFX)介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏政安晨的机器学习笔记

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

前言

TensorFlow Extended(TFX)是基于 TensorFlow 的谷歌生产规模机器学习平台。它提供了一个配置框架,用于表达由 TFX 组件组成的 ML 管道。TFX 管道可使用 Apache Airflow 和 Kubeflow 管道进行协调。组件本身以及与协调系统的集成都可以扩展。

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

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

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

安装

pip install tfx

关于 TFX

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

TFX 提供以下功能

用于构建机器学习流水线的工具包 TFX 流水线,您可以在多个平台上编排机器学习工作流,例如 Apache Airflow、Apache Beam 和 Kubeflow Pipelines 平台。

一组标准组件可用作流水线的一部分,或用作机器学习训练脚本的一部分。TFX 标准组件提供久经考验的功能,可帮助您轻松开始构建机器学习流程。

为许多标准组件提供基本功能的库您可以使用 TFX 库将此功能添加到自己的自定义组件中,也可以单独使用它们。

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

TFX管道

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

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

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

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

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

通常,一个组件有一个输入构件和一个输出构件。每个构件都有一个关联元数据,定义其类型和属性。构件类型定义了整个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的一个介绍,为后续实施各类机器学习模型部署打下一个认知的基础而已。

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

这篇关于政安晨:【深度学习部署】—— TensorFlow Extended(TFX)介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840914

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达