TensorFlow的架构介绍和详细图解

TensorFlow运行时是一个跨平台的库。系统架构使这种规模的组合变得灵活。我们基本熟悉TensorFlow编程概念, 例如计算图, 操作和会话。
首先需要理解一些术语才能理解TensorFlow架构。这些术语是TensorFlow可服务, 可服务流, TensorFlow模型, 加载程序, 源, 管理器和核心。 TensorFlow体系结构中的术语及其功能如下所述。
TensorFlow体系结构适合于读取和修改核心TensorFlow代码。
1. TensorFlow可服务
这些是TensorFlow服务中未完成的主要单元。可服务对象是客户端用于执行计算的对象。
servable的大小是灵活的。单个可服务项可能包含任何内容, 从查找表到接口模型元组中的唯一模型。 servable应该具有任何类型和接口, 以实现灵活性和未来的改进, 例如:

  • 串流结果
  • 异步操作模式。
  • 实验性API
2.可用版本
TensorFlow服务器可以在任何单个服务器实例的生存期内处理一个或多个版本的可服务对象。它为新的算法配置, 权重和随时间推移加载的其他数据打开了大门。它们还可以一次收取多个版本的可支配费用。它们还允许同时加载多个版本的servable, 从而逐步支持推出和试验。
3.可服务的流
【TensorFlow的架构介绍和详细图解】任何可服务版本的序列, 按数字的递增版本排序。
4. TensorFlow模型
服务代表一个或多个可服务项目中的模型。机器学习的模型包括一个或多个算法, 并查找嵌入表。 servable也可以充当模型的一部分。例如, 一个大型查询表可以作为许多实例使用。
5. TensorFlow装载机
装载机管理着服务对象的生命周期。加载程序API支持通用基础结构, 该基础结构独立于所涉及的特定学习算法, 数据或产品用例。
6. TensorFlow体系结构中的源
简单来说, 源是找到并提供可服务的模块。每个引用一次提供零个或更多可服务的流。对于每个可服务的流, 源仅为每个可服务的提供一个加载程序实例。
每个源还提供零个或更多可服务流。对于每个可服务的流, 源仅提供一个加载程序实例, 并使其可供加载。
7. TensorFlow管理器
TensorFlow经理处理Servable的整个生命周期, 包括:
  • 加载服务
  • 服务内容
  • 卸货
Manager观察到源并跟踪所有版本。 Manager尝试解决原因, 但是可以拒绝加载Aspired版本。
管理人员也可以推迟” 卸载” 。例如, 基于确保始终加载至少一个版本的策略, 管理员可以等到新版本完成加载为止等待卸载。
例如, GetServableHandle(), 供客户端访问已加载的可服务实例。
8. TensorFlow核心
这管理着可食用物品的以下方面:
TensorFlow的架构介绍和详细图解

文章图片
  • 生命周期
  • 指标
  • TensorFlow服务核心满意度的服务者和加载者是不透明的对象。
9.服役人员的生活
TensorFlow的架构介绍和详细图解

文章图片
TensorFlow技术架构:
  • 源为可服务版本创建加载程序, 然后将加载程序作为Aspired版本发送到Manager, 后者将加载它们并将其提供给客户端请求。
  • 加载程序包含元数据, 并且它需要加载可服务项。
  • 源使用回调来传达Aspired版本的Manager。
  • Manager应用有效的版本策略来确定要采取的下一步操作。
  • 如果Manager确定提供给Loader加载新版本, 则客户端会向Manager询问是否为可服务版本, 并明确指定一个版本或请求当前版本。 Manager返回一个可处理的句柄。动态管理器将应用版本操作, 并决定加载其新版本。
  • 动态管理器命令装载程序有足够的内存。
  • 客户端请求该模型的最新版本的句柄, 而Dynamic Manager返回该新版本servable的句柄。
10. TensorFlow装载机
TensorFlow就是这样一种算法后端。例如, 我们将实现一个新的加载器, 以加载, 提供访问权限并卸载机器学习模型的新型可服务实例。
11. TensorFlow体系结构中的Batcher
将TensorFlow请求批处理到单个应用程序中可以显着降低执行推理的成本, 尤其是在存在硬件加速器和GPU的情况下。 TensorFlow服务具有一个声明批处理设备, 该批处理设备批准客户将其特定于类型的假设进行批处理, 而不是将请求快速批处理。并要求算法系统可以更有效地处理。

    推荐阅读